function initPage() {
	var addressList = document.getElementById("addresslist");
	if (addressList) {
		var addresses = addressList.getElementsByTagName("a");
		for (var i = 0; i < addresses.length; i++) {
			addresses[i].onclick = displayMap;
		}
	} else {
		var address = "4 Audubon Avenue, Clementon, NJ";
	}
	if (GBrowserIsCompatible()) {
		var mapDiv = document.getElementById("googlemap");
		if (!mapDiv) return;
		map = new GMap2(mapDiv);
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		geocoder = new GClientGeocoder();
		if (address) {
			geocoder.getLatLng(address, function(point) {
					map.setCenter(point, 13);
					var marker = new GMarker(point);
					map.addOverlay(marker);
					marker.openInfoWindowHtml("<p>Clementon Elementary School<br>" + address + "</p>");
				}
			);
		}
		addEventHandler(window, "unload", GUnload);
		
		var newDiv = document.createElement("div");
		var h2 = document.createElement("h2");
		var h2TextNode = document.createTextNode("Get Driving Directions");
		var form = document.createElement("form");
		var par = document.createElement("p");
		var textNode = document.createTextNode("From:");
		var fromaddressbox = document.createElement("input");
		fromaddressbox.setAttribute("type", "text");
		fromaddressbox.setAttribute("id", "fromaddressbox");
		var submit = document.createElement("input");
		submit.setAttribute("type", "submit");
		submit.setAttribute("value", "Get Directions");
		h2.appendChild(h2TextNode);
		form.onsubmit = getDirections;
		form.appendChild(par);
		par.appendChild(textNode);
		par.appendChild(fromaddressbox);
		if (addresses) {
			fromaddressbox.setAttribute("value", "4 Audubon Avenue, Clementon, NJ");
			var br = document.createElement("br");
			var toTextNode = document.createTextNode("To (click on a link above to fill in this box):");
			par.appendChild(br);
			par.appendChild(toTextNode);
			var toaddressbox = document.createElement("input");
			toaddressbox.setAttribute("type", "text");
			toaddressbox.setAttribute("id", "toaddressbox");
			par.appendChild(toaddressbox);
		}
		par.appendChild(submit);
		newDiv.appendChild(h2);
		newDiv.appendChild(form);
		mapDiv.parentNode.insertBefore(newDiv, mapDiv);
	}
}

function displayMap() {
	if (GBrowserIsCompatible()) {
		clearMap();
		var address = this.getAttribute("title");
		var name = this.firstChild.nodeValue;
		var toAddressBox = document.getElementById("toaddressbox");
		toAddressBox.value = address;
		geocoder.getLatLng(address, function(point) {
				map.setCenter(point, 13);
				var marker = new GMarker(point);
				map.addOverlay(marker);
				marker.openInfoWindowHtml("<p>" + name + "<br>" + address + "</p>");
			}
		);
	}
	return false;
}

function getDirections() {
	var fromAddress = document.getElementById("fromaddressbox").value;
	var toAddressInput = document.getElementById("toaddressbox");
	if (toAddressInput) {
		var toAddress = toAddressInput.value;
	} else {
		var toAddress = "4 Audubon Avenue, Clementon, NJ";
	}
	if (!(fromAddress && toAddress)) return false;
	clearMap();
	var directionsDiv = document.getElementById("directions");
	while (directionsDiv.firstChild) {
		directionsDiv.removeChild(directionsDiv.firstChild);
	}
	gDirections = new GDirections(map, directionsDiv);
	gDirections.load("from: " + fromAddress + " to: " + toAddress);
	return false;
}

function clearMap() {
	if ((typeof(gDirections) != "undefined") && gDirections.clear) {
		gDirections.clear();
	}
	map.clearOverlays();
}

addEventHandler(window, "load", initPage);
