var map;
function initMap() {
	map = new GMap2(document.getElementById("map"));
	map.addControl(new GMapTypeControl());
	map.addControl(new GLargeMapControl());
	map.addControl(new GScaleControl(200));
	map.addMapType(G_PHYSICAL_MAP)
	map.addMapType(G_SATELLITE_3D_MAP)
	map.enableScrollWheelZoom();
	map.enableContinuousZoom();
	map.setCenter(new GLatLng(55.0,35.0),4,G_HYBRID_MAP)
	
	var baseIcon = new GIcon();
	baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.shadowSize = new GSize(37, 34);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	baseIcon.infoShadowAnchor = new GPoint(18, 25);

	function createMarker(point,id,site,geo,spa,misc,chn) {
		var icon = new GIcon(baseIcon);
		icon.image = "markers/marker"+chn+".png";
		var marker = new GMarker(point, icon);
		var html = '<div class="popup"><strong>'+site+'</strong>';
		if (geo == 1) html += '<br />NGA <a href="photos/'+id+'.png" target="_photo">photo</a>';
		if (spa == 1) html += '<br />Space Imaging <a href="photos/'+id+'.jpg" target="_photo">photo</a>';
		if (misc != 0) html += '<br />Misc <a href="photos/'+misc+'" target="_photo">photo</a>';
		html += '</div>';
		GEvent.addListener(marker, 'click', function() {
			marker.openInfoWindowHtml(html);
		});
		return marker;
	}
	
	var request = GXmlHttp.create();
	request.open('GET','s200.xml',true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
			var markers = xmlDoc.documentElement.getElementsByTagName("Placemark");
			for (var k=0; k<markers.length; k++) {
				var point = new GLatLng(parseFloat(markers[k].getAttribute("Lat")), parseFloat(markers[k].getAttribute("Lon")));
				var misc = (markers[k].getAttribute("Misc") || 0);
				var marker = createMarker(point,markers[k].getAttribute("Id"),markers[k].getAttribute("Name"),markers[k].getAttribute("Geo"),markers[k].getAttribute("Spa"),misc,markers[k].getAttribute("Chn"))
				map.addOverlay(marker);
			}
	
			var ulElem = document.createElement('ul');
			var liElem = document.createElement('li');
	
			var rootNode = ulElem.cloneNode(true);
			var countries = xmlDoc.documentElement.getElementsByTagName("LayerSet");
			for (var i=0; i<countries.length; i++) {
				var countryNode = liElem.cloneNode(true);
				countryNode.innerHTML = countries[i].getAttribute("Name");
				rootNode.appendChild(countryNode);
	
				var menuNode = ulElem.cloneNode(true);
				var sites = countries[i].childNodes;
				for (var j=0; j<sites.length; j++) {
					if (sites[j].nodeType == 1) {
						var siteNode = liElem.cloneNode(true);
						siteNode.innerHTML = '<a href="#" onclick="map.setCenter(new GLatLng('+parseFloat(sites[j].getAttribute("Lat"))+','+parseFloat(sites[j].getAttribute("Lon"))+'),13)">'+sites[j].getAttribute("Name")+'</a>';
						menuNode.appendChild(siteNode);
					}
				}
				rootNode.appendChild(menuNode);
			}
			document.getElementById("menu").insertBefore(rootNode,document.getElementById("mail"));
		}
	}
	request.send(null);
}

window.onload = initMap;
window.onunload = GUnload;
