(function($){var $element=null;
var PasswordValidation=function(element,options,event){if(options=="show"){this._showPopover(element);
return;
}else{if(options=="hide"){this._hidePopover(element);
return;
}}this.lowerCaseValidateMsg='<div id="lowerCaseValidate_<idPopover>" class="invalid validation" ><span class="iconValid glyphicon glyphicon-ok-circle" aria-hidden="true"></span><span class="iconInvalid glyphicon glyphicon-remove-circle" aria-hidden="true"></span>'+i18n.msg("pwd.validator.lowerCaseMsg")+"</div>";
this.upperCaseValidateMsg='<div id="upperCaseValidate_<idPopover>" class="invalid validation" ><span class="iconValid glyphicon glyphicon-ok-circle" aria-hidden="true"></span><span class="iconInvalid glyphicon glyphicon-remove-circle" aria-hidden="true"></span>'+i18n.msg("pwd.validator.upperCaseMsg")+"</div>";
this.numberRequiredValidateMsg='<div id="numberValidate_<idPopover>" class="invalid validation" ><span class="iconValid glyphicon glyphicon-ok-circle" aria-hidden="true"></span><span class="iconInvalid glyphicon glyphicon-remove-circle" aria-hidden="true"></span>'+i18n.msg("pwd.validator.numberMsg")+"</div>";
this.minSizeValidateMsg='<div id="minsizeValidate_<idPopover>" class="invalid validation" ><span class="iconValid glyphicon glyphicon-ok-circle" aria-hidden="true"></span><span class="iconInvalid glyphicon glyphicon-remove-circle" aria-hidden="true"></span>'+i18n.msg("pwd.validator.minSizeMsg")+"</div>";
this.simbolRequiredValidateMsg='<div id="simbolRequiredValidate_<idPopover>" class="invalid validation" ><span class="iconValid glyphicon glyphicon-ok-circle" aria-hidden="true"></span><span class="iconInvalid glyphicon glyphicon-remove-circle" aria-hidden="true"></span>Simbolos</div>';
this.invalidCaractersValidateMsg='<div id="invalidCharactersValidate_<idPopover>" class="valid" ><span class="iconValid glyphicon glyphicon-ok-circle" aria-hidden="true"></span><span class="iconInvalid glyphicon glyphicon-remove-circle" aria-hidden="true"></span>'+i18n.msg("pwd.validator.invalidCharsMsg")+"</div>";
this.nameValidateMsg='<div id="nameValidate_<idPopover>" class="marginTop12"><span class="glyphicon glyphicon-exclamation-sign iconAlert"></span><span><i>'+i18n.msg("pwd.validator.nameMsg")+"</i></span></div>";
this.popoverId=null;
if(event){event.stopPropagation();
event.preventDefault();
}this.$element=$(element);
this.$newElement=null;
this.options=options;
this.name="";
this.init();
return this;
};
PasswordValidation.prototype._showPopover=function(element){$(element).popover("show");
};
PasswordValidation.prototype._hidePopover=function(element){$(element).popover("hide");
};
PasswordValidation.prototype._isShown=function(){return $(".popover").hasClass("in");
};
PasswordValidation.prototype.init=function(){var that=this,id=that.$element.attr("id");
var contentPopover="";
if(that.options){if(that.options.minSize){var contentMinSize=that.minSizeValidateMsg.replace("<size>",that.options.minSize);
contentPopover=contentPopover+contentMinSize;
contentPopover=contentPopover.replace("<idPopover>",id);
}if(that.options.lowerCaseRequired){contentPopover=contentPopover+that.lowerCaseValidateMsg;
contentPopover=contentPopover.replace("<idPopover>",id);
}if(that.options.upperCaseRequired){contentPopover=contentPopover+that.upperCaseValidateMsg;
contentPopover=contentPopover.replace("<idPopover>",id);
}if(that.options.numberRequired){contentPopover=contentPopover+that.numberRequiredValidateMsg;
contentPopover=contentPopover.replace("<idPopover>",id);
}if(that.options.simbolRequired){contentPopover=contentPopover+that.simbolRequiredValidateMsg;
contentPopover=contentPopover.replace("<idPopover>",id);
}if(!that.options.acceptInvalidCaracters){contentPopover=contentPopover+that.invalidCaractersValidateMsg;
contentPopover=contentPopover.replace("<idPopover>",id);
}if(that.options.verifyName){contentPopover=contentPopover+that.nameValidateMsg;
contentPopover=contentPopover.replace("<idPopover>",id);
that.name=that.options.verifyName;
}}that.$element.on("shown.bs.popover",function(){that.checkPassword(that.$element.val());
});
var selector=that.$element.attr("id");
that.popoverId=that.$element.popover({title:i18n.msg("pwd.validator.title"),content:contentPopover,trigger:"manual",container:"body",html:true});
that.$element.off("keyup").on("keyup",function(event){that.checkPassword(that.$element.val());
});
that.$element.focus(function(){if(!that._isShown()==true){that.$element.popover({title:i18n.msg("pwd.validator.title"),content:contentPopover,trigger:"manual",container:"body",html:true});
that.$element.popover("show");
}});
};
PasswordValidation.prototype._changeToValid=function(div){if($(div).hasClass("invalid")){$(div).removeClass("invalid");
$(div).addClass("valid");
}};
PasswordValidation.prototype._changeToInValid=function(div){if($(div).hasClass("valid")){$(div).removeClass("valid");
$(div).addClass("invalid");
}};
PasswordValidation.prototype.checkPassword=function(pswd){var that=this;
var isValid=true;
if($("#recoveryPassInputPass").attr("errorcode")=="95"){$("#nameValidate_recoveryPassInputPass").addClass("invalidTerminos");
$("#recoveryPassInputPass").removeAttr("errorcode");
}else{$(".validation").show();
$("#nameValidate_recoveryPassInputPass").removeClass("invalidTerminos");
}if(that.options.minSize&&pswd.length>=that.options.minSize){that._changeToValid("#minsizeValidate_"+this.$element.attr("id"));
}else{that._changeToInValid("#minsizeValidate_"+this.$element.attr("id"));
isValid=false;
}if(pswd.match(/[a-z]/)){that._changeToValid("#lowerCaseValidate_"+this.$element.attr("id"));
}else{that._changeToInValid("#lowerCaseValidate_"+this.$element.attr("id"));
isValid=false;
}if(pswd.match(/[A-Z]/)){that._changeToValid("#upperCaseValidate_"+this.$element.attr("id"));
}else{that._changeToInValid("#upperCaseValidate_"+this.$element.attr("id"));
isValid=false;
}if(pswd.match(/\d/)){that._changeToValid("#numberValidate_"+this.$element.attr("id"));
}else{that._changeToInValid("#numberValidate_"+this.$element.attr("id"));
isValid=false;
}that.$element.attr("valid",isValid);
};
PasswordValidation.prototype.checkPasswordChar=function(pswdChar){var result=false;
try{if(pswdChar.match(/[a-z]/)||pswdChar.match(/[A-Z]/)||pswdChar.match(/\d/)||pswdChar.match(/[\u007E]/)||pswdChar.match(/[\u0021]/)||pswdChar.match(/[\u0040]/)||pswdChar.match(/[\u0023]/)||pswdChar.match(/[\u0024]/)||pswdChar.match(/[\u0025]/)||pswdChar.match(/[\u005E]/)||pswdChar.match(/[\u0026]/)||pswdChar.match(/[\u002A]/)||pswdChar.match(/[\u005F]/)||pswdChar.match(/[\u002D]/)||pswdChar.match(/[\u002B]/)||pswdChar.match(/[\u003D]/)||pswdChar.match(/[\u0060]/)||pswdChar.match(/[\u007C]/)||pswdChar.match(/[\u005C]/)||pswdChar.match(/[\u0028]/)||pswdChar.match(/[\u0029]/)||pswdChar.match(/[\u007B]/)||pswdChar.match(/[\u007D]/)||pswdChar.match(/[\u005B]/)||pswdChar.match(/[\u005D]/)||pswdChar.match(/[\u003A]/)||pswdChar.match(/[\u003B]/)||pswdChar.match(/[\u0022]/)||pswdChar.match(/[\u0027]/)||pswdChar.match(/[\u003C]/)||pswdChar.match(/[\u003E]/)||pswdChar.match(/[\u002C]/)||pswdChar.match(/[\u002E]/)||pswdChar.match(/[\u003F]/)||pswdChar.match(/[\u002F]/)){result=true;
}}catch(e){}return result;
};
PasswordValidation.prototype.checkPasswordFullName=function(pswd){var fullName=this.name.split(" ");
var containsName=false;
if(fullName.length>=1&&fullName[0]!=""){for(var i=0;
!containsName&&(i<fullName.length);
i++){if(fullName[i]!=null&&fullName[i]!=undefined&&fullName[i]!=""&&fullName[i]!=" "){containsName=(pswd.toLowerCase().match(fullName[i].toLowerCase())!=null);
}}}return containsName;
};
PasswordValidation.prototype.updateVerticalPosition=function(top){var position=top;
};
PasswordValidation.prototype.hide=function(pswd){};
function Plugin(option,event){return this.each(function(){var $this=$(this);
new PasswordValidation(this,option);
});
}$.fn.passwordValidation=Plugin;
$.fn.passwordValidation.Constructor=PasswordValidation;
})(jQuery);