PageSourceSearch

https://www.korbach.de/layout/_premium/assets/js/layout.js?__ts=1718093961

js korbach.de collected 2026-10-02 17:50:08 UTC 7,817 bytes, 218 lines download raw bytes

1jQuery(document).ready(function($) {
2    
3    /*Tabs Destination*/
4    var setTabFocusCls = false;
5    $( "#tabs" ).tabs({
6        activate: function(ev, ui) {
7            if (setTabFocusCls) {
8                $('.ui-tabs-tab', ev.target).removeClass('tab-focus');
9                $('.ui-tabs-active', ev.target).addClass('tab-focus');
10                setTabFocusCls = false;
11            }
12        }
13    }).on('keyup', function(ev) {
14        if (ev.keyCode == 37 || ev.keyCode == 39) {
15            setTabFocusCls = true;    
16        }
17    });
18    
19	// Suche
20	$('.suche-btn, .suche-btn-fs').attr({'aria-expanded': 'false', 'aria-label': 'Volltextsuche \u00f6ffnen' });
21	// -> modern
22	$('.suche-btn, .open-modern-search').on('click', function() {
23		$('.suche-btn, .suche-outer').toggleClass('active');
24		$('.suche-outer form input, .suche-outer form button').attr('tabindex', function(index, attr){
25			return attr == -1 ? null : -1;
26		});
27		if ($('.suche-btn').hasClass('active')) {
28		    $('.suche-btn').attr({ 'aria-expanded': 'true', 'aria-label': 'Volltextsuche schlie\u00dfen' });
29		    setTimeout(function() {
30				$('.suche-outer form input[type=text]').focus();
31			}, 25);
32		} else {
33		    $('.suche-btn').attr({ 'aria-expanded': 'false', 'aria-label': 'Volltextsuche \u00f6ffnen' }).focus();
34		}
35	});
36	// -> fullscreen
37	$('.suche-btn-fs, .open-fullscreen-search').on('click', function() {
38		$('.suche-btn-fs').toggleClass('active');
39		$('.suche-fullscreen').toggleClass('flex');
40		$('.top').toggleClass('activesearch');
41		$('html').toggleClass('noscroll');
42		if ($('.suche-btn-fs').hasClass('active')) {
43		    $('.suche-btn-fs').attr({ 'aria-expanded': 'true', 'aria-label': 'Volltextsuche schlie\u00dfen' });
44		    $('.suche form input').focus();    
45		} else {
46		    $('.suche-btn-fs').attr({ 'aria-expanded': 'false', 'aria-label': 'Volltextsuche \u00f6ffnen' }).focus();
47		}
48	});
49	
50    // Navigation per Sprunglink öffnen Desktop
51    $('.jump-mainmenu').on('click', function(ev) {
52        console.log($('.header-right .modern-nav-btn'))
53        $('.header-right .modern-nav-btn').focus().trigger('click');
54        ev.stopPropagation();
55        ev.preventDefault();
56	});
57	
58	// Navigation per Sprunglink öffnen mobil
59	$('.jump-mainmenu-mob').on('click', function(ev) {
60        $('.modern-nav .modern-nav-btn').focus().trigger('click');
61        ev.stopPropagation();
62        ev.preventDefault();
63	});
64	
65	$.fn.ikissKeepFocus({
66		elements: [
67			{ selector: '#cookie-note' },
68			//{ selector: '.modal-window-content' },
69			{ selector: '.header-right .flex-inner', onKeyDown:function() { return $('.suche-fullscreen').hasClass('flex'); }, isVisible: function() { return $('.suche-fullscreen').hasClass('flex'); }  },
70			{ selector: '.suche-fullscreen', isVisible: function() { return $('.suche-fullscreen').hasClass('flex'); }  }
71		]
72	});
73
74	// Accordion
75	if ($.fn.ikissAccordion) {
76		
77		$('.accordion').ikissAccordion({
78			iconStyle			: 'far',
79			iconOpen			: 'fa-plus',
80			iconClose			: 'fa-minus',
81			autoOpenFirst		: false, // bei pauschaler Aktivierung muss auf dem Parameterformular "ix_auto_open_first" auskommentiert werden
82			autoClose			: false, // bei pauschaler Aktivierung muss auf dem Parameterformular "ix_auto_close" auskommentiert werden
83			activeCls			: 'active'
84		});
85		
86		// Alte Toggler auf Accordion umstellen
87		ikissAccordion({
88			titleSelector		: '.toggler-title',
89			containerSelector	: '.toggler-container'
90		});
91		ikissAccordion({
92			titleSelector		: '.toggler-link',
93			containerSelector	: '.toggler-container'
94		});
95		
96        //Flexslider resize, wenn z.B. inital hidden
97        $('.accordion .accordion-title').on('click',function(){
98            var rootNode = $(this).next('.accordion-container'),
99                slideNodes = $('.flexslider', rootNode);
100            
101            slideNodes.each(function(idx, el){
102                var fs = $(this).data('flexslider');
103                if (fs) {
104                    setTimeout(function() {
105                        fs.setup();
106                        fs.resize();
107                    }, 10);
108                    
109                    setTimeout(function() {
110                        $(window).trigger('resize'); 
111                    }, 250);
112        
113                }
114            });
115        })
116
117	}
118	
119	// BITV: Fokus-Hervorhebung durch Tabulator-Taste mit spezieller CSS-Klasse formatieren
120	/* TH, 11.06.2024, TASK20538 */
121    $('body').on('focusin focusout', 'button, input, select, textarea, a, *[tabindex]', function(ev) {
122        var me = this;
123        if (ev.type == 'focusout') {
124            if ($(me).hasClass('js-link-source')) {
125                $(me).closest('.js-link').removeClass('tab-focus');
126            } else {
127                $(me).removeClass('tab-focus');
128            }
129            $(window).off('keyup.tabkey');
130        } else {
131            $(window).one('keyup.tabkey', function (e) {
132                var keyCode = (e.keyCode ? e.keyCode : e.which);
133                if (keyCode == 9 || keyCode == 13) {
134                    if (!$('.tab-focus', me).length) {
135                        $(me).closest('.tab-focus').removeClass('tab-focus');
136                        if ($(me).hasClass('js-link-source')) {
137                            $(me).closest('.js-link').addClass('tab-focus');
138                        } else {
139                            $(me).addClass('tab-focus');
140                        }
141                    }
142                }
143            });
144        }
145    });
146
147	// Flexslider - Anpassung prev/nex Icons bei Tabulator-Taste
148	$('body').on('focusin focusout', 'a[class*="next"], a[class*="prev"]', function(ev) {
149		var me		= this,
150			fVars	= null;
151		
152		$(me).parents().filter(function() { 
153			return $(this).data('flexslider'); 
154		}).each(function() { 
155			var fVars	= $(this).data('flexslider').vars,
156				mode	= /next/.test(me.className) ? 'next' : 'prev';
157			
158			if (!fVars[mode+'TextOnTab'])
159				return;
160			
161			if (ev.type == 'focusout') {
162				$(me).html(fVars[mode+'Text']);
163				$(window).off('flexslidertabkey');
164			} else {
165				$(window).one('keyup.flexslidertabkey', function (e) {
166					var keyCode = (e.keyCode ? e.keyCode : e.which);
167					if (keyCode == 9 || keyCode == 13) {
168						$(me).html(fVars[mode+'TextOnTab']);
169					}
170				});
171			}
172		});
173	});
174	
175	// Suchergebnis/Listengenerator: JavaScript-Link zur Detailansicht
176	/* TH, 11.06.2024, TASK20538 */
177    $('.js-link').on('click', function(ev) {
178        
179        // bei no-js-link sowie auf echten Links keine Aktion
180        if ($(ev.target).closest('.no-js-link, a').length) return;
181        
182        // ansonsten den Link aus js-link-source aufrufen
183        if ($('.js-link-source', this).length) {
184            $('.js-link-source', this)[0].click();
185            return;
186        }
187    });
188    
189    // Suchergebnis/Listengenerator: Icons dynamisch skalieren
190    /* TH, 11.06.2024, TASK20538 */
191    (function() {
192        var icons = $('.js-icon-resize').parent();
193        var iconResize = function() {
194            icons.each(function() {
195                var w = $(this).width(),
196                    h = $(this).height(),
197                    minSize = (Math.min(w,h)/2);
198                this.style.fontSize = minSize + 'px';
199            });
200        }
201        $(window).on('resize', iconResize);
202        iconResize();
203    })();
204    
205});
206
207// Variable für Scrollbar-Breite 
208document.documentElement.style.setProperty('--scrollbar-width', (window.innerWidth - document.documentElement.clientWidth) + "px");
209
210// Readspeaker
211window.rsConf = {
212    cb: {
213        ui: {
214            open: function() { $('#readthis').addClass('rs_active'); }, // Klasse ergaenzen, um alle Aufklapper zu oeffnen
215            close: function() { location.reload(); } // Seite aktualisieren, wenn Readspeaker geschlossen wird, da danach das JS nicht mehr funktioniert
216        }
217    }
218};

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.