function ToggleSend() { let style = document.getElementById("sendframe").style; if (style.top !== "100%") { style.top = "100%"; } else { style.top = "200%"; } } function UtcToLocal(utcTime) { let date = new Date(); date.setTime(Date.parse(utcTime)); let minutes = date.getMinutes().toString().padStart(2, '0'); let hours = date.getHours().toString().padStart(2, '0'); let day = date.getDate().toString().padStart(2, '0'); let month = (date.getMonth() + 1).toString().padStart(2, '0'); let year = date.getFullYear(); return `${hours}:${minutes} ${day}-${month}-${year}`; } function HtmlEscape(str) { return str.replaceAll("&", "&") .replaceAll("<", "<") .replaceAll(">", ">") .replaceAll("\"", """) .replaceAll("'", "'") .replaceAll("{", "{") .replaceAll("}", "}"); } function GetAddrUser(addr) { let name = addr.match(/"([^"]+)"/); if (name) { return name[1]; } name = addr.match(/<([^>]+)>/); if (name) { return name[1]; } return addr; } function OpenMail(id) { let frame = document.getElementById("contentframe"); frame.style.visibility = "visible"; frame.style.width = "100%"; frame.src = "/open?id=" + id ; } async function SearchInbox() { document.getElementById("inboxframe").innerHTML = ""; let q = document.getElementById("q").value; try { let response = await fetch("/search?q=" + q); if (!response.ok) throw new Error(JSON.stringify({code: response.status})); let result = await response.json(); result["HtmlMetas"].forEach(element => { let date = UtcToLocal(element["Date"]); let subject = HtmlEscape(element["Subject"]); let to = HtmlEscape(GetAddrUser(element["To"])); let from = HtmlEscape(GetAddrUser(element["From"])); let id = element["Id"]; let inbox = document.getElementById("inboxframe"); inbox.innerHTML += `
${from}
${to}
${date}
${subject}
No results found.
"; else document.getElementById("inboxframe").innerHTML = "An error occurred.
"; } }