<hr/> <script type="text/javascript"> function changeColor() { document.getElementById("submit").style.borderColor=document.getElementById("msg").style.borderColor=document.getElementById("name").style.borderColor=document.getElementById("col").style.borderColor=document.getElementById("col").options[document.getElementById("col").selectedIndex].text } function submit() { if (document.getElementById("msg").value.replaceAll(" ","").length>1000) { alert("Your message is longer than 1000 characters!"); return; } if (document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="GREEN"&& document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="RED"&& document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="YELLOW"&& document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="BLUE"&& document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="MAGENTA"&& document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="CYAN"&& document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="WHITE") { alert("You chose an invalid color!"); return; } document.getElementById("submit").disabled= document.getElementById("name").disabled= document.getElementById("col").disabled= document.getElementById("msg").disabled=true; fetch("/COMMENTS?submit=true&article=$ARTICLE.comment&message="+encodeURIComponent(document.getElementById("msg").value)+"&name=" +encodeURIComponent(document.getElementById("name").value)+"&color=" +encodeURIComponent(document.getElementById("col").options[document.getElementById("col").selectedIndex].text) , {cache: "no-cache"}).then((data)=>data.text()) .then((data)=>{ document.getElementById("msg").value="" document.getElementById("name").value="" document.getElementById("submit").disabled= document.getElementById("name").disabled= document.getElementById("col").disabled= document.getElementById("msg").disabled=false; fetchComments() }) .catch((err)=>{ document.getElementById("submit").disabled= document.getElementById("name").disabled= document.getElementById("col").disabled= document.getElementById("msg").disabled=false; }) } function bonus(str) { switch (str) { case "^^":{ return "Bold Text" }break; case "**":{ return "Italic Text" }break; case "__":{ return "Underlined Text" }break; case "~~":{ return "//Code goes here." }break; case "[[":{ return "http://link.com" }break; } } function insert(c1,c2) { if (document.getElementById("msg").selectionStart==document.getElementById("msg").selectionEnd) { //No highlighting. Insert here. if (c2!=undefined) { document.getElementById("msg").value=document.getElementById("msg").value.substring(0,document.getElementById("msg").selectionStart)+c1+ bonus(c1)+ c2+document.getElementById("msg").value.substring(document.getElementById("msg").selectionStart) } else { document.getElementById("msg").value=document.getElementById("msg").value.substring(0,document.getElementById("msg").selectionStart)+c1+document.getElementById("msg").value.substring(document.getElementById("msg").selectionStart) } } else { if (c2!=undefined) { document.getElementById("msg").value=document.getElementById("msg").value.substring(0,document.getElementById("msg").selectionStart)+c1+document.getElementById("msg").value.substring(document.getElementById("msg").selectionStart,document.getElementById("msg").selectionEnd)+c2+document.getElementById("msg").value.substring(document.getElementById("msg").selectionEnd) } else { document.getElementById("msg").value=document.getElementById("msg").value.substring(0,document.getElementById("msg").selectionStart)+c1+document.getElementById("msg").value.substring(document.getElementById("msg").selectionStart) } } } </script> <div id="commentForm"> <b>Leave a comment!</b><br/><br/> <label for="name">Display Name: </label><input id="name"></input><br/><br/> <label for="col">Display Color: </label><select id="col" onchange="changeColor()"> <option value="RED">RED</option> <option value="GREEN" selected>GREEN</option> <option value="YELLOW">YELLOW</option> <option value="BLUE">BLUE</option> <option value="MAGENTA">MAGENTA</option> <option value="CYAN">CYAN</option> <option value="WHITE">WHITE</option> </select><br/><br/> <label for="msg" style="vertical-align:top;display:inline;">Message: </label> <div> <div class="toolbar"> <span class="toolbarItem" onclick="insert('^^','^^')" title="Bold"> <b>B</b> </span> <span class="toolbarItem" onclick="insert('**','**')" title="Italics"> <i>I</i> </span> <span class="toolbarItem" onclick="insert('__','__')" title="Underline"> <u>U</u> </span> <span class="toolbarItem" onclick="insert('~~','~~')" title="Code"> <code> </span> <span class="toolbarItem" onclick="insert('[[',']]')" title="Link"> <http://> </span> <span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji"> 😊 </span> <span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji"> 😔 </span> <span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji"> 👍 </span> <span class="toolbarItem" onclick="insert('❤️')" title="Heart Emoji"> ❤️ </span> <span class="toolbarItem" onclick="insert('😡')" title="Pouting Emoji"> 😡 </span> </div> <textarea id="msg"></textarea> </div><br/><br/> <button id="submit" onclick="submit()">POST</button> </div><br/><br/> <div id="commentContainer" style="visibility:hidden;"> <h2>Comments <sub>(<span class="commentCounter" id="commentCounter">0</span>)</sub></h2> <div class="comments" id="comments"></div> </div> <script type="text/javascript"> function fetchComments() { fetch("/COMMENTS?article=$ARTICLE.comment", {cache: "no-cache"}).then((data)=>data.text()) .then((data)=>{ data=data.split("\n"); if (!isNaN(Number(data[0]))) { document.getElementById("comments").innerHTML=""; document.getElementById("commentCounter").innerText=data[0] for (var i=data.length-3;i>=1;i-=2) { if (data[i].trim().length>0&&data[i+1].trim().length>0) { document.getElementById("comments").innerHTML+="<div id=\"msg"+((i+1)/2)+"\" class=\"commentDisplayer\"><div class=\"commentData\">"+decodeURIComponent(data[i]).replaceAll("\n","<br/>").replaceAll("\\\\NEWLINE\\\\","\n")+"</div><br>" data2=data[i+1].split(";"); document.getElementById("msg"+((i+1)/2)).style.borderColor=data2[1] document.getElementById("comments").innerHTML+="<div class=\"commentInfo\"><sup>- "+decodeURIComponent(data2[0])+"</sup></div></div><br>" } } document.getElementById("commentContainer").style.visibility="visible" } }) } fetchComments() changeColor() </script>