// initialise some variables

var centerLatitude = 40.50;
var centerLongitude = 12.50;
var startZoom = 1;
var map;
var partnermarker = [];
var partnerText = [];
var partnername;
var website;
var numpartners = 0;
var point = 0;
var i = 0;
 
 		var cgsIcon = new GIcon();
		cgsIcon.image = "common/images/building.png";
		cgsIcon.shadow = "common/images/shadow.png";
		cgsIcon.iconSize = new GSize(21, 31);
		cgsIcon.shadowSize = new GSize(37, 34);
		cgsIcon.iconAnchor = new GPoint(1, 34);
		cgsIcon.infoWindowAnchor = new GPoint(1, 2);
		cgsIcon.infoShadowAnchor = new GPoint(1, 25);
	  
function init() {
	if (GBrowserIsCompatible()) {
			
      map = new GMap2(document.getElementById("map"));
      map.addControl(new GSmallMapControl());
      map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom);
	  retrieveMarkers();
	
} else {
       alert("Sorry, this map cannot be displayed with this browser");
    }
}
window.onload = init;  // run init function
window.onunload = GUnload; //unload

function retrieveMarkers() {
	var request = GXmlHttp.create();  
	request.open("GET", "common/xml/cgspartners.xml", true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = GXml.parse(request.responseText);
			var markers = xmlDoc.getElementsByTagName("partner");
			for (var i = 0; i < markers.length; i++) {
				var lng = markers[i].getElementsByTagName("lng")[0].firstChild.nodeValue;
				var lat = markers[i].getElementsByTagName("lat")[0].firstChild.nodeValue;	
				var zoomfactor = markers[i].getElementsByTagName("mapzoomfactor")[0].firstChild.nodeValue;
						if(lng && lat) {
							
				var latlng = new GLatLng(parseFloat(lat),parseFloat(lng));			
					
				partnername = markers[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
				website = markers[i].getElementsByTagName("website")[0].childNodes[0].nodeValue;
				
				if(website != '-') {
				
				partnername = partnername + ' <a href="' + website + '" target="_blank">Visit website</a>';
				
				} 
				
				point = new GMarker(latlng, { icon: cgsIcon });
				var partnermarker = createMarker(latlng, partnername, point, zoomfactor);	
 	            map.addOverlay(partnermarker);
			   
						}

			}
		
		} // end readystate
	
	} //  onreadystate
	
	request.send(null);
}

function myclick(i) {
	  
	  var tmp = i.split("_");
	  i = parseInt(tmp[0]);
	  partnerzoomfactor = parseInt(tmp[1]);

	map.setCenter(partnermarker[i].getLatLng(), partnerzoomfactor);
	partnermarker[i].setImage("common/images/buildinghilite.png");
	partnermarker[i].openInfoWindowHtml(partnerText[i]);
}

	function createMarker(latlng, partnername, point, zoomfactor) {

	GEvent.addListener(point, 'click', function() {
	
		map.panTo(point.getLatLng());	
		zoomfactor = parseInt(zoomfactor);
		map.setCenter(point.getLatLng(), zoomfactor);
		point.setImage("common/images/buildinghilite.png");
		point.openInfoWindowHtml(partnername);

	});
	
	partnermarker[i] = point;
	partnerText[i] = partnername;
    numpartners = i;
	i++;
return point;
}	

function getNodeValue(node, tagname, default_val) {
var elems = node.getElementsByTagName(tagname);

//test to see if tags aren't blank and have some value
if (elems && elems[0] && elems[0].firstChild &&
elems[0].firstChild.nodeValue) {
return elems[0].firstChild.nodeValue;
}
return default_val;
}
