PageSourceSearch

https://www.ernst-deutsch-theater.de/_assets/52b3d211a4f7093a176c0c5d2004bac7/JavaScripts/app.js?1787061382

js ernst-deutsch-theater.de collected 2026-10-02 07:44:06 UTC 16,420 bytes, 486 lines download raw bytes

1// Wrap IIFE around your code
2
3function slideToAccordionContent(){
4    var header = 0;
5    var hash = window.location.hash;
6
7    if (hash) {
8        setTimeout(function(){
9            $('html, body').animate({
10                scrollTop : $(hash).offset().top - header
11            },500, function() {
12                $(hash).addClass('show').find('.accordion-body').slideDown("slow");
13            });
14        }, 750);
15    }
16}
17
18function invisibleDateHelper(){
19    if($('#onlinebooking').length){
20        if($('#onlinebooking .singleEvent').not('.invisible-date').length < 2){
21            $('#onlinebooking,.subPage.vaDetail .shortInfo .anchor, a[name*=\'alleVA\']').hide();
22        }
23    }
24
25}
26
27function headerSearchbox(){
28    if($('.meta-nav .tx-indexedsearch-searchbox').length){
29        var submitBtn = $('.meta-nav #tx-indexedsearch-searchbox-button-submit');
30        submitBtn.click(function(e){
31            searchEntry = $('.meta-nav #tx-indexedsearch-searchbox-sword').val();
32
33            if(searchEntry === ''){
34                e.preventDefault();
35                $('.meta-nav').toggleClass('active-search');
36                $('.meta-nav #tx-indexedsearch-searchbox-sword').focus();
37            }
38        });
39    }
40}
41
42function anchorNav(){
43    if($('.create-anchor-item').length){
44        var anchorId, anchorTitle;
45        const URL= window.location.href;
46        $('.create-anchor-item').each(function(){
47            anchorId = $(this).attr('id');
48            anchorTitle = $(this).find('.inner-headline').text();
49            $('.anchor-nav').append('<a href="' + URL + '#' + anchorId + '" class="link">' + anchorTitle + '</a>');
50        });
51        $('.anchor-nav').show();
52
53    }
54
55}
56
57function videoConsent(){
58    if( $( '.videoWrapper, .videowrapper' ).length > 0 ) {
59        var _wrapper, _trigger;
60        $( '.videoWrapper, .videowrapper' ).each( function() {
61            _wrapper = $( this );
62
63            if (!!Cookies.get('omCookieConsent')) {
64                if(Cookies.get('videoConsent')==='1' || Cookies.get('omCookieConsent').search ("group-2.1") != '-1'){
65                    _wrapper.children( '.video_trigger' ).hide();
66                    _wrapper.children( '.video_trigger' ).siblings( '.video_layer' ).show().children( 'iframe' ).attr( 'src', _wrapper.children( '.video_trigger' ).attr( 'data-source' ));
67                }
68            } else {
69                if(Cookies.get('videoConsent')==='1'){
70                    _wrapper.children( '.video_trigger' ).hide();
71                    _wrapper.children( '.video_trigger' ).siblings( '.video_layer' ).show().children( 'iframe' ).attr( 'src', _wrapper.children( '.video_trigger' ).attr( 'data-source' ));
72                }
73            }
74
75            _wrapper.children( '.video_trigger' ).children( 'a.cta' ).click( function(e) {
76                Cookies.set('videoConsent', '1');
77                e.preventDefault();
78
79                $( '.video_trigger' ).each( function() {
80                    $(this).hide();
81                    $(this).siblings( '.video_layer' ).show().children( 'iframe' ).attr( 'src', $(this).attr( 'data-source' ));
82
83                });
84                /*
85                _trigger = $( this ).parent();
86                _trigger.hide();
87                _trigger.siblings( '.video_layer' ).show().children( 'iframe' ).attr( 'src', _trigger.attr( 'data-source' ));
88
89                 */
90
91
92            });
93        });
94    }
95
96}
97
98
99function rememberIsotopeFilter(){
100    if($('.filters').length || $('.vaDetail').length){
101        var choosenFilter;
102        if(Cookies.get('isotopeFilter')){
103            var activeFilter = Cookies.get('isotopeFilter');
104            var activeFilterEl = $('.filters').find("[data-filter='" + activeFilter + "']");
105            $('.filter').addClass('disable');
106            $(activeFilterEl).removeClass('disable');
107        }
108
109        $('.filters .filter').click(function(){
110            Cookies.remove('isotopeFilter', { path: '' });
111            choosenFilter = $(this).data('filter');
112            Cookies.set('isotopeFilter', choosenFilter, { expires: 7, path: '' });
113        });
114    }else{
115        Cookies.remove('isotopeFilter');
116    }
117}
118
119function buttonScheduleMore() {
120    $('#tx_edt_schedule_loadmore').click(function (event) {
121        event.preventDefault();
122        var $button = $(this);
123        var $placeholder = $('#tx_edt_schedule_loadmore_placeholder');
124
125        var $loader = $('<span class="spinner-border spinner-border-sm ms-2" role="status" aria-hidden="true"></span>');
126        $button.prop('disabled', true);
127        $placeholder.after($loader).show();
128
129        $.get(
130            $placeholder.data('url'),
131            function (response) {
132                $placeholder.replaceWith(response);
133                $button.prop('disabled', false);
134                $loader.remove();
135            }
136        ).fail(function() {
137            alert('Fehler');
138            $button.prop('disabled', false);
139            $loader.remove();
140        });
141        return false;
142    });
143}
144
145function videoHome(){
146    $( ".arrow.bounce" ).mouseenter(function() {
147        $('video').addClass('stopfade');
148    });
149    $( ".arrow.bounce" ).mouseleave(function() {
150        $('video').removeClass('stopfade');
151    });
152    $(".arrow.bounce").click(function() {
153        $('html, body').animate({
154            scrollTop: $("section.body").offset().top
155        }, {
156            duration: 1000,
157            easing: 'easeInOutQuart'
158        });
159    });
160}
161
162function initArtistModal() {
163    const artistModal = document.getElementById('artistModal')
164    if (artistModal) {
165        const loaderMarkup = artistModal.querySelector('.modal-body').innerHTML;
166        artistModal.addEventListener('show.bs.modal', event => {
167            artistModal.querySelector('.modal-body').innerHTML = loaderMarkup;
168            const button = event.relatedTarget;
169            if (button.classList.contains('link-artist')) {
170                const href = button.getAttribute('href');
171
172                $.get(
173                    href,
174                    function (response) {
175                        artistModal.querySelector('.modal-body').innerHTML = response;
176                    }
177                );
178            }
179        });
180    }
181}
182
183function eventTrailerinModal(){
184    if($('#eventTrailer').length){
185        const eModalEl = document.getElementById('eventTrailer');
186        eModalEl.addEventListener('show.bs.modal', event => {
187            $('#eVid').get(0).play();
188        });
189        eModalEl.addEventListener('hidden.bs.modal', event => {
190            $('#eVid').get(0).pause();
191            $('#eVid').get(0).currentTime = 0;
192        });
193    }
194
195
196}
197function countdown(){
198    // Ziel-Datum und -Uhrzeit
199    const zielDatum = new Date("2025-06-02 12:00:00");
200
201// Funktion, um die verbleibende Zeit zu berechnen
202    function updateCountdown() {
203        const jetzt = new Date();
204        const verbleibendeZeit = zielDatum.getTime() - jetzt.getTime();
205
206        // Überprüfen, ob das Ziel-Datum erreicht ist
207        if (verbleibendeZeit < 0) {
208            clearInterval(countdownIntervall); // Countdown stoppen
209            // Hier kannst du eine andere Nachricht oder Aktion einfügen, wenn das Ziel-Datum erreicht ist
210            return;
211        }
212
213        // Zeit in Tage, Stunden, Minuten und Sekunden umrechnen
214//        const tage = Math.floor(verbleibendeZeit / (1000 * 60 * 60 * 24));
215        const stunden = Math.floor((verbleibendeZeit % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
216        const minuten = Math.floor((verbleibendeZeit % (1000 * 60 * 60)) / (1000 * 60));
217        const sekunden = Math.floor((verbleibendeZeit % (1000 * 60)) / 1000);
218
219        // Verbleibende Zeit in einem HTML-Element anzeigen
220        document.getElementById("countdown").innerHTML =
221            stunden +
222            " <span>Std.</span> " +
223            minuten +
224            " <span>Min.</span> " +
225            sekunden +
226            " <span>Sek.</span>";
227    }
228
229// Countdown starten
230    const countdownIntervall = setInterval(updateCountdown, 1000);
231
232// Initialen Countdown anzeigen
233    updateCountdown();
234}
235
236(function($){
237    $(document).ready(function() {
238        videoHome();
239
240
241        if($('#edtModalCenter').length){
242            var myModal = new bootstrap.Modal(document.getElementById("edtModalCenter"), {});
243            document.onreadystatechange = function () {
244                myModal.show();
245            };
246        }
247        let hamburger = document.querySelectorAll(".hamburger");
248        let menu = document.querySelector('.navbar-collapse');
249        let overlay = document.querySelector('.overlay');
250
251        hamburger.forEach(el => el.onclick = function () {
252            this.classList.toggle ("checked");
253            menu.classList.toggle ("collapsed");
254            overlay.classList.toggle ("collapsed");
255        });
256
257        videoConsent();
258//        invisibleDateHelper();
259        headerSearchbox();
260        anchorNav();
261        rememberIsotopeFilter();
262        buttonScheduleMore();
263        initArtistModal();
264        eventTrailerinModal();
265
266        if($(".accordion").length){
267            if($(".accordion.show").length){
268                $(".accordion.show").each(function(){
269                    $(this).find('.accordion-body').slideToggle( "slow");
270                })
271            }
272
273            $('.accordion .label .cta').click(function(e){
274                e.preventDefault();
275                $(this).parents(".accordion").toggleClass('show');
276                $(this).parents(".accordion").find('.accordion-body').slideToggle( "slow");
277            });
278
279            slideToAccordionContent();
280        }
281
282        if($('.stage .royalSlider').length){
283            $('.stage .royalSlider').royalSlider({
284
285                autoScaleSliderWidth: 1450,
286                imageScaleMode: 'fill',
287                imageAlignCenter:true,
288                blockLoop: true,
289                loop: true,
290                numImagesToPreload: 6,
291                keyboardNavEnabled: true,
292                transitionSpeed: 1200,
293                block: {
294                    speed: 1250,
295                    fadeEffect: true,
296                    moveEffect: 'right',
297                    moveOffset: 1250
298                },
299                autoPlay: {
300                    // autoplay options go gere
301                    enabled: true,
302                    pauseOnHover: true,
303                    delay: 5000,
304                    stopAtAction: false
305                }
306
307            });
308        }
309
310        if($('.owl-carousel.home').length){
311            $('.owl-carousel.home').owlCarousel({
312                items: 1,
313                loop: true,
314                nav: false,
315                dots: true,
316                smartSpeed: 750,
317                autoplay: true,
318                autoplayTimeout: 5000,
319                autoplayHoverPause: true
320            });
321        }
322        if($('.owl-carousel.event').length){
323            $('.owl-carousel.event').owlCarousel({
324                items: 1,
325                autoplay: true,
326                loop: true,
327                nav: false,
328                dots: false,
329                smartSpeed: 750,
330                animateOut: 'fadeOut',
331                margin: 1
332            });
333        }
334
335        if($('.owl-carousel.timeline').length){
336            var start = $('.indexedItem').index();
337            $('.owl-carousel.timeline').owlCarousel({
338                loop: false,
339                nav: false,
340                dots: false,
341                startPosition: start,
342                center: true,
343                navText: ['',''],
344                responsive: {
345                    0: {
346                        items: 1
347                    },
348                    320: {
349                        items: 3
350                    },
351                    544: {
352                        items: 4
353                    },
354                    768: {
355                        items: 5
356                    },
357                    1100: {
358                        items: 11
359                    },
360                    1500: {
361                        items: 15
362                    }
363                }
364
365            });
366        }
367
368        if($('.grid').length){
369            var $grid = $('.grid').imagesLoaded( function() {
370                // init Isotope after all images have loaded
371
372                var matches = location.hash.match( /filter=([^&]+)/i );
373
374                if(Cookies.get('isotopeFilter')){
375                    var cookieFilter = Cookies.get('isotopeFilter');
376                }
377
378                if(matches){
379
380                    var attr,
381                        filterTag,
382                        indexOfFilterString,
383                        catId,
384                        filterTags = [],
385                        filterString = matches[1];
386
387                    $('.filters .filter').each(function(){
388                        if($(this).data('filtertag')){
389                            filterTag = $(this).data('filtertag').split(' ');
390                            filterTags = $.merge( filterTags, filterTag );
391                        }
392
393                    });
394
395                    indexOfFilterString = $.inArray( filterString, filterTags );
396                    if(indexOfFilterString != '-1'){
397                        catId = filterTags[indexOfFilterString - 1];
398
399                    }
400
401                    $('.filters .filter').each(function(){
402                        attr = $(this).data('filter');
403                        if (typeof attr !== 'undefined' && attr !== false) {
404                            if(attr == '.' + catId || attr == '*'){
405                                $(this).removeClass('disable');
406                            }
407                        }
408
409                    });
410
411                    $grid.isotope({
412                        itemSelector: '.element-item',
413                        layoutMode: 'fitRows',
414                        filter: '.' + matches[1]
415                    });
416                }else{
417                    if(cookieFilter){
418                        $grid.isotope({
419                            itemSelector: '.element-item',
420                            layoutMode: 'fitRows',
421                            filter: cookieFilter
422                        });
423                    }else{
424                        $grid.isotope({
425                            itemSelector: '.element-item',
426                            layoutMode: 'fitRows',
427                            filter: '.category_2, .category_3, .category_4'
428                        });
429                    }
430                }
431
432
433
434            });
435
436            $('.filter#filter_id9').addClass('disable');
437
438            // filter items on button click
439            $('.filters').on( 'click', '.filter:not(.reset)', function() {
440                $('.filter').addClass('disable');
441                $(this).removeClass('disable');
442                $('.filter.reset').removeClass('disable');
443                var filters = ['.helper'];
444                $('.filter:not(.disable,.reset)').each(function(){
445                    var filterValue = $(this).attr('data-filter');
446                    filters.push( filterValue );
447                });
448                filters = filters.join(', ');
449                $grid.isotope({ filter: filters });
450            });
451            $('.filters').on( 'click', '.filter.reset', function() {
452                $('.filter').removeClass('disable');
453                $(this).addClass('disable');
454                var filters = ['.helper'];
455                $('.filter:not(.disable)').each(function(){
456                    var filterValue = $(this).attr('data-filter');
457                    filters.push( filterValue );
458                });
459                filters = filters.join(', ');
460                $grid.isotope({ filter: filters });
461            });
462        }
463
464       $('[data-bs-toggle="tooltip"]').tooltip();
465
466        function scrollToAnchor(aid){
467            var aTag = $("a[name='"+ aid +"']");
468            $('html,body').animate({scrollTop: aTag.offset().top},'slow');
469        }
470
471        $(".anchor").click(function(e) {
472            e.preventDefault();
473            scrollToAnchor('alleVA');
474        });
475
476        $('[data-toggle="collapse"]').on('click', function() {
477            $('.icon-bar').toggleClass('activated');
478        });
479
480        var detector = new MobileDetect(window.navigator.userAgent);
481        if(detector.mobile()){
482            $('.cta').addClass('is-mobile');
483        }
484
485    });
486})(jQuery);

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.