<html>

<head>
    <title>JavaScript</title>
    <style>
        .box {
            display: inline-block;
            padding: 10px;
            width: 100px;
            height: 40px;
            border: 1px solid black;
            text-align: center;
        }
        
        .hidden {
            visibility: hidden;
        }
    </style>
</head>

<body>
    <script>
        window.addEventListener("load", init);
        const myWords = ["javascript", "html", "course", "laurence", "coding", "brackets"];
        let cur = 0;
        let startTime;

        function init() {
            let div = document.createElement("div");
            div.setAttribute("class", "message");
            div.innerText = "Press start button";
            document.body.appendChild(div);
            let button = document.createElement("button");
            button.type = "button";
            button.innerText = "Start Game";
            button.addEventListener("click", start);
            document.body.appendChild(button);
            let div1 = document.createElement("div");
            div1.classList.add("game");
            document.body.appendChild(div1);
        }

        function start() {
            cur = 0;
            startTime = Date.parse(new Date());
            this.style.display = "none";
            let tempArr = myWords.slice(0);
            tempArr.sort(function (a, b) {
                return 0.5 - Math.random();
            });
            myWords.sort(function (a, b) {
                return 0.5 - Math.random();
            });
            const game = document.querySelector(".game");
            tempArr.forEach(function (item) {
                let temp = item.split("");
                temp.sort(function (a, b) {
                    return 0.5 - Math.random()
                });
                let temp1 = temp.join("");
                let div = document.createElement("div");
                div.innerText = "Select";
                div.classList.add("box");
                div.style.backgroundColor = "red";
                div.word = item;
                div.addEventListener("mouseenter", function () {
                    div.style.backgroundColor = "white";
                    div.innerText = temp1;
                })
                div.addEventListener("mouseleave", function () {
                    div.style.backgroundColor = "red";
                    div.innerText = "Select";
                })
                div.addEventListener("click", function () {
                    if (div.word === myWords[cur]) {
                        this.classList.add("hidden");
                        cur++;
                        nextWord();
                    }
                    else {
                        console.log("wrong");
                    }
                })
                game.appendChild(div);
            })
            nextWord();
        }

        function nextWord() {
            if (cur >= myWords.length) {
                let endTime = Date.parse(new Date());
                let duration = (endTime - startTime) / 1000;
                document.querySelector(".game").innerHTML = "";
                document.querySelector("button").style.display = "block";
                message("Game Over it took " + duration + " seconds");
            }
            else {
                message("Select this Word " + myWords[cur]);
            }
        }

        function message(output) {
            document.querySelector(".message").innerHTML = output;
        }
    </script>
</body>

</html>