﻿

function checkEnter(e)
{
    var characterCode;
    if(e && e.which)
    {
        e = e
        characterCode = e.which;
    }
    else
    {
        e = event
        characterCode = e.keyCode;
    }

    if(characterCode == 13)
    {
        sendMsg();
        return false; 
    }
}

function updateView()
{
    var chat = document.getElementById("chat");
    if(chat != null && chat != "undefined")
    {
        var msg = document.getElementById("txtMsg");
        PageMethods.SetTypingNotification(msg.value == null ? false : msg.value.length > 0);
        PageMethods.CheckTypingNotification(OnCheckTypingNotificationComplete);
        PageMethods.GetMessages(OnGetMessagesComplete, methodError, methodError);
        msg.focus();
        
        if(getCookie("ChatID") != "")
        {
            window.setTimeout("updateView()", 2000);
        }
    }
}   

function sendMsg()
{
    if(getCookie("ChatID") != "")
    {
        PageMethods.SendMsg(document.getElementById("txtMsg").value, OnCallSendMsgComplete, methodError, methodError);
    }
}

function OnGetMessagesComplete(msgs)
{
    var visitor = getCookie("VisitorName");
    var div = document.getElementById("chat");
    for(var i=0; i<msgs.length; i++)
    {
        var text;
        var span = document.createElement("span");
        span.style.fontWeight = "bold";
        span.style.color = msgs[i].Name == visitor ? "blue" : "green";
        if(msgs[i].Name.length > 0)
        {
            text = document.createTextNode(msgs[i].Name + ": ");
            span.appendChild(text);
        }
        div.appendChild(span);
        
        text = document.createTextNode(msgs[i].Message);
        div.appendChild(text);
        div.appendChild(document.createElement("br"));
    }
    if(msgs.length > 0)
    {
        div.scrollTop = div.scrollHeight;
        document.getElementById("txtMsg").focus();
    }
}

function OnCheckTypingNotificationComplete(result, methodName)
{
    var obj = document.getElementById("typingNotification");
    if(obj != null && obj != "undefined")
    {
        obj.innerHTML = result;
    }
}

function OnCallSendMsgComplete()
{
    var txt1 = $get("txtMsg");
    txt1.value='';
    txt1.focus();
}

function getCookie(c_name)
{
    if (document.cookie.length>0)
    {
        c_start=document.cookie.indexOf(c_name + "=");
        if (c_start!=-1)
        { 
            c_start=c_start + c_name.length+1;
            c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1)
                c_end=document.cookie.length;
                
            return unescape(document.cookie.substring(c_start,c_end));
        } 
    }
    return "";
}
		
function setCookie(c_name,value,expiredays)
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function methodError(err)
{
    alert(err.get_message() + err.get_stackTrace());
}
       

