PageSourceSearch

https://www.kirche-schurwald.de/_assets/482fb0005a0a42f4ac859ee5c017f74b/JavaScript/Frontend.js?1781537971

js kirche-schurwald.de collected 2026-10-10 00:33:38 UTC 13,869 bytes, 389 lines download raw bytes

1
2document.addEventListener("DOMContentLoaded", function() {
3
4  let changeAria = function (){
5    let cookieSettingsLink =  document.querySelectorAll('a[href="#ekdcm_showBanner"]');
6    for (let i = 0, l = cookieSettingsLink.length; i < l; i++) {
7      cookieSettingsLink[i].setAttribute('aria-expanded', 'false');
8    }
9  }
10
11  if (!document.getElementById('tx-ekd-consentmanager')) {
12
13    const blocked = document.querySelectorAll('.ekdps_blocked');
14    for (var i = 0, l = blocked.length; i < l; i++) {
15      const be = blocked[i];
16      if (be.querySelector('button[data-for]')) {
17        be.querySelector('button[data-for]').addEventListener('click', function (ev) {
18          ev.stopPropagation();
19          ev.preventDefault();
20          ekdcm_enableByContentId(this.dataset.for)
21        });
22      }
23      if (be.querySelector('button[data-release]')) {
24        be.querySelector('button[data-release]').addEventListener('click', function (ev) {
25          ev.stopPropagation();
26          ev.preventDefault();
27
28          let releaseToggle = document.getElementById(this.dataset.release);
29          if (releaseToggle) {
30            releaseToggle.checked = true;
31            document.getElementById('tx-ekd-consentmanager-confirm').click();
32          }
33        });
34      }
35    }
36
37
38
39    ajax({
40      url: '/index.php?type=99199',
41      method: 'GET',
42    }).then(function (data) {
43
44      var parser = new DOMParser();
45      var doc = parser.parseFromString('<doc>'+data+'</doc>', "text/html");
46      var part = doc.querySelector('doc').firstElementChild;
47
48      document.body.insertBefore(part,document.body.firstElementChild);
49
50      /*
51
52      Click on 'accept all' triggers the click on all checkboxed in the accept list
53
54       */
55
56      document.getElementById('tx-ekd-consentmanager-accept').addEventListener('click', function (ev) {
57        ev.stopPropagation();
58        ev.preventDefault();
59        const checks = document.querySelectorAll('#tx-ekd-consentmanager input[type="checkbox"]');
60        for (let i = 0, l = checks.length; i < l; i++) {
61          checks[i].checked = true;
62        }
63        document.getElementById('tx-ekd-consentmanager-confirm').click();
64      });
65
66      /*
67
68        this opens the detailed list of options
69
70       */
71
72      document.getElementById('tx-ekd-consentmanager-full').addEventListener('click', function (ev) {
73        ev.stopPropagation();
74        ev.preventDefault();
75        document.getElementById('tx-ekd-consentmanager').classList.add('full');
76      });
77
78
79      /*
80
81           this opens the detailed list of options
82
83       */
84
85      document.getElementById('tx-ekd-consentmanager-full-link').addEventListener('click', function (ev) {
86        ev.stopPropagation();
87        ev.preventDefault();
88        document.getElementById('tx-ekd-consentmanager').classList.add('full');
89      });
90
91      /*
92
93          this disabled all options and closes the window
94
95       */
96
97      document.getElementById('tx-ekd-consentmanager-deny').addEventListener('click', function (ev) {
98        ev.stopPropagation();
99        ev.preventDefault();
100        const checks = document.querySelectorAll('#tx-ekd-consentmanager input[type="checkbox"]');
101        for (let i = 0, l = checks.length; i < l; i++) {
102          checks[i].checked = false;
103        }
104        document.getElementById('tx-ekd-consentmanager-confirm').click();
105      });
106
107
108      /*
109
110      confirm action
111
112       */
113      document.getElementById('tx-ekd-consentmanager-confirm').addEventListener('click', function (ev) {
114        ev.stopPropagation();
115        ev.preventDefault();
116
117
118        let cookies = ekdcm_getCookies();
119        cookies.seen = true;
120        const checks = document.querySelectorAll('#tx-ekd-consentmanager input[type="checkbox"]');
121        for (let i = 0, l = checks.length; i < l; i++) {
122          //console.log(checks[i].checked,checks[i].value);
123          cookies[checks[i].id] = checks[i].checked;
124        }
125        ekdcm_setCookies(cookies);
126        document.getElementById('tx-ekd-consentmanager').classList.remove('open');
127        document.getElementById('tx-ekd-consentmanager').classList.remove('full');
128        changeAria();
129      });
130
131
132      /*
133
134        handle all close buttons
135
136       */
137      const closebtn = document.querySelectorAll('button.tx-ekd-consentmanager-close');
138
139      for (var i = 0, l = closebtn.length; i < l; i++) {
140        closebtn[i].addEventListener('click', function (ev) {
141          ev.stopPropagation();
142          ev.preventDefault();
143          document.getElementById('tx-ekd-consentmanager').classList.remove('open');
144          document.getElementById('tx-ekd-consentmanager').classList.remove('full');
145          changeAria();
146        });
147      }
148
149
150      /*
151
152          check if the seen cookie is set, otherwise display the consentbanner.
153          If it is set, act on the preferences
154
155       */
156      if (!ekdcm_checkForScanjob()) {
157        let cookies = ekdcm_getCookies();
158        if (!cookies.seen) {
159          ekdcm_showBanner();
160        } else {
161          ekdcm_actOnCookies(cookies);
162        }
163      }
164    });
165  }
166
167  let cmlinks = document.querySelectorAll('a[href$="#ekdcm_showBanner"]');
168  for (const elem of cmlinks) {
169    //elem.setAttribute("aria-role", "button");
170    //elem.setAttribute("aria-label", "Show dialog with GDPR settings");
171    elem.addEventListener('click',function(ev) {
172      ev.stopPropagation();
173      ev.preventDefault();
174      ekdcm_showBanner();
175      if( document.querySelector('#tx-ekd-consentmanager').classList.contains('open') ) {
176        elem.setAttribute("aria-expanded", "true");
177      }else{
178        elem.setAttribute("aria-expanded", "false");
179      }
180    });
181  }
182
183});
184
185var ekdcm_showBanner = function() {
186  document.getElementById('tx-ekd-consentmanager').classList.add('open');
187  let cookieSettingsLink =  document.querySelectorAll('a[href="#ekdcm_showBanner"]');
188  for (let i = 0, l = cookieSettingsLink.length; i < l; i++) {
189    cookieSettingsLink[i].setAttribute('aria-expanded', 'true');
190  }
191
192  let cookies = ekdcm_getCookies();
193  for (const key in cookies) {
194    if (document.querySelector('#tx-ekd-consentmanager input#'+key)) {
195      document.querySelector('#tx-ekd-consentmanager input#'+key).checked = cookies[key];
196    }
197  }
198}
199
200var ekdcm_enableByContentId = function(uid)
201{
202  ekdcm_enableByElement(document.getElementById('ekdps_info_'+uid));
203}
204
205var ekdcm_enableByContentByIdentifier = function(id)
206{
207  ekdcm_enableByElement(document.getElementById(id));
208}
209
210var ekdcm_enableByElement = function(element)
211{
212  if (element) {
213    const contentid = element.dataset.for;
214    const template =  document.getElementById(contentid);
215    const content = template.content.cloneNode(true);
216    if (content) {
217
218      const scripts = content.querySelectorAll('script[src]');
219      for (var i=0,l=scripts.length;i<l;i++) {
220        scripts[i].onload = function() {
221          document.dispatchEvent(new Event("DOMContentLoaded", {
222            bubbles: true,
223            cancelable: true
224          }));
225        }
226      }
227
228      let initfnc = null;
229      if (element.dataset.init) {
230        initfnc = element.dataset.init;
231      }
232
233      //console.log(initfnc,1);
234      if (!initfnc) {
235        let elemwithinitfunc = content.querySelector('[data-function]');
236        if(elemwithinitfunc) {
237          initfnc = elemwithinitfunc.dataset['function'];
238
239          //console.log(elemwithinitfunc,elemwithinitfunc.dataset,elemwithinitfunc.dataset.function,elemwithinitfunc.dataset['function'],initfnc);
240
241        }
242      }
243
244      //console.log(initfnc,2);
245      element.parentNode.insertBefore(content,element);
246      element.parentNode.removeChild(element);
247
248      document.dispatchEvent(new Event("DOMContentLoaded", {
249        bubbles: true,
250        cancelable: true
251      }));
252      if (initfnc) {
253        try {
254          console.log('executing '+initfnc);
255          executeFunctionByName(initfnc,window)
256        } catch (e) {
257          console.error('initfunc '+initfnc+' not found',e)
258        }
259      }
260    }
261  }
262}
263
264var ekdcm_getCookies = function()
265{
266  let cookies = {seen:0}
267  let cookiesraw = Cookies.get('EKD_CB1');
268  if (cookiesraw) {
269    cookies = JSON.parse(cookiesraw);
270  }
271  return cookies;
272}
273var ekdcm_checkForScanjob = function() {
274  let externalcontent = Cookies.get('testaccept');
275  if (externalcontent) {
276    let elements = document.querySelectorAll('.ekdps_blocked');
277
278    for (var i=0,l=elements.length;i<l;i++) {
279      ekdcm_enableByElement(elements[i]);
280    }
281    let initfunctions = document.querySelectorAll('input[data-initfunction]');
282    let seenFunction = [];
283    let initf = null;
284    for (var i=0,l=initfunctions.length;i<l;i++) {
285      initf = initfunctions[i];
286      if (initf && initf.dataset.addclass && initf.dataset.addclass.length > 0) {
287        try {
288          document.getElementsByTagName('html')[0].classList.add(initf.dataset.addclass);
289          //console.log('addclass '+initf.dataset.addclass+' executed');
290        } catch (e) {
291          //console.error('addclass '+initf.dataset.addclass+' failed',e)
292        }
293      }
294
295      if (initf && initf.dataset.initfunction && initf.dataset.initfunction.length > 0) {
296        try {
297          executeFunctionByName(initf.dataset.initfunction, window);
298          seenFunction.push(initf.dataset.initfunction);
299          //console.log('initfunc '+initf.dataset.initfunction+' executed');
300        } catch (e) {
301          //console.error('initfunc '+initfnc+' not found',e)
302        }
303      }
304    }
305    if (!seenFunction.includes('matomoinit') && typeof matomoinit === 'function') {
306      executeFunctionByName('matomoinit',window);
307      seenFunction.push('matomoinit');
308    }
309
310    return true;
311  }
312  return false;
313};
314var ekdcm_setCookies = function(cookies)
315{
316  Cookies.set('EKD_CB1',cookies,{ expires: 180, path:'/' });
317  ekdcm_actOnCookies(cookies);
318}
319
320var ekdcm_actOnCookies = function(cookies)
321{
322  cookies = cookies || ekdcm_getCookies();
323  //console.log(cookies);
324  for (const key in cookies) {
325    //console.log(cookies[key]);
326    if (cookies[key]) {
327      let elements = document.querySelectorAll('[data-entry="'+key+'"]');
328      //console.log(elements);
329      for (var i=0,l=elements.length;i<l;i++) {
330        ekdcm_enableByElement(elements[i]);
331      }
332
333      let initf = document.getElementById(key);
334      if (initf && initf.dataset.addclass && initf.dataset.addclass.length > 0) {
335        try {
336          document.getElementsByTagName( 'html' )[0].classList.add(initf.dataset.addclass);
337          //console.log('addclass '+initf.dataset.addclass+' executed');
338        } catch (e) {
339          //console.error('addclass '+initf.dataset.addclass+' failed',e)
340        }
341      }
342      if (initf && initf.dataset.initfunction && initf.dataset.initfunction.length > 0) {
343        try {
344          executeFunctionByName(initf.dataset.initfunction,window);
345          //console.log('initfunc '+initf.dataset.initfunction+' executed');
346        } catch (e) {
347          //console.error('initfunc '+initfnc+' not found',e)
348        }
349
350      }
351    }
352  }
353
354  // run the always active stuff
355  document.querySelectorAll('#tx-ekd-consentmanager .always-active').forEach((elem)=>{
356    if (elem.dataset.initfunction && elem.dataset.initfunction.length > 0) {
357      try {
358        executeFunctionByName(elem.dataset.initfunction,window);
359        //console.log('initfunc '+initf.dataset.initfunction+' executed');
360      } catch (e) {
361        //console.error('initfunc '+initfnc+' not found',e)
362      }
363    }
364    if (elem.dataset.addclass && elem.dataset.addclass.length > 0) {
365      try {
366        document.getElementsByTagName( 'html' )[0].classList.add(elem.dataset.addclass);
367        //console.log('addclass '+initf.dataset.addclass+' executed');
368      } catch (e) {
369        //console.error('addclass '+initf.dataset.addclass+' failed',e)
370      }
371    }
372  });
373}
374// Cookie handler
375
376!function(e){var n=!1;if("function"==typeof define&&define.amd&&(define(e),n=!0),"object"==typeof exports&&(module.exports=e(),n=!0),!n){var o=window.Cookies,t=window.Cookies=e();t.noConflict=function(){return window.Cookies=o,t}}}(function(){function g(){for(var e=0,n={};e<arguments.length;e++){var o=arguments[e];for(var t in o)n[t]=o[t]}return n}return function e(l){function C(e,n,o){var t;if("undefined"!=typeof document){if(1<arguments.length){if("number"==typeof(o=g({path:"/"},C.defaults,o)).expires){var r=new Date;r.setMilliseconds(r.getMilliseconds()+864e5*o.expires),o.expires=r}o.expires=o.expires?o.expires.toUTCString():"";try{t=JSON.stringify(n),/^[\{\[]/.test(t)&&(n=t)}catch(e){}
376n=l.write?l.write(n,e):encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),e=(e=(e=encodeURIComponent(String(e))).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent)).replace(/[\(\)]/g,escape);var i="";for(var c in o)o[c]&&(i+="; "+c,!0!==o[c]&&(i+="="+o[c]));return document.cookie=e+"="+n+i}e||(t={});for(var a=document.cookie?document.cookie.split("; "):[],s=/(%[0-9A-Z]{2})+/g,f=0;f<a.length;f++){var p=a[f].split("="),d=p.slice(1).join("=");this.json||'"'!==d.charAt(0)||(d=d.slice(1,-1));try{var u=p[0].replace(s,decodeURIComponent);if(d=l.read?l.read(d,u):l(d,u)||d.replace(s,decodeURIComponent),this.json)try{d=JSON.parse(d)}catch(e){}if(e===u){t=d;break}e||(t[u]=d)}catch(e){}}return t}}return(C.set=C).get=function(e){return C.call(C,e)},C.getJSON=function(){return C.apply({json:!0},[].slice.call(arguments))},C.defaults={},C.remove=function(e,n){C(e,"",g(n,{expires:-1}))},C.withConverter=e,C}(function(){})});
377
378
379
380
381var executeFunctionByName = function(functionName, context /*, args */) {
382  var args = Array.prototype.slice.call(arguments, 2);
383  var namespaces = functionName.split(".");
384  var func = namespaces.pop();
385  for (var i = 0; i < namespaces.length; i++) {
386    context = context[namespaces[i]];
387  }
388  return context[func].apply(context, args);
389}

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.