4 const Menu
= (function () {
6 var buttons
= document
.querySelectorAll('#menu button');
7 var sections
= document
.querySelectorAll('body>div:not(#menu)');
10 const displayEvent
= new Event("display");
13 * Event listener helper for display event.
15 * @param string sSection
16 * @param string fCallback
18 function ondisplay (sSection
, fCallback
) {
19 for (var i
= 0; i
< sections
.length
; i
++) {
20 if (sSection
.toLowerCase() == sections
[i
].id
) {
21 sections
[i
].addEventListener('display', (event
) => {
22 fCallback(event
.target
, event
);
31 * Display page section.
35 function displaySection (sName
) {
36 for (var i
= 0; i
< sections
.length
; i
++) {
37 var isSelected
= sName
== sections
[i
].id
;
38 sections
[i
].classList
.remove('selected');
40 sections
[i
].classList
.add('selected');
41 sections
[i
].dispatchEvent(displayEvent
);
47 * Handle menu button's click event.
51 function onButtonClick (btn
) {
52 for (var i
= 0; i
< buttons
.length
; i
++) {
53 buttons
[i
].classList
.remove('selected');
55 btn
.classList
.add('selected');
56 displaySection(btn
.innerText
.toLowerCase());
59 // Add 'click' event listener on all menu buttons
60 for (var i
= 0; i
< buttons
.length
; i
++) {
61 buttons
[i
].addEventListener('click', (event
) => {
62 onButtonClick(event
.target
);