in doc/1.5.5/libguac/search/search.js [508:563]
this.Nav = function(evt,itemIndex) {
const e = (evt) ? evt : window.event; // for IE
if (e.keyCode==13) return true;
if (!this.ProcessKeys(e)) return false;
if (this.lastKey==38) { // Up
const newIndex = itemIndex-1;
let focusItem = this.NavPrev(newIndex);
if (focusItem) {
let child = this.FindChildElement(focusItem.parentNode.parentNode.id);
if (child && child.style.display == 'block') { // children visible
let n=0;
let tmpElem;
for (;;) { // search for last child
tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
if (tmpElem) {
focusItem = tmpElem;
} else { // found it!
break;
}
n++;
}
}
}
if (focusItem) {
focusItem.focus();
} else { // return focus to search field
document.getElementById("MSearchField").focus();
}
} else if (this.lastKey==40) { // Down
const newIndex = itemIndex+1;
let focusItem;
const item = document.getElementById('Item'+itemIndex);
const elem = this.FindChildElement(item.parentNode.parentNode.id);
if (elem && elem.style.display == 'block') { // children visible
focusItem = document.getElementById('Item'+itemIndex+'_c0');
}
if (!focusItem) focusItem = this.NavNext(newIndex);
if (focusItem) focusItem.focus();
} else if (this.lastKey==39) { // Right
const item = document.getElementById('Item'+itemIndex);
const elem = this.FindChildElement(item.parentNode.parentNode.id);
if (elem) elem.style.display = 'block';
} else if (this.lastKey==37) { // Left
const item = document.getElementById('Item'+itemIndex);
const elem = this.FindChildElement(item.parentNode.parentNode.id);
if (elem) elem.style.display = 'none';
} else if (this.lastKey==27) { // Escape
e.stopPropagation();
searchBox.CloseResultsWindow();
document.getElementById("MSearchField").focus();
} else if (this.lastKey==13) { // Enter
return true;
}
return false;
}