1jQuery(document).ready(function(){
2 if(typeof window.langPasswordWeak === 'undefined'){
3 window.langPasswordWeak = "Weak";
4 }
5 if(typeof window.langPasswordModerate === 'undefined'){
6 window.langPasswordModerate = "Moderate";
7 }
8 if(typeof window.langPasswordStrong === 'undefined'){
9 window.langPasswordStrong = "Strong";
10 }
11
12 jQuery("#newpw").keyup(function () {
13 var pwvalue = jQuery("#newpw").val();
14 var pwstrength = getPasswordStrength(pwvalue);
15 jQuery("#pwstrength").html(langPasswordStrong);
16 jQuery("#pwstrengthpos").css("background-color","#33CC00");
17
18 var errorThreshold = !isNaN(parseInt(jQuery(this).data('error-threshold'))) ? jQuery(this).data('error-threshold') : 50;
19 var warningThreshold = !isNaN(parseInt(jQuery(this).data('warning-threshold'))) ? jQuery(this).data('warning-threshold') : 75;
20
21 if (pwstrength<warningThreshold) {
22 jQuery("#pwstrength").html(langPasswordModerate);
23 jQuery("#pwstrengthpos").css("background-color","#ff6600");
24 }
25 if (pwstrength<errorThreshold) {
26 jQuery("#pwstrength").html(langPasswordWeak);
27 jQuery("#pwstrengthpos").css("background-color","#cc0000");
28 }
29 jQuery("#pwstrengthpos").css("width",pwstrength);
30 jQuery("#pwstrengthneg").css("width",100-pwstrength);
31 });
32});
33
34function registerFormPasswordStrengthFeedback()
35{
36 passwordStrength = getPasswordStrength(jQuery(this).val());
37
38 var errorThreshold = !isNaN(parseInt(jQuery(this).data('error-threshold'))) ? jQuery(this).data('error-threshold') : 50;
39 var warningThreshold = !isNaN(parseInt(jQuery(this).data('warning-threshold'))) ? jQuery(this).data('warning-threshold') : 75;
40
41 if (passwordStrength >= warningThreshold) {
42 textLabel = langPasswordStrong;
43 cssClass = 'success';
44 } else if (passwordStrength >= errorThreshold) {
45 textLabel = langPasswordModerate;
46 cssClass = 'warning';
47 } else {
48 textLabel = langPasswordWeak;
49 cssClass = 'danger';
50 }
51 jQuery("#passwordStrengthTextLabel").html(langPasswordStrength + ': ' + passwordStrength + '% ' + textLabel);
52 jQuery("#passwordStrengthMeterBar").css('width', passwordStrength + '%').attr('aria-valuenow', passwordStrength);
53 var ver = parseInt($.fn.tooltip.Constructor.VERSION);
54 switch (ver) {
55 case 3:
56 jQuery("#passwordStrengthMeterBar").removeClass('progress-bar-success progress-bar-warning progress-bar-danger').addClass('progress-bar-' + cssClass);
57 break;
58 default:
59 jQuery("#passwordStrengthMeterBar").removeClass('bg-danger bg-warning bg-success').addClass('bg-' + cssClass);
60 break;
61 }
62}
63
64function getPasswordStrength(pw){
65 var pwlength=(pw.length);
66 if(pwlength>5)pwlength=5;
67 var numnumeric=pw.replace(/[0-9]/g,"");
68 var numeric=(pw.length-numnumeric.length);
69 if(numeric>3)numeric=3;
70 var symbols=pw.replace(/\W/g,"");
71 var numsymbols=(pw.length-symbols.length);
72 if(numsymbols>3)numsymbols=3;
73 var numupper=pw.replace(/[A-Z]/g,"");
74 var upper=(pw.length-numupper.length);
75 if(upper>3)upper=3;
76 var pwstrength=((pwlength*10)-20)+(numeric*10)+(numsymbols*15)+(upper*10);
77 if(pwstrength<0){pwstrength=0}
78 if(pwstrength>100){pwstrength=100}
79 return pwstrength;
80}
81
82function showStrengthBar() {
83 if(typeof window.langPasswordStrength === 'undefined'){
84 window.langPasswordStrength = "Password Strength";
85 }
86 if(typeof window.langPasswordWeak === 'undefined'){
87 window.langPasswordWeak = "Weak";
88 }
89 document.write('<table align="center" style="width:auto;"><tr><td>'+langPasswordStrength+':</td><td><div id="pwstrengthpos" style="position:relative;float:left;width:0px;background-color:#33CC00;border:1px solid #000;border-right:0px;"> </div><div id="pwstrengthneg" style="position:relative;float:left;width:100px;background-color:#efefef;border:1px solid #000;border-left:0px;"> </div></td><td><div id="pwstrength">'+langPasswordWeak+'</div></td></tr></table>');
90}
91