// JavaScript Document

/*** UTILITY OBJECT ***/

var map			= null;
var center 		= null;
var point 		= new Array();
var marker 		= new Array();
var baseicon 	= null;

// Creates a marker whose info window displays the letter corresponding
// to the given index.
function createMarker(point, letter, HtmlMarker, zoom) 
{
	// Create a lettered icon for this point using our icon class
	var letteredIcon = new GIcon(baseIcon);
	
	letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
	
	 // Set up our GMarkerOptions object
    markerOptions = { icon:letteredIcon };
    var marker = new GMarker(point, markerOptions);
	
	GEvent.addListener(marker, "click", function() 
	{
		map.setCenter(marker.getLatLng(), zoom);
		marker.openInfoWindowHtml(HtmlMarker);
    }
	);
	return marker;      
}

function CreateGoogleMap() 
{
	if (GBrowserIsCompatible()) 
	{
       	map = new GMap2(document.getElementById("GoogleMap"));
		
				map.addControl(new GMapTypeControl());
	//		map.addControl(new GLargeMapControl());
				map.addControl(new GSmallMapControl());
	//		map.setMapType(G_SATELLITE_MAP);
				map.setMapType(G_HYBRID_MAP);
				// create a base icon for all of our markers that specifies the
        // shadow, icon dimensions, etc.
       	baseIcon = new GIcon();
        baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
   	    baseIcon.iconSize = new GSize(20, 34);
       	baseIcon.shadowSize = new GSize(25, 25);
       	baseIcon.iconAnchor = new GPoint(9, 34);
       	baseIcon.infoWindowAnchor = new GPoint(9, 2);
       	baseIcon.infoShadowAnchor = new GPoint(18, 25);
        				
		GDownloadUrl("../Bases/GoogleMarker.xml", function(data) 
   		{
			var xml = GXml.parse(data);
           	var markers = xml.documentElement.getElementsByTagName("marker");
									
			for (var i = 0; i < markers.length; i++)
           	{
           		var Id = markers[i].getAttribute("id");
				var Latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")));
				
				var HtmlMarker = markers[i].getElementsByTagName("marker_html")[0].firstChild.data;
				var Zoom = parseInt(markers[i].getAttribute("zoom"));
								
				if (Id == "0")
				{
					map.setCenter(Latlng, Zoom);
				}
				else
				{
					map.addOverlay(createMarker(Latlng, Id, HtmlMarker, Zoom));
				}
            }
       	}
		);
    }
}

function FindOnMap(lat, lng, text, action, zoomlevel)
{
	var location = new GLatLng(parseFloat(lat), parseFloat(lng));
	
	
	map.setCenter(location, parseInt(zoomlevel));
	
	if(action.toLowerCase() == "true")
	{
		map.openInfoWindowHtml(location, text);
	}
	else
	{
		map.closeInfoWindow();
	}
	
	
}		
