"use strict";var UapPasswordStrength={colors:['#F00','#F90','#FF0','#9F0','#0F0'],labels:[],init:function(args){var obj=this;obj.setAttributes(obj,args);if(typeof window.uapPasswordStrengthLabels==='string'){obj.labels=JSON.parse(window.uapPasswordStrengthLabels)}else{obj.labels=window.uapPasswordStrengthLabels}
window.addEventListener('DOMContentLoaded',function(){jQuery(document).on('keyup',jQuery('[name=pass1]'),function(evt){obj.handleTypePassword(obj,evt)})
jQuery(document).on('keyup',jQuery('[name=pass2]'),function(evt){obj.handleTypePassword(obj,evt)})})},setAttributes:function(obj,args){for(var key in args){obj[key]=args[key]}},handleTypePassword:function(obj,evt){var rules=jQuery(evt.target).attr('data-rules');if(!rules){return}
rules=rules.split(',');var strength=obj.mesureStrength(evt.target.value,rules);var color=obj.getColor(strength);var ul=jQuery(evt.target).parent().find('ul');ul.children('li').css({"background":"#DDD"}).slice(0,color.idx).css({"background":color.col});var newLabel=obj.labels[0];if(strength>10&&strength<21){newLabel=obj.labels[1]}else if(strength>20&&strength<31){newLabel=obj.labels[2]}else if(strength>30){newLabel=obj.labels[3]}
jQuery(evt.target).parent().find('.uap-strength-label').html(newLabel)},mesureStrength:function(p,rules){var _force=0;var _regex=/[$-/:-?{-~!"^_`\[\]]/g;var _letters=/[a-zA-Z]+/.test(p);var _lowerLetters=/[a-z]+/.test(p);var _upperLetters=/[A-Z]+/.test(p);var _numbers=/[0-9]+/.test(p);var _symbols=_regex.test(p);if(p.length<rules[0]){return 0}
if(rules[1]==2&&(!_numbers||!_letters)){return 0}else if(rules[1]==3&&(!_numbers||!_letters||!_upperLetters)){return 0}
var _flags=[_lowerLetters,_upperLetters,_numbers,_symbols];var _passedMatches=jQuery.grep(_flags,function(el){return el===!0}).length;_force+=2*p.length+((p.length>=10)?1:0);_force+=_passedMatches*10;_force=(p.length<=6)?Math.min(_force,10):_force;_force=(_passedMatches==1)?Math.min(_force,10):_force;_force=(_passedMatches==2)?Math.min(_force,20):_force;_force=(_passedMatches==3)?Math.min(_force,40):_force;return _force},getColor:function(s){var idx=0;if(s<=10){idx=0}else if(s<=20){idx=1}else if(s<=30){idx=2}else if(s<=40){idx=3}else{idx=4}
return{idx:idx+1,col:this.colors[idx]}}}
UapPasswordStrength.init({})