(function privAppStozekSearch($){let App=function App(){this.session_id='qf6cno65430spdjqp15vjs5kql';this.session_token='239127cb2376a45931637888e4eb8d3fca001c447ebdbe9b447dd84a49f3697f';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=$('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=$(`
');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=$('
');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);