var KBIntervalID = 0;
function UpdateLinks(e) {
if (!tags().includes("DisableKeyLinks")) {
var t,
n = void 0 === e ? (e = document, $("#passages a").toArray()) : $(e).find("a").toArray();
var b = void 0 === e ? (e = document, $("button[onclick*=\"<<goto\"").toArray()) : $(e).find("button[onclick*=\"<<goto\"").toArray();
b.sort(function(first, second) {
//sort by x, secondary by y
var x1 = parseFloat($(first).css("left"));
var y1 = parseFloat($(first).css("top"));
var x2 = parseFloat($(second).css("left"));
var y2 = parseFloat($(second).css("top"));
return y1 == y2 ? x1 - x2 : y1 - y2;
});
n.push(...b);
if (0 < n.length)
for (t = 0; t < n.length; t++)
"true" != n[t].getAttribute("data-nokey") &&
"true" != n[t].parentElement.getAttribute("data-nokey") &&
!n[t].parentElement.classList.contains("HomeButton") &&
!n[t].parentElement.classList.contains("TimeButton") ||
(n.deleteAt(t), t--);
if (1 === n.length)
n[0].id.includes("Link") || (n[0].id = "NextLink", $("<sup>[D]</sup>").appendTo(n[0]));
else if (1 <= n.length && n.length <= 20)
for (t = 0; t < n.length; t++){
//if(n[t].tagName == "button" && n[t].getAttribute("onclick").contains(""
n[t].id.includes("Link") || (t < 9 ? ($("<sup>[" + (t + 1) + "]</sup>").appendTo(n[t]), n[t].id = "Link" + (t + 1)) : 9 === t ? ($("<sup>[0]</sup>").appendTo(n[t]), n[t].id = "Link0") : ($("<sup>[" + "qwertyuiop".charAt(t - 10) + "]</sup>").appendTo(n[t]), n[t].id = "Link" + t))
}
}
}
function utilSlugify(e) {
var e = String(e).trim(),
t = e.replace(/[^\w\s\u2013\u2014-]+/g, "").replace(/[_\s\u2013\u2014-]+/g, "-").toLocaleLowerCase();
return /^-*$/.test(t) ? e.replace(/[\x00-\x20!-/:-@[-^`{-\x9f]+/g, "").replace(/[_\s\u2013\u2014-]+/g, "-") : t
}
$(document).on(":passagerender", function (e) {
clearInterval(KBIntervalID),
UpdateLinks(e.content),
KBIntervalID = setInterval(UpdateLinks, 300)
});
$(document).on("keyup", function (e) {
if (!tags().includes("DisableKeyLinks"))
switch (68 != e.keyCode && 39 != e.keyCode && 97 != e.keyCode || !$("#NextLink") || tags().includes("IgnoreArrowKeys") && "ArrowRight" == e.key || (e.preventDefault(), $("#NextLink").click()), 47 < e.keyCode && e.keyCode < 58 && $("#Link" + (e.keyCode - 48)) && (e.preventDefault(), $("#Link" + (e.keyCode - 48)).click()), 95 < e.keyCode && e.keyCode < 106 && $("#Link" + (e.keyCode - 96)) && (e.preventDefault(), $("#Link" + (e.keyCode - 96)).click()), 65 != e.keyCode && 37 != e.keyCode && 192 != e.keyCode || tags().includes("IgnoreArrowKeys") && 65 == e.keyCode || (e.preventDefault(), Engine.backward()), e.keyCode) {
case 81:
e.preventDefault(),
$("#Link10").click();
break;
case 87:
e.preventDefault(),
$("#Link11").click();
break;
case 69:
e.preventDefault(),
$("#Link12").click();
break;
case 82:
e.preventDefault(),
$("#Link13").click();
break;
case 84:
e.preventDefault(),
$("#Link14").click();
break;
case 89:
e.preventDefault(),
$("#Link15").click();
break;
case 85:
e.preventDefault(),
$("#Link16").click();
break;
case 73:
e.preventDefault(),
$("#Link17").click();
break;
case 79:
e.preventDefault(),
$("#Link18").click();
break;
case 80:
e.preventDefault(),
$("#Link19").click()
}
});