var xmlhttp; var slowdiv; var messageinput; var messagediv; var postbutton; var username = ""; var timerID; var error = false; var lastUpdateID; var clearNextUpdate = false; function initSlowchat(){ slowdiv = document.getElementById("slowchat"); messagediv = document.getElementById("postmessage"); postbutton = document.getElementById("post"); messageinput = document.getElementById("message"); messageinput.onkeyup = postMessage; postbutton.onclick = postMessage; if ( username != ""){ refresh();}
else{ showLogin();}
}
function showLogin(){ slowdiv.innerHTML = "<p class=\"login\">Your username: <input class=\"login\" type=\"text\" OnKeyUp=\"login(event)\" /></p>"; messagediv.style.visibility = "hidden";}
function login( e ){ if (!e) var e = window.event; if (e.target)
targ = e.target
else if (e.srcElement)
targ = e.srcElement
if (e.keyCode == 13 && targ.value.length > 0){ username = escape(targ.value); slowdiv.innerHTML = "Loading..."; clearNextUpdate = true; messagediv.style.visibility = "visible"; messageinput.focus(); refresh();}
}
function logout(){ window.clearTimeout(timerID); username = ""; lastUpdateID = 0; showLogin();}
function refresh(){ loadurl("getposts.php?from="+escape(lastUpdateID)); window.clearTimeout(timerID); timerID = window.setTimeout("refresh()", 10000);}
function loadurl(dest)
{ try { xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");} catch (e) { alert("Get an AJAX supporting browser, like firefox: http://www.mozilla.com/");}
xmlhttp.onreadystatechange = fillSlowchat; xmlhttp.open("GET", dest); xmlhttp.send(null);}
function fillSlowchat(){ if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) { if (clearNextUpdate){ clearNextUpdate = false; slowdiv.innerHTML = "";}
var responses = xmlhttp.responseText.split(","); var response = responses[2]; if (responses[1] != 0)
lastUpdateID = responses[1]; for ( i = 3; i < responses.length; i++){ response += "," + responses[i];}
var responsecount = responses[0]; if (responsecount != 0){ if (responsecount == 30){ responsecount = 0;}
var contents = (response + slowdiv.innerHTML).split( "<br>", 29 ); usedSplitter = "br"; if ( contents.length == 1 || (contents.length - 1) == responsecount ) { contents = (response + slowdiv.innerHTML).split( "<br/>", 29 ); usedSplitter = "br/";}
if ( contents.length == 1 || (contents.length - 1) == responsecount ) { contents = (response + slowdiv.innerHTML).split( "<BR>", 29 ); usedSplitter = "BR";}
contents[contents.length - 1 ] = contents[contents.length -1].substring(0, contents[contents.length -1].indexOf(usedSplitter) - 1); var newcontents = ""; for ( i = 0; (i < contents.length && i < 29); i++){ newcontents += contents[i]
if (!( i == contents.length -1 || i == 28 ))
newcontents += "<br/>";}
slowdiv.innerHTML = newcontents;}
}
}
function postMessage(e){ if (!e) var e = window.event; if (e.target)
targ = e.target
else if (e.srcElement)
targ = e.srcElement
if ((e.keyCode == 13 || targ.id == "post")&& messageinput.value.length > 0) { if (messageinput.value.length <= 255){ var message = escape(messageinput.value); while (message.indexOf('+', 0)!=-1){ message = message.replace('+', '%2B');}
url = "postmessage.php?user="+username+"&msg="+message; xmlhttp.open( "GET", url, false ); xmlhttp.send(null); messageinput.value = ""; if (error){ initSlowchat();}
else{ refresh();}
}
else{ if (!error){ error = true; alert('Error: Message may not be longer than 255 characters');}
}
}
}

