<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Function stage 4</title>
    <style>
      .msgBox {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
        width: 242px;
        border-radius: 10px;
        background-color: #eee;
        background-image: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,0.1));
      }

      .msgBox p {
        line-height: 1.5;
        padding: 10px 20px;
        color: #333;
        padding-left: 82px;
        background-position: 25px center;
        background-repeat: no-repeat;
      }

      .msgBox button {
        background: none;
        border: none;
        position: absolute;
        top: 0;
        right: 0;
        font-size: 1.1rem;
        color: #aaa;
      }

    </style>
  </head>
  <body>
    <button>Display message box</button>

    <script>

      const btn = document.querySelector('button');

      btn.onclick = function() {
        displayMessage('Brian: Hi there, how are you today?','chat');
      };

      function displayMessage(msgText,msgType) {
        const html = document.querySelector('html');

        const panel = document.createElement('div');
        panel.setAttribute('class','msgBox');
        html.appendChild(panel);

        const msg = document.createElement('p');
        msg.textContent = msgText;
        panel.appendChild(msg);

        const closeBtn = document.createElement('button');
        closeBtn.textContent = 'x';
        panel.appendChild(closeBtn);

        closeBtn.onclick = function() {
          panel.parentNode.removeChild(panel);
        }

        if(msgType === 'warning') {
          msg.style.backgroundImage = 'url(icons/warning.png)';
          panel.style.backgroundColor = 'red';
        } else if(msgType === 'chat') {
          msg.style.backgroundImage = 'url(icons/chat.png)';
          panel.style.backgroundColor = 'aqua';
        } else {
          msg.style.paddingLeft = '20px';
        }
      }

    </script>
  </body>
</html>
