//load Google Map
var map;
var bounds = new GLatLngBounds();
var gmarkers=new Array();
var points=new Array();
var open=false;


function load() {
	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=MINIMAPSXML&amp;r="+random, function(data) {
			var xml = GXml.parse(data);
			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(12, 22);
			icon.iconAnchor = new GPoint(0, 20);
			icon.infoWindowAnchor = new GPoint(5, 1);

			//loop over the markers array
			for (var 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, label, infowindow, icon, 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, label, infowindow, icon, 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=0; 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");
}
