1 2jQuery(document).ready(function () { 3 var DESKTOP_BP = 1280; 4 5 // âââ Shared ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 6 jQuery('.copy-icon, #copyEmail').on('click', function () { 7 var pageUrl = jQuery(this).siblings('a').text().trim(); 8 navigator.clipboard.writeText(pageUrl); 9 }); 10 11 // âââ Desktop (>= 1280px) âââââââââââââââââââââââââââââââââââââââââââââââââââ 12 function initDesktopNav() { 13 // Initialise megamenu tabs 14 jQuery('.site-header ul li.nav-item.has-child').each(function () { 15 jQuery(this).find('.tab-left-block li:first-child').addClass('active'); 16 jQuery(this).find('.megamenu-right-inner').hide(); 17 jQuery(this).find('.megamenu-right-inner:first').show(); 18 }); 19 20 jQuery('.tab-left-block li').on('click.desktop', function (e) { 21 e.preventDefault(); 22 var current_parent = jQuery(this).parents('.megamenu'); 23 current_parent.find('.tab-left-block li').removeClass('active'); 24 jQuery(this).addClass('active'); 25 current_parent.find('.megamenu-right-inner').hide(); 26 jQuery(jQuery(this).attr('data-id')).fadeIn(); 27 return false; 28 }); 29 30 jQuery('.nav-item.has-child .nav-link').on('click.desktop', function (e) { 31 e.preventDefault(); 32 var liItem = jQuery(this).parent('li'); 33 var isActive = liItem.hasClass('active'); 34 jQuery('.nav-item').removeClass('active'); 35 jQuery('.megamenu').removeClass('active'); 36 if (!isActive) { 37 liItem.addClass('active'); 38 liItem.find('.megamenu').addClass('active'); 39 } 40 }); 41 42 jQuery(document).on('click.desktop', function (e) { 43 if (!jQuery(e.target).closest('.nav-item.has-child').length) { 44 jQuery('.nav-item').removeClass('active'); 45 jQuery('.megamenu').removeClass('active'); 46 } 47 }); 48 } 49 50 function destroyDesktopNav() { 51 jQuery('.tab-left-block li').off('click.desktop'); 52 jQuery('.nav-item.has-child .nav-link').off('click.desktop'); 53 jQuery(document).off('click.desktop'); 54 jQuery('.nav-item').removeClass('active'); 55 jQuery('.megamenu').removeClass('active'); 56 jQuery('.tab-left-block li').removeClass('active'); 57 jQuery('.megamenu-right-inner').removeAttr('style'); 58 } 59 60 // âââ Mobile (< 1280px) âââââââââââââââââââââââââââââââââââââââââââââââââââââ 61 function initMobileNav() { 62 // Hamburger Menu Toggle 63 jQuery('.nav-trigger').on('click.mobile', function (e) { 64 e.stopPropagation(); 65 var trigger = jQuery(this); 66 var nav = jQuery('.site-navigation'); 67 68 if (nav.hasClass('active')) { 69 // Closing the menu 70 trigger.removeClass('active'); 71 nav.slideUp(250, function() { 72 nav.removeClass('active'); 73 // RESET submenus 74 jQuery('.nav-item.has-child').removeClass('active'); 75 jQuery('.megamenu').slideUp(0); 76 jQuery('.megamenu-left-tab-title-mobile').removeClass('active'); 77 jQuery('.megamenu-right-inner').slideUp(0); 78 }); 79 } else { 80 // Opening the menu 81 trigger.addClass('active'); 82 nav.addClass('active').hide().slideDown(250); 83 } 84 }); 85 86 // Click outside to close mobile menu 87 jQuery(document).on('click.mobile', function (e) { 88 var nav = jQuery('.site-navigation'); 89 var trigger = jQuery('.nav-trigger'); 90 if (!nav.is(e.target) && nav.has(e.target).length === 0 && !trigger.is(e.target) && trigger.has(e.target).length === 0) { 91 if (nav.hasClass('active')) { 92 trigger.removeClass('active'); 93 nav.slideUp(250, function() { 94 nav.removeClass('active'); 95 // RESET submenus 96 jQuery('.nav-item.has-child').removeClass('active'); 97 jQuery('.megamenu').slideUp(0); 98 jQuery('.megamenu-left-tab-title-mobile').removeClass('active'); 99 jQuery('.megamenu-right-inner').slideUp(0); 100 }); 101 } 102 } 103 }); 104 105 // 1. Open and close megamenu on .nav-link-arrow click 106 jQuery('.nav-item.has-child .nav-link-arrow').on('click.mobile', function (e) { 107 e.preventDefault(); 108 e.stopPropagation(); 109 var liItem = jQuery(this).closest('.nav-item'); 110 var megamenu = liItem.find('.megamenu'); 111 112 // Close all other nav items and their megamenus 113 var otherItems = jQuery('.nav-item.has-child').not(liItem); 114 otherItems.removeClass('active'); 115 otherItems.find('.megamenu').slideUp(250, function () {
116 // Reset internal content when other megamenus close 117 jQuery(this).find('.megamenu-left-tab-title-mobile').removeClass('active'); 118 jQuery(this).find('.megamenu-right-inner').hide(); 119 }); 120 121 // Toggle current nav item and megamenu 122 if (liItem.hasClass('active')) { 123 // Closing current 124 liItem.removeClass('active'); 125 megamenu.slideUp(250, function () { 126 // Reset internal content when closed 127 jQuery(this).find('.megamenu-left-tab-title-mobile').removeClass('active'); 128 jQuery(this).find('.megamenu-right-inner').hide(); 129 }); 130 } else { 131 // Opening current 132 liItem.addClass('active'); 133 megamenu.slideDown(250); 134 } 135 }); 136 137 // 2. Open and close inner content on .megamenu-left-tab-title-mobile click 138 jQuery('.megamenu-left-tab-title-mobile').on('click.mobile', function (e) { 139 e.preventDefault(); 140 var currentTitle = jQuery(this); 141 var currentInner = currentTitle.next('.megamenu-right-inner'); 142 var parentMegamenu = currentTitle.closest('.megamenu'); 143 144 // Close other inner contents in the same megamenu 145 parentMegamenu.find('.megamenu-left-tab-title-mobile').not(currentTitle).removeClass('active'); 146 parentMegamenu.find('.megamenu-right-inner').not(currentInner).slideUp(250); 147 148 // Toggle current inner content 149 currentTitle.toggleClass('active'); 150 currentInner.slideToggle(250); 151 }); 152 } 153 154 function destroyMobileNav() { 155 jQuery('.nav-trigger').off('click.mobile'); 156 jQuery(document).off('click.mobile'); 157 jQuery('.nav-item.has-child .nav-link-arrow').off('click.mobile'); 158 jQuery('.megamenu-left-tab-title-mobile').off('click.mobile'); 159 160 jQuery('.nav-trigger').removeClass('active'); 161 jQuery('.site-navigation').removeClass('active'); 162 jQuery('.site-navigation').removeAttr('style'); 163 jQuery('.nav-item.has-child').removeClass('active'); 164 jQuery('.megamenu').removeAttr('style'); 165 jQuery('.megamenu-left-tab-title-mobile').removeClass('active'); 166 jQuery('.megamenu-right-inner').removeAttr('style'); 167 } 168 169 // âââ Resolution check ââââââââââââââââââââââââââââââââââââââââââââââââââââââ 170 var isDesktop = null; 171 172 function checkNav() { 173 if (window.innerWidth >= DESKTOP_BP) { 174 if (isDesktop === true) return; 175 destroyMobileNav(); 176 initDesktopNav(); 177 isDesktop = true; 178 } else { 179 if (isDesktop === false) return; 180 destroyDesktopNav(); 181 initMobileNav(); 182 isDesktop = false; 183 } 184 } 185 186 checkNav(); 187 jQuery(window).on('resize', checkNav); 188});
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.