{"version":3,"sources":["jquery\\pStrength.jquery.js"],"names":["$","settings","numbers_array","Array","upper_letters_array","lower_letters_array","special_chars_array","pStrengthElementsDefaultStyle","methods","init","options","callbacks","extend","bind","changeBackground","backgrounds","passwordValidFrom","onValidatePassword","percentage","onPasswordStrengthChanged","passwordStrength","i","push","this","each","idx","pStrengthElement","$pStrengthElement","background","css","color","calculatePasswordStrength","call","data","on","undefined","background-color","resetStyle","ord","string","str","code","charCodeAt","hi","length","numbers_found","upper_letters_found","lower_letters_found","special_chars_found","$this","text","val","trim","Math","floor","inArray","charAt","behaviour","strengthPercentage","ceil","fn","pStrength","method","apply","prototype","slice","arguments","error","jQuery"],"mappings":"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","sourcesContent":["/*!\r\n * Based on: pStrength jQuery Plugin v1.0.10\r\n * https://github.com/M1Sh0u/pStrength\r\n *\r\n * Released under the MIT License (Feel free to copy, modify or redistribute this plugin.)\r\n *\r\n */\r\n \r\n(function($){\r\n var numbers_array = new Array(),\r\n upper_letters_array = new Array(),\r\n lower_letters_array = new Array(),\r\n special_chars_array = new Array(),\r\n pStrengthElementsDefaultStyle = new Array(),\r\n settings,\r\n methods = {\r\n init : function( options, callbacks) {\r\n \r\n settings = $.extend({\r\n 'bind': 'keyup change',\r\n 'changeBackground': true,\r\n 'backgrounds': [\r\n ['#cc0000', '#FFF'], ['#cc3333', '#FFF'], ['#cc6666', '#FFF'], ['#ff9999', '#FFF'],\r\n ['#e0941c', '#FFF'], ['#e8a53a', '#FFF'], ['#eab259', '#FFF'], ['#efd09e', '#FFF'],\r\n ['#ccffcc', '#FFF'], ['#66cc66', '#FFF'], ['#339933', '#FFF'], ['#006600', '#FFF'], ['#105610', '#FFF']\r\n ],\r\n 'passwordValidFrom': 60, // 60%\r\n 'onValidatePassword': function(percentage) { },\r\n 'onPasswordStrengthChanged': function(passwordStrength, percentage) { }\r\n }, options);\r\n \r\n for(var i = 48; i < 58; i++)\r\n numbers_array.push(i);\r\n for(i = 65; i < 91; i++)\r\n upper_letters_array.push(i);\r\n for(i = 97; i < 123; i++)\r\n lower_letters_array.push(i);\r\n for(i = 32; i < 48; i++)\r\n special_chars_array.push(i);\r\n for(i = 58; i < 65; i++)\r\n special_chars_array.push(i);\r\n for(i = 91; i < 97; i++)\r\n special_chars_array.push(i);\r\n for(i = 123; i < 127; i++)\r\n special_chars_array.push(i);\r\n \r\n return this.each((function (idx, pStrengthElement) {\r\n var $pStrengthElement = $(pStrengthElement);\r\n pStrengthElementsDefaultStyle[$pStrengthElement] = {\r\n 'background': $pStrengthElement.css('background'),\r\n 'color': $pStrengthElement.css('color')\r\n }\r\n \r\n calculatePasswordStrength.call(pStrengthElement);\r\n \r\n $pStrengthElement.data(\"pStrength\", true).on(settings.bind, function(){\r\n calculatePasswordStrength.call(this, pStrengthElement); //***\r\n });\r\n \r\n }).bind(this));\r\n },\r\n \r\n changeBackground: function(pStrengthElement, passwordStrength) {\r\n if (passwordStrength === undefined) {\r\n passwordStrength = pStrengthElement;\r\n pStrengthElement = $(this);\r\n }\r\n passwordStrength = passwordStrength > 12 ? 12 : passwordStrength;\r\n \r\n pStrengthElement.css({\r\n 'background-color': settings.backgrounds[passwordStrength][0],\r\n 'color': settings.backgrounds[passwordStrength][1]\r\n });\r\n },\r\n \r\n resetStyle: function(pStrengthElement) {\r\n var $pStrengthElement = $(pStrengthElement);\r\n $pStrengthElement.css(pStrengthElementsDefaultStyle[$pStrengthElement]);\r\n }\r\n };\r\n \r\n var ord = function(string) {\r\n var str = string + '',\r\n code = str.charCodeAt(0);\r\n if (0xD800 <= code && code <= 0xDBFF) {\r\n var hi = code;\r\n if (str.length === 1) {\r\n return code;\r\n }\r\n var low = str.charCodeAt(1);\r\n return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;\r\n }\r\n \r\n if (0xDC00 <= code && code <= 0xDFFF) {\r\n return code;\r\n }\r\n return code;\r\n }\r\n \r\n var calculatePasswordStrength = function(){\r\n var passwordStrength = 0,\r\n numbers_found = 0,\r\n upper_letters_found = 0,\r\n lower_letters_found = 0,\r\n special_chars_found = 0,\r\n $this = $(this),\r\n text = $this.val().trim();\r\n \r\n passwordStrength += 2 * Math.floor(text.length / 8);\r\n \r\n for(var i = 0; i < text.length; i++) {\r\n if($.inArray(ord(text.charAt(i)), numbers_array) != -1 && numbers_found < 2) {\r\n passwordStrength++;\r\n numbers_found++;\r\n continue;\r\n }\r\n if($.inArray(ord(text.charAt(i)), upper_letters_array) != -1 && upper_letters_found < 2) {\r\n passwordStrength++;\r\n upper_letters_found++;\r\n continue;\r\n }\r\n if($.inArray(ord(text.charAt(i)), lower_letters_array) != -1 && lower_letters_found < 2) {\r\n passwordStrength++;\r\n lower_letters_found++;\r\n continue;\r\n }\r\n if($.inArray(ord(text.charAt(i)), special_chars_array) != -1 && special_chars_found < 2) {\r\n passwordStrength++;\r\n special_chars_found++;\r\n continue;\r\n }\r\n }\r\n \r\n behaviour.call($this, passwordStrength);\r\n \r\n return passwordStrength;\r\n }\r\n \r\n var behaviour = function(passwordStrength) {\r\n var strengthPercentage = Math.ceil(passwordStrength * 100 / 12);\r\n strengthPercentage = strengthPercentage > 100 ? 100 : strengthPercentage;\r\n \r\n settings.onPasswordStrengthChanged.call(this, passwordStrength, strengthPercentage);\r\n if (strengthPercentage >= settings.passwordValidFrom) {\r\n settings.onValidatePassword.call(this, strengthPercentage);\r\n }\r\n \r\n if (settings.changeBackground) {\r\n methods.changeBackground.call(this, passwordStrength);\r\n } \r\n }\r\n\r\n $.fn.pStrength = function(method) {\r\n if ( methods[method] ) {\r\n return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));\r\n } else if ( typeof method === 'object' || ! method ) {\r\n return methods.init.apply( this, arguments );\r\n } else {\r\n $.error( 'Method ' + method + ' does not exists on jQuery.pStrength' );\r\n }\r\n };\r\n})(jQuery);\r\n"]}