function include(em){
    var result = document.getElementById("chat_input").innerHTML;
    result =result+"<span class=\"emot\" ><img src=\""+em+"\" /></span>";
    document.getElementById("chat_input").innerHTML=result;
    document.getElementById("emotDlg").style.display="none";
}

function showEmoticons(url){
    AjaxRequest("GET",url,emotResult,null);
}
var emotShown = false;
function toggleEmot(){
    emotShown = !emotShown;
    if(emotShown){
        document.getElementById("emotDlg").style.display="block";
        document.getElementById("emotDlg").style.top = (getTop(document.getElementById("emot_button"))-315)+"px";
        document.getElementById("emotDlg").style.left = (getLeft(document.getElementById("emot_button"))+10)+"px";           
    }else{
    document.getElementById("emotDlg").style.display="none";
}
}
function hideEmot(){
    document.getElementById("emotDlg").style.display="none";
}
function emotResult() 
{ 
    if (xmlHttp.readyState==4)
        {  var res = xmlHttp.responseText;
            if(res.indexOf("<div id=\"emoticons\"")!=-1){
                document.getElementById("emotDlg").innerHTML = res;
                document.getElementById("emotDlg").style.display="block";
                document.getElementById("emotDlg").style.top = (getTop(document.getElementById("emot_button"))-315)+"px";
                document.getElementById("emotDlg").style.left = (getLeft(document.getElementById("emot_button"))+10)+"px";   
            }
        }
    }
    
    function restoreHTML(id){
        //var p = 
        var result = document.getElementById(id).innerHTML;
        result = result.replace(/&lt;/g,"<");
        result = result.replace(/&gt;/g,">");
        document.getElementById(id).innerHTML=result;
    }
    function removeIds(msg){
        var st = msg.indexOf("id=");
        if(st==-1){
            st=msg.indexOf("id =");
        }
        while(st!=-1){
            var en = msg.indexOf("\"",st);
            en = msg.indexOf("\"",en+1);
            var str1 = msg.substring(0,st);
            var str2 = msg.substring(en+1,msg.length);
            msg=str1+str2;
            st = msg.indexOf("id=");
            if(st==-1){
                st=msg.indexOf("id =");
            }
        }
        return msg;
    }
    function send()
    { 
        var msg = document.getElementById("chat_input").innerHTML;
        if(msg!=""){
            //if(msg.indexOf("id=\"chat_input\"")!=-1){
            //    msg=msg.replace("id=\"chat_input\"","");
            //}
            msg=removeIds(msg);
            var inp = escape(msg);
            if(inp.length<1024){
                AjaxRequest("GET","ChatServer?task=send&room="+document.getElementById("to").value+"&msg="+inp+"&ssq="+Math.random(),sendResult,null);
            }else{
            alert("Message too long. Maximum message length is 1024 characters.");
        }
    }
}
function sendResult() 
{ 
    if (xmlHttp.readyState==4)
        { 
            var res = xmlHttp.responseText;
            if(res=="ok"){
                document.getElementById("chat_input").innerHTML = "";
                updateMessages();
            }else{
            alert(res);
        }
    }
}
function startChat(){
    document.getElementById("chat_messages").scrollTop = document.getElementById("chat_messages").scrollHeight;
    setInterval("updateMessages()",25000);
}
var updating = false;
function updateMessages(){
    if((!updating)&&(!ajaxBusy)){
        updating = true;
        AjaxRequest("GET","ChatServer?task=update&room="+document.getElementById("to").value+"&ssq="+Math.random(),updateMessagesResult,null);    
    }
}
function updateMessagesResult(){
    if (xmlHttp.readyState==4)
        { 
            var res = xmlHttp.responseText;
            if(res.indexOf("<!--chat messages -->")!=-1){
                var chatMsg = document.getElementById("chat_messages");
                chatMsg.innerHTML= res;
                chatMsg.scrollTop = chatMsg.scrollHeight;
                updating = false;
            }
        } 
    }
