PageSourceSearch

https://cbtc.pl/wp-content/themes/cbtc/js/password.js?ver=1.0.17

js cbtc.pl collected 2026-10-10 01:22:04 UTC 3,360 bytes, 111 lines download raw bytes

1$(document).ready(function(e){
2  var i18n = window.cbtcPasswordI18n || {
3    strength: 'Siła hasła',
4    weak: 'Słabe',
5    good: 'Dobre',
6    strong: 'Silne',
7    fieldRequired: 'Pole jest wymagane',
8    passwordsMustMatch: 'Hasła muszą być takie same',
9    invalidFormat: 'Nieprawidłowy format'
10  };
11
12  const $pw = $('#newPassword');
13  const bars = [$('#bar1'), $('#bar2'), $('#bar3'), $('#bar4')];
14  const $strengthText = $('#strengthText');
15  const $submitBtn = $('#btnNewPassword');
16
17  function resetBars() {
18    bars.forEach($b => $b.removeClass('red yellow green'));
19    $strengthText.removeClass('red-text yellow-text green-text').text(i18n.strength);
20    $submitBtn.prop('disabled', true);
21  }
22
23  function setBars(count) {
24    resetBars();
25    if ($pw.val().length === 0) {
26      $('.requirements li').removeClass('ok wrong no');
27      return;
28    }
29    if (count <= 1) {
30      bars[0].addClass('red');
31      $strengthText.addClass('red-text').text(i18n.weak);
32      $submitBtn.prop('disabled', true);
33    } else if (count === 2) {
34      bars[0].addClass('yellow');
35      bars[1].addClass('yellow');
36      $submitBtn.prop('disabled', true);
37      $strengthText.addClass('yellow-text').text(i18n.weak);
38    } else if (count === 3) {
39      bars[0].addClass('green');
40      bars[1].addClass('green');
41      bars[2].addClass('green');
42      $strengthText.addClass('green-text').text(i18n.good);
43      $submitBtn.prop('disabled', false);
44    } else if (count >= 4) {
45      bars.forEach($b => $b.addClass('green'));
46      $strengthText.addClass('green-text').text(i18n.strong);
47      $submitBtn.prop('disabled', false);
48    }
49  }
50
51  function updateRequirements(flags) {
52    $('#req-length').toggleClass('ok', flags.length).toggleClass('wrong', !flags.length);
53    $('#req-number').toggleClass('ok', flags.number).toggleClass('wrong', !flags.number);
54    $('#req-upper').toggleClass('ok', flags.upper).toggleClass('wrong', !flags.upper);
55  }
56
57  function evaluate(pw) {
58    if (!pw) {
59      resetBars();
60      $('.requirements li').removeClass('ok wrong');
61      return;
62    }
63    const flags = {
64      length: pw.length >= 8,
65      number: /\d/.test(pw),
66      upper: /[A-Z]/.test(pw)
67    };
68    const metCount = Object.values(flags).filter(Boolean).length;
69    updateRequirements(flags);
70    setBars(metCount);
71  }
72
73  $pw.on('input', function() {
74    evaluate(this.value);
75  });
76
77  if ($("#passwordForm").length > 0) {
78    $.validator.addMethod("pattern", function(value, element, param) {
79      if (this.optional(element)) {
80        return true;
81      }
82      return param.test(value);
83    }, i18n.invalidFormat);
84
85    $("#passwordForm").validate({
86      rules: {
87        password_1: {
88          required: true,
89          pattern: /^(?=.*[A-Z])(?=.*\d).{8,}$/
90        },
91        password_2: {
92          required: true,
93          equalTo: "#newPassword"
94        }
95      },
96      messages: {
97        password_1: i18n.fieldRequired,
98        password_2: {
99          required: i18n.fieldRequired,
100          equalTo: i18n.passwordsMustMatch
101        }
102      },
103      errorPlacement: function (error, e) {
104        e.parents('.form-input').append(error);
105      },
106      submitHandler: function(form) {
107        form.submit();
108      }
109    });
110  }
111});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.