// JavaScript Document
//<![CDATA[
var mapLoaded = false;

var iconBlue = new GIcon(); 
iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
iconBlue.iconSize = new GSize(12, 20);
iconBlue.shadowSize = new GSize(22, 20);
iconBlue.iconAnchor = new GPoint(6, 20);
iconBlue.infoWindowAnchor = new GPoint(5, 1);

var iconRed = new GIcon(); 
iconRed.image = 'http://labs.google.com/ridefinder/images/mm_20_red.png';
iconRed.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
iconRed.iconSize = new GSize(12, 20);
iconRed.shadowSize = new GSize(22, 20);
iconRed.iconAnchor = new GPoint(6, 20);
iconRed.infoWindowAnchor = new GPoint(5, 1);

var customIcons = [];
customIcons["blue"] = iconBlue;
customIcons["red"] = iconRed;

function GLoad(id, showMarker) {
	if(!document.getElementById(id)){
		id = "map";
	}
	
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById(id));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.removeMapType(G_HYBRID_MAP);
		map.addMapType(G_PHYSICAL_MAP);
		map.setMapType(G_PHYSICAL_MAP);
		map.isLoaded(mapLoaded = true);
		
		var markers = XMLBrowse.documentElement.getElementsByTagName("related")[0].getElementsByTagName("tour");
		
		//sets center and marker on selected tour
		try{
			
			var selectedTour = XMLBrowse.documentElement.getElementsByTagName("selected")[0].getElementsByTagName("tour");
			var startPoint = new GLatLng(parseFloat(selectedTour[0].getAttribute("lat")),
									   parseFloat(selectedTour[0].getAttribute("lng")));

		//sets marker on first related tour
		}catch(e){
			var startPoint = new GLatLng(parseFloat(markers[0].getAttribute("lat")),
									   parseFloat(markers[0].getAttribute("lng")));
		}
		
		map.setCenter(startPoint, 13);// Center map on first listing
		
		createMarker(markers);
		
		if(selectedTour){
			createMarker(selectedTour);
		}
			
		//shows marker after loading, if showMarker is delivered
		if(typeof showMarker == 'number'){
			map.isLoaded(GEvent.trigger(marker[showMarker],'click'));
		}
		
			
	}
}

function createMarker(markers) {
	for (var i = 0; i < markers.length; i++) {
		var id = markers[i].getAttribute("id");
		var vtLink = markers[i].getAttribute("vtLink");
		var type = markers[i].getAttribute("type");
		var lat = parseFloat(markers[i].getAttribute("lat"));
		var lng = parseFloat(markers[i].getAttribute("lng"));
		marker[id] = createMarkerCode(vtLink, type, lat, lng);
		map.addOverlay(marker[id]);
	}
}
function createMarkerCode(vtLink, type, lat, lng) {

	var point = new GLatLng(lat,lng);
	var marker = new GMarker(point, customIcons[type]);

	var html = "<div class='listIconMap'>\n";
	html += vtLink;
	html += "</div>\n";
	html += "<div class='vtLinkMap'>\n";
	html += "<a class='iconLink external' href='http://www.google.com/maps?source=uds&amp;saddr="+lat+","+lng+"' target='_blank'>get directions</a>\n";
	html += "</div>\n\n";
  
	GEvent.addListener(marker, 'click', function() {
	marker.openInfoWindowHtml(html);
	});
	return marker;
}
//]]>
