1(function(){ 2 if (window.__mrConsentInit) return; window.__mrConsentInit = true; 3 var KEY = 'mr_cookie_consent'; 4 5 function getAccepted(){ 6 try { return localStorage.getItem(KEY) === '1'; } catch (_) { return false; } 7 } 8 function setAccepted(){ 9 try { localStorage.setItem(KEY, '1'); } catch (_) {} 10 } 11 function removeNode(el){ if(el && el.parentNode){ el.parentNode.removeChild(el); } } 12 function hideBanner(){ 13 var banner = document.getElementById('cookies-policy'); 14 removeNode(banner); 15 } 16 function blockBanner(){ 17 if (document.getElementById('mr-consent-style')) return; 18 var st = document.createElement('style'); 19 st.id = 'mr-consent-style'; 20 st.textContent = '#cookies-policy{display:none!important;visibility:hidden!important}'; 21 document.head.appendChild(st); 22 } 23 function observeReinjection(){ 24 if (window.__mrConsentObs) return; 25 var obs = new MutationObserver(function(muts){ 26 for (var i=0;i<muts.length;i++){ 27 var m = muts[i]; 28 if (!m.addedNodes) continue; 29 for (var j=0;j<m.addedNodes.length;j++){ 30 var n = m.addedNodes[j]; 31 if (!n) continue; 32 if (n.id === 'cookies-policy' || (n.querySelector && n.querySelector('#cookies-policy'))){ 33 hideBanner(); 34 blockBanner(); 35 } 36 } 37 } 38 }); 39 obs.observe(document.documentElement, { childList: true, subtree: true }); 40 window.__mrConsentObs = obs; 41 } 42 43 function wireAcceptHandlers(){ 44 // Accept via form submit 45 var form = document.querySelector('form[data-cookie-action="accept.all"]'); 46 if (form && !form.__mrWired){ 47 form.addEventListener('submit', function(){ setAccepted(); setTimeout(function(){ hideBanner(); blockBanner(); }, 0); }, true); 48 form.__mrWired = true; 49 } 50 // Accept via button click 51 document.addEventListener('click', function(e){ 52 var btn = e.target && e.target.closest && e.target.closest('.cookiesBtn--accept, [data-cookie-action="accept.all"]'); 53 if (btn){ setAccepted(); hideBanner(); blockBanner(); } 54 }, true); 55 } 56 57 // On load, enforce accepted state across all pages of same origin 58 var accepted = getAccepted(); 59 if (accepted){ 60 blockBanner(); 61 hideBanner(); 62 observeReinjection(); 63 // Remove any cookie-consent loader scripts if present 64 var loaders = document.querySelectorAll('script[src*="cookie-consent/"]'); 65 loaders.forEach(function(s){ if(s.parentNode) s.parentNode.removeChild(s); }); 66 } 67 68 if (document.readyState === 'loading'){ 69 document.addEventListener('DOMContentLoaded', function(){ wireAcceptHandlers(); if (getAccepted()){ blockBanner(); hideBanner(); observeReinjection(); } }); 70 } else { 71 wireAcceptHandlers(); if (getAccepted()){ blockBanner(); hideBanner(); observeReinjection(); } 72 } 73})(); 74 75
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.