1//Load the larger zxcvbn.js file asynchronously 2(function(){var a;a=function(){var a,b;b=document.createElement("script");b.src=MeprZXCVBN.script_url;b.type="text/javascript";b.async=!0;a=document.getElementsByTagName("script")[0];return a.parentNode.insertBefore(b,a)};null!=window.attachEvent?window.attachEvent("onload",a):window.addEventListener("load",a,!1)}).call(this); 3 4function mepr_score_it($el) { 5 //console.log(zxcvbn($el.val()).score); 6 var score = zxcvbn($el.val()).score; 7 8 // The meter lives in the same form as the password field. The cart checkout has no 9 // <form> wrapper, so fall back to its step container there â forms are unaffected. 10 var $scope = $el.closest('form'); 11 if (!$scope.length) { 12 $scope = $el.closest('.mepr-checkout-step'); 13 } 14 15 if($el.val().length == 0) { 16 $scope.find('.mp-password-strength-display').attr('class', 'mp-password-strength-display mp-nopass'); 17 $scope.find('.mp-password-strength-display').html(MeprZXCVBN.indicator + '<br/><small>' + MeprZXCVBN.required + '</small>'); 18 $scope.find('.mp-pass-strength').val('0'); 19 } else { 20 switch(score) { 21 case 0: 22 $scope.find('.mp-password-strength-display').attr('class', 'mp-password-strength-display mp-weakpass'); 23 $scope.find('.mp-password-strength-display').html(MeprZXCVBN.very_weak + '<br/><small>' + MeprZXCVBN.required + '</small>'); 24 $scope.find('.mp-pass-strength').val('0'); 25 break; 26 case 1: 27 $scope.find('.mp-password-strength-display').attr('class', 'mp-password-strength-display mp-weakpass'); 28 $scope.find('.mp-password-strength-display').html(MeprZXCVBN.weak + '<br/><small>' + MeprZXCVBN.required + '</small>'); 29 $scope.find('.mp-pass-strength').val('1'); 30 break; 31 case 2: 32 $scope.find('.mp-password-strength-display').attr('class', 'mp-password-strength-display mp-mediumpass'); 33 $scope.find('.mp-password-strength-display').html(MeprZXCVBN.medium + '<br/><small>' + MeprZXCVBN.required + '</small>'); 34 $scope.find('.mp-pass-strength').val('2'); 35 break; 36 case 3: 37 $scope.find('.mp-password-strength-display').attr('class', 'mp-password-strength-display mp-strongpass'); 38 $scope.find('.mp-password-strength-display').html(MeprZXCVBN.strong + '<br/><small>' + MeprZXCVBN.required + '</small>'); 39 $scope.find('.mp-pass-strength').val('3'); 40 break; 41 case 4: 42 $scope.find('.mp-password-strength-display').attr('class', 'mp-password-strength-display mp-strongpass'); 43 $scope.find('.mp-password-strength-display').html(MeprZXCVBN.very_strong + '<br/><small>' + MeprZXCVBN.required + '</small>'); 44 $scope.find('.mp-pass-strength').val('4'); 45 break; 46 default: 47 $scope.find('.mp-password-strength-display').attr('class', 'mp-password-strength-display mp-nopass'); 48 $scope.find('.mp-password-strength-display').html(MeprZXCVBN.indicator + '<br/><small>' + MeprZXCVBN.required + '</small>'); 49 $scope.find('.mp-pass-strength').val('0'); 50 break; 51 } 52 } 53} 54 55jQuery(function($) { 56 //Signup forms 57 function mepr_check() { 58 if(typeof zxcvbn !== 'undefined') { 59 if($('.mepr-password').length && $('.mepr-password').val().length > 0) { 60 mepr_score_it($('.mepr-password')); 61 } 62 } else { 63 setTimeout(mepr_check, 100); 64 } 65 } 66 mepr_check(); 67 68 var selectors = '.mepr-password, .mepr-new-password, .mepr-forgot-password'; 69 70 document.body.addEventListener('keyup', function (e) { 71 if(e.target && e.target.matches && e.target.matches(selectors)) { 72 mepr_score_it($(e.target)); 73 } 74 }); 75 76 document.body.addEventListener('paste', function (e) { 77 if(e.target && e.target.matches && e.target.matches(selectors) && (e.clipboardData || window.clipboardData)) { 78 e.preventDefault(); 79 e.target.value = (e.clipboardData || window.clipboardData).getData('text'); 80 mepr_score_it($(e.target)); 81 } 82 }); 83 84 $(document).on('change', selectors, function(e) { 85 mepr_score_it($(e.target)); 86 }); 87});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.