Gå rett til innhold
Norwegian Radiation and Nuclear Safety Authority
`; // $(".autocomplete-results").append(contentToAdd); $("#autoCResultsHeader").append(contentToAdd); }); const lastChild = `
  • ${query}
    Se alle resultater for "${query}"
  • `; // $(".autocomplete-results").append(lastChild); $("#autoCResultsHeader").append(lastChild); updateClickResults() updateArrowNavigation() }, error: error => { console.error("error", error); } }); } } //http://davidwalsh.name/javascript-debounce-function function debounce(func, wait, immediate) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; if (!immediate) func.apply(context, args); }; var callNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait); if (callNow) func.apply(context, args); }; } // Close autocomplete when clicking outside const searchWrapper = document.querySelector('.search-header-wrapper') document.addEventListener('click', function(e){ const autoCResultsHeader = document.querySelector('#autoCResultsHeader') if (!searchWrapper || !e.target || !autoCResultsHeader) return if (!searchWrapper.contains(e.target)){ autoCResultsHeader.innerHTML = '' } }) function updateClickResults(){ const results = document.querySelectorAll('.autocomplete-results li') || [] results.forEach(result => { const nameInput = result.querySelector('.auto-c-result-item-name') const itemName = nameInput && nameInput.value const urlInput = result.querySelector('.auto-c-result-item-url') const itemUrl = urlInput && urlInput.value if (!itemName) return result.addEventListener('click', function(){ autoSuggestClicked(itemName, itemUrl) }) result.addEventListener('keydown', function(e){ if (e.key === "Enter"){ autoSuggestClicked(itemName, itemUrl) } }) }) } function updateArrowNavigation(){ const allLIs = searchWrapper.querySelectorAll('li') || [] allLIs.forEach(autocLI => { autocLI.tabIndex = 0 }) searchWrapper.removeEventListener('keydown',arrowNavEvent) searchWrapper.addEventListener('keydown',arrowNavEvent) } function arrowNavEvent(e){ const searchInput = document.querySelector(".b-input-search .b-input-search__input") if (!searchInput) return const key = e.key || '' const firstLI = searchWrapper.querySelector('li') const focusedLI = searchWrapper.querySelector('li:focus') let target = firstLI switch(key) { case 'ArrowDown': if (focusedLI){ target = focusedLI.nextElementSibling } if (!target || (focusedLI && focusedLI.classList.contains('auto-c-result-full'))){ target = firstLI } if (target){ target.focus() target.scrollIntoView({behavior: 'smooth', block: 'center'}) const input = target.querySelector('input') const itemName = (input && input.value) || "" searchInput.value = itemName } break; case 'ArrowUp': if (focusedLI){ target = focusedLI.previousElementSibling } if (target){ target.focus() target.scrollIntoView({behavior: 'smooth', block: 'center'}) const input = target.querySelector('input') const itemName = (input && input.value) || "" searchInput.value = itemName } break; } } function autoSuggestClicked(value, itemUrl) { event.stopPropagation(); if (itemUrl){ location.href = itemUrl } else { $(".b-input-search .b-input-search__input").val(value); // set value of the search input submitFilter(); // and call submit to refresh page with new queries } } function submitFilter() { const baseUrl = "https://www.dsa.no/en/search"; const values = $(".search-header-wrapper form").serializeArray(); const uniqueValues = values.reduce((accumulator, currentValue) => { const check = !accumulator.some(obj => obj.name === currentValue.name); if (check) { accumulator.push(currentValue); } return accumulator; }, []); let params = ""; uniqueValues.forEach(v => { if (v.value) { if (params) { params += "&" + v.name + "=" + v.value; } else { params += "?" + v.name + "=" + v.value; } } }); window.location.href = baseUrl + params; // update url with query parameters } });