PageSourceSearch

https://thenewly.ca/wp-content/themes/uncode/library/js/menuSystem.js?ver=59677088

js thenewly.ca collected 2026-10-04 11:17:24 UTC 41,081 bytes, 1,194 lines download raw bytes

1(function($) {
2	"use strict";
3
4	UNCODE.animateSubInside = function( _this, remove ){
5	if ( typeof remove !== 'undefined' && remove === true ) {
6		$(document).trigger('sub-menu-slide-up');
7		$('.animate_when_almost_visible, .translate_when_almost_visible', _this).each(function(){
8			$(this).removeClass('start_animation').css({ 'animation-delay': '0s', 'transition-delay': '0s'});
9		});
10	} else {
11		$.each($('.translate_when_almost_visible:not(.start_animation), .animate_when_almost_visible:not(.start_animation):not(.t-inside):not(.drop-image-separator), .index-scroll .animate_when_almost_visible, .tmb-media .animate_when_almost_visible:not(.start_animation), .animate_when_almost_visible.has-rotating-text, .custom-grid-container .animate_when_almost_visible:not(.start_animation)', _this), function(index, val) {
12			var element = $(val),
13				delayAttr = element.attr('data-delay');
14			if (delayAttr == undefined) delayAttr = 0;
15			element.css({ 'animation-delay': delayAttr + 'ms', 'transition-delay': delayAttr + 'ms'});
16			element.addClass('start_animation');
17		});
18		document.dispatchEvent(new CustomEvent('sub-menu-slide-down'));
19	}
20};
21
22
23UNCODE.menuToggleAnimation = function() {
24	var $block = $('body'),
25		$menuBlocks = $('.menu.unmenu-block', $block),
26		$allSeqs = $('[data-delay-seq]', $block);
27
28	$allSeqs.each(function(key, seq){
29		$(seq).removeAttr('data-delay');
30	});
31
32	$menuBlocks.each(function(key, menu){
33
34		var $animatesHidden = $('.translate_when_almost_visible', menu).filter(':hidden');
35		$animatesHidden.each(function(key_, seq){
36			$(seq).removeClass('translate_when_almost_visible').addClass('not_translate_when_almost_visible');
37		});
38
39		var $animatesVisibile = $('.not_translate_when_almost_visible', menu).filter(':visible');
40		$animatesVisibile.each(function(key_, seq){
41			$(seq).removeClass('not_translate_when_almost_visible').addClass('translate_when_almost_visible');
42		});
43
44		var $delaySequentials = $('[data-delay-seq]', menu).filter(':visible'),
45			delay = parseFloat( $delaySequentials.first().attr('data-delay-seq') ),
46			interval = parseFloat( $delaySequentials.first().attr('data-interval') );
47		$delaySequentials.each(function(_key, seq){
48			$(seq).attr('data-delay', delay + (interval*_key));
49		});
50	});
51};
52
53// Registrato al caricamento dello script (prima di UNCODE.init → unBlockMenu),
54// così il trigger sincrono 'unblock-toggles-init' trova già il listener attivo.
55$(document).on('unblock-toggles-init', UNCODE.menuToggleAnimation);
56
57UNCODE.menuSystem = function() {
58
59	function menuMobile() {
60		var $body = $('body'),
61			scrolltop,
62			$mobileToggleButton = $('.mobile-menu-button, .uncode-close-offcanvas-mobile:not(.vc_element)'),
63			$masthead = $('#masthead'),
64			$menuBlock = $('#uncode-mobile-menu-block'),
65			$box,
66			$el,
67			$el_transp,
68			elHeight,
69			offCanvasAnim,
70			check,
71			animating = false,
72			stickyMobile = false,
73			menuClose = new CustomEvent('menuMobileClose'),
74			menuOpen = new CustomEvent('menuMobileOpen');
75		UNCODE.menuOpened = false;
76		$mobileToggleButton.on('click', function(event) {
77			event.stopPropagation();
78			var btn = this;
79			if ($(btn).hasClass('overlay-close')) return;
80			event.preventDefault();
81			$('.overlay-search.open .menu-close-dd', $masthead).trigger('click');
82			if (UNCODE.wwidth <= UNCODE.mediaQuery) {
83				$box = $(this).closest('.box-container').find('.main-menu-container:not(.no-mobile):not(.main-wrapper *)');
84				$el = $(this).closest('.box-container').find('.menu-horizontal-inner:not(.row-brand):not(.main-wrapper *), .menu-sidebar-inner:not(.main-wrapper *)');
85				$el_transp = $('.menu-absolute.menu-transparent');
86				if (UNCODE.isMobile) {
87					if ( $('.menu-wrapper.menu-sticky, .menu-wrapper.menu-hide-only, .main-header .menu-sticky-vertical, .main-header .menu-hide-only-vertical, .menu-mobile-centered, .menu-sticky-mobile').length ) {
88						stickyMobile = true;
89						elHeight = window.innerHeight - UNCODE.menuMobileHeight - (UNCODE.bodyBorder * 2) - UNCODE.adminBarHeight + 1;
90					} else {
91						elHeight = 0;
92						$.each($box.find('> div'), function(index, val) {
93							elHeight += $(val).outerHeight();
94						});
95					}
96				} else {
97					elHeight = 0;
98					$.each($el, function(index, val) {
99						elHeight += $(val).outerHeight();
100					});
101				}
102				var open = function() {
103					clearTimeout(offCanvasAnim);
104					if (!animating) {
105						$body.addClass('open-overlay-menu').addClass('opening-overlay-menu');
106						scrolltop = $(window).scrollTop();
107						window.dispatchEvent(menuOpen);
108						animating = true;
109						UNCODE.menuOpened = true;
110						if ($('body[class*="vmenu-"], body.hmenu-center').length && ($('.menu-hide, .menu-sticky, .menu-transparent').length)) {
111							if ( $body.hasClass('menu-sticky-mobile') || ( $('#masthead.menu-transparent').length && !UNCODE.isMobile ) ) {
112								$('.main-header > .vmenu-container').css({position:'fixed', top: ($('.menu-container').outerHeight() + UNCODE.bodyBorder + UNCODE.adminBarHeight) + 'px'});
113							}
114							if ($('body.menu-offcanvas').length) {
115								$('.menu-container:not(.sticky-element):not(.grid-filters)').css({position:'fixed'});
116								$('.vmenu-container.menu-container:not(.sticky-element):not(.grid-filters)').css({position:'fixed', top: (UNCODE.menuMobileHeight + 
116UNCODE.bodyBorder + UNCODE.adminBarHeight) + 'px'});
117							} else {
118								if ( $('.menu-hide, .menu-sticky').length ) {
119									if ( UNCODE.wwidth >= 960 && $('.menu-sticky').length  ) {
120										$('.menu-container:not(.sticky-element):not(.grid-filters)').css({position:'fixed'});
121									}
122								}
123							}
124						}
125						if ($('body.hmenu-center').length && ( (!UNCODE.isMobile && $('.menu-hide, .menu-sticky').length) || (UNCODE.isMobile && $('.menu-sticky-mobile').length) )) {
126							//$("#masthead")[0].scrollIntoView();
127							$('.menu-container:not(.sticky-element):not(.grid-filters)').css({position:'fixed', top: (UNCODE.menuMobileHeight + UNCODE.bodyBorder + UNCODE.adminBarHeight) + 'px'});
128						}
129						$box.addClass('open-items');
130						if ($el_transp.length && $('body.menu-mobile-transparent').length) {
131							$el_transp.addClass('is_mobile_open');
132						}
133						if ( ! $('body').hasClass('menu-mobile-off-canvas') ) {
134							btn.classList.add('close');
135							$box.animate({
136								height: elHeight
137							}, 600, "easeInOutCirc", function() {
138								animating = false;
139								if (!stickyMobile) $box.css('height', 'auto');
140							});
141						} else {
142							animating = false;
143						}
144
145						if ( $menuBlock.length ) {
146							UNCODE.animateSubInside($menuBlock);
147						}
148					}
149				};
150
151				var close = function() {
152					clearTimeout(offCanvasAnim);
153					if (!animating) {
154						window.dispatchEvent(menuClose);
155						animating = true;
156						UNCODE.menuOpened = false;
157						if ( ! $('body').hasClass('menu-mobile-off-canvas') ) {
158							btn.classList.remove('close');
159							btn.classList.add('closing');
160						}
161						$box.addClass('close');
162						requestTimeout(function() {
163							$box.removeClass('close');
164							$box.removeClass('open-items');
165							btn.classList.remove('closing');
166							if ($el_transp.length) {
167								$el_transp.removeClass('is_mobile_open');
168							}
169						}, 500);
170						$body.removeClass('opening-overlay-menu');
171						if ( ! $('body').hasClass('menu-mobile-off-canvas') ) {
172							$box.animate({
173								height: 0
174							}, {
175								duration: 600,
176								easing: "easeInOutCirc",
177								complete: function(elements) {
178									$(elements).css('height', '');
179									animating = false;
180									if ($('body[class*="vmenu-"]').length && UNCODE.wwidth >= 960) {
181										$('.main-header > .vmenu-container').add('.menu-container:not(.sticky-element):not(.grid-filters)').css('position','relative');
182									}
183									$body.removeClass('open-overlay-menu');
184									if ( $menuBlock.length ) {
185										UNCODE.animateSubInside($menuBlock, true);
186									}
187								}
188							});
189						} else {
190							animating = false;
191							offCanvasAnim = setTimeout(function(){
192								$body.removeClass('open-overlay-menu');
193								if ( $menuBlock.length ) {
194									UNCODE.animateSubInside($menuBlock, true);
195								}
196							}, 1000);
197						}
198					}
199				};
200				check = (!UNCODE.menuOpened) ? open() : close();
201			}
202		});
203
204		$('html').on('click', function(event){
205			if ( $('body').hasClass('menu-mobile-off-canvas') && UNCODE.wwidth < 960 && UNCODE.menuOpened && event.clientX < SiteParameters.menu_mobile_offcanvas_gap ) {
206				$('.uncode-close-offcanvas-mobile:visible').trigger('click');
207			}
208		});
209
210		window.addEventListener('menuMobileTrigged', function(e) {
211			$('.mobile-menu-button.close, .opening-overlay-menu .uncode-close-offcanvas-mobile').trigger('click');
212		});
213		window.addEventListener('orientationchange', function(e) {
214			$('#logo-container-mobile .mobile-menu-button.close').trigger('click');
215		});
216		window.addEventListener("resize", function() {
217			if ($(window).width() < UNCODE.mediaQuery) {
218				if (UNCODE.isMobile) {
219					var $box = $('.box-container .main-menu-container'),
220						$el = $('.box-container .menu-horizontal-inner:not(.no-mobile), .box-container .menu-sidebar-inner:not(.no-mobile)');
221					if ($($box).length && $($box).hasClass('open-items') && $($box).css('height') != 'auto' && ! $('body').hasClass('menu-mobile-off-canvas') ) {
222						if ($('.menu-wrapper.menu-sticky, .menu-wrapper.menu-hide-only').length) {
223							elHeight = 0;
224							$.each($el, function(index, val) {
225								elHeight += $(val).outerHeight();
226							});
227							elHeight = window.innerHeight - $('.menu-wrapper.menu-sticky .menu-container .row-menu-inner, .menu-wrapper.menu-hide-only .menu-container .row-menu-inner').height() - (UNCODE.bodyBorder * 2) + 1;
228							$($box).css('height', elHeight + 'px');
229						}
230					}
231				}
232			} else {
233				$('.menu-hide-vertical').removeAttr('style');
234				$('.menu-container-mobile').removeAttr('style');
235				$('.vmenu-container.menu-container').removeAttr('style');
236
237				if ( UNCODE.menuOpened ) {
238					$('.open-items').removeClass('open-items');
239					$('.is_mobile_open').removeClass('is_mobile_open');
240					$('.open-overlay-menu').removeClass('open-overlay-menu');
241					$('.opening-overlay-menu').removeClass('opening-overlay-menu');
242				}
243			}
244		});
245
246		$(window).on('scroll', function(){
247			if ( $body.hasClass('opening-overlay-menu') && $body.hasClass('menu-mobile-off-canvas') && UNCODE.wwidth < 960 ) {
248				$(window).scrollTop(scrolltop);
249				return false;
250			}
251		});
252
253	};
254
255	function menuOffCanvas() {
256		var menuClose = new CustomEvent('menuCanvasClose'),
257			menuOpen = new CustomEvent('menuCanvasOpen');
258		$('.menu-primary .menu-button-offcanvas:not(.menu-close-search)').on('click', function(event) {
259			if ($(window).width() > UNCODE.mediaQuery) {
260				if ( $('body.vmenu-offcanvas-overlay').length ) {
261					if ($(event.currentTarget).hasClass('off-close')) {
262						$(event.currentTarget).removeClass('off-close');
263						requestTimeout(function() {
264							window.dispatchEvent(menuClose);
265						}, 500);
266
267					} else {
268						$(event.currentTarget).addClass('off-close');
269						window.dispatchEvent(menuOpen);
270					}
271				} else {
272					if ($(event.currentTarget).hasClass('close')) {
273						$(event.currentTarget).removeClass('close');
274						$(event.currentTarget).addClass('closing');
275						requestTimeout(function() {
276							$(event.currentTarget).removeClass('closing');
277							window.dispatchEvent(menuClose);
278						}, 500);
279
280					} else {
281						$(event.currentTarget).addClass('close');
282						window.dispatchEvent(menuOpen);
283					}
284				}
285			}
286
287			$('body').toggleClass('off-opened');
288		});
289
290		$('body').on('click.menu-off-canvas-mobile', function(e){
291			if ( $(window).width() > UNCODE.mediaQuery && $('body.menu-offcanvas.vmenu-offcanvas-overlay.off-opened').length ) {
292				var $vMenuCont = $('#masthead .vmenu-container'),
293					$close_menu = $('.uncode-close-offcanvas-overlay', $vMenuCont),
294
295					vmenu_h = parseFloat( $vMenuCont.outerHeight() ),
296					vmenu_w = parseFloat( $vMenuCont.outerWidth() ),
297					vmenu_off = $vMenuCont.offset(),
298					vmenu_l = parseFloat(vmenu_off.left),
299					vmenu_t = parseFloat(vmenu_off.top),
300					vmenu_r = vmenu_l + vmenu_w,
301					vmenu_b = vmenu_t + vmenu_h,
302
303					close_h = parseFloat( $close_menu.outerHeight() ),
304					close_w = parseFloat( $close_menu.outerWidth() ),
305					close_off = $close_menu.offset(),
306					close_l = parseFloat(close_off.left),
307					close_t = parseFloat(close_off.top),
308					close_r = close_l + close_w,
309					close_b = close_t + close_h;
310				if (
311					!(
312						e.clientX > vmenu_l &&
313						e.clientX < vmenu_r
314					)
315					||
316					(
317						e.clientX > close_l &&
318						e.clientX < close_r
319					)
320				) {
321					$('.menu-primary .menu-button-offcanvas:not(.menu-close-search)').trigger('click');
322				}
323			}
324		});
325	};
326
327	function menuOverlay() {
328		if ( $('.overlay').length ) {
329			$('.overlay').removeClass('hidden');
330		}
331		if ( ($('.overlay-sequential').length > 0 && UNCODE.wwidth >= UNCODE.mediaQuery) || ($('.menu-mobile-animated').length > 0 && UNCODE.wwidth < UNCODE.mediaQuery) ) {
332			$('.overlay-sequential .menu-smart > li, .menu-sticky .menu-container .menu-smart > li, .menu-hide.menu-container .menu-smart > li, .vmenu-container .menu-smart > li, .uncode-menu-additional-text').each(function(index, el) {
333				var transDelay = (index / 20) + 0.1;
334				if ( $('body').hasClass('menu-mobile-centered') && $(window).width() < UNCODE.mediaQuery )
335					transDelay = transDelay + 0.3;
336				$(this)[0].setAttribute('style', '-webkit-transition-delay:' + transDelay + 's; -moz-transition-delay:' + transDelay + 's; -ms-transition-delay:' + transDelay + 's; -o-transition-delay:' + transDelay + 's; transition-delay:' + transDelay + 's');
337			});
338		}
339	};
340
341	// menuToggleAnimation è definita a livello globale (vedi UNCODE.menuToggleAnimation
342	// più in alto) e il listener 'unblock-toggles-init' viene registrato una sola volta
343	// al caricamento dello script, così è già attivo quando UNCODE.unBlockMenu() lo lancia.
344
345	var $secondary_parent;
346	function menuAppend() {
347
348		var $menuBlock = $('#uncode-mobile-menu-block').length;
349		if ( $menuBlock ) {
350			return;
351		}
352		var $body = $('body'),
353			$menuCont = $('.menu-container:not(.vmenu-container)'),
354			$vMenuCont = $('.menu-container.vmenu-container'),
355			$cta = $('.navbar-cta'),
356			$socials = $('.navbar-social:not(.appended-navbar)'),
357			$ul = $('.navbar-main ul.menu-primary-inner'),
358			$ulCta,
359			$ulSocials,
360			$navLast,
361			$firstMenu = $('.main-menu-container:first-child', $menuCont),
362			$secondMenu = $('.main-menu-container:last-child', $menuCont),
363			$firstNav = $('.navbar-nav:not(.uncode-close-offcanvas-mobile):first-child', $firstMenu),
364			$secondNav = $('.navbar-nav:not(.uncode-close-offcanvas-mobile):first-child', $secondMenu),
365			$ulFirst = $('> ul', $firstNav),
366			setCTA,
367			appendCTA = function(){
368				return true;
369			},
370			appendSocials = function(){
371				return true;
372			},
373			appendSplit = function(){
374				return true;
375			};
376
377		if ( ( $body.hasClass('menu-offcanvas') || $body.hasClass('menu-overlay') || $body.hasClass('hmenu-center-split') ) && $cta.length ) {
378			$ulCta = $('> ul', $cta);
379			$ulCta.parent().addClass('mobile-hidden').addClass('tablet-hidden');
380
381			appendCTA = function(){
382				if (UNCODE.wwidth < UNCODE.mediaQuery) {
383					$ul.after($ulCta);
384				} else {
385					$cta.append($ulCta);
386				}
387			}
388		}
389
390		if ( ! $body.hasClass('cta-not-appended') ) {
391			appendCTA();
392		}
393
394		var $smartSocial = $menuCont.add($vMenuCont).find('.menu-smart-social');
395		$smartSocial.each(function(){
396			var $_smartSocial = $(this);
397			$('> li', $_smartSocial).each(function(){
398				var $li = $(this);
399				if ( $li.hasClass('mobile-hidden') ) {
400					$_smartSocial.addClass('mobile-hidden');
401				} else {
402					$_smartSocial.removeClass('mobile-hidden');
403					return false;
404				}
405			});
406
407			$('> li', $_smartSocial).each(function(){
408				var $li = $(this);
409				if ( $li.hasClass('tablet-hidden') ) {
410					$_smartSocial.addClass('tablet-hidden');
411				} else {
412					$_smartSocial.removeClass('tablet-hidden');
413					return false;
414				}
415			});
416		});
417
418		if ( ( $body.hasClass('hmenu-center-split') || $body.hasClass('menu-overlay-center') || $body.hasClass('menu-offcanvas') || $body.hasClass('vmenu') ) && $socials.length ) {
419			$ulSocials = $('> ul', $socials).addClass('menu-smart-social');
420			if ( $body.hasClass('hmenu-center-split') ) {
421				$navLast = $('.menu-horizontal-inner .navbar-nav-last', $menuCont);
422			} else {
423				$navLast = $('.navbar-nav-last', $vMenuCont);
424			}
425
426			if ( ! $navLast.length ) {
427				var _navLast = $('<div class="nav navbar-nav navbar-social navbar-nav-last appended-navbar" />');
428				if ( $body.hasClass('hmenu-center-split') ) {
429					$('.menu-horizontal-inner', $menuCont).append(_navLast);
430					$navLast = $('.menu-horizontal-inner .navbar-nav-last', $menuCont);
431				} else {
432					$('.menu-sidebar-inner', $vMenuCont).last().append(_navLast);
433					$navLast = $('.navbar-nav-last', $vMenuCont);
434				}
435			}
436
437			appendSocials = function(){
438				if ( !$body.hasClass('menu-overlay-center') ) {
439				// 	if ( !$navLast.find('ul.menu-smart-social').length ) {
440				// 		$ulSocials = $('.menu-smart-social li.social-icon', $vMenuCont);
441				// 		$navLast.append('<ul class="menu-smart menu-smart-social" />');
442				// 		$ulSocials.each(function(){
443				// 			var $li_social = $(this);
444				// 			$navLast.find('ul.menu-smart-social').append($li_social);
445				// 		});
446				// 	}
447				// } else {
448					if (UNCODE.wwidth < UNCODE.mediaQuery) {
449						$socials.addClass('mobile-hidden').addClass('tablet-hidden')
450						if ( ! $('> ul.menu-smart-social li', $socials).length ) {
451							$('> ul.menu-smart-social li', $socials).remove();
452						}
453						$navLast.append($ulSocials);
454					} else {
455						if ( ! $('> ul.menu-smart-social li', $navLast).length ) {
456							$('> ul.menu-smart-social li', $navLast).remove();
457						}
458						$socials.append($ulSocials);
459					}
460				}
461			}
462			appendSocials();
463		}
464
465		if ( $vMenuCont.length ) {
466			var $accordion_secondary = $('.menu-accordion-secondary', $vMenuCont);
467		} else {
468			var $accordion_secondary = $('.menu-accordion-secondary', $menuCont);
469		}
470		if ( $accordion_secondary.length ) {
471			var $accordion_secondary_ph = $vMenuCont.add($menuCont).find('.accordion-secondary-ph');
472			if (UNCODE.wwidth < UNCODE.mediaQuery) {
473				if ( !$accordion_secondary_ph.length ) {
474					$accordion_secondary.after('<span class="accordion-secondary-ph" />');
475				}
476				if ( $vMenuCont.length ) {
477					$('.menu-sidebar-inner', $vMenuCont).first().find('.menu-accordion:not(.menu-accordion-secondary):not(.menu-accordion-extra-icons)').last().after($accordion_secondary);
478				} else {
479					if ( $('.navbar-nav.navbar-cta:not(.mobile-hidden)', $menuCont).length ) {
480						$('.navbar-nav.navbar-cta', $menuCont).after($accordion_secondary);
481					} else {
482						$('.navbar-nav.navbar-main', $menuCont).after($accordion_secondary);
483					}
484				}
485			} else {
486				if ( typeof $accordion_secondary_ph !== 'undefined' && $accordion_secondary_ph.length ) {
487					$accordion_secondary_ph.before($accordion_secondary);
488				}
489			}
490		}
491
492		if ( $vMenuCont.length ) {
493			var $extra_icons = $('.menu-accordion-extra-icons', $vMenuCont);
494		} else {
495			var $extra_icons = $('.navbar-extra-icons', $menuCont);
496		}
497
498		if ( $extra_icons.length ) {
499			if ( $vMenuCont.length ) {
500				if ( $('li:not(.social-icon)', $extra_icons).length ) {
501					if (UNCODE.wwidth < UNCODE.mediaQuery) {
502						var $not_social = $('> ul > li:not(.social-icon)', $extra_icons),
503							$primary_after = $('.menu-accordion-primary-after', $vMenuCont);
504						$not_social.each(function(){
505							if ( ! $primary_after.length ) {
506								$('.menu-accordion-primary', $vMenuCont).after('<div class="menu-accordion menu-accordion-primary-after" />');
507								$primary_after = $('.menu-accordion-primary-after', $vMenuCont);
508								$primary_after.append('<ul class="menu-smart sm sm-vertical menu-smart-social" />');
509							}
510							var $extra_li = $(this);
511							$primary_after.find('> ul').append($extra_li);
512						});
513					} else {
514						var $primary_after = $('.menu-accordion-primary-after', $vMenuCont),
515							$not_social = $('> ul > li:not(.social-icon)', $primary_after);
516						$not_social.each(function(){
517							var $extra_li = $(this);
518							$extra_icons.find('> ul').append($extra_li);
519						});
520					}
521				} /*else {
522					var $extra_icons_ph = $vMenuCont.add($menuCont).find('.extra-icons-ph');
523					if (UNCODE.wwidth < UNCODE.mediaQuery) {
524						if ( !$extra_icons_ph.length ) {
525							$extra_icons.after('<span class="extra-icons-ph" />');
526						}
527						if ( $('.navbar-accordion-cta', $vMenuCont).length ) {
528							$('.navbar-accordion-cta', $vMenuCont).after($extra_icons);
529						} else {
530							$('.menu-accordion-primary', $vMenuCont).after($extra_icons);
531						}
532					} else {
533						if ( typeof $extra_icons_ph !== 'undefined' && $extra_icons_ph.length ) {
534							$extra_icons_ph.before($extra_icons);
535						}
536					}
537				}*/
538			} else {
539				if ( ! $body.hasClass('hmenu-center-double') ) {
540					if (UNCODE.wwidth < UNCODE.mediaQuery) {
541						var $not_social = $('> ul > li:not(.social-icon)', $extra_icons),
542							$primary_after = $('.nav.navbar-main-after', $menuCont);
543
544						if ( ! $primary_after.length && $not_social.length ) {
545							if ( $('.navbar-nav.navbar-cta:not(.mobile-hidden)', $menuCont).length ) {
546								$('.navbar-nav.navbar-cta', $menuCont).after('<div class="nav navbar-main-after" />');
547							} else {
548								$('.navbar-nav.navbar-main', $menuCont).after('<div class="nav navbar-main-after" />');
549							}
550							$primary_after = $('.nav.navbar-main-after', $menuCont);
551							$primary_after.append('<ul class="menu-smart sm menu-smart-social" role="menu" />');
552						}
553						var tablet_hidden = true,
554							mobile_hidden = true;
555						$not_social.each(function(){
556							var $extra_li = $(this);
557							$primary_after.find('> ul').append($extra_li);
558							if ( ! $extra_li.hasClass('tablet-hidden') ) {
559								tablet_hidden = false;
560							}
561							if ( ! $extra_li.hasClass('mobile-hidden') ) {
562								mobile_hidden = false;
563							}
564						});
565						if ( tablet_hidden === true && $not_social.length ) {
566							$primary_after.addClass('tablet-hidden');
567						}
568						if ( mobile_hidden === true && $not_social.length ) {
569							$primary_after.addClass('mobile-hidden');
570						}
571					} else {
572						var $primary_after = $('.nav.navbar-main-after', $menuCont);
573
574						if ( $primary_after.length ) {
575							var $not_social = $('> ul > li:not(.social-icon)', $primary_after);
576							$not_social.each(function(){
577								var $extra_li = $(this);
578								$extra_icons.find('> ul').append($extra_li);
579							});
580							$primary_after.remove();
581						}
582					}
583				}
584			}
585		}
586
587		if ( ( $body.hasClass('hmenu-center-double') ) ) {
588			appendSplit = function(){
589				if (UNCODE.wwidth < UNCODE.mediaQuery) {
590					if ( $extra_icons.length ) {
591						if ( $('li:not(.social-icon):not(.tablet-hidden):not(.mobile-hidden)', $extra_icons).length ) {
592							var $not_social = $('> ul > li:not(.social-icon)', $extra_icons),
593								$append_ul = $('<ul class="menu-smart sm sm-vertical append-extra-icons" />');
594							$not_social.each(function(){
595								var $extra_li = $(this);
596								$append_ul.append($extra_li);
597							});
598							if ( $secondNav.length ) {
599								$secondNav.append($append_ul);
600							} else {
601								$('.menu-horizontal-inner', $menuCont).prepend($append_ul);
602							}
603						}
604					}
605					if ( $secondNav.length ) {
606						$secondNav.prepend($ulFirst);
607					} else {
608						$('.menu-horizontal-inner', $menuCont).prepend($ulFirst);
609					}
610					$firstMenu.hide();
611				} else {
612					$firstNav.append($ulFirst);
613					var $append_ul = $('.menu-horizontal-inner ul.append-extra-icons', $menuCont).eq(0);
614					if ( $append_ul.length ) {
615						var $not_social = $('> li:not(.social-icon)', $append_ul);
616						$not_social.each(function(){
617							var $extra_li = $(this);
618							$extra_icons.find('> ul').append($extra_li);
619						});
620					}
621					$('.menu-horizontal-inner ul.append-extra-icons', $menuCont).remove();
622					$('.menu-horizontal-inner > .menu-primary-inner', $menuCont).remove();
623					$firstMenu.css({
624						'display': 'table-cell'
625					});
626				}
627			}
628		}
629		appendSplit();
630
631		$(window).on( 'wwResize', function(){
632			clearRequestTimeout(setCTA);
633			setCTA = requestTimeout( function() {
634				appendCTA();
635				appendSocials();
636				appendSplit();
637			}, 10 );
638		});
639	}
640	//menuMobileButton();
641	menuMobile();
642	menuOffCanvas();
643	menuAppend();
644	menuOverlay();
645
646	var stickyDropdownSearch = function(){
647		var $masthead = $('#masthead'),
648			$ddSearch = $('.overlay.overlay-search', $masthead),
649			$styles = $('#stickyDropdownSearch').remove();
650		if ( $('body.hmenu-center.menu-sticky-mobile').length && $ddSearch.length ) {
651			var $menuWrapper = $('.menu-wrapper'),
652				$navbar = $('.menu-container-mobile', $menuWrapper),
653				navbarH = $navbar.outerHeight(),
654				//$topbar = $('.top-menu', $menuWrapper),
655				//topbarH = $topbar.outerHeight(),
656				_css;
657
658			_css = '<style id="stickyDropdownSearch">';
659			_css += '@media (max-width: 959px) {';
660			_css += 'body.hmenu-center.menu-sticky-mobile #masthead .overlay.overlay-search {';
661			_css += 'margin-top: ' + parseFloat(navbarH) + 'px !important;';
662			_css += '}';
663			_css += 'body.hmenu-center.menu-sticky-mobile .navbar.is_stuck + #masthead .overlay.overlay-search {';
664			_css += 'position: fixed;';
665			_css += 'top: 0;';
666			_css += '}';
667			_css += '</style>';
668
669			$(_css).appendTo($('head'));
670		}
671	}
672	stickyDropdownSearch();
673
674	var setMenuOverlay;
675	$(window).on( 'wwResize', function(){
676		if ( $('.overlay').length && $(window).width() > 1024 ) {
677			$('.overlay').addClass('hidden');
678		}
679		clearRequestTimeout(setMenuOverlay);
680		setMenuOverlay = requestTimeout( function(){
681			menuOverlay();
682			menuAppend();
683			stickyDropdownSearch();
684		}, 150 );
685	});
686	UNCODE.menuMegaBlock();
687	UNCODE.menuSmartInit();
688	$(window).on('wwResize', function(){
689		UNCODE.menuSmartInit();
690	});
691
692	$(window).on('menuOpen', function(){
693		var $overlay = $('.overlay.overlay-unblock');
694		if ( $overlay.length ) {
695			UNCODE.animateSubInside($overlay);
696		}
697	});
698
699	$(window).on('menuClosed', function(){
700		var $overlay = $('.overlay.overlay-unblock');
701		if ( $overlay.length ) {
702			UNCODE.animateSubInside($overlay, true);
703			var $smartMenus = $overlay.find('.menu-smart');
704			$smartMenus.each(function(key, smartMenu){
705				$(smartMenu).smartmenus('menuHideAll');
706			});
707		}
708	});
709};
710
711UNCODE.menuSmartInit = function() {
712	var $menusmart = $('[class*="menu-smart"]'),
713		$masthead = $('#masthead'),
714		$hMenu = $('.menu-horizontal-inner', $masthead),
715		$focus = $('.overlay-menu-focus'),
716		$uls_anim = $('> li> ul[role="menu"]', $menusmart),
717		showTimeout = 50,
718		hideTimeout = 50,
719		showTimeoutFunc, hideTimeoutFunc, subMenuRT;
720
721	if ( typeof $masthead.attr('data-menu-anim') !== 'undefined' && $masthead.attr('data-menu-anim') !== '' ) {
722		var menu_anim = $masthead.attr('data-menu-anim');
723		if ( UNCODE.wwidth >= UNCODE.mediaQuery ) {
724			$uls_anim.each(function(){
725				var $ul_anim = $(this);
726				if ( !$('> li[data-block]', $ul_anim).length ) {
727					$ul_anim.addClass('animate_when_almost_visible');
728					$ul_anim.addClass(menu_anim);
729				} else {
730					var dataB = $('> li[data-block]', $ul_anim).attr('data-block');
731					if ( dataB !== 'no-anim' && !dataB.includes('slight-anim') ) {
732						$ul_anim.addClass('animate_when_almost_visible');
733						$ul_anim.addClass(dataB);
734					}
735				}
736			});
737		} else {
738			$uls_anim.each(function(){
739				var $ul_anim = $(this);
740				if ( !$('> li[data-block]', $ul_anim).length ) {
741					$ul_anim.removeClass('animate_when_almost_visible');
742					$ul_anim.removeClass(menu_anim);
743				} else {
744					var dataB = $('> li[data-block]', $ul_anim).attr('data-block');
745					$ul_anim.removeClass('animate_when_almost_visible');
746					$ul_anim.removeClass(dataB);
747				}
748			});
749		}
750	}
751
752	$('> li.menu-item-has-children', $menusmart).hover(function(){
753		$(this).data('hover', true);
754	}, function(){
755		$(this).data('hover', false);
756	});
757
758	$('> li.menu-item-has-children', $menusmart).each(function(){
759		var $a = $('> a', this).attr('aria-haspopup', 'true').attr('aria-expanded', 'false')
760	});
761
762	$('> li.menu-item a[href="#"]', $menusmart).on('click', function(e){
763		e.preventDefault();
764	});
765
766	if ( $(window).width() >= UNCODE.mediaQuery && $('.overlay-menu-focus').length ) {
767			
768		var $notLis = $('> .nav > ul > li a', $hMenu),
769			$menuA = $('a', $masthead).not($notLis),
770			$hoverSelector = $('> .nav > ul > li', $hMenu).has('> ul'),
771			showFuncCond = function() { return true };
772
773		if ( $('body').hasClass('focus-megamenu') ) {
774			$hoverSelector = $('> .nav > ul > li', $hMenu).has('.need-focus');
775			showFuncCond = function($ul) { return $ul.hasClass('need-focus') };
776		} else if ( $('body').hasClass('focus-links') ) {
777			$hoverSelector = $('> .nav > ul > li', $hMenu).add($menuA);
778		}
779
780		$hoverSelector.hover(function(){
781			clearRequestTimeout(hideTimeoutFunc);
782			showTimeoutFunc = requestTimeout(function(){
783				$('body').addClass('navbar-hover');
784			}, showTimeout*2);
785		}, function(){
786			hideTimeoutFunc = requestTimeout(function(){
787				if ( ! $('.overlay-search.open', $masthead).length ) {
788					$('body').removeClass('navbar-hover');
789				}
790			}, hideTimeout*2);
791		});
792	} else {
793		showFuncCond = function() { return false };
794	}
795
796	if ($menusmart.length > 0) {
797		var objShowTimeout;
798		$menusmart.smartmenus({
799			subIndicators: false,
800			subIndicatorsPos: 'append',
801			//subMenusMinWidth: '13em',
802			showOnClick: SiteParameters.menuShowOnClick,
803			subIndicatorsText: '',
804			showTimeout: showTimeout,
805			hideTimeout: hideTimeout,
806			scrollStep: 8,
807			showFunction: function($ul, complete) {
808				$(document).trigger('un-menu-show', $ul);
809				clearRequestTimeout(showTimeoutFunc);
810				$ul.fadeIn(0, 'linear', function(){
811					complete();
812					if ( $ul.hasClass('vc_row') ) {
813						$ul.css({
814							'display': 'table'
815						});
816					}
817					if ( $('.overlay-menu-focus').length && $ul.hasClass('need-focus') ) {
818						$('body').addClass('open-megamenu');
819					}
820					if ( $('.overlay-menu-focus').length && showFuncCond($ul) && $(window).width() >= UNCODE.mediaQuery && $ul.closest('.main-menu-container').length ) {
821						$('body').addClass('navbar-hover');
822					}
823					var showed = 0;
824					$('.animate_when_almost_visible, .translate_when_almost_visible', $ul).each(function(index, val){
825						var $element = $(this),
826							delayAttr = $element.attr('data-delay');
827						if ( !$element.closest('.owl-carousel').length && ! $element.closest('.cssgrid-animate-sequential').length ) {
828							if (delayAttr == undefined) delayAttr = 0;
829							requestTimeout(function() {
830								$element.addClass('start_animation');
831							}, delayAttr);
832						} else if ( $element.closest('.cssgrid-animate-sequential').length ) {
833							var grid = $element.closest('.cssgrid-animate-sequential');
834
835							var delay = index,
836								delayAttr = parseInt($element.attr('data-delay'));
837							if (isNaN(delayAttr)) delayAttr = 100;
838							delay -= showed;
839							objShowTimeout = requestTimeout(function() {
840								$element.removeClass('zoom-reverse').addClass('start_animation');
841								showed = index;
842							}, delay * delayAttr);
843						}
844					});
845					if ( $ul.is('.animate_when_almost_visible') ) {
846						$ul.addClass('start_animation');
847					}
848				}).addClass('open-animated');
849			},
850			hideFunction: function($ul, complete) {
851				if ( $('.overlay-menu-focus').length && $ul.hasClass('need-focus') && ! $('.overlay-search.open', $masthead).length ) {
852					$('body').removeClass('open-megamenu');
853				}
854				var fixIE = $('html.ie').length;
855				if (fixIE) {
856					var $rowParent = $($ul).closest('.main-menu-container');
857					$rowParent.height('auto');
858				}
859				$ul.fadeOut(0, 'linear', function(){
860					complete();
861					$ul.removeClass('open-animated');
862					if ( $ul.closest('li.menu-item-has-children').data('hover') === false ) {
863						$('body').removeClass('open-submenu');
864					}
865					$('.animate_when_almost_visible, .translate_when_almost_visible', $ul).each(function(){
866						$(this).removeClass('start_animation');
867					});
868					if ( $ul.is('.animate_when_almost_visible') ) {
869						$ul.removeClass('start_animation');
870					}
871				});
872				$ul.find('.start_animation').each(function(index, val) {
873					clearRequestTimeout(subMenuRT);
874					$(val).removeClass('start_animation');
875				});
876				$(document).trigger('un-menu-hide', $ul);
877				clearRequestTimeout(objShowTimeout);
878			},
879			collapsibleShowFunction: function($ul, complete) {
880				$ul.slideDown(400, 'easeInOutCirc', function(){
881					UNCODE.animateSubInside($ul);
882					complete();
883				});
884			},
885			collapsibleHideFunction: function($ul, complete) {
886				$ul.slideUp(200, 'easeInOutCirc', function(){
887					complete();
888				});
889				$(document).trigger('sub-menu-slide-up');
890			},
891			hideOnClick: SiteParameters.menuHideOnClick,
892		});
893
894		if ( $('body').hasClass('menu-accordion-active') ) {
895			$menusmart.each(function(key, menu){
896				$(menu).addClass('menu-smart-init');
897				$(menu).smartmenus( 'itemActivate', $(menu).find( '.current-menu-item > a' ).eq( -1 ) );
898			});
899		}
900
901		$menusmart.each(function(key, menu){
902			$(menu).on('beforecollapse.smapi', function( e, $sub ){
903				if ( $('> .trigger-window-resize', $sub).length ) {
904					window.dispatchEvent(new Event('resize'));
905					$(window).trigger('uncode.re-layout');
906				} else if ( $('> .trigger-box-resize', $sub).length ) {
907					window.dispatchEvent(new CustomEvent('boxResized'));
908				}
909				return false;
910			});
911		});
912		
913		$(document).on( 'uncode.smartmenu-appended', function(){
914			requestTimeout(function(){
915				$menusmart.smartmenus( 'refresh' );
916			}, 1000);
917		});
918
919	}
920
921	$('.main-menu-container').each(function(){
922		var $main_cont = $(this),
923			$uls = $('ul:not(.nav-tabs)', $main_cont);
924
925		$uls.each(function(){
926			var $ul = $(this),
927				mobile_hidden = true,
928				tablet_hidden = true;
929			$('> li:not(.hidden)', $ul).each(function(){
930				if ( !$(this).hasClass('mobile-hidden') ) {
931					mobile_hidden = false;
932					return false;
933				}
934			});
935			$('> li:not(.hidden)', $ul).each(function(){
936				if ( !$(this).hasClass('tablet-hidden') ) {
937					tablet_hidden = false;
938					return false;
939				}
940			});
941			if ( mobile_hidden ) {
942				$ul.addClass('mobile-hidden');
943			}
944			if ( tablet_hidden ) {
945				$ul.addClass('tablet-hidden');
946			}
947		});
948
949		var $divUlsMB = $('div:has(>ul.mobile-hidden)');
950
951		$divUlsMB.each(function(){
952			var $divUlMB = $(this),
953				div_mobile_hidden = true,
954				div_tablet_hidden = true;
955
956			$('> ul:not(.hidden)', $divUlMB).each(function(){
957				if ( !$(this).hasClass('mobile-hidden') ) {
958					div_mobile_hidden = false;
959					return false;
960				}
961			});
962			$('> ul:not(.hidden)', $divUlMB).each(function(){
963				if ( !$(this).hasClass('tablet-hidden') ) {
964					div_tablet_hidden = false;
965					return false;
966				}
967			});
968			if ( div_mobile_hidden ) {
969				$divUlMB.addClass('mobile-hidden');
970			}
971			if ( div_tablet_hidden ) {
972				$divUlMB.addClass('tablet-hidden');
973			}
974		});
975	});
976
977	var overlaySearchButton = function(){
978		var $search_wrap = $('.overlay.overlay-search, .widget_search');
979
980		$search_wrap.each(function(){
981			var $form = $('form', this),
982				$icon = $('i', $form);
983
984			$icon.on('click', function(){
985				$form.submit();
986			});
987		});
988	};
989	overlaySearchButton();
990}
991
992UNCODE.menuMegaBlock = function() {
993	var $megaBlocks = $('.megamenu-block-wrapper');
994	if ( ! $megaBlocks.length ) {
995		return;
996	}
997
998	$megaBlocks.each(function(){
999		var $megaLi = $(this),
1000			//$parentLi = $megaLi.closest('li.menu-item').addClass('mega-menu'),
1001			dataLi = $megaLi.attr('data-block'),
1002			$megaUl = $megaLi.closest('ul').addClass('block-wrapper-parent unmenu-inner-ul'),
1003			$innerUl = $megaLi.find('ul').addClass('unmenu-inner-ul');
1004		$megaUl.addClass(dataLi);
1005		//$('.column_parent > .uncol .uncont:not(.uncont *)', $megaLi).addClass(dataLi);
1006		$('img', $megaLi).removeAttr('loading');
1007	});
1008}
1009
1010UNCODE.unBlockMenu = function(){
1011	//Menu block
1012	var $unBlockMenus = $('.menu.unmenu-block');
1013
1014	$unBlockMenus.each(function(){
1015		var $unBlockMenu = $(this),
1016			$lastOnes;
1017
1018		if ( !$unBlockMenu.hasClass('first-grid') ) {
1019			$lastOnes = $('ul', $unBlockMenu).last();
1020			$lastOnes.each(function(){
1021                var _cols = $(this).css('grid-template-columns');
1022				if ( _cols.split(' ').length > 1 && !_cols.startsWith('repeat(1,')) {
1023					$unBlockMenu.addClass('has-last-ones');
1024					$(this).addClass('last-one');
1025				} else {
1026					var $parentLi = $(this).closest('li'),
1027						$siblingLi = $parentLi.next();
1028					if ( !$siblingLi.length ) {
1029						$unBlockMenu.addClass('has-last-ones');
1030						$(this).addClass('last-one');
1031					}
1032				}
1033			});
1034		} else {
1035			var checkGrids = function(){
1036				$unBlockMenu.find('.last-ul').removeClass('last-one');
1037				var _cols = $unBlockMenu.css('grid-template-columns'),
1038                    cols = _cols.match(/^repeat\(\s*(\d+)\s*,/) ? parseInt(_cols.match[1], 10) : _cols.split(' ').length,
1039					$lis = $('> li', $unBlockMenu),
1040					totLi = $lis.length,
1041					lastRowCount = totLi - (totLi % cols || cols),
1042					$lastLis = $lis.slice(cols).addClass('last-lis'),
1043    				$lastRowLis = $lis.slice(lastRowCount);
1044				$lastRowLis.each(function(){
1045					var $lastRowLi = $(this);
1046					$lastRowLi.find('ul').last().addClass('last-one');
1047				});
1048			}
1049			$(window).on('wwResize', checkGrids);
1050			checkGrids();
1051
1052		}
1053
1054	});
1055
1056	//Accordion
1057
1058	var $tgglBlocks = $('.unmenu-collapse');
1059	$tgglBlocks.each(function(key, val){
1060		var $acc = $(val),
1061			$titles = $('.menu-item-has-children > *:first-child', $acc),
1062			run = true;
1063
1064		var checkRun = function(){
1065			if ( $acc.hasClass('unmenu-collapse-mobile') && UNCODE.wwidth >= UNCODE.mediaQuery ) {
1066				run = false;
1067			} else {
1068				run = true;
1069			}
1070
1071			if ( $titles.length ) {
1072				$titles.each(function(_key, _val){
1073					var $title = $(_val),
1074						$sub = $title.closest('li').find('> ul.un-submenu');
1075
1076					$sub.each(function(key, val){
1077						if ( run ) {
1078
1079							var total = $sub.length;
1080							var completed = 0;
1081				
1082							$(val).slideUp({
1083								duration: 1,
1084								complete: function() {
1085									$(this).addClass('toggle-init');
1086
1087									completed++;
1088
1089									if ( completed === total ) {
1090										$(document).trigger('unblock-toggles-init');
1091										$( document.body ).trigger( 'uncode_waypoints' );
1092									}
1093								}
1094							});
1095						} else {
1096							$(val).show();
1097						}
1098					});
1099				});
1100			} else {
1101				$(document).trigger('unblock-toggles-init');
1102				console.log('check');
1103				$( document.body ).trigger( 'uncode_waypoints' );
1104			}
1105		}
1106		checkRun();
1107
1108		$(window).on('wwResize menuClosed', checkRun);
1109
1110		if ( $titles.length ) {
1111			$titles.each(function(_key, _val){
1112				var $title = $(_val),
1113					$sub = $title.closest('li').find('> ul.un-submenu'),
1114					$menu = $sub.closest('.menu.unmenu-block'),
1115					$ulS;
1116
1117				$title.off('click').on('click', function(e){
1118					e.preventDefault();
1119					$ulS = $menu.find('ul:visible').not($sub).not($sub.parents('ul'))
1120					if ( run ) {
1121						if ( $sub.is(':visible') ) {
1122							$sub.slideUp(200, 'easeInOutCirc', function(){
1123								$.each($('.start_animation', $sub), function(index, val) {
1124									var element = $(val);
1125									element.removeClass('start_animation');
1126
1127								});
1128								$sub.parents('li').eq(0).addClass('un-submenu-closed').removeClass('un-submenu-open');
1129								$(document).trigger('sub-menu-slide-up');
1130							});
1131						} else {
1132							$ulS.slideUp({
1133								duration: 200,
1134								easing: 'easeInOutCirc',
1135								start: function(){
1136									var _this = $(this);
1137									_this.parents('li').eq(0).addClass('un-submenu-closed').removeClass('un-submenu-open');
1138									$(document).trigger('sub-menu-slide-up');
1139								}
1140							});
1141
1142							$sub.slideDown({
1143								duration: 400,
1144								easing: 'easeInOutCirc',
1145								start: function() {
1146									var _this = $(this);
1147									_this.css('height', 0);
1148									if ( _this.hasClass('is-grid') ) {
1149										_this.css('display','grid');
1150									}
1151
1152									UNCODE.animateSubInside(_this)
1153									_this.parents('li').eq(0).addClass('un-submenu-open').removeClass('un-submenu-closed');
1154								}
1155							});
1156						}
1157
1158					}
1159				});
1160			});
1161
1162			if ( $acc.closest('#masthead').length ) {
1163				$(window).on('menuMobileClose menuCanvasClose unmodal-close uncode-sidecart-closed', function(){
1164					$acc.find('ul.un-submenu').slideUp(200, 'easeInOutCirc');
1165				});
1166			}
1167		}
1168
1169	});
1170	
1171};
1172
1173UNCODE.mobileMenuBlockSkins = function(){
1174	var $mobileBlock = $('#uncode-mobile-menu-block'),
1175		$parentDark = $mobileBlock.closest('.submenu-dark'),
1176		$parentLight = $mobileBlock.closest('.submenu-light');
1177
1178
1179	if ( $parentDark.length ) {
1180		var $cols = $('.uncol.style-light:not(.style-spec):not(.style-run)', $mobileBlock);
1181		$cols.each(function(key, val){
1182			var $col = $(val).removeClass('style-light').addClass('style-dark style-run');
1183		});
1184	}
1185
1186	if ( $parentLight.length ) {
1187		var $cols = $('.uncol.style-dark:not(.style-spec):not(.style-run)', $mobileBlock);
1188		$cols.each(function(key, val){
1189			var $col = $(val).removeClass('style-dark').addClass('style-light style-run');
1190		});
1191	}
1192};
1193
1194})(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.