const socket = io(); let username; function joinQuiz() { username = document.getElementById('username').value; socket.emit('join', { username: username }); document.getElementById('username').style.display = 'none'; document.querySelector('button').style.display = 'none'; document.getElementById('logged-user').textContent = username; document.getElementById('quiz-content').style.display = 'block'; document.getElementById('waiting-message').style.display = 'block'; document.getElementById('join-title').style.display = 'none'; } socket.on('update_participants', (data) => { document.getElementById('participant-count').textContent = data.count; }); socket.on('new_question', (data) => { document.getElementById('waiting-message').style.display = 'none'; document.getElementById('question-text').innerText = data.question; const options = data.options.map((opt) => `` ).join(''); document.getElementById('options').innerHTML = options; }); function submitAnswer(answer) { socket.emit('submit_answer', { answer: answer }); } function startQuiz() { socket.emit('start_quiz'); } function checkAnswers() { socket.emit('check_answers'); } function nextQuestion() { socket.emit('next_question'); } function restartQuiz() { socket.emit('restart_quiz'); } socket.on('display_results', (data) => { const img = `Results Chart`; const resultText = `

Correct Answer: ${data.results.correct_answer}

`; document.getElementById('results').innerHTML = img + resultText; }); socket.on('clear_results', () => { document.getElementById('results').innerHTML = ''; }); socket.on('quiz_end', (finalResults) => { let resultHtml = '

Final Results

'; for (let user in finalResults) { resultHtml += `

${user}: ${finalResults[user]} correct answers

`; } document.getElementById('results').innerHTML = resultHtml; }); socket.on('quiz_reset', () => { document.getElementById('results').innerHTML = ''; document.getElementById('question-text').innerText = ''; document.getElementById('options').innerHTML = ''; });