PageSourceSearch

https://www.gezondleven.be/js/cookie.js

js gezondleven.be collected 2026-09-27 20:55:45 UTC 9,987 bytes, 263 lines download raw bytes

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.