// I learned how to do the GXslt transformations from http://kellyfam.net/xsl/
// The sidebar I learned from http://cougarcard.wsu.edu/map.aspx
var map;
var sidebar = "rightpadding";
var sidebarxsl = "sidebar.xsl";
var infowindowxsl = "infowindow.xsl";
var dataxml = "data.aspx";
var gmarkers = [];

setTimeout('loadmap()',500);

function loadmap() {
	map = new GMap(document.getElementById("map"));
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.centerAndZoom(new GPoint(-72.45146, 43.87175), 9);
		
	createMarkers();
}

function createMarkers()
{
	var request = GXmlHttp.create();
	request.open("GET", dataxml, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;	
			
			var markers = xmlDoc.documentElement.getElementsByTagName("marker");
			
			var details = xmlDoc.documentElement.getElementsByTagName("details");
			
			for (var i = 0; i < markers.length; i++) {
				createMarker(markers[i],details[i]);
			}
		createSideBar(xmlDoc);
		}
	}
	request.send(null);
}

function createMarker(markerElement, detailsElement) {
	
	var point = new GPoint(parseFloat(markerElement.getAttribute("long")),parseFloat(markerElement.getAttribute("lat")));

	var marker = new GMarker(point);
	gmarkers[markerElement.getAttribute("index")] = marker;
	
	map.addOverlay(marker);
	GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowXslt(markerElement, infowindowxsl);
	});
}

function createSideBar(xmldoc)
{
	var request = GXmlHttp.create();
	request.open("GET", sidebarxsl, true);
	request.onreadystatechange = function() {
	if (request.readyState == 4) {
		var xslDoc = request.responseXML;
		var xsl = GXslt.create(xslDoc);
		xsl.transformToHtml(xmldoc,document.getElementById(sidebar));
		}
	}
	request.send(null);
}

function sidebarclick(index)
{
	GEvent.trigger(gmarkers[index], "click"); 
}

