(function($){$.fn.simpleValidate=function(options){var settings={},validators={},classes=[],validated=false,fieldValidated=false,focused=false;settings=$.extend({},$.fn.simpleValidate.defaults,options);$(':input.required',this).each(function(){if(settings.preFilled&&settings.initValues[$(this).attr('name')]===undefined){settings.initValues[$(this).attr('name')]=$(this).attr('value');}});validators={text:function(name,value){return(value.length>2&&value!=settings.initValues[name]);},email:function(name,value){return(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i).test(value);}};this.submit(function(){if(typeof settings.onSubmit=='function'){settings.onSubmit($(this)[0]);}
validated=true;fieldValidated=false;focused=false;$(':input.required',this).each(function(){fieldValidated=false;if(this.type=='checkbox'){if(this.checked){fieldValidated=true;}}else{fieldValidated=validators.text($(this).attr('name'),$(this).attr('value'));if(fieldValidated){var fieldName=$(this).attr('name'),fieldValue=$(this).attr('value');$.each($(this).attr('class').split(' '),function(){if(typeof validators[this]==='function'){fieldValidated=validators[this](fieldName,fieldValue);}});}}
if(!fieldValidated){validated=false;$(this).addClass(settings.errorClass).removeClass(settings.successClass);if(!focused){$(this).focus();focused=true;}}else{$(this).addClass(settings.successClass).removeClass(settings.errorClass);}});if(validated){$(':input.required',this).each(function(){$(this).removeClass(settings.successClass);});if(typeof settings.onSuccess=='function'){return settings.onSuccess($(this)[0]);}}else{if(typeof settings.onError=='function'){return settings.onError($(this)[0]);}
return false;}
return true;});}
$.fn.simpleValidate.defaults={initValues:{},preFilled:false,errorClass:'error',successClass:'success',onSubmit:{},onSuccess:{},onError:{}};})(jQuery);
