var localModeEnabled = false; var howlerSounds = []; function ready(fn) { if (document.attachEvent ? document.readyState === "complete" : document.readyState !== "loading") { fn(); } else { document.addEventListener("DOMContentLoaded", fn); } } function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } ready(function() { var sections = document.querySelectorAll("section"); var nav = document.querySelectorAll("nav a"); sections[0].style.display = "block"; nav.forEach(function(item) { item.onclick = function(e) { e.preventDefault(); var target = e.target.href.split("#"); var id = target[target.length - 1]; hideSections(); document.querySelector("#" + id).style.display = "block"; }; }); var searchfield = document.querySelector("#search"); searchfield.focus(); searchfield.addEventListener("keyup", function() { var buttons = document.querySelectorAll(".sound"); buttons.forEach(function(item) { item.style.display = "inline-block"; }); buttons.forEach(function(item) { var name = item.firstChild.innerHTML; if (name.toLowerCase().indexOf(searchfield.value.toLowerCase()) === -1) { item.style.display = "none"; } }); }); var reset = document.querySelector("#reset"); var sounds_nav = document.querySelector("#sounds-nav"); reset.addEventListener("click", resetSearch, false); sounds_nav.addEventListener("click", resetSearch, false); // keyboard listener for global key strokes/inputs document.onkeydown = function(evt) { evt = evt || window.event; if (evt.keyCode == 27) { // esc key resetSearch(); } else if ((evt.keyCode == 75 || evt.keyCode == 67) && evt.ctrlKey) { // ctrl+k and ctrl+c key binding killAllAudio(); } else if (evt.keyCode == 88 && evt.ctrlKey){ toggleLocalMode(); } }; // TODO: make sure that only sound buttons get selected, not ALL a-tags. See d4377e0f49dc8dd5787f4466c9ab7f7e7cd37ec5#note_857 // keyboard listener for enter key var all_a_s = document.getElementsByTagName("a"); for(i=0; i