var Settings = (function() { var displayed = false, currentPage = null, pages = { services: "services", display: "display", privacy: "privacy" }, spawn = function() { document.getElementById(R.id.settings.wrapper).classList.remove(R.klass.hidden); displayed = true; }, setVisiblePage = function(page) { if (currentPage) { document.getElementById(R.id.settings.wrapper).classList.remove("display-" +currentPage); document.getElementById("setting-menu-" +currentPage).classList.remove(R.klass.selected); } document.getElementById(R.id.settings.wrapper).classList.add("display-" +page); document.getElementById("setting-menu-" +page).classList.add(R.klass.selected); currentPage = page; }; document.getElementById(R.id.settings.menu.list).addEventListener("click", function(e) { for (var target = e.target; e.currentTarget !== target && target; target = target.parentNode) { if (target.dataset && target.dataset["target"]) { for (var i in pages) { if (pages[i] === target.dataset["target"]) { setVisiblePage(pages[i]); return; } } } } }); return { /** @type {function(string=)} */ display: function(page) { if (!displayed) spawn(); setVisiblePage(page || pages.services); return this; }, /** @type {function(boolean)} */ setClosable: function(closable) { return this; }, pages: pages }; })();