PageSourceSearch

https://reknihy.cz/wp-content/cache/min/1/wp-content/plugins/edgy-…/luigis/assets/luigis.js?ver=1790345008

js reknihy.cz collected 2026-09-26 08:24:14 UTC 18,473 bytes, 63 lines download raw bytes

1jQuery(function($){function rkResizeImg(url,w){if(typeof url!=='string'||!url){return url}
2w=w||300;url=url.replace('//reknihy.cz/wp-content/uploads/','//egjmi6onsmw.exactdn.com/wp-content/uploads/').replace('//www.reknihy.cz/wp-content/uploads/','//egjmi6onsmw.exactdn.com/wp-content/uploads/');if(url.indexOf('exactdn.com')>-1&&url.indexOf('w=')===-1){url+=(url.indexOf('?')>-1?'&':'?')+'w='+w}
3return url}
4function rkEsc(text){var t=document.createElement('textarea');t.innerHTML=text==null?'':String(text);return t.value.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;')}
5function rkSafeUrl(url){if(typeof url!=='string'){return null}
6return/^\/(?![\/\\])[^\s\\]*$/.test(url)||/^https:\/\/(www\.)?reknihy\.cz\/[^\s\\]*$/.test(url)?url:null}
7function rkAjaxRetry(opts){var tries=0;function go(){var o={},k;for(k in opts){if(opts.hasOwnProperty(k)){o[k]=opts[k]}}
8o.error=function(xhr,status,err){if(tries<1){tries++;setTimeout(go,700);return}
9if(typeof opts.error==='function'){opts.error.call(this,xhr,status,err)}};$.ajax(o)}
10go()}
11const ReknihyLuigisRecommenders={data:null,groups:{},trackRecoView:function(group,$wrap,itemIds){if(!group||!group.recommendation_id||!group.hits||!group.hits.length){return}
12this.groups[group.recommendation_id]={group:group,itemIds:itemIds||[]};$wrap.attr('data-lb-recommendation-id',group.recommendation_id);this.pushRecoEvent('view_item_list',group.recommendation_id)},pushRecoEvent:function(eventName,recommendationId,identity){var entry=this.groups[recommendationId];if(!entry){return}
13var group=entry.group;var items=[];for(var i=0;i<group.hits.length;i++){var hit=group.hits[i];if(identity&&hit.url!==identity){continue}
14items.push({"item_id":hit.url,"item_name":hit.attributes.title,"index":i,"price":parseFloat(hit.attributes.price_amount)})}
15if(!items.length){return}
16window.dataLayer=window.dataLayer||[];window.dataLayer.push({"event":eventName,"ecommerce":{"item_list_name":"Recommendation","items":items,"filters":{"RecommenderClientId":group.recommender_client_identifier,"RecommendationId":group.recommendation_id,"Recommender":group.recommender,"Type":group.recommendation_type,"ItemIds":entry.itemIds}}})},schema:{"@context":"http://schema.org","@type":"WebSite","name":window.location.hostname,"url":document.location.origin+document.location.pathname,"potentialAction":{"target":{"@type":"EntryPoint","urlTemplate":window.location.origin+"/?lbx_recco_sts={search_term_string}"},"query-input":"name=search_term_string","@type":"SearchAction","result":{"@type":"ItemList","name":"Recommendation","itemListElement":[]}}},init:function(){var self=this;var requestData=[];const userId=this.getCookie('_lb_customer_id')??this.getCookie('_lb');$('.reknihy-luigis__recommendations').each(function(){const recommendationType=$(this).attr('data-type')??'category';const recommenderClientIdentifier=$(this).attr('data-client-identifier');if(!recommenderClientIdentifier){$(this).hide();return}
17var itemIds=$(this).attr('data-item-ids');if(itemIds){itemIds=itemIds.split(',')}else{itemIds=[]}
18itemIds.push(self.getCurrentUrl());requestData.push({"blacklisted_item_ids":[],"hit_fields":["description","images","id","regular_price","price_amount","stock_status","image_link","title","stock_quantity","stock_quantity_count","url"],"item_ids":itemIds,"recommendation_type":recommendationType,"recommender_client_identifier":recommenderClientIdentifier,"size":20,"user_id":userId})});if(requestData.length){rkAjaxRetry({type:'POST',url:edgyLuigisSettings.routeRecommendations,data:JSON.stringify(requestData),dataType:'json',contentType:'application/json',success:function(data){self.data=data;self.renderComponents()},error:function(){$('.reknihy-luigis__recommendations').has('.lb-reco-container:not(.slick-initialized)').hide()}})}
19$(document).on('wdActionAfterAddToCart',function(){var addedToCart=$('.added-to-cart');if(!addedToCart.length){return}
20addedToCart.find('.reknihy-luigis__recommendations--basket').remove();addedToCart.append('<div class="reknihy-luigis__recommendations reknihy-luigis__recommendations--basket rk-reco-skeleton"><div><h2 class="lb-reco-title" style="font-size: 18px; text-align: center;">Knihomolové doporučují</h2><div class="lb-reco-container"></div></div></div>');$(".popup-added_to_cart").css("maxWidth","750px");rkAjaxRetry({type:'POST',url:edgyLuigisSettings.routeRecommendations,data:JSON.stringify([{"blacklisted_item_ids":[],"hit_fields":["images","id","regular_price","price_amount","stock_status","image_link","title","stock_quantity","stock_quantity_count","url"],"item_ids":[self.getCurrentUrl()],"recommendation_type":"basket","recommender_client_identifier":"basket-popup","size":20,"user_id":userId}]),dataType:'json',contentType:'application/json',success:function(data){var content='<div class="reknihy-luigis__recommendations reknihy-luigis__recommendations--basket"><div><h2 class="lb-reco-title" style="font-size: 18px; text-align: center;">Knihomolové doporučují</h2><div class=\"lb-reco-container\">';if(data.length){for(var product of data[0].hits){var url=rkSafeUrl(product.url);if(!url){continue}
21url=rkEsc(url);var title=rkEsc(product.attributes.title);var image=rkResizeImg(product.attributes.images?(product.attributes.images[0].thumbnail??product.attributes.images[0].src):product.attributes.image_link);var stockClass=product.attributes.stock_quantity[0]>0?(product.attributes.stock_quantity[0]===1?'result-item__availability--orange':'result-item__availability--green'):'result-item__availability--grey';var stockLabel=product.attributes.stock_quantity[0]>0?(product.attributes.stock_quantity[0]===1?'1 ks':'Skladem'):'Vyprodáno';var stockStyle=product.attributes.stock_quantity[0]===1?' style="color:#c26a00 !important"':'';var price=product.attributes.currency==='EUR'?`${Number(product.attributes.price_amount_eur).toFixed(2).replace('.', ',')} €`:`${Number(product.attributes.price_amount).toFixed(0)} Kč`;content+=`<div class="ais-hits--item lb-result-item" data-lb-identity="${url}">
22                                    <div class="lb-result-item__link product">
23                                        <div class="lb-result-item__img-container">
24                                            <a href="${url}" class="lb-result-item__img--link" aria-label="${title}"><img src="${rkEsc(image)}" alt="${title}" class="lb-result-item__img"></a>
25                                            <div title="" class="lb-result-item__title">
26                                                <a href="${url}" class="lb-result-item__title-link">${title}</a>
27                                            </div>
28                                        </div>
29                                        <div class="lb-result-item__wrapper">
30                                            <div class="lb-result-item__availability"><span class="${stockClass}"${stockStyle}>${stockLabel}</span></div>
31                                            <div class="lb-result-item__price">
32                                                <span class="lb-result-item__price__current">${price}</span>
33                                            </div>
34                                        </div>
35                                    </div>
36                                </div>`}}
37content+='</div></div></div>';addedToCart.find('.rk-reco-skeleton').remove();if(!data.length||!data[0].hits||!data[0].hits.length){return}
38addedToCart.append(content);$('.reknihy-luigis__recommendations--basket .lb-reco-container').slick({centerMode:!1,centerPadding:"40px",autoplay:!1,arrows:!0,prevArrow:'<button type="button" data-role="none" class="lb-slick-prev" aria-label="Previous" tabindex="0" role="button"></button>',nextArrow:'<button type="button" data-role="none" class="lb-slick-next" aria-label="Next" tabindex="0" role="button"></button>',slidesToShow:5,slidesToScroll:4,responsive:[{breakpoint:1007,settings:{arrows:!0,prevArrow:'<button type="button" data-role="none" class="lb-slick-prev" aria-label="Previous" tabindex="0" role="button"></button>',nextArrow:'<button type="button" data-role="none" class="lb-slick-next" aria-label="Next" tabindex="0" role="button"></button>',centerMode:!1,centerPadding:"40px",slidesToShow:4,slidesToScroll:2}},{breakpoint:751,settings:{arrows:!0,prevArrow:'<button type="button" data-role="none" class="lb-slick-prev" aria-label="Previous" tabindex="0" role="button"></button>',nextArrow:'<button type="button" data-role="none" class="lb-slick-next" aria-label="Next" tabindex="0" role="button"></button>',centerMode:!1,centerPadding:"40px",slidesToShow:3,slidesToScroll:2}},{breakpoint:559,settings:{arrows:!0,prevArrow:'<button type="button" data-role="none" class="lb-slick-prev" aria-label="Previous" tabindex="0" role="button"></button>',nextArrow:'<button type="button" data-role="none" class="lb-slick-next" aria-label="Next" tabindex="0" role="button"></button>',centerMode:!1,centerPadding:"20px",slidesToShow:2,slidesToScroll:2}}]});$(".popup-added_to_cart").css("maxWidth","750px");$('.reknihy-luigis__recommendations--basket').show();if(data.length){self.trackRecoView(data[0],$('.reknihy-luigis__recommendations--basket'),[self.getCurrentUrl()])}},error:function(){addedToCart.find('.rk-reco-skeleton').remove()}})});$(document).on('click','.reknihy-luigis__recommendations .lb-result-item a[href]',function(){var recoId=$(this).closest('.reknihy-luigis__recommendations').attr('data-lb-recommendation-id');var identity=$(this).closest('.lb-result-item').attr('data-lb-identity');if(recoId&&identity){self.pushRecoEvent('select_item',recoId,identity)}})},renderComponents:function(){var self=this;var wraps=$('.reknihy-luigis__recommendations').toArray();(function next(i){if(i>=wraps.length){self.sendEvent(self.data);self.renderSchema();return}
39self.renderComponent(wraps[i]);setTimeout(function(){next(i+1)},0)})(0)},renderComponent:function(el){var self=this;var rendered=!1;(function(){const recommendationType=$(this).attr('data-type')??'category';const recommenderClientIdentifier=$(this).attr('data-client-identifier');for(var group of self.data){if(group.recommendation_type===recommendationType&&group.recommender_client_identifier===recommenderClientIdentifier){if(group.hits.length===0){break}
40var container=$(this).find('.lb-reco-container');container.html('');var itemsHtml='';for(var product of group.hits){var url=rkSafeUrl(product.url);if(!url){continue}
41url=rkEsc(url);var title=rkEsc(product.attributes.title);var image=rkResizeImg(product.attributes.images?(product.attributes.images[0].thumbnail??product.attributes.images[0].src):product.attributes.image_link);var stockClass=product.attributes.stock_quantity[0]>0?(product.attributes.stock_quantity[0]===1?'result-item__availability--orange':'result-item__availability--green'):'result-item__availability--grey';var stockLabel=product.attributes.stock_quantity[0]>0?(product.attributes.stock_quantity[0]===1?'1 ks':'Skladem'):'Vyprodáno';var stockStyle=product.attributes.stock_quantity[0]===1?' style="color:#c26a00 !important"':'';var price=product.attributes.currency==='EUR'?`${Number(product.attributes.price_amount_eur).toFixed(2).replace('.', ',')} €`:`${Number(product.attributes.price_amount).toFixed(0)} Kč`;
41itemsHtml+=(`<div class="ais-hits--item lb-result-item" data-lb-identity="${url}">
42                                    <div class="lb-result-item__link product">
43                                        <div class="lb-result-item__img-container">
44                                            <a href="${url}" class="lb-result-item__img--link" aria-label="${title}"><img src="${rkEsc(image)}" alt="${title}" class="lb-result-item__img" width="140" height="187"></a>
45                                            <div title="" class="lb-result-item__title">
46                                                <a href="${url}" class="lb-result-item__title-link">${title}</a>
47                                            </div>
48                                        </div>
49                                        <div class="lb-result-item__wrapper">
50                                            <div class="lb-result-item__availability"><span class="${stockClass}"${stockStyle}>${stockLabel}</span></div>
51                                            <div class="lb-result-item__price">
52                                                <span class="lb-result-item__price__current">${price}</span>
53                                            </div>
54                                        </div>
55                                    </div>
56                                </div>`);self.addHitToSchema(product)}
57container.append(itemsHtml);container.slick({centerMode:!1,centerPadding:"40px",autoplay:!1,arrows:!0,prevArrow:'<button type="button" data-role="none" class="lb-slick-prev" aria-label="Previous" tabindex="0" role="button"></button>',nextArrow:'<button type="button" data-role="none" class="lb-slick-next" aria-label="Next" tabindex="0" role="button"></button>',slidesToShow:7,slidesToScroll:6,responsive:[{breakpoint:1007,settings:{arrows:!0,prevArrow:'<button type="button" data-role="none" class="lb-slick-prev" aria-label="Previous" tabindex="0" role="button"></button>',nextArrow:'<button type="button" data-role="none" class="lb-slick-next" aria-label="Next" tabindex="0" role="button"></button>',centerMode:!1,centerPadding:"40px",slidesToShow:4,slidesToScroll:2}},{breakpoint:751,settings:{arrows:!0,prevArrow:'<button type="button" data-role="none" class="lb-slick-prev" aria-label="Previous" tabindex="0" role="button"></button>',nextArrow:'<button type="button" data-role="none" class="lb-slick-next" aria-label="Next" tabindex="0" role="button"></button>',centerMode:!1,centerPadding:"40px",slidesToShow:3,slidesToScroll:2}},{breakpoint:559,settings:{arrows:!0,prevArrow:'<button type="button" data-role="none" class="lb-slick-prev" aria-label="Previous" tabindex="0" role="button"></button>',nextArrow:'<button type="button" data-role="none" class="lb-slick-next" aria-label="Next" tabindex="0" role="button"></button>',centerMode:!1,centerPadding:"20px",slidesToShow:2,slidesToScroll:2}}]})
58$(this).show();rendered=!0;var viewItemIds=$(this).attr('data-item-ids');viewItemIds=viewItemIds?viewItemIds.split(','):[];viewItemIds.push(self.getCurrentUrl());self.trackRecoView(group,$(this),viewItemIds);break}}}).call(el);if(!rendered){$(el).hide()}},getCookie:function(name){const value=`; ${document.cookie}`;const parts=value.split(`; ${name}=`);if(parts.length===2)return parts.pop().split(';').shift()},addHitToSchema:function(hit){const today=new Date();this.schema.potentialAction.result.itemListElement.push({"@type":"ListItem","position":this.schema.potentialAction.result.itemListElement.length+1,"name":hit.attributes.title,"url":hit.url,"type":"product","image":hit.attributes.image_link,"description":hit.attributes.description,"gtin6":hit.attributes.id,"offers":{"@type":"Offer","priceCurrency":hit.attributes.currency==='EUR'?"EUR":"CZK","price":hit.attributes.currency==='EUR'?hit.attributes.price_amount_eur:hit.attributes.price_amount,"availability":(hit.attributes.stock_quantity[0]>0?"https://schema.org/InStock":"https://schema.org/OutOfStock"),"priceValidUntil":(new Date(today.setDate(today.getDate()+3))).toISOString().split('T')[0],"hasMerchantReturnPolicy":{"@type":"MerchantReturnPolicy","merchantReturnDays":1,"applicableCountry":"CZ","returnPolicyCategory":"https://schema.org/MerchantReturnFiniteReturnWindow","returnMethod":"https://schema.org/ReturnByMail","returnFees":"https://schema.org/FreeReturn"},"shippingDetails":{"@type":"OfferShippingDetails","shippingRate":{"@type":"MonetaryAmount","value":98,"currency":"CZK"}
58,"shippingDestination":{"@type":"DefinedRegion","addressCountry":"CZ"},"deliveryTime":{"@type":"ShippingDeliveryTime","handlingTime":{"@type":"QuantitativeValue","minValue":0,"maxValue":1,"unitCode":"DAY"},"transitTime":{"@type":"QuantitativeValue","minValue":1,"maxValue":3,"unitCode":"DAY"}}}}})},renderSchema:function(){if(this.schema.potentialAction.result.itemListElement.length===0){return}
59var script=document.createElement("script");script.setAttribute("type","application/ld+json");script.appendChild(document.createTextNode(JSON.stringify(this.schema)));document.body.appendChild(script)},sendEvent:function(data){return;const consent_granted=!(!document||!this.getCookie('_lb_ccc'));for(var group of data){var eventData={"type":"event","lists":{"Recommendation":{"items":[],"query":{"filters":{"RecommenderClientId":group.recommender_client_identifier,"Type":group.recommendation_type,"RecommendationId":group.recommendation_id,"Recommender":group.recommender,"RecommenderVersion":group.recommender_version,"RecommendationContext":{},"SettingsOverride":{},"_Variant":"Luigis","BlacklistedItemIds":[],"ItemIds":[],}}}},"tracker_id":"216848-251185","client_id":group.user_id,"consent_granted":consent_granted,"local_timestamp":Math.round(new Date().getTime()/1000),"app_version":"aa9e0f5","id":this.generateUID(),"url":document.location.origin+document.location.pathname,"path":document.location.pathname,"title":document.title,"referer":document.location.origin,}
60var i=1;for(var hit of group.hits){eventData.lists.Recommendation.items.push({"title":hit.attributes.title,"url":document.location.origin+hit.url,"position":i++,"price":parseInt(hit.attributes.price_amount),"type":"product"})}
61if(group.recommendation_id in this.recommendersAttributes){eventData.lists.Recommendation.query.filters.BlacklistedItemIds=this.recommendersAttributes[group.recommendation_id].blacklisted_item_ids;eventData.lists.Recommendation.query.filters.ItemIds=this.recommendersAttributes[group.recommendation_id].item_ids}
62$.ajax({type:'POST',url:'https://api.luigisbox.tech',data:JSON.stringify(eventData),dataType:'json',contentType:'application/json',success:function(data){}})}},generateUID:function(){return Math.floor((new Date).getTime()/1e3)*Math.pow(2,32)+Math.round(Math.random()*(Math.pow(2,31)-1))},getCurrentUrl:function(){try{const url=new URL(window.location.href);const filteredParams=Array.from(url.searchParams.entries()).filter(([key])=>key.startsWith('attribute_pa_')).map(([key,value])=>`${encodeURIComponent(key)}=${encodeURIComponent(value)}`).join('&');return `${url.pathname}${filteredParams ? '?' + filteredParams : ''}`}catch(e){return window.location.pathname}}}
63$(document).ready(function(){ReknihyLuigisRecommenders.init()})})

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.