var awaytimeout = 600000;
var latest      = 'noinit';
var refreshc     = 4;
var refreshu     = 6;

var request_user = createXMLHttpRequest();
var request_text = createXMLHttpRequest();

function createXMLHttpRequest()
{
		var req = null;
		if (typeof XMLHttpRequest != "undefined")
		{
			req = new XMLHttpRequest();
		}
		if (!req && typeof ActiveXObject != "undefined")
		{
			try
			{
				req=new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e)
			{
				try
				{
					req=new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e2)
				{
					try 
					{
						req=new ActiveXObject("Msxml2.XMLHTTP.4.0");
					}
					catch (e3)
					{
						req=null;
					}
				}
			}
		}
		if(!req && window.createRequest)
		{
			req = window.createRequest();
		}
		return req;
}


function handleResponse()
{
  if(request_text.readyState == 4)
  {
    if (request_text.status == 200)
    {
      var response = request_text.responseText;
      if (response.indexOf('nonewmes') > -1)
      {
        return false;
      }
      else
      {
        latest = response.substring(response.indexOf('20'), response.indexOf('/script')-2);
        document.getElementById("chattext").innerHTML = response;
         document.getElementById("chattext").scrollTop = 50000;
        return true;
      }
    }
  }
}

function handleResponseNo()
{
  return true;
}

function handleResponseUsers()
{
  if(request_user.readyState == 4)
  {
    if (request_user.status == 200)
    {
      var response = request_user.responseText;
      var text1 = document.getElementById("chatusers").innerHTML.replace(/[\r\n|\s]/g,'');
      var text2 = response.replace(/[\r\n|\s]/g,'');
//      alert(text1+' == '+text2);
      if (text1 == text2)
      {
        return false;
      }
      else
      {
        document.getElementById("chatusers").innerHTML = response;
        return true;
      }
    }
  }
}

function getUpdatesChat()
{
  request_text.open('GET', 'ShowChat.do?cmd=chat&timestamp='+latest);
  request_text.onreadystatechange = handleResponse;
  request_text.send(null);
}

function getUpdatesUser()
{
  request_user.open('GET', 'ShowChat.do?cmd=user&timestamp='+latest);
  request_user.onreadystatechange = handleResponseUsers;
  request_user.send(null);
}


function refreshText()
{
  if (latest == 'noinit')
  {
   document.getElementById("chattext").innerHTML = "Please wait ...";
   document.getElementById("chatusers").innerHTML = "Please wait ...";
   getUpdatesChat();
   getUpdatesUser();
   new PeriodicalExecuter(getUpdatesChat, refreshc);
   new PeriodicalExecuter(getUpdatesUser, refreshu);
  }
}

function add_message()
{
  var line;
  var s_req = createXMLHttpRequest();
  line = document.getElementById("chatmessage").value;
  if (line == "" || line == "[b][/b]" || line == "[i][/i]" || line == "[u][/u]" || line == "[code][/code]")
  {
    document.getElementById("chatmessage").focus();
    return;
  }

  s_req.open('GET', 'SubmitChatMessage.do?chatmessage='+ escape(line));
  s_req.onreadystatechange = handleResponseNo 
  s_req.send(null);
//  new Ajax.Request('SubmitChatMessage.do', {method:'get', parameters:'chatmessage='+ escape(line), onComplete:handleResponseNo,});
  document.getElementById("chatmessage").value = "";
}
