123 lines
3.4 KiB
JavaScript
123 lines
3.4 KiB
JavaScript
var reCaptchaLoaded = false;
|
|
|
|
var reCaptchaHandlerNG = function (data) {
|
|
var parent = this;
|
|
parent.data = data;
|
|
parent.data.recaptchaChecked = false;
|
|
parent.errCont = jQuery('#recaptcha-error');
|
|
|
|
parent.init = function () {
|
|
if (reCaptchaLoaded) {
|
|
parent.reCaptchaRender();
|
|
}
|
|
}
|
|
|
|
parent.reCaptchaRender = function () {
|
|
if (typeof (parent.recaptchaID) === "undefined") {
|
|
parent.recaptchaID = grecaptcha.render('asp-recaptcha-container', {
|
|
'sitekey': vars.data.recaptchaSiteKey,
|
|
'badge': 'inline',
|
|
//'size': (vars.data.recaptchaInvisible) ? 'invisible' : null,
|
|
'size': null,
|
|
'callback': function (resp) {
|
|
if (resp !== '' && !parent.data.recaptchaChecked) {
|
|
smokeScreen(true);
|
|
parent.errCont.hide();
|
|
console.log('reCaptcha doing backend check');
|
|
var ajaxData = 'action=asp_recaptcha_check&recaptcha_response=' + resp;
|
|
new ajaxRequest(vars.ajaxURL, ajaxData,
|
|
function (res) {
|
|
var resp = JSON.parse(res.responseText);
|
|
if (resp.error) {
|
|
console.log('fail');
|
|
smokeScreen(false);
|
|
parent.data.recaptchaChecked = false;
|
|
parent.errCont.html(resp.error).hide().fadeIn();
|
|
grecaptcha.reset();
|
|
} else {
|
|
console.log('success');
|
|
parent.errCont.hide();
|
|
parent.data.recaptchaChecked = true;
|
|
// if (vars.data.recaptchaInvisible) {
|
|
// if (vars.data.reConfirmToken) {
|
|
// vars.data.reConfirmToken = false;
|
|
// vars.data.canProceed = true;
|
|
// handlePayment();
|
|
// return;
|
|
// }
|
|
// smokeScreen(false);
|
|
// triggerEvent(form, 'submit');
|
|
// return;
|
|
// }
|
|
smokeScreen(false);
|
|
}
|
|
},
|
|
function (res, errMsg) {
|
|
smokeScreen(false);
|
|
parent.errCont.html(resp.err).hide().fadeIn();
|
|
grecaptcha.reset();
|
|
}
|
|
);
|
|
}
|
|
},
|
|
'expired-callback': function () {
|
|
parent.data.recaptchaChecked = false;
|
|
parent.data.recaptchaKey = '';
|
|
if (!vars.data.recaptchaInvisible) {
|
|
parent.errCont.html(vars.str.strPleaseCheckCheckbox).hide().fadeIn();
|
|
}
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
parent.csBeforeRegen = function () {
|
|
if (vars.data.recaptchaInvisible && !parent.data.recaptchaChecked) {
|
|
smokeScreen(true);
|
|
vars.data.doNotProceed = true;
|
|
vars.data.reConfirmToken = true;
|
|
grecaptcha.execute();
|
|
}
|
|
}
|
|
|
|
parent.confirmToken = function () {
|
|
if (vars.data.recaptchaInvisible && !parent.data.recaptchaChecked) {
|
|
smokeScreen(true);
|
|
vars.data.canProceed = false;
|
|
vars.data.reConfirmToken = true;
|
|
grecaptcha.execute();
|
|
}
|
|
}
|
|
|
|
parent.submitCanProceed = function () {
|
|
if (parent.data.recaptchaChecked === false) {
|
|
vars.data.canProceed = false;
|
|
if (vars.data.isEvent && vars.data.recaptchaInvisible) {
|
|
//vars.data.canProceed = true;
|
|
vars.data.canProceed =false;
|
|
return;
|
|
}
|
|
// if (vars.data.recaptchaInvisible) {
|
|
// smokeScreen(true);
|
|
// grecaptcha.execute();
|
|
// } else {
|
|
// parent.errCont.html(vars.str.strPleaseCheckCheckbox).hide().fadeIn();
|
|
// }
|
|
|
|
parent.errCont.html(vars.str.strPleaseCheckCheckbox).hide().fadeIn();
|
|
}
|
|
}
|
|
}
|
|
|
|
function onloadCallback() {
|
|
console.log('reCaptcha onload');
|
|
vars.data.addons.forEach(function (addon) {
|
|
if (addon.name === 'reCaptcha') {
|
|
if (addon.obj !== 'undefined') {
|
|
addon.obj.reCaptchaRender();
|
|
} else {
|
|
reCaptchaLoaded = true;
|
|
}
|
|
}
|
|
});
|
|
} |