// JavaScript Document
var xmlHttp
/*
File name is the name of the file to send the data to.
Url parts are the url parameters.
elementName is the form element to return the data to.
*/
function dynamicFileCall(fileName, urlParts, elementName) {
	if (urlParts.length==0) { 
		document.getElementById(elementName).innerHTML=""
		return
	}
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null){
		alert ("Browser does not support HTTP Request")
		return
	} 
	var url = fileName
	url = "/"+url+"?"+urlParts
	url = url+"&sid="+Math.random()
	// this being function allows the target div to be dynamic
	xmlHttp.onreadystatechange= function (){
			if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
				document.getElementById(elementName).innerHTML=xmlHttp.responseText 
			}
	}
	//checkAvailabilityEst 
	xmlHttp.open("POST",url,true)
	xmlHttp.send(null)
} 
/*
function checkAvailabilityEst(){
	alert(xmlHttp.readyState)
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
		alert(xmlHttp.responseText)
		document.getElementById("townDiv").innerHTML=xmlHttp.responseText 
	} 
} 
*/
function GetXmlHttpObject(){ 
	var objXMLHttp=null
	if (window.XMLHttpRequest){
		objXMLHttp=new XMLHttpRequest()
	}
	else if (window.ActiveXObject){
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
	}
	return objXMLHttp
} 



	function sub(f , fileName, elementName) {
	
		   var file = fileName
		   var str = getFormValues(f,"");
		   // xmlReq = getXML(file,str);
		   dynamicFileCall(fileName, str, elementName);
	
		}

function getFormValues(fobj,valFunc) {

	var str = "";	
	var valueArr = null;	
	var val = "";	
	var cmd = "";
	
	for(var i = 0;i < fobj.elements.length;i++) {
		
		switch(fobj.elements[i].type) {
			case "text":				
				if(valFunc) {				
					//use single quotes for argument so that the value of				
					//fobj.elements[i].value is treated as a string not a literal				
					cmd = valFunc + "(" + 'fobj.elements[i].value' + ")";				
					val = eval(cmd);				
				}				
				str += fobj.elements[i].name +				
				"=" + escape(fobj.elements[i].value) + "&";				
				break;			
			case "select-one":			
				str += fobj.elements[i].name +			
				"=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";			
				break;
			case "hidden":			
				str += fobj.elements[i].name +		
				"=" + fobj.elements[i].value + "&";		
				break;
			case "textarea":		
				str += fobj.elements[i].name +		
				"=" + fobj.elements[i].value + "&";		
				break;
			case "password":		
				str += fobj.elements[i].name +		
				"=" + fobj.elements[i].value + "&";		
				break;
			case "radio":		
				str += fobj.elements[i].name +		
				"=" + fobj.elements[i].value + "&";		
				break;
			case "image":		
				str += fobj.elements[i].name +		
				"=" + fobj.elements[i].value + "&";		
				break;
			case "file":
				// this needs tested.		
				str += fobj.elements[i].name +		
				"=" + fobj.elements[i].value + "&";		
				break;
			case "checkbox":		
				str += fobj.elements[i].name +		
				"=" + fobj.elements[i].value + "&";		
				break;
			case "button":			
				str += fobj.elements[i].name +		
				"=" + fobj.elements[i].value + "&";	
				break;
		}	
	}
	
	str = str.substr(0,(str.length - 1));	
	return str;
}


