VIDEO' +
'Inhalt von ' + provider + ' blockiert
' +
'' +
'Zum Anzeigen dieses Inhalts wird Ihre Einwilligung fuer die Kategorie ' +
'' + category + ' benoetigt. ' +
'Beim Akzeptieren werden Cookies von ' + provider + ' gesetzt.
' +
'' +
'Inhalt einmalig laden ' +
'' +
category + ' akzeptieren ';
ph.querySelector('.bp-consent-load-btn').addEventListener('click', function () {
var div = document.createElement('div');
div.innerHTML = originalHTML;
while (div.firstChild) parent.insertBefore(div.firstChild, ph);
ph.remove();
});
ph.querySelector('.bp-consent-accept-btn').addEventListener('click', function () {
var c = getConsent() || {};
c[category] = true;
var date = new Date();
date.setTime(date.getTime() + 180 * 86400000);
document.cookie = COOKIE_NAME + '=' + encodeURIComponent(JSON.stringify(c)) +
';expires=' + date.toUTCString() + ';path=/;SameSite=Lax';
window.dispatchEvent(new CustomEvent('cookieConsentUpdated', { detail: c }));
// Re-scan: placeholders for THIS category get replaced now
processAll();
});
return ph;
}
function processWrapped() {
var wrapped = document.querySelectorAll('bp-consent-block, [data-bp-consent-block]');
wrapped.forEach(function (el) {
var cat = el.getAttribute('category') || el.getAttribute('data-category') || 'EXTERNAL_MEDIA';
var prov = el.getAttribute('provider') || el.getAttribute('data-provider') || 'Drittanbieter';
if (categoryGranted(cat)) {
// Already consented: unwrap the inner content
var html = el.innerHTML;
var tmp = document.createElement('div');
tmp.innerHTML = html;
var parent = el.parentNode;
while (tmp.firstChild) parent.insertBefore(tmp.firstChild, el);
el.remove();
} else {
var parent = el.parentNode;
var inner = el.innerHTML;
var ph = makePlaceholder(prov, cat, inner, parent);
parent.insertBefore(ph, el);
el.remove();
}
});
}
function processBareIframes() {
var iframes = document.querySelectorAll('iframe[src]:not([data-bp-processed])');
iframes.forEach(function (f) {
var match = classifyByHost(f.getAttribute('src') || '');
if (!match) return;
f.setAttribute('data-bp-processed', '1');
if (categoryGranted(match.category)) return;
var html = f.outerHTML;
var parent = f.parentNode;
var ph = makePlaceholder(match.provider, match.category, html, parent);
parent.replaceChild(ph, f);
});
}
function processAll() {
processWrapped();
processBareIframes();
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', processAll);
} else {
processAll();
}
// Re-process when consent updates
window.addEventListener('cookieConsentUpdated', processAll);
})();`
}