/**********************************************************
Author:
Adam Barry
Klestrup partners
www.klestrup-partners.dk

Date: March 24 2010

© 2010 Adam Barry, all rights reserved
-----------------------------------------------------------

Name:
formValidators script

-----------------------------------------------------------
Description:

-----------------------------------------------------------
Usage:
Simply place a link to the this script in the head-section
of the XHTML page. The script will then automatically
execute on page load.

-----------------------------------------------------------
Dependencies:
formValidation.js or formValidation.Net.js

**********************************************************/

function validate_required(field) {

	with (field) {

		if (type == "checkbox") {
			if (checked == "") {
				field.className+=" error";
				field.focus();
				return false;
			}
		}

		if (value==null || value.length <= 0 || value==" ") {
			field.className+=" error";
			field.focus();
			return false;
		}

		else {
			field.className = field.className.replace(new RegExp("error\\b"), "");
			return true;
		}
	}
}


function validate_email(field) {

	with (field) {

		if (field.value.indexOf(".") > 0 && field.value.indexOf("@") > 0) {
			field.className = field.className.replace(new RegExp("error\\b"), "");
			return true;
		}
		else {
			field.className+=" error";
			field.focus();
			return false;
		}
	}
}


function validate_number(field) {

	with (field) {

		if (field.value.match(/^\d+$/)) {
			field.className = field.className.replace(new RegExp("error\\b"), "");
			return true;
		}
		else {
			field.className+=" error";
			field.focus();
			return false;
		}
	}
}


function validate_select(element) {

    if (element.selectedIndex == 0) {
        element.focus();
        element.className += " error";
        return false;
    }
}


function validate_textarea(field) {

	if (field.value.length <= 0) {
		field.focus();
		field.className += " error";
		return false;
	}
}


/**********************************************************
No validation pseudo-forms
**********************************************************/

function noValidationCheckboxes() {
	if (!document.getElementsByTagName) return false;

	var inputs = document.getElementsByTagName('input');

	for (var i = 0; i < inputs.length; i++) {

		if (inputs[i].className.indexOf('noValidation') > -1) {
			var me = inputs[i];

			me.onclick = function() {

				/* if the page is reloaded and the checkbox is unchecked */
				if (me.checked == true && me.parentNode.className.indexOf('noValidation') > -1) {
					me.parentNode.className = me.parentNode.className.replace(new RegExp("noValidation\\b"), "");
				}

				if (me.checked == false) {
					me.parentNode.className = me.parentNode.className.replace(new RegExp("noValidation\\b"), "");
				}
				else {
					me.parentNode.className += " noValidation";
				}
			}
		}
	}

} addLoadEvent(function() { noValidationCheckboxes(); });