// Reference: http://webreference.com/new/cfjsvalidate2.html
/*
	Usage:
	<form action="formprocessor.cfm" method="post" onSubmit="return checkForm(this)">

	Include:
	<script language="JavaScript1.1" src="/javascript/validate.js" type="text/javascript"></script>

	Note:
	Input name is case sensitive.  e.g. zip must match zip_required
*/

function checkForm(thisform) {

	var returnval = true;
	var checkField = false;
	var indx;
	var field;
	var fieldname;
	var value;

	// Browser must be version 4 or greater
	if (parseInt(navigator.appVersion) < 4)
		return true;

	for(var j = 0; j < thisform.elements.length; j++) {
		indx = thisform.elements[j].name.indexOf('_required');
		if (indx != -1) {
			fieldname = thisform.elements[j].name.substring(0, indx);
			field = thisform.elements[fieldname];

			// Get value for field
			if (field.type == "select-one" || field.type == "select-multiple") {
				if (field.selectedIndex == -1)
					value = "";
				else
					value = field.options[field.selectedIndex].value;
				checkField = true;
			} else if (field.type == "text" || field.type == "textarea" || field.type == "password" || field.type == "file") {
				value = field.value;
				checkField = true;
			} else if (field.type == "checkbox") { // used for checkboxes that have unique names
				if (field.checked)
					value = field.value;
				else
					value = "";
				checkField = true;
			} else if (field.type == null && field[0].type == "checkbox") { // used for checkboxes that have the same name
				var checkboxChecked = false;
				for(var i = 0; i < field.length; i++) {
					if (field[i].checked) {
						checkboxChecked = true;
						value = field[i].value;
						break;
					}
				}
				if (checkboxChecked == false)
					value = "";
				checkField = true;
			} else if (field.type == "radio") { // used for solitary radio buttons
				if (field.checked)
					value = field.value;
				else
					value = "";
				checkField = true;
			} else if (field.type == null && field[0].type == "radio") {
				var radioChecked = false;
				for(var i = 0; i < field.length; i++) {
					if (field[i].checked) {
						radioChecked = true;
						value = field[i].value;
						break;
					}
				}
				if (radioChecked == false)
					value = "";
				checkField = true;
			}

			// If this is a valid field to check, make sure length is not 0
			if (checkField) {
				if (value.length == 0) {
					alert(thisform.elements[j].value);
					if (field.type != null)
						field.focus(); // move focus to required field
					returnval = false;
					break;
				}
			}
		}
	}
	return returnval;
}
