PageSourceSearch

https://www.selexion.be/javascript/min/core/elements/zoovu.min.js?…/+PBF9clRMOHJb8VGxIn1RUrnOXcghNwlAM=

js selexion.be collected 2026-10-05 05:45:21 UTC 21,126 bytes, 144 lines download raw bytes

1function wrapZoovuResults(){let e=document.querySelector("ul.z-search-list");if(e){if(!e.parentElement.classList.contains("overview-wrap")){var t=document.createElement("div");t.className="overview-wrap margin three product search with-stock",e.parentElement.insertBefore(t,e),t.appendChild(e)}e.classList.add("overview")}let r=document.querySelector(".z-search-layer__main");return r&&!r.classList.contains("pageright")&&r.classList.add("pageright"),e}function addClassesToListItems(){let e=document.querySelector("ul.z-search-list");e&&e.querySelectorAll("li.z-search-suggests:not(.overview-item)").forEach(t=>{t.classList.add("overview-item","product-card","zoovu-item")})}function getCompareHtml(){return!blnZoovuCategory||blnZoovuCompareCategory?`<div class="zoovu-compare">
2                   <input type="checkbox" id="add-to-compare-{{attributes.sxIdentifierAttribute[0]}}" class="z-search-actions__compare-checkbox" />
3                   <label for="add-to-compare-{{attributes.sxIdentifierAttribute[0]}}" class="z-search-actions__compare">${strLabelCardCompare}</label>
4                </div>`:`<div class="add-to-compare">
5                   <input type="checkbox" name="add-to-compare" value="{{attributes.sxIdentifierAttribute[0]}}" id="add-to-compare-{{attributes.sxIdentifierAttribute[0]}}" />
6                   <label for="add-to-compare-{{attributes.sxIdentifierAttribute[0]}}">${strLabelCardCompare}</label>
7                </div>`}function bindZoovuPrijsVeldBlur(){if(!(typeof blnExpertHeader=="undefined"||!blnExpertHeader)){var e=null;document.addEventListener("focusin",function(t){t.target&&t.target.classList&&t.target.classList.contains("z-search-slider__input")&&(e=t.target.value)}),document.addEventListener("focusout",function(t){var r=t.target;!r||!r.classList||!r.classList.contains("z-search-slider__input")||e===null||r.value===e||(e=null,r.dispatchEvent(new KeyboardEvent("keydown",{key:"Enter",code:"Enter",bubbles:!0})))})}}bindZoovuPrijsVeldBlur();function fillZoovuPickupCounts(){var e=Array.prototype.slice.call(document.querySelectorAll("a.card-stock-link[data-articleno]"));function t(){typeof RefreshExpertCardPickup=="function"&&RefreshExpertCardPickup()}if(!e.length||typeof strLabelCardStockPickupStores=="undefined"||!strLabelCardStockPickupStores){t();return}var r=[];e.forEach(function(s){var i=parseInt(s.getAttribute("data-articleno"),10);i>0&&r.indexOf(i)===-1&&r.push(i)}),$.post(strAjaxPath+"store-stock-count.php",{arrArticleNos:r},function(s){s&&s.blnOk&&s.arrCounts&&e.forEach(function(i){var o=parseInt(s.arrCounts[i.getAttribute("data-articleno")],10);if(o>0){var l=(o===1?strLabelCardStockPickupStore:strLabelCardStockPickupStores).replace("[COUNT]",o).replace("[LINKSTART]",'<span class="pickup-stores">').replace("[LINKEND]","</span>");i.innerHTML=" "+l}}),t()},"json").fail(t)}function createStoreStockElement(){if(!document.getElementById("store-stock")){var e=document.createElement("div");e.id="store-stock",e.className="no-display";var t=document.createElement("div");t.className="stock-popup-reload-wrapper",e.appendChild(t);let r=document.querySelector("ul.z-search-list");r&&r.parentElement?r.insertAdjacentElement("afterend",e):document.body.appendChild(e)}}function reorganizeZoovuCategoryLayout(){let e=document.getElementById("zoovu-category-info"),t=document.querySelector(".z-search-layer__main");e&&t&&(t.insertBefore(e,t.firstChild),e.style.display="",typeof ToggleText=="function"&&ToggleText());let r=e?e.querySelector(".linked-txt"):null;if(r){let s=document.querySelector(".z-search-frame--results");s&&(r.remove(),s.insertAdjacentElement("afterend",r))}}function injectTrustbars(){if(typeof strTrustbarHtml=="undefined"||!strTrustbarHtml)return;let e=document.querySelector("ul.z-search-list");if(!e)return;e.querySelectorAll(".trustbar-zoovu").forEach(s=>s.remove());let t=e.querySelectorAll("li.z-search-suggests:not(.z-search-suggests--hidden)");if(t.length<=3)return;let r=[];for(let s=2;s<t.length;s+=6)s<t.length-1&&r.push(s);r.reverse().forEach(s=>{t[s]&&t[s].insertAdjacentHTML("afterend",strTrustbarHtml)})}var objZoovuGuidedTitleObserver=null;function injectZoovuGuidedTitle(){!blnExpertHeader||typeof strLabelCardGuideTitle=="undefined"||strLabelCardGuideTitle===""||document.querySelectorAll("span.z-search-guided-questions__question").forEach(function(e){if(!e.querySelector("span.z-search-guided-questions__eyebrow")){var t=document.createElement("span");t.className="z-search-guided-questions__eyebrow",t.innerHTML=strLabelCardGuideTitle,e.insertBefore(t,e.firstChild)}})}function watchZoovuGuidedTitle(){if(injectZoovuGuidedTitle(),!(objZoovuGuidedTitleObserver||!blnExpertHeader)){var e=document.querySelector(strZoovuContentBlock)||document.body;e&&(objZoovuGuidedTitleObserver=new MutationObserver(injectZoovuGuidedTitle),objZoovuGuidedTitleObserver.observe(e,{childList:!0,subtree:!0}))}}function shouldShowZoovuCompare(e){if(typeof arrAllowedCompareCategories=="undefined"||!Array.isArray(arrAllowedCompareCategories))return!1;let t=[];e&&Array.isArray(e)&&e.forEach(function(r){r.conceptIdName==="CATEGORY"&&r.value&&t.push(r.value)});for(let r=0;r<t.length;r++)if(arrAllowedCompareCategories.indexOf(t[r])!==-1)return!0;return!1}function removeZoovuCompareFromProduct(e){let t=e.querySelector(".zoovu-compare");t&&(t.innerHTML="")}function buildResultTemplate(){var e=typeof blnExpertHeader!="undefined"&&blnExpertHeader,t=`
8           {{#attributes.FRONTENDLABEL[0]}}
9              <span class="label" {{#attributes.LABELCOLORCODE[0]}} style="background: #{{attributes.LABELCOLORCODE[0]}};" {{/attributes.LABELCOLORCODE[0]}}>
10                 {{attributes.FRONTENDLABEL[0]}}
11              </span>
12           {{/attributes.FRONTENDLABEL[0]}}`;return`
13        <div class="energylabel">
14           <span {{#attributes.ENERGYLABELIMAGE[0]}}href="{{attributes.ENERGYLABELIMAGE[0]}}" data-fancybox data-fancybox-class="energylabel-popup" {{/attributes.ENERGYLABELIMAGE[0]}} class="energyclass">
15              {{#attributes.ENERGYCLASSIMAGE[0]}}
16                 <img src="{{attributes.ENERGYCLASSIMAGE[0]}}" alt="" title="" class="energyclass"/>
17              {{/attributes.ENERGYCLASSIMAGE[0]}}
18           </span>
19        </div>
20
21        <a href="{{link}}" title="{{attributes.ALTNAME[0]}}">
22           <figure>
23              <img src="{{image}}" class="lazyload" data-src="{{image}}" alt="{{attributes.IMAGEALT[0]}}" title="{{attributes.IMAGEDESCRIPTION[0]}}">
24           </figure>
25           ${e?"":t}
26        </a>
27
28        ${e?`
29        {{#attributes.FRONTENDLABEL[0]}}
30           <div class="label-top">
31              <span class="label" {{#attributes.LABELCOLORCODE[0]}} style="background: #{{attributes.LABELCOLORCODE[0]}};" {{/attributes.LABELCOLORCODE[0]}}>
32                 {{attributes.FRONTENDLABEL[0]}}
33              </span>
34           </div>
35        {{/attributes.FRONTENDLABEL[0]}}`:""}
36
37        <div class="wrap">
38           <a href="{{link}}" class="product-data" title="{{attributes.ALTNAME[0]}}">
39              <b class="title">
40                 {{name}}
41              </b>
42                          
43              <div data-bv-show="inline_rating" data-bv-seo="false" data-bv-product-id="{{dataPointHash.sxidentifierattribute[0]}}"></div>
44              {{#attributes.TOPSPECS[0]}}
45                  <ul class="topspecs" data-topspecs="{{attributes.TOPSPECS[0]}}"></ul>
46              {{/attributes.TOPSPECS[0]}}
47           </a>
48           <div class="add-to-cart-wrap">
49              <div class="price-small">
50                 <div class="stock-wrapper">
51                    <div class="dealer-stock stock">
52                       <i class="fa-light fa-shop fa-2x d-none-mobile"></i>
53                       <div>
54                          <span>
55                             <i class="fa-light fa-shop d-none-desktop"></i>
56                             <a data-popup="bekijk-winkelvoorraad" class="show-store-stock card-stock-link" data-articleno="{{attributes.sxIdentifierAttribute[0]}}" title="${strLabelViewDealerStock}">
57                                ${strLabelViewDealerStock}
58                            </a>
59                          </span>
60                       </div>
61                    </div>
62                    <div class="central-stock stock">
63                       <i class="fa-light fa-truck-fast fa-2x d-none-mobile"></i>
64                       <div>
65                          <span>
66                             <i class="fa-light fa-truck-fast d-none-desktop"></i>
67                          </span>
68                          <strong class="{{attributes.STOCKLABELCLASS[0]}}">
69                             {{attributes.STOCKLABEL[0]}}
70                          </strong>
71                       </div>
72                    </div>
73                 </div>
74                 <div class="price-wrapper {{attributes.pricewrappercashbackclass[0]}}">
75                    <div class="price-flex">
76                       <b class="price {{attributes.PRICEWRAPPERCASHBACKCLASS[0]}}">
77                          <span class="euro">{{attributes.PRICE[0]}}</span>
78                       </b>
79
80                       {{#attributes.PRICEWITHCASHBACK[0]}}
81                          <span class="after-cashback">
82                             <small>
83                                {{#attributes.AFTERCASHBACKLABEL[0]}}
84                                   {{attributes.AFTERCASHBACKLABEL[0]}}
85                                {{/attributes.AFTERCASHBACKLABEL[0]}}
86                             </small>
87                             <span class="euro">{{attributes.PRICEWITHCASHBACK[0]}}</span>
88                          </span>
89                       {{/attributes.PRICEWITHCASHBACK[0]}}
90                    </div>
91
92                    {{#attributes.ADVICEPRICE[0]}}
93                       <span class="oldprice">
94                          ${strLabelAdviceprice}
95                          <span class="euro">{{attributes.ADVICEPRICE[0]}}</span>
96                          <span class="tooltip" data-txt="${strLabelAdvicePriceTooltip}">
97                             <i class="fa-regular fa-circle-question"></i>
98                          </span>
99                       </span>
100                    {{/attributes.ADVICEPRICE[0]}}
101
102                    {{#attributes.SALEPRICE[0]}}
103                       <span class="oldprice striped">
104                          <span class="euro">{{attributes.SALEPRICE[0]}}</span>
105                          <span class="tooltip" data-txt="${strLabelStripedPriceTooltip}">
106                             <i class="fa-regular fa-circle-question"></i>
107                          </span>
108                       </span>
109                    {{/attributes.SALEPRICE[0]}}
110                 </div>
111              </div>
112              <form action="#" method="post" class="form-add-to-cart small">
113                 <input type="hidden" name="hdnQuantity" value="1">
114                 <input type="hidden" name="hdnArticleNo" value="{{attributes.sxIdentifierAttribute[0]}}">
115                 <input type="hidden" name="hdnPriceNo" value="1">
116                 <input type="hidden" name="hdnHrefPopupProductAdded" value="{{attributes.PRODUCTADDEDURL[0]}}">
117                 <span title="
118{{#attributes.PREORDER[0]}}${strLabelPreOrder}{{/attributes.PREORDER[0]}} {{!#attributes.PREORDER[0]}}${strLabelInCart}{{/attributes.PREORDER[0]}}"
119                    class="in-cart-mini">
120                    {{#attributes.PREORDER[0]}}
121                        <span>${strLabelPreOrder}</span>
122                    {{/attributes.PREORDER[0]}}
123                    {{!#attributes.PREORDER[0]}}
124                        <span>${strLabelInCart}</span>
125                    {{/attributes.PREORDER[0]}}
126                    <i class="fa-regular fa-cart-shopping fa-2x"></i>
127                 </span>
128              </form>
129           </div>
130           <div class="zoovu-actions">
131                `+getCompareHtml()+`
132                <div class="zoovu-zoe-chat">
133                    <button class="z-search-actions__action--chat btn btn-zoe-chat" title="${strLabelAskQuestion}">
134                        <!-- sparkles en geen tekstballon: het ontwerp zet bij deze knop het
135                             icoon stars-01 (node 1140:39688). Het is de ZOE-chat, en die
136                             wordt in het ontwerp als slimme hulp gepresenteerd, niet als
137                             een gesprek. -->
138                        <i class="fa-regular fa-sparkles"></i>
139                        <span>${strLabelAskQuestion}</span>
140                    </button>
141                </div>
142           </div>
143        </div>
144        `}function buildZoovuSuggestConfig(){return blnExpertHeader?{searchHistoryLabel:strLabelRecentSearches,source:{emptyState:{layoutType:1,content:[{type:"searchHistory",categoryStyle:"titles",style:"compact"},{type:"popularQueries",categoryStyle:"titles",style:"compact"}]},queryBased:{layoutType:1,content:[{type:"resultGroup",categoryStyle:"titles",style:"compact"}]}}}:{}}var arrZoovuSuggestPrices={};function rememberZoovuSuggestPrices(e){if(!(!e||!e.identifier||!Array.isArray(e.dataPoints))){var t={};e.dataPoints.forEach(function(r){r&&r.conceptIdName&&(t[r.conceptIdName]=r)}),arrZoovuSuggestPrices[e.identifier]=t}}function isZoovuSuggestPromo(e){var t=e.PRICECLASS;return!!(t&&t.value&&String(t.value).trim())}function formatZoovuSuggestPrice(e){return!e||!e.value?"":String(e.value).replace(/[€$£]/g,"").trim()}function formatZoovuCashback(e,t){if(!e||!t||typeof e.parsedValue!="number"||typeof t.parsedValue!="number")return"";var r=Math.round(e.parsedValue-t.parsedValue);if(r<=0)return"";var s=t.unit||e.unit||"",i=String(r).replace(/\B(?=(\d{3})+(?!\d))/g," ");return(s?s+" ":"")+i}function injectZoovuSuggestPrices(e){e.querySelectorAll(".unibox__selectable--has-image[data-product-identifier]").forEach(function(t){var r=arrZoovuSuggestPrices[t.getAttribute("data-product-identifier")];if(r){var s=t.querySelector(".unibox__content-container");if(s){if(!s.querySelector(".expert-suggest-price")){var i=formatZoovuSuggestPrice(r.PRICE);if(i){var o=isZoovuSuggestPromo(r)?formatZoovuSuggestPrice(r.ADVICEPRICE):"",l=document.createElement("span");if(l.className="expert-suggest-price",o){var a=document.createElement("s");a.textContent=o,l.appendChild(a)}var n=document.createElement("b");
144o&&(n.className="promo"),n.textContent=i,l.appendChild(n),s.appendChild(l)}}if(!t.querySelector(".expert-suggest-badge")){var u=formatZoovuCashback(r.PRICE,r.PRICEWITHCASHBACK);if(u){var c=document.createElement("span");c.className="expert-suggest-badge",c.textContent=u+" "+strLabelCashback,t.appendChild(c)}}}}})}function decorateZoovuSuggestBox(){let e=document.querySelector("#unibox-suggest-box");if(!e)return;injectZoovuSuggestPrices(e);let t=e.querySelector(".unibox__cluster--type-searchHistory");if(t&&t.children.length&&!t.querySelector(".unibox__suggest-heading")){let a=document.createElement("h2");a.className="unibox__suggest-heading",a.setAttribute("role","none"),a.textContent=strLabelRecentSearches,t.insertBefore(a,t.firstChild)}let r=e.querySelector(".unibox__cluster--type-popularQueries .unibox__suggest-heading");r&&(r.textContent=strLabelPopularSearches);let s=e.querySelector(".unibox__cluster--type-resultGroup");if(!s)return;let i=[];[].forEach.call(s.children,function(a){(a.classList.contains("unibox__suggest-heading")||!i.length)&&i.push({heading:null,items:[]}),a.classList.contains("unibox__suggest-heading")?i[i.length-1].heading=a:i[i.length-1].items.push(a)});let o=i.filter(function(a){return a.items.some(function(n){return n.classList.contains("unibox__selectable--has-image")})}),l=i.filter(function(a){return o.indexOf(a)===-1});l.forEach(function(a){a.heading&&(a.heading.remove(),a.heading=null)}),o.forEach(function(a){a.heading&&(a.heading.textContent=strLabelRecommendedProducts)}),l.concat(o).forEach(function(a){a.heading&&s.appendChild(a.heading),a.items.forEach(function(n){s.appendChild(n)})})}function markZoovuSuggestSections(){let e=document.querySelector("#unibox-suggest-box");if(!e)return;let t=[];e.querySelectorAll(".unibox__cluster").forEach(function(r){let s=!1;[].forEach.call(r.children,function(i){i.classList.remove("expert-suggest-section"),i.classList.contains("unibox__suggest-heading")?(t.push(i),s=!0):s||(t.push(i),s=!0)})}),t.slice(1).forEach(function(r){r.classList.add("expert-suggest-section")})}window.zoovuSearchConfig={style:{accentColor:strAccentColor},searchBox:{selector:"#txtSearch",searchButton:".search>button",placeholder:strLabelYourKeyword},suggestions:buildZoovuSuggestConfig(),results:{searchQueryParamName:"text",showPageSizeSelector:!0,pageSizeOptions:[24,48,96],pageSizeLabel:"#COUNT# "+strLabelPerPage,moreResultsPagingSize:48,categorySearch:{showCategoryFilter:!0},resultTemplate:{template:buildResultTemplate()},sortingParamName:"zSorting",showRelatedQueries:!1,integrationType:"embed",embedConfig:{contentBlock:strZoovuContentBlock,url:strZoovuSearchPageUrl},showGuidedQuestions:!0,guidedQuestionShowBack:!0,guidedQuestionBackLabel:strLabelBack,guidedQuestionSkipLabel:strLabelCardGuideSkip,guidedQuestionImageSize:"icon",guidedQuestionPosition:"top"},comparison:{enabled:!0,buttonLabel:strLabelAddToCompare,tooManyProductsLabel:strLabelOnlyCompareFirst4Products,zoeApiKey:strZoeApiKey,zoeLocale:strLang+"-BE",zoeRegion:"eu"},zoe:{showChat:!0,locale:strLang+"-BE",region:"eu",chatLabel:strLabelChat,title:strLabelChatAbout+" #PRODUCT_NAME#",apiKey:strZoeApiKey},queryTerm:{highlight:!1},tracking:{providers:["GA"]},layout:{desktop:{type:"grid",gridColsXl:3},navigation:{showAllResultsTab:!1,flatTabs:!0}},filters:{enabled:!0,highlightPopularFilters:!1,label:strLabelCardFilterAndSort,toggleButtonLabel:strLabelCardFilterAndSort,sliderMinUnitLabel:strLabelPriceFrom,sliderMaxUnitLabel:strLabelPriceTill,multiSelectShowMoreLabel:strLabelCardFilterMoreCount.replace("[COUNT]","#COUNT#"),multiSelectShowLessLabel:strLabelCardFilterLess,deleteAllLabel:strLabelCardClearFilters},language:strLang,siteId:intZoovuSiteId,ecom:!0,zoovuAccountId:"250000860",zoovuEnvironment:"tiger",callbacks:{suggestPostRender:function(){blnExpertHeader&&(decorateZoovuSuggestBox(),markZoovuSuggestSections())},suggestLine:function(e,t,r,s){blnExpertHeader&&rememberZoovuSuggestPrices(s)},postSearch:function(e,t,r,s){return wrapZoovuResults(),addClassesToListItems(),createStoreStockElement(),fillZoovuPickupCounts(),blnZoovuCategory&&(reorganizeZoovuCategoryLayout(),injectTrustbars()),watchZoovuGuidedTitle(),e},resultLine:function(e,t,r,s){t.querySelectorAll("span.euro").forEach(a=>{a.textContent=a.textContent.trim().replace(/^(.+?)\s*€\s*$/,"\u20AC $1")}),blnExpertHeader&&t.querySelectorAll("b.price span.euro").forEach(a=>{a.textContent=a.textContent.replace(/^\s*€\s*/,"").trim()}),blnExpertHeader&&t.querySelectorAll("b.price span.euro").forEach(a=>{let n=a.textContent.trim();if(n&&n.indexOf(",")===-1&&!a.querySelector(".price-dec")){let u=document.createElement("span");u.className="price-dec",u.textContent=",-",a.appendChild(u)}});let i=t.querySelector("ul.topspecs[data-topspecs]");if(i){let a=i.getAttribute("data-topspecs");a&&(i.innerHTML=a.split(";").map(function(n){let u=n.split(":"),c=u[0]||"",d=u.slice(1).join(":")||"";return'<li><span class="spec-name">'+c+'</span><span class="spec-sep">
144 : </span><span class="spec-value">'+d+"</span></li>"}).join(""))}let o=t.querySelector(".label-top");if(o&&/cashback/i.test(o.textContent)){let a=t.querySelector(".price-wrapper .price-flex");if(a){let n=a.querySelector("b.price"),u=n?n.nextSibling:a.firstChild;for(;o.firstChild;)a.insertBefore(o.firstChild,u);o.remove()}}let l=t.querySelector(".central-stock strong");if(blnExpertHeader&&l&&!t.querySelector(".central-stock span.stock-state")){let a=l.textContent.trim(),n=a.indexOf(". "),u="";if(n>0?(u=a.slice(0,n),a=a.slice(n+2)):typeof strLabelCardStockInStock!="undefined"&&(u=l.classList.contains("positive")?strLabelCardStockInStock:strLabelCardStockNotInStock),u){let c=document.createElement("span");c.className="stock-state "+(l.className||""),c.textContent=u,l.textContent=a,l.parentNode.insertBefore(c,l)}}return!blnZoovuCategory&&!shouldShowZoovuCompare(e.dataPoints)&&removeZoovuCompareFromProduct(t),e},moreResults:function(e,t,r,s){return addClassesToListItems(),blnZoovuCategory&&setTimeout(function(){injectTrustbars()},100),e},noResultsPageRendered:function(e,t,r,s){return wrapZoovuResults(),addClassesToListItems(),createStoreStockElement(),watchZoovuGuidedTitle(),e}}},blnExpertHeader&&(typeof strLabelCardMoreProducts!="undefined"&&strLabelCardMoreProducts!==""&&(window.zoovuSearchConfig.results.moreResultsButton=strLabelCardMoreProducts),typeof strLabelCardProductsShown!="undefined"&&strLabelCardProductsShown!==""&&(window.zoovuSearchConfig.results.pageDescriptionLabel=strLabelCardProductsShown.replace("[COUNT]","#COUNT#").replace("[TOTAL]","#TOTAL#")),window.zoovuSearchConfig.results.showCopyLinkToPositionButton=!1),["results","filters"].forEach(function(e){var t=window.zoovuSearchConfig[e];t&&Object.keys(t).forEach(function(r){/Label$/.test(r)&&t[r]===""&&delete t[r]})});

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.