(function(a){a.fn.validate=function(e){var g=a.extend({},a.fn.validate.defaults,e);var i=g.successHandler||a.fn.validate.successHandler,d=g.errorHandler||a.fn.validate.errorHandler,h=g.required,c=g.checks,b=false;function f(p,o){var m=p.length&&!p.type?"radio":p.type,r=(h&&h[p.name])||(c&&c[p.name]);switch(m){case"checkbox":if(o&&!p.checked){if(d.call(this,p,r)===false){return false}b=true}break;case"file":case"textarea":case"password":case"text":if(p.name=="emailAddress"&&!a.fn.validate.validEmail(p.value)){if(d.call(this,p,r)===false){return false}b=true}else{if(p.name=="postalCode"&&!a.fn.validate.validPostalCode(p.value)){if(d.call(this,p,r)===false){return false}b=true}else{if(p.name=="phoneNumber"&&!a.fn.validate.validPhoneNumber(p.value)){if(d.call(this,p,r)===false){return false}b=true}}}if(o&&p.value===""){if(d.call(this,p,r)===false){return false}b=true}break;case"select-one":if(p.selectedIndex===0){if(d.call(this,p,r)===false){return false}b=true}break;case"radio":var j=p.length?p:[p],n=false;for(var k=j.length,q=0;q<k;q++){if(j[q].checked){n=true}}if(!n){if(d.call(this,p,r)===false){return false}b=true}break}}return this.each(function(){var j=a(this);j.submit(function(k){k.preventDefault();a(this).data("validating",true);if(g.preValidationFn){if(g.preValidationFn.call(this)===false){return false}}b=false;var l=h||false,n=c||false,m;if(l){for(m in l){if(this[m]){if(f.call(this,this[m],true)===false){return false}}}}if(n){for(m in n){if(this[m]){if(f.call(this,this[m],false)===false){return false}}}}if(!b){if(i.call(this,g)===false){return false}else{a(this).data("validated",true)}}})})};a.fn.validate.defaults={submit:true};a.fn.validate.errorHandler=function(b,c){alert(c);if(b.length){b[0].focus()}else{b.focus();b.select()}return false};a.fn.validate.successHandler=function(b){if(b.submit){this.submit()}};a.fn.validate.validEmail=function(b){if(b===""){return true}var c=/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;return c.test(b)?true:false};a.fn.validate.validPhoneNumber=function(b){if(b===""){return true}var c=b.replace(/[\(\)\.\-\ ]/g,"");return(/[^\d]/).test(c)||c.length!=10?false:true};a.fn.validate.validPostalCode=function(b){if(b===""){return true}return(/[^\d]/).test(b)||b.length!=5?false:true}})(jQuery);