(function(b){b.fn.shortPass="Short";b.fn.badPass="Weak";b.fn.goodPass="Good";b.fn.strongPass="Strong";b.fn.samePassword="Username and Password identical.";b.fn.resultStyle="";b.fn.passStrength=function(f){var d=b.extend({shortPass:"shortPass",badPass:"badPass",goodPass:"goodPass",strongPass:"strongPass",noPass:"noPass",baseStyle:"testresult",userid:"",messageloc:1},f);return this.each(function(){var e=b(this);b(e).unbind().keyup(function(){var c=b.fn.teststrength(b(this).val(),b(d.userid).val(),d); 1===d.messageloc?(b(this).next("."+d.baseStyle).remove(),b(this).after('<span class="'+d.baseStyle+'"><span></span></span>'),b(this).next("."+d.baseStyle).addClass(b(this).resultStyle).find("span").text(c)):(b(this).prev("."+d.baseStyle).remove(),b(this).before('<span class="'+d.baseStyle+'"><span></span></span>'),b(this).prev("."+d.baseStyle).addClass(b(this).resultStyle).find("span").text(c))});b.fn.teststrength=function(c,a,d){a=0;if(0==c.length)return this.resultStyle=d.noPass,b(this).noPass; if(8>c.length)return this.resultStyle=d.shortPass,b(this).shortPass;a+=4*c.length;a+=1*(b.fn.checkRepetition(1,c).length-c.length);a+=1*(b.fn.checkRepetition(2,c).length-c.length);a+=1*(b.fn.checkRepetition(3,c).length-c.length);a+=1*(b.fn.checkRepetition(4,c).length-c.length);c.match(/(.*[0-9].*[0-9].*[0-9])/)&&(a+=5);c.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)&&(a+=5);c.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)&&(a+=10);c.match(/([a-zA-Z])/)&&c.match(/([0-9])/)&&(a+=15);c.match(/([!,@,#,$,%,^,&,*,?,_,~])/)&& c.match(/([0-9])/)&&(a+=15);c.match(/([!,@,#,$,%,^,&,*,?,_,~])/)&&c.match(/([a-zA-Z])/)&&(a+=15);if(c.match(/^\w+$/)||c.match(/^\d+$/))a-=10;0>a&&(a=0);100<a&&(a=100);if(34>a)return this.resultStyle=d.badPass,b(this).badPass;if(68>a)return this.resultStyle=d.goodPass,b(this).goodPass;if(68<a)return this.resultStyle=d.strongPass,b(this).strongPass;this.resultStyle=d.badPass;return b(this).badPass}})}})(jQuery); jQuery.fn.checkRepetition=function(b,f){for(var d="",e=0;e<f.length;e++){for(var c=!0,a=0;a<b&&a+e+b<f.length;a++)c=c&&f.charAt(a+e)==f.charAt(a+e+b);a<b&&(c=!1);c?e+=b-1:d+=f.charAt(e)}return d};
