$(function() { var $modal = $('#modal1'); var $underlay = $('#underlay1'); var returnUrl = ''; var email = ''; var step1html = ''; var step2html = ''; var uidPollingTimer = null; var uidPollingRequest = null; var errs = { 'en-US': { email_required: 'To continue, enter your email', email_invalid: 'Incorrect email', code_required: 'To continue, enter the full code' }, 'ru-RU': { email_required: 'Для продолжения введите емайл', email_invalid: 'Неверно указан email', code_required: 'Для продолжения введите полный код' } }[plang]; $('body') .on('click', '.id_check_auth', function(e) { e.preventDefault(); var t = $(this); returnUrl = t.prop('href') var getparams = { action: 'auth', lang: plang, _: Math.random() }; $.get('/asp/ajax.asp', getparams) .done(function(data) { if (data.result == 0) { window.location.href = returnUrl; return; } step1html = data.html; showModal(step1html); $('#auth_email').focus(); startUidPolling(); }) }) .on('input', '#auth_email', function() { var t = $(this); var v = $.trim(t.val()); if (v != '') { authEmailErr(''); } $('#auth_email_btn').prop('disabled', v == '') }) .on('submit', '#auth_step1', function(e) { e.preventDefault(); if (!this.checkValidity()) { authEmailErr(!$.trim($('#auth_email').val()) ? errs.email_required : errs.email_invalid); return; } grecaptcha.ready(function() { grecaptcha.execute('6LcJOkEcAAAAABZkLrjV186O6W8bn9qBhwTOiSmb', { action: 'submit' }).then(function (token) { checkTuring2(token); }) }) }) .on('input', '.id_digits', function() { var t = $(this); t.val(t.val().replace(/\D/g, '')); if (t.val().length === 1) { t.closest('.field').nextAll('.field').first().find('.id_digits').focus(); authCodeErr(''); } var n = getCode().length; $('#auth_code_btn').prop('disabled', n != 6); if (n == 6) { $('#auth_code_btn').click(); } }) .on('keydown', '.id_digits', function(e) { var t = $(this); if (e.key === 'Backspace' && !t.val()) { t.closest('.field').prevAll('.field').first().find('.id_digits').focus(); } $('#auth_code_btn').prop('disabled', getCode().length != 6); }) .on('paste', '.id_digits', function(e) { e.preventDefault(); var pastedData = (e.originalEvent.clipboardData || window.clipboardData).getData("text").replace(/\D/g, ''); if (pastedData.length > 0) { authCodeErr(''); } var inputs = $(".id_digits"); inputs.each(function (idx) { if (pastedData[idx]) { $(this).val(pastedData[idx]); } }); var lastFilledIdx = Math.min(pastedData.length, inputs.length) - 1; if (lastFilledIdx >= 0) { inputs.eq(lastFilledIdx).focus(); } var n = getCode().length; $('#auth_code_btn').prop('disabled', n != 6); if (n == 6) { $('#auth_code_btn').click(); } }) .on('submit', '#auth_step2', function(e) { e.preventDefault(); if (!this.checkValidity()) { authCodeErr(errs.code_required); return; } doCheck2(); }) .on('click', '#auth_code_back', function() { showModal(step1html); authEmailErr(''); $('#auth_email').val(email).focus(); }) .on('click', '.id_btn_clear', function(e) { e.preventDefault(); var inp = $(this).data('for'); $(inp).val('').focus(); }) function checkTuring2(t_val) { authEmailErr(''); email = $('#auth_email').val(); var postparams = { email: email, turing: t_val, }; if (returnUrl) { postparams.return_url = (new URL(returnUrl)).pathname; } $('#auth_email_btn').prop('disabled', true); $.post('/asp/ajax.asp?action=setuid2&lang=' + plang, postparams) .done(function(data) { // console.log('setuid2', data.result) switch (data.result) { case '1': authEmailErr(data.html); break; case '2': authEmailErr(data.html); break; case '-1': case '0': step2html = data.html; showModal(step2html); $('#digit-1').focus(); break; case '-4': step2html = data.html; showModal(step2html); $('#digit-1').focus(); authCodeErr(_langs[3]); break; } }) .always(function() { $('#auth_email_btn').prop('disabled', $('#auth_email_err').html()); }) } function doCheck2() { var code = getCode(); if (code.length != 6) { authCodeErr(_langs[14]); return; } authCodeErr('') var postparams = { email: email, code: code, }; $('#auth_code_btn').prop('disabled', true); $.post('/asp/ajax.asp?action=checkcode2&lang=' + plang, postparams) .done(function(data) { switch (data.result) { case '0': case '3': showModal(''); if (returnUrl != '') { window.location.href = returnUrl; return; } break; case '1': authCodeErr(_langs[14]); break; } }) .always(function() { $('#auth_code_btn').prop('disabled', $('#auth_code_err').html()); }) } function authEmailErr(err) { if (err) { $('#auth_email_err').html(err); $('#auth_email_err').removeClass('d-none'); $('#auth_email_field').addClass($('#auth_email_field').data('err')); $('#auth_email').addClass($('#auth_email').data('err')); $('#auth_email_btn').prop('disabled', true); } else { $('#auth_email_err').html(''); $('#auth_email_err').addClass('d-none'); $('#auth_email_field').removeClass($('#auth_email_field').data('err')); $('#auth_email').removeClass($('#auth_email').data('err')); $('#auth_email_btn').prop('disabled', false); } } function authCodeErr(err) { if (err) { $('#auth_code_err').html(err); $('#auth_code_err').removeClass('d-none'); $('.id_digit_fields').addClass($('.id_digit_fields').data('err')); $('.id_digits').addClass($('.id_digits').data('err')); $('#auth_code_btn').prop('disabled', true); } else { $('#auth_code_err').html(''); $('#auth_code_err').addClass('d-none'); $('.id_digit_fields').removeClass($('.id_digit_fields').data('err')); $('.id_digits').removeClass($('.id_digits').data('err')); $('#auth_code_btn').prop('disabled', false); } } function getCode() { var code = $('#digit-1').val() + $('#digit-2').val() + $('#digit-3').val() + $('#digit-4').val() + $('#digit-5').val() + $('#digit-6').val(); return code.replace(/\D/g, ''); } function showModal(html) { if (html) { $modal.html(html); $modal.removeClass('d-none'); $underlay.removeClass('d-none'); $('body').addClass('overflow-hidden') } else { $modal.html(''); $modal.addClass('d-none'); $underlay.addClass('d-none'); $('body').removeClass('overflow-hidden') stopUidPolling(); } } function startUidPolling() { stopUidPolling(); uidPollingTimer = setTimeout(function() { checkUid() }, 4000); } function stopUidPolling() { clearTimeout(uidPollingTimer); uidPollingTimer = null; if (uidPollingRequest) { uidPollingRequest.abort(); uidPollingRequest = null; } } function checkUid() { var getparams = { action: 'checkuid', _: Math.random() }; uidPollingRequest = $.get('/asp/ajax.asp', getparams) .done(function(data) { if (data && data.result == 0) { if (returnUrl) { window.location.href = returnUrl; } else { window.location.href = window.location.href; } return; } }) .always(function() { startUidPolling(); }) } if ($('.id_modal_auth').length > 0) { $underlay = $('.id_modal_auth'); $('.id_check_auth').click(); $('body').on('click', '.id_close_modal1', function(e) { e.preventDefault(); window.location.href = '/'; return; }); } else { $('body').on('click', '.id_close_modal1', function(e) { e.preventDefault(); showModal('') }); $underlay.click(function() { showModal(''); }); $(document).on('keydown', function (e) { if (e.key === 'Escape' && !$modal.hasClass('d-none')) { showModal('') } }); } });