.toLocaleLowerCase("sv-SE")
.normalize("NFD")
.replace(/[\u0300-\u036f]/g,"")
.replace(/[^a-z0-9]+/g," ")
.replace(/\s+/g," ")
.trim();
}
function heading(group){
var node=group&&group.querySelector(":scope>h3,.tv-filter-group-title,.tv-filter-title,summary,h2,h4,strong");
return fold(node&&node.textContent);
}
function optionValues(group){
var values=[];
group.querySelectorAll('input[type="checkbox"],input[type="radio"]').forEach(function(input){
var label=input.closest("label");
var span=label&&label.querySelector("span");
var value=fold((span&&span.textContent)||(label&&label.textContent)||input.value);
if(value)values.push(value);
});
group.querySelectorAll('select option:not([value=""])').forEach(function(option){
var value=fold(option.textContent||option.value);
if(value)values.push(value);
});
return values.filter(function(value,index,all){return all.indexOf(value)===index;});
}
function productTitles(layout){
var main=layout.querySelector(".tv-filter-main");
if(!main)return[];
return Array.prototype.slice.call(main.querySelectorAll(".product,[data-s-title]"))
.filter(function(card){
return !card.closest(".tv-filter-panel")&&!!card.querySelector(".product-price");
})
.map(function(card){
var titleNode=card.querySelector(".producttitle-font-size a,.product-title,.es-card-title,h2 a,h3 a,h2,h3");
return fold(card.getAttribute("data-s-title")||(titleNode&&titleNode.textContent));
})
.filter(Boolean)
.filter(function(value,index,all){return all.indexOf(value)===index;});
}
function actualBrands(group,titles){
return optionValues(group).filter(function(brand){
return titles.some(function(title){
return title===brand||title.indexOf(brand+" ")===0;
});
});
}
function hasSeveralSubcategories(layout){
var main=layout.querySelector(".tv-filter-main");
if(!main)return false;
var links=main.querySelectorAll(".es-v339-subcats a[href]");
return links.length>1;
}
function setRedundant(group,redundant){
if(!group)return;
group.classList.toggle("es-redundant-filter-v539",redundant);
group.setAttribute("aria-hidden",redundant?"true":"false");
}
function syncQuickButtons(layout,names){
layout.querySelectorAll(".es-quick-filter-v442").forEach(function(button){
var redundant=names.indexOf(fold(button.textContent))>=0;
button.classList.toggle("es-redundant-filter-v539",redundant);
button.hidden=redundant;
button.setAttribute("aria-hidden",redundant?"true":"false");
});
}
function apply(layout){
var panel=layout.querySelector(".tv-filter-panel");
if(!panel)return;
var groups=Array.prototype.slice.call(panel.querySelectorAll(".tv-filter-group"));
var brandGroup=groups.find(function(group){return heading(group)==="varumarke";});
var typeGroup=groups.find(function(group){
var name=heading(group);
return name==="produkttyp"||name==="produktkategori";
});
var titles=productTitles(layout);
var redundantBrand=false;
if(brandGroup){
var brands=actualBrands(brandGroup,titles);
redundantBrand=brands.length<=1;
setRedundant(brandGroup,redundantBrand);
}
var path=location.pathname.replace(/\/+$/,"").toLocaleLowerCase("sv-SE");
var categoryPage=/^\/produkter\//.test(path)&&!/\/alla-produkter$/.test(path);
var redundantType=false;
if(typeGroup){
redundantType=optionValues(typeGroup).length<=1||(categoryPage&&!hasSeveralSubcategories(layout));
setRedundant(typeGroup,redundantType);
}
var hiddenNames=[];
if(redundantBrand)hiddenNames.push("varumarke");
if(redundantType)hiddenNames.push("produkttyp","produktkategori");
syncQuickButtons(layout,hiddenNames);
}
function run(){
scheduled=false;
document.querySelectorAll(".tv-filter-layout").forEach(apply);
}
function schedule(){
if(scheduled)return;
scheduled=true;
window.requestAnimationFrame(run);
}
if(document.readyState==="loading"){
document.addEventListener("DOMContentLoaded",function(){run();}, {once:true});
}else{
run();
}
window.setTimeout(run,300);
}());
SVENSKT FÖRETAGSvenskt företag med svenska köpvillkor.
ORIGINALPRODUKTEROriginalprodukter från välkända varumärken.
KONKURRENSKRAFTIGA PRISERSamma originalprodukter – ofta till lägre pris.
SNABB KUNDSERVICESnabb och personlig kundservice.
laptops-sign-filter-v187.html
HTML
heading.addEventListener("click",toggle);
heading.addEventListener("keydown",function(event){
if(event.key==="Enter"||event.key===" "){event.preventDefault();toggle();}
});
});
}
if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",bind,{once:true});else bind();
new MutationObserver(bind).observe(document.documentElement,{childList:true,subtree:true});
}());
GLOBALA FILTERVAL v571 -->
.es-pack-hidden-v585{display:none!important}
(function(){
function norm(v){return String(v||"").toLocaleLowerCase("sv-SE").normalize("NFD").replace(/[\u0300-\u036f]/g,"").trim()}
function pack(title){var t=norm(title);if(t.indexOf("4-pack")>-1||t.indexOf("4 pack")>-1||t.indexOf("fyrpack")>-1)return"4-pack";if(t.indexOf("2-pack")>-1||t.indexOf("2 pack")>-1||t.indexOf("duo")>-1||t.indexOf("extra handtag")>-1||t.indexOf("2:a handtag")>-1)return"2-pack";return"1-pack"}
function bind(){
if(location.pathname.indexOf("/skonhet-halsa/eltandborste")!==0)return;
var layout=document.querySelector(".tv-filter-layout");if(!layout)return;
var heading=Array.from(layout.querySelectorAll(".tv-filter-group h3")).find(function(h){return norm(h.textContent)==="antal i paket"});if(!heading)return;
var box=heading.closest(".tv-filter-group").querySelector("[data-key=pack]");if(!box||box.dataset.esPackV589==="1")return;box.dataset.esPackV589="1";
if(!box.querySelector("[data-es-v567=\"1-pack\"]")){var one=document.createElement("button");one.type="button";one.className="tv-filter-option es-v567-option";one.setAttribute("role","checkbox");one.setAttribute("aria-checked","false");one.setAttribute("data-es-v567","1-pack");one.innerHTML="1-pack";box.insertBefore(one,box.firstChild)}
var selected=new Set();
function apply(){layout.querySelectorAll(".tv-filter-main .product[data-s-title]").forEach(function(card){card.classList.toggle("es-pack-hidden-v589",selected.size>0&&!selected.has(pack(card.getAttribute("data-s-title"))))})}
box.addEventListener("click",function(e){var button=e.target.closest("[data-es-v567]");if(!button||!box.contains(button))return;e.preventDefault();e.stopImmediatePropagation();var value=button.getAttribute("data-es-v567");if(selected.has(value))selected.delete(value);else selected.add(value);box.querySelectorAll("[data-es-v567]").forEach(function(item){item.setAttribute("aria-checked",selected.has(item.getAttribute("data-es-v567"))?"true":"false")});apply()},true);
document.documentElement.setAttribute("data-es-pack-v589","1");apply();
}
[0,250,600,1200,2400,4000].forEach(function(ms){setTimeout(bind,ms)});(new MutationObserver(bind)).observe(document.documentElement,{childList:true,subtree:true});
}());