var defaultBackgroundColor = "#FFFFFF";
var errorBackgroundColor = "#FFFFCC";

// runs a check on a standard form 
function checkStandard(formid) {
	var success;
	success = true;
	
	if (document.getElementById(formid)) {
		// run through the elements in the form
		for (var i=0;i<document.getElementById(formid).elements.length;i++) {
			//document.getElementById(formid).elements[i].style.backgroundColor = defaultBackgroundColor;

			// if we have a list of required fields...				
			if (document.getElementById(formid).elements("requiredfields")) {
				// if this field appears in the required list
				if (document.getElementById(formid).elements("requiredfields").value.indexOf(document.getElementById(formid).elements[i].name + ",") != -1) {
					// if it's a text box or a text area....
					if ((document.getElementById(formid).elements[i].type=="text") || (document.getElementById(formid).elements[i].type=="textarea")) {
						if (document.getElementById(formid).elements[i].value == "") {
							//document.getElementById(formid).elements[i].style.backgroundColor = errorBackgroundColor;
							success = false;
						}
					// or if it's a selection list
					} else if ((document.getElementById(formid).elements[i].type=="select-one") || (document.getElementById(formid).elements[i].type=="select-multiple")) {
						if (document.getElementById(formid).elements[i].selectedIndex <= 0) {
							//document.getElementById(formid).elements[i].style.backgroundColor = errorBackgroundColor;
							success = false;
						}
					}
				}
			}
			
			// if we have a list of numerical fields...				
			if (document.getElementById(formid).elements("numberfields")) {
				// if this field appears in the required list
				if (document.getElementById(formid).elements("numberfields").value.indexOf(document.getElementById(formid).elements[i].name + ",") != -1) {
					// if it's a text box or a text area....
					if ((document.getElementById(formid).elements[i].type=="text") || (document.getElementById(formid).elements[i].type=="textarea")) {
						// not a number
						if (isNaN(document.getElementById(formid).elements[i].value)) {
							//document.getElementById(formid).elements[i].style.backgroundColor = errorBackgroundColor;
							success = false;
						// field is blank, so make it zero instead
						} else if (document.getElementById(formid).elements[i].value=="") {
							document.getElementById(formid).elements[i].value = 0;
						}
					}
				}
			}

			// if we have a list of email fields...				
			if (document.getElementById(formid).elements("emailfields")) {
				// if this field appears in the list
				if (document.getElementById(formid).elements("emailfields").value.indexOf(document.getElementById(formid).elements[i].name + ",") != -1) {
					// if it's a text box or a text area....
					if (((document.getElementById(formid).elements[i].type=="text") || (document.getElementById(formid).elements[i].type=="textarea")) && (document.getElementById(formid).elements[i].value!="")) {
						if ((document.getElementById(formid).elements[i].value.indexOf(".") < 2) || (document.getElementById(formid).elements[i].value.indexOf("@") <= 0)) {
							//document.getElementById(formid).elements[i].style.backgroundColor = errorBackgroundColor;
							success = false;
						}						
					}
				}
			}
		}
	}

	if (! success) {
		alert("You have filled some fields in incorrectly or not at all.\n\nPlease try again.");
	}
	
	// return the result...
	return success;
}