var map;
var mgr;
var icons = {};
var debug = false;

// Init markerArray
var markerArray = [{
    "zoom": [5, 19],
    "places": [	
		{"name": "<b>Tram stop</b>", "icon": "img/gtram.gif", "posn": [52.36399801601504, 4.882274866104126]},
		{"name": "<b>Parking Byzantium</b>", "icon": "img/gparking.gif", "posn": [52.36190804211562, 4.88018274307251]},
		{"name": "MBA Fair Amsterdam<br /><b>Barlaeus Gymnasium</b>", "icon": "img/gmarker.gif", "posn": [52.36226183775195, 4.883508682250977]},
    ]
}];

function GLoad() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("google_map"));
    //map.addControl(new GSmallMapControl());
    map.addControl(new GLargeMapControl());
    map.setCenter(new GLatLng(52.36275976755196, 4.882349967956543), 16);
	
	//debug
	GEvent.addListener(map, "click", function(marker, point) {
		if (debug && !marker) {
			document.getElementById("google_map_debug").innerHTML = point;
		}
	});
	
    window.setTimeout(setupMarkers, 0);
  } else {
  	document.getElementById("google_map").className = "hide";
  }
}


// Setup marker
function setupMarkers() {
  mgr = new GMarkerManager(map);
  for (var i in markerArray) {
    var layer = markerArray[i];
    var markers = [];
    for (var j in layer["places"]) {
      var place = layer["places"][j];
	  var icon = getIcon(place["icon"]);
      var posn = new GLatLng(place["posn"][0], place["posn"][1]);
	  markers.push(map.addOverlay(createMarker(posn, j, place["name"], icon)));
    }
    mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]);
  }
  mgr.refresh();
}


// Create marker + label
function createMarker(point, number, name, icon) {
	number++;
	var marker = new GMarker(point, { title: name, icon: icon });
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(name);
	});
	return marker;
}

// Create Icon
function getIcon(markerImg) {
	var icon = null;
	var icon = new GIcon();
	icon.image = markerImg;
	icon.shadow = markerImg;
	icon.iconSize = new GSize(35, 35);
	icon.shadowSize = new GSize(35, 35);
	icon.iconAnchor = new GPoint(17, 17);
	icon.infoWindowAnchor = new GPoint(17, 17);
	return icon;
}
	
	
addLoadEvent(GLoad);
window.onunload = GUnload;
