function Validator(c,a){this.options={preValidate:function(d){},postValidate:function(d){},validateSuccess:function(d){}};$.extend(this,a||{});this.form=$(c);this.inputs=this.form.find(":input:not(:submit):not(:reset)");var b=this;this.form.submit(function(d){b.validate(true);d.preventDefault()});this.inputs.each(function(){var d=$(this);d.blur(function(){b.validate(false,$(this).attr("id"))})})}Validator.prototype={validate:function(b){this.preValidate(b);var c=this;var d=b;var a=arguments[1]||null;$.post(this.form.attr("action"),this.form.formSerialize()+(d?"&submit=1":""),function(e,f){c.processValidate(e,d,a)},"json")},processValidate:function(d,b,a){var c=this;if(d===true){this.validateSuccess(b)}$.each(this.inputs,function(){if(d[$(this).attr("id")]==undefined){$(this).next("ul.errors").slideUp("normal",function(){$(this).remove()})}});if(a!=null){dataTemp={};if(d[a]!=undefined){dataTemp[a]=d[a]}d=dataTemp}$.each(d,function(h,i){var f=$("#"+h);if(!f.next("ul.errors").size()){f.after('<ul class="errors"></ul>')}var e=f.parent().find("ul.errors li");e.each(function(){if(!c.inputErrorsHasMessage(i,$(this).html())){$(this).remove()}});for(var g in i){var j=i[g];if(!c.inputLIsHasMessage(e,j)){f.next("ul.errors").append("<li style='display:none'>"+j+"</li>").find("li:last").slideDown()}}});this.postValidate(b)},inputErrorsHasMessage:function(b,c){var a=false;$.each(b,function(d){if(b[d]==c){a=true;return false}});return a},inputLIsHasMessage:function(a,c){var b=false;$.each(a,function(){if($(this).html()==c){b=true;return false}});return b},preValidate:function(a){},postValidate:function(a){},validateSuccess:function(a){}};
