(function($) { //alert('here'); $.pwstrength = function(password) { //alert('here2'); var score = 0, length = password.length, upperCase, lowerCase, digits, nonAlpha; if (length < 5) score += 0; else if (length < 8) score += 5; else if (length < 16) score += 10; else score += 15; lowerCase = password.match(/[a-z]/g); if (lowerCase) score += 1; upperCase = password.match(/[A-Z]/g); if (upperCase) score += 5; if (upperCase && lowerCase) score += 2; digits = password.match(/\d/g); if (digits && digits.length > 1) score += 5; nonAlpha = password.match(/\W/g) if (nonAlpha) score += (nonAlpha.length > 1) ? 15 : 10; //if (upperCase && lowerCase && digits && nonAlpha) score += 15; if (password.match(/\s/)) score += 10; //alert(score); /*if (score < 15) return 0; if (score < 20) return 1; if (score < 35) return 2; if (score < 50) return 3;*/ if (score < 10) return 0; if (score < 15) return 1; if (score < 20) return 2; if (score < 35) return 3; return 4; }; function updateIndicator(event) { var strength = $.pwstrength($(this).val()), options = event.data, klass; klass = options.classes[strength]; options.indicator.removeClass(options.indicator.data('pwclass')); options.indicator.data('pwclass', klass); options.indicator.addClass(klass); options.indicator.find(options.label).html(options.texts[strength]); } $.fn.pwstrength = function(options) { var options = $.extend({ label: '.label', classes: ['pw-very-weak', 'pw-weak', 'pw-mediocre', 'pw-strong', 'pw-very-strong'], texts: ['Very Weak', 'Weak', 'Medium Password ', 'Acceptable Password ', 'Very Strong'] }, options || {}); options.indicator = $('#' + this.data('indicator')); return this.keyup(options, updateIndicator); }; })(jQuery);