if (window.addEventListener) { window.addEventListener("load", setupMap, false); }
else if (window.attachEvent) { window.attachEvent("onload", setupMap, false); }

var map;
var xmlDoc;
var allHomes;

google.load("maps", "2");

function setupMap() {

  if (GBrowserIsCompatible()) {
	map = new google.maps.Map2(document.getElementById("map"));
	map.addControl(new google.maps.SmallMapControl());
	map.addControl(new google.maps.MapTypeControl());

	map.setCenter(new google.maps.LatLng(33.776840, -84.393188), 10); // Creighton-Veil Hall
	
	// Text Balloon
	//map.openInfoWindow(map.getCenterLatLng(), document.createTextNode("Hello, world"));
	
	// Pushpin Marker
	//var point = new GPoint(-84.382545, 33.884612);
	//var marker = new GMarker(point);
	//map.addOverlay(marker);
	
	// AJAX
	var request = google.maps.XmlHttp.create();
	request.open('GET', 'newHomes.xml', true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			xmlDoc = request.responseXML;
			var newHomes 	= xmlDoc.getElementsByTagName('newHomes')[0].getElementsByTagName('home');
			var contractHomes = xmlDoc.getElementsByTagName('underContract')[0].getElementsByTagName('home');
			var soldHomes 	= xmlDoc.getElementsByTagName('sold')[0].getElementsByTagName('home');
			allHomes	= xmlDoc.getElementsByTagName("home");

			for (i=0; i<newHomes.length; i++) {
				makeMarker(newHomes[i]);
			}
			
			for (i=0; i<contractHomes.length; i++) {
				makeMarker(contractHomes[i]);
			}
			
			for (i=0; i<soldHomes.length; i++) {
				makeMarker(soldHomes[i]);
			}
		}
	}
	request.send(null);
	
	
  }
}

function makeMarker(thisNode) {
	var lat = parseFloat(thisNode.getAttribute('lat'), 3);
	var long = parseFloat(thisNode.getAttribute('long'), 3);
	var display = thisNode.getAttribute('display');
	var addr1 	= (thisNode.getElementsByTagName('addr1')[0].firstChild) ? thisNode.getElementsByTagName('addr1')[0].firstChild.nodeValue : '';
	var addr2 	= (thisNode.getElementsByTagName('addr2')[0].firstChild) ? thisNode.getElementsByTagName('addr2')[0].firstChild.nodeValue : '';
	var city 	= (thisNode.getElementsByTagName('city')[0].firstChild) ? thisNode.getElementsByTagName('city')[0].firstChild.nodeValue : '';
	var state 	= (thisNode.getElementsByTagName('state')[0].firstChild) ? thisNode.getElementsByTagName('state')[0].firstChild.nodeValue : '';
	var zipCode = (thisNode.getElementsByTagName('zipCode')[0].firstChild) ? thisNode.getElementsByTagName('zipCode')[0].firstChild.nodeValue : '';
	var desc 	= (thisNode.getElementsByTagName('desc')[0].firstChild) ? getElementText(thisNode.getElementsByTagName('desc')[0]) : '';
	
	if (!isNaN(lat) && !isNaN(long) && display != 'false') {
		//alert(lat+" : "+long+" : "+display);
		var point = new google.maps.Point(lat, long);
		var marker = new google.maps.Marker(point);
		map.addOverlay(marker);
		google.maps.Event.addListener(marker, 'click', function() {
			addr1 = addr1.replace(/ /g, '&nbsp;');
			htmlStr = addr1+'<br/>'+city+',&nbsp;'+state+'&nbsp;&nbsp;'+zipCode;
			marker.openInfoWindowHtml(htmlStr);					 
		});
	}
}

function showLoc(locId) {
	var thisNode = null;
	for (var i=0; i<allHomes.length; i++) {
		var thisId = allHomes[i].getAttribute("id");
		if (thisId && thisId.indexOf(locId) > -1) { thisNode = allHomes[i]; }
	}

	if (thisNode != null) {
		var lat = parseFloat(thisNode.getAttribute('lat'), 5);
		var long = parseFloat(thisNode.getAttribute('long'), 5);
		var display = thisNode.getAttribute('display');

		if (GBrowserIsCompatible()) {
			if (!isNaN(lat) && !isNaN(long) && display != 'false') {
				map.panTo(new google.maps.LatLng(long, lat));
				setTimeout(function() { map.setZoom(20); }, 500);
			}
		}

	} else {
		alert("Sorry, but that property is not available to view at this time.");
	}
}