var ShoperInBankClass = function(app){
var windowsWithStart = $( window ).width();
var vars = {
cdebug : false,
lang: 'pl_PL',
appPurl : '',
appName : '',
shopid:'',
shopurl: '',
shoplngid: '',
};
var root = this;
/*
* Constructor
*/
this.construct = function(app){
vars.appPurl = atob(app);
};
/*
* Public method
* Can be called outside class
*/
this.init = function(callback){
root.printDebug('init start');
let isInitPart = false;
if($('body.shop_index').length){
let url = new URL(window.location.href);
let paymentStatus = url.searchParams.get("inbankpaymentstatus");
if(paymentStatus != ''){
let getdata = {shopid:vars.shopid, shoplngid:vars.shoplngid, inbankpaymentstatus:paymentStatus};
$.when(
root.loadDataJson('ajax/getShopInbankPaymentStatus.html', 'GET', getdata)
).then(function(result) {
if(result.status == "ok"){
let msghtml = '
';
msghtml += result.data;
msghtml += '
';
if($('body.shop_index .wrap').find('div.top')!= 'undefined'){
$('body.shop_index .wrap').find('div.top').before(msghtml);
}
else{
$('body.shop_index .wrap').find('div.main').before(msghtml);
}
}
});
}
}
if($('body.shop_basket_done').length && $('.inbankpayment').length){
isInitPart = true;
root.printDebug('is shop basket done');
//
$('.inbankpayment .payment-info').append('');
let getdata = {shopid:vars.shopid, shoplngid:vars.shoplngid};
$.when(
root.loadDataJson('ajax/getShopInbankPaymentMessages.html', 'GET', getdata)
).then(function(result) {
root.printDebug('get payment messages');
if(result.status == "ok"){
root.printDebug('get payment messages - ok');
$('.inbankpayment .payment-info-addmsg').html(result.data.msg1);
$('.inbankpayment .payment-info-addmsg2').html(result.data.msg2);
}
});
let orderdata = {shopid:vars.shopid, shoplngid:vars.shoplngid, orderid:$('.inbankpayment').data('orderid'),sum1:$('.inbankpayment').data('sum1'), sum2:$('.inbankpayment').data('sum2'), email:$('.inbankpayment').data('email')};
root.printDebugV(orderdata);
let loaderH = '';
$('.inbankpayment .payment-button').html(loaderH);
//przetwarzanie
$.when(
root.loadDataJson('ajax/checkInBankPayment.html', 'POST', orderdata)
).then(function(result) {
console.log(result);
if(result.status == "ok" && result.data.redirect_url != 'undefined'){
root.printDebug('Basket done result - OK');
console.log(result.data.redirect_url);
$('.inbankpayment .payment-button').html('Złóż wniosek');
}
else{
root.printDebug('Basket done result');
root.printDebugV(result);
}
});
}
//obsluga koszyka
if($('body.shop_basket').length){
root.printDebug('is shop basket');
isInitPart = true;
$.when(
getShopProductsAll()
).then(function(result) {
if(result.status == "ok"){
let rdata = result.data;
let addDesc = '';
if(result.translate.length != 'undefined'){
$.each(result.translate, function( index, value ) {
addDesc += '
'+value+'
';
});
}
addDesc += '
';
$.each(rdata, function( index, value ) {
//console.log(value);
if(value.inbank_product_shoper_payment_id > 0){
let payId = '#payment_'+value.inbank_product_shoper_payment_id;
if($('.summary-container .sum .value').length != 'undefined'){
let sumorder = $('.summary-container .sum .value').text();
sumorder = sumorder.replace(/\s+/g, '');
sumorder = sumorder.match(/\d+(?:\,.\d+)?/g);
let sumorderm = sumorder[0].replace(',', '.');
console.log(sumorderm);
console.log(value.inbank_payment_order_min_ammount);
console.log(parseFloat(sumorderm) > parseFloat(value.inbank_payment_order_max_ammount));
if((parseFloat(sumorderm) < parseFloat(value.inbank_payment_order_min_ammount)) || (parseFloat(sumorderm) > parseFloat(value.inbank_payment_order_max_ammount))){
let paymentinbank = $(payId).parent().parent().parent();
let paymentcontainer = paymentinbank.parent();
//console.log(paymentinbank);
paymentinbank.remove();
if(paymentinbank.hasClass('selected')){
//console.log('sssssssssssss');
$.each( paymentcontainer.find('.payment'), function( index, value ){
$(this).addClass('selected');
$(this).find('input[type=radio]').prop( "checked", true );
});
}
}
else{
if($(payId).length){
let payDesc = $(payId).parent().parent().find('.description').html();
let paytitle = $(payId).parent().parent().find('>label').html();
if(value.inbank_payment_title != 'undefined'){
paytitle = value.inbank_payment_title;
}
//add inbank logo
let imgurl = vars.appPurl + 'public/assets/images/svg/calc_logo_small/inbank-logo.svg';
paytitle += '';
$(payId).parent().parent().find('>label').html(paytitle);
$(payId).parent().parent().find('.description').html(addDesc);
console.log( value);
}
$.when( getShopInBankProductCalcs(value.sinp_id, sumorder[0])).then(function(resultcalc) {
//console.log(resultcalc);
if(result.status == "ok"){
//console.log(resultcalc.data);
//$(payId).parent().parent().find('.description').prepend('sssssssssssssssssssss');
$(payId).parent().parent().find('.description').prepend( resultcalc.data.product_template);
}
});
}
}
}
});
console.log(result);
}
});
}
//sprawdzenie czy jestesmy na karcie produktu
if($('body.shop_product').length){
root.printDebug('is shop product');
let product_id = $('body').attr('id');
if(product_id != 'undefined'){
isInitPart = true;
product_id = product_id.replace( /^\D+/g, '');
getCalculations(product_id);
}
}
if(isInitPart == true){
var addCss = root.getCss();
if(typeof addCss != 'undefined' && addCss != ''){
$('body').append('');
}
}
if (typeof(callback) == 'function') {
callback();
}
}
this.getCss = function(){
root.printInfo('start getCss');
vars.css = '.inbank-container .inbank--calculator.logo-small{} .inbank-container .inbank--calculator .inbank__img{float:left;margin-top:10px;}.inbank-container .inbank--calculator .inbank__message{float:left;margin-left:5px;line-height:44px;}';
vars.css += '.inbank-basket-assets img{width: 17px;float:left;margin-right:10px;}.inbank-basket-assets p{font-size:12px;}';
vars.css += '.inbank-basket-assets{margin-left:5px}'
//basket done
vars.css += '.inbankpayment{text-align:center;} .inbankpayment .payment-info-addmsg{margin-top:20px;} .inbankpayment .payment-info-addmsg p{margin-bottom:5px;} .inbankpayment .payment-button{margin:20px 0px;}';
vars.css += '.payment-button a.btn-red{padding:10px 45px;font-size:25px;}';
vars.css += '.inbankpayment .payment-info-addmsg2 p{font-size:14px;}';
vars.css += '.payment .inbank-logo{margin-left:5px;padding-left: 5px;border-left: 2px solid #000;}';
vars.css += '.inbank--calculator{margin-left:5px;margin-bottom: 10px;} .inbank--calculator .inbank__message{font-weight:bold;}.justify-content-center {justify-content: center !important;}';
vars.css += '.loaderinbank {margin-top: 1rem;margin-bottom: 1rem;height: auto;background-color: transparent;}';
vars.css += '.loader-container {position: relative;display: inline-block;height: 71px;width: 71px;margin-right: 1rem;}';
vars.css += '.loader-logo {position: absolute;left: 0;right: 0;top: 0;bottom: 0;margin: auto;width: 73px;}';
vars.css += '.loader-circle {width:44px; min-width:44px; height:44px; min-height:44px; display:flex; align-items:center; margin:auto; border-radius:50%; -webkit-transform:translateZ(0); -ms-transform:translateZ(0); transform:translateZ(0); -webkit-animation:loader .8s infinite linear;animation:loader .8s infinite linear; border-top:5px solid rgba(255,255,255,0); border-right:5px solid #7a1d8e; border-bottom:5px solid #7a1d8e; border-left:5px solid #7a1d8e; margin-right:1em}';
vars.css += '.loader-circle--large {width: 73px;min-width: 73px; height: 73px; min-height: 73px; border-top: 5px solid rgba(255,255,255,0); border-right: 5px solid #97d700;border-bottom: 5px solid #97d700;border-left: 5px solid #97d700;position: absolute;left: -5px;bottom: 0;top: 0;margin-right: 0;}';
vars.css += '@keyframes loader { 0% { -webkit-transform:rotate(0); transform:rotate(0) } 100% { -webkit-transform:rotate(360deg); transform:rotate(360deg) }}';
root.printInfo('end getCss');
return(vars.css);
};
this.setAppUrl = function(appPurl){
vars.appPurl = appPurl;
};
this.getShopId = function(){
return(vars.shopid);
};
this.getShopLangId = function(){
return(vars.shoplngid);
};
this.loadOptions = function(options){
$.extend(vars , options);
if(typeof vars.aplication_debug != 'undefined'){
if(vars.aplication_debug == '1'){
vars.cdebug = true;
}
}
root.printDebug('option list');
root.printDebugV(vars);
};
this.printInfo = function(info) {
console.log(vars.appName +' : ' + info);
};
this.printDebug = function(info) {
if(vars.cdebug == true){
console.log(vars.appName +' : ' + info);
}
};
this.printDebugV = function(info) {
if(vars.cdebug == true){
console.log(info);
}
};
this.checkFrontApi = function (){
var me = this;
me.defer = new $.Deferred();
me.index = 0;
if(typeof frontAPI !='undefined'){
clearInterval(me.interval);
me.defer.resolve();
return me.defer;
}
me.interval = setInterval(function() {
print('check front api - ' + typeof frontAPI );
if(typeof frontAPI !='undefined'){
clearInterval(me.interval);
me.defer.resolve();
}
}, 200);
return me.defer;
}
this.displayReturnForm = function(info) {
};
this.loadShopConfig = function(){
let adata = {shopid:vars.shopid, shoplngid:vars.shoplngid};
root.printDebugV(adata);
return(this.loadDataJson('ajax/getShopConfig.html', 'GET', {shopid:vars.shopid, shoplngid:vars.shoplngid}));
};
this.loadDataJson = function (url, ctype, cdata) {
let lUrl = vars.appPurl + url;
root.printDebugV(lUrl);
return(jQuery.ajax({
url: lUrl,
type: ctype,
data: cdata,
async: true,
jsonp: 'jsonp'
}));
}
/*
* Private method
*/
var getShopInBankProductCalcs = function(inbankproduct_id, productamount){
let adata = {shopid:vars.shopid, shoplngid:vars.shoplngid, inbankproductid:inbankproduct_id, amount:productamount};
root.printDebugV(adata);
return(root.loadDataJson('ajax/getShopInbankProductCalc.html', 'GET', adata));
}
var getShopProductsCalcs = function(product_id, productamount){
let adata = {shopid:vars.shopid, shoplngid:vars.shoplngid, shopproductid:product_id, amount:productamount};
root.printDebugV(adata);
return(root.loadDataJson('ajax/getShopProductsCalc.html', 'GET', adata));
}
var getShopProductsAll = function(){
let adata = {shopid:vars.shopid, shoplngid:vars.shoplngid};
root.printDebugV(adata);
return(root.loadDataJson('ajax/getShopProducts.html', 'GET', adata));
}
var checkFrontApi = function(counter){
setTimeout(
function()
{
if(typeof frontAPI !='undefined'){
return(true);
}
else{
if(counter > 3){
return(false);
}
else{
return(checkFrontApi(counter + 1));
}
}
}, 200);
};
//var checked
var checkPriceAfterChange = function(){
};
var getCalculations = function(product_id){
if(parseInt(product_id) != 'NaN'){
root.printDebug('Found product id:'+product_id);
let productamount = null;
/*
if($('.shop_product').find('div.basket div.price del').length > 0 && !$('.shop_product').find('div.basket div.price del').hasClass('none')){
root.printDebug('is del price');
productamount = $('.shop_product').find('div.basket div.price del').text();
}
else */
if($('.shop_product').find('div.basket .price em.main-price').length > 0){
root.printDebug('is main price');
productamount = $('.shop_product').find('div.basket .price em.main-price').text();
}
productamount = productamount.replace(/\s+/g, '');
productamount = productamount.match(/\d+(?:\,.\d+)?/g);
if(productamount.length == 0){
root.printInfo('error product price');
}
root.printDebugV(productamount[0]);
$.when(
getShopProductsCalcs(product_id, productamount[0])
).then(function(result) {
root.printDebugV(result);
if(result.status == "ok"){
let rdata = result.data;
$.each(rdata, function( index, value ) {
if(value != null){
//product_page_possition
if(value.product_page_possition == 'calc-pos-beforeaddtocartbutton'){
//console.log(value.product_page_possition);
$('body.shop_product #box_productfull .inbank-container').remove();
if( $('body.shop_product #box_productfull').find('.form-basket').length > 0){
$('body.shop_product #box_productfull').find('.form-basket').before(''+value.product_template+'
');
}
}
}
console.log( value);
});
//console.log(rdata);
}
});
}
else{
root.printInfo('no product id');
}
};
var setEvents = function(){
/*
console.log('setEvents');
$("body.shop_product").on('DOMSubtreeModified', 'input[name="stock_id"]', function(event) {
alert('aaaaaaaaa');
});
*/
var stockid = null;
if($("body.shop_product").length != 'undefined' && $('body.shop_product input[name="stock_id"]').length != 'undefined'){
$(".form-basket").on("input", function() {
//console.log((this));
let product_id = $('body').attr('id');
if(product_id != 'undefined'){
isInitPart = true;
product_id = product_id.replace( /^\D+/g, '');
setTimeout(function(){ getCalculations(product_id);}, 1000);
}
});
}
};
this.construct(app);
setEvents();
};
$(function() {
var appInBank = new ShoperInBankClass('aHR0cHM6Ly9zaG9wZXIuaW5iYW5rLmRldi8=');
appInBank.loadOptions({cdebug : true,appName: 'InBank',shopid:493,shoplngid:1});
$.when(
appInBank.loadShopConfig()
).then(function(resultConfig) {
if(resultConfig.status == 'ok'){
appInBank.printInfo('Config loaded');
let rdata = resultConfig.data;
appInBank.loadOptions(rdata);
appInBank.init(
function() {
}
);
}
else{
appInBank.printDebug(resultConfig);
appInBank.printInfo('Error loading config - global');
}
});
});