//The stopwatch is incremented using a closure function!
function stopwatch() {
    var time = new Date(0, 0, 0, 0, 0, 0, 0);
    var pause = false;

    function increment() {
        if (!pause) {
            time.setSeconds(time.getSeconds() + 1);
            const hours = time.getHours().toString().padStart(2, "0");
            const minutes = time.getUTCMinutes().toString().padStart(2, "0");
            const seconds = time.getUTCSeconds().toString().padStart(2, "0");
            document.getElementById("time").innerHTML = `${hours}:${minutes}:${seconds}`;
        }
    }

    function pauseTimer() {
        pause = true;
    }

    return { increment, pauseTimer };
}

var timer = stopwatch();
var intervalId;

function start() {
    if (!intervalId) {
        intervalId = setInterval(timer.increment, 1000);
    }
}

function stop() {
    timer.pauseTimer();
}

function reset() {
    clearInterval(intervalId);
    intervalId = null;
    timer = stopwatch();
    document.getElementById("time").innerHTML = "00:00:00";
}
