/* Example:
<SCRIPT language="JavaScript" type="text/javascript" src="formvalidation.js"></SCRIPT>
<SCRIPT language="JavaScript" type="text/javascript">
<!--
	function formValidation(form)
	{
		var msg = "";
		msg += fieldValidation(form.String, "FieldStringRequired");
		msg += fieldValidation(form.Number, "FieldStringNotRequired", false);
		msg += fieldValidation(form.Number, "FieldNumberRequired", true, "number");
		return showError(msg);
	}
// -->
</SCRIPT>

<FORM onSubmit="return formValidation(this)">...</FORM>
*/

// Add the field message to the error message
function addError(msg)
{
	return "  - "+msg+"\n";
}

// Validate a field
function fieldValidation(field, msg, req, type)
{
	var isEmpty = field.value == "";
	if (req && isEmpty) return addError(msg);

	switch (type) {
		case "number":
			if (!isEmpty && isNaN(Number(field.value))) return addError(msg);
			break;
		case "checkbox":
			if (!field.checked) return addError(msg);
			break;		
		case "email":
			if (!isEmpty) {
				var reg = new RegExp("^[a-zA-Z0-9]+([_\\.-]+[a-zA-Z0-9]*)*@[a-zA-Z0-9]+([\\.-][a-zA-Z0-9]+)*\\.[a-zA-Z]{2,6}$", "i");
				if (!reg.exec(field.value)) return addError(msg);
			}
			break;
		case "date": // Date format: YYYY-MM-DD
			if (!isEmpty) {
				var reg = new RegExp("^[0-9]{4}-[0-9]{2}-[0-9]{2}$", "i");
				if (!reg.exec(field.value)) return addError(msg);
				if (parseInt(field.value.substr(0,4)) < 1900
//						|| parseInt(field.value.substr(0,4)) > 2010
						|| parseInt(field.value.substr(5, 2)) > 12
						|| parseInt(field.value.substr(8, 2)) > 31)
					return addError(msg);
			}
			break;
	}
	return "";
}

// If no error return true, else display the error message and return false
function showError(msg)
{
	if (msg == "") {
		return true;

	} else {
		msg = formValidation_preMsg + msg + formValidation_postMsg;
		alert(msg);
		return false;
	}
}

function initFormValidation(preMsg, postMsg)
{
	formValidation_preMsg  = preMsg;
	formValidation_postMsg = postMsg;
}

var formValidation_preMsg  = "The following field(s) is(are) missing or invalid:\n\n";
var formValidation_postMsg = "\nPlease correct this and submit the form again.";
