(function privAppStozekSearch($){let App=function App(){this.session_id='tq8ttsd31e96k9glpt5oih0rlr';this.session_token='9c62246057f303a6edee262ee7eddf8520941354a8911b0a4670a7909151c659';this.shop_id=2;this.lang=Shop.lang.name;this.$style=$('').appendTo('head');this.insertStyle();if($('body').hasClass('shop_index')){this.index();return true;} if($('body').hasClass('shop_product_list')){this.productList();return true;}};App.prototype.index=function index(){this.indexFilter().catch((reason)=>this.errorHandler(reason));};App.prototype.productList=function productList(){this.loadCurrency().then(()=>this.filterProducts()).catch((reason)=>this.errorHandler(reason));$(window).on('popstate',(e)=>{if(e.originalEvent.state===null){location.reload();}});};App.prototype.indexFilter=function indexFilter(){return new Promise((resolve,reject)=>{let parameters_url_keys={inner_diameter:'sr_wewn',outer_diameter:'sr_zewn',width:'szerokosc',precision:'precyzja',};let parameters_inputs={};let box=$('
').prependTo('.top > .container');let box_head=$('
').appendTo(box);box_head.append('Wyszukaj po wymiarach');let inner_box=$('
').appendTo(box);let html=this.createFiltersHtml();let filters=html.filters.appendTo(inner_box);let inner_diameter_input=html.inner_diameter_input;let outer_diameter_input=html.outer_diameter_input;let width_input=html.width_input;let precision_input=html.precision_input;let filter_button=html.filter_button;filter_button.find('span').html('wyszukaj');filter_button.on('click.filter',(e)=>{e.preventDefault();let filter_parameters={inner_diameter:inner_diameter_input.val(),outer_diameter:outer_diameter_input.val(),width:width_input.val(),precision:precision_input.val(),};let emptyFilter=true;for(let key in filter_parameters){if(key=='precision'||filter_parameters[key]=='')continue;emptyFilter=false;break;} if(emptyFilter)return;let url=new URL(window.location);url.pathname='/pl/c/a/133';for(let key in filter_parameters){url.searchParams.set(parameters_url_keys[key],filter_parameters[key]);} window.location.href=url;});return resolve(true);});};App.prototype.filterProducts=function filterProducts(){return new Promise((resolve,reject)=>{let parameters_url_keys={inner_diameter:'sr_wewn',outer_diameter:'sr_zewn',width:'szerokosc',precision:'precyzja',};let parameters_inputs={};let html=this.createFiltersHtml();let filters=html.filters.prependTo('#box_mainproducts');let inner_diameter_input=html.inner_diameter_input;let outer_diameter_input=html.outer_diameter_input;let width_input=html.width_input;let precision_input=html.precision_input;let filter_button=html.filter_button;parameters_inputs.inner_diameter=inner_diameter_input;parameters_inputs.outer_diameter=outer_diameter_input;parameters_inputs.width=width_input;parameters_inputs.precision=precision_input;filter_button.on('click.filter',(e)=>{e.preventDefault();let filter_parameters={inner_diameter:inner_diameter_input.val(),outer_diameter:outer_diameter_input.val(),width:width_input.val(),precision:precision_input.val(),};let emptyFilter=true;for(let key in filter_parameters){if(key=='precision'||filter_parameters[key]=='')continue;emptyFilter=false;break;} if(emptyFilter)return;let url=new URL(window.location);for(let key in filter_parameters){url.searchParams.set(parameters_url_keys[key],filter_parameters[key]);} if(window.history.state==null||'urlPath'in window.history.state&&window.history.state.urlPath!=url){window.history.pushState({urlPath:url.toString()},'',url);} this.getFiltredProducts(filter_parameters).then((products)=>{$('#box_mainproducts .products').empty();$('#box_mainproducts .paginator').remove();if(products.length==0){let error=$('
');error.append('

Nie znaleziono produktów spełniających podane kryteria.

');error.appendTo('#box_mainproducts .products');return resolve(true);} for(let product_data of products){let product=this.createProductHtml(product_data);product.appendTo('#box_mainproducts .products');}}).catch((reason)=>{this.errorHandler(reason);});});let urlWithFilters=false;let url=new URL(window.location);for(let param of url.searchParams){let name=param[0];let value=param[1];for(let key in parameters_url_keys){if(name!=parameters_url_keys[key])continue;if(value.trim()=='')break;urlWithFilters=true;parameters_inputs[key].val(value.trim());break;}} if(urlWithFilters){filter_button.click();} $(window).on('popstate',(e)=>{if(e.originalEvent.state!==null&&'urlPath'in window.history.state){let urlWithFilters=false;let url=new URL(window.location);for(let param of url.searchParams){let name=param[0];let value=param[1];for(let key in parameters_url_keys){if(name!=parameters_url_keys[key])continue;if(value.trim()=='')break;urlWithFilters=true;parameters_inputs[key].val(value.trim());break;}} if(urlWithFilters){filter_button.click();}}});return resolve(true);});};App.prototype.getFiltredProducts=function getFiltredProducts(filter_parameters){return new Promise((resolve,reject)=>{let link="https://stozek.maxserver.pl/privAppStozekSearch/getFiltredProducts.php";let postData={session_id:this.session_id,session_token:this.session_token,shop_id:this.shop_id,currency:this.currency};Object.assign(postData,filter_parameters);$.post(link,postData).done((response)=>{response=JSON.parse(response);if('error'in response)return reject(new Error(response.error));return resolve(response.data);}).fail((response)=>{return reject(new Error(`Network Error ${response.status}`));});});};App.prototype.createFiltersHtml=function createFiltersHtml(){let parameters_names={inner_diameter:'Średnica wewnętrzna',outer_diameter:'Średnica zewnętrzna',width:'Szerokość',precision:'Tolerancja',};let filters=$('
');let inner_diameter_filter=$('
').appendTo(filters);let inner_diameter_text=$(`
${parameters_names.inner_diameter}
`).appendTo(inner_diameter_filter);let inner_diameter_input=$('').appendTo(inner_diameter_filter);let outer_diameter_filter=$('
').appendTo(filters);let outer_diameter_text=$(`
${parameters_names.outer_diameter}
`).appendTo(outer_diameter_filter);let outer_diameter_input=$('').appendTo(outer_diameter_filter);let width_filter=$('
').appendTo(filters);let width_text=$(`
${parameters_names.width}
`).appendTo(width_filter);let width_input=$('').appendTo(width_filter);let precision_filter=$('
').appendTo(filters);let precision_text=$(`
${parameters_names.precision}
`).appendTo(precision_filter);let precision_input=$('').appendTo(precision_filter);precision_input.val(0.9);let filter_button_wrap=$('
').appendTo(filters);filter_button_wrap.css({'flex':'1 0 auto','align-self':'end','text-align':'right','margin-bottom':'4px'});let filter_button=$('').appendTo(filter_button_wrap);filter_button.append('');filter_button.append('Filtruj');return{filters:filters,inner_diameter_input:inner_diameter_input,outer_diameter_input:outer_diameter_input,width_input:width_input,precision_input:precision_input,filter_button:filter_button,};};App.prototype.createProductHtml=function createProductHtml(product_data){let product=$('
');product.attr('data-product-id',this.escapeHtml(product_data.product_id));product.attr('data-category',this.escapeHtml(product_data.category));if(product_data.producer!='')product.attr('data-producer',this.escapeHtml(product_data.producer));let description=$('
').appendTo(product);let small_header=$('

').appendTo(description);let small_header_link=$('').appendTo(small_header);small_header_link.attr('href',this.escapeHtml(product_data.url));small_header_link.attr('title',this.escapeHtml(product_data.name));small_header_link.attr('rel','nofollow');small_header_link.append(this.escapeHtml(product_data.name));let inner_description=$('
').appendTo(description);let image_link=$('').appendTo(inner_description);image_link.attr('href',this.escapeHtml(product_data.url));image_link.attr('title',this.escapeHtml(product_data.name));image_link.attr('rel','dofollow');let image_wrap=$('').appendTo(image_link);let image=$('').appendTo(image_wrap);image.attr('src',this.escapeHtml(product_data.image));image.attr('data-src',this.escapeHtml(product_data.image));image.attr('alt',this.escapeHtml(product_data.name));let inner_div=$('
').appendTo(inner_description);let header_link=$('').appendTo(inner_div);header_link.attr('href',this.escapeHtml(product_data.url));header_link.attr('title',this.escapeHtml(product_data.name));let header=$('').appendTo(header_link);header.append(this.escapeHtml(product_data.name));let short_description=$('
').appendTo(inner_div);short_description.append(this.escapeHtml(product_data.short_description));let attributes=$('
').appendTo(inner_div);for(let key in product_data.attributes){let attribute=product_data.attributes[key];attributes.append(`
${this.escapeHtml(attribute.name)}: ${this.escapeHtml(attribute.value)}
`);} let availability=$('

').appendTo(inner_div);if(product_data.availability!=''){availability.append('Dostępność: ');availability.append(`${product_data.availability} `);} let form;if(product_data.can_buy){form=$('
').appendTo(inner_div);} let price=$('
');if(product_data.can_buy){price.appendTo(form);}else{price.appendTo(inner_div);price.addClass('noform');} let price_div=$('
').appendTo(price);price_div.append('Cena: ');if(product_data.special_offer){price_div.append(`${this.priceFormat(product_data.promo_price)} `);price_div.append(`${this.priceFormat(product_data.price)} `);}else{price_div.append(`${this.priceFormat(product_data.price)} `);} let price_netto=$('').appendTo(price_div);price_netto.append('(netto: ');if(product_data.special_offer){price_netto.append(`${this.priceFormat(product_data.promo_price / 1.23)} `);price_netto.append(`${this.priceFormat(product_data.price / 1.23)} `);}else{price_netto.append(`${this.priceFormat(product_data.price / 1.23)} `);} price_netto.append(') ');if(product_data.can_buy){let fieldset=$('
').appendTo(form);let input_wrap=$('
').appendTo(fieldset);input_wrap.append('');fieldset.append(' szt. ');fieldset.append(``);let addtobasket=$('').appendTo(fieldset);addtobasket.append('');addtobasket.append('Do koszyka ');} return product;};App.prototype.basketIndex=function basketIndex(){this.loadCurrency().then(()=>Promise.all([this.loadBasketInfo(),this.loadEndpoint(),])).then(()=>this.changeBasket()).catch((reason)=>this.errorHandler(reason));};App.prototype.changeBasket=function changeBasket(){return new Promise((resolve,reject)=>{let in_basket=false;for(let key in this.basket_info.products){let basket_product=this.basket_info.products[key];if(!this.checkBasketProduct(basket_product))continue;in_basket=true;} if(!in_basket)return reject(new Error('Basket not qualified'));return resolve(true);});};App.prototype.loadBasketInfo=function loadBasketInfo(){return new Promise((resolve,reject)=>{this.waitFor(()=>{return typeof window.frontAPI==='object'&&typeof window.frontAPI.getBasketInfo==='function';},()=>{frontAPI.getBasketInfo((basket)=>{this.basket_info=basket;return resolve(basket);},{lang:this.lang,currency:this.currency});});});};App.prototype.loadEndpoint=function loadEndpoint(){return new Promise((resolve,reject)=>{let link="https://domain.maxserver.pl/appNazwa/endpoint.php";let postData={session_id:this.session_id,session_token:this.session_token,shop_id:this.shop_id,currency:this.currency};$.post(link,postData).done((response)=>{response=JSON.parse(response);if('error'in response)return reject(new Error(response.error));this.endpoint_data=response.data;return resolve(response.data);}).fail((response)=>{return reject(new Error(response));});});};App.prototype.checkBasketProduct=function checkBasketProduct(basket_product){return false;};App.prototype.errorHandler=function errorHandler(reason){switch(reason.message){case'exceeding_protection':console.log(reason);break;default:console.error(reason);break;}};App.prototype.insertStyle=function insertStyle(){this.$style.append(` .mx_search_filters { display: grid; gap: 10px; grid-template-columns: 1fr 1fr 1fr 1fr 2fr; } @media screen and (max-width: 980px) { .mx_search_filters { display: grid; gap: 10px; grid-template-columns: 1fr 1fr; } .mx_search_filters .mx_filter input { width: 100%; } .mx_search_filters .mx_button { text-align: center; margin-bottom: 4px; grid-column: 1/-1; } } @media screen and (max-width: 420px) { .mx_search_filters { display: grid; gap: 10px; grid-template-columns: 1fr; } } `);};App.prototype.getTranslation=function getTranslation(var_name,escape=true,lang=this.lang){let translation='';if(lang in this.translations[var_name]){translation=this.translations[var_name][lang];}else{translation=this.translations[var_name]['__default'];} if(!escape)return translation;return this.escapeHtml(translation);};App.prototype.escapeHtml=function escapeHtml(unsafe){return unsafe.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'");};App.prototype.priceFormat=function priceFormat(price,currency=this.currency,lang=this.lang){if(currency==undefined){throw new Error('Undefined currency');} if(typeof this._price_formater==='undefined'||this._price_formater_lang!=lang||this._price_formater_currency!=currency){this._price_formater_lang=lang;this._price_formater_currency=currency;this._price_formater=new Intl.NumberFormat(lang.split('_').join('-'),{style:'currency',currency:currency});} return this._price_formater.format(price);};App.prototype.loadCurrency=function loadCurrency(){if('currency'in this)return Promise.resolve(this.currency);return new Promise((resolve,reject)=>{this.waitFor(()=>{return typeof Shop.values==='object'&&typeof Shop.values.currency==='string';},()=>{this.currency=Shop.values.currency;return resolve(this.currency);});});};App.prototype.waitFor=function waitFor(expr,callback,interval=0){if(!expr()){setTimeout(this.waitFor.bind(this,expr,callback,interval),interval);} else{callback();}};new App();})(jQuery);