var shortPass="Needs to be longer (at least 5 characters)";var badPass="Not brilliant; try using some unusual characters";var badPassSame="Using the same password as your URL isn't very secure...";var goodPass="Good...why not add a capital letter?";var strongPass="Perfect! Now, make sure you can remember it...";function passwordStrength(a,b){score=0;if(a.length<5){return shortPass}if(a.toLowerCase()==b.toLowerCase()){return badPassSame}score+=a.length*4;score+=(checkRepetition(1,a).length-a.length)*1;score+=(checkRepetition(2,a).length-a.length)*1;score+=(checkRepetition(3,a).length-a.length)*1;score+=(checkRepetition(4,a).length-a.length)*1;if(a.match(/(.*[0-9].*[0-9])/)){score+=5}if(a.match(/(.*[!,@,#,$,%,^,&,*,?,_,~])/)){score+=5}if(a.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)){score+=10}if(a.match(/([a-zA-Z])/)&&a.match(/([0-9])/)){score+=15}if(a.match(/([!,@,#,$,%,^,&,*,?,_,~])/)&&a.match(/([0-9])/)){score+=15}if(a.match(/([!,@,#,$,%,^,&,*,?,_,~])/)&&a.match(/([a-zA-Z])/)){score+=15}if(a.match(/^\w+$/)||a.match(/^\d+$/)){score-=5}if(score<0){score=0}if(score>100){score=100}if(score<34){return badPass}if(score<68){return goodPass}return strongPass}function checkRepetition(a,b){res="";for(i=0;i<b.length;i++){repeated=true;for(j=0;j<a&&(j+i+a)<b.length;j++){repeated=repeated&&(b.charAt(j+i)==b.charAt(j+i+a))}if(j<a){repeated=false}if(repeated){i+=a-1;repeated=false}else{res+=b.charAt(i)}}return res};
