/*** Setup Form Validation ***/
function setValidation() {
	lrAlpha       = /^([\w\s]+)$/i;
	lrNumeric     = /^([\d\.]+)$/;
	lrEmail       = /^([a-z][\w\.\-]*@[\w\.\-]+\.[a-z]{2,3})$/i;
	lrPhoneNumber = /^([0-9\(\)\+\s]{6,})$/;
	lrJpg         = /(.jpg)$/i;
	lrDate        = /(\d\d\/\d\d\/\d\d\d\d)$/i;
	
	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
					lcTestString = eval("this." + laValidation[i][1] + ".value")
					for (var j = 0; j < laValidation[i][2].length; j++) {
						switch(laValidation[i][2][j]) {
							case "required" :
								if(lcTestString == "") {
									alert("'" + laValidation[i][0] + "' is a required field.");
									return false;
								}
								break
							case "alpha" :
								if(lcTestString !== "" && !lrAlpha.test(lcTestString)) {
									alert("'" + laValidation[i][0] + "' accepts A-Z characters only.");
									return false;
								}
								break
							case "numeric" :
								if(lcTestString !== "" && !lrNumeric.test(lcTestString)) {
									alert("'" + laValidation[i][0] + "' accepts numeric characters only.");
									return false;
								}
								break
							case "email" :
								if(lcTestString !== "" && !lrEmail.test(lcTestString)) {
									alert("'" + laValidation[i][0] + "' accepts valid email addresses only.");
									return false;
								}
								break
							case "jpg" :
								if(lcTestString !== "" && !lrJpg.test(lcTestString)) {
									alert("'" + laValidation[i][0] + "' accepts .jpg files only.");
									return false;
								}
								break
							case "date" :
								if(lcTestString !== "" && !lrDate.test(lcTestString)) {
									alert("'" + laValidation[i][0] + "' accepts valid dates only. [dd/mm/yyyy]");
									return false;
								}
								break
						}
					}
				}
			}
		}
	}
}
/**********************/

// set Loaded functions
addDOMLoadEvent(setValidation);