Direkt zum Inhalt
var taal = TEKSTEN[document.documentElement.lang] || TEKSTEN.en;
function wachtOp(selector, klaar, maxPogingen) {
var n = 0;
var timer = setInterval(function () {
var el = document.querySelector(selector);
if (el) { clearInterval(timer); klaar(el); }
else if (++n > (maxPogingen || 40)) { clearInterval(timer); }
}, 500);
}
function pasAan(kop, actieveIds) {
var vakjes = document.querySelectorAll('.spice-spa-addon-layouts input[type="checkbox"]');
if (!vakjes.length) return;
var eenMetKorting = false;
vakjes.forEach(function (cb) {
var id = parseInt(cb.value, 10);
if (actieveIds.indexOf(id) !== -1) { eenMetKorting = true; return; }
var rij = cb.closest('.spice-spa-addon-product-item');
if (!rij || rij.querySelector('.ksh-geen-korting')) return;
var titelEl = rij.querySelector('.spice-spa-addon-product-link');
if (!titelEl) return;
var span = document.createElement('span');
span.className = 'ksh-geen-korting';
span.textContent = ' — ' + taal.label;
span.style.cssText = 'font-size:.85em;color:#8a8f94;font-weight:400';
titelEl.appendChild(span);
});
kop.textContent = eenMetKorting ? taal.normaal : taal.geen;
}
wachtOp('.spice-spa-addon-heading', function (kop) {
kop.textContent = taal.normaal;
fetch(COLLECTIE, { headers: { 'Accept': 'application/json' } })
.then(function (r) { return r.ok ? r.json() : Promise.reject(r.status); })
.then(function (data) {
var ids = (data.products || []).map(function (p) { return p.id; });
pasAan(kop, ids);
var main = document.querySelector('.section-main-product');
if (!main) return;
var wacht = null;
var opnieuw = function () {
clearTimeout(wacht);
wacht = setTimeout(function () { pasAan(kop, ids); }, 200);
};
new MutationObserver(opnieuw).observe(main, { childList: true, subtree: true });
document.addEventListener('change', opnieuw, true);
})
.catch(function (e) {
console.warn('[bar-addon] collectie niet opgehaald:', e);
});
});
})();