PageSourceSearch

https://www.kutting.de/typo3conf/ext/h_grid/Resources/Public/JavaScript/main.js?1726470790

js kutting.de collected 2026-10-06 20:41:18 UTC 14,852 bytes, 430 lines download raw bytes

1/* ==========================================================================
2   Ready Script: defaults
3   ========================================================================== */
4
5$(document).ready(function() {
6	/* ==========================================================================
7	   outdatedBrowser Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
8	   ========================================================================== */
9	outdatedBrowser({
10	    bgColor: '#279286',
11	    color: '#ffffff',
12	    lowerThan: 'transform',
13	    languagePath: '/fileadmin/templates/js/vendor/lang/de.html'
14	})
15
16	$('html, body').animate({scrollTop: 0}, 0);
17	setTimeout(function() {
18		if (location.hash) {
19			var hash = window.location.hash;
20
21			if ($(hash).length > 0) {
22				$('html,body').animate({
23					scrollTop: ($(hash).offset().top - $('header').height())
24				}, 1000);
25			}
26		}
27	}, 1);
28
29    /* ==========================================================================
30       'FIX UL/P MENU Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
31       ========================================================================== */
32	$('ul p').contents().unwrap();
33
34    /* ==========================================================================
35       'FIX SEARCH Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
36       ========================================================================== */
37	$('.search-header .tx-indexedsearch-searchbox').nextAll().remove()
38
39    /* ==========================================================================
40       'DROPDOWN / LANGUAGE MENU Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
41       ========================================================================== */
42	$('select.language').select2({
43	    minimumResultsForSearch: -1
44	});
45    $('select.language').on('change', function() {
46		window.location.href = $(this).val();
47    })
48
49    /* ==========================================================================
50       ANCHOR MENU Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
51       ========================================================================== */
52	$('a:not(.nav-link)[href*="#"]').click(function(e) {
53		var href = $(this).attr("href");
54		var hash = href.substr(href.indexOf("#"));
55
56		if ($(hash).length > 0) {
57			e.preventDefault();
58			$('html,body').animate({
59				scrollTop: ($(hash).offset().top - $('header').height())
60			}, 1000, function(e) {
61				if(history.pushState) {
62					history.pushState(null, null, hash);
63				}
64				else {
65					location.hash = hash;
66				}
67			});
68		}
69	});
70
71    /* ==========================================================================
72       BURGER MENU Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
73       ========================================================================== */
74	$('#mobile').click(function(e){
75		e.preventDefault();
76		$('html').toggleClass('openmenu');
77	});
78
79    /* ==========================================================================
80       MENU Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
81       ========================================================================== */
82	$('nav.nav > ul li.element1.hassub > a').click(function(e){
83		/*e.preventDefault();
84		$('.search-header').removeClass('open');
85		$('.fa-search').parent().removeClass('open');
86		$('nav.nav > ul li.element1 > a').not($(this)).removeClass('open');
87		$(this).toggleClass('open');
88		$('.outer-ebene2').css('height', '').removeClass('height');
89		if ($(this).hasClass('open') && $(this).parent().find('.ebene3').length > 0) {
90		    var maxHeight = $(this).parent().find('.ebene2').outerHeight();
91			if ($(this).parent().find('.ebene3').length > 0 && $(this).parent().find('.ebene4').length > 0) {
92			    if ($(this).parent().find('.ebene3').outerHeight() > $(this).parent().find('.ebene2').outerHeight()) {
93					maxHeight = $(this).parent().find('.ebene3').outerHeight();
94			    }
95				if ($(this).parent().find('.ebene4').outerHeight() > $(this).parent().find('.ebene3').outerHeight()) {
96					maxHeight = $(this).parent().find('.ebene4').outerHeight();
97			    }
98			}else if ($(this).parent().find('.ebene3').length > 0 && !$(this).parent().find('.ebene4').length > 0) {
99			    if ($(this).parent().find('.ebene3').outerHeight() > $(this).parent().find('.ebene2').outerHeight()) {
100					maxHeight = $(this).parent().find('.ebene3').outerHeight();
101			    }
102			}
103			$('.outer-ebene2').css('height', maxHeight).addClass('height');
104		}*/
105	});
106	$('.fa-search').parent().click(function(e){
107		/*e.preventDefault();
108		$('nav.nav > ul li.element1 > a').not($(this)).removeClass('open');
109		$(this).toggleClass('open');
110		$('.search-header').toggleClass('open');*/
111	});
112	$('nav.nav > ul li.element2.hassub > a').click(function(e){
113		/*e.preventDefault();
114		$('nav.nav > ul li.element2 > a').not($(this)).removeClass('open');
115		$(this).toggleClass('open');*/
116	});
117	$('nav.nav > ul li.element3.hassub > a').click(function(e){
118		/*e.preventDefault();
119		$('nav.nav > ul li.element3 > a').not($(this)).removeClass('open');
120		$(this).toggleClass('open');*/
121	});
122
123    /* ==========================================================================
124       Slider-Scroller Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
125       ========================================================================== */
126	$('.flexslider li .scroll-down a').click(function(e) { 
127		var scrollTop		= $(this).closest('.flexslider-container').height(),
128			elementOffset	= $(this).closest('.flexslider-container').offset().top,
129			scrollto		= (elementOffset + scrollTop);
130		$('html, body').animate({scrollTop: scrollto}, 1500);
131	});
132
133    /* ==========================================================================
134       TABNAV MENU Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
135       ========================================================================== */
136    $(".nav-tabs a").click(function(){
137		$(this).tab('show');
138		$(this).closest('.nav-tabs').find('a').removeClass('active');
139		$(this).addClass('active');
140    });
141});
142
143$(window).on('load', function() {
144    /* ==========================================================================
145       Slider Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
146       ========================================================================== */
147	$('a[rel*="lightbox"]').magnificPopup({ 
148		type:'image',
149		// Delay in milliseconds before popup is removed
150		removalDelay: 0,
151
152		// Class that is added to popup wrapper and background
153		// make it unique to apply your CSS animations just to this exact popup
154		mainClass: 'mfp-fade',
155		gallery: {
156			enabled: true,
157			navigateByImgClick: true,
158			preload: [0,2] // Will preload 0 - before current, and 1 after the current image
159		}
160	});
161
162	$('a[href*="//vimeo.com/"], a[href*="//www.youtube.com/"]').magnificPopup({ 
163		type:'iframe',
164
165		// Delay in milliseconds before popup is removed
166		removalDelay: 0,
167
168		type: 'iframe',
169		iframe: {
170			markup: '<div class="mfp-iframe-scaler">'+
171			'<div class="mfp-close"></div>'+
172			'<iframe class="mfp-iframe" frameborder="0" allowfullscreen></iframe>'+
173			'<div class="mfp-title">Video</div>'+
174			'</div>'
175		},
176		callbacks: {
177			markupParse: function(template, values, item) {
178				values.title = item.el.attr('title');
179			}
180		},
181
182		// Class that is added to popup wrapper and background
183		// make it unique to apply your CSS animations just to this exact popup
184		mainClass: 'mfp-fade',
185		gallery: {
186			enabled: true,
187			navigateByImgClick: true,
188			preload: [0,0] // Will preload 0 - before current, and 1 after the current image
189		}
190	});
191
192    /* ==========================================================================
193       Lightbox Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
194       ========================================================================== */
195	$('a[href*="/lightbox/"]').click(function(e) {
196		prevent_default(e);
197		if ($(this).closest('div.mask_socialmedia').length == 0) {
198			var url = $(this).attr('href');
199			var pop = true;
200
201			/*if (Modernizr.mq('(max-width: 767px)')) {
202				var pop = false;
203			}*/
204
205			if (pop == true) {
206				$.magnificPopup.open({
207					items: {
208						src: url
209					},
210					type:'ajax',
211					closeMarkup: '',
212					mainClass: 'mfp-ajax',
213					removalDelay: 0,
214					preloader: false,
215					fixedContentPos: true,
216					fixedBgPos: true,
217					overflowY: 'scroll',
218					callbacks: {
219						parseAjax: function(mfpResponse) {
220							mfpResponse.data = $(mfpResponse.data).find('div#ajax');
221							history.pushState(null, null, url);
222						},
223
224						ajaxContentAdded: function() {
225							$('.ajax-content > .flexslider-container').remove();
226							$('html').addClass('openlightbox');
227							resizeiFrame();
228							loadSlider();
229							$('.mfp-ajax section.content:first-child .inner-content').append('<a href="javascript:void(0);" class="mfp-close"><span class="icon-close"></span></a>');
230							$('.mfp-close').click(function(e) {
231								var magnificPopup = $.magnificPopup.instance; 
232								magnificPopup.close(); 
233							});
234							$(window).trigger('scroll');
235
236							setTimeout(function() {
237	  							$(window).trigger('scroll');
238							}, 2000);
239						},
240
241						close: function(mfpResponse) {
242							$('html').removeClass('openlightbox');
243							window.history.back();
244						}
245					}
246				});
247			}else{
248				window.location.href = $(this).attr('href');
249			}
250		}
251	});
252
253	/* ==========================================================================
254	   Mmenu Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
255	   ========================================================================== */
256	var home = $('#logo').find('a').attr('href');
257	var suche = $('header.header li a i[class*="-search"]').parent().attr('href');
258
259    const menu = new Mmenu( "#mobilemenu", {
260       "extensions": [
261          "position-right"
262       ],
263       "iconbar": {
264          "use": true,
265          "top": [
266             "<a href='"+home+"'><i class='fa fa-home'></i></a>",
267             "<a href='"+suche+"'><i class='fas fa-search'></i></a>"
268          ]
269       },
270    });
271
272    // Get the API
273    const api = menu.API;
274
275    /* ==========================================================================
276       BURGER MENU Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
277       ========================================================================== */
278	$('body').delegate('#mobile', 'click contextmenu touchstart touchmove touchend touchcancel', function(e){
279		$('html').addClass('openmenu');
280	    api.open();
281	});
282	$('body').delegate('.mm-wrapper__blocker', 'click contextmenu touchstart touchmove touchend touchcancel', function(e){
283		$('html').removeClass('openmenu');
284	    api.close();
285	});
286
287	$(window).resize(function(){
288		$('html').removeClass('openmenu');
289		api.close();
290	}); 
291
292   /* ==========================================================================
293      CURSOR Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
294      ========================================================================== */
295
296   /*var myMouse = '<div class="pointer-dot"></div><div class="pointer-outline"><span class="pointer-text"></span></div>';
297   $(myMouse).appendTo("body");
298
299	function cursor() {
300		var cursor = {
301			delay: 3,
302			_x: 0,
303			_y: 0,
304			endX: (-20),
305			endY: (-20),
306			$dot: document.querySelector('.pointer-dot'),
307			$outline: document.querySelector('.pointer-outline'),
308
309			init: function() {
310				this.setupEventListeners();
311				this.animateDotOutline();
312			},
313
314			setupEventListeners: function() {
315				var self = this;
316
317				// Anchor hovering
318				document.querySelectorAll('.hoverable').forEach(function(el) {
319					el.addEventListener('mouseover', function() {
320						self.$dot.classList.add('active');
321						self.$outline.classList.add('active');
322					});
323					el.addEventListener('mouseout', function() {
324						self.$dot.classList.remove('active');
325						self.$outline.classList.remove('active');
326					});
327				});
328
329				document.addEventListener('mousemove', function(e) {
330					// Position the dot
331					self.endX = e.pageX;
332					self.endY = e.pageY;
333					self.$dot.style.top = self.endY + 'px';
334					self.$dot.style.left = self.endX + 'px';
335				});
336			},
337
338			animateDotOutline: function() {
339				var self = this;
340
341				self._x += (self.endX - self._x) / self.delay;
342				self._y += (self.endY - self._y) / self.delay;
343				self.$outline.style.top = self._y + 'px';
344				self.$outline.style.left = self._x + 'px';
345
346				requestAnimationFrame(this.animateDotOutline.bind(self));
347			}
348		};
349
350		cursor.init();
351	}
352	*/
353
354
355	function hoverable() {
356		$('.hoverable-text').hover(function() {
357			var text = $(this).attr('data-hover-text');
358			$('.pointer-text').text(text);
359			$('.pointer-text').addClass('active');
360		}, function() {
361			$('.pointer-text').removeClass('active');
362			$('.pointer-text').text('');
363		});
364		$('.hoverable-icon').hover(function() {
365			var icon = $(this).attr('data-hover-icon');
366			$('.pointer-dot').html('<i class="fas '+icon+'"></i>');
367		}, function() {
368			$('.pointer-dot').html('');
369		});
370		$('.bg-gradient, .bg-primary, .bg-secondary, .slider-container').hover(function() {
371			$('.pointer-dot').addClass('white-pointer');
372			$('.pointer-outline').addClass('white-pointer');
373		}, function() {
374			$('.pointer-dot').removeClass('white-pointer');
375			$('.pointer-outline').removeClass('white-pointer');
376		});
377	}
378	//cursor();
379
380
381	let video = $(".video-embed-item")
382
383	if(video.length){
384		$('.video-embed-item').attr('playsinline', true);
385		$('.video-embed-item').attr('preload', true);
386		$('.video-embed-item').attr('poster', 'fileadmin/user_upload/Karriere/RRK_video_preview.png');
387		console.log("t")
388	}
389
390
391});
392
393/* ==========================================================================
394   Close Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
395   ========================================================================== */
396$(document).keyup(function(e) {
397	if (e.keyCode == 27) {
398		prevent_default(e);
399
400	}
401});
402
403$(window).scroll(function(){
404	/* ==========================================================================
405	   Scroll Script: plugin Funktion, innerhalb vom DOM direkt ausführbereit
406	   ========================================================================== */
407	if (Modernizr.mq('(max-width: 767px)')) {
408		if ($(window).scrollTop() >= 108) {
409			$('html').addClass('fixed');
410		}else{
411			$('html').removeClass('fixed');
412		}
413	} else {
414		if ($(window).scrollTop() >= 154) {
415			$('html').addClass('fixed');
416		}else{
417			$('html').removeClass('fixed');
418		}
419	}
420
421	if ($(window).scrollTop() >= 204) {
422		$('html').addClass('sticky');
423	}else{
424		$('html').removeClass('sticky');
425	}
426});
427
428$(window).resize(function(){
429	$(window).trigger('scroll');
430}); 

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.