var chatbox=document.getElementById("chatbox"),botchat=document.getElementById("botchat"),chatheader=document.getElementById("chatheader"),expandButton=chatheader.querySelector(".expand");function aichat_init(){connectWebSocket(),sessionStorage.setItem("chatOpened","true"),document.getElementById("botchat").classList.add("hide"),document.getElementById("chatbox").classList.remove("hide")}function aichat_minimize(){document.body.classList.contains("fullscreenchat")&&document.body.classList.remove("fullscreenchat"),document.getElementById("chatbox").classList.add("hide"),document.getElementById("botchat").classList.remove("hide"),sessionStorage.removeItem("chatOpened")}function chatTyping(){var e=document.createElement("div");e.id="typingDiv",e.className="message-cont assistant",e.innerHTML='Alexandrea is typing',document.getElementById("messages").appendChild(e),e.scrollIntoView()}function sendMessage(){var e=document.getElementById("userInput").value;if(e.length<=0)return;const t={role:"user",content:e};addMessage(t.role,JSON.stringify(t)),ws.send(e),chatTyping()}function addMessage(e,t){const n=JSON.parse(t),{role:s,buttons:c,choices:o}=n;let a=n.content;const d=document.getElementById("messages"),i=document.getElementById("typingDiv");i&&d.removeChild(i),a=a.replace(/\n/g,"
"),a=a.replace(/\[([^\]]+)\]\((https?:\/\/[^\s]+)\)/g,'$1'),a=a.replace(/【\d+:\d+†source】/g,"");const l=document.createElement("div");if(l.innerHTML=""+a+"",l.classList.add(s.toLowerCase()),l.classList.add("message-cont"),d.appendChild(l),document.getElementById("userInput").value="",c&&c.length>0){const e=document.createElement("div");e.style.display="flex",e.style.gap="10px",e.style.alignItems="center",e.innerHTML=c.map((e=>`
${e}
`)).join(""),d.appendChild(e)}if(o&&o.length>0){const e=document.createElement("div");e.classList.add("multiple-choice"),o.forEach((t=>{const n=document.createElement("div");n.classList.add("choice"),n.textContent=t,n.addEventListener("click",(()=>choiceClick(t))),e.appendChild(n)})),d.appendChild(e)}l.scrollIntoView()}function choiceClick(e){const t=document.getElementById("messages").getElementsByClassName("multiple-choice");for(;t.length>0;)t[0].remove();const n={role:"user",content:e};addMessage(n.role,JSON.stringify(n)),ws.send(e),chatTyping()}let ws;function connectWebSocket(){if(ws)return;const e=`wss://${window.location.hostname}/ws-aichat`;ws=new WebSocket(e),ws.onopen=function(){console.log("Connected to WebSocket!")},ws.onmessage=function(e){addMessage("Agent",e.data)},ws.onerror=function(e){console.log(`Error occurred: ${e.message}`)},ws.onclose=function(e){const t=e.wasClean?`Closed cleanly, code=${e.code}, reason=${e.reason}`:"Connection died";console.log(t),setTimeout(connectWebSocket,5e3)}}document.getElementById("userInput").addEventListener("keypress",(function(e){13===(e.which||e.keyCode)&&(e.preventDefault(),sendMessage())})),expandButton.addEventListener("click",(function(){document.body.classList.contains("fullscreenchat")?document.body.classList.remove("fullscreenchat"):document.body.classList.add("fullscreenchat")})),"true"===sessionStorage.getItem("chatOpened")&&aichat_init();