106 lines
4.0 KiB
JavaScript
106 lines
4.0 KiB
JavaScript
(function ($) {
|
|
var $form = $('form.checkout');
|
|
|
|
$('body').on('click', '.payu-list-banks li.payu-active label', function () {
|
|
$('.payu-list-banks label').removeClass('active');
|
|
$(this).addClass('active');
|
|
});
|
|
|
|
$('body').on('click', '.payu-list-banks .payu-active', function () {
|
|
$('.pbl-error').slideUp(250);
|
|
});
|
|
|
|
$('body').on('click', '.payu-conditions-description .payu-read-more', function () {
|
|
$(this).next('.payu-more-hidden').show();
|
|
$(this).remove();
|
|
});
|
|
|
|
$('form#order_review').on('submit', function (e) {
|
|
var paymentMethod = $(this).find('input[name="payment_method"]:checked').val();
|
|
var validateResult = true;
|
|
|
|
if (paymentMethod === 'payusecureform') {
|
|
validateResult = validate_payu_secure_form(this);
|
|
} else if (paymentMethod === 'payulistbanks') {
|
|
validateResult = validate_payu_list_banks();
|
|
}
|
|
|
|
if (!validateResult) {
|
|
setTimeout(function () {
|
|
$(e.target).unblock();
|
|
}, 500);
|
|
}
|
|
|
|
return validateResult;
|
|
});
|
|
|
|
$form.on('checkout_place_order_payusecureform', function () {
|
|
return validate_payu_secure_form(this);
|
|
});
|
|
|
|
$form.on('checkout_place_order_payulistbanks', function () {
|
|
return validate_payu_list_banks();
|
|
});
|
|
|
|
function validate_payu_secure_form(form) {
|
|
var payuTokenElement = document.getElementsByName('payu_sf_token')[0];
|
|
|
|
if (payuTokenElement.value === '') {
|
|
try {
|
|
window.payuSdkForms.tokenize()
|
|
.then(function (result) {
|
|
$('.payu-sf-validation-error, .payu-sf-technical-error')
|
|
.html('')
|
|
.slideUp(250);
|
|
if (result.status === 'SUCCESS') {
|
|
payuTokenElement.value = result.body.token;
|
|
document.getElementsByName('payu_browser[screenWidth]')[0].value = screen.width;
|
|
document.getElementsByName('payu_browser[javaEnabled]')[0].value = navigator.javaEnabled();
|
|
document.getElementsByName('payu_browser[timezoneOffset]')[0].value = new Date().getTimezoneOffset();
|
|
document.getElementsByName('payu_browser[screenHeight]')[0].value = screen.height;
|
|
document.getElementsByName('payu_browser[userAgent]')[0].value = navigator.userAgent;
|
|
document.getElementsByName('payu_browser[colorDepth]')[0].value = screen.colorDepth;
|
|
document.getElementsByName('payu_browser[language]')[0].value = navigator.language;
|
|
$(form).submit();
|
|
} else {
|
|
$(result.error.messages).each(function (i, error) {
|
|
var source = error.source || 'technical';
|
|
$('.payu-sf-' + error.type + '-error[data-type="' + source + '"]')
|
|
.html(error.message)
|
|
.slideDown(250);
|
|
$('html, body').animate({
|
|
scrollTop: $('.card-container').offset().top
|
|
}, 300);
|
|
});
|
|
}
|
|
})
|
|
.catch(function (e) {
|
|
console.log(e);
|
|
});
|
|
} catch (e) {
|
|
console.log(e);
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function validate_payu_list_banks() {
|
|
if (!$('.payu-list-banks').find('.payu-active .active').length) {
|
|
$('html, body').animate({
|
|
scrollTop: $('.payu-list-banks').offset().top
|
|
}, 300);
|
|
$('.pbl-error').slideDown(250);
|
|
|
|
return false;
|
|
} else {
|
|
$('.pbl-error').slideUp(250);
|
|
|
|
return true;
|
|
}
|
|
}
|
|
|
|
})(jQuery);
|