< 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 >