1var $j = jQuery; 2 3// Click Navigation Dropdown 4$j('.main-nav-d ul li:has(ul)').addClass('jsNavDropdown jsNavArrowDown'); 5 6$j(".jsNavDropdown").click(function(e){ 7 e.preventDefault(); 8 e.stopPropagation(); 9 var x = $j(this).hasClass('jsNavActive'); 10 if (x){ 11 $j('.jsNavDropdown.jsNavActive').removeClass('jsNavActive'); 12 $j('.jsNavDropdown.jsNavArrowUp').removeClass('jsNavArrowUp').addClass('jsNavArrowDown'); 13 $j('.jsNavOverlay').removeClass('jsNavOverlayActive'); 14 return 15 } 16 $j('.jsNavDropdown.jsNavActive').not(this).removeClass('jsNavActive'); 17 $j('.jsNavDropdown.jsNavArrowUp').not(this).removeClass('jsNavArrowUp').addClass('jsNavArrowDown'); 18 $j('.jsNavOverlay').addClass('jsNavOverlayActive'); 19 $j(this).toggleClass('jsNavActive jsNavArrowDown jsNavArrowUp'); 20}); 21 22$j(".jsNavDropdown .mega-menu").click(function(e){ 23 e.stopPropagation(); 24}); 25 26$j(document).click(function(e) { 27 if( e.target.class != '.jsNavDropdown') { 28 $j('.jsNavDropdown').removeClass('jsNavActive'); 29 $j('.jsNavOverlay').removeClass('jsNavOverlayActive'); 30 $j('.jsNavDropdown.jsNavArrowUp').not(this).removeClass('jsNavArrowUp').addClass('jsNavArrowDown'); 31 } 32}); 33 34$j(window).load(function() { 35 var headerBar = $j('.main-nav-d').outerHeight(), 36 header = headerBar; 37 38 $j('.mega-menu').css({ 39 'top': header 40 }); 41}); 42 43$j(window).resize(function() { 44 var headerBar = $j('.main-nav-d').outerHeight(), 45 header = headerBar; 46 47 $j('.mega-menu').css({ 48 'top': header 49 }); 50}); 51 52 53 54// Filter Slide Drawers 55(function(){ 56 57function closeAccordions( accordion ) { 58 var accoridon = accordion; 59 var contents = [].slice.call( document.querySelectorAll( "[data-" + dataPanel + "]" ), 0 ); 60 contents.forEach( function( content ){ 61 content.classList.add( classHidden ); 62 }); 63} 64 65function openAccordion( element ) { 66 element.classList.remove( classHidden ); 67} 68 69function headingActive( heading ) { 70 heading.classList.add( classActive ); 71} 72 73function headingInactive() { 74 var headings = [].slice.call( document.querySelectorAll( "[data-" + dataHeading + "]" ), 0 );
75 headings.forEach( function( heading ){ 76 heading.classList.remove( classActive ); 77 }); 78} 79 80var accordions = [].slice.call( document.querySelectorAll( ".jsDrawerWrapper" ), 0 ), 81 dataHeading = "heading", 82 dataPanel = "panel", 83 classHidden = "jsDrawerHidden", 84 classActive = "jsDrawerBtnActive"; 85 86function setupAccordions(accordions){ 87 accordions.forEach( function( accordion ){ 88 var headings = [].slice.call( document.querySelectorAll( "[data-" + dataHeading + "]" ), 0 ); 89 headings.forEach( function( heading ) { 90 if (!heading.classList.contains("jsDrawerHeading")){ 91 heading.addEventListener( "click", function( event ) { 92 event.preventDefault(); 93 94 var content = this.getAttribute("data-" + dataHeading + ""), 95 panel = document.querySelector( "[data-" + dataPanel + "='" + content + "']" ); 96 97 var shouldOpen = !heading.classList.contains( classActive ); 98 99 closeAccordions( accordion ); 100 headingInactive( this ); 101 102 if ( shouldOpen ) { 103 openAccordion( panel ); 104 headingActive( this ); 105 } 106 107 $j('.jsDrawerOverlay').fadeIn(); 108 $j('body').addClass('jsDrawerActiveScroll'); 109 }); 110 111 heading.classList.add("jsDrawerHeading"); 112 } 113 }); 114 115 }); 116} 117 118if ( accordions ) { 119 setupAccordions(accordions); 120} 121 122window.filterSortCallback = function(){ 123 if ( accordions ) { 124 setupAccordions(accordions); 125 } 126} 127 128// Close Drawers On Click Outside 129$j(document).mouseup(function(e) { 130 var container = $j(".jsDrawer"); 131 132 if (!container.is(e.target) && container.has(e.target).length === 0) 133 { 134 accordions.forEach(function(accordion){ 135 closeAccordions(accordion); 136 }); 137 $j('.jsDrawerOverlay').fadeOut(); 138 $j('body').removeClass('jsDrawerActiveScroll'); 139 $j('.jsDrawer').addClass('jsDrawerHidden'); 140 $j('.jsDrawerBtn').removeClass('jsDrawerBtnActive'); 141 } 142}); 143})(); 144 145function closeJSDrawer(){ 146 $j('.jsDrawer').addClass('jsDrawerHidden'); 147 $j('.jsDrawerOverlay').fadeOut(); 148 $j('body').removeClass('jsDrawerActiveScroll') 149} 150 151$j(".jsDrawerCloseBtn").click(function(){ 152 closeJSDrawer(); 153}); 154 155 156 157// Product Page Thumbnail Show/Hide 158(function(){ 159 function changeEventHandler( event ) { 160 imageWrappers.forEach( function( imageWrapper ) { 161 var href = imageWrapper.querySelector( "a" ).getAttribute("href"); 162 163 if ( href === "#" ) { 164 imageWrapper.parentNode.classList.add("jsThumbnailNoImg"); 165 } else { 166 imageWrapper.parentNode.classList.remove("jsThumbnailNoImg"); 167 } 168 }); 169 } 170 171 var imageWrappers = [].slice.call( document.querySelectorAll( ".thumbnail-img" ), 0); 172 173})(); 174 175 176 177// Product Page Tabs 178$j('.jsTabContent:first-of-type').show(); 179$j('.jsTabBtns a').click(function(e){ 180 e.preventDefault(); 181 var $jthis = $j(this), 182 tabGroup = '#'+$jthis.parents('.jsTabBtns').data('jstabgroup'), 183 tabOthers = $jthis.closest('li').siblings().children('a'), 184 tabTarget = $jthis.attr('href'); 185 tabOthers.parent().removeClass('jsTabActive'); 186 $jthis.parent().addClass('jsTabActive'); 187 $j(tabGroup).children('.jsTabContent').hide(); 188 $j(tabTarget).show(); 189}); 190 191 192 193// Quantity Spinner 194$j('.prod-page-qty').each(function() { 195 var spinner = $j(this), 196 input = spinner.find('input[type="number"]'), 197 btnUp = spinner.find('.prod-page-qty-up-btn'), 198 btnDown = spinner.find('.prod-page-qty-down-btn'), 199 min = input.attr('min'), 200 max = input.attr('max'); 201 202 btnDown.click(function() { 203 var oldValue = parseFloat(input.val()); 204 if (oldValue <= min) { 205 var newVal = oldValue; 206 } else { 207 var newVal = oldValue - 1; 208 } 209 spinner.find('input').val(newVal); 210 spinner.find('input').trigger('change'); 211 }); 212 213 btnUp.click(function() { 214 var oldValue = parseFloat(input.val()); 215 if (oldValue >= max) { 216 var newVal = oldValue; 217 } else { 218 var newVal = oldValue + 1; 219 } 220 spinner.find('input').val(newVal); 221 spinner.find('input').trigger('change'); 222 }); 223}); 224 225 226 227// Customer Reviews Reviewer Icon 228$j('.reviewer').each(function(i, obj) { 229 var firstName = $j(this).find('.review-name').text(); 230 var intials = $j(this).find('.review-name').text().charAt(0);
231 var profileImage = $j(this).find('.review-image').text(intials); 232}); 233 234 235 236// Header Background Image 237 238bgImageWrapper = document.querySelectorAll('.jsBgImageReplace') 239bgImageWrapper.forEach ((image) => { 240 bgImage = image.querySelector('img'); 241 image.parentNode.style.backgroundImage = ("url(" + "\"" + bgImage.src + "\""); 242}) 243 244function filterChange(){ 245 246 setTimeout(function(){ closeJSDrawer(); }, 1000); 247}
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.