// Zip code search Credit www.nypl.org/hours/
switch( document.domain ) {
	   case 'www.denverlibrary.org' : 
	   document.write('<scr' + 'ipt src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAB-Fuk8HJWYdUJitz1hBrFhRc0HWCasid1tNTwRsiSBFeJwSlxRSxRZpzRAyn8uzxmf0EgZ6O8bJJ8g" type="text/javascript"></scr' + 'ipt>'); break;
	   case 'denverlibrary.org' :  
	   document.write('<scr' + 'ipt src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAB-Fuk8HJWYdUJitz1hBrFhSP9221noVcI8EDoHWXtoUwW9nUmBRZzGgtcebGtkRFvJKwpavgcMKuuQ" type="text/javascript"></scr' + 'ipt>'); break;
	   case 'dpldev.denverlibrary.org' : 
	   document.write('<scr' + 'ipt src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAB-Fuk8HJWYdUJitz1hBrFhQ1eYFNihhxsJessZ-3X-YPuDUsIxTpQGqeSgQEs0tZ-khyQoIIzb2Srw" type="text/javascript"></scr' + 'ipt>'); break;
	   default  : //Test site API Key stage.denverlibrary.org
	   document.write('<scr' + 'ipt src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAB-Fuk8HJWYdUJitz1hBrFhTT9oSWiCOjP51K1-VoWu1CeCpA1BQIXb98MailEvTmmpWWoGTPmmV-4g" type="text/javascript"></scr' + 'ipt>'); break;
	}

// declare variables
var icon;
var markers;
var infoHtml;
var map;
var myZipcode = new Array();
var toolbar_html = '';

function goToZip() {
		var myZip = document.getElementById("zip");
		// Find the submitted zipcode within the myZipcode array
		for (i = 0 ; i < myZipcode.length ; i++) {
			if (myZipcode[i][0] == myZip.value) {
			// Get zip from form.select; grab lat_long; reset and zoom map to new center point
			var myCtr = new Array(myZipcode[i][1],myZipcode[i][2]);
			}
		}
		if (myCtr) {
			map.setCenter(new GLatLng(parseFloat(myCtr[0]),parseFloat(myCtr[1])), 13);
			window.setTimeout(function() { map.panTo(new GLatLng(parseFloat(myCtr[0]),parseFloat(myCtr[1]))); }, 1000);
		} else {
			alert('Sorry, your zipcode was not found.\nPlease enter a Denver zipcode and try again.\n');
		}
	}

function g_onLoad() {  
	if (GBrowserIsCompatible()) { 
	
	var toolbar_html = '';
	// create tiny icon for all of our markers that specifies the
	// shadow, icon dimensions, etc.  
	icon = new GIcon();
	icon.image = "/locations_hours/gmapfiles/images/mm_20_red.png";
	icon.shadow = "/locations_hours/gmapfiles/images/mm_20_shadow.png";
	icon.iconSize = new GSize(12, 20);
	icon.shadowSize = new GSize(22, 20);
	icon.iconAnchor = new GPoint(6, 20);
	icon.infoWindowAnchor = new GPoint(5, 1);
	icon.infoShadowAnchor = new GPoint(18, 25);
	  // create map
	  map = new GMap2(document.getElementById("map"));
	  map.setCenter(new GLatLng(39.7320099267789,-104.94552612304688), 17-6);
	  map.addControl(new GLargeMapControl());
	  map.addControl(new GMapTypeControl());  
	  
	  // create pannel 
	  var panel = document.getElementById('panel');
	  var html = document.getElementById('panel').innerHTML;	    
	  var infoSize = new GSize(200, 200);
		  
	 // Display x, y
	  GEvent.addListener(map, "moveend", function() {
		  var center = map.getCenter();
		  var zoom = map.getZoom();
		  var latLngStr = 'Center: ' + center.x + '°, ' + center.y + '° Zoom: ' + zoom;
		  document.getElementById("message").innerHTML = latLngStr;});
	
	  // Download the data in locations.xml and load it on the map. 
	  var request = GXmlHttp.create();
	  request.open("GET", "/locations_hours/gmapfiles/locations.xml", true);
	  request.onreadystatechange = function() {
		  if (request.readyState == 4) {
			  var xmlDoc = request.responseXML;
			  var markerElements = xmlDoc.documentElement.getElementsByTagName("marker");
			  
			  markers = new Array( markerElements.length );
			  infoHtml = new Array( markerElements.length );
			  
			  // begin for loop
			  for (var i = 0; i < markerElements.length; i++) {
				var Lat = parseFloat(markerElements[i].getAttribute("lat"));
				var Lng = parseFloat(markerElements[i].getAttribute("lng"));
				var Code = markerElements[i].getAttribute("code");
				var Location = markerElements[i].getAttribute("location");
				var Phone = markerElements[i].getAttribute("phone");
				var Addr = markerElements[i].getAttribute("addr");
				var Zip = markerElements[i].getAttribute("zip");
				var Url = markerElements[i].getAttribute("url");
				// Create panel	
				html += "<a href='javascript:opener(" + i + ")'>" + Location + "</a><br>";
				// Create marker. Please use either option 1 or option 2.
				
				// option 1: Uncomment the next line if you want to use Google tooltip
				 markers[i] = new GMarker(new GLatLng(Lat, Lng), { title: Location, icon: icon });
				
				// option 2: requires GxMarker Class defined in gxmarker.2.js 
				// Uncomment the next two lines if you want to use the plugin tooltip
				//markers[i] = new GxMarker( new GLatLng(Lat, Lng), icon );
				//markers[i].setTooltip(Location);
				
				// Show the following HTML in the info window when it is clicked
				infoHtml[i] ="<div class=\'infoWindow\'>"
				infoHtml[i] += "<b><a href='" + Url + "' target=_new>" + Location + "</a></b><br>";
				infoHtml[i] += Phone + "<br>" + Addr + "<br> Denver, CO " + Zip + "<br><br>";
				//add hours ancer 
				infoHtml[i] += "<a href=#" + Code + "><b>Hours</b></a> :<br>";
				//add hours
				var hoursElements = markerElements[i].getElementsByTagName("hours");
				infoHtml[i] += "<table>";
				
				for (var j = 0; j < hoursElements.length; j++) {
					var Day = hoursElements[j].getAttribute("day");
					var Hour = hoursElements[j].getAttribute("time");
					infoHtml[i] += "<tr><td>" + Day + "</td><td> : </td><td>" + Hour + "</td></tr>";
				}
				
				infoHtml[i] += "</table>";
				infoHtml[i] += "</div>";
										
				GEvent.addListener( markers[i], 'click', makeOpenerCaller(i) );
				map.addOverlay( markers[i] );
		 	 }	//end for loop	
			 
		// Download zipcode data.
		var zips;
		GDownloadUrl("/locations_hours/gmapfiles/zipcodes.xml", function(data, responseCode) {
		  var xml = GXml.parse(data);
		  zips = xml.documentElement.getElementsByTagName("zipLocater");
		  for ( i = 0 ; i < zips.length ; i++) {
			  myZipcode[i] = new Array(zips[i].getAttribute("zipcode"), zips[i].getAttribute("latitude"), zips[i].getAttribute("longitude"));
		  }

		// display Zip Code search box
  	   /* var toolbar_opts = '';
		toolbar_html = 'Go to <select name="goToZip" onchange="goToZip(this.value)"><option value="">My Zip</option>';
		toolbar_html = '<h4>Find Your Library</h4><div style="padding-top: 0px;">Enter 5 digit zip: <input type="text" id="zip" name="myZip" size="5" maxlength="5" /> <input type=\"image\" src=\"/assets/go.gif\" name=\"Submit\" value=\"Go\" onclick=\"goToZip()\" /></div>';
		document.getElementById("toolbar").innerHTML = toolbar_html;*/
		
		});

			 
			 
		  
		  	//dispaly panel
		 	 if (document.layers) {
				document.layers.panel.document.write(html);
				document.layers.panel.document.close();
		  	}
		  	else
				panel.innerHTML = html;
			}
		}
		request.send(null);
	}
	else
	map.innerHTML = "Your Brouser is not Compatible with Google Maps";
}// end function g_onLoad

// Open the info box for the specified marker.
function opener(i){
	markers[i].openInfoWindowHtml( infoHtml[i]);
}
// This returns a function closure that calls opener() with the specified arg.
// These shenanigans are necessary because the API left out client-data.
function makeOpenerCaller( i ){
	return function() { opener( i ); };
}


