(function(f){var b=/[a-z]/,g=/[A-Z]/,e=/[0-9]/,i=/[0-9].*[0-9]/,a=/[^a-zA-Z0-9]/,h=/^(.)\1+$/;function d(j,k){return{rate:j,messageKey:k}}function c(j){return j.substring(0,1).toLowerCase()+j.substring(1)}f.validator.passwordRating=function(l,p){if(!l||l.length<f.validator.passwordRating.minLength){return d(0,"too-short")}if(p&&l.toLowerCase().match(p.toLowerCase())){return d(0,"similar-to-username")}if(h.test(l)){return d(1,"very-weak")}var k=b.test(l),m=g.test(c(l)),o=e.test(l),n=i.test(l),j=a.test(l);if(k&&m&&o||k&&n||m&&n||j){return d(4,"strong")}if(k&&m||k&&o||m&&o){return d(3,"good")}return d(2,"weak")};f.validator.passwordRating.minLength=6;f.validator.passwordRating.messages={"similar-to-username":"Too similar to username","too-short":"Too short","very-weak":"Very weak",weak:"Weak",good:"Good",strong:"Strong"};f.validator.addMethod("password",function(n,k,o){var j=k.value,p=f(typeof o!="boolean"?o:[]);var l=f.validator.passwordRating(j,p.val());var m=f(".password-meter",k.form);m.find(".password-meter-bar").removeClass().addClass("password-meter-bar").addClass("password-meter-"+l.messageKey);m.find(".password-meter-message").removeClass().addClass("password-meter-message").addClass("password-meter-message-"+l.messageKey).text(f.validator.passwordRating.messages[l.messageKey]);return l.rate>2},"&nbsp;");f.validator.classRuleSettings.password={password:true}})(jQuery);
