var form_debug=false;function FormJS(b){var a=null;$("form").each(function(){if($(this).hasClass(b)){a=$(this)}});this.form=a;this._send=function(c){var d=this;if(this.indicator&&this.indicator.val){this.oldIndicatorVal=this.indicator.val();this.indicator.val("Подождите")}$.post(document.URL,{validate:c},function(f,e){d._parseResponse(d,f,e)})}}FormJS.prototype.setIndicator=function(a){if(a&&a.val){this.indicator=a}};FormJS.prototype.hide=function(){this.form.hide()};FormJS.prototype.setAllMessages=function(a){this.allMessages=a};FormJS.prototype.registerCallback=function(a){if(typeof a=="function"){this.callback=a}};FormJS.prototype.unregisterCallback=function(){if(this.callback!=null){this.callback=null}};FormJS.prototype._parseResponse=function(d,a,c){if(a!=""){if(form_debug){alert(a)}if(typeof JSON==="object"&&JSON.parse){a=JSON.parse(a)}else{a=(new Function("return "+a))()}var b;$(this.form).find("input, select, textarea").each(function(){var e=$(this).attr("name");if(e==""){return}var g=e.match(/([^\[]+)(((\[\w+\])*)*)/i);var h=new Array(g[1]).concat(g[2].slice(1,-1).split("]["));var f=a;var q,r="";q=h.slice(0,2).join("_");for(var j=0;j<h.length;j++){if(f[h[j]]===undefined){if(b==q){var o=$(this).next();if(o.length){while(o[0].tagName.toLowerCase()!="br"){o=o.next()}var n=o.prev();if(n.hasClass("errors")){n.remove()}}}if(j<=1){f=undefined}break}f=f[h[j]]}if($(this).attr("type")=="radio"&&f!==undefined){if(q==b){$(this).prev().prev().remove()}}b=q;if(f===undefined){return}r=f;if(d.allMessages===false){r=(r[0])?r[0]:r}else{r=r.join("\r\n")}if($(this).attr("type")!="radio"){$(this).addClass("error")}var l=$(this).next();while(l.length&&l[0].tagName.toLowerCase()!="br"){l=l.next()}l.before('<div class="errors">'+r+"</div>")});if(d.indicator&&d.indicator.val){d.indicator.val(d.oldIndicatorVal)}$("input.error:first").focus()}else{if(d.indicator&&d.indicator.val){d.indicator.val(d.oldIndicatorVal)}if(typeof(d.callback)=="function"){d.callback()}}};FormJS.prototype.validate=function(a){this.fo={};$(this.form).find(".errors").remove();$(this.form).find(".error").removeClass("error");var c=this;$(this.form).find("input[type=text]").each(function(d){c._prepareInput(c,this)});$(this.form).find("input[type=password]").each(function(){c._prepareInput(c,this)});$(this.form).find("input[type=hidden]").each(function(){c._prepareInput(c,this)});$(this.form).find("input[type=radio]:checked").each(function(){c._prepareInput(c,this)});$(this.form).find("input[type=checkbox]").each(function(){c._prepareInput(c,this)});$(this.form).find("textarea").each(function(){c._prepareInput(c,this)});$(this.form).find("select").each(function(){c._prepareInput(c,this)});if(a){for(k in this.fo){if(k!=a){delete (this.fo[k])}}}var b=$.toJSON(this.fo);if(form_debug){alert(b)}if(!this._send(b)){return false}};FormJS.prototype._prepareInput=function(g,b){var c=$(b).attr("name");var a=c.match(/([^\[]+)(((\[\w+\])*)*)/i);var f=new Array(a[1]).concat(a[2].slice(1,-1).split("]["));var e=g.fo;for(var d=0;d<f.length-1;d++){e[f[d]]=e[f[d]]||{};e=e[f[d]]}e[f[d]]=$(b).val()};