jQuery(function($){

	var iconyellow = new GIcon();
	iconyellow.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_yellow.png';
	iconyellow.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	iconyellow.iconSize = new GSize(12, 20);
	iconyellow.shadowSize = new GSize(22, 20);                
	iconyellow.iconAnchor = new GPoint(6, 20);
	iconyellow.infoWindowAnchor = new GPoint(5, 1);

	var iconwhite = new GIcon();
	iconwhite.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_white.png';
	iconwhite.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	iconwhite.iconSize = new GSize(12, 20);
	iconwhite.shadowSize = new GSize(22, 20);                
	iconwhite.iconAnchor = new GPoint(6, 20);
	iconwhite.infoWindowAnchor = new GPoint(5, 1);

	var iconviolet = new GIcon();
	iconviolet.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_violet.png';
	iconviolet.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	iconviolet.iconSize = new GSize(12, 20);
	iconviolet.shadowSize = new GSize(22, 20);                
	iconviolet.iconAnchor = new GPoint(6, 20);
	iconviolet.infoWindowAnchor = new GPoint(5, 1);
	
	var iconsand = new GIcon();
	iconsand.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_sand.png';
	iconsand.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	iconsand.iconSize = new GSize(12, 20);
	iconsand.shadowSize = new GSize(22, 20);                
	iconsand.iconAnchor = new GPoint(6, 20);
	iconsand.infoWindowAnchor = new GPoint(5, 1);

	var iconpurple = new GIcon();
	iconpurple.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_purple.png';
	iconpurple.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	iconpurple.iconSize = new GSize(12, 20);
	iconpurple.shadowSize = new GSize(22, 20);                
	iconpurple.iconAnchor = new GPoint(6, 20);
	iconpurple.infoWindowAnchor = new GPoint(5, 1);

	var iconpink = new GIcon();
	iconpink.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_pink.png';
	iconpink.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	iconpink.iconSize = new GSize(12, 20);
	iconpink.shadowSize = new GSize(22, 20);                
	iconpink.iconAnchor = new GPoint(6, 20);
	iconpink.infoWindowAnchor = new GPoint(5, 1);

	var iconorange = new GIcon();
	iconorange.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_orange.png';
	iconorange.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	iconorange.iconSize = new GSize(12, 20);
	iconorange.shadowSize = new GSize(22, 20);                
	iconorange.iconAnchor = new GPoint(6, 20);
	iconorange.infoWindowAnchor = new GPoint(5, 1);

	var iconnavy = new GIcon();
	iconnavy.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_navy.png';
	iconnavy.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	iconnavy.iconSize = new GSize(12, 20);
	iconnavy.shadowSize = new GSize(22, 20);                
	iconnavy.iconAnchor = new GPoint(6, 20);
	iconnavy.infoWindowAnchor = new GPoint(5, 1);

	var iconlime = new GIcon();
	iconlime.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_lime.png';
	iconlime.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	iconlime.iconSize = new GSize(12, 20);
	iconlime.shadowSize = new GSize(22, 20);                
	iconlime.iconAnchor = new GPoint(6, 20);
	iconlime.infoWindowAnchor = new GPoint(5, 1);

	var icongreen = new GIcon();
	icongreen.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_green.png';
	icongreen.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	icongreen.iconSize = new GSize(12, 20);
	icongreen.shadowSize = new GSize(22, 20);                
	icongreen.iconAnchor = new GPoint(6, 20);
	icongreen.infoWindowAnchor = new GPoint(5, 1);

	var icongray = new GIcon();
	icongray.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_gray.png';
	icongray.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	icongray.iconSize = new GSize(12, 20);
	icongray.shadowSize = new GSize(22, 20);                
	icongray.iconAnchor = new GPoint(6, 20);
	icongray.infoWindowAnchor = new GPoint(5, 1);

	var iconforest = new GIcon();
	iconforest.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_forest.png';
	iconforest.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	iconforest.iconSize = new GSize(12, 20);
	iconforest.shadowSize = new GSize(22, 20);                
	iconforest.iconAnchor = new GPoint(6, 20);
	iconforest.infoWindowAnchor = new GPoint(5, 1);

	var iconburgundy = new GIcon();
	iconburgundy.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_burgundy.png';
	iconburgundy.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	iconburgundy.iconSize = new GSize(12, 20);
	iconburgundy.shadowSize = new GSize(22, 20);                
	iconburgundy.iconAnchor = new GPoint(6, 20);
	iconburgundy.infoWindowAnchor = new GPoint(5, 1);

	var iconbrown = new GIcon();
	iconbrown.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_brown.png';
	iconbrown.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	iconbrown.iconSize = new GSize(12, 20);
	iconbrown.shadowSize = new GSize(22, 20);                
	iconbrown.iconAnchor = new GPoint(6, 20);
	iconbrown.infoWindowAnchor = new GPoint(5, 1);

	var iconblack = new GIcon();
	iconblack.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_black.png';
	iconblack.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	iconblack.iconSize = new GSize(12, 20);
	iconblack.shadowSize = new GSize(22, 20);                
	iconblack.iconAnchor = new GPoint(6, 20);
	iconblack.infoWindowAnchor = new GPoint(5, 1);

	var iconaqua = new GIcon();
	iconaqua.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_aqua.png';
	iconaqua.shadow = 'http://www.bajatravesia.com/images/map-icons/mm_20_shadow.png';
	iconaqua.iconSize = new GSize(12, 20);
	iconaqua.shadowSize = new GSize(22, 20);                
	iconaqua.iconAnchor = new GPoint(6, 20);
	iconaqua.infoWindowAnchor = new GPoint(5, 1);

	var iconblue = new GIcon();
	iconblue.image = 'http://www.bajatravesia.com/images/map-icons/mm_20_blue.png';
	iconblue.shadow = 'http://www.bajatravesia.com/images/map-icons/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://www.bajatravesia.com/images/map-icons/mm_20_red.png';
	iconred.shadow = 'http://www.bajatravesia.com/images/map-icons/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["aqua"] = iconaqua;
	customIcons["black"] = iconblack;
	customIcons["blue"] = iconblue;
	customIcons["brown"] = iconbrown;
	customIcons["burgundy"] = iconburgundy;
	customIcons["forest"] = iconforest;
	customIcons["gray"] = icongray;
	customIcons["green"] = icongreen;
	customIcons["lime"] = iconlime;
	customIcons["navy"] = iconnavy;
	customIcons["orange"] = iconorange;
	customIcons["pink"] = iconpink;
	customIcons["purple"] = iconpurple;
	customIcons["red"] = iconred;
	customIcons["sand"] = iconsand;
	customIcons["violet"] = iconviolet;
	customIcons["white"] = iconwhite;
	customIcons["yellow"] = iconyellow;


	if(GBrowserIsCompatible()){
		var map = new GMap2(document.getElementById("map"));

		GDownloadUrl("/ajax/phpsqlajax_genxml.php", function(data) {
			var xml = GXml.parse(data);
			var bounds = new GLatLngBounds();
			var markers = xml.documentElement.getElementsByTagName("marker");				

			for (var i = 0; i < markers.length; i++){
				bounds.extend(new GLatLng(markers[i].getAttribute("lat"),markers[i].getAttribute("lng")));
			}
			var fpoint = new GLatLng(31.8591, -116.64);
			bounds.extend(fpoint);
			
			map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
			map.setMapType(G_HYBRID_MAP);
			
			map.removeMapType(G_SATELLITE_MAP);
			map.addMapType(G_PHYSICAL_MAP);
			var bottomRight = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,30));
			var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,30));

			map.addControl(new GSmallMapControl(), topRight);
			
			map.addControl(new GMapTypeControl(), bottomRight);

			for (var i = 0; i < markers.length; i++){
				var name = markers[i].getAttribute("team");
				var colour = markers[i].getAttribute("colour");
				var img = markers[i].getAttribute("img");
				var url = markers[i].getAttribute("url");
				var latitude = markers[i].getAttribute("lat");
				var longitude = markers[i].getAttribute("lng");
				var time = markers[i].getAttribute("pretty_time");
				var point = new GLatLng(parseFloat(latitude), parseFloat(longitude));
				var marker = createMarker(point, time, name, colour, img, url);
				map.addOverlay(marker);
			}
			var fmarker = new GMarker(fpoint, 'G_DEFAULT_ICON');
			GEvent.addListener(fmarker, 'click', function(){
				var fhtml = '<h3>Baja Travesia 2008 Finish Line</h3>' + '<p>The Big Flag - Ensenada Marina<\/p>';
				fmarker.openInfoWindow(fhtml);
			}); 
			map.addOverlay(fmarker);
		});

	}

function createMarker(point, time, name, colour, img, url){
	var marker = new GMarker(point, customIcons[colour]);
	GEvent.addListener(marker, 'click', function(){
		var html = '<h4>' + name + '</h4>' + '<p>' + time + '<br\/><a href=\"' + url + '\">Team Page<\/a><\/p>';
		marker.openInfoWindow(html);
	});
	return marker;
}	
});
$(window).unload(function(){
	GUnload();
});
