// Generated by CoffeeScript 2.7.0
(function() {
var isAlphaNumeric;
isAlphaNumeric = function(chr) {
var code;
code = chr.charCodeAt(0);
if (code > 47 && code < 58 || code > 64 && code < 91 || code > 96 && code < 123) {
return true;
}
return false;
};
$(document).on('checkpassword', function(event, context) {
var digit, evType, hasforbidden, i, len, lower, nonwhitespechar, numspechar, password, report, setResult, upper;
password = context.password;
evType = context.evType;
setResult = context.setResult;
report = function(result, id) {
if (result) {
return setResult(id, "good");
} else {
return setResult(id, "bad");
}
};
if (window.datas.ppolicy.minsize > 0) {
report(password.length >= window.datas.ppolicy.minsize, 'ppolicy-minsize-feedback');
}
if (window.datas.ppolicy.maxsize > 0) {
report(password.length <= window.datas.ppolicy.maxsize, 'ppolicy-maxsize-feedback');
}
if (window.datas.ppolicy.minupper > 0) {
upper = password.match(/[A-Z]/g);
report(upper && upper.length >= window.datas.ppolicy.minupper, 'ppolicy-minupper-feedback');
}
if (window.datas.ppolicy.minlower > 0) {
lower = password.match(/[a-z]/g);
report(lower && lower.length >= window.datas.ppolicy.minlower, 'ppolicy-minlower-feedback');
}
if (window.datas.ppolicy.mindigit > 0) {
digit = password.match(/[0-9]/g);
report(digit && digit.length >= window.datas.ppolicy.mindigit, 'ppolicy-mindigit-feedback');
}
if (window.datas.ppolicy.allowedspechar) {
nonwhitespechar = window.datas.ppolicy.allowedspechar.replace(/\s/g, '');
nonwhitespechar = nonwhitespechar.replace(/<space>/g, ' ');
hasforbidden = false;
i = 0;
len = password.length;
while (i < len) {
if (!isAlphaNumeric(password.charAt(i))) {
if (nonwhitespechar.indexOf(password.charAt(i)) < 0) {
hasforbidden = true;
}
}
i++;
}
report(hasforbidden === false, 'ppolicy-allowedspechar-feedback');
}
if (window.datas.ppolicy.minspechar > 0 && window.datas.ppolicy.allowedspechar) {
numspechar = 0;
nonwhitespechar = window.datas.ppolicy.allowedspechar.replace(/\s/g, '');
nonwhitespechar = nonwhitespechar.replace(/<space>/g, ' ');
i = 0;
while (i < password.length) {
if (nonwhitespechar.indexOf(password.charAt(i)) >= 0) {
numspechar++;
}
i++;
}
report(numspechar >= window.datas.ppolicy.minspechar, 'ppolicy-minspechar-feedback');
}
if (window.datas.ppolicy.minspechar > 0 && !window.datas.ppolicy.allowedspechar) {
numspechar = 0;
i = 0;
while (i < password.length) {
if (!isAlphaNumeric(password.charAt(i))) {
numspechar++;
}
i++;
}
return report(numspechar >= window.datas.ppolicy.minspechar, 'ppolicy-minspechar-feedback');
}
});
}).call(this);