HEX
Server:
System: Linux aac286ea486c 5.14.0-687.15.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jun 11 08:51:45 EDT 2026 x86_64
User: root (0)
PHP: 8.2.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,disk_free_space,diskfreespace
Upload Files
File: /dom877180/wp-content/plugins/indeed-membership-pro/assets/js/passwordStrength.js
/*
* Ultimate Membership Pro - Password Strength
*/
"use strict";
var IhcPasswordStrength = {
  colors: ['#F00', '#F90', '#FF0', '#9F0', '#0F0'],
  labels: [],

  init: function(args){
        var obj = this;
        obj.setAttributes(obj, args);
        if ( typeof window.ihcPasswordStrengthLabels === 'string' ){
            obj.labels = JSON.parse(window.ihcPasswordStrengthLabels);
        } else {
            obj.labels = window.ihcPasswordStrengthLabels;
        }

        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);
        });
        // show - hide password - register/change password
        if ( jQuery( '.ihc-hide-pw' ).length > 0 ){
          jQuery('.ihc-hide-pw').each(function(index, button) {
            jQuery(button).on( 'click', function (e) {
              var pass = jQuery(button).prev();
              if ( 'password' === pass.attr( 'type' ) ) {
                pass.attr( 'type', 'text' );
                jQuery( this ).children().removeClass( 'dashicons-visibility' ).addClass('dashicons-hidden');
              } else {
                pass.attr( 'type', 'password' );
                jQuery( this ).children().removeClass( 'dashicons-hidden' ).addClass('dashicons-visibility');
              }
            });
          });
        }
  },

  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;
      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('.ihc-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 === true; }).length;

      _force += 2 * p.length + ((p.length >= 10) ? 1 : 0);
      _force += _passedMatches * 10;

      // penality (short password)
      _force = (p.length <= 6) ? Math.min(_force, 10) : _force;

      // penality (poor variety of characters)
      _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] };
  }

}

window.addEventListener( 'load', function(){
    IhcPasswordStrength.init({});
});