<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Chatroom</title>
  <style>
    body {
      font-family: Arial, sans-serif;
    }
    #chatbox {
      width: 400px;
      height: 300px;
      border: 1px solid #ccc;
      padding: 10px;
      overflow: auto;
    }
    #message {
      width: 100%;
      padding: 5px;
    }
    #send {
      margin-top: 5px;
    }
  </style>
</head>
<body>
  <div id="chatbox"></div>
  <input type="text" id="message" placeholder="Type your message">
  <button id="send">Send</button>

  <script>
    const chatbox = document.getElementById('chatbox');
    const messageInput = document.getElementById('message');
    const sendButton = document.getElementById('send');

    let messages = [];

    sendButton.addEventListener('click', function() {
      const message = messageInput.value;
      if (message.trim() !== '') {
        sendMessage(message);
        messageInput.value = '';
      }
    });

    function sendMessage(message) {
      messages.push(message);
      updateChatbox();
    }

    function updateChatbox() {
      chatbox.innerHTML = messages.map(msg => `<div>${msg}</div>`).join('');
      chatbox.scrollTop = chatbox.scrollHeight; // Scroll to the bottom
    }

    messageInput.addEventListener('keyup', function(event) {
      if (event.key === 'Enter') {
        sendButton.click();
      }
    });

    // Polling with a 3-second interval
    setInterval(function() {
      // Perform an AJAX request to the server to get new messages
      fetch('/getNewMessages')
        .then(response => response.json())
        .then(data => {
          messages = messages.concat(data.messages);
          updateChatbox();
        })
        .catch(error => {
          console.error('Error fetching new messages:', error);
        });
    }, 3000); // 3 seconds interval
  </script>
</body>
</html>