// JavaScript Document
var xmlHttp;

function zipLookup(fuseroot, zip, fldCity, fldState) {	
	if (trim(zip).length != 5 || !checkChars(zip, "0123456789")) return false;
	
	if (window.ActiveXObject)
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	else if (window.XMLHttpRequest)
		xmlHttp = new XMLHttpRequest();

	if (xmlHttp != null) {
		xmlHttp.onreadystatechange = function(){processZipChange(fldCity, fldState)};
		xmlHttp.open("GET", fuseroot + '/lookup/ziplookup.cfm?zip=' + zip, true);
		xmlHttp.send(null);
	} else {
//		alert('Your browser does not support XMLHTTP.');
	}
}   
   
function processZipChange(fldCity, fldState) {
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
			var response = xmlHttp.responseXML;
			var cy = response.getElementsByTagName('city');
			var st = response.getElementsByTagName('state');
			if (cy.length > 0 && fldCity != '')
				fldCity.value = cy[0].text;
			if (st.length > 0 && fldState != '') {
				for (var i = 0; i < fldState.options.length; i++) {
					if (fldState.options[i].value == st[0].text) {
						fldState.selectedIndex = i;
						break;
					}
				}
				if (i == fldState.options.length) fldState.selectedIndex = 0;
			}
		} else {
//			alert('There was a problem retrieving the XML data:\n' + xmlHttp.statusText);
		}
	}
}

// Removes leading and trailing spaces from the passed string. Also removes
// consecutive spaces and replaces it with one space. If something besides
// a string is passed in (null, custom object, etc.) then return the input.
function trim(inputString) {
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
}