/**
* VFM Registration js
*/
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout(timer);
timer = setTimeout(callback, ms);
};
})();
function checkUserAvailable(thisinput){
var gliph;
var username = thisinput.val();
var alias = username.replace(/\s+/g, '');
thisinput.val(alias);
thisinput.removeClass('is-invalid');
delay(function(){
if (alias.length >= 3) {
$.ajax({
method: "POST",
url: "vfm-admin/ajax/usr-check.php",
data: { user_name: alias }
})
.done(function( msg ) {
thisinput.closest('.has-feedback').addClass('has-'+msg);
if (msg == 'success') {
thisinput.removeClass('is-invalid');
} else {
thisinput.addClass('is-invalid');
}
});
} else {
thisinput.addClass('is-invalid');
}
}, 1000 );
}
// PASSWORD STRENGHT
function passwordStrength(password){
var pass = password.val();
var minlength = password.data('length');
var stength = 'Weak';
var pclass = 'danger w1';
var shortpass = true;
if (pass.length < minlength) {
stength = 'Weak';
pclass = 'danger w25';
} else {
shortpass = false;
// alpha and number OR special char OR Uppercase
var good = /^(?=\S*?[a-z])((?=\S*?[0-9])|(?=\S*?[^\w\*])|(?=\S*?[A-Z]))/;
// Must contain at least one upper case letter, one lower case letter and one number OR one special char.
var better = /^(?=\S*?[A-Z])(?=\S*?[a-z])((?=\S*?[0-9])|(?=\S*?[^\w\*]))/;
// Must contain at least one upper case letter, one lower case letter and one number and one special char.
var best = /^(?=\S*?[A-Z])(?=\S*?[a-z])(?=\S*?[0-9])(?=\S*?[^\w\*])/;
if (best.test(pass) == true) {
stength = 'Very Strong';
pclass = 'success w100';
} else if (better.test(pass) == true) {
stength = 'Strong';
pclass = 'success w75';
} else if (good.test(pass) == true) {
stength = 'Almost Strong';
pclass = 'warning w50';
} else {
stength = 'Weak';
pclass = 'danger w25';
}
}
var popover = bootstrap.Popover.getOrCreateInstance(password[0]); // Returns a Bootstrap popover instance
$(popover.tip).removeClass('danger success info warning primary w1 w5 w10 w25 w30 w50 w70 w75 w100').addClass(pclass);
return shortpass;
}
$(document).ready(function(){
$('#user_name').on('input', function(){
checkUserAvailable($(this));
});
// Call password strength
$('#user_pass').on('keyup', function() {
var password = $(this);
var response = passwordStrength(password);
});
var popover = new bootstrap.Popover(document.querySelector('input[data-bs-toggle="popover"]'), {
container: 'body',
placement: 'top',
trigger: 'focus'
});
});
$(document).on('keyup keypress', '#regform', function(e){
var keyCode = e.keyCode || e.which;
if (keyCode === 13) {
e.preventDefault();
return false;
}
});
$(document).on('submit', '#regform', function (event) {
$regform = $(this);
$regform.data('submitted', false);
event.preventDefault();
$('#regresponse').html('');
var pwd1 = $('#user_pass').val();
var pwd2 = $('#user_pass_check').val();
var fillAll = true;
$('#regform input').each(function() {
if(!$(this).val()){
fillAll = false;
}
});
if (fillAll == false) {
var transfill = $('#trans_fill_all').val();
$('#regresponse').html('<div class="alert alert-warning" role="alert">'+transfill+'</div>');
return false;
}
if ($('#agree').length && !$('#agree').prop('checked')){
var transaccept = $('#trans_accept_terms').val();
$('#regresponse').html('<div class="alert alert-warning" role="alert">'+transaccept+'</div>');
return false;
}
if (pwd1 !== pwd2) {
var transerror = $('#trans_pwd_match').val();
$('#user_pass_check').focus();
$('#regresponse').html('<div class="alert alert-warning" role="alert">'+transerror+'</div>');
return false;
}
if (pwd1.length < $('#user_pass').data('length')){
$('#user_pass').focus();
return false;
}
$('.mailpreload').fadeIn('fast', function(){
if ($regform.data('submitted') == false) {
$regform.data('submitted', true);
var now = $.now();
var serial = $regform.serialize();
$.ajax({
cache: false,
method: "POST",
url: "vfm-admin/ajax/usr-reg.php?t=" + now,
data: serial
})
.done(function( msg ) {
$('#regresponse').html(msg);
$('#captcha').attr('src', 'vfm-admin/captcha/img.php?' + now);
if ($('#grecaptcha').length) {
grecaptcha.reset();
}
$('.mailpreload').fadeOut('slow', function(){
$regform.data('submitted', false);
});
$('#user_pass').val('');
$('#user_pass_check').val('');
}).fail(function(jqXHR, textStatus, errorThrown) {
$('#regresponse').html('<div class="alert alert-danger" role="alert">Error connecting user-reg.php : ' + errorThrown + '</div>');
$('#captcha').attr('src', 'vfm-admin/captcha/img.php?' + now);
if ($('#grecaptcha').length) {
grecaptcha.reset();
}
$('.mailpreload').fadeOut('slow', function(){
$regform.data('submitted', false);
});
});
}
});
});