1jQuery(document).ready(function($) { 2 3 4 var productOverview = {}; 5 6 7 productOverview.containerPosition = $('.product-overview-container').position(); 8 productOverview.sidebar = $('#secondary.widget-area'); 9 productOverview.subcategoriesButton = '.subcategories-pulldown__label'; 10 productOverview.subcategoriesPulldown = '.subcategories-pulldown__list'; 11 productOverview.filtersButton = '.filters-pulldown__label'; 12 productOverview.filtersButtonHeight = $(productOverview.filtersButton).outerHeight(); 13 productOverview.filtersButtonOffset = $('.filters-pulldown__label').offset(); 14 productOverview.filtersPulldown = '.filters-pulldown__list'; 15 productOverview.sortingPulldown = '.orderby[name="orderby"]'; 16 productOverview.sortingPulldownOffset = $(productOverview.sortingPulldown).offset(); 17 productOverview.sortingPulldownWidth = $(productOverview.sortingPulldown).outerWidth(); 18 19 20 /** 21 * Toggles the subcategories-menu 22 */ 23 productOverview.toggleSubcategoriesmenu = function(event) 24 { 25 event.preventDefault(); 26 event.stopPropagation(); 27 28 $(this).parent().find(productOverview.subcategoriesPulldown).toggleClass('open'); 29 30 $(window).on('click', productOverview.closeSubcategoriesmenu); 31 }; 32 33 34 /** 35 * Closes the subcategories-menu 36 */ 37 productOverview.closeSubcategoriesmenu = function() 38 { 39 $(productOverview.subcategoriesButton).parent().find(productOverview.subcategoriesPulldown).removeClass('open'); 40 41 $(window).off('click', productOverview.closeSubcategoriesmenu); 42 }; 43 44 45 /** 46 * Opens the filters-menu 47 */ 48 productOverview.openFiltersmenu = function(event) 49 { 50 event.preventDefault(); 51 event.stopPropagation(); 52 53 // Set sidebar position and change appeaance to pulldown 54 productOverview.sidebar 55 .css({ 56 position: 'absolute', 57 top: productOverview.filtersButtonOffset.top - productOverview.containerPosition.top + (productOverview.filtersButtonHeight * 1.25), 58 left: productOverview.filtersButtonOffset.left, 59 right: $(window).width() - (productOverview.sortingPulldownOffset.left + productOverview.sortingPulldownWidth) 60 }) 61 .addClass('filters-pulldown__list'); 62 63 // Pulldown open animation 64 setTimeout(function() { 65 66 productOverview.sidebar 67 .css({ 68 top: productOverview.filtersButtonOffset.top - productOverview.containerPosition.top + productOverview.filtersButtonHeight, 69 }) 70 .addClass('open'); 71 }, 0); 72 73 $('#primary').off('click', productOverview.filtersButton, productOverview.openFiltersmenu); 74 $('#primary').on( 'click', productOverview.filtersButton, productOverview.closeFiltersmenu); 75 $(window).on( 'click', productOverview.closeFiltersmenu); 76 }; 77 78 79 productOverview.closeFiltersmenu = function() 80 { 81 productOverview.sidebar 82 .removeAttr('style') 83 .removeClass('filters-pulldown__list open'); 84 85 $(window).off( 'click', productOverview.closeFiltersmenu); 86 $('#primary').on('click', productOverview.filtersButton, productOverview.openFiltersmenu); 87 }; 88 89 90 $('#primary').on('click', productOverview.subcategoriesButton, productOverview.toggleSubcategoriesmenu); 91 $('#primary').on('click', productOverview.filtersButton, productOverview.openFiltersmenu); 92});
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.