var mapXml = {	
	"red" : [],
	"bubble" : [],
	"marker" : [],
	"map" : "",
	"point" : [],
	"i" : "0",
	"initial" : "",
	"init" : function() {
	this.mymap();
	},
	"createMarker" : function(point, html) {
		var marker = new google.maps.Marker(point);
		google.maps.Event.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
			}
		);
		this.red[this.i] = marker; 
		this.bubble[this.i] = html;
		this.i++;
	return marker;
	},
	"mymap" : function() {
		var request = google.maps.XmlHttp.create();
		request.open("GET", "location/markers.xml", true);
		request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
		request.onreadystatechange = function() {
		if (request.readyState == 4) {var xmlDoc = request.responseXML;	
			var center = xmlDoc.documentElement.getElementsByTagName("center");	
	
			this.map = new google.maps.Map2(document.getElementById("map"));
			for (var i = 0; i < center.length; i++) {
			var mycenter = new google.maps.LatLng(
				parseFloat(center[i].getAttribute("lat")), 
				parseFloat(center[i].getAttribute("lng")));
				this.map.setCenter(mycenter,parseInt(center[i].getAttribute("zoom")));
				this.map.savePosition(mycenter,parseInt(center[i].getAttribute("zoom")));
			} 
			this.map.addControl(new google.maps.LargeMapControl());
			this.map.addControl(new google.maps.MapTypeControl());
			google.maps.Event.bind(this.map, "infowindowclose", this, function() {
				this.map.returnToSavedPosition();
				});
				
			var spots = xmlDoc.documentElement.getElementsByTagName("marker");
			var myspots = "";
			for (var q = 0; q < spots.length; q++) {	
				var point = new google.maps.LatLng(parseFloat(spots[q].getAttribute("lat")), 
						parseFloat(spots[q].getAttribute("lng")));
				var html = "<div id='bubble'><h3>" + spots[q].getAttribute("name") + "</h3>" +
				 "<small>" + spots[q].getAttribute("location") + "</small>" +
				"<p>" + spots[q].getAttribute("about") + "</p></div>";		
				var marker = mapXml.createMarker(point,html);
				this.map.addOverlay(marker);
				if (q == 0) {
          marker.openInfoWindowHtml(html);        
        }
				myspots += "<div class='spot'><a href='javascript:void(0)' onclick='mapXml.myclick(" + q + ")'>" + spots[q].getAttribute("name") + "</a></div>";
				}
				document.getElementById("legend").innerHTML = myspots;
         	
			}
		}
		request.send(null);
	},
		"myclick" : function(i) {
		this.red[i].openInfoWindowHtml(this.bubble[i]); 
		this.map.panTo(this.red[i].getLatLng());
	}

}

function localmap() {
mapXml.init();
}

