/*** Setup Form Validation ***/
function setValidation() {
	lrAlpha    = /^([a-z\s]+)$/i;
	lrEmail    = /^([a-z][\w\.\-]*@[\w\.\-]+\.[a-z]{2,3})$/i;
	lrNotEmpty = /^([\w\W])+$/;
	lrPhoneNumber = /^([0-9\(\)\+\s]{6,})$/;
	for (var i = 0; i < document.forms.length; i++) {
		if (document.forms[i].validation) {
			document.forms[i].onsubmit = function() {
				var laValidation = this.validation.value.split(";");  // Split by field names
				for (var i = 0; i < laValidation.length; i++) {
					laValidation[i] = laValidation[i].split(":");  // Split into title, name and validation
					laValidation[i][2] = laValidation[i][2].split(",");  // Split validation requirements
					for (var j = 0; j < laValidation[i][2].length; j++) {
						switch(laValidation[i][2][j]) {
							case "required" :
								if(!lrNotEmpty.test(eval("this." + laValidation[i][1] + ".value"))) {
									alert("'" + laValidation[i][0] + "' is a required field.")
									return false;
								};
								break
							case "alpha" :
								if(!lrAlpha.test(eval("this." + laValidation[i][1] + ".value"))) {
									alert("'" + laValidation[i][0] + "' accepts A-Z characters only.")
									return false;
								};
								break
							case "email" :
								if(!lrEmail.test(eval("this." + laValidation[i][1] + ".value"))) {
									alert("'" + laValidation[i][0] + "' accepts valid email addresses only.")
									return false;
								};
								break
						};
					};
				};
			};
		};
	};
};

/**********************/

// set Loaded functions
addDOMLoadEvent(setValidation);
