(function () { "use strict"; var STORAGE_KEY = "mltv_cookie_consent"; var COOKIE_NAME = "mltv_cookie_consent"; var COOKIE_MAX_AGE = 365 * 24 * 60 * 60; function readConsent() { try { var raw = localStorage.getItem(STORAGE_KEY); if (!raw) return null; return JSON.parse(raw); } catch (e) { return null; } } function writeConsent(consent) { var payload = { necessary: true, analytics: !!consent.analytics, ts: Date.now() }; try { localStorage.setItem(STORAGE_KEY, JSON.stringify(payload)); } catch (e) { /* ignore */ } var value = payload.analytics ? "all" : "necessary"; document.cookie = COOKIE_NAME + "=" + value + "; path=/; max-age=" + COOKIE_MAX_AGE + "; SameSite=Lax" + (location.protocol === "https:" ? "; Secure" : ""); return payload; } function measurementId() { return document.body && document.body.getAttribute("data-ga-id"); } function loadGoogleAnalytics() { var id = measurementId(); if (!id || window.__mltvGaLoaded) return; window.dataLayer = window.dataLayer || []; function gtag() { window.dataLayer.push(arguments); } window.gtag = gtag; gtag("consent", "default", { analytics_storage: "denied", ad_storage: "denied", ad_user_data: "denied", ad_personalization: "denied", functionality_storage: "granted", security_storage: "granted" }); gtag("consent", "update", { analytics_storage: "granted" }); var script = document.createElement("script"); script.async = true; script.src = "https://www.googletagmanager.com/gtag/js?id=" + encodeURIComponent(id); script.onload = function () { gtag("js", new Date()); gtag("config", id, { anonymize_ip: true, allow_google_signals: false }); }; document.head.appendChild(script); window.__mltvGaLoaded = true; } function applyConsent(consent) { if (consent && consent.analytics) { loadGoogleAnalytics(); } } function hideBanner(banner) { if (!banner) return; banner.hidden = true; banner.setAttribute("aria-hidden", "true"); } function showBanner(banner) { if (!banner) return; banner.hidden = false; banner.removeAttribute("aria-hidden"); } function bindBanner(banner) { var acceptAll = banner.querySelector("[data-cookie-accept-all]"); var reject = banner.querySelector("[data-cookie-reject]"); if (acceptAll) { acceptAll.addEventListener("click", function () { var c = writeConsent({ analytics: true }); applyConsent(c); hideBanner(banner); }); } if (reject) { reject.addEventListener("click", function () { writeConsent({ analytics: false }); hideBanner(banner); }); } } function init() { var banner = document.getElementById("cookie-banner"); var consent = readConsent(); if (consent) { applyConsent(consent); hideBanner(banner); } else { showBanner(banner); } bindBanner(banner); document.querySelectorAll("[data-cookie-manage]").forEach(function (el) { el.addEventListener("click", function (e) { e.preventDefault(); showBanner(banner); }); }); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", init); } else { init(); } })();