var xmlHttp;

if (typeof schoolFinderType=="undefined") {
    var schoolFinderType = 1;
}

function handlePIDEnter (field, event) {
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
		if (keyCode == 13) {
			var i;
			for (i = 0; i < field.form.elements.length; i++)
				if (field == field.form.elements[i])
					break;
			i = (i + 1) % field.form.elements.length;
			// field.form.elements[i].focus();
			return false;
		}
		else
		return true;
}

function noSchool() {
	document.getElementById('pid').value = 0;
	document.getElementById('pid_display_span_label').style.display='none';
	document.getElementById('pid_display_span').style.display='none';
	document.getElementById('pid_display_span').innerHTML="";
	document.getElementById('pid_select_label').style.display='none';
	document.getElementById('pid_select').style.display='none';
	document.getElementById('pid_select').options.length = 0;
	document.getElementById('home_no_school_instructions').style.display = 'inline';
	document.getElementById('home_no_school_instructions_label').style.display = 'inline';
	document.getElementById('instDistrict').style.display = 'inline';
	document.getElementById('instDistrict_label').style.display = 'inline';
	document.getElementById('instName').style.display = 'inline';
	document.getElementById('instName_label').style.display = 'inline';
	document.getElementById('instAddress1').style.display = 'inline';
	document.getElementById('instAddress1_label').style.display = 'inline';
	document.getElementById('instCity').style.display = 'inline';
	document.getElementById('instCity_label').style.display = 'inline';
	document.getElementById('instState').style.display = 'inline';
	document.getElementById('instState_label').style.display = 'inline';
	document.getElementById('instZip').style.display = 'inline';
	document.getElementById('instZip_label').style.display = 'inline';
}

function homeSchool() {
	document.getElementById('pid').value = 0;
	document.getElementById('pid_display_span_label').style.display='none';
	document.getElementById('pid_display_span').style.display='none';
	document.getElementById('pid_display_span').innerHTML="";
	document.getElementById('pid_select_label').style.display='none';
	document.getElementById('pid_select').style.display='none';
	document.getElementById('pid_select').options.length = 0;
	document.getElementById('home_no_school_instructions').style.display = 'inline';
	document.getElementById('home_no_school_instructions_label').style.display = 'inline';
	document.getElementById('instDistrict').style.display = 'inline';
	document.getElementById('instDistrict_label').style.display = 'inline';
	document.getElementById('instName').style.display = 'inline';
	document.getElementById('instName_label').style.display = 'inline';
	document.getElementById('instAddress1').style.display = 'inline';
	document.getElementById('instAddress1_label').style.display = 'inline';
	document.getElementById('instCity').style.display = 'inline';
	document.getElementById('instCity_label').style.display = 'inline';
	document.getElementById('instState').style.display = 'inline';
	document.getElementById('instState_label').style.display = 'inline';
	document.getElementById('instZip').style.display = 'inline';
	document.getElementById('instZip_label').style.display = 'inline';
}

function foundSchool() {
	document.getElementById('pid').value = document.getElementById('pid_select').value;
	document.getElementById('pid_display_span_label').style.display='inline';
	document.getElementById('pid_display_span').style.display='block';
	document.getElementById('pid_display_span').innerHTML=document.getElementById('pid_select').options[document.getElementById('pid_select').selectedIndex].innerHTML;
	document.getElementById('pid_select_label').style.display='none';
	document.getElementById('pid_select').style.display='none';
	document.getElementById('pid_select').options.length = 0;
}

function clearOrganization() {
	// empty, hide, or reset appropriate fields
	document.getElementById('pid').value = "";
	document.getElementById('sf_loading_span_label').style.display = 'none';
	document.getElementById('sf_loading_span').style.display = 'none';
	document.getElementById('sf_loading_span').innerHTML='Searching...';
	document.getElementById('pid_display_span_label').style.display = 'none';
	document.getElementById('pid_display_span').style.display = 'none';
	document.getElementById('pid_display_span').innerHTML='';
	document.getElementById('pid_select').options.length = 0;
	document.getElementById('pid_select').style.display = 'none';
	document.getElementById('pid_select_label').style.display = 'none';
	document.getElementById('home_no_school_instructions').style.display = 'none';
	document.getElementById('instDistrict').style.display = 'none';
	document.getElementById('instName').style.display = 'none';
	document.getElementById('instAddress1').style.display = 'none';
	document.getElementById('instCity').style.display = 'none';
	document.getElementById('instState').style.display = 'none';
	document.getElementById('instZip').style.display = 'none';
	document.getElementById('home_no_school_instructions_label').style.display = 'none';
	document.getElementById('instDistrict_label').style.display = 'none';
	document.getElementById('instName_label').style.display = 'none';
	document.getElementById('instAddress1_label').style.display = 'none';
	document.getElementById('instCity_label').style.display = 'none';
	document.getElementById('instState_label').style.display = 'none';
	document.getElementById('instZip_label').style.display = 'none';


	// add first two options to the pid multi-select field
	document.getElementById('pid_select').options[0] = new Option('I don\'t see my school.','-2');
	document.getElementById('pid_select').options[1] = new Option('I am a homeschool teacher.','-1');	

	return;
}

function IsNumeric(sText) {
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}

function determineCityOrZip(enteredValue) { 
    if (enteredValue.length == 7 && enteredValue.charAt(3) == ' ') {
		// user entered a canadian postal code
		findOrganization(enteredValue, 'zip');
    } else if (IsNumeric(enteredValue)) {
		// user entered a zip code
		findOrganization(enteredValue, 'zip');
	} else {
		// user entered a city
		findOrganization(enteredValue, 'city');
	}
}

function findOrganization(str, searchType) {
	if (str.length==0) { 
		clearOrganization();
		return;
	}

	xmlHttp=GetXmlHttpObject()

	if (xmlHttp==null) {
		alert ("Your browser does not support AJAX!");
		return;
	}

	var url="ajax/index.cfm";
	url=url+"?appGroup=formbuilder";
	url=url+"&appName=schoolFinderQuery";
	url=url+"&schoolFinderType="+schoolFinderType;
	url=url+"&q="+str;
	url=url+"&c="+searchType;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChanged() {
	if (xmlHttp.readyState == 1 || xmlHttp.readyState == 2 || xmlHttp.readyState == 3) {
		// we are searching still
		document.getElementById("sf_loading_span_label").style.display="inline";
		document.getElementById("sf_loading_span").style.display="block";
	}
	if (xmlHttp.readyState==4) {
		// we have finished searching
		document.getElementById("sf_loading_span_label").style.display="none";
		document.getElementById("sf_loading_span").style.display="none";
		document.getElementById("pid_select").style.display="block";
		document.getElementById("pid_select_label").style.display="inline";
		var xmlDoc=xmlHttp.responseXML.documentElement;
		document.getElementById("pid_select").options.length = 0;
		document.getElementById("pid_select").options[0] = new Option('I don\'t see my school.', '');
		document.getElementById("pid_select").options[1] = new Option('I am a homeschool teacher.', '');
		
		// document.write(xmlHttp.responseText);

		for (i=0;i<xmlDoc.childNodes.length;i++) {
			document.getElementById("pid_select").options[i+2] = new Option(xmlDoc.getElementsByTagName("organization")[i].childNodes[0].nodeValue + ', ' + xmlDoc.getElementsByTagName("organization")[i].attributes.getNamedItem("state").value, xmlDoc.getElementsByTagName("organization")[i].attributes.getNamedItem("pid").value);
		}
	}
}

function GetXmlHttpObject() {
	var xmlHttp=null;

	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	
	return xmlHttp;
}
