(function(a){a.extend(a.fn,{validate:function(c){if(!this.length){return}var b=a.data(this[0],"validator");if(b){return b}b=new FormValidator(this[0],c);a.data(this[0],"validator",b);return b}})})(jQuery);var FormValidator=function(b,a){this.settings=$.extend({},FormValidator.defaultSettings,a);this.form=$(b);this.initialize()};FormValidator.FIELD_ERROR_CLASS="fielderror";$.extend(FormValidator,{defaultSettings:{fieldErrorClass:FormValidator.FIELD_ERROR_CLASS,rules:{},incorrectValueMsg:_("Incorrect value")},FIELD_VALIDATION_STATUS:{ok:1,error_mask:10,error_minlength:11,error_maxlength:12,error_length:13,error_compare:14,error_comparenot:15,error_minvalue:16,error_callback:17,error:100},defaultFieldRule:{},rules:{mail:{mask:/^((([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},freemail:{mask:/^((([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,minlength:0},url:{mask:/^((https?|ftp):\/\/)?(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i},freeurl:{mask:/^((https?|ftp):\/\/)?(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,minlength:0},stricturl:{mask:/^((https?|ftp):\/\/)(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i},login:{mask:/^[A-Za-z0-9!@#\$%^&\*\(\)_\-\+\.]+?$/i,minlength:3},password:{mask:/^[a-zA-Z0-9\.\,\!\@\#\$\%\^\&\*\(\)_\-\+]+$/,minlength:8},password2:{mask:/^[a-zA-Z0-9\.\,\!\@\#\$\%\^\&\*\(\)_\-\+]+$/,minlength:8,compare:"password"},givenname:{mask:/^[a-zA-Zа-яА-ЯёЁ\-]+$/i},captcha:{strictlength:6},phone:{minlength:1,mask:/^[0-9\+\-\s\(\)\.\#]+$/},notnullvalue:{minvalue:1},notemptyvalue:{minlength:1}},getErrorStr:function(a){for(var b in FormValidator.FIELD_VALIDATION_STATUS){if(FormValidator.FIELD_VALIDATION_STATUS[b]==a){return b}}}});(function(){var a=(function(){var b={};$.each(FormValidator.FIELD_VALIDATION_STATUS,function(c){b[this]=c});return b})();FormValidator.prototype={fields:undefined,initialize:function(){var b=this;this.updateFields();this.putEvents()},putEvents:function(){var b=this;this.form.submit(function(){return b.submitFormHandler()})},updateFields:function(){var c=this,d=this.settings.skipDisabled?":enabled":"",b;if(this.settings.skipInvisible){d+=":visible"}this.fields=$("input"+d+",textarea"+d+",select"+d,this.form).each(function(){if($.data(this,"validator")){return}var f=this.name,h=$(this),i=$.extend({},c.settings.defaultFieldRule);var e=searchInClass(this,"field-");if(e&&FormValidator.rules[e]){i=$.extend({},i,FormValidator.rules[e])}if(c.settings.rules[f]){i=$.extend({},i,c.settings.rules[f])}$.each(["focus","blur","change","keydown","keyup"],function(){var j=String(this);h.bind(j,function(){var k=this;var l=$.data(k,"rules");if(method_exists(c,"fieldHandler"+j.firstCharUpper())){c["fieldHandler"+j.firstCharUpper()](k)}if(l&&l["on"+j]){l["on"+j].call(k,k,c)}if(c.settings["onField"+j.firstCharUpper()]){c.settings["onField"+j.firstCharUpper()].call(k,k)}})});var g=function(){c.fieldErrorFree(this)};$(this).click(g).keydown(g);if(!i.errorContainer&&(b=$("#"+this.id+"-error"))&&b.length){i.errorContainer=b}$.data(this,"validator",c);$.data(this,"rules",i)})},validate:function(){var c=this;var d=0;var b;this.errorFields={};$.each(this.fields,function(){var f=this,e=c.validateField(f),h={},g=$.data(f,"rules");f.blur();if(typeof e=="object"){h=e.data;e=e.valid}if(e!==true&&e>FormValidator.FIELD_VALIDATION_STATUS.ok){if(!g.warn){d++;if(!b){b=f}if(f.name){c.errorFields[f.name]=e}}c.fieldError(f,e,h)}else{if(f.name){c.errorFields[f.name]=false}}});$(b).focus();return(d==0)},validateField:function(c){var e=$.data(c,"rules"),d=this.fieldVal(c),b;if(e){if(e.trim){d=trimStr(d)}if($.isFunction(this.settings.fieldCallback)&&(!(b=this.settings.fieldCallback(d,c)))||(typeof b=="object"&&!b.valid)){return{valid:FormValidator.FIELD_VALIDATION_STATUS.error_callback,data:b.data}}if(!isNaN(e.minlength)&&d.length<e.minlength){return FormValidator.FIELD_VALIDATION_STATUS.error_minlength}if(e.maxlength&&d.length>e.maxlength){return FormValidator.FIELD_VALIDATION_STATUS.error_maxlength}if($.isFunction(e.callback)&&(!(b=e.callback(d,c)))||(typeof b=="object"&&!b.valid)){return{valid:FormValidator.FIELD_VALIDATION_STATUS.error_callback,data:b.data}}if(e.minvalue&&(isNaN(Number(d))||Number(d)<e.minvalue)){return FormValidator.FIELD_VALIDATION_STATUS.error_minvalue}if(e.strictlength&&d.length!=e.strictlength){return FormValidator.FIELD_VALIDATION_STATUS.error_length}if(e.mask&&(e.minlength!==0||d.length>0)&&!e.mask.test(d)){return FormValidator.FIELD_VALIDATION_STATUS.error_mask}if(e.compare&&(!d||d!=this.fieldVal(this.fieldByName(e.compare)))){return FormValidator.FIELD_VALIDATION_STATUS.error_compare}if(e.comparenot&&(!d||d==this.fieldVal(this.fieldByName(e.comparenot)))){return FormValidator.FIELD_VALIDATION_STATUS.error_comparenot}}return FormValidator.FIELD_VALIDATION_STATUS.ok},fieldVal:function(b){return(b.type=="radio")?this.form.find("input[name="+b.name+"]:checked").val():$(b).val()},fieldByName:function(b){var c=this.form[0];return $(document.getElementsByName(b)).map(function(d,e){return e.form==c&&e.name==b&&e||null})},fieldError:function(e,b,h){var d=this,g,c=b?FormValidator.getErrorStr(b)||b.toString():b.toString();if(is_string(e)){e=this.form.find("[name="+e+"]")[0]}g=$.data(e,"rules");if(g.errorContainer){var f=(function(){var i="";if(h&&h.msg===false){return false}if(h&&h.msg){i=h.msg}else{if(g["msg_"+a[b]]){i=g["msg_"+a[b]]}else{i=d.settings.incorrectValueMsg}}return i})();if(f){$(g.errorContainer).show().html(f)}else{$(g.errorContainer).hide().empty()}}if(g.onerror){g.onerror.call(e,e,c,h)}if(!g.warn){$(e).addClass(this.settings.fieldErrorClass)}if(h&&h.startPos!=undefined&&h.endPos!=undefined){setSelection(e,h.startPos,h.endPos)}if(this.settings.onFieldError){this.settings.onFieldError.call(e,e,c,h)}return this},fieldErrorFree:function(b){var c=$.data(b,"rules");if($(b).hasClass(this.settings.fieldErrorClass)){$(b).removeClass(this.settings.fieldErrorClass);if(c.errorContainer){$(c.errorContainer).hide().empty()}if(this.settings.onFieldErrorFree){this.settings.onFieldErrorFree.call(b,b)}}},allFieldsErrorFree:function(){var b=this;this.fields.each(function(){b.fieldErrorFree(this)})},fieldHandlerBlur:function(d){var c=this;var e=$.data(d,"rules");if((e&&e.validateOnBlur)||this.settings.validateFieldsOnBlur){var b=c.validateField(d);if(b>FormValidator.FIELD_VALIDATION_STATUS.ok){this.fieldError(d,b)}}},fieldHandlerKeyup:function(d){var c=this,e=$.data(d,"rules");if((e&&e.validateOnKeyup)||this.settings.validateFieldsOnKeyup){var b=c.validateField(d);if(b>FormValidator.FIELD_VALIDATION_STATUS.ok){this.fieldError(d,b)}}},submitFormHandler:function(){if(this.settings.onpresubmit){this.settings.onpresubmit.call(this.form[0])}if(this.settings.updateFieldsOnSubmit){this.updateFields()}if(this.validate()){if($.isFunction(this.settings.onsubmit)){return this.settings.onsubmit(this.getResults(),this.form[0],this)}else{return true}}else{if($.isFunction(this.settings.onerror)){this.settings.onerror(this.errorFields||{})}return false}},getResults:function(){var c=this;var b={};$.each(this.fields,function(){var e=this,d=this.name,g,f=$.data(e,"rules");if(e.type=="radio"){g=b[d]==undefined?c.fieldVal(this):b[d]}else{if(e.type=="checkbox"){g=Number(e.checked)}else{d=e.name||e.id;g=$(e).val();if(f.trim){g=trimStr(g)}}}b[d]=(f&&f.getVal)?f.getVal(g,e):g});return b},focusError:function(){this.fields.filter("."+this.settings.fieldErrorClass).eq(0).focus()}}})();function passwordStrength(b,e){var a=8,c=function(f,m){var k="";for(var h=0;h<m.length;h++){var l=true;for(var g=0;g<f&&(g+h+f)<m.length;g++){l=l&&(m.charAt(g+h)==m.charAt(g+h+f))}if(g<f){l=false}if(l){h+=f-1;l=false}else{k+=m.charAt(h)}}return k},d=0;if(!b||b.length<a){return 0}if(!e){e=window.TRACKER_USER?TRACKER_USER.login||"":""}if(b.toLowerCase()==e.toLowerCase()){return 0}d+=b.length*4;d+=(c(1,b).length-b.length)*1;d+=(c(2,b).length-b.length)*1;d+=(c(3,b).length-b.length)*1;d+=(c(4,b).length-b.length)*1;if(b.match(/(.*[0-9].*[0-9].*[0-9])/)){d+=5}if(b.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)){d+=5}if(b.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)){d+=10}if(b.match(/([a-zA-Z])/)&&b.match(/([0-9])/)){d+=15}if(b.match(/([!,@,#,$,%,^,&,*,?,_,~])/)&&b.match(/([0-9])/)){d+=15}if(b.match(/([!,@,#,$,%,^,&,*,?,_,~])/)&&b.match(/([a-zA-Z])/)){d+=15}if(b.match(/^\w+$/)||b.match(/^\d+$/)){d-=10}if(d<0){d=0}if(d>100){d=100}return d};
