
//<![CDATA[

// -- Custom Functions --
//Simply writes the contents of an array
function wArray(a)
{
	var output = "";
	for(i = 0; i < a.length; i++)
	{
		output += a[i];
	}
	document.getElementById('locationlist').innerHTML = output;
}


function updateList(action)
{
	switch(action)
	{
		case "cl_all":
		break;
		case "add_all":
		break;
	}
}

function toggleGMarker(map, lng, lat, desc, icon)// check the order of lng and lat
{
	//alert(map);
	var chMarker = false;
	var pt = new GPoint(lng, lat);
	// for(i = 0;i < map.overlays.length;i++)
	// 	{
	// 		if(map.overlays[i].point.x == pt.x && map.overlays[i].point.y == pt.y)
	// 		{
	// 			if(map.getCenterLatLng().x != pt.x && map.getCenterLatLng().y != pt.y)
	// 			{
	// 				map.recenterOrPanToLatLng(pt);
	// 			}
	// 			else
	// 			{
	// 				//remove the marker
	// 				map.removeOverlay(map.overlays[i]);
	// 			}
	// 			chMarker = true;
	// 		}
	// 	}
	map.clearOverlays();
	
	if(!chMarker)
	{
		var point = new GPoint(lng, lat);
		var marker = new GMarker(point, icon);
		map.addOverlay(marker);
		//map.recenterOrPanToLatLng(point);
		map.panTo(new GLatLng(lat,lng));
	}
}




//Setup the map if the browser is compatable
if (GBrowserIsCompatible()) { //Start browser compadibility question
	var lmap = new GMap2(document.getElementById("dmap"));
	//lmap.centerAndZoom(new GPoint(-79.037274,43.172365 ), 3);
	lmap.setCenter(new GLatLng(43.172365,-79.037274), 15);
	lmap.addControl(new GMapTypeControl());
	lmap.addControl(new GSmallMapControl());
	var icon = new GIcon();
	icon.image = "http://www.historiclewiston.org/images/gmap_icon.png";
	icon.shadow = "";
	//icon.shadow = "http://www.historiclewiston.org/images/gmap_icon_shadow.png";
	icon.iconSize = new GSize(17, 37);
	//icon.shadowSize = new GSize(31, 37);
	icon.iconAnchor = new GPoint(8, 37);
	icon.infoWindowAnchor = new GPoint(8, 1);
	//        var point = new GPoint(bounds.minX + width * Math.random(),
	//                        bounds.minY + height * Math.random());
	//
	//var pt = new GPoint(-79.037274,43.172365);
	//var marker = new GMarker(pt);
	//lmap.addOverlay(marker);

	// Download the data in data.xml and load it on the map. The format we
	// expect is:
	// <markers>
	//   <marker lat="37.441" lng="-122.141" loc="the location"/>
	//   <marker lat="37.322" lng="-121.213" loc="the second loc"/>
	// </markers>
	var request = GXmlHttp.create();
	request.open("GET", "locations.xml", true);

	request.onreadystatechange = function() {
		var allLoc = new Array(); //will be an array of list items for a list of the locations in the xml list
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
			var markers = xmlDoc.documentElement.getElementsByTagName("marker");

			for (var i = 0; i < markers.length; i++) {
				var tlocation = markers[i].getAttribute("loc");
				var desc = markers[i].getAttribute("desc");
				var lng = parseFloat(markers[i].getAttribute("lng"));
				var lat = parseFloat(markers[i].getAttribute("lat"));
				var point = new GPoint(lng, lat);
				//var point = new GLatLng(lat,lng);
				var marker = new GMarker(point);
				marker.loc = tlocation;
				//lmap.addOverlay(marker);
				allLoc[i] = '<li><span onclick="toggleGMarker(lmap, '+lng+','+lat+',\''+ desc +'\',icon)">' + tlocation + '</span></li>';
			}

			wArray(allLoc);
		}
	}

	request.send(null);

	//Event listener for the clicking of the points
	GEvent.addListener(lmap, 'click', function(overlay, point)
	{
		if (overlay) {lmap.removeOverlay(overlay);}
		// Uncomment this line to see the long and lat of the location when clicked
		//        else if (point){lmap.addOverlay(new GMarker(point))alert("x = " + point.x + "y = " + point.y);}
	});

	}//END if (GBrowserIsCompatible()) line

	//]]>