PageSourceSearch

https://staatstheater-hannover.de/media/scripts/script.js

js staatstheater-hannover.de collected 2026-09-24 09:42:56 UTC 4,621 bytes, 163 lines download raw bytes

1$(document).ready(function () {
2
3    // siehe presse-neu,mitmachen
4    function customBtnStatus() {
5        var currentParams = new URLSearchParams(window.location.search);
6
7        if (currentParams.has("keyword")) {
8
9            var breakOut = false;
10
11            var paramsValue = currentParams.get("keyword"); //get value of parameter
12
13            $(".stha.btn-custom a").each(function (index) {
14                var urlButton = ($(this).attr('href'));
15                var paramsButton = getURLParameter(urlButton, 'keyword');
16
17                if (paramsButton == paramsValue) { //check values of filter buttons
18                    $(this).parent().addClass("active_filter");
19
20                    breakOut = true;
21                }
22
23                if (paramsValue == "all" && paramsButton == null) { // display all 
24                    $(this).parent().addClass("active_filter");
25
26                    breakOut = true;
27                }
28
29                if (breakOut) {
30                    return false;
31                }
32            });
33        }
34    }
35
36    function capitalizeFirstLetter(val) {
37        return String(val).charAt(0).toUpperCase() + String(val).slice(1);
38    }
39    function getURLParameter(url, name) {
40        return (RegExp(name + '=' + '(.+?)(&|$)').exec(url) || [, null])[1];
41    }
42
43    customBtnStatus();
44
45    //toggle second level nav on mobile
46    if ($(window).width() < 1024) {
47        $('.button-second-level_wrapper').click(function () {
48            $('.nav-level-2 .list-second-level').toggleClass('open-list-second-level');
49            $(this).toggleClass('open-button-second-level_wrapper');
50        });
51
52    }
53
54
55    //der page footer soll immer frei bleiben
56
57
58    $(window).on("scroll resize", function () {
59
60        if ($("body").hasClass("page-staatsoper") || $("body").hasClass("page-schauspiel")) {
61            var scrollHeight = $(document).height();
62            var scrollPosition = $(window).height() + $(window).scrollTop();
63            var scrollFactor = (scrollHeight - scrollPosition) / scrollHeight;
64            if (scrollFactor < 0.016) {
65                // when scroll to bottom of the page
66                $('.header-timetable-wrapper').addClass('page-scrolled-down');
67            } else if (scrollFactor > 0.026) {
68                // when scroll upper
69                $('.header-timetable-wrapper').removeClass('page-scrolled-down');
70            }
71        }
72    });
73
74
75
76
77    $("header , main").click(function () {
78        //$('.user-panel').removeClass("user-panel-open");
79
80//        $("#user-panel").removeClass("user-panel-open");
81//        $("#user-area-button").removeClass("user-area-button-open");
82//        window.location.hash = '';
83//    
84//        console.log("toggle");
85    });
86
87
88    // calculate main height, if content is to less -> footer should be always at the bottom
89    function setFooterPosition() {
90        $("main").css("min-height", "inherit");
91        var height_main_default = $("main").height();
92        var height_window = window.innerHeight;
93        var height_header = $("header").height();
94        var height_footer = $("footer").outerHeight();
95
96        var height_main = height_window - (height_header + height_footer + 35);
97
98        if (height_main_default < height_main) {
99
100            $("main").css("min-height", height_main);
101
102        }
103    }
104    ;
105
106    setFooterPosition();
107
108
109    $(window).on("resize", function () {
110        setFooterPosition();
111    });
112
113    /*
114     $('p').each(function () {
115     const $this = $(this);
116     if ($this.html().replace(/\s|&nbsp;/g, '').length === 0)
117     $this.remove();
118     });
119     */
120
121    //find external links and add underline
122    var current_url = window.location.hostname;
123    var link_url = "";
124
125    $('a').each(function () {
126        if ($(this).attr('href') > 0) {
127            link_url = $(this).attr('href');
128
129            if (link_url.indexOf(current_url) >= 0) {
130            } else {
131                $(this).addClass("external_link");
132            }
133        }
134    });
135});
136
137
138
139
140//setTimeout(function () {
141////    var lightbox = GLightbox({
142////        touchNavigation: true,
143////        loop: true,
144////        moreText: "weiterlesen"
145////    });
146////    lightbox.on('open', (target) => {
147////        console.log('lightbox opened');
148////    });
149//    var lightboxMediaContainer = GLightbox({
150//        selector: '.glightbox_mediacontainer',
151//        touchNavigation: true,
152//        loop: true,
153//        moreText: "weiterlesen"
154//    });
155//
156////    var lightboxDescription = GLightbox({
157////        selector: '.glightbox2'
158////    });
159////    console.log("geladen glightbox");
160//}, 1000);
161
162
163

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.