
function validator(form){clearErrors(form);valid=true;form.find(':input').each(function(){if(this.id){currentInput=this;getId=currentInput.id.split('_')[0];if(fields[getId]){fieldRule=fields[getId];if(fieldRule.required){if(currentInput.value==''){displayError(currentInput);valid=false;}}
if(fieldRule.actions){stringToValidate=currentInput.value;$.each(fieldRule.actions,function(name,value){if(rules[name]){internalValidity=rules[name](stringToValidate,value);if(!internalValidity){displayError(currentInput);valid=false;return false;}}else{console.log("can't find validation rule for "+name+' '+value);}});}}}});return valid;}
var rules={string:function(value,test){if(typeof test=='boolean'){testVal=(value!='')?true:false;}else{temp=test.join('|');testVal=(temp.match(value)!='')?true:false;}
return testVal;},regexp:function(value,test){myregex=new RegExp(test);testVal=(value.match(myregex))?true:false;return testVal;},minLength:function(value,test){testVal=(value.length>=test)?true:false;return testVal;},maxLength:function(value,test){testVal=(value.length<=test)?true:false;return testVal;},phonenumber:function(value,test){testVal=(value.match(/^[\d\s]*$/))?true:false;return testVal;},integer:function(value,test){testVal=(value.match(/^\d*$/))?true:false;return testVal;},minInclusive:function(value,test){testVal=(parseInt(value)>=parseInt(test))?true:false;return testVal;},maxInclusive:function(value,test){testVal=(parseInt(test)>=parseInt(value))?true:false;return testVal;},minExclusive:function(value,test){testVal=(parseInt(value)>parseInt(test))?true:false;return testVal;},maxExclusive:function(value,test){testVal=(parseInt(test)>parseInt(value))?true:false;return testVal;}}
$(document).ready(function(){$('form input.submit').click(function(){formToValidate=$(this).parents('form');valid=validator(formToValidate);return(valid==true)?true:false;});$('input').blur(function(){formToValidate=$(this.parentNode);valid=validator(formToValidate);});$('textarea').blur(function(){formToValidate=$(this.parentNode);valid=validator(formToValidate);});});function clearErrors(form){form.find('label').removeClass('error');form.find('input').removeClass('errorfield');form.find('textarea').removeClass('errorfield');}
function displayError(field){$(field).parent().find('label[for='+field.id+']').addClass('error');$(field).parent().find('#'+field.id).addClass('errorfield');}
