jQuery.fn.passwordStrength=function(b){var e={};e.levels={tooShort:true,invalid:true,weak:true,fair:true,strong:true};e.tests={minimumLength:true,minimumLength:true,mediumLength:true,superLength:true,numbers:true,specialChars:true,capitalLetters:true};var h=jQuery(this);var f=jQuery([]);var d="";var c={};c.levels={tooShort:{minimumStrength:0,indicatorText:"",indicatorClass:"indicator-tooShort"},weak:{minimumStrength:0.16,indicatorText:"",indicatorClass:"indicator-weak"},fair:{minimumStrength:0.48,indicatorText:"",indicatorClass:"indicator-fair"},strong:{minimumStrength:0.8,indicatorText:"",indicatorClass:"indicator-strong"}};c.tests={minimumLength:{type:"length",params:[5],obligatory:true,strength:1},mediumLength:{type:"length",params:[7],obligatory:false,strength:1},superLength:{type:"length",params:[10],obligatory:false,strength:1},numbers:{type:"regexp",params:["[0-9]+"],obligatory:false,strength:1},specialChars:{type:"regexp",params:["[!@#$^&*()]+"],obligatory:false,strength:1},capitalLetters:{type:"regexp",params:["[A-Z]+"],obligatory:false,strength:1}};var g=function(i){e=jQuery.extend(e,i);f=jQuery("<div>").addClass("passwordStrengthIndicator");f.insertAfter(h);f.append(f=jQuery("<div>").addClass("indicator"));f.hide();h.keyup(function(){a()}).focus(function(){f.show()}).blur(function(){f.hide()});for(var k in e.levels){if(typeof(c.levels[k])!=="undefined"){if(typeof(e.levels[k])==="object"||e.levels[k]===true){e.levels[k]=jQuery.extend(true,c.levels[k],e.levels[k])}else{delete e.levels[k]}}d+=d.length?" ":"";d+=e.levels[k].indicatorClass}for(var j in e.tests){if(typeof(c.tests[j])!=="undefined"){if(typeof(e.tests[j])==="object"||e.tests[j]===true){e.tests[j]=jQuery.extend(true,c.tests[j],e.tests[j])}else{delete e.tests[j]}}}};var a=function(){var q=h.val();var j=0;var k=0;var n=true;for(var p in e.tests){if(n===false){break}var m=false;switch(e.tests[p].type){case"length":if(typeof(e.tests[p].params)!=="undefined"&&q.length>=e.tests[p].params[0]){m=true}break;case"regexp":if(typeof(e.tests[p].params)!=="undefined"&&(new RegExp(e.tests[p].params[0])).exec(q)!==null){m=true}break}if(typeof(e.tests[p].strength)!=="undefined"&&e.tests[p].strength>0){k+=e.tests[p].strength;if(m===true){j+=e.tests[p].strength}}if(typeof(e.tests[p].obligatory)!=="undefined"&&e.tests[p].obligatory===true&&m===false){n=false}}if(k!==0){j=j/k}var o=null;var l=0;for(var i in e.levels){if(j>=e.levels[i].minimumStrength&&e.levels[i].minimumStrength>=l){o=i;l=e.levels[i].minimumStrength}}if(o!==null){f.removeClass(d).addClass(e.levels[o].indicatorClass).html(e.levels[o].indicatorText)}};jQuery(document).ready(function(){g(b)})};