// Script zur Anzeige von Informationen des RSS-Feeds http://www.pls-zh.ch/plsFeed/rss auf Google Maps
// Copyright 2010 e-hist Gerold Ritter (ritter@e-hist.ch)
// Alle Rechte vorbehalten

var map, manager;
var centerLatitude = 47.37420372242794, centerLongitude = 8.54114055633545, startZoom = 15;

function createMarkerClickHandler(marker, text, link) {
  return function() {
    marker.openInfoWindowHtml(
      '<h3>' + text + '</h3>' +
      '<p><a href="' + link + '">Weitere Informationen &raquo;</a></p>'
    );
    return false;
  };
}


function createMarker(pointData) {
  var latlng = new GLatLng(pointData.latitude, pointData.longitude);

  var icon = new GIcon();
	if (parseInt(pointData.abbr) > 0) {
		icon.image = 'scripts/green_marker.png';
	} else {
		icon.image = 'scripts/red_marker.png';
	}
  icon.iconSize = new GSize(32, 32);
  icon.iconAnchor = new GPoint(16, 16);
  icon.infoWindowAnchor = new GPoint(25, 7);

  opts = {
    "icon": icon,
    "clickable": true,
    "labelText": pointData.abbr,
    "labelOffset": new GSize(-16, -16)
  };
 
  var marker = new LabeledMarker(latlng, opts);
  var handler = createMarkerClickHandler(marker, pointData.name, pointData.link);
	
  GEvent.addListener(marker, "click", handler);

  return marker;
}

function init() {

	map = new GMap(document.getElementById("map"));
	map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom);
	map.setUIToDefault();

  manager = new MarkerManager(map);
	
  // This is a sorting trick, don't worry too much about it.
  markers.sort(function(a, b) { return (a.abbr > b.abbr) ? +1 : -1; }); 
	
  batch = [];
  for(id in markers) {
    batch.push(createMarker(markers[id]));
  }
  manager.addMarkers(batch, 11);
  manager.refresh();
}

window.onload = init;
window.onunload = GUnload;

