Created
February 19, 2010 21:45
-
-
Save tdouce/309251 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" | |
"http://www.w3.org/TR/html4/loose.dtd"> | |
<html> | |
<head> | |
<title>Untitled Document</title> | |
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> | |
<script type='text/javascript'> | |
// returns true if the form is valid | |
// returns false if the form is invalid | |
function formValidator(){ | |
// Make quick references to our fields | |
var roof = document.getElementById('txtRoof'); | |
var precip = document.getElementById('txtPrecip'); | |
var eff = document.getElementById('txtEff'); | |
var capt_area = document.getElementById('txtArea'); | |
// Check each input in the order that it appears in the form! | |
if(isNumeric(roof, "Please enter a value for the roof area.")){ | |
if(isNumeric(precip, "Please enter a precipitation value.")){ | |
if(isNumeric(eff, "Please enter an efficiency value.")){ | |
if(isNumeric(capt_area, "Please enter a capture area value.")){ | |
return true; | |
} | |
} | |
} | |
} | |
return false; | |
} | |
function notEmpty(elem, helperMsg){ | |
if(elem.value.length == 0){ | |
alert(helperMsg); | |
elem.focus(); // set the focus to this input | |
return false; | |
} | |
return true; | |
} | |
function isNumeric(elem, helperMsg){ | |
var numericExpression = /^[0-9]+$/; | |
if(elem.value.match(numericExpression)){ | |
return true; | |
}else{ | |
alert(helperMsg); | |
elem.focus(); | |
return false; | |
} | |
} | |
function calculate() | |
{ | |
var roof = parseFloat(document.getElementById('txtRoof').value); | |
var precip = parseFloat(document.getElementById('txtPrecip').value); | |
var eff = parseFloat(document.getElementById('txtEff').value); | |
var eff_percent = (eff/100); | |
var conv_factr = 0.623; | |
var capt_area = parseFloat(document.getElementById('txtArea').value); | |
var capt_area_percent = (capt_area/100); | |
var capt_area_percent = (capt_area/100); | |
var total = (roof * precip * conv_factr * capt_area_percent * eff_percent); | |
var total_rnd = Math.round(total); | |
document.write("Approximately " + total_rnd + " gallons can be collected off your roof annualy.") | |
} | |
function processForm() | |
{ | |
if(formValidator()) { | |
calculate(); | |
} | |
} | |
function resetForm(){ | |
document.getElementById('calculatorForm').reset(); | |
} | |
</script> | |
<body> | |
<form id='calculatorForm'> | |
Collection Footprint Area (square feet) <input type='text' id='txtRoof'/><br /> | |
Annual precipitation in your area (inches) <input type='text' id='txtPrecip'/><br /> | |
Efficiency with which you are going to caputure rain (%)<input type='text' id='txtEff' value='80' onFocus="if(this.value == '80') {this.value = '';}" onBlur="if (this.value == '') {this.value = '80';}" /><br /> | |
The amount of roof area from which you are going to caputure rain (%) <input type='text' id='txtArea'/><br /> | |
Result: <textarea id='output' cols='40' rows='2'/></textarea> | |
<br/><input type='submit' value='Calculate' onClick='processForm()'/><br/> | |
<input type='button' value='Reset All Fields' onClick='resetForm()'/><br/> | |
</form> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment