1(function(window) { 2 "use strict"; 3 const consentCookie = "__cookie_consent"; 4 var CookieMonster = function() { 5 var _init = function() { 6 var shouldRun = !_getCookie(consentCookie); 7 var cookiebanner = document.getElementById("cookiebanner"); 8 9 if (shouldRun && cookiebanner) { 10 cookiebanner.style.display = "block"; 11 document.getElementById("cookiebanner-overlay").style.display = "block"; 12 document 13 .querySelector(".js-modal-close-btn") 14 .setAttribute("disabled", "true"); 15 document.querySelector(".js-modal-close-btn").style.display = "none"; 16 trapFocus(cookiebanner); 17 cookiebanner.focus(); 18 document.getElementById("mainContentBlock").setAttribute("inert", ""); 19 } 20 21 document.body.addEventListener("click", _listener); 22 }; 23 24 // check when links get clicked 25 var _listener = function(event) { 26 var element = event.target; 27 if (!element) { 28 return; 29 } 30 31 32 if (_hasClass(element, "js-cookie-settings")) { 33 event.preventDefault(); 34 var cookiebanner = document.getElementById("cookiebanner"); 35 if (cookiebanner) { 36 cookiebanner.classList.toggle("superhidden"); 37 } 38 _renderCookieModal(); 39 document.getElementById("mainContentBlock").setAttribute("inert", ""); 40 } else if (_hasClass(element, "js-cookie-accept")) { 41 event.preventDefault(); 42 _setCookie(consentCookie, true); 43 document.getElementById("cookiebanner").classList.add("superhidden"); 44 document.getElementById("cookieModal").classList.add("superhidden"); 45 document 46 .getElementById("cookiebanner-overlay") 47 .classList.add("superhidden"); 48 document.getElementById("mainContentBlock").removeAttribute("inert"); 49 } else if (_hasClass(element, "js-modal-close")) { 50 event.preventDefault(); 51 _closeCookieModal(); 52 document 53 .getElementById("cookiebanner-overlay") 54 .classList.toggle("superhidden"); 55 } else if (_hasClass(element, "js-modal-close-btn")) { 56 event.preventDefault(); 57 _closeCookieModalWithoutSave(); 58 document 59 .getElementById("cookiebanner-overlay") 60 .classList.toggle("superhidden"); 61 } else if (_hasClass(element, "js-cookie-performance")) { 62 _updateCheckbox("performance"); 63 } else if (_hasClass(element, "js-cookie-marketing")) { 64 _updateCheckbox("marketing"); 65 } 66 }; 67 68 var _closeCookieModal = function() { 69 if ( 70 _isCookieChecked("performance") === true && 71 _isCookieChecked("marketing") === true 72 ) { 73 _setCookie(consentCookie, true); 74 } 75 if ( 76 _isCookieChecked("performance") === true && 77 _isCookieChecked("marketing") === false 78 ) { 79 _setCookie(consentCookie, 2); 80 } 81 82 if ( 83 _isCookieChecked("marketing") === true && 84 _isCookieChecked("performance") === false 85 ) { 86 _setCookie(consentCookie, 3); 87 } 88 89 if ( 90 _isCookieChecked("marketing") === false && 91 _isCookieChecked("performance") === false 92 ) { 93 _setCookie(consentCookie, false); 94 } 95 96 var cookieModal = document.getElementById("cookieModal"); 97 cookieModal.classList.toggle("superhidden"); 98 cookieModal.classList.add("superhidden"); 99 var overlay = document.getElementById("cookiebanner-overlay"); 100 overlay.classList.add("superhidden"); 101 overlay.classList.toggle("superhidden"); 102 document.getElementById("mainContentBlock").removeAttribute("inert"); 103 }; 104 105 var _closeCookieModalWithoutSave = function() { 106 var cookieModal = document.getElementById("cookieModal"); 107 cookieModal.classList.toggle("superhidden"); 108 cookieModal.classList.add("superhidden");
109 var overlay = document.getElementById("cookiebanner-overlay"); 110 overlay.classList.add("superhidden"); 111 overlay.classList.toggle("superhidden"); 112 document.getElementById("mainContentBlock").removeAttribute("inert"); 113 }; 114 115 var _updateCheckbox = function(label) { 116 var checkboxvar = document.getElementById(label); 117 118 if ( 119 (checkboxvar.defaultChecked && !checkboxvar.checked) || 120 !checkboxvar.checked 121 ) { 122 checkboxvar.checked = false; 123 checkboxvar.defaultChecked = false; 124 } else { 125 checkboxvar.checked = true; 126 } 127 }; 128 129 var _isCookieChecked = function(cookie) { 130 var cookieId = document.getElementById(cookie); 131 if (cookieId.checked === true || cookieId.defaultChecked) { 132 return true; 133 } else { 134 return false; 135 } 136 }; 137 138 var _hasClass = function(element, selector) { 139 return ( 140 element.className && 141 new RegExp("(\\s|^)" + selector + "(\\s|$)").test(element.className) 142 ); 143 }; 144 145 var _getCookie = function(key) { 146 if (!key) { 147 return null; 148 } 149 return ( 150 decodeURIComponent( 151 document.cookie.replace( 152 new RegExp( 153 "(?:(?:^|.*;)\\s*" + 154 encodeURIComponent(key).replace(/[\-\.\+\*]/g, "\\$&") + 155 "\\s*\\=\\s*([^;]*).*$)|^.*$" 156 ), 157 "$1" 158 ) 159 ) || null 160 ); 161 }; 162 163 var _setCookie = function(key, value) { 164 var date = new Date(); 165 date.setTime(date.getTime() + 365 * 24 * 60 * 60 * 1000); 166 var expires = date.toUTCString(); 167 168 document.cookie = 169 encodeURIComponent(key) + 170 "=" + 171 encodeURIComponent(value) + 172 (expires ? "; expires=" + expires : "") + 173 "; path=/"; 174 175 if (window.dataLayer) { 176 window.dataLayer.push({ event: "cookie_refresh" }); 177 } 178 }; 179 180 var _renderCookieModal = function() { 181 //check if the modal was already opened before 182 var cookieBanner = document.getElementById("cookiebanner"); 183 if (cookieBanner) { 184 cookieBanner.classList.add("superhidden"); 185 } 186 var cookieModal = document.getElementById("cookieModal"); 187 if (cookieModal) { 188 cookieModal.style.display = "block"; 189 cookieModal.classList.remove("superhidden"); 190 } 191 var cookieOverlay = document.getElementById("cookiebanner-overlay"); 192 cookieOverlay.style.display = "block"; 193 cookieOverlay.classList.remove("superhidden"); 194 195 var cookieGdpr = _getCookie(consentCookie); 196 197 if (cookieGdpr === "true") { 198 document.getElementById("performance").checked = true; 199 _updateCheckbox("performance"); 200 document.getElementById("marketing").checked = true; 201 _updateCheckbox("marketing"); 202 } 203 if (cookieGdpr === "2") { 204 document.getElementById("performance").checked = true; 205 _updateCheckbox("performance"); 206 } 207 if (cookieGdpr === "3") { 208 document.getElementById("marketing").checked = true; 209 _updateCheckbox("marketing"); 210 } 211 trapFocus(cookieModal); 212 cookieModal.focus(); 213 }; 214 215 return { 216 init: _init, 217 }; 218 }; 219 220 function trapFocus(element) { 221 var focusableEls = element.querySelectorAll( 222 'a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])' 223 ); 224 var firstFocusableEl = focusableEls[0]; 225 var lastFocusableEl = focusableEls[focusableEls.length - 1]; 226 var KEYCODE_TAB = 9; 227 228 element.addEventListener("keydown", function(e) { 229 var isTabPressed = e.key === "Tab" || e.keyCode === KEYCODE_TAB; 230 231 if (!isTabPressed) { 232 return; 233 } 234 235 if (e.shiftKey) { 236 /* shift + tab */ if (document.activeElement === firstFocusableEl) {
237 lastFocusableEl.focus(); 238 e.preventDefault(); 239 } 240 } /* tab */ else { 241 if (document.activeElement === lastFocusableEl) { 242 firstFocusableEl.focus(); 243 e.preventDefault(); 244 } 245 } 246 }); 247 } 248 249 var cookie = new CookieMonster(); 250 251 if (document.addEventListener) { 252 document.addEventListener("DOMContentLoaded", cookie.init, false); 253 } 254})(window, undefined); 255 256if (!Element.prototype.matches) { 257 Element.prototype.matches = 258 Element.prototype.webkitMatchesSelector || 259 Element.prototype.mozMatchesSelector || 260 Element.prototype.msMatchesSelector || 261 Element.prototype.oMatchesSelector || 262 null; 263}
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.