
/*
var fileref	= document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", "http://maps.google.com/maps/api/js?sensor=false");
document.getElementsByTagName("head")[0].appendChild(fileref);
*/

function locations(filename) {
	var theXML	= filename;
	var xmlDoc = getXML();
	var elements = xmlDoc.getElementsByTagName("location");
			
	function nodeText (element, tag) {
		if (element.getElementsByTagName(tag)[0].hasChildNodes()) {
			return (element.getElementsByTagName(tag)[0].childNodes[0].nodeValue);		
		}
		else return ("");	
	}

	function childElement (element, tag) {
		if (element.getElementsByTagName(tag)[0].hasChildNodes()) {
			return (element.getElementsByTagName(tag)[0]);		
		}
		else return ("");	
	}
	
	function getXML() {
		var xmlReq;
		
		if (window.XMLHttpRequest) { xmlReq = new XMLHttpRequest(); }
		else { xmlReq = new ActiveXObject("Microsoft.XMLHTTP"); }
		
		xmlReq.open("GET", theXML, false);
		xmlReq.send();
		return (xmlReq.responseXML);
	}

	this.getCoordinatesForMapping = function() {
		var theArray = new Array();
				
		for (i = 0; i < elements.length; i++) {
			var map = childElement(elements[i], "map");
			theArray[i] = {
				position: new google.maps.LatLng(nodeText(map, "latitude"), nodeText(map, "longitude")),
				address: "<b>" + nodeText(elements[i], "name") + "</b>" +
						 "<br>" + nodeText(elements[i], "street") + ", " +
						 nodeText(elements[i], "office") + 
						 "<br>" + nodeText(elements[i], "city") + ", " + 
						 nodeText(elements[i], "state") + "&nbsp;&nbsp;" +
						 nodeText(elements[i], "zip")
			}
			
		}
		return (theArray);
	}
	
	function printTelephoneLink(element) {
		document.write ("<a href=\"tel:1-");
		document.write (nodeText(element, "areacode") + "-");
		document.write (nodeText(element, "phone") + "\">");
		document.write ("(" + nodeText(element, "areacode") + ") ");
		document.write (nodeText(element, "phone") + "</a>");		
	}
	
	function printThisNameandNumber(element) {
		document.write ("the <b>" + nodeText(element, "name") + "</b> office at ");
		printTelephoneLink (element);
	}
	
	this.printNameandNumber = function() {
		for (i = 0; i < (elements.length - 1); i++) {
			printThisNameandNumber (elements[i]);
			document.write (", ");	
		}
		
		document.write ("or ");
		printThisNameandNumber (elements[(elements.length - 1)]);
		document.write (".");
	}
	
	this.printFullAddress = function() {
		for (i = 0; i < elements.length; i++) {
			document.write ("<p class=\"footer\"><font color=#cc3300>");
			document.write (nodeText(elements[i], "name") + " ");
			document.write ("</font>");
			document.write ("&#9830; ");
			document.write (nodeText(elements[i], "street") + ", ");
			document.write (nodeText(elements[i], "office") + " ");
			document.write ("&#9830; ");
			document.write (nodeText(elements[i], "city") + ", ");
			document.write (nodeText(elements[i], "state") + "&nbsp;&nbsp;");
			document.write (nodeText(elements[i], "zip") + " ");
			document.write ("&#9830; ");
			printTelephoneLink (elements[i]);
		}
	}
	
	this.printNames = function() {
		for (i = 0; i < (elements.length - 1); i++) {
			document.write (nodeText(elements[i], "name"));
			document.write (", ");	
		}
		
		document.write ("and ");
		document.write (nodeText(elements[(elements.length - 1)], "name"));
		document.write (".");
	}
	
	this.printDropDownList = function() {
		for (i = 0; i < elements.length; ++i) {
			document.write ("<option>" + nodeText(elements[i], "name") + "</option>");
		}
	}
	
	this.count = function() { return (elements.length); }
}


