let startTime, endTime, clicks = 0, cps = 0; let intervalId, timeoutId; document.getElementById('start-button').addEventListener('click', startTest); function startTest() { document.getElementById('start-button').classList.add('active'); document.getElementById('start-button').innerHTML = '0'; startTime = new Date().getTime(); intervalId = setInterval(updateCounter, 1000); timeoutId = setTimeout(endTest, 15000); document.addEventListener('click', countClick); } function countClick() { clicks++; document.getElementById('start-button').innerHTML = clicks; } function updateCounter() { cps = Math.round((clicks / ((new Date().getTime() - startTime) / 1000)) * 100) / 100; document.getElementById('cps-display').innerHTML = `Clicks Per Second: ${cps}`; document.getElementById('timer').innerHTML = `Time remaining: ${Math.ceil((15000 - (new Date().getTime() - startTime)) / 1000)} seconds`; } function endTest() { clearInterval(intervalId); clearTimeout(timeoutId); document.removeEventListener('click', countClick); document.getElementById('cps-display').innerHTML = `Your Clicks Per Second: ${cps}`; document.getElementById('timer').innerHTML = ''; document.getElementById('start-button').innerHTML = 'Start'; document.getElementById('start-button').classList.remove('active'); }