var validationElements = {
	
	/*==========================
		Required Field
	===========================*/
	required:{
		classTest:"v_required",
		message:"Please supply all marked fields",
		test:function(string){
			return (string.length > 0) ? true:false;
		}
	},
	
	/*==========================
		Required Field
	===========================*/
	currency:{
		classTest:"v_currency",
		message:"Please supply a valid amount!",
		match:/^(\d+)\.\d{2}$/m,
		test:function(string){
			return (string.match(this.match)) ? true:false;
		}
	},
	
	/*==========================
		E-Mail Address
	===========================*/
	emailAddress:{
		classTest:"v_email",
		message:"Please supply a valid email address",
		match:/^[a-zA-Z0-9_.]+@[a-zA-Z0-9_.]+\.[a-zA-Z0-9_.]+$/,
		test:function(string){
			return (string.match(this.match)) ? true:false;
		}
	},
	
	/*==========================
		Date Validation
	===========================*/	
	date:{
		classTest:"v_date",
		message:"Please supply a valid date",
		match:/^(?:(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.](19|20)[0-9]{2})$/,
		test:function(string){			
			return (string.match(this.match)) ? true:false;
		}
	},
	
	/*==========================
		Telephone Validation
	===========================*/
	telephone:{
		classTest:"v_tel",
		message:"Please supply a valid telephone number",
		match:/^(\s?\d\s?){10,}$/i,
		test:function(string){			
			return (string.match(this.match)) ? true:false;
		}
	},
	
	/*==========================
		Number
	===========================*/
	number:{
		classTest:"v_number",
		message:"Please supply a valid number",
		match:/^(\s?\d\s?)+/i,
		test:function(string){			
			return (string.match(this.match)) ? true:false;
		}
	}
	
	/*=================================================================
		IF YOU NEED ANYMORE DROP ME AN E-MAIL AND I WILL ADD THEM IN
	=================================================================*/
}



var validator={init:function(){var self=this;for(var i=0;i<document.forms.length;i++){SWJS.addEvent(document.forms[i],'submit',function(e){var rtn=!self.checkFields(this);if(!rtn){SWJS.stopDefault(e);}});}},checkFields:function(par){var par=par||document;var inputs=SWJS.$$('input',par);var textAreas=SWJS.$$('textarea',par);var selectboxes=SWJS.$$('select',par);var outputErrors=[];var inputErrors=[];var textAreaErrors=[];for(var i=0;i<inputs.length;i++){for(elem in validationElements){if(SWJS.hasClassName(inputs[i],validationElements[elem].classTest)){if(!validationElements[elem].test(inputs[i].value)){if(inputs[i].title){inputErrors.push("- "+inputs[i].title+"\r\n");}else{inputErrors.push("- "+validationElements[elem].message+"\r\n");}
SWJS.addClassName(inputs[i],"invalid");SWJS.addEvent(inputs[i],'click',function(){SWJS.removeClassName(this,"invalid");});SWJS.addEvent(inputs[i],'focus',function(){SWJS.removeClassName(this,"invalid");});}else{SWJS.removeClassName(inputs[i],"invalid");}}}}
for(var i=0;i<textAreas.length;i++){for(elem in validationElements){if(SWJS.hasClassName(textAreas[i],validationElements[elem].classTest)){if(!validationElements[elem].test(textAreas[i].value)){if(textAreas[i].title){textAreaErrors.push("- "+textAreas[i].title+"\r\n");}else{textAreaErrors.push("- "+validationElements[elem].message+"\r\n");}
SWJS.addClassName(textAreas[i],"invalid");SWJS.addEvent(textAreas[i],'click',function(){SWJS.removeClassName(this,"invalid");});SWJS.addEvent(textAreas[i],'focus',function(){SWJS.removeClassName(this,"invalid");});}else{SWJS.removeClassName(textAreas[i],"invalid");}}}}
var string=new String();string="";var retVal=false;for(var i=0;i<inputErrors.length;i++){if(!outputErrors.inArray(inputErrors[i])){outputErrors.push(inputErrors[i]);}}
for(var i=0;i<textAreaErrors.length;i++){if(!outputErrors.inArray(textAreaErrors[i])){outputErrors.push(textAreaErrors[i]);}}
if(outputErrors.length>0){for(var i=0;i<outputErrors.length;i++){string=string+outputErrors[i];}
retVal=true;alert(string);}else{retVal=false;}
return retVal;}}

addLoadEvent(
	function(){
		validator.init();
	}
);
