// Determine Which method to use for request
var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope
// with old IE versions.
// and security blocked creation of the objects.
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}

// var http = getHTTPObject(); // We create the HTTP Object

var url = "http://www.homebuyersguide.com/zip.cfm?zip="; // The server-side script

function updateCityState(whichpair,whichzipcode,whichcity,whichstateabbr,whichselectrow) {
  var zipValue = document.getElementById(whichzipcode).value;
  xmlhttp.open("GET", url + escape(zipValue), true);
  xmlhttp.onreadystatechange = function(){handleHttpResponse(whichpair,whichzipcode,whichcity,whichstateabbr,whichselectrow)};
  xmlhttp.send(null);
 }

function getHTTPObject() {
  var xmlhttp;
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

function handleHttpResponse(whichpair,whichzipcode,whichcity,whichstateabbr,whichselectrow) {
  if (xmlhttp.readyState == 4) {
  	remove(whichpair);
   	var a = new Object(); 
   	var q = xmlhttp.responseText;
   	var p = q.split("|");
   	for(var i = 0; i < p.length; i++) { 
   		var pos = p[i].indexOf(','); 
   		if (pos == -1) continue; 
   		var town = p[i].substring(0,pos); 
   		var state = p[i].substring(pos+1); 
		var elOptNew = document.createElement('option');
		  elOptNew.value = town + ',' + state;
		  elOptNew.text = town + ', ' + state;
		  var elSel = document.getElementById(whichpair);
		  try {
		    elSel.add(elOptNew, null); // standards compliant; doesn't work in IE
		  }
		  catch(ex) {
		    elSel.add(elOptNew); // IE only
		  }
	   	} 
   	} 
    var elSel = document.getElementById(whichpair);
	var selLength = elSel.length;
	if (selLength == 1)
		{	document.getElementById(whichpair).size=selLength + 1; }
	else
		{	document.getElementById(whichpair).size=selLength; }
}

function handle2(whichpair,whichzipcode,whichcity,whichstateabbr,whichselectrow)
	{
		var sel = document.getElementById(whichpair);
		var selLength = sel.length;
		var thepair = '';
		for(i=selLength-1; i>=0; i--)
		  { if(sel.options[i].selected) { thepair = sel.options[i].value; } }
    	var results = thepair.split(",");
	    document.getElementById(whichcity).value = results[0];
	    document.getElementById(whichstateabbr).value = results[1];
		var thestate = results[1];
		if (thestate.charAt(1) == ' ') 
			{ var temp = thestate.charAt(2) + thestate.charAt(3);
			  thestate = temp.value; }
		var selState = document.getElementById(whichstateabbr);
		var selStateLength = selState.length;
		for(i=selStateLength-1; i>=0; i--)
		  { var thisstate = selState.options[i].value;
		    if(thestate == thisstate) { document.getElementById(whichstateabbr).selectedIndex = i; } }
		hideElement(whichselectrow);
	}
	
function remove(fieldname)
{
  var elSel = document.getElementById(fieldname);
  var i;
  for (i = elSel.length - 1; i>=0; i--) {
      elSel.remove(i);
  }
}


function hideElement (elementId) {
	var element;
	if (document.all)
	element = document.all[elementId];
	else if (document.getElementById)
	element = document.getElementById(elementId);
	if (element && element.style)
	element.style.display = 'none';
}

function showElement (elementId) {
	var element;
	if (document.all)
	element = document.all[elementId];
	else if (document.getElementById)
	element = document.getElementById(elementId);
	if (element && element.style)
	element.style.display = '';
}



