@@ -1,32 +1,3 @@
1−// styling of input fields
2−var inputElements = document.querySelectorAll('input.tlon-input');
3−for (var i = 0; i < inputElements.length; i++) {
4− //listen for changes in input
5− inputElements[i].addEventListener('input', function() {
6− // if input has a value do this
8− var inputContainer = this.parentNode;
9− var validInputs = inputContainer.querySelectorAll('input.tlon-input:valid');
10− var inputs = inputContainer.querySelectorAll('input.tlon-input');
11− if (validInputs.length !== 0) {
13− for (var i = 0; i < validInputs.length; i++) {
14− if (this.classList.contains('is-valid') == false ) {
15− validInputs[i].parentNode.classList.add('has-valid-input');
19− // doesn't have valid input
20− for (var i = 0; i < inputs.length; i++) {
21− inputs[i].parentNode.classList.remove('has-valid-input');
25− this.parentNode.classList.remove('has-valid-input');
30// toggling of navigation menus
1// toggling of navigation menus
31var toggleMainNav = document.getElementById('js-main-nav-toggle');
2var toggleMainNav = document.getElementById('js-main-nav-toggle');
32if (toggleMainNav !== null) {
3if (toggleMainNav !== null) {
@@ -247,6 +218,9 @@ function formatSearchResultItem(item, terms) {
248function initSearch() {
219function initSearch() {
249 var searchInput = document.getElementById("search");
220 var searchInput = document.getElementById("search");
221+ var searchForm = document.getElementById("search-form");
222+ var inputReset = searchForm.nextElementSibling;
250 if (!searchInput) {
224 if (!searchInput) {
@@ -271,12 +245,16 @@ function initSearch() {
271 var searchOverlay = document.getElementById('search-overlay');
245 var searchOverlay = document.getElementById('search-overlay');
272 var searchWindow = document.getElementById('search-window');
246 var searchWindow = document.getElementById('search-window');
273 var searchActive = bodyEl.classList.contains('has-active-search-window');
247 var searchActive = bodyEl.classList.contains('has-active-search-window');
274 if (toggleSearchWindow !== null) {
249 if (toggleSearchWindow !== null) {
275 toggleSearchWindow.onclick = function() {
250 toggleSearchWindow.onclick = function() {
251+ inputReset.style.display="none";
276 //activate search
253 //activate search
277 bodyEl.classList.toggle('has-active-search-window');
254 bodyEl.classList.toggle('has-active-search-window');
278 //put input in focus when activating search
255 //put input in focus when activating search
279 searchInput.focus();
256 searchInput.focus();
280 searchInput.value = "";
258 searchInput.value = "";
281 searchResultsHeader.value = "";
259 searchResultsHeader.value = "";
282 searchResults.style.display = searchInput.value.trim() === "" ? "none" : "block";
260 searchResults.style.display = searchInput.value.trim() === "" ? "none" : "block";
@@ -287,11 +265,13 @@ function initSearch() {
291 searchInput.addEventListener("keyup", debounce(function() {
270 searchInput.addEventListener("keyup", debounce(function() {
271+ inputReset.style.display="block";
292 searchResultsHeader.value = "";
273 searchResultsHeader.value = "";
293 var term = searchInput.value.trim();
274 var term = searchInput.value.trim();
296 //removed to fix: a state where there’s a valid search term, but no results
276 //removed to fix: a state where there’s a valid search term, but no results
@@ -303,12 +283,14 @@ function initSearch() {
303 searchResults.style.overflowY = term === "" ? "hidden" : "scroll";
283 searchResults.style.overflowY = term === "" ? "hidden" : "scroll";
304 searchResultsItems.innerHTML = "";
284 searchResultsItems.innerHTML = "";
305 if (term === "") {
285 if (term === "") {
286+ inputReset.style.display="none";
309 var results = index.search(term, options).filter(function (r) {
290 var results = index.search(term, options).filter(function (r) {
310 return r.doc.body !== "";
291 return r.doc.body !== "";
312 if (results.length === 0) {
294 if (results.length === 0) {
313 searchResultsHeader.innerText = `No search results for '${term}'.`;
295 searchResultsHeader.innerText = `No search results for '${term}'.`;
@@ -323,6 +305,17 @@ function initSearch() {
323 searchResultsItems.appendChild(formatSearchResultItem(results[i], term.split(" ")));
305 searchResultsItems.appendChild(formatSearchResultItem(results[i], term.split(" ")));
325 }, 150));
307 }, 150));
309+ // reset input button
310+ inputReset.onclick=function(){
311+ document.getElementById('search-form').reset();
313+ searchForm.addEventListener("reset", function(event){
314+ var e = document.createEvent('KeyboardEvent');
315+ e.initEvent("keyup", false, true);
316+ searchInput.dispatchEvent(e);
328if (document.readyState === "complete" ||
321if (document.readyState === "complete" ||