156 lines
4.8 KiB
JavaScript
156 lines
4.8 KiB
JavaScript
// Adds Scrolling function with keyboard to search links list and autocomplete suggestions list
|
|
|
|
document.onkeydown = selectKey;
|
|
document.onkeyup = selectKey2;
|
|
|
|
function selectKey2(e) {
|
|
if (defaultSearch.style.display == "none") {
|
|
let allSearchedLinks = document.querySelectorAll(
|
|
"#mainContainer2 .searchSources"
|
|
);
|
|
if (!(selectedIndex < 0 || selectedIndex > allSearchedLinks.length - 1)) {
|
|
var selected = allSearchedLinks[selectedIndex];
|
|
}
|
|
if (selectedIndex >= 0) {
|
|
selected.classList.add("selectedResult");
|
|
}
|
|
}
|
|
if (defaultSearch.style.display !== "none") {
|
|
let allSearchedLinks = document.querySelectorAll(
|
|
"#generatedList .searchSources"
|
|
);
|
|
|
|
var selected = allSearchedLinks[selectedIndex];
|
|
if (selectedIndex >= 0) {
|
|
selected.classList.add("selectedResult");
|
|
}
|
|
}
|
|
}
|
|
|
|
function selectKey(e) {
|
|
if (e.keyCode == 38 && defaultSearch.style.display == "none") {
|
|
// up Search Links
|
|
selectedIndex -= 1;
|
|
var selectedBeforeIndex = selectedIndex + 1;
|
|
|
|
let allSearchedLinks = document.querySelectorAll(
|
|
"#mainContainer2 .searchSources"
|
|
);
|
|
if (selectedIndex == -1) {
|
|
selectedIndex = allSearchedLinks.length - 1;
|
|
}
|
|
var selected = allSearchedLinks[selectedIndex];
|
|
var selectedBefore = allSearchedLinks[selectedBeforeIndex];
|
|
if (selectedBefore) {
|
|
selectedBefore.classList.remove("selectedResult");
|
|
}
|
|
if (selectedIndex >= 0) {
|
|
selected.classList.add("selectedResult");
|
|
}
|
|
} else if (
|
|
e.keyCode == 38 &&
|
|
defaultSearch.style.display !== "none" &&
|
|
localStorage.getItem("search-suggestions") === "yes" &&
|
|
searchInput.value.length !== 0
|
|
) {
|
|
// up AutoComplete
|
|
selectedIndex -= 1;
|
|
var selectedBeforeIndex = selectedIndex + 1;
|
|
|
|
let allSearchedLinks = document.querySelectorAll(
|
|
"#generatedList .searchSources"
|
|
);
|
|
|
|
if (selectedIndex == -1) {
|
|
selectedIndex = allSearchedLinks.length - 1;
|
|
}
|
|
var selected = allSearchedLinks[selectedIndex];
|
|
var selectedBefore = allSearchedLinks[selectedBeforeIndex];
|
|
if (selectedBefore) {
|
|
selectedBefore.classList.remove("selectedResult");
|
|
}
|
|
if (selectedIndex >= 0) {
|
|
selected.classList.add("selectedResult");
|
|
}
|
|
} else if (e.keyCode == 40 && defaultSearch.style.display == "none") {
|
|
// down SearchLinks
|
|
selectedIndex += 1;
|
|
var selectedBeforeIndex = selectedIndex - 1;
|
|
|
|
let allSearchedLinks = document.querySelectorAll(
|
|
"#mainContainer2 .searchSources"
|
|
);
|
|
if (selectedIndex == allSearchedLinks.length) {
|
|
selectedIndex = 0;
|
|
}
|
|
var selected = allSearchedLinks[selectedIndex];
|
|
var selectedBefore = allSearchedLinks[selectedBeforeIndex];
|
|
if (selectedBefore) {
|
|
selectedBefore.classList.remove("selectedResult");
|
|
}
|
|
if (selectedIndex >= 0) {
|
|
selected.classList.add("selectedResult");
|
|
}
|
|
} else if (
|
|
e.keyCode == 40 &&
|
|
defaultSearch.style.display !== "none" &&
|
|
localStorage.getItem("search-suggestions") === "yes" &&
|
|
searchInput.value.length !== 0
|
|
) {
|
|
// down AutoComplete
|
|
selectedIndex += 1;
|
|
var selectedBeforeIndex = selectedIndex - 1;
|
|
|
|
let allSearchedLinks = document.querySelectorAll(
|
|
"#generatedList .searchSources"
|
|
);
|
|
if (selectedIndex == allSearchedLinks.length) {
|
|
selectedIndex = 0;
|
|
}
|
|
var selected = allSearchedLinks[selectedIndex];
|
|
var selectedBefore = allSearchedLinks[selectedBeforeIndex];
|
|
if (selectedBefore) {
|
|
selectedBefore.classList.remove("selectedResult");
|
|
}
|
|
if (selectedIndex >= 0) {
|
|
selected.classList.add("selectedResult");
|
|
}
|
|
} else if (e.keyCode == 13 && defaultSearch.style.display == "none") {
|
|
// Enter SearchLinks
|
|
|
|
let allSearchedLinks = document.querySelectorAll(
|
|
"#mainContainer2 .searchSources"
|
|
);
|
|
|
|
var selected = allSearchedLinks[selectedIndex];
|
|
if (selectedIndex >= 0) {
|
|
selected.classList.add("selectedResult");
|
|
}
|
|
|
|
var url = selected.querySelector("a").href;
|
|
window.open(url, "_blank");
|
|
} else if (
|
|
e.keyCode == 39 &&
|
|
defaultSearch.style.display !== "none" &&
|
|
localStorage.getItem("search-suggestions") === "yes" &&
|
|
searchInput.value.length !== 0
|
|
) {
|
|
// Enter AutoComplete, Right Side
|
|
|
|
let allSearchedLinks = document.querySelectorAll(
|
|
"#generatedList .searchSources"
|
|
);
|
|
|
|
var selected = allSearchedLinks[selectedIndex];
|
|
if (selectedIndex >= 0) {
|
|
selected.classList.add("selectedResult");
|
|
}
|
|
searchInput.value = selected.innerText;
|
|
} else if (
|
|
e.keyCode == 38 ||
|
|
(e.keyCode == 40 && localStorage.getItem("search-suggestions") === "no")
|
|
) {
|
|
selectedIndex = -1;
|
|
}
|
|
}
|