(function() { var table = {}, input = document.getElementById("querypseudo"), lastFilter = ""; function isFiltering(pseudo) { return pseudo.indexOf(lastFilter) < 0; } function filterResults() { var inputLower = input.value.toLowerCase().trim(); if (inputLower === lastFilter) return; lastFilter = inputLower; for (var i in table) { table[i].style.display = isFiltering(i) ? "none" : ""; } } function buildTable() { var result = {}, table = document.querySelectorAll("#scoreDataTable tr.score-data"); table.forEach(i => { var pseudo = i.children[1].innerHTML.toLowerCase().trim(); result[pseudo] = i; i.addEventListener("click", function() { document.location.hash = '#' +pseudo; }); }); return result; } table = buildTable(); input.addEventListener("input", filterResults); input.addEventListener("blur", filterResults); if (document.location.hash.length && !input.value.length) input.value = document.location.hash.substr(1); filterResults(); })();