1(function setupSearch() { 2 var __SEARCH_OPEN_BUTTON_SELECTOR__ = '.js-open-search'; 3 var __SEARCH_CONTAINER_SELECTOR__ = '.js-search-container'; 4 var __SEARCH_INPUT_SELECTOR__ = '.js-search-input'; 5 6 var __SEARCH_CONTAINER_ANIMATING__ = 'nav-search-container--animating'; 7 var __SEARCH_CONTAINER_ACTIVE__ = 'nav-search-container--active'; 8 9 var searchToggleButton = document.querySelector(__SEARCH_OPEN_BUTTON_SELECTOR__); 10 var searchContainer = document.querySelector(__SEARCH_CONTAINER_SELECTOR__); 11 var searchInput = document.querySelector(__SEARCH_INPUT_SELECTOR__); 12 13 var allElementsExist = true; 14 15 if (!searchToggleButton) { 16 console.warn('No search toggle button with selector "%s" was found', __SEARCH_OPEN_BUTTON_SELECTOR__); 17 allElementsExist = false; 18 } 19 20 if (!searchContainer) { 21 console.warn('No search container with selector "%s" was found', __SEARCH_CONTAINER_SELECTOR__); 22 allElementsExist = false; 23 } 24 25 if (!searchInput) { 26 console.warn('No search container with selector "%s" was found', __SEARCH_INPUT_SELECTOR__); 27 allElementsExist = false; 28 } 29 30 // Early exit 31 if (!allElementsExist) return; 32 33 var openSearch = function (event) { 34 searchContainer.classList.add(__SEARCH_CONTAINER_ANIMATING__); 35 searchContainer.classList.add(__SEARCH_CONTAINER_ACTIVE__); 36 searchContainer.addEventListener('transitionend', removeAnimations); 37 document.querySelector('.search').classList.add('invisible'); 38 39 }; 40 41 var removeAnimations = function (event) { 42 // Stop listening for this event 43 searchContainer.removeEventListener('transitionend', removeAnimations); 44 searchContainer.classList.remove(__SEARCH_CONTAINER_ANIMATING__); 45 if (searchContainer.classList.contains(__SEARCH_CONTAINER_ACTIVE__)) { 46 searchInput.focus(); 47 searchInput.addEventListener('blur', onSearchBlur); 48 } 49 }; 50 51 var onSearchBlur = function (event) { 52 // Stop listening for this event 53 searchInput.removeEventListener('blur', onSearchBlur); 54 searchContainer.classList.add(__SEARCH_CONTAINER_ANIMATING__); 55 searchContainer.classList.remove(__SEARCH_CONTAINER_ACTIVE__); 56 searchContainer.addEventListener('transitionend', removeAnimations); 57 document.querySelector('.search').classList.remove('invisible'); 58 59 }; 60 61 searchToggleButton.addEventListener('click', openSearch); 62 63 //console.timeStamp('Search Initialized'); 64 65 66 var menuToggleButtonOpen = document.querySelector('#menu_open'); 67 var menuToggleButtonClose = document.querySelector('#menu_close'); 68 var menuTarget = document.querySelector('.nav-primary'); 69 70 var openMenu = function (event) { 71 menuTarget.classList.add('show'); 72 }; 73 var closeMenu = function (event) { 74 menuTarget.classList.remove('show'); 75 }; 76 77 menuToggleButtonOpen.addEventListener('click', openMenu); 78 menuToggleButtonClose.addEventListener('click', closeMenu); 79 80 //alert( Math.floor(Math.random() * 6) + 1 ); 81 if( document.getElementById('home') ){ 82 var randNum = Math.floor(Math.random() * 7) + 1; 83 //alert(randNum); 84 document.querySelector('#header').className = ""; 85 document.querySelector('#header').classList.add('header'); 86 document.querySelector('#header').classList.add('header--' + randNum); 87 } 88 89 90})();
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.