//load Google Map
var map;
var sidebar = ''
var bounds = new GLatLngBounds();
var gmarkers=new Array();
var points=new Array();
var open=false;

function load(center) {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));

		//map.addControl(new GMapTypeControl());
		map.addControl(new GLargeMapControl3D());
		//map.addControl(new GOverviewMapControl());
		//map.setMapType(G_HYBRID_MAP);
		//map.addMapType(G_SATELLITE_3D_MAP);
		map.enableScrollWheelZoom();
		//map.disableDragging();
		map.setCenter(new GLatLng(0, 0), 2);

		//create randomnumber to prevent caching and retrieve xml file
		var random=Math.floor(Math.random()*11111)
		GDownloadUrl("/?id=MIDIMAPSXML&amp;r="+random, function(data) {
			var xml = GXml.parse(data);
			var index=0;
			
			var markers = xml.documentElement.getElementsByTagName("marker"); //store markers in markers array

			// create marker icon
			var icon = new GIcon();
			icon.image = "/?id=OXFAMICON";
			icon.iconSize = new GSize(19, 34);
			icon.iconAnchor = new GPoint(0, 20);
			icon.infoWindowAnchor = new GPoint(5, 1);

			//loop over the markers array
			for (index = 0; index < markers.length; index++) {
				var id = markers[index].getAttribute("id");
				var address = markers[index].getAttribute("address");
				var label = GXml.value(markers[index].getElementsByTagName("label")[0]);
				var infowindow = GXml.value(markers[index].getElementsByTagName("infowindow")[0]);

				loadMarker(map,id,address,infowindow,label,icon,center,index);
			}

			fitPoints();
		}); //close GDownloadUrl

		GEvent.addListener(map, "click", function() {
			if (map.getInfoWindow().isHidden() && !open) {fitPoints();}
		});

		icon=null;
		marker=null;

		window.onunload = function() {GUnload();}
	} //close GBrowserIsCompatible
} //close load

//Load marker and set up event window
function loadMarker(map,id,address,infowindow,label,icon,center,index) {
	var coo = address.split(',');
          	var point = new GLatLng(coo[1],coo[0]);
	var options = {icon: icon, title: label};
	var marker = new GMarker(point, options);

	GEvent.addListener(marker, "click", function() {
	     	marker.openInfoWindowHtml(infowindow);
		open=true; setTimeout("open=false;", 50);
	});

	map.addOverlay(marker);

	gmarkers[index]=marker;

	points[index]=point;
}

function fitPoints() {
	for (var i=1; i< points.length; i++) {
		bounds.extend(points[i]);
	}
	map.setZoom(map.getBoundsZoomLevel(bounds)-0);
	map.setCenter(bounds.getCenter());
}

function click(i) {
	GEvent.trigger(gmarkers[i], "click");
}
