/**
* NOTICE OF LICENSE
*
* This source file is subject to the MIT License (MIT)
* that is bundled with this package in the file LICENSE.md.
*
* @author mElements S.A.
* @copyright mElements S.A.
* @license MIT License
**/
// jQuery Mask Plugin v1.14.16
// github.com/igorescobar/jQuery-Mask-Plugin
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,n,f){a instanceof String&&(a=String(a));for(var p=a.length,k=0;k
g?h=10*d:e>=h&&e!==g?c.maskDigitPosMapOld[h]||(e=h,h=h-(k-l)-a,c.maskDigitPosMap[h]&&(h=e)):h>e&&(h=h+(l-k)+f)}return h},behaviour:function(d){d=
d||window.event;c.invalid=[];var e=b.data("mask-keycode");if(-1===a.inArray(e,l.byPassKeys)){e=c.getMasked();var h=c.getCaret(),g=b.data("mask-previus-value")||"";setTimeout(function(){c.setCaret(c.calculateCaretPosition(g))},a.jMaskGlobals.keyStrokeCompensation);c.val(e);c.setCaret(h);return c.callbacks(d)}},getMasked:function(a,b){var h=[],f=void 0===b?c.val():b+"",g=0,k=d.length,n=0,p=f.length,m=1,r="push",u=-1,w=0;b=[];if(e.reverse){r="unshift";m=-1;var x=0;g=k-1;n=p-1;var A=function(){return-1<
g&&-1')
}
paynow.addApplePayEnabledToCookie();
},
overrideDefaults: function() {
if (!window.hasOwnProperty('paynowOverrides')) {
return;
}
if (window.paynowOverrides.hasOwnProperty('selectors')) {
for (const [key, value] of Object.entries(window.paynowOverrides.selectors)) {
if (paynow.selectors.hasOwnProperty(key)) {
paynow.selectors[key] = value;
}
}
}
if (window.paynowOverrides.hasOwnProperty('config')) {
for (const [key, value] of Object.entries(window.paynowOverrides.config)) {
if (paynow.config.hasOwnProperty(key)) {
paynow.config[key] = value;
}
}
}
},
termsValidate: function() {
if (paynow.config.validateTerms == false) {
return true
}
if (paynow.isTermsChecked()) {
$(paynow.selectors.termsErrorLabel).text('')
return true
} else {
return false
}
},
blikFormSubmit: function (e) {
if (e && e.preventDefault) {
e.preventDefault()
}
$(paynow.selectors.blikErrorLabel).text('')
$(paynow.selectors.termsErrorLabel).text('')
if (paynow.termsValidate() == false) {
$(paynow.selectors.termsErrorLabel).text($(paynow.selectors.form).data('terms-message'))
prestashop.emit('paynow_event_blik_submit_fail', {
type: 'terms_not_accepted',
})
return
}
if (paynow.isOnePageCheckout()) {
paynow.triggerOnePageCheckoutPlaceOrder()
return;
}
paynow.blikButton.disable()
paynow.chargeBlik(
function (data, textStatus, jqXHR) {
window.location.href = data.redirect_url
},
function (data, textStatus, jqXHR) {
paynow.blikButton.enable()
$(paynow.selectors.blikErrorLabel).text(data.message)
prestashop.emit('paynow_event_blik_submit_fail', {
type: 'xhr_ok_but_error',
response: data,
textStatus: textStatus,
jqXHR: jqXHR,
})
},
function (jqXHR, textStatus, errorThrown) {
paynow.blikButton.enable()
$(paynow.selectors.blikErrorLabel).text($(paynow.selectors.form).data('error-message'))
prestashop.emit('paynow_event_blik_submit_fail', {
type: 'xhr_error',
jqXHR: jqXHR,
textStatus: textStatus,
errorThrown: errorThrown
})
}
)
},
blikFormPrepare: function() {
if ($(paynow.selectors.blikCode).length != 1) {
return
}
$(paynow.selectors.blikCode).mask('000 000', {placeholder: "___ ___"})
if ($(paynow.selectors.form).data('blik-autofocus') == '1') {
$(paynow.selectors.blikCode).focus();
}
if ($(paynow.selectors.blikCode).is(':visible')) {
paynow.paymentButton.disable()
paynow.paymentButton.hide()
} else {
paynow.paymentButton.enable()
paynow.paymentButton.show()
}
},
blikValidate: function () {
blik_code_value = $(paynow.selectors.blikCode).val().replace(/\s/g, '');
if (blik_code_value.length === 6 && !isNaN(parseInt(blik_code_value)) && parseInt(blik_code_value)) {
$(paynow.selectors.blikErrorLabel).text('');
paynow.blikButton.enable()
return true
} else {
paynow.blikButton.disable()
return false
}
},
pblValidate: function () {
if (paynow.config.validateTerms && paynow.isTermsChecked()) {
paynow.paymentButton.enable();
return true
} else {
paynow.paymentButton.disable();
return false
}
},
isOnePageCheckout: function () {
// support for: Supercheckout by Knownband
if ($('#velsof_supercheckout_form').length) {
return true
}
return false
},
isTermsChecked: function () {
if (paynow.config.allTermsHaveToBeChecked) {
return !$(paynow.selectors.terms).is(':not(:checked)')
} else {
return $(paynow.selectors.terms).is(':checked')
}
},
triggerOnePageCheckoutPlaceOrder: function () {
// support for: Supercheckout by Knownband
if ($('#velsof_supercheckout_form').length) {
$("#supercheckout_confirm_order").trigger('click')
}
},
chargeBlik: function (onSuccess, onFail, onError) {
$.ajax($(paynow.selectors.form).data('action'), {
method: 'POST', type: 'POST',
data: {
'blikCode': $(paynow.selectors.blikCode).val().replace(/\s/g, ""),
'token': $(paynow.selectors.form).data('token')
},
}).success(function (data, textStatus, jqXHR) {
if (data.success === true) {
if (typeof onSuccess == 'function') {
onSuccess(data, textStatus, jqXHR)
}
} else {
if (typeof onFail == 'function') {
onFail(data, textStatus, jqXHR)
}
}
}).error(function (jqXHR, textStatus, errorThrown) {
if (typeof onError == 'function') {
onError(jqXHR, textStatus, errorThrown)
}
});
},
addApplePayEnabledToCookie: function () {
let applePayEnabled = false;
if (window.ApplePaySession) {
applePayEnabled = window.ApplePaySession.canMakePayments();
}
document.cookie = 'applePayEnabled=' + (applePayEnabled ? '1' : '0');
},
paymentButton: {
show: function () {
$(paynow.selectors.paymentButton).show();
},
hide: function () {
$(paynow.selectors.paymentButton).hide();
},
disable: function () {
$(paynow.selectors.paymentButton).prop('disabled', true);
if (paynow.config.useCssClassDisabled) {
$(paynow.selectors.paymentButton).addClass('disabled');
}
},
enable: function () {
$(paynow.selectors.paymentButton).prop('disabled', false);
if (paynow.config.useCssClassDisabled) {
$(paynow.selectors.paymentButton).removeClass('disabled');
}
}
},
blikButton: {
disable: function () {
$(paynow.selectors.blikButton).prop('disabled', true);
if (paynow.config.useCssClassDisabled) {
$(paynow.selectors.blikButton).addClass('disabled');
}
},
enable: function () {
$(paynow.selectors.blikButton).prop('disabled', false);
if (paynow.config.useCssClassDisabled) {
$(paynow.selectors.blikButton).removeClass('disabled');
}
},
show: function () {
$(paynow.selectors.blikButton).show();
},
hide: function () {
$(paynow.selectors.blikButton).hide();
}
}
};
$(document).ready(paynow.init);
// backward compatibility; in case someone is using old functions in own code
function enableBlikSupport() { paynow.blikFormPrepare() }
function paynowPblPaymentBtnCheck() { paynow.pblValidate() }
function enablePblSupport() {}