namespace("widgets.complexPasswordValidator");widgets.complexPasswordValidator.ComplexPasswordValidatorView=Backbone.View.extend({initialize:function(n){var u,t,i,r;_.extend(this,n);this.errorMessageSection=this.$(this.errorMessageSectionSelector);this.errorMessageSection.hide();$.templates("errorMessageSectionTmpl",this.$("#errorMessageSectionTmpl").html());this.templates=_.clone($.templates);this.passwordInput=this.$(this.passwordInputSelector);u=this;t="validatePassword"+this.cid;$.validator.addMethod(t,function(){return u.validateAndDisplayErrorsIfAny()});i={};i[t]=!0;r={};r[t]="Password is invalid";i.messages=r;this.passwordInput.rules("add",i);this.passwordInput.on("change keyup",_(this.onPasswordChanged).bind(this))},onPasswordChanged:function(){this.validateAndDisplayErrorsIfAny()},validateAndDisplayErrorsIfAny:function(){var n=this.passwordInput.val(),t={passwordLengthIsMoreThanN:n.length>=this.minPasswordLength,containsUppercase:this.hasUpperCase(n),containsLowercase:this.hasLowerCase(n),containsDigitOrSpecialChar:this.hasDigit(n)||this.hasSpecialChar(n)},i=_(t).all(function(n){return n==!0});return i?this.errorMessageSection.hide():this.renderErrorMessageSection(t),i},renderErrorMessageSection:function(n){var t=$.render("errorMessageSectionTmpl",n,{templates:this.templates});this.errorMessageSection.html(t);this.errorMessageSection.show()},hasLowerCase:function(n){return/[a-z]/.test(n)},hasUpperCase:function(n){return/[A-Z]/.test(n)},hasDigit:function(n){return/[0-9]/.test(n)},hasSpecialChar:function(n){return/^[a-zA-Z0-9]*$/.test(n)==!1}})