PageSourceSearch

https://palazzodivalli.it/wp-content/themes/thegem/js/functions.js?ver=6.4.8

js palazzodivalli.it collected 2026-10-04 04:09:08 UTC 19,750 bytes, 597 lines download raw bytes

1(function($) {
2	$.fn.thegemPreloader = function(callback) {
3		$(this).each(function() {
4			var $el = $(this);
5			if(!$el.prev('.preloader').length) {
6				$('<div class="preloader">').insertBefore($el);
7			}
8			$el.data('thegemPreloader', $('img, iframe', $el).add($el.filter('img, iframe')).length);
9			if($el.data('thegemPreloader') == 0) {
10				$el.prev('.preloader').remove();
11				callback();
12				$el.trigger('thegem-preloader-loaded');
13				return;
14			}
15			$('img, iframe', $el).add($el.filter('img, iframe')).each(function() {
16				var $obj = $('<img>');
17				if($(this).prop('tagName').toLowerCase() == 'iframe') {
18					$obj = $(this);
19				}
20				$obj.attr('src', $(this).attr('src'));
21				$obj.on('load error', function() {
22					$el.data('thegemPreloader', $el.data('thegemPreloader')-1);
23					if($el.data('thegemPreloader') == 0) {
24						$el.prev('.preloader').remove();
25						callback();
26						$el.trigger('thegem-preloader-loaded');
27					}
28				});
29			});
30		});
31	}
32})(jQuery);
33
34(function($) {
35
36	var oWidth=$.fn.width;
37	$.fn.width=function(argument) {
38		if (arguments.length==0 && this.length==1 && this[0]===window) {
39			if (window.gemOptions.innerWidth != -1) {
40				return window.gemOptions.innerWidth;
41			}
42			var width = oWidth.apply(this,arguments);
43			window.updateGemInnerSize(width);
44			return width;
45		}
46
47		return oWidth.apply(this,arguments);
48	};
49
50	var $page = $('#page');
51
52	$(window).load(function() {
53		var $preloader = $('#page-preloader');
54		if ($preloader.length && !$preloader.hasClass('preloader-loaded')) {
55			$preloader.addClass('preloader-loaded');
56		}
57	});
58
59	$('#site-header.animated-header').headerAnimation();
60
61	$.fn.updateTabs = function() {
62
63		jQuery('.gem-tabs', this).each(function(index) {
64			var $tabs = $(this);
65			$tabs.thegemPreloader(function() {
66				$tabs.easyResponsiveTabs({
67					type: 'default',
68					width: 'auto',
69					fit: false,
70					activate: function(currentTab, e) {
71						var $tab = $(currentTab.target);
72						var controls = $tab.attr('aria-controls');
73						$tab.closest('.ui-tabs').find('.gem_tab[aria-labelledby="' + controls + '"]').trigger('tab-update');
74					}
75				});
76			});
77		});
78
79		jQuery('.gem-tour', this).each(function(index) {
80			var $tabs = $(this);
81			$tabs.thegemPreloader(function() {
82				$tabs.easyResponsiveTabs({
83					type: 'vertical',
84					width: 'auto',
85					fit: false,
86					activate: function(currentTab, e) {
87						var $tab = $(currentTab.target);
88						var controls = $tab.attr('aria-controls');
89						$tab.closest('.ui-tabs').find('.gem_tab[aria-labelledby="' + controls + '"]').trigger('tab-update');
90					}
91				});
92			});
93		});
94
95	};
96
97	function fullwidth_block_after_update($item) {
98		$item.trigger('updateTestimonialsCarousel');
99		$item.trigger('updateClientsCarousel');
100		$item.trigger('fullwidthUpdate');
101	}
102
103	function fullwidth_block_update($item, pageOffset, pagePaddingLeft, pageWidth,skipTrigger) {
104	    var $prevElement = $item.prev(),
105			extra_padding = 0;
106	    if ($prevElement.length == 0 || $prevElement.hasClass('fullwidth-block')) {
107	        $prevElement = $item.parent();
108			extra_padding = parseInt($prevElement.css('padding-left'));
109	    }
110
111	    var offsetKey = window.gemSettings.isRTL ? 'right' : 'left';
112	    var cssData = {
113	        width: pageWidth
114	    };
115	    cssData[offsetKey] = pageOffset.left - ($prevElement.length ? $prevElement.offset().left : 0) + parseInt(pagePaddingLeft) - extra_padding;
116
117	    $item.css(cssData);
118
119	    if (!skipTrigger) {
120	        fullwidth_block_after_update($item);
121	    }
122	}
123
124	var inlineFullwidths = [],
125		notInlineFullwidths = [];
126
127	$('.fullwidth-block').each(function() {
128		var $item = $(this),
129			$parents = $item.parents('.vc_row'),
130			fullw = {
131				isInline: false
132			};
133
134		$parents.each(function() {
135			if (this.hasAttribute('data-vc-full-width')) {
136				fullw.isInline = true;
137				return false;
138				}
139		});
140
141		if (fullw.isInline) {
142			inlineFullwidths.push(this);
143		} else {
144			notInlineFullwidths.push(this);
145			}
146		});
147
148	function update_fullwidths(inline, init) {
149		var $needUpdate = [];
150
151		(inline ? inlineFullwidths : notInlineFullwidths).forEach(function(item) {
152			$needUpdate.push(item);
153		});
154
155		if ($needUpdate.length > 0) {
156			var pageOffset = $page.offset(),
157				pagePaddingLeft = $page.css('padding-left'),
158				pageWidth = $page.width();
159
160			$needUpdate.forEach(function(item) {
161				fullwidth_block_update($(item), pageOffset, pagePaddingLeft, pageWidth);
162				});
163		}
164	}
165
166	if (!window.disableGemSlideshowPreloaderHandle) {
167		jQuery('.gem-slideshow').each(function() {
168			var $slideshow = $(this);
169			$slideshow.thegemPreloader(function() {});
170		});
171	}
172
173	$(function() {
174		$('#gem-icons-loading-hide').remove();
175		$('#thegem-preloader-inline-css').remove();
176
177		jQuery('iframe').not('.gem-video-background iframe').each(function() {
178			$(this).thegemPreloader(function() {});
179		});
180
181		jQuery('.gem-video-background').each(function() {
182			var $videoBG = $(this);
183			var $videoContainer = $('.gem-video-background-inner', this);
184			var ratio = $videoBG.data('aspect-ratio') ? $videoBG.data('aspect-ratio') : '16:9';
185			var regexp = /(\d+):(\d+)/;
186			var $fullwidth = $videoBG.closest('.fullwidth-block');
187			ratio = regexp.exec(ratio);
188			if(!ratio || parseInt(ratio[1]) == 0 || parseInt(ratio[2]) == 0) {
189				ratio = 16/9;
190			} else {
191				ratio = parseInt(ratio[1])/parseInt(ratio[2]);
192			}
193
194			function gemVideoUpdate()  {
195				$videoContainer.removeAttr('style');
196				if($videoContainer.width() / $videoContainer.height() > ratio) {
197					$videoContainer.css({
198						height: ($videoContainer.width() / ratio) + 'px',
199						marginTop: -($videoContainer.width() / ratio - $videoBG.height()) / 2 + 'px'
200					});
201				} else {
202					$videoContainer.css({
203						width: ($videoContainer.height() * ratio) + 'px',
204						marginLeft: -($videoContainer.height() * ratio - $videoBG.width()) / 2 + 'px'
205					});
206				}
207			}
208
209			if ($videoBG.closest('.page-title-block').length > 0) {
210				gemVideoUpdate();
211			}
212
213			if ($fullwidth.length) {
214				$fullwidth.on('fullwidthUpdate', gemVideoUpdate);
215			} else {
216				$(window).resize(gemVideoUpdate);
217				}
218			});
219
220		update_fullwidths(false, true);
221
222		if (!window.gemSettings.parallaxDisabled) {
223			$('.fullwidth-block').each(function() {
224				var $item = $(this),
225					mobile_enabled = $item.data('mobile-parallax-enable') || '0';
226
227				if (!window.gemSettings.isTouch || mobile_enabled == '1') {
228					if ($item.hasClass('fullwidth-block-parallax-vertical')) {
229						$('.fullwidth-block-background', $item).parallaxVertical('50%');
230					} else if ($item.hasClass('fullwidth-block-parallax-horizontal')) {
231						$('.fullwidth-block-background', $item).parallaxHorizontal();
232					}
233				} else {
234					$('.fullwidth-block-background', $item).css({
235						backgroundAttachment: 'scroll'
236					});
237				}
238			});
239		}
240
241		$(window).resize(function() {
242			update_fullwidths(false, false);
243		});
244
245		jQuery('select.gem-combobox, .gem-combobox select, .widget_archive select, .widget_product_categories select, .widget_categories select').each(function(index) {
246			$(this).combobox();
247		});
248
249		jQuery('input.gem-checkbox, .gem-checkbox input').checkbox();
250
251		if (typeof($.fn.ReStable) == "function") {
252			jQuery('.gem-table-responsive').each(function(index) {
253				$('> table', this).ReStable({
254					maxWidth: 768,
255					rowHeaders : $(this).hasClass('row-headers')
256				});
257			});
258		}
259
260		jQuery('.fancybox').each(function() {
261			$(this).fancybox();
262		});
263
264		function init_odometer(el) {
265			if (jQuery('.gem-counter-odometer', el).size() == 0)
266				return;
267			var odometer = jQuery('.gem-counter-odometer', el).get(0);
268			var format = jQuery(el).closest('.gem-counter-box').data('number-format');
269			format = format ? format : '(ddd).ddd';
270			var od = new Odometer({
271				el: odometer,
272				value: $(odometer).text(),
273				format: format
274			});
275			od.update($(odometer).data('to'));
276		}
277		window['thegem_init_odometer'] = init_odometer;
278
279		jQuery('.gem-counter').each(function(index) {
280			if (jQuery(this).closest('.gem-counter-box').size() > 0 && jQuery(this).closest('.gem-counter-box').hasClass('lazy-loading') && !window.gemSettings.lasyDisabled) {
281				jQuery(this).addClass('lazy-loading-item').data('ll-effect', 'action').data('item-delay', '0').data('ll-action-func', 'thegem_init_odometer');
282				jQuery('.gem-icon', this).addClass('lazy-loading-item').data('ll-effect', 'fading').data('item-delay', '0');
283				jQuery('.gem-counter-text', this).addClass('lazy-loading-item').data('ll-effect', 'fading').data('item-delay', '0');
284				return;
285			}
286			init_odometer(this);
287		});
288
289		jQuery('.panel-sidebar-sticky > .sidebar').scSticky();
290
291		jQuery('iframe + .map-locker').each(function() {
292			var $locker = $(this);
293			$locker.click(function(e) {
294				e.preventDefault();
295				if($locker.hasClass('disabled')) {
296					$locker.prev('iframe').css({ 'pointer-events' : 'none' });
297				} else {
298					$locker.prev('iframe').css({ 'pointer-events' : 'auto' });
299				}
300				$locker.toggleClass('disabled');
301			});
302		});
303
304		$('.primary-navigation a.mega-no-link').closest('li').removeClass('menu-item-active current-menu-item');
305
306		function getElementPagePosition(element) {
307			var width = element.offsetWidth,
308				height = element.offsetHeight,
309				left = 0,
310				top = 0;
311
312			while (element && element.id != 'page') {
313				left += element.offsetLeft;
314				top += element.offsetTop;
315				element = element.offsetParent;
316			}
317
318			return {"left": left, "top": top, "width": width, "height": height};
319		}
320
321		var $anhorsElements = [];
322		$('.primary-navigation a, .gem-button, .footer-navigation a, .scroll-top-button, .scroll-to-anchor, .scroll-to-anchor a, .top-area-menu a').each(function(e) {
323			var $anhor = $(this);
324			var link = $anhor.attr('href');
325			if(!link) return ;
326			link = link.split('#');
327			if($('#'+link[1]).hasClass('vc_tta-panel')) return ;
328			if($('#'+link[1]).length) {
329				$anhor.closest('li').removeClass('menu-item-active current-menu-item');
330				$anhor.closest('li').parents('li').removeClass('menu-item-current');
331				$(document).on('update-page-scroller', function(e, elem) {
332					var $elem = $(elem);
333					if(!$anhor.closest('li.menu-item').length) return ;
334					if($elem.is($('#'+link[1])) || $elem.find($('#'+link[1])).length) {
335						$anhor.closest('li').addClass('menu-item-active');
336						$anhor.closest('li').parents('li').addClass('menu-item-current');
337					} else {
338						$anhor.closest('li').removeClass('menu-item-active');
339						$anhor.closest('li').parents('li.menu-item-current').each(function() {
340							if(!$('.menu-item-active', this).length) {
341								$(this).removeClass('menu-item-current');
342							}
343						});
344					}
345				});
346				$anhor.click(function(e) {
347					e.preventDefault();
348					var correction = 0;
349					var isPerspectiveMenu = $('#thegem-perspective.modalview').length;
350
351					if($('#site-header.animated-header').length) {
352						var shrink = $('#site-header').hasClass('shrink');
353						$('#site-header').addClass('scroll-counting');
354						$('#site-header').addClass('fixed shrink');
355						correction = $('#site-header').outerHeight();
356						if (!isPerspectiveMenu) {
357							var siteHeaderTop = $('#site-header').position().top;
358							if ($('#site-header').hasClass('shrink')) {
359								siteHeaderTop = 0;
360							}
361							correction += siteHeaderTop;
362						}
363
364						if(!shrink) {
365							$('#site-header').removeClass('fixed shrink');
366						}
367						setTimeout(function() {
368							$('#site-header').removeClass('scroll-counting');
369						}, 50);
370					}
371					var target_top = getElementPagePosition( $('#'+link[1])[0] ).top - correction + 1;
372					if($('body').hasClass('page-scroller') && $('.page-scroller-nav-pane').is(':visible')) {
373						var $block = $('#'+link[1]+'.scroller-block').add($('#'+link[1]).closest('.scroller-block')).eq(0);
374						if($block.length) {
375							$('.page-scroller-nav-pane .page-scroller-nav-item').eq($('.scroller-block').index($block)).trigger('click');
376						}
377					} else {
378						if (isPerspectiveMenu) {
379							$('#page').stop(true, true).animate({scrollTop:target_top}, 1500, 'easeInOutQuint', function() {
380								if($anhor.closest('#thegem-perspective').length && $anhor.closest('#thegem-perspective').hasClass('modalview')) {
381									$('.perspective-menu-close').trigger('click');
382								}
383							});
384						} else {
385							$('html, body').stop(true, true).animate({scrollTop:target_top}, 1500, 'easeInOutQuint');
386						}
387						if($anhor.closest('#primary-menu').length && $anhor.closest('#primary-menu').hasClass('dl-menuopen')) {
388							$('.menu-toggle').trigger('click');
389						}
390						if($anhor.closest('.mobile-menu-slide-wrapper').length && $anhor.closest('.mobile-menu-slide-wrapper').hasClass('opened')) {
391							$('.mobile-menu-slide-close').trigger('click');
392						}
393						if($anhor.closest('.overlay-menu-wrapper').length && $anhor.closest('.overlay-menu-wrapper').hasClass('active')) {
394							if($anhor.closest('#primary-navigation').length && $anhor.closest('#primary-navigation').hasClass('responsive')) {
395								$('.menu-toggle').trigger('click');
396							} else {
397								$('.overlay-toggle').trigger('click');
398							}
399						}
400						if($anhor.closest('#primary-navigation').length && $anhor.closest('#primary-navigation').hasClass('hamburger-active')) {
401							$('.hamburger-toggle').trigger('click');
402						}
403					}
404				});
405				$anhorsElements.push($anhor[0]);
406			}
407		});
408
409		if ($anhorsElements.length) {
410			function anchorLinksScroll() {
411				var isPerspectiveMenu = $('#thegem-perspective.modalview').length;
412				var correction = 0;
413
414				if (!$page.hasClass('vertical-header')) {
415					correction = $('#site-header').outerHeight();
416					if (!isPerspectiveMenu) {
417						var siteHeaderTop = $('#site-header').length ? $('#site-header').position().top : 0;
418						if ($('#site-header').hasClass('shrink')) {
419							siteHeaderTop = 0;
420						}
421						correction += siteHeaderTop;
422					}
423				}
424
425				for (var i = 0; i < $anhorsElements.length; i++) {
426					var $anhor = $($anhorsElements[i]);
427					var link = $anhor.attr('href');
428					if(!link) continue ;
429					link = link.split('#');
430					var scrollY = getScrollY() + $page.scrollTop();
431
432					if(!$anhor.closest('li.menu-item').length) continue ;
433					var target_top = getElementPagePosition( $('#'+link[1])[0] ).top - correction;
434					if(scrollY >= target_top && scrollY <= target_top + $('#'+link[1]).outerHeight()) {
435						$anhor.closest('li').addClass('menu-item-active');
436						$anhor.closest('li').parents('li').addClass('menu-item-current');
437					} else {
438						$anhor.closest('li').removeClass('menu-item-active');
439						$anhor.closest('li').parents('li.menu-item-current').each(function() {
440							if(!$('.menu-item-active', this).length) {
441								$(this).removeClass('menu-item-current');
442							}
443						});
444					}
445				}
446			}
447
448			$(window).scroll(anchorLinksScroll);
449			if ($('#thegem-perspective').length) {
450				$page.scroll(anchorLinksScroll);
451			}
452
453			$(window).load(function() {
454				for (var i = 0; i < $anhorsElements.length; i++) {
455					var anhor = $anhorsElements[i];
456					if (anhor.href != undefined && anhor.href && window.location.href == anhor.href) {
457						anhor.click();
458						break;
459					}
460				}
461			});
462		}
463
464		$('body').on('click', '.post-footer-sharing .gem-button', function(e) {
465			e.preventDefault();
466			$(this).closest('.post-footer-sharing').find('.sharing-popup').toggleClass('active');
467		});
468
469		var scrollTimer,
470			body = document.body;
471
472		$(window).scroll(function() {
473			clearTimeout(scrollTimer);
474			if(!body.classList.contains('disable-hover')) {
475				//body.classList.add('disable-hover')
476			}
477
478			scrollTimer = setTimeout(function(){
479				//body.classList.remove('disable-hover')
480			}, 300);
481
482			if(getScrollY() > 0) {
483				$('.scroll-top-button').addClass('visible');
484			} else {
485				$('.scroll-top-button').removeClass('visible');
486			}
487		}).scroll();
488
489		function getScrollY(elem){
490			return window.pageYOffset || document.documentElement.scrollTop;
491		}
492
493		$('a.hidden-email').each(function() {
494			$(this).attr('href', 'mailto:'+$(this).data('name')+'@'+$(this).data('domain'));
495		});
496
497		$('#colophon .footer-widget-area').thegemPreloader(function() {
498			$('#colophon .footer-widget-area').isotope({
499				itemSelector: '.widget',
500				layoutMode: 'masonry'
501			});
502		});
503
504		$('body').updateTabs();
505	});
506
507	$(document).on('show.vc.accordion', '[data-vc-accordion]', function() {
508		var $target = $(this).data('vc.accordion').getContainer();
509		var correction = 0;
510		if(!$target.find('.vc_tta-tabs').length || !$(this).is(':visible') || $target.data('vc-tta-autoplay')) return ;
511		if($('#site-header.animated-header').length && $('#site-header').hasClass('fixed')) {
512			var shrink = $('#site-header').hasClass('shrink');
513			$('#site-header').addClass('scroll-counting');
514			$('#site-header').addClass('fixed shrink');
515			correction = $('#site-header').outerHeight() + $('#site-header').position().top;
516			if(!shrink) {
517				$('#site-header').removeClass('fixed shrink');
518			}
519			$('#site-header').removeClass('scroll-counting');
520		}
521		var target_top = $target.offset().top - correction - 100 + 1;
522		$('html, body').stop(true, true).animate({scrollTop:target_top}, 500, 'easeInOutQuint');
523	});
524
525	var vc_update_fullwidth_init = true;
526	$(document).on('vc-full-width-row', function(e) {
527		if (window.gemOptions.clientWidth - $page.width() > 25 || window.gemSettings.isRTL) {
528			for (var i = 1; i < arguments.length; i++) {
529				var $el = $(arguments[i]);
530				$el.addClass("vc_hidden");
531				var $el_full = $el.next(".vc_row-full-width");
532				$el_full.length || ($el_full = $el.parent().next(".vc_row-full-width"));
533				var el_margin_left = parseInt($el.css("margin-left"), 10),
534					el_margin_right = parseInt($el.css("margin-right"), 10),
535					offset = 0 - $el_full.offset().left - el_margin_left + $('#page').offset().left + parseInt($('#page').css('padding-left')),
536					width = $('#page').width();
537
538				var offsetKey = window.gemSettings.isRTL ? 'right' : 'left';
539				var cssData = {
540					position: "relative",
541					left: offset,
542					"box-sizing": "border-box",
543					width: $("#page").width()
544				};
545				cssData[offsetKey] = offset;
546
547				if ($el.css(cssData), !$el.data("vcStretchContent")) {
548					var padding = -1 * offset;
549					0 > padding && (padding = 0);
550					var paddingRight = width - padding - $el_full.width() + el_margin_left + el_margin_right;
551					0 > paddingRight && (paddingRight = 0), $el.css({
552						"padding-left": padding + "px",
553						"padding-right": paddingRight + "px"
554					})
555				}
556				$el.attr("data-vc-full-width-init", "true"), $el.removeClass("vc_hidden");
557				$el.trigger('VCRowFullwidthUpdate');
558			}
559		}
560		update_fullwidths(true, vc_update_fullwidth_init);
561		vc_update_fullwidth_init = false;
562	});
563
564	if (!window.gemSettings.lasyDisabled && $.support.opacity) {
565	    $('.wpb_text_column.wpb_animate_when_almost_visible.wpb_fade').each(function() {
566	        $(this).wrap('<div class="lazy-loading"></div>').addClass('lazy-loading-item').data('ll-effect', 'fading');
567	    });
568
569	    $('.gem-list.lazy-loading').each(function() {
570	        $(this).data('ll-item-delay', '200');
571	        $('li', this).addClass('lazy-loading-item').data('ll-effect', 'slide-right');
572	        $('li', this).each(function(index) {
573	            $(this).attr("style", "transition-delay: " + (index + 1) * 0.2 + "s;");
574	        });
575	    });
576
577	    $.lazyLoading();
578	}
579
580	$('body').on('click', '.gem-button[href^="#give-form-"]', function(e) {
581		var form_id = $(this).attr('href').replace('#give-form-', '');
582		form_id = parseInt(form_id);
583		if (!isNaN(form_id)) {
584			$('#give-form-' + form_id + ' .give-btn-modal').click();
585		}
586		e.preventDefault();
587		return false;
588	});
589
590})(jQuery);
591
592(function($) {
593		$('.menu-item-search a').on('click', function(e){
594			e.preventDefault();
595			$('.menu-item-search').toggleClass('active');
596		});
597})(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.