var map;

function initialize() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map_canvas"));
		center = new GLatLng(53.347682,-6.261177);
		//http://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&msid=104782212725419186114.00047eaf7e8519701f6aa&ll=53.339688,-6.245041&spn=0.162145,0.33577&z=12
		//http://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&msid=104782212725419186114.00047eaf7e8519701f6aa&ll=53.347682,-6.261177&spn=0.094891,0.239983&z=12
		map.setCenter(center,1);
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addMapType(G_PHYSICAL_MAP);
		map.setMapType(G_PHYSICAL_MAP);

	 	addMarkersFromXML("./wp-content/themes/dublincityofsport/library/xml/facilities_dublin.xml");
		//
	}
}

function addMarkersFromXML(xmlfile) {
	   var batch = new Array();
	   mgr = new MarkerManager(map); 
	   var request = GXmlHttp.create();
	   request.open('GET', xmlfile, true);
	   request.onreadystatechange = function() {
	   	if (request.readyState == 4 && request.status == 200) {
			var xmlDoc = request.responseXML;
			var xmlrows = xmlDoc.documentElement.getElementsByTagName("row"); // grab all rows from xml doc
			if(xmlDoc.documentElement.nodeName != "parsererror") {
				for (var i = 0; i < xmlrows.length; i++) {
					var xmlrow = xmlrows[i];
					var htmlStr = '';
					//
					var my_lat = xmlrow.getElementsByTagName("longitude")[0];
					var my_long = xmlrow.getElementsByTagName("latitude")[0];
					var point = new GLatLng(parseFloat(my_lat.firstChild.data), parseFloat(my_long.firstChild.data)); // grab point lat/long
					//
					var facility_name = xmlrow.getElementsByTagName("facility_name")[0].firstChild.data;
					//var placelink = xmlrow.getElementsByTagName("placename")[0].attributes.link;
					//
					var address = xmlrow.getElementsByTagName("address")[0].firstChild.data;
					//
					htmlStr += "<h1>" + facility_name + "</h1>";
					htmlStr += "<p>" + address + "</p>";
					//
					var marker = createMarker(point,htmlStr);
					batch.push(marker);
					//
				}
				mgr.addMarkers(batch,1);
				mgr.refresh();
			}
		}
	   }
	   request.send(null);
}

function createMarker(point,html) {
	var marker = new GMarker(point);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
	});
	return marker;
}
