var gmarkers = [];
var htmls = [];
var to_htmls = [];
var from_htmls = [];
var id=0;
var pointmarker =[];



// functions that open the directions forms
function tohere(id) {
        gmarkers[id].openInfoWindowHtml(to_htmls[id]);
}

function fromhere(id) {
        gmarkers[id].openInfoWindowHtml(from_htmls[id]);
}



// Main Function      
function MakeMap(index, zoom) {
	// Check to see if this browser can run the Google API
	if (GBrowserIsCompatible()) {
		// Create a base icon for all of our markers that specifies the
		// shadow, icon dimensions, etc.
		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);
		
		// A function to create the marker and set up the event window
		function createMarker(d,zone,point,address,zip,html) {
				
				var icon = new GIcon(baseIcon);
				
				if(zone=='north'){
					icon.image = "images/north_marker.png";
				}
				else if(zone=='central'){
					icon.image = "images/central_marker.png";
				}
				else if(zone=='east'){
					icon.image = "images/east_marker.png";
				}
				else if(zone=='se'){
					icon.image = "images/se_marker.png";
				}
				else {
					icon.image = "images/sw_marker.png";
				}
				
				var marker = new GMarker(point, icon);
				// The info window version with the "to here" form open
				to_htmls[d] = html + '<div class="direction"><br>Directions: <b>To here</b> - <a href="javascript:fromhere(' + d + ')">From here</a>' +
							   '<br>Start address:<form action="http://maps.google.com/maps" method="get" target="_blank">' +
							   '<input type="text" SIZE=40 MAXLENGTH=40 name="saddr" id="saddr" value="" /><br>' +
							   '<INPUT value="Get Directions" TYPE="SUBMIT">' +
							   '<input type="hidden" name="daddr" value="' + address + ', ' + zip + '"/></div>';
				// The info window version with the "to here" form open
				from_htmls[d] = html + '<div class="direction"><br>Directions: <a href="javascript:tohere(' + d + ')">To here</a> - <b>From here</b>' +
							   '<br>End address:<form action="http://maps.google.com/maps" method="get"" target="_blank">' +
							   '<input type="text" SIZE=40 MAXLENGTH=40 name="daddr" id="daddr" value="" /><br>' +
							   '<INPUT value="Get Directions" TYPE="SUBMIT">' +
							   '<input type="hidden" name="saddr" value="' + address + ', ' + zip + '"/><div>';
				// The inactive version of the direction info
				html = html + '<div class="direction"><br>Directions: <a href="javascript:tohere('+d+')">To here</a> - <a href="javascript:fromhere('+d+')">From here</a></div>';
				
	
				GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(html);});
        		
				gmarkers[d] = marker;
        		htmls[d] = html;
        		return marker;
      	}

		// Zoom in  1: home; 21-25: North,Central,East,Southeast,Southwest zone; 3: each spot. 
		if(zoom==1){      
			  // Display the map, with some controls and set the initial location 
			  var map = new GMap(document.getElementById("map"));
			  map.addControl(new GLargeMapControl());
			  map.addControl(new GMapTypeControl());
			  map.setCenter(new GLatLng(30.2696, -97.7319), 11);
		}
		// Zoom in 21: North zone;
		else if(zoom==21){      
			  var map = new GMap(document.getElementById("map"));
			  map.addControl(new GLargeMapControl());
			  map.addControl(new GMapTypeControl());
			  map.setCenter(new GLatLng(30.3400, -97.7157), 12);
		}
		// Zoom in 22: Central zone;
		else if(zoom==22){
				  var map = new GMap(document.getElementById("map"));
				  map.addControl(new GLargeMapControl());
				  map.addControl(new GMapTypeControl());
				  map.setCenter(new GLatLng(30.270484,-97.745458), 15);
		}
		// Zoom in 23: East zone;
		else if(zoom==23){
				  var map = new GMap(document.getElementById("map"));
				  map.addControl(new GLargeMapControl());
				  map.addControl(new GMapTypeControl());
				  map.setCenter(new GLatLng(30.26688831913918, -97.72197174072265), 15);
		}
		// Zoom in 24: Southeast zone;
		else if(zoom==24){
				  var map = new GMap(document.getElementById("map"));
				  map.addControl(new GLargeMapControl());
				  map.addControl(new GMapTypeControl());
				  map.setCenter(new GLatLng(30.221729,-97.675152), 12);
		}
		// Zoom in 25: Southwest zone;
		else if(zoom==25){
				  var map = new GMap(document.getElementById("map"));
				  map.addControl(new GLargeMapControl());
				  map.addControl(new GMapTypeControl());
				  map.setCenter(new GLatLng(30.258358689813855, -97.84260799560547), 11);
		}
		else if(zoom==3){      
			  var map = new GMap(document.getElementById("map"));
			  map.addControl(new GLargeMapControl());
			  map.addControl(new GMapTypeControl());
			  map.setCenter(new GLatLng(30.2696, -97.7319), 15);
		}
		else {
		}


 
		var point = [];
		var pointContent = [];
		
		// Set up a marker with an info window 
 		//htmls[0]
		point[0] = new GLatLng(30.3336, -97.6925);
		pointContent[0] = "<div class=\"IW\">"+addContent(0)+"</div>";
		pointmarker[0] = createMarker(0,'north',point[0],'1101 Wheatley Ave.','78752', pointContent[0]);
		map.addOverlay(pointmarker[0]);

		//htmls[1]
		point[1] = new GLatLng(30.3967, -97.7316);
		pointContent[1] = "<div class=\"IW\">"+addContent(1)+"</div>";
		pointmarker[1] = createMarker(1,'north',point[1],'10801 N. Mopac','78759', pointContent[1]);
		map.addOverlay(pointmarker[1]);

		//htmls[2]
		point[2] = new GLatLng(30.3996, -97.7190);
		pointContent[2] = "<div class=\"IW\">"+addContent(2)+"</div>";
		pointmarker[2] = createMarker(2,'north',point[2],'11301 Burnet Rd.','78758', pointContent[2]);
		map.addOverlay(pointmarker[2]);
	
		//htmls[3]		
		point[3] = new GLatLng(30.3230, -97.7408);
		pointContent[3] = "<div class=\"IW\">"+addContent(3)+"</div>";
		pointmarker[3] = createMarker(3,'north',point[3],'2200 Hancock Drive','78756', pointContent[3]);
		map.addOverlay(pointmarker[3]);

	  	//htmls[4] -- This building has been removed.
/*		point[4] = new GLatLng(30.3847, -97.6939);
		pointContent[4] = "<div class=\"IW\">"+addContent(4)+"</div>";
		pointmarker[4] = createMarker(4,'north',point[4],'1201 W. Braker Ln.','78758', pointContent[4]);
		map.addOverlay(pointmarker[4]);*/

	  	//htmls[5]
		point[5] = new GLatLng(30.268732, -97.745193);
		pointContent[5] = "<div class=\"IW\">"+addContent(5)+"</div>";
		pointmarker[5] = createMarker(5,'central',point[5],'300 West Sixth Street','78701', pointContent[5]);
		map.addOverlay(pointmarker[5]);

	  	//htmls[6]
		point[6] = new GLatLng(30.26969, -97.724464);
		pointContent[6] = "<div class=\"IW\">"+addContent(6)+"</div>";
		pointmarker[6] = createMarker(6,'east',point[6],'1165 Angelina Street','78702', pointContent[6]);
		map.addOverlay(pointmarker[6]);

	  	//htmls[7]
		point[7] = new GLatLng(30.306465, -97.842896);
		pointContent[7] = "<div class=\"IW\">"+addContent(7)+"</div>";
		pointmarker[7] = createMarker(7,'north',point[7],'7406 Newhall Ln','78746', pointContent[7]);
		map.addOverlay(pointmarker[7]);

		
		//htmls[8]
		point[8] = new GLatLng(30.259554, -97.753494);
		pointContent[8] = "<div class=\"IW\">"+addContent(8)+"</div>";
		pointmarker[8] = createMarker(8,'central',point[8],'901 Barton Springs Rd','78704', pointContent[8]);
		map.addOverlay(pointmarker[8]);
		
		//htmls[9]
		point[9] = new GLatLng(30.2657392842738, -97.7419924736023);
		pointContent[9] = "<div class=\"IW\">"+addContent(9)+"</div>";
		pointmarker[9] = createMarker(9,'central',point[9],'216 E. 4th Street','78701', pointContent[9]);
		map.addOverlay(pointmarker[9]);
		
		//htmls[10]
		point[10] = new GLatLng(30.26211602983337, -97.73995399475097);
		pointContent[10] = "<div class=\"IW\">"+addContent(10)+"</div>";
		pointmarker[10] = createMarker(10,'central',point[10],'500 E Cesar Chavez St','78701', pointContent[10]);
		map.addOverlay(pointmarker[10]);

		//htmls[11]
		point[11] = new GLatLng(30.219602, -97.743934);
		pointContent[11] = "<div class=\"IW\">"+addContent(11)+"</div>";
		pointmarker[11] = createMarker(11,'se',point[11],'1900 Woodward St','78741', pointContent[11]);
		map.addOverlay(pointmarker[11]);


		//htmls[13]
		point[13] = new GLatLng(30.267717, -97.737889);
		pointContent[13] = "<div class=\"IW\">"+addContent(13)+"</div>";
		pointmarker[13] = createMarker(13,'central',point[13],'500 E. 7th Street','78701', pointContent[13]);
		map.addOverlay(pointmarker[13]);

		//htmls[14]
		point[14] = new GLatLng(30.19278, -97.88743);
		pointContent[14] = "<div class=\"IW\">"+addContent(14)+"</div>";
		pointmarker[14] = createMarker(14,'sw',point[14],'11401 Escarpment Boulevard','78739', pointContent[14]);
		map.addOverlay(pointmarker[14]);

		//htmls[15]
		point[15] = new GLatLng(30.265013, -97.746561);
		pointContent[15] = "<div class=\"IW\">"+addContent(15)+"</div>";
		pointmarker[15] = createMarker(15,'central',point[15],'301 West Second Street','78701', pointContent[15]);
		map.addOverlay(pointmarker[15]);
		
		//htmls[16]
		point[16] = new GLatLng(30.269927636855456, -97.74211049079895);
		pointContent[16] = "<div class=\"IW\">"+addContent(16)+"</div>";
		pointmarker[16] = createMarker(16,'central',point[16],'801 Congress Ave.','78701', pointContent[16]);
		map.addOverlay(pointmarker[16]);

		//htmls[17]
		point[17] = new GLatLng(30.230509, -97.706363);
		pointContent[17] = "<div class=\"IW\">"+addContent(17)+"</div>";
		pointmarker[17] = createMarker(17,'se',point[17],'1600 Grove Blvd','78741', pointContent[17]);
		map.addOverlay(pointmarker[17]);

		//htmls[18]
		point[18] = new GLatLng(30.266549, -97.748407);
		pointContent[18] = "<div class=\"IW\">"+addContent(18)+"</div>";
		pointmarker[18] = createMarker(18,'central',point[18],'300 San Antonio Street','78701', pointContent[18]);
		map.addOverlay(pointmarker[18]);

		//htmls[19]
		point[19] = new GLatLng(30.2650442969821, -97.73655295372009);
		pointContent[19] = "<div class=\"IW\">"+addContent(19)+"</div>";
		pointmarker[19] = createMarker(19,'central',point[19],'410 Sabine Street','78701', pointContent[19]);
		map.addOverlay(pointmarker[19]);

		//htmls[20]
		point[20] = new GLatLng(30.187284, -97.742639);
		pointContent[20] = "<div class=\"IW\">"+addContent(20)+"</div>";
		pointmarker[20] = createMarker(20,'se',point[20],'5811 Nuckols Crossing Rd','78744', pointContent[20]);
		map.addOverlay(pointmarker[20]);

		//htmls[21]
		point[21] = new GLatLng(30.200657, -97.872384);
		pointContent[21] = "<div class=\"IW\">"+addContent(21)+"</div>";
		pointmarker[21] = createMarker(21,'sw',point[21],'5800 West Slaughter Lane','78749', pointContent[21]);
		map.addOverlay(pointmarker[21]);
		
		//htmls[22] -- This building has been removed.
/*		point[22] = new GLatLng(30.250642, -97.74928);
		pointContent[22] = "<div class=\"IW\">"+addContent(22)+"</div>";
		pointmarker[22] = createMarker(22,'se',point[22],'1316 S Congress Ave','78704', pointContent[22]);
		map.addOverlay(pointmarker[22]);*/

		//htmls[23]
		point[23] = new GLatLng(30.208181, -97.714786);
		pointContent[23] = "<div class=\"IW\">"+addContent(23)+"</div>";
		pointmarker[23] = createMarker(23,'se',point[23],'3505 Montopolis Drive','78767', pointContent[23]);
		map.addOverlay(pointmarker[23]);

		//htmls[24]
		point[24] = new GLatLng(30.219152, -97.827125);
		pointContent[24] = "<div class=\"IW\">"+addContent(24)+"</div>";
		pointmarker[24] = createMarker(24,'sw',point[24],'6400 Brodie Lane','78745', pointContent[24]);
		map.addOverlay(pointmarker[24]);

		//htmls[25]
		point[25] = new GLatLng(30.259554, -97.753491);
		pointContent[25] = "<div class=\"IW\">"+addContent(25)+"</div>";
		pointmarker[25] = createMarker(25,'central',point[25],'900 Barton Springs Rd','78704', pointContent[25]);
		map.addOverlay(pointmarker[25]);

		//htmls[26]
		point[26] = new GLatLng(30.261415, -97.712261);
		pointContent[26] = "<div class=\"IW\">"+addContent(26)+"</div>";
		pointmarker[26] = createMarker(26,'east',point[26],'2608 Gonzales St','78702', pointContent[26]);
		map.addOverlay(pointmarker[26]);

		//htmls[27]
		point[27] = new GLatLng(30.25928961321864, -97.71576046943664);
		pointContent[27] = "<div class=\"IW\">"+addContent(27)+"</div>";
		pointmarker[27] = createMarker(27,'east',point[27],'2400 East 6th St','78702', pointContent[27]);
		map.addOverlay(pointmarker[27]);

		//htmls[28]
		point[28] = new GLatLng(30.267809, -97.745628);
		pointContent[28] = "<div class=\"IW\">"+addContent(28)+"</div>";
		pointmarker[28] = createMarker(28,'central',point[28],'309 W. 5th Street','78701', pointContent[28]);
		map.addOverlay(pointmarker[28]);


		//htmls[30]
		point[30] = new GLatLng(30.276888, -97.739595);
		pointContent[30] = "<div class=\"IW\">"+addContent(30)+"</div>";
		pointmarker[30] = createMarker(30,'central',point[30],'105 W. 15th','78701', pointContent[30]);
		map.addOverlay(pointmarker[30]);

		//htmls[31]
		point[31] = new GLatLng(30.229781, -97.820222);
		pointContent[31] = "<div class=\"IW\">"+addContent(31)+"</div>";
		pointmarker[31] = createMarker(31,'sw',point[31],'5400 Brodie','78745', pointContent[31]);
		map.addOverlay(pointmarker[31]);

		//htmls[32]
		point[32] = new GLatLng(30.269443, -97.743767);
		pointContent[32] = "<div class=\"IW\">"+addContent(32)+"</div>";
		pointmarker[32] = createMarker(32,'central',point[32],'708 Colorado St.','78701', pointContent[32]);
		map.addOverlay(pointmarker[32]);

		//htmls[33]
		point[33] = new GLatLng(30.163944, -97.788327);
		pointContent[33] = "<div class=\"IW\">"+addContent(33)+"</div>";
		pointmarker[33] = createMarker(33,'sw',point[33],'9300 S I H 35','78748', pointContent[33]);
		map.addOverlay(pointmarker[33]);

		//htmls[34]
		point[34] = new GLatLng(30.261665, -97.722507);
		pointContent[34] = "<div class=\"IW\">"+addContent(34)+"</div>";
		pointmarker[34] = createMarker(34,'east',point[34],'1900 East Sixth Street','78702', pointContent[34]);
		map.addOverlay(pointmarker[34]);
		
		//htmls[35]
		point[35] = new GLatLng(30.321562, -97.679197);
		pointContent[35] = "<div class=\"IW\">"+addContent(35)+"</div>";
		pointmarker[35] = createMarker(35,'north',point[35],'7224 Northeast Drive','78723', pointContent[35]);
		map.addOverlay(pointmarker[35]);
		
		//htmls[36]
		point[36] = new GLatLng(30.27059, -97.754435);
		pointContent[36] = "<div class=\"IW\">"+addContent(36)+"</div>";
		pointmarker[36] = createMarker(36,'central',point[36],'525 North Lamar','78703', pointContent[36]);
		map.addOverlay(pointmarker[36]);
		
		//htmls[37]
		point[37] = new GLatLng(30.186256,-97.870524);
		pointContent[37] = "<div class=\"IW\">"+addContent(37)+"</div>";
		pointmarker[37] = createMarker(37,'sw',point[37],'4801 La Crosse Ave','78739', pointContent[37]);
		map.addOverlay(pointmarker[37]);
				
		//htmls[38]
		point[38] = new GLatLng(30.216911,-97.637622);
		pointContent[38] = "<div class=\"IW\">"+addContent(38)+"</div>";
		pointmarker[38] = createMarker(38,'se',point[38],'2210 S FM 973','78725', pointContent[38]);
		map.addOverlay(pointmarker[38]);

		//htmls[39]
		point[39] = new GLatLng(30.199156,-97.793669);
		pointContent[39] = "<div class=\"IW\">"+addContent(39)+"</div>";
		pointmarker[39] = createMarker(39,'sw',point[39],'1015 W. William Cannon','78745', pointContent[39]);
		map.addOverlay(pointmarker[39]);

		//htmls[40]
		point[40] = new GLatLng(30.325027,-97.722359);
		pointContent[40] = "<div class=\"IW\">"+addContent(40)+"</div>";
		pointmarker[40] = createMarker(40,'north',point[40],'7101 N. IH-35','78752', pointContent[40]);
		map.addOverlay(pointmarker[40]);

		//htmls[41]
		point[41] = new GLatLng(30.302392,-97.78492);
		pointContent[41] = "<div class=\"IW\">"+addContent(41)+"</div>";
		pointmarker[41] = createMarker(41,'north',point[41],'2215 Westlake Drive','78746', pointContent[41]);
		map.addOverlay(pointmarker[41]);

		//htmls[42]
		point[42] = new GLatLng(30.294646,-97.649918);
		pointContent[42] = "<div class=\"IW\">"+addContent(42)+"</div>";
		pointmarker[42] = createMarker(42,'east',point[42],'900 McPhaul','78758', pointContent[42]);
		map.addOverlay(pointmarker[42]);
		
		//htmls[43]
		point[43] = new GLatLng(30.209494,-97.729096);
		pointContent[43] = "<div class=\"IW\">"+addContent(43)+"</div>";
		pointmarker[43] = createMarker(43,'se',point[43],'3834 Promontory Point','78744', pointContent[43]);
		map.addOverlay(pointmarker[43]);
		
		//htmls[44]
		point[44] = new GLatLng(30.315988,-97.728882);
		pointContent[44] = "<div class=\"IW\">"+addContent(44)+"</div>";
		pointmarker[44] = createMarker(44,'north',point[44],'5608 Courtyard','78731', pointContent[44]);
		map.addOverlay(pointmarker[44]);
		
		//htmls[45]
		point[45] = new GLatLng(30.31006,-97.814369);
		pointContent[45] = "<div class=\"IW\">"+addContent(45)+"</div>";
		pointmarker[45] = createMarker(45,'north',point[45],'8226 Bee Caves','78746', pointContent[45]);
		map.addOverlay(pointmarker[45]);
		
		//htmls[46]
		point[46] = new GLatLng(30.228112,-97.778184);
		pointContent[46] = "<div class=\"IW\">"+addContent(46)+"</div>";
		pointmarker[46] = createMarker(46,'sw',point[46],'1212 W. Ben White','78745', pointContent[46]);
		map.addOverlay(pointmarker[46]);
		
				
		//htmls[47]
		point[47] = new GLatLng(30.255212,-97.756863);
		pointContent[47] = "<div class=\"IW\">"+addContent(47)+"</div>";
		pointmarker[47] = createMarker(47,'central',point[47],'610 W. 5th Street','78701', pointContent[47]);
		map.addOverlay(pointmarker[47]);
		
		//htmls[48]
		point[48] = new GLatLng(30.26901,-97.745702);
		pointContent[48] = "<div class=\"IW\">"+addContent(48)+"</div>";
		pointmarker[48] = createMarker(48,'east',point[48],'4550 Mueller Boulevard','78723', pointContent[48]);
		map.addOverlay(pointmarker[48]);
		
		//htmls[49]
		point[49] = new GLatLng(30.30165,-97.706287);
		pointContent[49] = "<div class=\"IW\">"+addContent(49)+"</div>";
		pointmarker[49] = createMarker(49,'east',point[49],'4900 Mueller Boulevard','78723', pointContent[49]);
		map.addOverlay(pointmarker[49]);
		
		//htmls[50]
		point[50] = new GLatLng(30.30165,-97.706287);
		pointContent[50] = "<div class=\"IW\">"+addContent(50)+"</div>";
		pointmarker[50] = createMarker(50,'east',point[50],'1301 Barbara Jordan Boulevard','78723', pointContent[50]);
		map.addOverlay(pointmarker[50]);
		
		//htmls[51]
		point[51] = new GLatLng(30.319916,-97.751456);
		pointContent[51] = "<div class=\"IW\">"+addContent(51)+"</div>";
		pointmarker[51] = createMarker(51,'north',point[51],'SE Corner of IH-35 and 51st Street','78751', pointContent[51]);
		map.addOverlay(pointmarker[51]);
		
		//htmls[52]
		point[52] = new GLatLng(30.30579,-97.706963);
		pointContent[52] = "<div class=\"IW\">"+addContent(52)+"</div>";
		pointmarker[52] = createMarker(52,'east',point[52],'1315 Barbara Jordan Blvd','78723', pointContent[52]);
		map.addOverlay(pointmarker[52]);
		
		//htmls[53]
		point[53] = new GLatLng(30.30554,-97.706909);
		pointContent[53] = "<div class=\"IW\">"+addContent(53)+"</div>";
		pointmarker[53] = createMarker(53,'east',point[53],'3700 Lake Austin Blvd','78703', pointContent[53]);
		map.addOverlay(pointmarker[53]);
		
		
		// Show info window
		var k=0;
		for(k=0; k<pointmarker.length+1; k++){
			if(index == k)
				pointmarker[k].openInfoWindowHtml(htmls[k]);
		}
    }
	// if end
    
    // display a warning if the browser was not compatible
    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }
}



//function that get page URL information
function getIndex() {
		var url = window.location.href;
		var index = url.split('#')[1];
		if(!index)
			index = -1;
		return index;
}
		
function getZoom() {
		var url = window.location.href;
		var zoom = url.split('#')[2];
		if(!zoom)
			zoom = 1;
		return zoom;
}

function getTreeIndex() {
		var url = window.location.href;
		var tIndex = url.split('#')[3];
		if(!tIndex)
			tIndex = '0';
		return tIndex;
}

// Print		
function printmap(){
		var index = getIndex();
		var zoom = getZoom();
		var tIndex = getTreeIndex();
		var newurl = "GBmap_print.htm#"+index+"#"+zoom+"#"+tIndex;
		
		window.open(newurl, "_self");
}	
		
// Email		
function email(){
		var index = getIndex();
		var zoom = getZoom();
		var tIndex = getTreeIndex();
		var subject = "Austin\'s Green Map: Sustainable Locations";
		var url = "<http://www.austinenergy.com/Energy%20Efficiency/Programs/Green%20Building/Resources/Map#"+index+"#"+zoom+"#"+tIndex+">";
		window.location = "mailto:?subject="+subject+"&body="+url;
}	

// Initial Map
function initial_map(){
		var index = getIndex();
		var zoom = getZoom();
		var t = getTreeIndex();

		MakeMap(index, zoom);
		
		var k=0;
		for(k=0; k<pointmarker.length+6; k++){
			if(t == k)
			ctExposeTreeIndex(0, k);
		}
}	


 
  
