1$(window).on("load", function(){ 2 3 // New functions for main mobile menu 4 if($(window).innerWidth() <= 991){ 5 6 $('body').scroll(function(){ 7 if ($(this).scrollTop() > 80) $('.header').addClass('fixed'); 8 if ($(this).scrollTop() < 80) $('.header').removeClass('fixed'); 9 }); 10 11 initMenuBackBtn(); 12 appendUserActionsInMobileMenu(); 13 appendChangeCountryInMobileMenu(); 14 appendChangeLangInMobileMenu(); 15 appendQuickLinksInMobileMenu(); 16 appendFooterMenuInMobileMenu(); 17 closeMenuOnSearchClose(); 18 closeMenuOnMiniCartClose(); 19 appendMiniCartInMobileMenu(); 20 resetOpenTabsOnClose(); 21 22 $('.wsmenu').addClass('first-level'); 23 24 //Close mob menu 25 $('.wsmenu .mobile-menu-header .close').click(function (){ 26 $('.header').removeClass('wsactive'); 27 $('html').css('overflow',''); 28 }) 29 30 // open not tab item 31 $('.wsmenu-list > li:not(.tab)').find('.wsmegamenu').addClass('hidden'); 32 33 setTimeout(createMobileNavigation, 100); 34 35 triggerFunctionOnAjaxMenuLoad(createMobileNavigation); 36 37 } 38 39 // end menu 40 41}) 42 43let triggerFunctionOnAjaxMenuLoad = function (listener) { 44 if(typeof loadMenuOnAjaxVar !== "undefined" && loadMenuOnAjaxVar && typeof listener === "function") { 45 $(window).on("mobileMenuContentLoaded", function () { 46 listener(); 47 }) 48 } 49} 50 51let createMobileNavigation = function () { 52 53 let newClickTriggersAdded = false; 54 55 $('.wsmenu-list > li').each(function (){ 56 57 58 if($(this).hasClass('level3')){ 59 60 let counter = 1; 61 $(this).find('.menu-item').each(function (){ 62 $(this).attr('data-num',counter); 63 $(this).find('.wstheading').attr('data-num',counter); 64 // window.nbshopJS.disableLinks($(this).find('.wstheading a')); 65 counter++; 66 67 if(!newClickTriggersAdded) { 68 $('.wsmenu>.wsmenu-list>li .wstliststy02 li:not(.wstheading)').addClass('hidden'); 69 $('.wsmenu>.wsmenu-list>li .wstliststy02 li.wstheading').click(function () { 70 $(this).parent().find('li:not(.wstheading)').toggleClass('hidden'); 71 $(this).toggleClass('active'); 72 $(this).closest('.menu-item').toggleClass('active'); 73 }) 74 newClickTriggersAdded = true; 75 } 76 77 }); 78 79 $(this).find('>.wsmenu-click').click(function(){ 80 let headingText = $(this).closest('li').find('.navtext').html(); 81 $('.mobile-menu-header .title').attr('data-lvl2Text', headingText); 82 setHeadingText(headingText); 83 84 setNotFirstLevel(); 85 setLevelDeep('2'); 86 $(this).closest('li').find('.navtext').addClass('hidden'); 87 $('.wsmenu-list>li').addClass('hidden'); 88 $(this).closest('li').removeClass('hidden'); 89 $(this).closest('li').find('.wsmegamenu').removeClass('hidden'); 90 }) 91 92 } 93 94 if($(this).hasClass('level4')){ 95 96 $(this).find('.wsshoptabing, .wsshoptabing .menu-item li:not(.wstheading)').addClass('hidden'); 97 98 let counter = 1; 99 $(this).find('.wstabitem > li').each(function (){ 100 window.nbshopJS.disableLinks($(this).find('> a')); 101 $(this).attr('data-num',counter); 102 $(this).find('> a').attr('data-num',counter); 103 if(counter === 1){ 104 $(this).find('> a').addClass('active'); 105 $(this).addClass('active'); 106 } 107 counter++; 108 }); 109 110 $(this).find('>.wsmenu-click').click(function(){ 111 112 let headingText = $(this).closest('li').find('.navtext').html(); 113 $('.mobile-menu-header .title').attr('data-lvl2Text', headingText); 114 setHeadingText(headingText); 115 116 setNotFirstLevel(); 117 setLevelDeep('2'); 118 $(this).closest('li').find('.navtext').addClass('hidden'); 119 $('.wsmenu-list>
119li:not(.tab)').addClass('hidden'); 120 $(this).closest('li').removeClass('hidden'); 121 $(this).closest('li').find('.wsshoptabing').removeClass('hidden'); 122 $(this).closest('li').find('> .navtext').addClass('hidden'); 123 $(this).closest('li').find('> .wsmenu-click').addClass('hidden'); 124 }) 125 126 $(this).find('.wstheading > .wsmenu-click').click(function (){ 127 let headingText = $(this).closest('li').find('>a').html(); 128 $('.mobile-menu-header .title').attr('data-lvl3Text', headingText); 129 setHeadingText(headingText); 130 131 setLevelDeep('4tab'); 132 $(this).closest('.menu-item').find('li').removeClass('hidden') 133 $(this).closest('.wstitemright').find('.wstheading').addClass('hidden'); 134 }) 135 136 } 137 }); 138} 139 140//menu functions 141let backToFirstLevel = () => { 142 $('.wsmenu').addClass('first-level'); 143 $('.wsmenu-list>li:not(.tab)').removeClass('hidden'); 144 $('.wsmenu-list li.tab .wsshoptabing, .wsmenu-list li.tab .wsmegamenu').addClass('hidden'); 145 $('.wsmenu-list li.tab').removeClass('active'); 146 147 $('.wsmenu-list>li:not(.tab)').find('.wsmegamenu, .wsshoptabing').addClass('hidden'); 148 149 $('.wsmenu-list>li:not(.tab)').find('> .navtext').removeClass('hidden'); 150 $('.wsmenu-list>li:not(.tab)').find('> .wsmenu-click').removeClass('hidden'); 151 152 setHeadingText($('.mobile-menu-header .title').attr('data-originalText')); 153} 154 155let goToLevel3 = ($item) => { 156 if($item.closest('.menu-item').length > 0){ 157 let headingText = $item.closest('.menu-item').find('>ul>li>a').html(); 158 159 //$('.mobile-menu-header .title').attr('data-lvl3Text', headingText); 160 161 setHeadingText(headingText); 162 163 if($item.closest('.level3').length > 0){ 164 setLevelDeep('3'); 165 }else{ 166 setLevelDeep('4'); 167 } 168 setNotFirstLevel(); 169 $item.closest('.row').find('.menu-item>ul>li').addClass('hidden'); 170 $item.closest('.menu-item').find('li').removeClass('hidden'); 171 $item.closest('.menu-item').find('li.wstheading').addClass('hidden'); 172 } else if($item.closest('.wstabitem').length > 0){ 173 let headingText = $item.html(); 174 $('.mobile-menu-header .title').attr('data-lvl3Text', headingText); 175 setHeadingText(headingText); 176 177 setLevelDeep('3'); 178 setNotFirstLevel(); 179 $item.find('.wstitemright').removeClass('hidden'); 180 $item.closest('.wstabitem').find('>li').addClass('hidden'); 181 $item.removeClass('hidden'); 182 $item.find('>a, >span').addClass('hidden'); 183 } 184} 185 186let backToLevel3 = () => { 187 $('.wsmenu-list li.tab .menu-item li').addClass('hidden'); 188 $('.wsmenu-list li.tab .menu-item li.wstheading').removeClass('hidden');
189 setLevelDeep('3'); 190 191 setHeadingText($('.mobile-menu-header .title').attr('data-lvl3Text')); 192} 193 194let backToLevel2 = () => { 195 backToLevel3(); 196 $('.wsmenu-list li.tab .wstabitem > li, .wsmenu-list li.tab .wstabitem > li > a, .wsmenu-list li.tab .wstabitem > li > span').removeClass('hidden'); 197 $('.wsmenu-list li.tab .wstabitem > li > .wstitemright').addClass('hidden'); 198 setLevelDeep('2'); 199 200 setHeadingText($('.mobile-menu-header .title').attr('data-lvl2Text')); 201} 202 203let backToLevel2Tab = () => { 204 $('.wsmenu-list>li.level4').find('.menu-item').find('li').addClass('hidden') 205 $('.wsmenu-list>li.level4').find('.wstitemright').find('.wstheading').removeClass('hidden'); 206 setLevelDeep(2); 207 208 setHeadingText($('.mobile-menu-header .title').attr('data-lvl2Text')); 209} 210 211let appendUserActionsInMobileMenu = () => { 212 $('.wsmenu-list .mobile-menu-useractions .content').append($('.header .block.user')); 213 $('.wsmenu-list .mobile-menu-useractions').removeClass('hidden') 214} 215 216let appendMiniCartInMobileMenu = () => { 217 let menuOpenIcon = $('#wsnavtoggle'); 218 let menuCloseIcon = $('.mobile-menu-header .close'); 219 220 let menuCart = $('.mobile-menu-header .mobile-menu-cart'); 221 let headerCart = $('.main-header-wrapper #miniCartContent'); 222 let headerFav = $('.main-header-wrapper .right-icons-wrapper #miniFavContent'); 223 224 menuOpenIcon.click(function () { 225 if(menuCart.find('#miniCartContent').length == 0) { 226 menuCart.append(headerCart); 227 } 228 }) 229 menuCloseIcon.click(function () { 230 if($('.main-header-wrapper .right-icons-wrapper').find('#miniCartContent').length == 0) { 231 menuCart.find('#miniCartContent').insertAfter(headerFav); 232 } 233 }) 234 235} 236 237let appendChangeCountryInMobileMenu = () => { 238 let $block = $('.footer .block.country-menu').clone(); 239 $('.wsmenu-list .mobile-menu-country').append($block); 240 241 $('.mobile-menu-country .country-menu .choose-country').click(function (){ 242 $('.mobile-menu-country .country-menu').addClass('active'); 243 $('body').addClass('modal-open'); 244 }) 245 $('.mobile-menu-country .country-menu .overlay,.mobile-menu-country .country-menu .close').click(function (){ 246 $('.mobile-menu-country .country-menu').removeClass('active'); 247 $('body').removeClass('modal-open'); 248 }) 249} 250 251let appendChangeLangInMobileMenu = () => { 252 let $block = $('.header-top .lang-wrapper.lang-from-slider').clone(); 253 $('.wsmenu-list .mobile-menu-lang').append($block); 254 255 // $('.mobile-menu-country .country-menu .choose-country').click(function (){ 256 // $('.mobile-menu-country .country-menu').addClass('active'); 257 // $('body').addClass('modal-open'); 258 // }) 259 // $('.mobile-menu-country .country-menu .overlay,.mobile-menu-country .country-menu .close').click(function (){ 260 // $('.mobile-menu-country .country-menu').removeClass('active'); 261 // $('body').removeClass('modal-open'); 262 // }) 263} 264 265function resetOpenTabsOnClose() { 266 267 let closeButton = $(".wsmenu .mobile-menu-header .close"); 268 269 if(typeof closeButton === "undefined" || closeButton.length === 0) return; 270 271 closeButton.click(function () { 272 273 let backBtn = $(".wsmenu:not(.first-level) .mobile-menu-header .back-btn"); 274 let expandedFooter = $(".wsmenu-list .mobile-menu-footer-menu .col-xs-12:has(.items-wrapper[style='display: block;']) .heading-wrapper"); 275 276 if(typeof backBtn !== "undefined" && backBtn.length > 0) { 277 backBtn.trigger("click"); 278 } 279 if(typeof expandedFooter !== "undefined" && expandedFooter.length > 0) { 280 expandedFooter.trigger("click"); 281 } 282 283 }) 284} 285 286let appendQuickLinksInMobileMenu = () => { 287 $('.quick-links-v1 .nav > .item').each(function (){ 288 $('.wsmenu .fixed-menu-links').append($(this)); 289 }) 290} 291 292let appendFooterMenuInMobileMenu = () => { 293 let $block = $('.footer .block.footer-nav').clone(); 294 $('.wsmenu-list .mobile-menu-footer-menu').append($block); 295 296 if($(window).innerWidth() <= 576){ 297 initFooterMenuToggleInMobileMenu(); 298 } 299} 300 301let initFooterMenuToggleInMobileMenu = () => { 302 $('.wsmenu-list .mobile-menu-footer-menu .heading-wrapper').each(function (){ 303 $(this).click(function (){ 304 $(this).parent().find('.items-wrapper').slideToggle('slow'); 305 }) 306 }) 307} 308 309let setNotFirstLevel = () => { 310 $('.wsmenu').removeClass('first-level'); 311} 312 313let setLevelDeep = (level) => { 314 $('.wsmenu').attr('data-leveldeep',level); 315} 316 317let initMenuBackBtn = () => { 318 $('.mobile-menu-header .back-btn, .mobile-menu-header:has(.back-btn) .title').click(function (){ 319 let level = $('.wsmenu').attr('data-leveldeep'); 320 console.log(level) 321 322 switch (level) { 323 case '2': 324 backToFirstLevel(); 325 break; 326 case '3': 327 backToLevel2(); 328 break; 329 case '4': 330 backToLevel3(); 331 break; 332 case '4tab': 333 backToLevel2Tab(); 334 break; 335 default: 336 console.log(); 337 } 338 }) 339} 340 341let closeMenuOnSearchClose = () => { 342 let searchClose = $('.autocomplete-close'); 343 let menuClose = $('.mobile-menu-header .close'); 344 345 searchClose.click(function () { 346 if($('.header.wsactive').length !== 0) { 347 menuClose.trigger('click'); 348 } 349 }) 350 351} 352 353let closeMenuOnMiniCartClose = () => { 354 let searchClose = $('.header-cart .close-mini-cart'); 355 let menuClose = $('.mobile-menu-header .close'); 356 357 searchClose.click(function () { 358 if($('.header.wsactive').length !== 0) { 359 menuClose.trigger('click'); 360 } 361 }) 362 363} 364 365let openSearchMobile = () => { 366 if($('.autocomplete-button').length !== 0) { 367 $('.autocomplete-button').click(); 368 } 369} 370 371let setHeadingText = (text) => { 372 let $mobHeaderTitle = $('.mobile-menu-header .title'); 373 374 $mobHeaderTitle.html(text); 375} 376/* -------------*/
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.