function numbersonly(myfield, e, dec){
	var key; 
	var keychar;
	
	if (window.event)	   key = window.event.keyCode;
	else if (e)	   key = e.which;
	else	   return true;
	keychar = String.fromCharCode(key);
	
	// control keys
	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )	   return true;
	
	// numbers
	else if (((".0123456789").indexOf(keychar) > -1))	   return true;
	
	// decimal point jump
	else if (dec && (keychar == "."))	   {	   myfield.form.elements[dec].focus();	   return false;	   }	else	   return false;
}

function IsNumeric(sText) {
	var IsNumber=true;
	
	if (sText == '.' || sText == '..' || sText == '...' || sText == '....') {
		IsNumber=false;
	}
	
	return IsNumber;
}

function processForm() {
	var checkNumbers = true;
	var contentValue = 0;
	
	for (i=0; i<document.gasCalc.elements.length-2; i++) {
		checkNumbers = IsNumeric(document.gasCalc.elements[i].value);
		if (checkNumbers == false) {
			break;
		}
	}
	
	if (checkNumbers == true) {
		for (i=0; i<document.gasCalc.elements.length-2; i++) {
			contentValue = contentValue + document.gasCalc.elements[i].value;
		}
		
		if (contentValue > 0) {
			loadResults(
				document.getElementById('commuteDist').value,
				document.getElementById('gasCost').value,
				document.getElementById('gasMileage').value,
				document.getElementById('dailyCosts').value,
				document.getElementById('childCosts').value,
				document.getElementById('commuteTime').value,
				document.getElementById('timeCosts').value
			);
			setTimeout('updateResults()',100);
		} else {
			alert('Please enter a value into at least one of the fields.');
		}
	} else {
		alert('One of your fields is incorrect. Please check your entries and try again.');
	}
}

function loadResults(commuteDist,gasCost,gasMileage,dailyCosts,childCosts,commuteTime,timeCosts) { 
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request")
		return
	}
	var url="gasCalcProcess.cfm?commuteDist="+commuteDist+"&gasCost="+gasCost+"&gasMileage="+gasMileage+"&dailyCosts="+dailyCosts+"&childCosts="+childCosts+"&commuteTime="+commuteTime+"&timeCosts="+timeCosts
	xmlHttp.onreadystatechange=stateChangedItemSpec
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
}

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;
}
	
function stateChangedItemSpec() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	 { 
		 document.getElementById("hiddenResults").innerHTML=xmlHttp.responseText 
	 } 
}

function resetForm() {
	document.getElementById('commuteDist').value = 0;
	document.getElementById('gasCost').value = 0;
	document.getElementById('gasMileage').value = 0;
	document.getElementById('dailyCosts').value = 0;
	document.getElementById('childCosts').value = 0;
	document.getElementById('commuteTime').value = 0;
	document.getElementById('timeCosts').value = 0;
	document.getElementById('resultsDiv').style.zIndex=3;
}

function showForm() {
	document.getElementById('resultsDiv').style.display="none";
	document.getElementById('formDiv').style.display="block";
}

function showResults() {
	document.getElementById('resultsDiv').style.display="block";
	document.getElementById('formDiv').style.display="none";
}

function updateResults() {
	if (document.getElementById('errorField').value == 1) {
		alert('One of your fields is incorrect. Please check your entries and try again.');
	} else {
		document.getElementById('drivingExpenseDisplay').innerHTML = document.getElementById('drivingExpenseResult').value;
		document.getElementById('commuteExpenseDisplay').innerHTML = document.getElementById('commuteExpenseResult').value;
		document.getElementById('childExpenseDisplay').innerHTML = document.getElementById('childExpenseResult').value;
		document.getElementById('personalExpenseDisplay').innerHTML = document.getElementById('personalExpenseResult').value;
		document.getElementById('totalExpenseDisplay').innerHTML = document.getElementById('totalExpenseResult').value;
		document.getElementById('semesterOneExpenseDisplay').innerHTML = document.getElementById('semesterOneExpenseResult').value;
		document.getElementById('semesterTwoExpenseDisplay').innerHTML = document.getElementById('semesterTwoExpenseResult').value;
		showResults();
	}
}
