

// JavaScript File



function AddMessages(updateString)
{
    if (updateString == null || updateString.length == 0)
    {
		if (lastMessageID < 0)
			lastMessageID = 0;
		
        return;
	}

    var chatWindow = Get("ChatWindow");
    var messages = updateString.split("[split]");
    
	var inScrollPosition = true;

	try
	{
		inScrollPosition = chatScroll.isScrollable();
	}
	catch (e) { }
    
    var maxMessageID = -1;
    
    for (var m=0; m < messages.length; m++)
    {
        if (messages[m] != null && messages[m].length > 0)
        {
            try
            {
                var messageParts = messages[m].split("|**|");
            
                var messageID       = messageParts[0];
                var messageUser     = messageParts[1];
                var messageText     = messageParts[2];
                var messageTime     = messageParts[3];
                var messageColor    = messageParts[4];
                var messageIsSystem = messageParts[5];
                
                if (messageIsSystem.toLowerCase() == "true")
                    chatWindow.innerHTML += "<div class=\"ChatSystemMessage\">" + messageText + "</div>";
                else if (messageText.indexOf("/me ") == 0)
                    chatWindow.innerHTML += "<div class=\"ChatMessage\" style=\"color: " + messageColor + "\"><b>" + messageUser + "&nbsp;" + messageText.substring(4) + "</b></div>";
                else
                {
                    var theDate = new Date();
                    var hours = theDate.getHours();
                    var mins = theDate.getMinutes();
                    var secs = theDate.getSeconds();
                    var ampm = "A.M.";
                    
                    if (hours > 12)
                    {
                        hours -= 12
                        ampm = "P.M.";
                    }
                    
                    if (mins < 10)
                        mins = "0" + mins;
                    if (secs < 10)
                        secs = "0" + secs;
                    
                    var timeString = hours + ":" + mins + ":" + secs + " " + ampm;
                    
                    chatWindow.innerHTML += "<div class=\"ChatMessage\" style=\"color: " + messageColor + "\"><b title=\"" + timeString + "\">&lsaquo;" + messageUser + "&rsaquo;</b>&nbsp;" + messageText + "</div>";
                }
                
                if (messageID > maxMessageID)
                    maxMessageID = messageID;
                if (messageText.indexOf("has joined the chat room") > 0)
                    lastUsersUpdate = usersListInterval;
            }
            catch (e) { }
        }
    }
    
    if (maxMessageID > 0)
        lastMessageID = maxMessageID;
    else if (lastMessageID < 0)
    	lastMessageID = 0;
    
	try
	{
		if (inScrollPosition)
			chatScroll.scrollToEnd();
	}
	catch (e) { }
}

function SubmitMessage()
{
    var messageInput = Get("InputMessage");
    
    if (messageInput.value == null || messageInput.value.length == 0)
        return;

    SetUpdating();
    
    var postbackUrl = "/appchat/ajax/messages.aspx";
    postbackUrl += "?roomid=" + roomID;
    postbackUrl += "&userid=" + userID;
    postbackUrl += "&msg=" + escape(messageInput.value);
    postbackUrl += "&color=" + escape(userColor);
    
    GetAjaxContent(postbackUrl, MessageSubmitted);
    
    messageInput.value = "";
    messageInput.focus();
}

function MessageSubmitted(responseText)
{
	if (responseText == "FLOODING")
	{
		var errorHtml = "";
		
		errorHtml += "<div class=\"MediumHeader\">Message Blocked:</div>";
		errorHtml += "Your message was not sent because you have sent too many messages in the past 2 minutes.<br /><br />";
		errorHtml += "This is a security measure intended to prevent users from abusing the chat rooms. ";
		errorHtml += "Please wait a few moments and try again.  Thank you for your cooperation. ";
		
		ShowMessageWindow(errorHtml);
	}
	
    SetIdle();
}
