Created
December 7, 2016 19:04
-
-
Save MightyPork/c13e86e12af49a685ff5ab1802eee1e7 to your computer and use it in GitHub Desktop.
SHITTY INTERNET BANKING PASSWORD STRENGTH CHECKER
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| $(document) | |
| .ready( | |
| function() { | |
| passwordStrenghtStart(); | |
| }); | |
| var counterInterval = 1000; | |
| var counterObjIdent; | |
| var lastFocusedId; | |
| var pwdForAjax; | |
| var wasVerified = false; | |
| var showPasswordErrors; | |
| var checkPwdValidity; | |
| var denyIcon = '<img src="images/icons/deny_icon.gif" border="0" alt="" />'; | |
| var allowIcon = '<img class="allowIcon" src="images/icons/allow_icon.gif" border="0" alt="" />'; | |
| var ajaxLoaderIcon = '<img src="images/icons/ajax-loader.gif" border="0" alt="" width="17" />'; | |
| function countToStart(interval, password) { | |
| if (!wasVerified) { | |
| counterObjIdent = setTimeout('checkPassword("'+escape(password)+'","'+lastFocusedId+'")', interval); | |
| wasVerified = true; | |
| } | |
| } | |
| function clearErrorTexts(objId) { | |
| $('#'+objId).parents('table.bundleFrm').find('span.passwordErrors').html(allowIcon); | |
| checkPwdValidity($('#'+objId)); | |
| } | |
| function passwordStrenghtStart() { | |
| var isIBS = true; | |
| var isPIN = false; | |
| var passwordRules = false; | |
| var passwordMatch = false; | |
| jQuery.extend( { | |
| isNotNull : function(obj) { | |
| if (obj != null && obj != undefined) { | |
| return true; | |
| } | |
| return false | |
| } | |
| }); | |
| function testIfMatchOld(obj, pattern) { | |
| var regex = new RegExp(pattern, 'g'); | |
| var mathed = regex.test(obj); | |
| if (mathed) { | |
| return true; | |
| } | |
| return false; | |
| } | |
| function testIfMatch(obj, pattern) { | |
| var mathed = false; | |
| var chars = pattern.toString().split(''); | |
| for ( var i = 0; i < chars.length; i++) { | |
| if (obj == chars[i]) { | |
| mathed = true; | |
| } | |
| } | |
| return mathed; | |
| } | |
| function reverseStr(obj) { | |
| var reverted = ''; | |
| if (jQuery.isNotNull(obj)) { | |
| reverted = obj.split('').reverse().join(''); | |
| } | |
| return reverted; | |
| } | |
| function splitStr(obj) { | |
| return obj.toString().split(''); | |
| } | |
| function splitStrByKey(obj, strKey) { | |
| return obj.toString().split(strKey); | |
| } | |
| var tempLetters = "abcdefghijklmnopqrstuvwxyz"; | |
| var tempNumbers = "01234567890"; | |
| var tempSymbols = "áąäčćďéěęëíľłňńóöőôřŕśšťúůüźżžÁĄÄČĆĎÉĚĘËÍĽŁŇŃÓÖŐÔŘŔŠŚŤÜÚŮÝŽŹŻ!#$%&()*+,-./:;<=>?@[]^_{|}~"; | |
| var addsArray = new Array(); | |
| var dedsArray = new Array(); | |
| var resourceTxtArray = new Array(); | |
| var resourceTextElem = $('.pwdRT').html(); | |
| if (resourceTextElem != null && resourceTextElem != '' | |
| && resourceTextElem != 'undefined') { | |
| resourceTxtArray = splitStrByKey(resourceTextElem, '_'); | |
| } | |
| var pinTooShort = $('.pinTooShort').html(); | |
| var resourceTxtMatchArray = new Array(); | |
| var resourceTextMatchElem = $('.pwdRTMatch').html(); | |
| if (resourceTextMatchElem != null && resourceTextMatchElem != '' && resourceTextMatchElem != 'undefined') { | |
| resourceTxtMatchArray = splitStrByKey(resourceTextMatchElem, '_'); | |
| } | |
| var resourcePasswordErrorTextsArray = new Array(); | |
| var resourcePasswordErrorTextsElem = $('.passwordErrorTexts').html(); | |
| if (resourcePasswordErrorTextsElem != null && resourcePasswordErrorTextsElem != '' && resourcePasswordErrorTextsElem != 'undefined') { | |
| resourcePasswordErrorTextsArray = splitStrByKey(resourcePasswordErrorTextsElem, '_'); | |
| } | |
| var resourceVerifyTextsArray = new Array(); | |
| var resourceVerifyTextsElem = $('.verifyTexts').html(); | |
| if (resourceVerifyTextsElem != null && resourceVerifyTextsElem != '' && resourceVerifyTextsElem != 'undefined') { | |
| resourceVerifyTextsArray = splitStrByKey(resourceVerifyTextsElem, '_'); | |
| } | |
| var firstTimeLogin = false; | |
| var pwdStrenghtLabel = $('.pwdStrenghtLabel').html(); | |
| if (jQuery.isNotNull(pwdStrenghtLabel) && pwdStrenghtLabel == 'true') { | |
| firstTimeLogin = true; | |
| } | |
| $('.pwd-strength').click(function() { | |
| if (wasVerified) { | |
| return false; | |
| } else { | |
| $(this).keyup(); | |
| } | |
| }); | |
| $('.pwd-strength').focus(function() { | |
| if (wasVerified) { | |
| return false; | |
| } else { | |
| $(this).keyup(); | |
| } | |
| }); | |
| $('.pwd-strength').blur(function() { | |
| if (wasVerified) { | |
| return false; | |
| } else { | |
| $(this).keyup(); | |
| } | |
| // On lost focus (blur) hide security tip | |
| $(this).parents('table.bundleFrm').find('span.security-tip').hide(); | |
| }); | |
| $('.pwd-match').click(function() { | |
| if (wasVerified) { | |
| return false; | |
| } else { | |
| $(this).keyup(); | |
| } | |
| }); | |
| $('.pwd-match').focus(function() { | |
| if (wasVerified) { | |
| return false; | |
| } else { | |
| $(this).keyup(); | |
| } | |
| }); | |
| $('.pwd-match').blur(function() { | |
| if (wasVerified) { | |
| return false; | |
| } else { | |
| $(this).keyup(); | |
| } | |
| // On lost focus (blur) hide security tip | |
| $(this).parents('table.bundleFrm').find('span.security-tip').hide(); | |
| }); | |
| // worked with arrays generated by PasswordStrengthScriptTag | |
| // PASSWORD RULES | |
| // check for rules (at least 8 chars, 1 uppercase letter, 1 number) | |
| var pwdRquirementsOK = false; | |
| function initDedsArray() { | |
| dedsArray[0] = new Array(1, 'LettersOnly', 'n', 0); | |
| dedsArray[1] = new Array(2, 'NumbersOnly', 'n', 0); | |
| dedsArray[2] = new Array(3, 'RepeatCharacters', 'n', 0); | |
| dedsArray[3] = new Array(4, 'ConsecutiveUppercaseLetters', '(n*2)', 0); | |
| dedsArray[4] = new Array(5, 'ConsecutiveLowercaseLetters', '(n*2)', 0); | |
| dedsArray[5] = new Array(6, 'ConsecutiveNumbers', '(n*2)', 0); | |
| dedsArray[6] = new Array(7, 'SequentialLetters', '(n*3)', 0); | |
| dedsArray[7] = new Array(8, 'SequentialNumbers', '(n*3)', 0); | |
| dedsArray[8] = new Array(9, 'SequentialSymbols', '(n*3)', 0); | |
| } | |
| function initAddsArray() { | |
| initDedsArray(); | |
| if (isIBS) { | |
| initAddsArrayIBS(); | |
| addsArray = addsArrayIBS; | |
| } else { | |
| initAddsArrayIVR(); | |
| addsArray = addsArrayIVR; | |
| } | |
| } | |
| function calculateAdds(obj) { | |
| var pwd = splitStr(obj); | |
| var pwdLength = pwd.length; | |
| var result = 0; | |
| var addsLength = addsArray.length; | |
| // check for rules (at least 8 chars, 1 uppercase letter, 1 number) | |
| if (isIBS && addsArray[6][5]) { | |
| if ((addsArray[0][4] >= passwdMINLengthIBS && addsArray[0][4] <= passwdMAXLengthIBS) && addsArray[3][4] > 0 && addsArray[1][4] > 0) { | |
| pwdRquirementsOK = true; | |
| if (addsArray[0][4] >= passwdMINLengthIBS && addsArray[0][4] <= passwdMAXLengthIBS) { | |
| addsArray[6][4]++; | |
| } | |
| if (addsArray[3][4] > 0) { | |
| addsArray[6][4]++; | |
| } | |
| if (addsArray[1][4] > 0) { | |
| addsArray[6][4]++; | |
| } | |
| } else { | |
| pwdRquirementsOK = false; | |
| } | |
| } | |
| for ( var i = 0; i < addsLength; i++) { | |
| var n = addsArray[i][4]; | |
| if (jQuery.isNotNull(n)) { | |
| if ((addsArray[i][1] == 'UppercaseLetters' || addsArray[i][1] == 'LowercaseLetters') | |
| && n == 0 && addsArray[i][5]) { | |
| result += 0; | |
| } else if (addsArray[i][1] == 'Numbers' | |
| && addsArray[i][5]) { | |
| if (n > 0 && n < pwdLength) { | |
| result += eval(addsArray[i][3]); | |
| } else { | |
| result += 0; | |
| } | |
| } else { | |
| if (addsArray[i][5]) { | |
| result += eval(addsArray[i][3]); | |
| } | |
| } | |
| } | |
| } | |
| var dedsLength = dedsArray.length; | |
| for ( var k = 0; k < dedsLength; k++) { | |
| var n = dedsArray[k][3]; | |
| var id = dedsArray[k][0]; | |
| if (jQuery.isNotNull(n)) { | |
| result -= eval(dedsArray[k][3]); | |
| } | |
| } | |
| return result; | |
| } | |
| $('.pwd-strength').live('keypress', function (e) { | |
| if ( e.keyCode == 9 ){ | |
| if($('.pwd-strength').val() == '') { | |
| $(this).parents('table.bundleFrm').find('.isPWDOK').html(''); | |
| $(this).parents('table.bundleFrm').find('span.pwd-match-Txt').html(''); | |
| $(this).parents('table.bundleFrm').find('.isPWDOK').html('true'); | |
| passwordRules = true; | |
| } | |
| } | |
| }); | |
| $('.pwd-strength') | |
| .keyup( | |
| function() { | |
| clearTimeout(counterObjIdent); | |
| wasVerified = false; | |
| initAddsArray(); | |
| var tObj = $(this).parents( | |
| 'table.bundleFrm').find( | |
| 'input.pwd-strength'); | |
| var tId = $(tObj).attr('id'); | |
| lastFocusedId = tId; | |
| if (tId.indexOf('CC') != -1 | |
| || tId.indexOf('IVR') != -1) { | |
| // isPIN | |
| if (tId.indexOf('CC') != -1) { | |
| isPIN = true; | |
| } | |
| isIBS = false; | |
| } else { | |
| isIBS = true; | |
| } | |
| var tempLettersLength = splitStr(tempLetters).length - 3; | |
| var tempNumbersLength = splitStr(tempNumbers).length - 3; | |
| var tempSymbolsLength = splitStr(tempSymbols).length - 3; | |
| var tPwd = jQuery.trim($(this).val()); | |
| // for ajax (on blur action) | |
| pwdForAjax = tPwd; | |
| var pwd = splitStr(tPwd); | |
| var pwdLength = pwd.length; | |
| var addsResult = 0; | |
| var letter = ''; | |
| var tempRepeatChar = 0; | |
| for ( var i = 0; i < pwdLength; i++) { | |
| letter = $(pwd).get(i); | |
| for ( var j = 0; j < addsArray.length; j++) { | |
| var name = addsArray[j][1]; | |
| var pattern = addsArray[j][2]; | |
| if (name == 'NumberOfCharacters' | |
| && addsArray[j][5]) { | |
| addsArray[j][4]++; | |
| } else if ((name == 'UppercaseLetters' | |
| || name == 'LowercaseLetters' | |
| || name == 'Numbers' || name == 'Symbols') | |
| && addsArray[j][5]) { | |
| var isValid = testIfMatch( | |
| letter, pattern); | |
| if (isValid) { | |
| addsArray[j][4]++; | |
| var pism = pwd[i + 1]; | |
| if (jQuery | |
| .isNotNull(pism)) { | |
| var isNextSameChar = testIfMatch( | |
| pwd[i + 1], | |
| pattern); | |
| if (isNextSameChar) { | |
| if (name == 'UppercaseLetters') { | |
| dedsArray[3][3]++; | |
| } else if (name == 'LowercaseLetters') { | |
| dedsArray[4][3]++; | |
| } else if (name == 'Numbers') { | |
| dedsArray[5][3]++; | |
| } else if (name == 'Symbols') { | |
| } | |
| } | |
| } | |
| if ((name == 'Numbers' || name == 'Symbols') | |
| && addsArray[j][5]) { | |
| var nBefore = jQuery | |
| .isNotNull(pwd[i - 1]); | |
| var nAfter = jQuery | |
| .isNotNull(pwd[i + 1]); | |
| if (nBefore | |
| && nAfter) { | |
| addsArray[5][4]++; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| var repChar = false; | |
| for ( var k = 0; k < pwdLength; k++) { | |
| if (i != k | |
| && ($(pwd).get(i) == $( | |
| pwd).get(k))) { | |
| dedsArray[2][3] += Math | |
| .abs(pwdLength | |
| / (k - i)); | |
| repChar = true; | |
| } | |
| } | |
| if (repChar) { | |
| tempRepeatChar++; | |
| var temp = pwdLength | |
| - tempRepeatChar; | |
| var ded = (temp) ? Math | |
| .ceil(dedsArray[2][3] | |
| / temp) : Math | |
| .ceil(dedsArray[2][3]); | |
| dedsArray[2][3] = ded; | |
| } | |
| } | |
| var numbersN = 0; | |
| var lettersU = 0; | |
| var lettersL = 0; | |
| for ( var c = 0; c < addsArray.length; c++) { | |
| if (addsArray[c][1] == 'UppercaseLetters') { | |
| lettersU = c; | |
| } | |
| if (addsArray[c][1] == 'LowercaseLetters') { | |
| lettersL = c; | |
| } | |
| if (addsArray[c][1] == 'Numbers') { | |
| numbersN = c; | |
| } | |
| } | |
| var numbs = addsArray[numbersN][4]; | |
| var letts = addsArray[lettersU][4] | |
| + addsArray[lettersL][4]; | |
| if (numbs == pwdLength) { | |
| dedsArray[1][3] = pwdLength; | |
| } else if (letts == pwdLength) { | |
| dedsArray[0][3] = pwdLength; | |
| } | |
| for ( var t = 0; t < tempLettersLength; t++) { | |
| var fwd = tempLetters.substring(t, | |
| parseInt(t + 3)); | |
| var rev = reverseStr(fwd); | |
| if ($(this).val().toString() | |
| .toLowerCase().indexOf(fwd) != -1 | |
| || $(this).val().toString() | |
| .toLowerCase() | |
| .indexOf(rev) != -1) { | |
| dedsArray[6][3]++; | |
| } | |
| } | |
| for ( var t = 0; t < tempNumbersLength; t++) { | |
| var fwd = tempNumbers.substring(t, | |
| parseInt(t + 3)); | |
| var rev = reverseStr(fwd); | |
| if ($(this).val().toString() | |
| .toLowerCase().indexOf(fwd) != -1 | |
| || $(this).val().toString() | |
| .toLowerCase() | |
| .indexOf(rev) != -1) { | |
| dedsArray[7][3]++; | |
| } | |
| } | |
| for ( var t = 0; t < tempSymbolsLength; t++) { | |
| var fwd = tempSymbols.substring(t, | |
| parseInt(t + 3)); | |
| var rev = reverseStr(fwd); | |
| if ($(this).val().toString() | |
| .toLowerCase().indexOf(fwd) != -1 | |
| || $(this).val().toString() | |
| .toLowerCase() | |
| .indexOf(rev) != -1) { | |
| dedsArray[8][3]++; | |
| } | |
| } | |
| addsResult = calculateAdds(tPwd); | |
| if (addsResult < 0) { | |
| addsResult = 0; | |
| } | |
| var strengthTxtObj = $(this).parents( | |
| 'table.bundleFrm').find( | |
| 'span.pwd-strength-Txt'); | |
| var txtA = resourceTxtArray[0]; | |
| var meterText = '<span class="pwdStrenghtLabel"></span>'; | |
| var meterIconDefault = '<img src="images/icons/pwd_strength_1.gif" border="0" alt="" />'; | |
| if (firstTimeLogin) { | |
| } | |
| var strengthTxtObjIVR = $(this).parents('table.bundleFrm').find('span.pwdMeterIVR'); | |
| if (!isIBS && addsResult == 0 && strengthTxtObjIVR) { | |
| $(strengthTxtObjIVR).css('display','none'); | |
| } else { | |
| $(strengthTxtObjIVR).css('display','block'); | |
| } | |
| // check first forbidden sequences (only for CMS IVR) | |
| var forbiddenSeqUsed = false; | |
| var isCMSAPP = false; | |
| if (forbiddenSequenceArray != null && forbiddenSequenceArray.length > 0) { | |
| isCMSAPP = true; | |
| //alert(forbiddenSequenceArray.length); | |
| for (var f=0; f<forbiddenSequenceArray.length; f++) { | |
| if (tPwd.indexOf(forbiddenSequenceArray[f]) != -1) { | |
| forbiddenSeqUsed = true; | |
| } | |
| } | |
| } | |
| // turn off AJAX validation | |
| var AJAXBlocked = false; | |
| var blockAjax = $('#blockAjaxVerification'); | |
| if ($(blockAjax) != null && $(blockAjax).html() == 'true') { | |
| AJAXBlocked = true; | |
| } | |
| var objPasswordErrors = $(this).parents('table.bundleFrm').find('span.passwordErrors'); | |
| if (addsResult == 0) { | |
| $(strengthTxtObj).html(isIBS ? '<img src="images/icons/pwd_strength_1.gif" border="0" alt="" /> ' + resourceTxtArray[0] : ''); | |
| if (isIBS && pwdLength < passwdMINLengthIBS) { | |
| showPasswordErrors(objPasswordErrors, 0, 2); | |
| } else if (!isIBS && pwdLength < passwdLengthIVR) { | |
| showPasswordErrors(objPasswordErrors,(!isPIN ? 0 : 1), 2); | |
| } else { | |
| showPasswordErrors(objPasswordErrors,(!isIBS && isPIN ? 1 : 0), 3); | |
| } | |
| } else if (addsResult >= 1 && addsResult <= 45) { | |
| $(strengthTxtObj).html(isIBS ? meterText + '<img src="images/icons/pwd_strength_1.gif" border="0" alt="" /> ' + resourceTxtArray[0] : ''); | |
| if (isIBS && pwdLength < passwdMINLengthIBS) { | |
| showPasswordErrors(objPasswordErrors, 0, 2); | |
| } else if (!isIBS && pwdLength < passwdLengthIVR) { | |
| showPasswordErrors(objPasswordErrors,(!isPIN ? 0 : 1), 2); | |
| } else { | |
| showPasswordErrors(objPasswordErrors,(!isIBS && isPIN ? 1 : 0), 3); | |
| } | |
| } else if (addsResult > 45 && addsResult <= 75) { | |
| // check if password has proper length | |
| if (isIBS && (pwdLength >= passwdMINLengthIBS && pwdLength <= passwdMAXLengthIBS) && pwdRquirementsOK) { | |
| $(strengthTxtObj).html(isIBS ? meterText + '<img src="images/icons/pwd_strength_2.gif" border="0" alt="" /> ' + resourceTxtArray[1] : ''); | |
| // not for CMS IVR | |
| if (!isCMSAPP) { | |
| if (!AJAXBlocked) { | |
| // check password validity | |
| countToStart(counterInterval, tPwd); | |
| showPasswordErrors(objPasswordErrors, 0, 99); | |
| } else { | |
| clearErrorTexts(''+tId+''); | |
| } | |
| } | |
| } else if (!isIBS && (pwdLength == passwdLengthIVR) && !forbiddenSeqUsed) { | |
| $(strengthTxtObj).html(isIBS ? meterText + '<img src="images/icons/pwd_strength_2.gif" border="0" alt="" /> ' + resourceTxtArray[1] : ''); | |
| // not for CMS IVR | |
| if (!isCMSAPP) { | |
| if (!AJAXBlocked) { | |
| // check password validity | |
| countToStart(counterInterval, tPwd); | |
| showPasswordErrors(objPasswordErrors,(!isIBS && isPIN ? 1 : 0), 99); | |
| } else { | |
| clearErrorTexts(''+tId+''); | |
| } | |
| } else { | |
| clearErrorTexts(''+tId+''); | |
| } | |
| } else if (isIBS && (pwdLength >= passwdMINLengthIBS && pwdLength <= passwdMAXLengthIBS) && !pwdRquirementsOK) { | |
| showPasswordErrors(objPasswordErrors, 0, 3); | |
| $(strengthTxtObj).html(isIBS ? meterText + '<img src="images/icons/pwd_strength_1.gif" border="0" alt="" /> ' + resourceTxtArray[0] : ''); | |
| } else { | |
| showPasswordErrors(objPasswordErrors,(!isIBS && isPIN ? 1 : 0), 2); | |
| $(strengthTxtObj).html(isIBS ? meterText + '<img src="images/icons/pwd_strength_1.gif" border="0" alt="" /> ' + resourceTxtArray[0] : ''); | |
| } | |
| } else if (addsResult > 75) { | |
| // check if password has proper length | |
| if (isIBS && (pwdLength >= passwdMINLengthIBS && pwdLength <= passwdMAXLengthIBS) && pwdRquirementsOK) { | |
| $(strengthTxtObj).html(isIBS ? meterText + '<img src="images/icons/pwd_strength_3.gif" border="0" alt="" /> ' + resourceTxtArray[2] : ''); | |
| // not for CMS IVR | |
| if (!isCMSAPP) { | |
| if (!AJAXBlocked) { | |
| // check password validity | |
| countToStart(counterInterval, tPwd); | |
| showPasswordErrors(objPasswordErrors, 0, 99); | |
| } else { | |
| clearErrorTexts(''+tId+''); | |
| } | |
| } | |
| } else if (!isIBS && (pwdLength == passwdLengthIVR) && !forbiddenSeqUsed) { | |
| $(strengthTxtObj).html(isIBS ? meterText + '<img src="images/icons/pwd_strength_3.gif" border="0" alt="" /> ' + resourceTxtArray[2] : ''); | |
| // not for CMS IVR | |
| if (!isCMSAPP) { | |
| if (!AJAXBlocked) { | |
| // check password validity | |
| countToStart(counterInterval, tPwd); | |
| showPasswordErrors(objPasswordErrors,(!isIBS && isPIN ? 1 : 0), 99); | |
| } else { | |
| clearErrorTexts(''+tId+''); | |
| } | |
| } else { | |
| clearErrorTexts(''+tId+''); | |
| } | |
| } else if (isIBS && (pwdLength >= passwdMINLengthIBS && pwdLength <= passwdMAXLengthIBS) && !pwdRquirementsOK) { | |
| showPasswordErrors(objPasswordErrors, 0, 3); | |
| $(strengthTxtObj).html(isIBS ? meterText + '<img src="images/icons/pwd_strength_1.gif" border="0" alt="" /> ' + resourceTxtArray[0] : ''); | |
| } else { | |
| showPasswordErrors(objPasswordErrors,(!isIBS && isPIN ? 1 : 0), 2); | |
| $(strengthTxtObj).html(isIBS ? meterText + '<img src="images/icons/pwd_strength_1.gif" border="0" alt="" /> ' + resourceTxtArray[0] : ''); | |
| } | |
| } | |
| var matchTo = $(this).parents( | |
| 'table.bundleFrm').find( | |
| 'input.pwd-match'); | |
| testIfNewMatch(this, matchTo); | |
| if (addsResult > 45) { | |
| // check if password has proper length and valid to requirements | |
| if (isIBS && (pwdLength >= passwdMINLengthIBS && pwdLength <= passwdMAXLengthIBS) && pwdRquirementsOK) { | |
| passwordRules = true; | |
| } else if (!isIBS && (pwdLength == passwdLengthIVR)) { | |
| passwordRules = true; | |
| } else { | |
| passwordRules = false; | |
| } | |
| } else { | |
| passwordRules = false; | |
| } | |
| checkPwdValidity($(this)); | |
| // return to first state | |
| if ($(this).val() == '' && $(matchTo).val() != '') { | |
| $(this).parents('table.bundleFrm').find('span.pwd-strength-Txt').html(isIBS ? meterText + meterIconDefault + resourceTxtArray[0] : ''); | |
| $(this).parents('table.bundleFrm').find('.isPWDOK').html('true'); | |
| $(this).parents('table.bundleFrm').find('.isPWDOK').html(''); | |
| $(this).parents('table.bundleFrm').find('.passwordErrors').hide(); | |
| $(strengthTxtObjIVR).css('display','none'); | |
| } else if ($(this).val() == '' && $(matchTo).val() == '') { | |
| $(this).parents('table.bundleFrm').find('span.pwd-strength-Txt').html(isIBS ? meterText + meterIconDefault + resourceTxtArray[0] : ''); | |
| $(this).parents('table.bundleFrm').find('span.pwd-match-Txt').html('<span class="psswdsAre"> </span>'); | |
| $(this).parents('table.bundleFrm').find('.isPWDOK').html('true'); | |
| $(this).parents('table.bundleFrm').find('.isPWDOK').html(''); | |
| $(this).parents('table.bundleFrm').find('.passwordErrors').hide(); | |
| $(strengthTxtObjIVR).css('display','none'); | |
| $(this).parents('table.bundleFrm').find('span.security-tip').show(); | |
| } | |
| if (jQuery.trim($(this).val()) != '' || jQuery.trim($(matchTo).val()) != '') { | |
| $(this).parents('table.bundleFrm').find('span.security-tip').hide(); | |
| } | |
| }); | |
| // find proper error text for password or PIN (0,1) by the errorTypeNumber (2,3,4) and show 99 for verify icons | |
| showPasswordErrors = function(obj, pIdent, errorTypeNumber) { | |
| var verifyText = '' + (errorTypeNumber == 99 ? ajaxLoaderIcon : denyIcon) + ''; | |
| if (errorTypeNumber == 99) { | |
| verifyText += ' <span class="verify">' + resourceVerifyTextsArray[0] + ' ' + (pIdent==0 ? resourceVerifyTextsArray[1] : resourceVerifyTextsArray[2]) + '</span>'; | |
| } else if (pIdent == 1 && errorTypeNumber == 2) { | |
| verifyText += ' <span class="negative">' + resourcePasswordErrorTextsArray[pIdent] + ' ' + pinTooShort + '</span>'; | |
| } else { | |
| verifyText += ' <span class="negative">' + resourcePasswordErrorTextsArray[pIdent] + ' ' + resourcePasswordErrorTextsArray[errorTypeNumber] + '</span>'; | |
| } | |
| var securityTipObj = $(obj).parents('table.bundleFrm').find('span.security-tip'); | |
| var firstInputObj = $(obj).parents('table.bundleFrm').find('input.pwd-strength'); | |
| if ($(securityTipObj).css('display') == 'table' && $(firstInputObj).val().length > 0) { | |
| $(securityTipObj).hide(); | |
| $(obj).html(verifyText); | |
| $(obj).show(); | |
| } else { | |
| $(obj).html(verifyText); | |
| $(obj).show(); | |
| } | |
| }; | |
| function testIfNewMatch(obj, matchObj) { | |
| var nObj = $(obj); | |
| var strengthTxtMatchObj = $(obj).parents( | |
| 'table.bundleFrm').find('span.pwd-match-Txt'); | |
| var pwdM = $(matchObj); | |
| if ($(nObj).val() == $(pwdM).val()) { | |
| var atId = $(nObj).attr('id'); | |
| if (atId.indexOf('CC') != -1) { | |
| $(strengthTxtMatchObj).html( | |
| '<span class="psswdsAre">'+ allowIcon + '</span>'); | |
| } else { | |
| $(strengthTxtMatchObj).html( | |
| '<span class="psswdsAre">'+ allowIcon + '</span>'); | |
| } | |
| passwordMatch = true; | |
| if ($(nObj).val() == '' && $(pwdM).val() == '') { | |
| $(strengthTxtMatchObj).html('<span class="psswdsAre"> </span>'); | |
| } | |
| } else { | |
| var atId = $(nObj).attr('id'); | |
| if (atId.indexOf('CC') != -1) { | |
| $(strengthTxtMatchObj).html( | |
| '<span class="psswdsAre">'+ denyIcon + ' <span class="negative">' + resourceTxtMatchArray[3] + ' ' | |
| + resourceTxtMatchArray[5] | |
| + '</span></span>'); | |
| } else { | |
| $(strengthTxtMatchObj).html( | |
| '<span class="psswdsAre">'+ denyIcon + ' <span class="negative">' + resourceTxtMatchArray[0] + ' ' | |
| + resourceTxtMatchArray[2] | |
| + '</span></span>'); | |
| } | |
| passwordMatch = false; | |
| } | |
| } | |
| $('.pwd-match') | |
| .keyup( | |
| function() { | |
| var nObj = $(this).parents( | |
| 'table.bundleFrm').find( | |
| 'input.pwd-strength'); | |
| var mObj = $(this).parents('table.bundleFrm').find('input.pwd-match'); | |
| var strengthTxtMatchObj = $(this) | |
| .parents('table.bundleFrm') | |
| .find('span.pwd-match-Txt'); | |
| var newPwdObj = jQuery.isNotNull(nObj); | |
| if (newPwdObj) { | |
| if (($(nObj).val() == $(this).val())) { | |
| var atId = $(nObj).attr('id'); | |
| if (atId.indexOf('CC') != -1) { | |
| $(strengthTxtMatchObj).html( | |
| '<span class="psswdsAre">'+ allowIcon + '</span>'); | |
| } else { | |
| $(strengthTxtMatchObj).html( | |
| '<span class="psswdsAre">'+ allowIcon + '</span>'); | |
| } | |
| passwordMatch = true; | |
| if ($(this).val() == '' && $(nObj).val() == '') { | |
| $(strengthTxtMatchObj).html('<span class="psswdsAre"> </span>'); | |
| $(nObj).val(''); | |
| $(nObj).parents('table.bundleFrm').find('.isPWDOK').html('true'); | |
| passwordRules = true; | |
| } | |
| } else if ($(nObj).val() != $(this) | |
| .val()) { | |
| var atId = $(nObj).attr('id'); | |
| if (atId.indexOf('CC') != -1) { | |
| $(strengthTxtMatchObj).html( | |
| '<span class="psswdsAre">'+ denyIcon + ' <span class="negative">' + resourceTxtMatchArray[3] + ' ' | |
| + resourceTxtMatchArray[5] | |
| + '</span></span>'); | |
| } else { | |
| $(strengthTxtMatchObj).html( | |
| '<span class="psswdsAre">'+ denyIcon + ' <span class="negative">' + resourceTxtMatchArray[0] + ' ' | |
| + resourceTxtMatchArray[2] | |
| + '</span></span>'); | |
| } | |
| passwordMatch = false; | |
| } | |
| if (jQuery.trim($(nObj).val()) == '' && jQuery.trim($(mObj).val()) == '') { | |
| $(nObj).parents('table.bundleFrm').find('span.security-tip').show(); | |
| } else { | |
| $(nObj).parents('table.bundleFrm').find('span.security-tip').hide(); | |
| } | |
| } | |
| checkPwdValidity($(this)); | |
| }); | |
| checkPwdValidity = function(spanObj) { | |
| if (passwordRules && passwordMatch) { | |
| var errorsObj = $(spanObj).parents('table.bundleFrm').find('.passwordErrors'); | |
| if (errorsObj && ($(errorsObj).css('display') == 'none' || $(errorsObj).find('img.allowIcon') != null)) { | |
| $(spanObj).parents('table.bundleFrm').find( | |
| '.isPWDOK').html('true'); | |
| } | |
| } else { | |
| $(spanObj).parents('table.bundleFrm').find( | |
| '.isPWDOK').html('false'); | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
eeh... can I get a TL;DR?