]> scripts.mit.edu Git - autoinstalls/wordpress.git/blob - wp-admin/js/about.js
WordPress 3.7.1
[autoinstalls/wordpress.git] / wp-admin / js / about.js
1 (function($){
2         var password = 'Gosh, WordPress is grand.',
3                 $input = $('#pass'),
4                 shouldAnimate = true,
5                 timesForAnimation = [280, 300, 305, 310, 315, 325, 330, 345, 360, 370, 380, 400, 450, 500, 600],
6                 resultsCache = {},
7                 indicatorString = $('#pass-strength-result').text();
8
9         function updateResult(){
10                 var strength;
11
12                 if ( typeof( resultsCache[ $input.val() ]) === 'undefined') {
13                         strength = wp.passwordStrength.meter($input.val(), [], $input.val());
14                         resultsCache[ $input.val() ] = strength;
15                 } else {
16                         strength = resultsCache[ $input.val() ];
17                 }
18
19                 $('#pass-strength-result').removeClass('short bad good strong');
20                 switch ( strength ) {
21                         case 2:
22                                 $('#pass-strength-result').addClass('bad').html( pwsL10n['bad'] );
23                                 break;
24                         case 3:
25                                 $('#pass-strength-result').addClass('good').html( pwsL10n['good'] );
26                                 break;
27                         case 4:
28                                 $('#pass-strength-result').addClass('strong').html( pwsL10n['strong'] );
29                                 break;
30                         default:
31                                 $('#pass-strength-result').addClass('short').html( pwsL10n['short'] );
32                 }
33         }
34         function resetMeter(){
35                 $input.val('');
36                 $('#pass-strength-result').text(indicatorString);
37                 $('#pass-strength-result').removeClass('short bad good strong');
38         }
39
40         function animate(){
41                 if (shouldAnimate === false)
42                         return;
43                 if ($input.val().length < password.length){
44                         $input.val( password.substr(0, $input.val().length + 1) );
45                         updateResult();
46
47                         // Look like real typing by changing the speed new letters are added each time
48                         setTimeout( animate, ( timesForAnimation[ Math.floor( Math.random() * timesForAnimation.length ) ] ) );
49                 } else {
50                         resetMeter();
51
52                         // When we reset, let's wait a bit longer than normal to start again
53                         setTimeout(animate, 700);
54                 }
55
56         }
57
58         function begin(){
59                 // we async load zxcvbn, so we need to make sure it's loaded before starting
60                 if (typeof(zxcvbn) !== 'undefined')
61                         animate();
62                 else
63                         setTimeout(begin,800);
64         }
65
66         // Turn off the animation on focus
67         $input.on('focus', function(){
68                 shouldAnimate = false;
69                 resetMeter();
70         });
71
72         // Act like a normal password strength meter
73         $input.on('keyup', function(){
74                 updateResult();
75         });
76
77         // Start the animation
78         begin();
79
80 })(jQuery);