PageSourceSearch

https://visitayas.it/themes/custom/turismo/js/script.js?th17ko

js visitayas.it collected 2026-10-06 00:19:04 UTC 18,172 bytes, 582 lines download raw bytes

1(function ($) {
2
3	function whichTransitionEvent() {
4		var t, el = document.createElement("elementotest");
5		var transitions = {
6			"transition": "transitionend",
7			"OTransition": "oTransitionEnd",
8			"MozTransition": "transitionend",
9			"WebkitTransition": "webkitTransitionEnd"
10		}
11		for (t in transitions) {
12			if (el.style[t] !== undefined) {
13				return transitions[t];
14			}
15		}
16	}
17	var transitionEvent = whichTransitionEvent();
18
19	// funzioni varie al resize //
20	var resizewin = function () {
21		$heightForReadMore = 350;
22		$w = $(window).width();	
23		if ($(window).width() > 650) {
24			$('body').addClass("desktop");
25		}
26		if ($(window).width() <= 650) {
27			$('body').removeClass("desktop");
28			$heightForReadMore = 250;
29		}
30
31	};
32	resizewin();
33	$(window).resize(resizewin);
34	
35	// only mobile slider
36(function () {
37  'use strict';
38	const breakpoint = window.matchMedia('(min-width:650px)');
39	let mySwiper;
40	const breakpointChecker = function () {
41		if (breakpoint.matches === true) {
42			if (mySwiper !== undefined) mySwiper.destroy(true, true);
43			$('.mobile-swiper-container .card-wrapper').removeClass("swiper-wrapper");
44			$('.mobile-slider .slider-functions').css({ display: "none" });
45			return;
46		} else if (breakpoint.matches === false) {
47			$('.mobile-swiper-container .card-wrapper').addClass("swiper-wrapper");
48			return enableSwiper();
49		}
50	};
51	const enableSwiper = function () {
52		if ((typeof Swiper === "undefined")) {
53			return;
54		}
55		$('.mobile-slider .slider-functions').css({ display: "block" });
56		mySwiper = new Swiper('.mobile-swiper-container', {
57			loop: false,
58			slidesPerView: 'auto',
59			centeredSlides: true,
60			speed: 500,
61			pagination: {
62				el: '.mobile-slider .swiper-pagination',
63				type: 'fraction',
64			},
65			autoplay: {
66				delay: 4500,
67				disableOnInteraction: false,
68				stopOnLastSlide: false
69			},
70			navigation: {
71				nextEl: '.mobile-slider .swiper-button-next',
72				prevEl: '.mobile-slider .swiper-button-prev',
73			},
74		});
75	};
76	breakpoint.addListener(breakpointChecker);
77	breakpointChecker();
78})();
79	// end only mobile slider
80
81// accordion //
82if ($(".accordion").length) {
83	var allSectionsPanelsTitle = $('.toggler');
84	var allSectionsPanels = $('.accordion__item__body');
85	$('.accordion .accordion__item__title').addClass("toggler");
86	$('.toggler').click(function (event) {
87		$this = $(this);
88		$targetTitle = $this;
89		$target = $this.parent().find('.accordion__item__body');
90		if (!$target.hasClass('accordion__item__body--open')) {
91			allSectionsPanelsTitle.removeClass('active');
92			allSectionsPanels.removeClass('accordion__item__body--open');
93			$targetTitle.addClass('active');
94			$target.addClass('accordion__item__body--open');
95			setTimeout(() => {$('body, html').animate({scrollTop: $(this).offset().top - 90}, 500)}, 10);
96		}
97		else {
98			$target.removeClass('accordion__item__body--open');
99			$targetTitle.removeClass('active');
100		}
101		event.preventDefault();
102		return false;
103	});
104}
105/* 	$('.close-item-bottom').click(function () {
106		$this = $this.closest('.close-item-bottom');
107		$targetTitle = $this;
108		$target = $this.parent().find('.accordion__item__body');
109		if (!$target.hasClass('accordion__item__body--open')) {
110			allSectionsPanelsTitle.removeClass('active');
111			allSectionsPanels.removeClass('accordion__item__body--open');
112			$targetTitle.addClass('active');
113			$target.addClass('accordion__item__body--open');
114		}
115		else {
116			$target.removeClass('accordion__item__body--open');
117			$targetTitle.removeClass('active');
118		}
119		event.preventDefault();
120		return false;
121	}); */
122
123// accordion orizzontale stile tab per "affina ricerca" //
124// if ($(".accordion-horizzontal").length) {
125	$(".accordion-horizzontal__item__body:not('.accordion-horizzontal__item__body--open')").hide();
126	$(document).on('click', '.toggler-horizzontal', function (event) {
127		event.preventDefault();
128		var $itemLink = $(this).attr('item-content');
129		var $itemContent = $(this).parent().next().find('#' + $itemLink + '.accordion-horizzontal__item__body');
130		var $itemlTitleLink = $(this).parent().find('.accordion__item__title')
131		
132		if($(this).parent().next().find('.accordion-horizzontal__item__body').eq($(this).index()).hasClass('accordion-horizzontal__item__body--open')) {
133			$(this).parent().next().find('.accordion-horizzontal__item__body--open').removeClass('accordion-horizzontal__item__body--open').slideToggle();
134			// $itemlTitleLink.removeClass('active');
135		} else if($(this).parent().next().find('#' + $itemLink + '').hasClass('accordion-horizzontal__item__body--open')) {
136			$itemContent.removeClass('accordion-horizzontal__item__body--open').slideToggle();
137		}
138		else{
139			$itemContent.addClass('accordion-horizzontal__item__body--open').slideToggle();
140		}
141		$(this).toggleClass('active');
142	});	 
143// }
144
145// read more //
146if (typeof $('.read-more').readmore !== "undefined") {
147	$('.read-more').readmore({
148		speed: 500,
149		collapsedHeight: $heightForReadMore,
150		embedCSS: false,
151		moreLink: '<p class=""><a href="#" class="read-more__button read-more__button--open"><span>Leggi tutto</span></a></p>',
152		lessLink: '<p class=""><a href="#" class="read-more__button read-more__button--close"><span>Chiudi</span></a></p>',
153		afterToggle: function (trigger, element, expanded) {
154			if (expanded) {
155				$('.read-more').addClass("read-more--opened");
156			}
157			else {
158				$('.read-more').removeClass("read-more--opened");
159			}
160		}
161	});
162}
163
164// modulo tabs //
165if ($(".js-tabs").length) {
166	
167	$(".js-tabs").each(function(){
168		var $this = $(this);
169		var $container = $this.parent();
170		var $tabsToggleGroup = $this.find(".tabs__toggle-group");
171		var $tabs = $this.find(".tabs__toggle");
172		var $activeTab = $this.find(".tabs__toggle--active");
173		var $tabContents = $this.find(".tabs__tab");
174		var $scrollLeftBtn = $this.find(".js-action--scroll-left");
175		var $scrollRightBtn = $this.find(".js-action--scroll-right");	
176
177		var selectedTabIndex	= 0;
178			
179		var updateTabContentStyle = function() {
180			if ( $(".tabs__tab--active .tabs__tab__img").length ) {
181				$(".tabs__tab--active").addClass("tabs__tab--photo");
182			}
183			else{
184				$(".tabs__tab--active").addClass("tabs__tab--no-photo");
185			}
186		};
187				
188		$tabContents
189			.hide()
190			.eq($tabs.index($activeTab))
191			.show();
192			updateTabContentStyle();
193
194		$tabs.on("click", function() {
195			var $tab = $(this);
196			var tabIndex = $tabs.index($tab);
197			var $activeTab = $this.parent().find(".tabs__toggle--active");
198			selectedTabIndex = tabIndex;
199			$activeTab.removeClass("tabs__toggle--active");
200			$tab.addClass("tabs__toggle--active");
201			$activeTab.removeClass("tabs__toggle--active");
202
203			$tabContents
204				.hide()
205				.removeClass("tabs__tab--active")
206				.eq(tabIndex)
207				.addClass("tabs__tab--active")
208				.fadeIn('slow')
209				.show();
210				updateTabContentStyle();
211		});	
212		var setInvisible = function(elem) {
213			elem.css('visibility', 'hidden');
214		};
215		var setVisible = function(elem) {
216			elem.css('visibility', 'visible');
217		};
218		$tabs.wrapAll('<div class="tabs__toggle-group--inner" />');
219		$tabsToggleGroup.find('.tabs__toggle-group--inner').wrap('<div class="tabs__toggle-group--outer"/>');
220		var $outer = $this.find(".tabs__toggle-group--outer");
221
222		var scrollWidth, totalWidth, maxWidth;
223		var updateUI = function() {
224			totalWidth = 0;
225			scrollWidth = new Array();
226			$($tabs).each(function() {
227				scrollWidth.push($(this).outerWidth( true )); 
228				totalWidth += $(this).outerWidth( true );
229			});
230			maxWidth = $outer.outerWidth(true);
231			if (totalWidth > maxWidth) {
232				setVisible($scrollRightBtn);
233			}
234		};
235		updateUI();
236		var clickNum=0;
237		$scrollLeftBtn.click(function() {
238			setVisible($scrollRightBtn);
239			clickNum--;
240			var leftPos = $outer.scrollLeft();
241			$outer.animate({
242				scrollLeft: leftPos - scrollWidth[clickNum]
243			}, 600, function() {
244				if ($outer.scrollLeft() <= 0) {
245					setInvisible($scrollLeftBtn);
246				}
247			}); 
248		});
249
250		$scrollRightBtn.click(function() {
251			setVisible($scrollLeftBtn);
252			var leftPos = $outer.scrollLeft();
253			if ((totalWidth - (leftPos + scrollWidth[clickNum])) <= maxWidth) {
254				setInvisible($scrollRightBtn);
255			}
256			$outer.animate({
257				scrollLeft: leftPos + scrollWidth[clickNum]
258			}, 600);
259			clickNum++;
260		});
261
262	   $(window).resize(function() {
263		updateUI();
264	   });
265	   
266	});
267	
268}
269
270// plugin menù top //
271	var pluginName = 'menuTop';
272
273	function Accordion($selector, options) {
274		this.$selector = $selector;
275		this.config = $.extend({}, this._defaults, options || {});
276		this.detect = {
277			children: this.$selector.find(this.config.descendant.ul + ', ' + this.config.descendant.div),
278			clickTarget: '.' + this.$selector.attr('class') + ' ' + this.config.eventTarget
279		};
280		this._init();
281	}
282
283	Accordion.prototype = {
284
285		'_defaults': {
286			descendant: {
287				ul: 'div',
288				div: 'li > div ',
289				divs: 'li > div > div',
290				lis: 'li > div > li ',
291				subMenus:	'submenu',
292			},
293			dataValue: 'accordiated',
294			className: 'active',
295			eventTarget: 'a',
296
297		},
298		'_init': function () {
299			var title = '';
300			if (!this.$selector.length) return;
301			this._menuInit();
302			this._initEvent();
303		},
304		'_menuInit': function () {
305			var _self = this;
306			if (this.$selector.data(this.config.dataValue)) return false;
307			$.each(this.detect.children, function () {
308				var $this = $(this);
309				_self.$selector.data(_self.config.dataValue, true);
310				$this.prev('a').addClass('submenu-icon');
311			});
312		},
313		'_initEvent': function () {
314			$(document).on('click.acc.ck', this.detect.clickTarget, $.proxy(this._activate, this));
315			this._hashCheck();
316		},
317		'_activate': function (e) {
318			var $this = $(e.target);
319			var $siblings = $this
320				.toggleClass(this.config.className)
321				.parent('li')
322				.toggleClass(this.config.className)
323				.siblings()
324				.removeClass(this.config.className);
325			$siblings
326				.find('a')
327				.removeClass(this.config.className);
328			$siblings
329				.find('li')
330				.removeClass(this.config.className);
331			$siblings
332				.find('.main-nav__submenu-sub--active')
333				.removeClass("main-nav__submenu-sub--active");	
334
335			var target = $this.attr("target");
336			var href= $this.attr("href");
337
338			if(href != "#"){
339				$(".main-nav").removeClass("active-desk");
340				$(".main-nav *").removeClass("active");
341				if (target) {
342					window.open(href, target);
343					return;
344				}
345				window.location.href = href;
346			}
347			else{
348				this._effect($this);
349			}
350		},
351		'_effect': function (el, effect) {
352			if ($(el).is(':not(.active)')) {
353				// console.log(el);	
354			}
355			$(el).siblings(this.config.descendant.ul + ', ' + this.config.descendant.div  + ', ' + this.config.descendant.divs).addClass('main-nav__submenu-sub--active');
356			$(".main-nav").addClass("active-desk");
357			if( $w <= 650){
358				$SubMenuHeight = $(el).next("div.main-nav__submenu-sub--active").height();
359				$('.main-nav__item.active .main-nav__submenu-sub--active').css("height", $SubMenuHeight + 200);
360			  if(!$('.submenu > .backmenu-row').length){
361				$('.submenu').each(function(){
362				  var subvalue = $(this).prev('a').text();
363				  $(this).prepend('<div class="backmenu-row"><a href="#" class="back-trigger">'+subvalue+'</a></div>');
364
365				});
366			  }
367			}
368			else{
369				$('.main-nav__item.active .main-nav__submenu-sub--active').css("height", 'initial');
370				
371			}
372			this._updateActiveMenu(el);
373		},
374
375		'_updateActiveMenu': function(el) {
376			if( $w <= 650){
377			 $(document).on('click', '.backmenu-row', function(){
378				$(this).closest('.main-nav__item').removeClass('active');
379				$(this).closest('.main-nav__link').removeClass('active');
380				$(this).parent('.main-nav__submenu').removeClass('main-nav__submenu-sub--active');
381				return false;
382			  })
383			}
384			else{
385				$(el).parent('.main-nav__submenu').removeClass('main-nav__submenu-sub--active');
386			}
387		},
388		'_hashCheck': function () {
389			var hash = (location.hash) ? this.$selector.find('a[href="' + location.hash + '"]')[0] : '';
390			if (hash) {
391
392				this._effect(hash, 'toggle');
393				if (this.$selector) {
394					$(hash).parents('div').show();
395				}
396			}
397		}
398	};
399
400	$.fn[pluginName] = $.fn[pluginName] || function (options) {
401		var $this = $(this);
402		return $.each($this, function (idx, el) {
403			var $selector = $this.eq(idx);
404			if (!$.data(this, 'plugin_' + pluginName)) {
405				$.data(this, 'plugin_' + pluginName, new Accordion($selector, options))
406			}
407			return $selector;
408		})
409	};
410
411//	
412	
413// SVG MAP //	
414
415if ($(".svg-map").length) {
416// mouseover sulle scritte accende la regione //
417$("[id^='regione']").attr('data-click-state', 0);
418$("[id^='regioni-nome_']").attr('data-click-state', 0);
419
420$("[id^='regioni-nome_']")
421.mouseover(function(){
422	thisID = $(this).attr("id");
423	thisREGION = thisID.indexOf('_');
424	region = thisID.substring(thisREGION);
425	$("#regione"+region).addClass('svg-hover-color');
426})
427.mouseleave(function () {
428	if($("#regione"+region).hasClass('clicked')){
429	return
430	}
431	else {
432	$("#regione"+region).removeClass('svg-hover-color');
433	}
434})
435// click sui nomi delle regioni //
436.on('click',function(e){
437	e.preventDefault();
438	$("[id^='regione']").not($("#regione"+region)).attr('data-click-state', 0);
439	$("[id^='regione']").not($("#regione"+region)).attr('fill', '#ffffff');
440	var target = $(this).parent().attr("target");
441	var href= $(this).parent().attr("href");
442	
443    if($("#regione"+region).attr('data-click-state') == 1) {
444        $("#regione"+region).attr('data-click-state', 0);
445		$('.info-box').css('display','none');
446        if(href != "#"){
447			if (target) {
448				window.open(href, target);
449				return;
450			}
451			window.location.href = href;
452		}
453      }
454    else {
455		$("#regione"+region).attr('data-click-state', 1);
456		$("[id^='regione']").removeClass('svg-hover-color');
457		$("[id^='regione']").removeClass('clicked');
458		$("#regione"+region).addClass('svg-hover-color');
459		$("#regione"+region).addClass('clicked');
460		$('.info-box').css('display','block');
461    }
462  });
463
464// click sulle aree delle regioni - il mouseover è gestito da css //
465$("[id^='regione']").on('click',function(e){
466	e.preventDefault();
467	$("[id^='regione']").not(this).attr('data-click-state', 0);
468	target = $(this).parent().attr("target");
469	href= $(this).parent().attr("href");
470	thisID = $(this).attr("id");
471	thisREGION = thisID.indexOf('_');
472	var region = thisID.substring(thisREGION);
473	
474    if($(this).attr('data-click-state') == 1) {
475        $(this).attr('data-click-state', 0);
476		$('.info-box').css('display','none');
477        if(href != "#"){
478			if (target) {
479				window.open(href, target);
480				return;
481			}
482			window.location.href = href;
483		}
484      }
485    else {
486		$(this).attr('data-click-state', 1);
487		$("[id^='regione']").attr('fill', '#ffffff');
488		$("[id^='regione']").removeClass('clicked');
489		$("[id^='regione']").removeClass('svg-hover-color');
490		$(this).addClass('svg-hover-color');
491		
492		$("[id^='regions-nome__over']").removeClass('svg-nome-hover');
493		$("#regions-nome__over"+region).addClass('svg-nome-hover');
494		$(this).addClass('clicked');
495		$('.info-box').css('display','block');
496    }
497  });	
498}
499
500
501$(function(){
502	$('#menu .main-nav__list').menuTop();
503
504	// script menù mobile //
505	var wlim=650;
506	var closeall=function(){
507		$("body").removeClass("menu-opened");
508		$(".header").parent().find('.active').removeClass('active');
509		$(".header").parent().find('.main-nav__submenu-sub--active').removeClass('main-nav__submenu-sub--active');
510	}
511	var myresize=function(){
512		w = $(window).width();
513		if (w<wlim && $('#TabMenusHeaderContent .header_menus--mobile-menu-item').length <= 0) {
514			$('.header__content .header_menus--mobile-menu-block .header_menus--mobile-menu-item').detach().prependTo('#TabMenusHeaderContent').hide();
515			closeall();
516		} else if (w>=wlim && $('#TabMenusHeaderContent .header_menus--mobile-menu-item').length > 0) {
517			$('#TabMenusHeaderContent .header_menus--mobile-menu-item').show().detach().prependTo('.header__content .header_menus--mobile-menu-block');
518			closeall();
519		}
520	}
521	$('.header__menus__link').click(function(ev){
522		var $me=$(this)
523		, href = $me.attr('href')
524		, tabname			= 	$(this).data('tabname')
525		, isactive			= 	$me.hasClass('active')
526		, $tab			= 	$('#TabMenusHeaderContent #'+ tabname + ' .header__menus__tab-content')
527		, $menuTab		= 	$('#TabMenusHeaderContent #menu .header__menus__tab-content')
528		, w = $(window).width();
529
530		// lasciare navigare i collegamenti reali /webcam; gestire solo i tab basati su hash.
531		if (!tabname || !href || href.charAt(0) !== '#') {
532			return;
533		}
534		if (isactive) {
535			if (w>=wlim||tabname=='menu')	{
536				closeall();
537				$tab.css( 'z-index', '1000' );
538			} else {
539				$me.removeClass('active');
540				$('.header__menus__tab-content:not(#menu .header__menus__tab-content)').removeClass('active');
541				$tab.css( 'z-index', '1000' );
542				if ($menuTab.is(':not(.active)'))	{
543					$tab.removeClass('active');
544					$tab.css( 'z-index', '1000' );
545				}
546			}
547			if (w<wlim && tabname=='menu') $('#TabMenusHeaderContent .header_menus--mobile-menu-item').hide(); 
548		} 
549			else {
550			if (tabname=='menu'||w>=wlim||tabname=='search'){
551				$('.header__menus__link').removeClass('active');
552				$('#TabMenusHeaderContent .header__menus__tab-content').removeClass('active');
553				$('#TabMenusHeaderContent .header_menus--mobile-menu-item').hide()
554			} else {
555				$('.header__menus__link[data-tabname!="menu"]').removeClass('active');
556			}
557			$me.addClass('active'); 
558			$tab.addClass('active');
559			if (tabname!='menu'){
560				$tab.css( 'z-index', '2500' );
561				$('.header__menus__tab-content:not(#'+ tabname +' .header__menus__tab-content)').css( 'z-index', '1000' );
562				$("#menu .header__menus__tab-content .main-nav__list").parent().find('.active').removeClass('active');
563				$("#menu .header__menus__tab-content .main-nav__list").parent().find('.main-nav__submenu-sub--active').removeClass('main-nav__submenu-sub--active');
564				if (w<=wlim||tabname=='shop'){
565					$ShopMenuHeight = $('#' + tabname).find('.main-nav__item').height();
566					$tab.find('.main-nav__list').css("height", $ShopMenuHeight + 200);
567				}
568				else if (w>wlim||tabname=='shop'){
569					$tab.find('.main-nav__list').css("height", "initial");
570				}
571			}
572
573			$("body").addClass("menu-opened");
574			if (w<wlim && tabname=='menu') $('#TabMenusHeaderContent .header_menus--mobile-menu-item').show();
575		}
576		ev.preventDefault();
577	});
578	myresize();
579	$(window).resize(myresize);
580});
581
582})(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.