PageSourceSearch

https://hotel-arcus.de/assets/js/seo_scripts_3582.js?v=17167

js hotel-arcus.de collected 2026-10-08 20:13:31 UTC 17,167 bytes, 752 lines download raw bytes

1
2
3
4function oversize_140931() {
5
6	var contentHeight_140931 = jQuery('.ce_bgimage_140931 .ce_bgimage-inside').height();
7	var availableHeight = jQuery(window).height() - 100;
8
9	if (contentHeight_140931 > availableHeight)
10	{
11		jQuery('.ce_bgimage_140931').addClass('oversize');
12
13	} else {
14		jQuery('.ce_bgimage_140931').removeClass('oversize');
15	}
16};
17
18jQuery(document).ready(function(){
19    setTimeout(function(){
20        oversize_140931();
21    }, 500);
22});
23
24jQuery(window).on("resize", function(){
25	oversize_140931();
26});
27
28 
29
30
31function oversize_140935() {
32
33	var contentHeight_140935 = jQuery('.ce_bgimage_140935 .ce_bgimage-inside').height();
34	var availableHeight = jQuery(window).height() - 100;
35
36	if (contentHeight_140935 > availableHeight)
37	{
38		jQuery('.ce_bgimage_140935').addClass('oversize');
39
40	} else {
41		jQuery('.ce_bgimage_140935').removeClass('oversize');
42	}
43};
44
45jQuery(document).ready(function(){
46    setTimeout(function(){
47        oversize_140935();
48    }, 500);
49});
50
51jQuery(window).on("resize", function(){
52	oversize_140935();
53});
54
55 
56
57/**
58 * Set focus to search input
59 */
60jQuery(document).ready(function() 
61{
62	jQuery('.mod_search').on('keydown',function(e)
63	{
64		if (e.key == 'Enter' || e.keyCode == 13)
65		{
66			jQuery('.ce_search_label').click();
67		}
68	});
69
70	jQuery('.ce_search_label').click(function()
71	{
72		// wait for element to be in sight app. 800ms tweening delay
73		setTimeout(function()
74		{
75			jQuery('#search_160 input[name="keywords"]').focus();
76		
77		}, 800);
78		
79		/* add class on click */
80		jQuery(".body_bottom .mod_search").addClass("show-search");
81		
82		/* fadeIn overlay */
83		jQuery(".body_bottom .mod_search .search-overlay").fadeIn();
84	});
85	
86   /* close button*/
87	jQuery(".body_bottom .close-window").click(function(){
88    	jQuery(".body_bottom .mod_search").removeClass("show-search");
89    	jQuery('body').removeClass('search_overlay');
90    	jQuery(".search-overlay").fadeOut(300);
91	});
92	
93	jQuery(".search-overlay").click(function(){
94    	jQuery(".body_bottom .mod_search").removeClass("show-search");
95    	jQuery('body').removeClass('search_overlay');
96    	jQuery(".search-overlay").fadeOut(300);
97	});
98});
99
100jQuery(document).keyup(function(e) {
101   if (e.keyCode === 27) jQuery(".mod_search").removeClass("show-search");
102   if (e.keyCode === 27) jQuery("body").removeClass("search_overlay");
103   if (e.keyCode === 27) jQuery(".search-overlay").fadeOut(300);
104});
105
106
107 
108
109jQuery(document).ready(function()
110{
111	// add hide_optin body class when on imprint or privacy page
112		
113	//--- opt out remove token
114	jQuery('#privacy_optout_link').click(function(e)
115	{
116		e.preventDefault();
117		PrivacyManager.optout(document.location.origin+document.location.pathname);
118	});
119	jQuery('#privacy_optout_link').on('keypress',function(e)
120	{
121		if( e.key == "Enter" || e.keyCode == 13 )
122		{
123			jQuery(this).click();
124		}
125	});
126	
127	if(window.location.search.indexOf('clear_privacy_settings') >= 0)
128	{
129		PrivacyManager.optout(document.location.origin+document.location.pathname);
130	}
131	//--
132	
133	var privacy = localStorage.getItem('user_privacy_settings');
134	var expires = Number( localStorage.getItem('user_privacy_settings_expires') );
135	// check lease time
136	var now = new Date().setDate(new Date().getDate());
137	if( now >= expires )
138	{
139		expires = 0;
140	}
141	
142	if(privacy == undefined || privacy == '' || expires <= 0 )
143	{
144		jQuery('#privacy_optin_611').addClass('open');
145		// set privacy level to 0
146		privacy = '0';
147	}
148
149	// set a body class
150	jQuery('body').addClass('privacy_setting_'+privacy.toString().split(',').join('-'));
151	
152	// hide the info
153	jQuery('#ajax_info_611').hide();
154
155	var form = jQuery('#user_privacy_settings_611');
156	var isValid = false;
157	
158	// set focus to first checkbox
159	jQuery('.privacy_checkmark').on('keypress',function(e)
160	{
161		// Enter, Space
162		if( (e.key == "Enter" || e.keyCode == 13 || e.keyCode == 32) || (e.key === " ") )
163		{
164			e.preventDefault();
165			let _this = jQuery(this);
166			let checkbox = _this.siblings("input[type='checkbox']");
167			// toggle checked property
168			checkbox.prop("checked", !checkbox.prop("checked") );
169			checkbox.trigger('change');
170			_this.attr('aria-checked', function(_, attr) { return !(attr == 'true') });
171		}
172	});
173
174	jQuery('.privacy_checkmark').on('click',function(e)
175	{
176		jQuery(this).attr('aria-checked', function(_, attr) { return !(attr == 'true') });
177	});
178	
179	// remove readonly from submit when user changes its selection
180	form.find('input[type="checkbox"]').change(function(e)
181	{
182		isValid = false;
183		// required field changed
184		if( form.find('input[required].mandatory').is(':checked') === true )
185		{
186			isValid = true;
187		}
188
189		form.find('input[name="save_settings"]').addClass('readonly');
190		form.find('input[name="save_settings"]').prop('disabled', true);
191		
192		if( isValid === true )
193		{
194			form.find('input[name="save_settings"]').removeClass('readonly');
195			form.find('input[name="save_settings"]').prop('disabled', false);
196		}
197	});
198
199	// allow all
200	form.find('input[name="save_all_settings"]').click(function(e) 
201	{
202		e.preventDefault();
203		// check all checkboxes for user feedback
204		form.find('input[type="checkbox"]').prop('checked',true);
205		// all good
206		isValid = true;
207		// fire save
208		form.find('input[name="save_settings"]').trigger('click');
209	});
210
211	// tech only all
212	form.find('input[name="save_tech_settings"]').click(function(e) 
213	{
214		e.preventDefault();
215		// check required checkbox for user feedback
216		//form.find('#cookiebar_privacy_1').prop('checked',true);
217		// all good
218		isValid = true;
219		// fire save
220		form.find('input[name="save_settings"]').trigger('click');
221	});
222
223
224		// preselections make it valid
225	isValid = true;
226		
227	form.find('input[name="save_settings"]').click(function(e)
228	{
229		e.preventDefault();
230
231		// check if a required field is still not set
232		if( isValid === false )
233		{
234			return false;
235		}
236
237		// show ajax info
238		jQuery('#ajax_info_611').fadeIn(50);
239		
240		// get the user selection
241		var privacy = PrivacyManager.getUserSelectionFromFormData( form.serializeArray() ).join(',');
242		
243		if( privacy == undefined || privacy == '' )
244		{
245			privacy = '1';
246		}
247		
248		// set local storage
249		localStorage.setItem('user_privacy_settings',privacy);
250		// set lease time
251		var expires = new Date().setDate(new Date().getDate() + 30);
252		localStorage.setItem('user_privacy_settings_expires',expires);
253		// set a body class
254		jQuery('body').addClass('privacy_setting_'+privacy.toString().split(',').join('-'));
255		// remove negative body class
256		jQuery('body').removeClass('privacy_setting_0');
257		setTimeout(function()
258		{
259			// fire JS event
260			jQuery(document).trigger('Privacy.changed',{'level':privacy});
261
262			// fire form as usal to catch it via php
263			//form.submit();
264		}, 500);
265	});
266});
267
268
269// listen to Privacy event
270jQuery(document).on('Privacy.changed',function(event,params)
271{
272	if( PrivacyManager.hasAccess(params.level) )
273	{
274		jQuery('#privacy_optin_611').removeClass('open');
275		// send ajax for log file
276		jQuery.ajax(
277		{
278			url:location.href,
279			data:{'user_privacy_settings':params.level,'tstamp':Math.round(new Date().getTime()/1000)}
280		});
281	}
282});
283
284// Opt-out listener
285jQuery(document).ready(function()
286{
287	jQuery('.privacy_optout_click, .privacy_optout_link').click(function()
288	{
289		PrivacyManager.optout();
290	});
291});
292
293// accessbility focus
294jQuery(document).ready(function() 
295{
296	jQuery("#privacy_checkmark_privacy_1").focus();
297});
298
299// Cookie details
300jQuery(document).ready(function() 
301{
302	let element = jQuery('#privacy_optin_611 .privacy_help_link');
303    let popup = jQuery('#privacy_optin_611 .privacy_popup');
304	element.click(function (e) 
305	{
306		e.preventDefault();
307		jQuery("html, body").animate({ scrollTop: 0 });
308		popup.toggleClass('view_help');
309	});
310
311    element.on('keypress', function (e) 
312    {
313		if( (e.key == "Enter" || e.keyCode == 13 || e.keyCode == 32) || (e.key === " ") )
314		{
315			// reload page when view_help is active
316			if( popup.hasClass('view_help') )
317			{
318				window.location.reload();
319				return false;
320			}
321			jQuery(this).click();
322		}
323    });
324});
325
326 
327
328jQuery(document).ready(function() 
329{
330	if( !jQuery('body').hasClass('acc_disable_animations') )
331	{
332		jQuery(document).accordion(
333		{
334	      // Put custom options here
335	      heightStyle: 'content',
336	      active: false,
337		  header: '.toggler',
338	      collapsible: true,
339	      create: function(event, ui) {
340	        ui.header.addClass('active');
341	        jQuery('.toggler').attr('tabindex', 0);
342	      },
343	      activate: function(event, ui) {
344	        ui.newHeader.addClass('active');
345	        ui.oldHeader.removeClass('active');
346	        jQuery('.toggler').attr('tabindex', 0);
347			jQuery('.toggler').removeAttr('aria-selected');
348	      }
349	    });
350	    // fire event
351	   jQuery(window).trigger('Eclipse.accordions_ready',{});
352    }
353});
354
355 
356
357jQuery(document).ready(function()  {
358    jQuery('a[data-lightbox]').map(function() 
359    {
360      jQuery(this).colorbox(
361      {
362        // Put custom options here
363        loop: false,
364        rel: jQuery(this).attr('data-lightbox'),
365        maxWidth: '95%',
366        maxHeight: '95%'
367      });
368   });
369
370    jQuery(document).bind('cbox_complete', function(e)
371    {
372        if( jQuery.colorbox == undefined )
373        {
374          return;
375        }
376        var text = jQuery.colorbox.element().next('.caption').text();
377        if( text )
378        {
379          var caption = jQuery('#cboxBottomLeft').append('<div id="cboxCaption">'+text+'</div>');
380          jQuery('#colorbox').height( jQuery('#colorbox').height() + caption.height()  );
381        }
382    });
383  });
384
385
386// iframe lightbox
387jQuery(document).ready(function()  
388{
389  jQuery('a[data-lightbox-iframe]').map(function() 
390  {
391    jQuery(this).colorbox(
392    {
393        iframe:true, 
394        innerWidth:"80%", 
395        innerHeight:"56%", 
396        maxWidth:"95%",
397        maxHeight:'95%',
398    });
399  });
400});
401
402// lightbox 50% 50%
403jQuery(document).ready(function() 
404{
405  jQuery('.lightbox50-50 a, a.lightbox50-50').colorbox(
406    {
407      // Put custom options here
408      loop: false,
409      rel: jQuery(this).attr('data-lightbox'),
410      width: '50%',
411      height: '50%'
412    });
413});
414// lightbox 60% 40%
415jQuery(document).ready(function() 
416{
417  jQuery('.lightbox60-40 a, a.lightbox60-40').colorbox(
418    {
419      // Put custom options here
420      loop: false,
421      rel: jQuery(this).attr('data-lightbox'),
422      width: '60%',
423      height: '40%'
424    });
425});
426// lightbox 960px 575px
427jQuery(document).ready(function() 
428{
429  jQuery('.lightbox960 a, a.lightbox960').colorbox(
430    {
431      // Put custom options here
432      loop: false,
433      rel: jQuery(this).attr('data-lightbox'),
434      width: '960px',
435      height: '575px'
436    });
437});
438
439 
440
441/**
442 * PrivacyManager
443 */
444var PrivacyManager =
445{
446	/**
447	 * The privacy localStorage key
448	 * @var string
449	 */
450	privacy_session : 'user_privacy_settings',
451
452	/**
453	 * Get the selected privacy checkbox values from a formular array
454	 * @param array 
455	 * @return array
456	 */
457	getUserSelectionFromFormData: function (arrSubmitted)
458	{
459		if (arrSubmitted == null || arrSubmitted == undefined)
460		{
461			return [];
462		}
463
464		var arrReturn = [];
465		for (var k in arrSubmitted)
466		{
467			var v = arrSubmitted[k];
468			if (v['name'] == 'privacy')
469			{ 
470				arrReturn.push(v['value']);
471			}
472		}
473		return arrReturn;
474	},
475
476
477	/**
478	 * Access control
479	 * @param string
480	 */
481	hasAccess : function (varSelection)
482	{
483		var token = localStorage.getItem( this.privacy_session );
484		if( token == undefined )
485		{
486			return false;
487		}
488
489		// convert to string
490		if( typeof(varSelection) == 'number' )
491		{
492			varSelection = varSelection.toString();
493		}
494		// convert to array
495		if( typeof(varSelection) == 'string' )
496		{
497			varSelection = varSelection.split(',');
498		}
499
500		for(i in varSelection)
501		{
502			var value = varSelection[i].toString().replace(' ','');
503			if( token.indexOf( value ) >= 0 )
504			{
505				return true;
506			}
507		}
508		return false;
509	},
510
511
512	/**
513	 * Clear privacy settings and redirect page
514	 * @param boolean
515	 */
516	optout: function (strRedirect)
517	{
518		// clear local storage
519		localStorage.removeItem(this.privacy_session);
520		localStorage.removeItem(this.privacy_session+'_expires');
521		// fire event
522		jQuery(document).trigger('Privacy.clear_privacy_settings',{});
523		// log
524		console.log('Privacy settings cleared');
525		// redirect
526		if (strRedirect != undefined)
527		{
528			location.href = strRedirect;
529		}
530		else
531		{
532			location.reload();
533		}
534	},
535
536
537	/**
538	 * Clear all cookies and localstorage
539	 */
540	clearAll: function()
541	{
542		var host = window.location.hostname;
543		var domain = host.substring( host.indexOf('.') , host.length);
544		// clear all cookies
545		document.cookie.split(";").forEach(function(c) 
546		{ 
547			document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"+ ";domain="+host); 
548			document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"+ ";domain="+domain); 
549		});
550		// clear whole localstorage
551		window.localStorage.clear();
552		for (var i = 0; i <= localStorage.length; i++) 
553		{
554		   localStorage.removeItem(localStorage.key(i));
555		}
556		// log
557		console.log('Cookies and localstorage cleared');
558	}
559};
560
561
562
563/**
564 * Univerasl optin protection
565 * @param string	Type of element to be protected e.g. img or iframe etc.
566 */
567PrivacyManager.optin = function(strElementType)
568{
569	if(strElementType == undefined || strElementType == '')
570	{
571		return;
572	}
573	// user settings not applied yet
574	if(localStorage.getItem(this.privacy_session) == undefined || localStorage.getItem(this.privacy_session) == '' || localStorage.getItem(this.privacy_session) <= 0)
575	{
576		return
577	}
578
579	// find all scripts having a data-src attribute
580	var targets = jQuery(strElementType+'[data-src]');	
581	
582	if(targets.length > 0)
583	{
584		jQuery.each(targets,function(i,e)
585		{
586			var privacy = jQuery(e).data('privacy');
587			if(privacy == undefined)
588			{
589				privacy = 0;
590			}
591			
592			var attr = 'src';
593			if(strElementType == 'link')
594			{
595				attr = 'href';
596			}
597			else if(strElementType == 'object')
598			{
599				attr = 'data';
600			}
601			
602			if(localStorage.getItem('user_privacy_settings').indexOf(privacy) >= 0)
603			{
604				jQuery(e).attr(attr,jQuery(e).data('src') );
605			}
606		});
607	}
608}
609
610jQuery(document).on('Privacy.changed', function() 
611{
612	PrivacyManager.optin('script');
613	PrivacyManager.optin('link');
614	PrivacyManager.optin('iframe');
615	PrivacyManager.optin('object');
616	PrivacyManager.optin('img');
617});
618
619jQuery(document).ready(function()
620{
621	PrivacyManager.optin('script');
622	PrivacyManager.optin('link');
623	PrivacyManager.optin('iframe');
624	PrivacyManager.optin('object');
625	PrivacyManager.optin('img');
626});
627
628 
629
630jQuery(document).ready(function()  
631{
632    //var e = document.querySelectorAll('.content-slider, .slider-control');
633    let SLIDERS = [];
634	jQuery('.content-slider').each(function(i,elem) 
635    {
636	    var config = jQuery(elem).attr('data-config');
637	   	if( config )
638	    {
639		    var menu = jQuery(elem).next('.slider-control');
640		    c = config.split(',');
641		    var options = 
642		    {
643			    'auto': parseInt(c[0]),
644		        'speed': parseInt(c[1]),
645		        'startSlide': parseInt(c[2]),
646		        'continuous': parseInt(c[3])
647		    }
648		    // menu
649		    if ( menu )
650		    {
651			    // replace # with slahs
652			    menu.find('a').attr('href','/');
653			    options.menu = menu[0];
654		    }
655			
656			var api = new Swipe(elem, options);
657			SLIDERS.push(api);
658		}
659      });
660	  
661	jQuery(document).on('keydown', function (e)
662	{ 
663		switch (e.keyCode)
664		{
665			// left arrow key <= 
666			case 37:
667				jQuery.each(SLIDERS, function (i,elem)
668				{ 
669					elem.prev();
670				});
671				break;
672			// right arrow key => 
673			case 39:
674				jQuery.each(SLIDERS, function (i,elem)
675				{ 
676					elem.next();
677				});
678				break;
679			default:
680				break;
681		}
682	});
683});
684
685 
686
687jQuery(document).ready(function() 
688{
689	jQuery('nav.mobile_vertical .trail').addClass('open');
690	jQuery('nav.mobile_vertical li.submenu > a').append('<span class="opener"></span>');
691	jQuery('nav.mobile_vertical a.submenu').not('.open').parent('li').children('ul').hide();
692	jQuery('nav.mobile_vertical li.submenu .opener, nav.mobile_vertical li.submenu a.forward:not(.click-default), nav.mobile_vertical li.submenu a.pct_megamenu').click(function(e)
693	{ 
694		e.preventDefault();
695		e.stopImmediatePropagation();
696		
697		var _this = jQuery(this);
698		
699		// close open siblings
700		if( jQuery(this).parents('nav.mobile_vertical').hasClass('collapse') )
701		{
702			var siblings = _this.parents('li').siblings('li.open');
703			siblings.children('ul').slideUp(
704			{
705				duration:300,
706				complete: function()
707				{
708					siblings.removeClass('open');
709					siblings.children('a').removeClass('open');
710				}
711			});
712		}
713		
714		var parent = _this.parent('li');
715		
716		// opener div
717		var isOpener = _this.hasClass('opener');
718		if( isOpener )
719		{
720			var parent = _this.parent('a').parent('li');
721		}
722		
723		if(parent.hasClass('open') )
724		{
725			parent.children('ul').slideUp(
726			{
727				duration:300,
728				complete: function()
729				{
730					if( isOpener )
731					{
732						_this.siblings('a').removeClass('open');
733					}
734					_this.removeClass('open');
735					parent.removeClass('open');
736				}
737			});
738			
739		}
740		else
741		{
742			if( isOpener )
743			{
744				_this.siblings('a').toggleClass('open');	
745			}
746			_this.toggleClass('open');
747			parent.toggleClass('open');
748			parent.children('ul').slideToggle({duration:300});
749		}
750	});
751});
752

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.