PageSourceSearch

https://www.gampern.at/system/statV.1789655742/JavaScript/cookie.defer.js

js gampern.at collected 2026-10-02 20:13:13 UTC 37,464 bytes, 856 lines download raw bytes

1
2//Cookie Opt-In Einstellungen
3var optInCookieName = "ris_cookie_setting";
4var cookieStringForAllAccepted = "-1";
5var linkToHandler = envurl + "system/web/cookie.ashx?sprachid=" + rissprachid;
6
7//Initialisierungs Funktionen
8function isRunningInIframe() {
9    return window.self !== window.top;
10}
11function initCookieOptInIfCookieNotExists() {
12    if (!doesCookieExist(optInCookieName)) {
13        initCookieOptIn();
14        setTimeout(function () {
15            CookieFocusTrap();
16        }, 1000);
17    }
18}
19
20function initCookieOptIn() {
21    fetch(linkToHandler)
22        .then(response => response.json())
23        .then(data => {
24            buildModal(data);
25        })
26        .catch(error => console.error('Error fetching cookie data:', error));
27}
28
29//Build Funktionen
30function buildModal(dataJson) {
31    var textJson = dataJson.texts[0];
32    var linkJson = dataJson.links[0];
33    var cookieJson = dataJson.cookies[0];
34
35    var cookieOverlay = document.createElement("div");
36    cookieOverlay.className = "bemCookieOverlay defaultfontsize";
37
38    var cookieOverlayBackdrop = document.createElement("div");
39    cookieOverlayBackdrop.className = "bemCookieOverlay__backdrop";
40
41    var cookieOverlayOuterWrapper = document.createElement("div");
42    cookieOverlayOuterWrapper.className = "bemCookieOverlay__boxOuterWrapper";
43
44    var cookieOverlayInnerWrapper = document.createElement("div");
45    cookieOverlayInnerWrapper.className = "bemCookieOverlay__boxInnerWrapper";
46
47    var boxView = buildBoxView(textJson, linkJson, cookieJson);
48    var prefView = buildPreferenceView(textJson, linkJson, cookieJson);
49
50    cookieOverlayInnerWrapper.appendChild(boxView);
51    cookieOverlayInnerWrapper.appendChild(prefView);
52    cookieOverlayOuterWrapper.appendChild(cookieOverlayInnerWrapper);
53    cookieOverlayBackdrop.appendChild(cookieOverlayOuterWrapper);
54    cookieOverlay.appendChild(cookieOverlayBackdrop);
55
56    document.body.appendChild(cookieOverlay);
57    document.body.classList.add("bemCookieOverlay--activePopup");
58
59    document.addEventListener("keydown", function (e) {
60        if (e.keyCode == 27) {
61            if (document.body.classList.contains("bemCookieOverlay--activePopup")) {
62                CookieFocusTrap(true);
63                document.querySelector(".bemCookieOverlay").remove();
64                document.body.classList.remove("bemCookieOverlay--activePopup");
65            }
66        }
67    });
68
69    initAccessibilityImprovements(boxView, prefView);
70    initCookieSettings(boxView, prefView, optInCookieName);
71}
72
73function buildBoxView(textJson, linkJson, cookieJson) {
74    var boxView = document.createElement("div");
75    boxView.className = "bemCookieOverlay__cookieBox";
76
77    var boxViewContainer = document.createElement("div");
78    boxViewContainer.className = "bemCookieOverlay__container bemCookieOverlay__container--visible";
79
80    var boxViewContainerRow = document.createElement("div");
81    boxViewContainerRow.className = "bemCookieOverlay__row";
82
83    var boxViewContainerCol = document.createElement("div");
84    boxViewContainerCol.className = "bemCookieOverlay__col bemCookieOverlay__col--100";
85
86    var boxViewHeading = document.createElement("div");
87    boxViewHeading.className = "bemCookieOverlay__heading";
88    var heading = document.createElement("h3");
89    heading.textContent = textJson.title;
90    boxViewHeading.appendChild(heading);
91
92    var boxViewDescription = document.createElement("p");
93    boxViewDescription.className = "bemCookieOverlay__description";
94    boxViewDescription.textContent = textJson.desc_short;
95
96    var boxViewCookieSelection = buildCookieGroupSelection(textJson, cookieJson);
97
98    var boxViewButtons = document.createElement("ul");
99    boxViewButtons.className = "bemCookieOverlay__cookieAcceptance bemCookieOverlay__cookieAcceptance--centered";
100
101    var boxViewButtonsListElementAccept = document.createElement("li");
102    boxViewButtonsListElementAccept.className = "bemCookieOverlay__cookieAcceptanceListItem";
103    var boxViewButtonsListElementSave = document.createElement("li");
104    boxViewButtonsListElementSave.className = "bemCookieOverlay__btn--saveListItem";
105
106    var acceptAllButton = document.createElement("button");
107    acceptAllButton.className = "bemCookieOverlay__btn bemCookieOverlay__btn--100 bemCookieOverlay__btn--acceptAll";
108    acceptAllButton.textContent = textJson.btn_acceptAll;
109    acceptAllButton.addEventListener("click", function () { saveCookieSettings(this, true); });
110
111    var saveButton = document.createElement("button");
112    saveButton.className = "bemCookieOverlay__btn bemCookieOverlay__btn--100 bemCookieOverlay__btn--save";
113    saveButton.textContent = textJson.btn_save;
114    saveButton.addEventListener("click", function () { saveCookieSettings(this, false); });
115
116    boxViewButtons.appendChild(boxViewButtonsListElementAccept).appendChild(acceptAllButton);
117    boxViewButtons.appendChild(boxViewButtonsListElementSave).appendChild(saveButton);
118
119    var boxViewCookieDetailLink = document.createElement("p");
120    boxViewCookieDetailLink.className = "bemCookieOverlay__cookieManage";
121
122    var manageLink = document.createElement("button");
123    manageLink.className = "bemCookieOverlay__cookieManageLink";
124    manageLink.textContent = textJson.individual_cookie_settings;
125    manageLink.addEventListener("click", function () {
126        var prefView = document.querySelector(".bemCookieOverlay__cookiePreference");
127        if (prefView) {
128            prefView.hidden = false;
129        }
130        switchCookieBoxView();  
131    });
132
133    boxViewCookieDetailLink.appendChild(manageLink);
134
135    var boxViewLegals = document.createElement("p");
136    boxViewLegals.className = "bemCookieOverlay__cookieLegals";
137
138    var privacyStatementLink = document.createElement("a");
139    privacyStatementLink.className = "bemCookieOverlay__cookiePrivacyStatement";
140    privacyStatementLink.href = linkJson.privacy_statement;
141    privacyStatementLink.textContent = textJson.privacy_statement;
142
143    var separator = document.createElement("span");
144    separator.setAttribute('aria-hidden', 'true')
145    separator.className = "bemCookieOverlay__seperator";
146
147    var imprintLink = document.createElement("a");
148    imprintLink.className = "bemCookieOverlay__cookieImprint";
149    imprintLink.href = linkJson.imprint;
150    imprintLink.textContent = textJson.imprint;
151
152    boxViewLegals.appendChild(privacyStatementLink);
153    boxViewLegals.appendChild(separator);
154    boxViewLegals.appendChild(imprintLink);
155
156    boxViewContainerCol.appendChild(boxViewHeading);
157    boxViewContainerCol.appendChild(boxViewDescription);
158    boxViewContainerCol.appendChild(boxViewCookieSelection);
159    boxViewContainerCol.appendChild(boxViewButtons);
160    boxViewContainerCol.appendChild(boxViewCookieDetailLink);
161    boxViewContainerCol.appendChild(boxViewLegals);
162
163    boxViewContainerRow.appendChild(boxViewContainerCol);
164    boxViewContainer.appendChild(boxViewContainerRow);
165    boxView.appendChild(boxViewContainer);
166
167    return boxView;
168}
169
170function buildCookieGroupSelection(textJson, cookieJson) {
171    var ul = document.createElement("ul");
172    ul.className = "bemCookieOverlay__cookieSelection";
173
174    cookieJson.groups.forEach(function (cookieGroupJson) {
175        ul.appendChild(buildCookieGroupSelectionItem(textJson, cookieGroupJson));
176    });
177
178    return ul;
179}
180
181function buildCookieGroupSelectionItem(textJson, cookieJson) {
182    var item = document.createElement("li");
183    item.className = "bemCookieOverlay__cookieSelectionItem";
184
185    var itemLabel = document.createElement("label");
186    itemLabel.className = "bemCookieOverlay__cookieSelectionItemCheckbox";
187    itemLabel.setAttribute("for", "box_" + cookieJson.id);
188    itemLabel.textContent = cookieJson.name;
189
190    var itemInput = document.createElement("input");
191    itemInput.className = "bemCookieOverlay__cookieSelectionItemCheckboxInput";
192    itemInput.id = "box_" + cookieJson.id;
193    itemInput.value = cookieJson.id;
194    itemInput.type = "checkbox";
195
196    if (cookieJson.required) {
197        itemInput.checked = true;
198        itemInput.disabled = true;
199    }
200
201    var itemIndicator = document.createElement("div");
202    itemIndicator.className = "bemCookieOverlay__cookieSelectionItemCheckboxIndicator";
203
204    itemLabel.appendChild(itemInput);
205    itemLabel.appendChild(itemIndicator);
206    item.appendChild(itemLabel);
207
208    return item;
209}
210
211function buildPreferenceView(textJson, linkJson, cookieJson) {
212    var prefView = document.createElement("div");
213    prefView.className = "bemCookieOverlay__cookiePreference";
214    prefView.setAttribute("hidden", "");
215
216    var prefViewContainer = document.createElement("div");
217    prefViewContainer.className = "bemCookieOverlay__container bemCookieOverlay__container--invisible";
218    prefViewContainer.tabIndex = -1;
219
220    var prefViewContainerRow = document.createElement("div");
221    prefViewContainerRow.className = "bemCookieOverlay__row bemCookieOverlay__row--noGutters";
222
223    var prefViewContainerCol = document.createElement("div");
224    prefViewContainerCol.className = "bemCookieOverlay__col bemCookieOverlay__col--100";
225
226    var prefViewHeader = document.createElement("div");
227    prefViewHeader.className = "bemCookieOverlay__row bemCookieOverlay__row--noGutters";
228
229    var prefViewHeaderCol = document.createElement("div");
230    prefViewHeaderCol.className = "bemCookieOverlay__col bemCookieOverlay__col--100";
231
232    var prefViewHeaderHeading = document.createElement("div");
233    prefViewHeaderHeading.className = "bemCookieOverlay__heading";
234    var heading = document.createElement("h3");
235    heading.textContent = textJson.title;
236    prefViewHeaderHeading.appendChild(heading);
237
238    var prefViewHeaderDescription = document.createElement("p");
239    prefViewHeaderDescription.className = "bemCookieOverlay__description";
240    prefViewHeaderDescription.textContent = textJson.desc_long;
241
242    var prefViewHeaderInteractions = document.createElement("div");
243    prefViewHeaderInteractions.className = "bemCookieOverlay__row bemCookieOverlay__row--noGutters bemCookieOverlay--alginItemsCe
243nter";
244
245    var prefViewHeaderButtons = document.createElement("div");
246    prefViewHeaderButtons.className = "bemCookieOverlay__col bemCookieOverlay__col--75";
247
248    var acceptAllButton = document.createElement("button");
249    acceptAllButton.className = "bemCookieOverlay__btn bemCookieOverlay__btn--acceptAll";
250    acceptAllButton.textContent = textJson.btn_acceptAll;
251    acceptAllButton.addEventListener("click", function () { saveCookieSettings(this, true); });
252
253    var saveButton = document.createElement("button");
254    saveButton.className = "bemCookieOverlay__btn bemCookieOverlay__btn--save";
255    saveButton.textContent = textJson.btn_save;
256    saveButton.addEventListener("click", function () { saveCookieSettings(this, false); });
257
258    var buttonContainer = document.createElement("p");
259    buttonContainer.className = "bemCookieOverlay__cookieAcceptance";
260    buttonContainer.appendChild(acceptAllButton);
261    buttonContainer.appendChild(saveButton);
262    prefViewHeaderButtons.appendChild(buttonContainer);
263
264    var prefViewHeaderReturn = document.createElement("div");
265    prefViewHeaderReturn.className = "bemCookieOverlay__col bemCookieOverlay__col--25";
266
267    var backButton = document.createElement("button");
268    backButton.className = "bemCookieOverlay__refuseDetailViewLink bemCookieOverlay__btn ";
269    backButton.textContent = textJson.back;
270    backButton.addEventListener("click", function () { switchCookieBoxView(); });
271
272    var backContainer = document.createElement("p");
273    backContainer.className = "bemCookieOverlay__refuseDetailView";
274    backContainer.appendChild(backButton);
275    prefViewHeaderReturn.appendChild(backContainer);
276    backButton.addEventListener("click", function () {
277        var prefView = document.querySelector(".bemCookieOverlay__cookiePreference");
278        if (prefView) {
279            prefView.hidden = true; // Element wieder ausblenden
280        }
281        switchCookieBoxView();
282    });
283
284    prefViewHeader.appendChild(prefViewHeaderCol);
285    prefViewHeaderCol.appendChild(prefViewHeaderHeading);
286    prefViewHeaderCol.appendChild(prefViewHeaderDescription);
287    prefViewHeaderCol.appendChild(prefViewHeaderInteractions);
288    prefViewHeaderInteractions.appendChild(prefViewHeaderButtons);
289    prefViewHeaderInteractions.appendChild(prefViewHeaderReturn);
290
291    var prefViewAcc = buildAccordion(textJson, cookieJson);
292
293    var prefViewLegals = document.createElement("p");
294    prefViewLegals.className = "bemCookieOverlay__cookieLegals bemCookieOverlay__cookieLegals--textAlignRight";
295
296    if (linkJson.privacy_statement) {
297        var privacyStatementLink = document.createElement("a");
298        privacyStatementLink.className = "bemCookieOverlay__cookiePrivacyStatement";
299        privacyStatementLink.href = linkJson.privacy_statement;
300        privacyStatementLink.textContent = textJson.privacy_statement;
301        prefViewLegals.appendChild(privacyStatementLink);
302    }
303
304    if (linkJson.imprint) {
305        var imprintLink = document.createElement("a");
306        imprintLink.className = "bemCookieOverlay__cookieImprint";
307        imprintLink.href = linkJson.imprint;
308        imprintLink.textContent = textJson.imprint;
309        prefViewLegals.appendChild(imprintLink);
310    }
311
312    if (linkJson.privacy_statement && linkJson.imprint) {
313        var separator = document.createElement("span");
314        separator.setAttribute('aria-hidden', 'true');
315        separator.className = "bemCookieOverlay__seperator";
316        prefViewLegals.insertBefore(separator, imprintLink);
317    }
318
319    prefViewContainerCol.appendChild(prefViewHeader);
320    prefViewContainerCol.appendChild(prefViewAcc);
321    prefViewContainerCol.appendChild(prefViewLegals);
322    prefViewContainerRow.appendChild(prefViewContainerCol);
323    prefViewContainer.appendChild(prefViewContainerRow);
324    prefView.appendChild(prefViewContainer);
325
326    return prefView;
327}
328function buildAccordion(textJson, cookieJson) {
329    var acc = document.createElement("div");
330    acc.className = "bemCookieOverlay__accordion";
331
332    cookieJson.groups.forEach(function (cookieGroupJson) {
333        acc.appendChild(buildAccordionItem(textJson, cookieGroupJson));
334    });
335
336    return acc;
337}
338
339function buildAccordionItem(textJson, cookieJson) {
340    var accItem = document.createElement("div");
341    accItem.className = "bemCookieOverlay__accordionItem";
342
343    var accHeader = document.createElement("div");
344    accHeader.className = "bemCookieOverlay__row bemCookieOverlay__row--flexDirRow bemCookieOverlay__row--noGutters";
345
346    var accHeading = document.createElement("div");
347    accHeading.className = "bemCookieOverlay__col--75";
348    var heading = document.createElement("h4");
349    heading.textContent = cookieJson.name;
350    accHeading.appendChild(heading);
351
352    var accSwitch = document.createElement("div");
353    accSwitch.className = "bemCookieOverlay__col--25 bemCookieOverlay__col--textAlignRight";
354    var label = document.createElement("label");
355    label.className = "bemCookieOverlay__switch bemCookieOverlay__switch--outer";
356    label.setAttribute("for", "detail_" + cookieJson.id);
357    label.addEventListener("change", function () { accordionOuterSwitchSync(this); });
358
359    var input = document.createElement("input");
360    input.className = "bemCookieOverlay__switchInput";
361    input.type = "checkbox";
362    input.id = "detail_" + cookieJson.id;
363    input.value = cookieJson.id;
364    input.setAttribute("aria-label", textJson.onoff);
365
366    var slider = document.createElement("div");
367    slider.className = "bemCookieOverlay__switchSlider";
368
369    label.appendChild(input);
370    label.appendChild(slider);
371    accSwitch.appendChild(label);
372
373    var accDescWrapper = document.createElement("div");
374    accDescWrapper.className = "bemCookieOverlay__accordionItemDesc";
375
376    var accDesc = document.createElement("p");
377    accDesc.textContent = cookieJson.description;
378
379    var accShowBody = document.createElement("p");
380    accShowBody.className = "bemCookieOverlay__accordionShowBody";
381    var showBodyLink = document.createElement("a");
382    showBodyLink.className = "bemCookieOverlay__accordionShowBodyLink";
383    showBodyLink.textContent = textJson.show_cookie_information;
384    showBodyLink.addEventListener("click", function () { accordionToogleBody(this); });
385    accShowBody.appendChild(showBodyLink);
386
387    var accHideBody = document.createElement("p");
388    accHideBody.className = "bemCookieOverlay__accordionHideBody";
389    var hideBodyLink = document.createElement("a");
390    hideBodyLink.className = "bemCookieOverlay__accordionHideBodyLink";
391    hideBodyLink.textContent = textJson.hide_cookie_information;
392    hideBodyLink.addEventListener("click", function () { accordionToogleBody(this); });
393    accHideBody.appendChild(hideBodyLink);
394
395    var accBody = document.createElement("div");
396    accBody.className = "bemCookieOverlay__accordionItemBody";
397
398    if (cookieJson.required) {
399        input.checked = true;
400        input.disabled = true;
401    }
402
403    cookieJson.cookies.forEach(function (singleCookieJson) {
404        accBody.appendChild(buildCookieDetailTable(textJson, singleCookieJson, cookieJson.required));
405    });
406
407    accItem.appendChild(accHeader);
408    accHeader.appendChild(accHeading);
409    accHeader.appendChild(accSwitch);
410    accDescWrapper.appendChild(accDesc);
411    accDescWrapper.appendChild(accShowBody);
412    accDescWrapper.appendChild(accHideBody);
413    accItem.appendChild(accDescWrapper);
414    accItem.appendChild(accBody);
415
416    return accItem;
417}
418
419function buildCookieDetailTable(textJson, cookieJson, requiredParent) {
420    var table = document.createElement("table");
421    table.className = "bemCookieOverlay__cookieTable";
422
423    var tbody = document.createElement("tbody");
424
425    var tcaption = document.createElement("caption");
426    tcaption.className = "bemCookieOverlay__cookieTableCaption sr-only";
427    tcaption.textContent = textJson.cookie_detail_table_explanation + " " + cookieJson.name;
428
429    if (!requiredParent) {
430        var trAccept = document.createElement("tr");
431        var thAccept = document.createElement("th");
432        thAccept.scope = "row";
433        thAccept.textContent = textJson.cookie_detail_table_accept;
434        var tdAccept = document.createElement("td");
435
436        var label = document.createElement("label");
437        label.className = "bemCookieOverlay__switch";
438        label.setAttribute("for", "detail_" + cookieJson.id);
439
440        var input = document.createElement("input");
441        input.className = "bemCookieOverlay__switchInput";
442        input.type = "checkbox";
443        input.id = "detail_" + cookieJson.id;
444        input.value = cookieJson.id;
445        input.setAttribute("aria-label", textJson.onoff);
446
447        var slider = document.createElement("div");
448        slider.className = "bemCookieOverlay__switchSlider";
449
450        label.appendChild(input);
451        label.appendChild(slider);
452        tdAccept.appendChild(label);
453        trAccept.appendChild(thAccept);
454        trAccept.appendChild(tdAccept);
455        tbody.appendChild(trAccept);
456    }
457
458    if (cookieJson.name) {
459        var trName = document.createElement("tr");
460        var thName = document.createElement("th");
461        thName.scope = "row";
462        thName.textContent = textJson.cookie_detail_table_name;
463        var tdName = document.createElement("td");
464        tdName.textContent = cookieJson.name;
465        trName.appendChild(thName);
466        trName.appendChild(tdName);
467        tbody.appendChild(trName);
468    }
469
470    if (cookieJson.provider) {
471        var trProvider = document.createElement("tr");
472        var thProvider = document.createElement("th");
473        thProvider.scope = "row";
474        thProvider.textContent = textJson.cookie_detail_table_provider;
475        var tdProvider = document.createElement("td");
476        tdProvider.textContent = cookieJson.provider;
477        trProvider.appendChild(thProvider);
478        trProvider.appendChild(tdProvider);
479        tbody.appendChild(trProvider);
480    }
481
482    if (cookieJson.purpose) {
483        var trPurpose = document.createElement("tr");
484        var thPurpose = document.createElement("th");
485        thPurpose.scope = "row";
486        thPurpose.textContent = textJson.cookie_detail_table_purpose;
487        var tdPurpose = document.createElement("td");
488        tdPurpose.textContent = cookieJson.purpose;
489        trPurpose.appendChild(thPurpose);
490        trPurpose.appendChild(tdPurpose);
491        tbody.appendChild(trPurpose);
492    }
493
494    if (cookieJson.privacy_statement) {
495        var trPrivacyStatement = document.createElement("tr");
496        var thPrivacyStatement = document.createElement("th");
497        thPrivacyStatement.scope = "row";
498        thPrivacyStatement.textContent = textJson.cookie_detail_table_privacy_statement;
499        var tdPrivacyStatement = document.createElement("td");
500        var aPrivacyStatement = document.createElement("a");
501        aPrivacyStatement.href = cookieJson.privacy_statement;
502        aPrivacyStatement.title = textJson.cookie_detail_table_privacy_statement;
503        aPrivacyStatement.target = "_blank";
504        aPrivacyStatement.textContent = cookieJson.privacy_statement;
505        tdPrivacyStatement.appendChild(aPrivacyStatement);
506        trPrivacyStatement.appendChild(thPrivacyStatement);
507        trPrivacyStatement.appendChild(tdPrivacyStatement);
508        tbody.appendChild(trPrivacyStatement);
509    }
510
511    if (cookieJson.cookie_name) {
512        var trCookieName = document.createElement("tr");
513        var thCookieName = document.createElement("th");
514        thCookieName.scope = "row";
515        thCookieName.textContent = textJson.cookie_detail_table_cookie_name;
516        var tdCookieName = document.createElement("td");
517        tdCookieName.textContent = cookieJson.cookie_name;
518        trCookieName.appendChild(thCookieName);
519        trCookieName.appendChild(tdCookieName);
520        tbody.appendChild(trCookieName);
521    }
522
523    if (cookieJson.cookie_lifespan) {
524        var trLifespan = document.createElement("tr");
525        var thLifespan = document.createElement("th");
526        thLifespan.scope = "row";
527        thLifespan.textContent = textJson.cookie_detail_table_cookie_lifespan;
528        var tdLifespan = document.createElement("td");
529        tdLifespan.textContent = cookieJson.cookie_lifespan;
530        trLifespan.appendChild(thLifespan);
531        trLifespan.appendChild(tdLifespan);
532        tbody.appendChild(trLifespan);
533    }
534
535    table.appendChild(tcaption);
536    table.appendChild(tbody);
537
538    return table;
539}
540
541// Funktionale Funktionen
542function switchCookieBoxView() {
543    var cookieBoxOuterWrapper = document.querySelector(".bemCookieOverlay__boxOuterWrapper");
544    var cookieBoxInnerWrapper = document.querySelector(".bemCookieOverlay__boxInnerWrapper");
545    var cookieBoxContainer = document.querySelector(".bemCookieOverlay__cookieBox > .bemCookieOverlay__container");
546    var cookiePreferenceContainer = document.querySelector(".bemCookieOverlay__cookiePreference > .bemCookieOverlay__container");
547
548    var isCookieBoxVisible = cookieBoxContainer.classList.contains("bemCookieOverlay__container--visible");
549    var isCookiePreferenceVisible = cookiePreferenceContainer.classList.contains("bemCookieOverlay__container--visible");
550
551    var cookieBoxOuterWrapperSettings = {
552        width: '90vw',
553        maxWidth: (isCookieBoxVisible && !isCookiePreferenceVisible) ? '768px' : '400px',
554        turnedMaxWidth: (isCookieBoxVisible && !isCookiePreferenceVisible) ? '400px' : '768px'
555    };
556
557    cookieBoxOuterWrapper.style.maxWidth = cookieBoxOuterWrapperSettings.maxWidth;
558    cookieBoxOuterWrapper.style.width = "100%";
559
560    var cookieBoxContainerSettings = {
561        height: (isCookieBoxVisible) ? 0 : cookieBoxContainer.scrollHeight,
562        opacity: (isCookieBoxVisible) ? 0 : 1
563    };
564
565    var cookiePreferenceContainerSettings = {
566        height: (isCookiePreferenceVisible) ? 0 : cookiePreferenceContainer.scrollHeight,
567        opacity: (isCookiePreferenceVisible) ? 0 : 1
568    };
569
570    cookieBoxOuterWrapper.style.maxWidth = cookieBoxOuterWrapperSettings.turnedMaxWidth;
571    cookieBoxOuterWrapper.style.width = cookieBoxOuterWrapperSettings.width;
572
573    
574    if (isCookieBoxVisible) {
575        cookieBoxContainer.style.height = cookieBoxContainerSettings.height + "px";
576        cookieBoxContainer.style.opacity = cookieBoxContainerSettings.opacity;
577        setTimeout(function () {
578            cookieBoxContainer.classList.add("bemCookieOverlay__container--invisible");
579            cookieBoxContainer.classList.remove("bemCookieOverlay__container--visible");
580            cookieBoxOuterWrapper.style.width = cookieBoxOuterWrapperSettings.width;
581            cookieBoxOuterWrapper.style.maxWidth = cookieBoxOuterWrapperSettings.maxWidth;
582            setTimeout(function () {
583                cookiePreferenceContainer.style.height = cookiePreferenceContainerSettings.height + "px";
584                cookiePreferenceContainer.style.opacity = cookiePreferenceContainerSettings.opacity;
585                setTimeout(function () {
586                    cookiePreferenceContainer.classList.remove("bemCookieOverlay__container--invisible");
587                    cookiePreferenceContainer.classList.add("bemCookieOverlay__container--visible");
588                    cookiePreferenceContainer.style.height = "";
589
590                    setTabIndexForView(cookiePreferenceContainer);
591                    setNegativeTabIndexForView(cookieBoxContainer);
592                }, 0);
593            }, 0);
594        }, 0);
595    } else if (isCookiePreferenceVisible) {
596        cookiePreferenceContainer.style.height = cookiePreferenceContainerSettings.height + "px";
597        cookiePreferenceContainer.style.opacity = cookiePreferenceContainerSettings.opacity;
598        setTimeout(function () {
599            cookiePreferenceContainer.classList.add("bemCookieOverlay__container--invisible");
600            cookiePreferenceContainer.classList.remove("bemCookieOverlay__container--visible");
601            cookieBoxOuterWrapper.style.width = cookieBoxOuterWrapperSettings.width;
602            cookieBoxOuterWrapper.style.maxWidth = cookieBoxOuterWrapperSettings.maxWidth;
603            setTimeout(function () {
604                cookieBoxContainer.style.height = cookieBoxContainerSettings.height + "px";
605                cookieBoxContainer.style.opacity = cookieBoxContainerSettings.opacity;
606                setTimeout(function () {
607                    cookieBoxContainer.classList.remove("bemCookieOverlay__container--invisible");
608                    cookieBoxContainer.classList.add("bemCookieOverlay__container--visible");
609                    cookieBoxContainer.style.height = "";
610
611                    setTabIndexForView(cookieBoxContainer);
612                    setNegativeTabIndexForView(cookiePreferenceContainer);
613                }, 0);
614            }, 0);
615        }, 0);
616    } else {
617        console.error("GEM2GO WEB: Cookie-OptIn Error!");
618    }
619}
620
621function accordionToogleBody(trigger) {
622    var accItem = trigger.closest(".bemCookieOverlay__accordionItem");
623    var showBody = accItem.querySelector(".bemCookieOverlay__accordionShowBody");
624    var hideBody = accItem.querySelector(".bemCookieOverlay__accordionHideBody");
625    var body = accItem.querySelector(".bemCookieOverlay__accordionItemBody");
626
627    if (trigger.classList.contains("bemCookieOverlay__accordionShowBodyLink")) {
628        showBody.style.display = "none";
629        hideBody.style.display = "block";
630        body.style.display = "block";
631    } else if (trigger.classList.contains("bemCookieOverlay__accordionHideBodyLink")) {
632        hideBody.style.display = "none";
633        showBody.style.display = "block";
634        body.style.display = "none";
635    }
636}
637
638function accordionOuterSwitchSync(trigger) {
639    var thisAccItemBody = trigger.closest(".bemCookieOverlay__accordionItem").querySelector(".bemCookieOverlay__accordionItemBody");
640
641    if (trigger.querySelector(".bemCookieOverlay__switchInput").checked) {
642        thisAccItemBody.querySelectorAll(".bemCookieOverlay__switchInput").forEach(function (input) {
643            input.checked = true;
644        });
645    } else {
646        thisAccItemBody.querySelectorAll(".bemCookieOverlay__switchInput").forEach(function (input) {
647            input.checked = false;
648        });
649    }
650}
651
652function saveCookieSettings(trigger, acceptAll) {
653    function saveCheckedCookiesInLocalStorage(checkedCookies) {
654        localStorage.setItem('checkedCookies', JSON.stringify(checkedCookies));
655    }
656
657    function getCheckedCookiesFromLocalStorage() {
658        return JSON.parse(localStorage.getItem('checkedCookies') || '[]');
659    }
660
661    var cookie_settings = {
662        name: optInCookieName,
663        path: "/"
664    };
665
666    var checkedCookies = getCheckedCookiesFromLocalStorage();
667
668    if (!checkedCookies.length) {
669        if (acceptAll) {
670            checkedCookies.push(cookieStringForAllAccepted);
671        } else {
672            if (trigger.closest(".bemCookieOverlay__cookiePreference")) {
673                var outerSwitches = trigger.closest(".bemCookieOverlay__cookiePreference").querySelectorAll(".bemCookieOverlay__switch--outer");
674                outerSwitches.forEach(function (outerSwitch) {
675                    var switchInput = outerSwitch.querySelector(".bemCookieOverlay__switchInput");
676                    if (switchInput.checked) {
677                        checkedCookies.push(switchInput.value);
678                    } else {
679                        var innerSwitches = outerSwitch.closest(".bemCookieOverlay__accordionItem").querySelectorAll(".bemCookieOverlay__accordionItemBody .bemCookieOverlay__switch");
680                        innerSwitches.forEach(function (innerSwitch) {
681                            var innerSwitchInput = innerSwitch.querySelector(".bemCookieOverlay__switchInput");
682                            if (innerSwitchInput.checked) {
683                                checkedCookies.push(innerSwitchInput.value);
684                            }
685                        });
686                    }
687                });
688            } else if (trigger.closest(".bemCookieOverlay__cookieBox")) {
689                var groupCheckboxes = trigger.closest(".bemCookieOverlay__cookieBox").querySelectorAll(".bemCookieOverlay__cookieSelectionItem .bemCookieOverlay__cookieSelectionItemCheckboxInput");
690                groupCheckboxes.forEach(function (checkbox) {
691                    if (checkbox.checked) {
692                        checkedCookies.push(checkbox.value);
693                    }
694                });
695            }
696        }
697    }
698
699    if (isRunningInIframe()) {
700        saveCheckedCookiesInLocalStorage(checkedCookies);
701        var extra = document.location.protocol == "https:" ? " samesite=none; secure=true" : "";
702        document.cookie = cookie_settings.name + "=s" + checkedCookies.toString().replace(/,/g, '|') + "; path=" + cookie_settings.path + ";" + extra;
703        location.reload();
704    } else {
705        var extra = document.location.protocol == "https:" ? " samesite=none; secure=true" : "";
706        document.cookie = cookie_settings.name + "=s" + checkedCookies.toString().replace(/,/g, '|') + "; path=" + cookie_settings.path + ";" + extra;
707        location.reload();
708    }
709}
710
711function initAccessibilityImprovements(boxView, prefView) {
712    setTabIndexForView(boxView, true);
713    setNegativeTabIndexForView(prefView);
714
715    // Focus funktioniert sonst nach Enter nicht mehr
716    document.querySelectorAll(".bemCookieOverlay input").forEach(function (input) {
717        input.addEventListener("focus", function () {
718            document.querySelector("label[for='" + this.id + "']").classList.add("bemCookieOverlay_labelFocus");
719        });
720        input.addEventListener("blur", function () {
721            document.querySelector("label").classList.remove("bemCookieOverlay_labelFocus");
722        });
723    });
724
725    // Bei Enter auf Link wird das Click-Event gefeuert
726    document.querySelectorAll('.bemCookieOverlay a').forEach(function (link) {
727        link.addEventListener("keypress", function (e) {
728            if (e.key === "Enter") {
729                this.click();
730                e.preventDefault();
731            }
732        });
733    });
734
735    // Bei Enter auf Label wird Click-Event gefeuert
736    document.querySelectorAll('.bemCookieOverlay input').forEach(function (input) {
737        input.addEventListener("keypress", function (e) {
738            if (e.key === "Enter") {
739                this.click();
740                e.preventDefault();
741            }
742        });
743    });
744}
745
746function setTabIndexForView(container, initialShow = false) {
747    var tabIndexCounter = 0;
748    container.querySelectorAll("input:not(:disabled), a").forEach(function (element) {
749        element.setAttribute("tabindex", tabIndexCounter);
750    });
751
752    var refuseDetailViewLink = container.querySelector("a.bemCookieOverlay__refuseDetailViewLink");
753    var cookieManageLink = container.querySelector("a.bemCookieOverlay__cookieManageLink");
754    var firstFocusableElement = container.querySelector("input:not(:disabled), a");
755
756    if (refuseDetailViewLink) {
757        refuseDetailViewLink.focus();
758    } else if (cookieManageLink && !initialShow) {
759        cookieManageLink.focus();
760    } else if (firstFocusableElement) {
761        firstFocusableElement.focus();
762    }
763}
764
765function setNegativeTabIndexForView(container) {
766    container.querySelectorAll("input:not(:disabled), a").forEach(function (element) {
767        element.setAttribute("tabindex", -1);
768    });
769}
770
771function initCookieSettings(boxView, prefView, settingsCookieName) {
772    if (doesCookieExist(settingsCookieName)) {
773        var cookieSettings = readCookie(settingsCookieName);
774
775        if (cookieSettings == cookieStringForAllAccepted) {
776            document.querySelectorAll("input[type=checkbox]").forEach(function (checkbox) {
777                checkbox.checked = true;
778            });
779        } else {
780            var cookieSettingsArray = cookieSettings.split("|");
781            cookieSettingsArray.forEach(function (cookieId) {
782                var input = document.querySelectorAll("input[value='" + cookieId + "']");
783                input.forEach(function (input) {
784                    input.checked = true;
785                    if (input.closest(".bemCookieOverlay__switch--outer") != null)
786                        accordionOuterSwitchSync(input.closest(".bemCookieOverlay__switch--outer"));
787                });
788            });
789        }
790    }
791}
792
793function readCookie(name) {
794    var nameEQ = name + "=";
795    var ca = document.cookie.split(';');
796    for (var i = 0; i < ca.length; i++) {
797        var c = ca[i];
798        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
799        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
800    }
801    return null;
802}
803
804function doesCookieExist(name) {
805    return (document.cookie.indexOf(name) == -1) ? false : true;
806}
807
808function CookieFocusTrap(resetOutsideFocus) {
809
810    const cookiePopup = document.querySelector('.bemCookieOverlay__boxOuterWrapper');
811
812    const focusableSelectors = 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';
813    const allFocusableElements = document.querySelectorAll(focusableSelectors);
814    const popupFocusableElements = cookiePopup.querySelectorAll(focusableSelectors);
815
816    // Funktion: Fokus außerhalb des Popups deaktivieren
817    const disableOutsideFocus = () => {
818        allFocusableElements.forEach((el) => {
819            if (!cookiePopup.contains(el)) {
820                if (!el.hasAttribute('data-original-tabindex')) {
821                    if (el.hasAttribute('tabindex')) {
822                        el.dataset.originalTabindex = el.getAttribute('tabindex');
823                    } else {
824                        el.dataset.originalTabindex = 'none';
825                    }
826                }
827                el.setAttribute('tabindex', '-1'); // Fokus deaktivieren
828            }
829        });
830    };
831
832    // Funktion: Fokus außerhalb des Popups wiederherstellen
833    const restoreOutsideFocus = () => {
834        allFocusableElements.forEach((el) => {
835            if (el.dataset.originalTabindex !== undefined) {
836                if (el.dataset.originalTabindex === 'none') {
837                    el.removeAttribute('tabindex'); // Ursprünglichen Zustand wiederherstellen
838                } else {
839                    el.setAttribute('tabindex', el.dataset.originalTabindex); // Ursprünglichen Tabindex zurücksetzen
840                }
841                delete el.dataset.originalTabindex;
842            }
843        });
844    };
845
846    disableOutsideFocus();
847
848    //Zurücksetzen der Tabindex -1 elemente
849    if (resetOutsideFocus == true) {
850        restoreOutsideFocus();
851    }
852
853}
854
855
856initCookieOptInIfCookieNotExists();

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.