/******************************************
*******************     SanyoListBuilder  *
*******************************************
*******************************************
*   INCLUDE THE FOLLOWING IN THE HTML:    *
**************************** The List Selector ***********************************
<select id="sanyoHvacListSelector" onchange="sanyoHvacListSelectorHandler();"/></select> *
******************************* The List *****************************************
<div id="sanyoHvacList"></div>                                                       *
<script type="text/javascript" language="javascript">getSanyoHvacList("");</script>    *
**********************************************************************************/
var SanyoHvacListXML;
var xmlDoc;
var listHead = "<table class='gridStatic'>" + 
					"<tr>" + 
						"<th class='salesList' width='246'>Name</th>" +
						"<th class='salesList' width='246'>Contact Numbers</th>" +
						"<th class='salesList' width='246'>Email</th>" +
					"</tr>";
var listBody = "";
var listTail = "</table>";

function getSanyoHvacList(url){
	SanyoHvacListXML = getXmlHttpReq();
	if( SanyoHvacListXML === false ){ return false; }

	SanyoHvacListXML.onreadystatechange = initList;
	try{
		SanyoHvacListXML.open("GET", url, true);
	}catch(e){
		alert("Error accessing " + url);
	}
	SanyoHvacListXML.send(null);
}

function initList(){
	if(SanyoHvacListXML.readyState == 4){
		xmlDoc = SanyoHvacListXML.responseXML;
		if(typeof(xmlDoc) == "undefined" ) return;
		fillSanyoHvacListSelector( xmlDoc.getElementsByTagName( 'service' ) );
	}
}

function fillSanyoHvacListSelector(services){
	if(typeof(xmlDoc) == "undefined" ) return;

	var sanyoHvacListSelector = document.getElementById( 'sanyoHvacListSelector' );
	var state;
	
	sanyoHvacListSelector.options[0] = new Option("Select A State", ""); 
	for(var i = 0; i < services.length;i++){
		state = services[i].attributes.getNamedItem("state").nodeValue;
        sanyoHvacListSelector.options[i+1] = new Option(stateAbbrevToNameConverter(state), state); 
	}
}

function sanyoHvacListSelectorHandler(){
	if(typeof(xmlDoc) == "undefined" ) return;
	
	var sanyoHvacListSelector = document.getElementById( 'sanyoHvacListSelector' );
	var services = xmlDoc.getElementsByTagName( 'service' );
	var index = sanyoHvacListSelector.selectedIndex;
	if(index-- == 0) return;
	var reps = services[index].getElementsByTagName( 'rep' );
	var name;
	var phone;
	var fax;
	var email;
	
	listBody = "";
	for(var i = 0; i < reps.length; i++){
		name = reps.item(i).getElementsByTagName( 'name' )[0].firstChild.nodeValue;
		phone = getPhone(reps.item(i).getElementsByTagName( 'phone' ));
		fax = getFax(reps.item(i).getElementsByTagName( 'fax' ));
		email = reps.item(i).getElementsByTagName( 'email' )[0].firstChild.nodeValue;
		
		listBody += "<tr>";
		listBody += "<td class='salesList'><h4>" + name + "</h4></td>";
		if(fax.length > 0) listBody += "<td class='salesList'>" + phone + "<br />" + fax + "</td>";
		else listBody += "<td class='salesList'>" + phone + "</td>";
		listBody += "<td class='salesList'><a href='mailto:" + email + "'>" + email + "</a></td>";
		listBody += "</tr>";
	}

	buildList();
}

function getPhone(phones){
	var phone = "";
	for(var i = 0; i < phones.length; i++){
		phone += "Tel: " + phones[i].firstChild.nodeValue;
		if(i+1 < phones.length) phone += "<br />";
	}
	return phone;
}	

function getFax(faxs){
	var fax = "";
	for(var i = 0; i < faxs.length; i++){
		fax += "Fax: " + faxs[i].firstChild.nodeValue;
		if(i+1 < faxs.length) fax += "<br />";
	}
	return fax;
}	

function buildList(){
	var sanyoList = document.getElementById( 'sanyoHvacList' );
	sanyoList.innerHTML = listHead + listBody + listTail;
}

function stateAbbrevToNameConverter(abbrev){
	var original = abbrev;
	abbrev = abbrev.toUpperCase();
	if(abbrev == "AL") return "Alabama";
	if(abbrev == "AK") return "Alaska";
	if(abbrev == "AZ") return "Arizona";
	if(abbrev == "AR") return "Arkansas";
	if(abbrev == "CA") return "California";
	if(abbrev == "CO") return "Colorado";
	if(abbrev == "CT") return "Connecticut";
	if(abbrev == "DE") return "Delware";
	if(abbrev == "DC") return "District Of Colunbia";
	if(abbrev == "FL") return "Florida";
	if(abbrev == "GA") return "Georgia";
	if(abbrev == "HI") return "Hawaii";
	if(abbrev == "ID") return "Idaho";
	if(abbrev == "IL") return "Illinois";
	if(abbrev == "IN") return "Indiana";
	if(abbrev == "IA") return "Iowa";
	if(abbrev == "KS") return "Kansas";
	if(abbrev == "KY") return "Kentucky";
	if(abbrev == "LA") return "Louisiana";
	if(abbrev == "ME") return "Maine";
	if(abbrev == "MD") return "Maryland";
	if(abbrev == "MA") return "Massachusetts";
	if(abbrev == "MI") return "Michigan";
	if(abbrev == "MN") return "Minnesota";
	if(abbrev == "MS") return "Mississippi";
	if(abbrev == "MO") return "Missouri";
	if(abbrev == "MT") return "Montana";
	if(abbrev == "NE") return "Nebraska";
	if(abbrev == "NV") return "Nevada";
	if(abbrev == "NH") return "New Hampshire";
	if(abbrev == "NJ") return "New Jersey";
	if(abbrev == "NM") return "New Mexico";
	if(abbrev == "NY") return "New York";
	if(abbrev == "NC") return "North Carolina";
	if(abbrev == "ND") return "North Dakota";
	if(abbrev == "OH") return "Ohio";
	if(abbrev == "OK") return "Oklahoma";
	if(abbrev == "OR") return "Oregon";
	if(abbrev == "PA") return "Pennsylvania";
	if(abbrev == "RI") return "Rhode Island";
	if(abbrev == "SC") return "South Carolina";
	if(abbrev == "SD") return "South Dakota";
	if(abbrev == "TN") return "Tennessee";
	if(abbrev == "TX") return "Texas";
	if(abbrev == "UT") return "Utah";
	if(abbrev == "VT") return "Vermont";
	if(abbrev == "VA") return "Virginia";
	if(abbrev == "WA") return "Washington";
	if(abbrev == "WV") return "West Virginia";
	if(abbrev == "WI") return "Wisconsin";
	if(abbrev == "WY") return "Wyoming";
	return original;
}

function getXmlHttpReq(){
	var xmlHttp;
	try{
		xmlHttp = new XMLHttpRequest();
	}catch(e){
		try{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e){
				return false;
			}
		}
	}
	return xmlHttp;
}
