var httpobject;
var timeoutobject;

function update(name, message)
{
    httpobject = GetHTTPObject();
    if (httpobject == null)
    {
        alert("Your browser does not support the functionality needed for this chatbox to work.");
        return;
    }
    httpobject.onreadystatechange = stateChanged;
    if (name == null)
        httpobject.open("GET","chat.php?sid="+Math.random(),true);
    else httpobject.open("GET","chat.php?name="+name+"&message="+message+"&sid="+Math.random(),true);
    httpobject.send(null);
    timeoutobject = setTimeout("update()",10000);
} 

function stateChanged() 
{ 
    if (httpobject.readyState==4 || httpobject.readyState=="complete")
    {
        var chatmessages = document.getElementById("chatmessages");
        chatmessages.innerHTML = httpobject.responseText;
        chatmessages.scrollTop = 0;
    }
} 

function GetHTTPObject()
{ 
    var obj = null;
    if (window.XMLHttpRequest)
        obj = new XMLHttpRequest();
    else if (window.ActiveXObject)
        obj = new ActiveXObject("Microsoft.XMLHTTP");
    return obj;
}

function sendmessage()
{
    var name = document.getElementById("name").value;
    var message = document.getElementById("message").value;
    if (name == "" || name == "name")
    {
        document.getElementById("name").style.background = "#FFAAAA";
        document.getElementById("name").focus();
    }
    else if (message == "" || message == "message")
    {
        document.getElementById("message").style.background = "#FFAAAA";
        document.getElementById("message").focus();
    }
    else {
        clearTimeout( timeoutobject );
        var today = new Date();
        var expire = new Date();
        expire.setTime( today.getTime() + 3600000*24*7 );
        document.cookie = "chatboxname="+name+";expires="+expire.toGMTString();
        message = message.replace(/\n/g,"<br />");
        update(name,message);
        document.getElementById("message").value = "";
        document.getElementById("message").focus();
    }
    return false;
}

update();