PageSourceSearch

https://www.geseke.de/typo3conf/ext/citko_events3/Resources/Public/Js/events3.js?1778068984

js geseke.de collected 2026-09-25 03:47:33 UTC 25,287 bytes, 703 lines download raw bytes

1let einzelterminDateFrom = document.getElementById('einzeltermin_date_from');
2let eventTitel = document.getElementById('event_titel');
3let eventOrtId = document.getElementById('event_ort_id');
4let ortBezeichnung = document.getElementById('ort_bezeichnung');
5let contactName = document.getElementById('contact_name');
6
7let termIds = document.querySelectorAll('input[name*=\'term_id\']');
8
9let basisDatenTab = document.getElementById('basisdaten-tab');
10let termineTab = document.getElementById('termine-tab');
11let bearbeitenTab = document.getElementById('bearbeiten-tab');
12
13if(eventTitel) {
14    eventTitel.addEventListener('invalid', (e) => {
15        basisDatenTab.click();
16    })
17}
18
19if(eventOrtId) {
20    eventOrtId.addEventListener('invalid', (e) => {
21        basisDatenTab.click();
22    })
23}
24
25if(einzelterminDateFrom) {
26    einzelterminDateFrom.addEventListener('invalid', (e) => {
27        termIds = document.querySelectorAll('input[name*=\'term_id\']');
28        if(termIds.length === 0) {
29            termineTab.click();
30        }
31    })
32}
33
34if(ortBezeichnung && eventOrtId) {
35    eventOrtId.addEventListener('change', (e) => {
36        if(eventOrtId.value !== '') {
37            ortBezeichnung.removeAttribute('required');
38        } else {
39            ortBezeichnung.setAttribute('required', 'required');
40        }
41    })
42
43    if(eventTitel.value === '') {
44        ortBezeichnung.addEventListener('invalid', (e) => {
45            checkFormFields();
46        })
47    } else {
48        ortBezeichnung.removeAttribute('required');
49    }
50}
51
52if(contactName) {
53    contactName.addEventListener('invalid', (e) => {
54        bearbeitenTab.click();
55    })
56}
57
58function copyToClipboard(href = '') {
59    navigator.clipboard.writeText(window.location.href).then(r => alert('Der Link wurde in die Zwischenablage kopiert.'));
60}
61
62function activateFancybox2() {
63    if(window.jQuery) {
64        jQuery('*[data-fancybox="event-images-gallery"]').fancybox();
65    } else {
66        console.error("JQuery isn't loaded. Fancybox 2 requires JQuery!")
67    }
68}
69
70function bootstrap3Slider() {
71    if(window.jQuery) {
72        if(jQuery("#citko-event-tinyslider").length) {
73            jQuery("#citko-event-tinyslider").carousel({interval: 5000});
74        }
75
76        if(jQuery("#citko-event-contentslider").length) {
77            jQuery("#citko-event-contentslider").carousel({interval: 5000});
78        }
79    } else {
80        console.error("JQuery isn't loaded. Bootstrap 3 requires JQuery!")
81    }
82}
83
84/**
85 * check public add form for valid values
86 */
87function checkFormFields() {
88    let noEventTitleFoundEls = document.querySelectorAll('.no-event-titel-found')
89    let noEventOrtTitleFoundEls = document.querySelectorAll('.no-event-ort-id-found');
90    let noTermsFoundEls = document.querySelectorAll('.no-terms-found');
91    let contactEmail = document.getElementById('contact_email');
92
93    einzelterminDateFrom.required = false;
94    eventTitel.required = false;
95    eventOrtId.required = false;
96    ortBezeichnung.required = false;
97    contactName.required = false;
98
99    if(eventTitel.value === '') {
100        basisDatenTab.click();
101        noEventTitleFoundEls.forEach((noEventTitleFoundEl) => {
102            noEventTitleFoundEl.classList.remove('hidden');
103        })
104        eventTitel.required = true;
105        return false;
106    }
107    else {
108        noEventTitleFoundEls.forEach((noEventTitleFoundEl) => {
109            noEventTitleFoundEl.classList.add('hidden');
110        })
111        eventTitel.required = false;
112    }
113
114    if(eventOrtId.value === '' && (ortBezeichnung ? ortBezeichnung.value : '') === '') {
115        basisDatenTab.click();
116        noEventOrtTitleFoundEls.forEach((noEventOrtTitleFoundEls) => {
117            noEventOrtTitleFoundEls.classList.remove('hidden');
118        })
119
120        eventOrtId.required = true;
121
122        if(ortBezeichnung) {
123            ortBezeichnung.required = true;
124        }
125        return false;
126    }
127    else {
128        eventOrtId.required = false;
129
130        if(ortBezeichnung) {
131            ortBezeichnung.required = false;
132        }
133        noEventOrtTitleFoundEls.forEach((noEventOrtTitleFoundEls) => {
134            noEventOrtTitleFoundEls.classList.add('hidden');
135        })
136    }
137    termIds = document.querySelectorAll('input[name*=\'term_id\']');
138    if(termIds.length === 0) {
139        termineTab.click();
140        noTermsFoundEls.forEach((noTermsFoundEl) => {
141            noTermsFoundEl.classList.remove('hidden');
142        });
143
144        einzelterminDateFrom.required = true;
145        einzelterminDateFrom.value = '';
146
147        return false;
148    }
149    else {
150        noTermsFoundEls.forEach((noTermsFoundEl) => {
151            noTermsFoundEl.classList.add('hidden');
152        })
153        einzelterminDateFrom.required = false;
154    }
155
156    if(contactEmail) {
157        if (contactEmail.value !== '' && contactName.value === '') {
158            bearbeitenTab.click();
159            contactName.required = true;
160            return false;
161        }
162        else {
163            contactName.required = false;
164        }
165    }
166
167    return true;
168}
169
170/**
171 * open next tab
172 */
173function nextTab(activeTabIndex) {
174    if(tabs[(activeTabIndex + 1)]) {
175        document.getElementById(tabs[(activeTabIndex + 1)]).click();
176    }
177}
178
179/**
180 * open previous tab
181 */
182function previousTab(activeTabIndex) {
183    if(tabs[(activeTabIndex - 1)]) {
184        document.getElementById(tabs[(activeTabIndex - 1)]).click();
185    }
186}
187
188/**
189 * get previous tab button html if exists
190 */
191function getNextTabButton(activeTabIndex) {
192    if(tabs[(activeTabIndex + 1)]) {
193        let nextTabEl = document.createElement('a');
194        nextTabEl.classList.add('btn');
195        nextTabEl.classList.add('btn-default');
196        nextTabEl.classList.add('btn-secondary');
197        nextTabEl.addEventListener('click', () => {
198            nextTab(activeTabIndex);
199        })
200        nextTabEl.innerHTML = "Nächster Tab";
201
202        return nextTabEl;
203    }
204    else {
205        return false;
206    }
207}
208
209/**
210 * get previous tab button html if exists
211 */
212function getPreviousTabButton(activeTabIndex) {
213    if(tabs[(activeTabIndex - 1)]) {
214        let previousTabEl = document.createElement('a');
215        previousTabEl.classList.add('btn');
216        previousTabEl.classList.add('btn-default');
217        previousTabEl.classList.add('btn-secondary');
218        previousTabEl.addEventListener('click', () => {
219            previousTab(activeTabIndex);
220        })
221        previousTabEl.innerHTML = "Vorheriger Tab";
222        return previousTabEl;
223    }
224    else {
225        return false;
226    }
227}
228
229function fadeTo(element, toValue = 0, duration = 200) {
230    const fromValue = parseInt(element.style.opacity) || 1;
231    const startTime = Date.now();
232    const framerate = 1000 / 60;
233
234    let interval = setInterval(() => {
235        const currentTime = Date.now();
236        const timeDiff = (currentTime - startTime) / duration;
237        const value = fromValue - (fromValue - toValue) * timeDiff;
238
239        if (timeDiff >= 1) {
240            clearInterval(interval);
241            interval = 0;
242        }
243
244        element.style.opacity = value.toString();
245
246    }, framerate)
247}
248
249function hideRechtliches(rechtliches) {
250    if(rechtliches.style.opacity < 0) {
251        rechtliches.classList.add('events3-hidden');
252    } else {
253        setTimeout(hideRechtliches, 40, rechtliches);
254    }
255}
256
257function showRechtlichesOk(rechtliches, rechtlichesOk) {
258    if(rechtliches.classList.contains('events3-hidden')) {
259        rechtlichesOk.classList.remove('events3-hidden')
260    } else {
261        setTimeout(showRechtlichesOk, 40, rechtliches, rechtlichesOk)
262    }
263}
264
265function checkRechtliches(einwilligung1, einwilligung2) {
266    if(einwilligung1.checked && einwilligung2.checked) {
267        let rechtliches = document.getElementById('rechtliches');
268        let rechtlichesOk = document.getElementById('rechtliches-ok');
269        fadeTo(rechtliches, 0, 500)
270        hideRechtliches(rechtliches);
271        showRechtlichesOk(rechtliches, rechtlichesOk);
272    }
273}
274
275/**
276 * update room select
277 * needs a global array "rooms" with rooms
278 * @param ort_id
279 */
280function updateRooms(ort_id, roomSelectId) {
281    let roomSelect = document.getElementById(roomSelectId);
282
283    if(roomSelect.options.length > 0) {
284        for(let i = roomSelect.options.length; i >= 0; i--) {
285            roomSelect.remove(i);
286        }
287    }
288
289    let defaultOption = document.createElement('option');
290    defaultOption.value = '';
291    defaultOption.innerHTML = 'Bitte auswählen';
292
293    roomSelect.appendChild(defaultOption)
294
295    rooms.forEach((room, index) => {
296        if(room.raum_id == ort_id) {
297            let roomOption = document.createElement('option');
298            roomOption.value = room.raum_id
299            roomOption.innerHTML = room.raum_bezeichnung;
300
301            roomSelect.appendChild(roomOption)
302            roomSelect.value = room.raum_id;
303        }
304    })
305}
306
307function grepData(data) {
308    dataArr = data.match(/<!--content_start-->(.*|[\s\S]*)<!--content_end-->/);
309    if(dataArr != null) {
310        dataStr = dataArr[1].trim();
311        return dataStr;
312    }
313    else {
314        return '';
315    }
316}
317
318async function getTermsSingle(pageUrl, einzeltermin_date_from, einzeltermin_date_to, einzeltermin_time_from, einzeltermin_time_to, event_id, targetid) {
319    let completeUrl =
320        checkUrlForRequestParameters(pageUrl) +
321        'type=100001' +
322        '&tx_citkoevents3_publicadd%5Baction%5D=terms' +
323        '&tx_citkoevents3_publicadd%5Bcontroller%5D=Async' +
324        '&tx_citkoevents3_publicadd%5Btyp%5D=single' +
325        '&tx_citkoevents3_publicadd%5Beinzeltermin_date_from%5D=' + einzeltermin_date_from +
326        '&tx_citkoevents3_publicadd%5Beinzeltermin_date_to%5D=' + einzeltermin_date_to +
327        '&tx_citkoevents3_publicadd%5Beinzeltermin_time_from%5D=' + einzeltermin_time_from +
328        '&tx_citkoevents3_publicadd%5Beinzeltermin_time_to%5D=' + einzeltermin_time_to +
329        '&tx_citkoevents3_publicadd%5Bevent_id%5D=' + event_id
330
331
332    await fetchHtmlAndAddToElement(completeUrl, targetid);
333}
334
335async function getTermsSingleEdit(pageUrl, einzeltermin_date_from, einzeltermin_date_to, einzeltermin_time_from, einzeltermin_time_to, event_id, targetid) {
336    let completeUrl =
337        checkUrlForRequestParameters(pageUrl) +
338        'type=100002' +
339        '&tx_citkoevents3_publicedit%5Baction%5D=terms' +
340        '&tx_citkoevents3_publicedit%5Bcontroller%5D=Async' +
341        '&tx_citkoevents3_publicedit%5Btyp%5D=single' +
342        '&tx_citkoevents3_publicedit%5Beinzeltermin_date_from%5D=' + einzeltermin_date_from +
343        '&tx_citkoevents3_publicedit%5Beinzeltermin_date_to%5D=' + einzeltermin_date_to +
344        '&tx_citkoevents3_publicedit%5Beinzeltermin_time_from%5D=' + einzeltermin_time_from +
345        '&tx_citkoevents3_publicedit%5Beinzeltermin_time_to%5D=' + einzeltermin_time_to +
346        '&tx_citkoevents3_publicedit%5Bevent_id%5D=' + event_id +
347        '&tx_citkoevents3_publicedit%5Bplugin%5D=publicedit';
348
349    await fetchHtmlAndAddToElement(completeUrl, targetid);
350}
351
352
353async function getTermsRepeat(pageUrl, serientermin_repeat_type, serientermin_weekdays, serientermin_daymonthly_no, serientermin_daymonthly_weekday, serientermin_date_from, serientermin_date_to, serientermin_time_from, serientermin_time_to, targetid) {
354    let completeUrl =
355        checkUrlForRequestParameters(pageUrl) +
356        'type=100001' +
357        '&tx_citkoevents3_publicadd%5Baction%5D=terms' +
358        '&tx_citkoevents3_publicadd%5Bcontroller%5D=Async' +
359        '&tx_citkoevents3_publicadd%5Btyp%5D=repeat' +
360        '&tx_citkoevents3_publicadd%5Bserientermin_repeat_type%5D=' + serientermin_repeat_type +
361        '&tx_citkoevents3_publicadd%5Bserientermin_weekdays%5D=' + serientermin_weekdays +
362        '&tx_citkoevents3_publicadd%5Bserientermin_daymonthly_no%5D=' + serientermin_daymonthly_no +
363        '&tx_citkoevents3_publicadd%5Bserientermin_daymonthly_weekday%5D=' + serientermin_daymonthly_weekday +
364        '&tx_citkoevents3_publicadd%5Bserientermin_date_from%5D=' + serientermin_date_from +
365        '&tx_citkoevents3_publicadd%5Bserientermin_date_to%5D=' + serientermin_date_to +
366        '&tx_citkoevents3_publicadd%5Bserientermin_time_from%5D=' + serientermin_time_from +
367        '&tx_citkoevents3_publicadd%5Bserientermin_time_to%5D=' + serientermin_time_to +
368        '&tx_citkoevents3_publicadd%5Bevent_id%5D=' + '0'
369
370    await fetchHtmlAndAddToElement(completeUrl, targetid)
371}
372
373async function getTermsRepeatEdit(pageUrl, serientermin_repeat_type, serientermin_weekdays, serientermin_daymonthly_no, serientermin_daymonthly_weekday, serientermin_date_from, serientermin_date_to, serientermin_time_from, serientermin_time_to, targetid) {
374    let completeUrl =
375        checkUrlForRequestParameters(pageUrl) +
376        'type=100002' +
377        '&tx_citkoevents3_publicedit%5Baction%5D=terms' +
378        '&tx_citkoevents3_publicedit%5Bcontroller%5D=Async' +
379        '&tx_citkoevents3_publicedit%5Btyp%5D=repeat' +
380        '&tx_citkoevents3_publicedit%5Bserientermin_repeat_type%5D=' + serientermin_repeat_type +
381        '&tx_citkoevents3_publicedit%5Bserientermin_weekdays%5D=' + serientermin_weekdays +
382        '&tx_citkoevents3_publicedit%5Bserientermin_daymonthly_no%5D=' + serientermin_daymonthly_no +
383        '&tx_citkoevents3_publicedit%5Bserientermin_daymonthly_weekday%5D=' + serientermin_daymonthly_weekday +
384        '&tx_citkoevents3_publicedit%5Bserientermin_date_from%5D=' + serientermin_date_from +
385        '&tx_citkoevents3_publicedit%5Bserientermin_date_to%5D=' + serientermin_date_to +
386        '&tx_citkoevents3_publicedit%5Bserientermin_time_from%5D=' + serientermin_time_from +
387        '&tx_citkoevents3_publicedit%5Bserientermin_time_to%5D=' + serientermin_time_to +
388        '&tx_citkoevents3_publicedit%5Bevent_id%5D=' + '0' +
389        '&tx_citkoevents3_publicedit%5Bplugin%5D=publicedit';
390
391    await fetchHtmlAndAddToElement(completeUrl, targetid)
392}
393
394
395async function addNewMedia(targetUrl, progressId, targetId, fileId, titleId, licenseId, alternativeText) {
396    let formData = new FormData();
397
398    let fileData = document.getElementById(fileId).files[0];
399    formData.append(fileId, fileData);
400
401    let titleData = document.getElementById(titleId).value;
402    formData.append('tx_citkoevents3_publicadd[' + titleId + ']', titleData);
403
404    let licenseData = document.getElementById(licenseId).value;
405    formData.append('tx_citkoevents3_publicadd[' + licenseId + ']', licenseData);
406
407    let alternativeData = document.getElementById(alternativeText).value;
408    formData.append('tx_citkoevents3_publicadd[' + alternativeText + ']', alternativeData);
409
410    let completeUrl = checkUrlForRequestParameters(targetUrl) +
411        'type=100001' +
412        '&tx_citkoevents3_publicadd%5Baction%5D=newmedia' +
413        '&tx_citkoevents3_publicadd%5Bcontroller%5D=Async';
414
415    const response = await fetch(completeUrl, {
416        method: 'POST',
417        body: formData
418    });
419
420    if(!response.ok) {
421        throw new Error(`Response status: ${response.status}`)
422    }
423
424    const data = grepData(await response.text());
425
426    if(!isNaN(parseFloat(data)) && isFinite(data)) {
427        addMediaSelectionTolayer(targetUrl, data, targetId);
428    } else {
429        throw new Error('Fehler: ' + data);
430    }
431}
432
433async function addNewMediaEdit(targetUrl, progressId, targetId, fileId, titleId, licenseId) {
434    var formData = new FormData();
435
436    let fileData = document.getElementById(fileId).files[0];
437    formData.append(fileId, fileData);
438
439    let titleData = document.getElementById(titleId).value;
440    formData.append('tx_citkoevents3_publicedit['+ titleId + ']', titleData);
441
442    let licenseData = document.getElementById(licenseId).value;
443    formData.append('tx_citkoevents3_publicedit[' + licenseId + ']', licenseData)
444
445    let completeUrl = checkUrlForRequestParameters(targetUrl) +
446        'type=100002' +
447        '&tx_citkoevents3_publicedit%5Baction%5D=newmedia' +
448        '&tx_citkoevents3_publicedit%5Bcontroller%5D=Async' +
449        '&tx_citkoevents3_publicedit%5B' + titleId + '%5D=' + titleData +
450        '&tx_citkoevents3_publicedit%5B' + licenseId + '%5D=' + licenseData
451
452
453    const response = await fetch(completeUrl, {
454        method: 'POST',
455        body: formData
456    });
457
458    if(!response.ok) {
459        throw new Error(`Response status: ${response.status}`)
460    }
461
462    const data = grepData(await response.text());
463
464    if(!isNaN(parseFloat(data)) && isFinite(data)) {
465        addMediaSelectionTolayerEdit(targetUrl, data, targetId);
466    } else {
467        throw new Error('Fehler: ' + data);
468    }
469}
470
471function getMediaListBySearch(pageUrl, searchstring, targetid) {
472    let completeUrl =
473        checkUrlForRequestParameters(pageUrl) +
474        'type=100001' +
475        '&tx_citkoevents3_publicadd%5Baction%5D=searchmedia' +
476        '&tx_citkoevents3_publicadd%5Bcontroller%5D=Async' +
477        '&tx_citkoevents3_publicadd%5Bmedium_titel%5D=%25' + searchstring + '%25' +
478        '&tx_citkoevents3_publicadd%5Btargetid%5D=selectedmedia' +
479        '&tx_citkoevents3_publicadd%5Bplugin%5D=publicadd'
480
481    fetchHtmlAndAddToElement(completeUrl, targetid);
482}
483
484function getMediaListBySearchEdit(pageUrl, searchstring, targetid) {
485    let completeUrl =
486        checkUrlForRequestParameters(pageUrl) +
487        'type=100002' +
488        '&tx_citkoevents3_publicedit%5Baction%5D=searchmedia' +
489        '&tx_citkoevents3_publicedit%5Bcontroller%5D=Async' +
490        '&tx_citkoevents3_publicedit%5Bmedium_titel%5D=%25' + searchstring + '%25' +
491        '&tx_citkoevents3_publicedit%5Btargetid%5D=selectedmedia' +
492        '&tx_citkoevents3_publicedit%5Bplugin%5D=publicedit'
493
494    fetchHtmlAndAddToElement(completeUrl, targetid);
495}
496
497function addMediaSelectionTolayer(pageUrl, medium_id, targetid) {
498    let completeUrl =
499        checkUrlForRequestParameters(pageUrl) +
500        'type=100001' +
501        '&tx_citkoevents3_publicadd%5Baction%5D=addmedia' +
502        '&tx_citkoevents3_publicadd%5Bcontroller%5D=Async' +
503        '&tx_citkoevents3_publicadd%5Bmedium_id%5D=' + medium_id +
504        '&tx_citkoevents3_publicadd%5Bplugin%5D=publicadd'
505
506    fetchHtmlAndAddToElement(completeUrl, targetid);
507}
508
509function addMediaSelectionTolayerEdit(pageUrl, medium_id, targetid) {
510    let completeUrl =
511        checkUrlForRequestParameters(pageUrl) +
512        'type=100002' +
513        '&tx_citkoevents3_publicedit%5Baction%5D=addmedia' +
514        '&tx_citkoevents3_publicedit%5Bcontroller%5D=Async' +
515        '&tx_citkoevents3_publicedit%5Bmedium_id%5D=' + medium_id +
516        '&tx_citkoevents3_publicedit%5Bplugin%5D=publicedit';
517
518    fetchHtmlAndAddToElement(completeUrl, targetid);
519}
520function checkUrlForRequestParameters(urlString) {
521    if(urlString.indexOf('?') !== -1) {
522        urlString = urlString + '&';
523    }
524    else {
525        urlString = urlString + '?';
526    }
527    return urlString;
528}
529
530async function fetchHtmlAndAddToElement(completeUrl, htmlElementId) {
531    try {
532        const response = await fetch(completeUrl);
533
534        if(!response.ok) {
535            throw new Error(`Response status: ${response.status}`)
536        }
537
538        const parser = new DOMParser();
539        const htmlData = parser.parseFromString(grepData(await response.text()), 'text/html');
540        document.getElementById(htmlElementId).insertAdjacentHTML('beforeend', htmlData.querySelector('body').innerHTML);
541    } catch (error) {
542        console.error(error.message);
543    }
544}
545
546document.addEventListener('DOMContentLoaded', () => {
547    let permalinkBtn = document.getElementById('events3permaLink');
548    let moreTermsBtns = document.querySelectorAll('.events3showMoreTerms')
549    let einwilligung1 = document.getElementById('events3einwilligung1');
550    let einwilligung2 = document.getElementById('events3einwilligung2');
551    let addLocation = document.getElementById('events3addLocation');
552    let newLocation = document.getElementById('events3newLocation');
553    let addOrganiser = document.getElementById('events3addOrganiser');
554    let newOrganiser = document.getElementById('neworganiser');
555    let ortSelection = document.getElementById('event_ort_id');
556    let submitBtn = document.getElementById('events3addSubmitBtn');
557    let einzelTerminTab = document.getElementById('einzeltermin-tab');
558    let serienTerminTab = document.getElementById('serientermin-tab')
559    let einzelTerminEl = document.getElementById('einzeltermin');
560    let serienTerminEl = document.getElementById('serientermin');
561    let serienterminRepeatTypeEl = document.getElementById('serientermin_repeat_type');
562    let removeAllTermsBtn = document.getElementById('removeAllTerms');
563
564    if(typeof fancyboxversion != 'undefined' && fancyboxversion === '2') {
565        activateFancybox2();
566    }
567
568    if(permalinkBtn) {
569        permalinkBtn.addEventListener('click', function () {
570            copyToClipboard();
571            return false;
572        });
573    }
574
575    if(moreTermsBtns) {
576        moreTermsBtns.forEach((moreTermsBtn) => {
577            moreTermsBtn.addEventListener('click', function () {
578                let moreTermsUls =  document.querySelectorAll('.more-terms' + moreTermsBtn.dataset.eventId)
579                moreTermsUls.forEach((moreTermsUl) => {
580                    if(moreTermsUl.classList.contains('events3-hidden')) {
581                        moreTermsUl.classList.remove('events3-hidden');
582                    } else {
583                        moreTermsUl.classList.add('events3-hidden');
584                    }
585                })
586            });
587        })
588    }
589
590    if(einwilligung1 && einwilligung2) {
591        einwilligung1.addEventListener('click', () => {
592            checkRechtliches(einwilligung1, einwilligung2)
593        });
594
595        einwilligung2.addEventListener('click', () => {
596            checkRechtliches(einwilligung1, einwilligung2);
597        })
598    }
599
600    if(addLocation) {
601        addLocation.addEventListener('click', () => {
602            if(newLocation.classList.contains('events3-hidden')) {
603                newLocation.classList.remove('events3-hidden');
604            } else {
605                newLocation.classList.add('events3-hidden');
606            }
607        })
608    }
609
610    if(addOrganiser) {
611        addOrganiser.addEventListener('click', () => {
612            if(newOrganiser.classList.contains('events3-hidden')) {
613                newOrganiser.classList.remove('events3-hidden');
614            } else {
615                newOrganiser.classList.add('events3-hidden');
616            }
617        })
618    }
619
620    if(ortSelection) {
621        ortSelection.addEventListener('change', () => {
622            updateRooms(ortSelection.value, 'event_raum_id')
623        })
624    }
625
626    if(submitBtn) {
627        let eventsForm = document.querySelector('.citko-event-addform form');
628        eventsForm.addEventListener('submit', (e) => {
629            if(!checkFormFields()) {
630                e.preventDefault();
631            }
632        })
633        submitBtn.addEventListener('click', () => {
634            checkFormFields();
635        })
636    }
637
638    if(einzelTerminTab) {
639        einzelTerminTab.addEventListener('click', () => {
640            serienTerminEl.classList.remove('active');
641            einzelTerminEl.classList.add('active');
642        });
643    }
644
645    if(serienTerminTab) {
646        serienTerminTab.addEventListener('click', () => {
647            serienTerminEl.classList.add('active');
648            einzelTerminEl.classList.remove('active');
649        })
650    }
651
652    if(serienterminRepeatTypeEl) {
653        serienterminRepeatTypeEl.addEventListener('change', () => {
654            let serienterminRepeatType = serienterminRepeatTypeEl.value;
655            let weeklyEl = document.getElementById('weekly')
656            let daymonthlyEl = document.getElementById('daymonthly')
657
658            if(weeklyEl && daymonthlyEl) {
659                if(serienterminRepeatType === 'weekly' || serienterminRepeatType === '2weekly') {
660                    weeklyEl.classList.remove('events3-hidden');
661                    daymonthlyEl.classList.add('events3-hidden');
662                } else if(serienterminRepeatType === 'daymonthly') {
663                    weeklyEl.classList.add('events3-hidden');
664                    daymonthlyEl.classList.remove('events3-hidden');
665                } else {
666                    weeklyEl.classList.add('events3-hidden');
667                    daymonthlyEl.classList.add('events3-hidden');
668                }
669            }
670        })
671    }
672
673    if(typeof tabs != 'undefined') {
674        if(tabs.length >= 1) {
675            tabs.forEach((element, iterator) => {
676                let prevNavButton = getPreviousTabButton(iterator);
677                let nextNavButton = getNextTabButton(iterator);
678
679                if(prevNavButton) {
680                    document.querySelector('[aria-labelledby="' + element + '"] .quicktabnav-buttons').append(prevNavButton);
681                }
682                if(nextNavButton) {
683                    document.querySelector('[aria-labelledby="' + element + '"] .quicktabnav-buttons').append(nextNavButton)
684                }
685            })
686        }
687    }
688
689    if(removeAllTermsBtn) {
690        removeAllTermsBtn.addEventListener('click', () => {
691            let selectedTerms = document.getElementById('selectedterms');
692
693            if(selectedTerms) {
694                selectedTerms.innerHTML = '';
695            }
696        })
697    }
698
699    if(typeof EditFormSetRoomId !== 'undefined') {
700        updateRooms(EditFormSetRoomId,'event_raum_id');
701    }
702});
703

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.