window.onunload=GUnload;
window.onload=startup;
	
	var latX;
	var lngY;
	var zm;
	var map;
	var listener;
	var listener2;
	var flag="OK";
	var baseIcon = new GIcon();
	var timerID;
	var x;
	var y;
	var zmlevel;
	baseIcon.shadow = "images/shadow.png";
	baseIcon.iconSize = new GSize(12, 20);
	baseIcon.shadowSize = new GSize(22, 20);
	baseIcon.iconAnchor = new GPoint(6, 20);
	baseIcon.infoWindowAnchor = new GPoint(4, 23);
	baseIcon.infoShadowAnchor = new GPoint(14, 43);

function startup(){
	load();
	hideLayer();
}
	
function loadMap() {
	y=37.0;
	x=-110.2;
	zl=7;
	map = new GMap2(document.getElementById("map"));
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GOverviewMapControl(), new GControlPosition(G_ANCHOR_BOTTOM_RIGHT));
	map.addControl(new GScaleControl());
	map.setCenter(new GLatLng(37.0, -110.2), 7, G_HYBRID_MAP);
	map.enableDoubleClickZoom();
	new GKeyboardHandler(map);
}

function load() {
   	if (GBrowserIsCompatible()) {
   			loadMap();
       	addMarker();
		listener=GEvent.addListener(map,'moveend',addMarker);
		listener=GEvent.addListener(map,'zoomend',addMarker);
		listener=GEvent.addListener(map,'dragend',addMarker);
		listener2=GEvent.addListener(map,'moveend',mapInfo);
		listener2=GEvent.addListener(map,'zoomend',mapInfo);
		listener2=GEvent.addListener(map,'dragend',mapInfo);
		GEvent.addListener(map,'click',function(overlay, point){
										if(point){document.getElementById('click_lat').value=point.y.toFixed(4);
												   document.getElementById('click_long').value=point.x.toFixed(4);
		}});
		document.getElementById("centerX").value = x; 
		document.getElementById("centerY").value = y;
		document.getElementById("zoomlevel").value = zl;
		document.onkeyup = keyCheck;
	}else {
	alert("Your browser is not compatible with Google Maps.\n"
			+"Please visit http://local.google.com/  for more information.\n");
	}
}

function addMarker(){
	//var count = 0;
	var area = map.getBounds();

	if(flag!="NG"){
		map.clearOverlays(); 
		//document.getElementById("flag").innerHTML="default clear";
		GDownloadUrl("xml/data.xml", function(data, responseCode) {
			var xml = GXml.parse(data);
			var pins = xml.documentElement.getElementsByTagName("pin");
			for (var i = 0; i < pins.length; i++) {
   				var point = new GLatLng(parseFloat(pins[i].getAttribute("lat")), parseFloat(pins[i].getAttribute("lng")));
				var html='<div id="info">click thumbnail to enlarge</div>';
					html+='<div id="swindow" height="'+pins[i].getAttribute("h")+'"><a id="Lphoto" title="'+ pins[i].getAttribute("caption") + '" href="'+ pins[i].getAttribute("lPhotoURL") + '" rel="lightbox" onclick="showLightbox(this); return false;"><img src="' + pins[i].getAttribute("sPhotoURL") + '"/><p id="scap">'+ pins[i].getAttribute("title") +'</p></a></div>';
				var viewPT= createMarker(point,html,pins[i].getAttribute("icon"));
				if(area.contains(point)){map.addOverlay(viewPT);
    			//count++;
    			}
    			//document.getElementById("flag").innerHTML="flag:"+flag;
    	}});
	}else{
		setTimeout(function(){
			flag="OK";
  			/*document.getElementById("flag").innerHTML="flag:"+flag;*/},100);
  		timerID=setTimeout(function(){
  		if(flag=="OK"){
  		map.clearOverlays(); 
  		//document.getElementById("flag").innerHTML="2nd clear!!";
  		GDownloadUrl("xml/data.xml", function(data, responseCode) {
			var xml = GXml.parse(data);
			var pins = xml.documentElement.getElementsByTagName("pin");
			for (var i = 0; i < pins.length; i++) {
   				var point = new GLatLng(parseFloat(pins[i].getAttribute("lat")), parseFloat(pins[i].getAttribute("lng")));
				var html='<div id="info">click thumbnail to enlarge</div>';
					html+='<div id="swindow"><a id="Lphoto" title="'+ pins[i].getAttribute("caption") + '" href="'+ pins[i].getAttribute("lPhotoURL") + '" rel="lightbox" onclick="showLightbox(this); return false;"><img src="' + pins[i].getAttribute("sPhotoURL") + '"/><p id="scap">'+ pins[i].getAttribute("title") +'</p></a></div>';
				var viewPT= createMarker(point,html,pins[i].getAttribute("icon"));
				if(area.contains(point)){map.addOverlay(viewPT);
    			//count++;
    			}
    			//document.getElementById("flag").innerHTML="GD--flag:"+flag;
  			}});}},15000);  		
  	}	
}

function createMarker(point, html, imageIcon) {
  var icon = new GIcon(baseIcon);
	  icon.image = imageIcon;
  var markerA = new GMarker(point, icon);

  GEvent.addListener(markerA, "click", function() {setTimeout(function(){markerA.openInfoWindowHtml(html)},500);
  										flag="NG";
  										clearTimeout(timerID);
   														//document.getElementById("flag").innerHTML="flag:"+flag;
  										
  });	
  return markerA;
}

function mapInfo(){
	var vx;
	var vy;
	x = (map.getCenter()).lng();
	y = (map.getCenter()).lat();
	vx=parseFloat(x);
	vy = parseFloat(y);
	zmlevel = map.getZoom();
	document.getElementById("centerX").value = vx.toFixed(4);
	document.getElementById("centerY").value = vy.toFixed(4);
	document.getElementById("zoomlevel").value = zmlevel; 
}

function setMapCenter(){
	var mv_x = document.getElementById("centerX").value;
	var mv_y = document.getElementById("centerY").value;
	var mv_zl = document.getElementById("zoomlevel").value;
	map.setCenter(new GLatLng(mv_y, mv_x), parseInt(mv_zl));
}

function keyCheck(evt){
	evt = (evt) ? evt : ((window.event) ? event: null);
	if(evt){
		if(evt.keyCode==13){
			setMapCenter();
		}
	}
}

function showLayer(){
	document.getElementById("instLayer").style.display="block";
}
function hideLayer(){
	document.getElementById("instLayer").style.display="none";
}
function openBrWindow(theURL,winName,features) { 
  window.open(theURL,winName,features);
  }

 function googleS(a,b,c)
{latX = a; lngY = b; zm = c;
window.open("google_proto14S.html","subsid","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=yes ,resizable=yes,Width=799,Height=790");
 }
 
function region(){
	var reg = document.getElementById("dest").value;
	switch(reg){
		case "AZ":
			googleS('35.8','-111.2','8'); break;
		case "CO":
			googleS('39.3','-106','7'); break;
		case "NM":
			googleS('36.4','-108.4','9'); break;
		case "UT":
			googleS('39.3','-111.4','7'); break;
		default:
			alert("Sorry, choose again!");
	}
}

function destpark(){
	var reg = document.getElementById("park").value;
	switch(reg){
		case "ARCH":
			googleS('38.7','-109.5','11'); break;
		case "BRCA":
			googleS('37.6','-112.18','12'); break;
		case "CANY":
			googleS('38.29','-109.64','10'); break;
		case "CARE":
			googleS('38.19','-111.09','10'); break;
		case "GRCA":
			googleS('36.49','-112.31','9'); break;
		case "MONU":
			googleS('37.03','-109.98','10'); break;
		case "ZION":
			googleS('37.33','-113.03','11'); break;
		default:
			alert("Sorry, choose again!");
	}
} 