var mymap;
var default_zoom = 12;
var longzoom = 12;
var shortzoom = 15;
var venues = new Array();
var infos, markers;
var request = GXmlHttp.create();
request.open('GET', 'venues.xml', true);
request.onreadystatechange = 
function() 
{
	var xmlDoc, markers, ctr;
	if (request.readyState == 4) 
	{
		xmlDoc = request.responseXML;
		markers = xmlDoc.documentElement.getElementsByTagName("marker");
		
		for (ctr = 0; ctr < markers.length; ctr ++) 
		{
			venues[ctr] = new Array(parseFloat(markers[ctr].getAttribute("lng")), 
								    parseFloat(markers[ctr].getAttribute("lat")),
								    markers[ctr].getAttribute("venuename"),
									markers[ctr].getAttribute("desc"), null);
		}
	}
	loadVenues();
}
//




function init()
{
	var home_point = new GLatLng(52.12864076376693, -106.67037963867188);
	
	mymap = new GMap2(document.getElementById("map_canvas"));
	mymap.setCenter(home_point, default_zoom, G_NORMAL_MAP); // zoom to Saskatoon
	//map.setMapType(G_NORMAL_MAP);
	
	mymap.addControl(new GLargeMapControl());
	mymap.addControl(new GMapTypeControl());
	//alert("Adding controls!");
	//map.addControl(new GScaleControl());
	request.send(null);
	mymap.checkResize(); 
	
	
}

function loadVenues()
{
	var point, marker;
	markers = new Array(venues.length);
	infos = new Array(venues.length);
	for (var ctr = 0; ctr < venues.length; ctr ++) 
	{
		point = new GLatLng(venues[ctr][1], venues[ctr][0]);
		markers[ctr] = new GMarker(point, {title:venues[ctr][2]});
		infos[ctr] = "<p style=\"font-size:14px; font-weight:bold;\">" + venues[ctr][2] + "</p>";
		infos[ctr] += "<p style=\"font-size:12px;\">(" + venues[ctr][3] + ")</p>";
		
		GEvent.addListener(markers[ctr], "click", function() { showInfo(this); } );
		mymap.addOverlay(markers[ctr]);
	}
}

function showInfo(obj)
{
	for(ctr = 0; ctr < venues.length; ctr ++)
	{
		if (obj == markers[ctr])
		{
			obj.openInfoWindowHtml(infos[ctr], {maxWidth:280});
			break;
		}
	}	
		
}

function moveToVenue(ctr)
{
	var point, marker;
	if (ctr > -1)
	{
		/*if (map.getZoom() < shortzoom)
		{
			map.setZoom(shortzoom);
		}
		
		*/
		point = new GLatLng(venues[ctr][1], venues[ctr][0]);
		//mymap.setCenter(point, shortzoom);
		if (mymap.getZoom() != shortzoom)
		{
			mymap.setZoom(shortzoom);
		}
		mymap.panTo(point);
		
		/*map.clearOverlays();
		marker = new GMarker(point);
		map.addOverlay(marker); */
	}
	else
	{
		loadVenues();
		mymap.setZoom(longzoom);
		mymap.PanTo(home_point);
	}
}

function getLatLong()
{
	var elem = document.getElementById("latlongbox");
	var latlong = mymap.getCenterLatLng();
	var latt = latlong.y
	var longt = latlong.x;
	//alert(latt + "\n" + longt);
	
	var str = "\t<marker lat=\"" + latt + "\" lng=\"" + longt + "\">\n" + 
			  "\t\t<venuename></venuename>\n\t</marker>\n";
	elem.value = str;//latt + ", " + longt;
	elem.select();

	
}	