var longi = new Array();
var lat = new Array();	
var directionsLink = new Array();
var title = new Array();
var icon = new Array();
var current = 0;
var map;

var markers = new Array();		// Tracks the markers for the rollover popup links
var language = 'e';

function loadGMap( p_xml ) {
	if( GBrowserIsCompatible() ){
		map = new GMap2(document.getElementById("gmap"));	
		map.setCenter(new GLatLng(45.292792, -75.925999), 8);
		map.addControl(new GSmallMapControl());
		map.addControl(new GScaleControl());
		//map.addControl(new GMapTypeControl());
		//map.addControl(new GOverviewMapControl());
		map.enableContinuousZoom(); //not supported on all browsers
		map.enableInfoWindow();
		//map.setMapType(G_HYBRID_MAP);

		var iconPalladium = new GIcon();
			iconPalladium.image = "./images/map/pap.png";
			//iconPalladium.shadow = "./images/shadow.png";
			iconPalladium.iconSize = new GSize(149, 85);
			//iconPalladium.shadowSize = new GSize(66, 46);
			iconPalladium.iconAnchor = new GPoint(45, 85);
			iconPalladium.infoWindowAnchor = new GPoint(5, 1);
			
		var iconTown = new GIcon();
			iconTown.image = "./images/map/town.png";
			//iconTown.shadow = "./images/shadow.png";
			iconTown.iconSize = new GSize(75, 60);
			//iconTown.shadowSize = new GSize(66, 46);
			iconTown.iconAnchor = new GPoint(30, 55);
			iconTown.infoWindowAnchor = new GPoint(30, 1);

		// Download the data in data.xml and load it on the map. The format we
		// expect is:
		// <markers>
		//   <marker lat="37.441" lng="-122.141"/>
		//   <marker lat="37.322" lng="-121.213"/>
		// </markers>
		GDownloadUrl(p_xml, function(data, responseCode) {
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");
			
			for (var i = 0; i < markers.length; i++) {
				var point = new GLatLng( parseFloat( markers[i].getAttribute("lat") ), parseFloat( markers[i].getAttribute("lng") ) );

				//store info for reference:
				lat[i] = parseFloat( markers[i].getAttribute("lat") );
				longi[i] = parseFloat( markers[i].getAttribute("lng") );
				directionsLink[i] = String( markers[i].getAttribute("directionsLink") );
				title[i] = String( markers[i].getAttribute("title") );
				icon[i] = String( markers[i].getAttribute("icon") );
				
				map.addOverlay(createMarker(point, i, eval(icon[i])));
				//map.addOverlay( GMarker( point ) );
			}
			
		});

		//setTimeout("centerOn(1)", 2000);

	}
}


function bubble(i){
	var a=title[i];
	a+="<br/>";
	a+=descr[i];
	return a;
}

// Creates a marker at the given point with the given number label
function createMarker(point, number, icon) {
	var marker = new GMarker(point, icon);
	markers.push( marker );
	
	if( number==0 ){
		GEvent.addListener( marker, "click", function(){
			bubbleSize = new GSize(100, 50);
			//marker.openInfoWindowHtml( bubble(number), bubbleSize );
			centerOn(number, false);
			marker.openInfoWindowHtml( title[number]+'<br />'+ '<span style="font-size:0.9em;">'+directionsLink[number]+'</span>' );
		});	
	}else {
		GEvent.addListener( marker, "click", function(){
			bubbleSize = new GSize(100, 50);
			//marker.openInfoWindowHtml( bubble(number), bubbleSize );
			centerOn(number, false);
			if( language == 'f' ){
				var linkText = 'Obtenir le trajet';
			}else{
				var linkText = 'Get Directions';
			}
			marker.openInfoWindowHtml( title[number]+'<br /><br /><a target="_blank" href="'+directionsLink[number]+'" style="font-size:0.9em;">'+linkText+' &#8250;</a>' );
		});	
	}

	return marker;
}

//map.addOverlay(new GMarker( new GLatLng(longi[i],lat[i])));

function centerOn(i,center){
	//var map=new GMap2(document.getElementById("map"));	
	if (center != false) map.setCenter(new GLatLng(lat[i], longi[i]),4);
	var a="descr"+String(current);
	var b="descr"+String(i);
	//document.getElementById(a).style.display = 'none';
	//document.getElementById(b).style.display = 'inline'
	current=i;
}

// Initialise Google Maps
window.onload = function(){
	var theXml = 'common/googlemaps_e.xml';
	var theUrl = new String(window.location);
	if( theUrl.indexOf('_f.') >= 0 ){
		theXml = 'common/googlemaps_f.xml';
		language = 'f';
	}
	loadGMap( theXml );
};