queue=0
maxqueue=999999

  var ChatScroll = new Object();
  ChatScroll.Pane = 
    function(scrollContainerId)
    {
        this.bottomThreshold = 50;
        this.scrollContainerId = scrollContainerId;
    }
    
  ChatScroll.Pane.prototype.resize =
    function(boxNo)
    {
        var scrollDiv           = document.getElementById(this.scrollContainerId+''+boxNo);
        scrollDiv.style.height  = (document.documentElement.clientHeight - 225) + 'px';
        scrollDiv               = null;
        
        this.scrollToEnd();
    }
    
  ChatScroll.Pane.prototype.scrollToEnd =
    function(boxNo)
    {
        var scrollDiv       = document.getElementById(this.scrollContainerId+''+boxNo);
        scrollDiv.scrollTop = scrollDiv.scrollHeight;
        scrollDiv           = null;
    }
    
  ChatScroll.Pane.prototype.isScrollable = 
    function(boxNo)
    {
        var scrollDiv = document.getElementById(this.scrollContainerId+''+boxNo);
        var currentHeight = 0;
        
        if (scrollDiv.scrollHeight > 0)
            currentHeight = scrollDiv.scrollHeight;
        else 
            if (document.getElementById(this.scrollContainerId+''+boxNo).offsetHeight > 0)
                currentHeight = scrollDiv.offsetHeight;

        var Result = (currentHeight - scrollDiv.scrollTop - ((scrollDiv.style.pixelHeight) ? scrollDiv.style.pixelHeight : scrollDiv.offsetHeight) < this.bottomThreshold);
        scrollDiv  = null;
        
        return Result;
    }

  var divScroll = new ChatScroll.Pane('chatbox');
function getQueue(){
	alert(queue);	
}
function getFriendsOnline(user_id)
{
		if(queue<=maxqueue){
		queue++;
		var xmlHttp;
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
			alert ("Your browser does not support AJAX!");
			return;
		} 
		var url="/AJAX_Pages/getFriends.asp?user_id="+user_id+"&r="+Math.random();
		//url=url+"&user_id="+user_id.toString()+"";
		//url=url+"?last_id="+document.getElementById("lastID").value;
		xmlHttp.onreadystatechange=function(){
																		if (xmlHttp.readyState==4)
																		{
																				xmlHttpresponseText=xmlHttp.responseText
																				delete xmlHttp['onreadystatechange'];
																				xmlHttp = null;
																				var msie = ((navigator.appVersion.indexOf("MSie")!= -1||navigator.appVersion.indexOf("MSIE")!= -1)&&!window.opera)? true : false; 
																				if (msie) 
																				{
																					CollectGarbage();
																				}
																				document.getElementById('friendsOnline').innerHTML=xmlHttpresponseText
																				setTimeout("getFriendsOnline('"+user_id+"')",800)
																				queue--;
																		}
																}
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
}
function chatListener(user_id)
{
		if(queue<=maxqueue){
		queue++;
		var xmlHttp;
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
			alert ("Your browser does not support AJAX!");
			return;
		} 
		var url="/AJAX_Pages/chatListener.asp?user_id="+user_id+"&r="+Math.random();
		//url=url+"&user_id="+user_id.toString()+"";
		//url=url+"?last_id="+document.getElementById("lastID").value;
		xmlHttp.onreadystatechange=function(){
																		if (xmlHttp.readyState==4)
																		{
																				xmlHttpresponseText=xmlHttp.responseText
																				delete xmlHttp['onreadystatechange'];
																				xmlHttp = null;
																				var msie = ((navigator.appVersion.indexOf("MSie")!= -1||navigator.appVersion.indexOf("MSIE")!= -1)&&!window.opera)? true : false; 
																				if (msie) 
																				{
																					CollectGarbage();
																				}
																				if(getXMLContent("attendeeID",xmlHttpresponseText)!='0'){
																					var boxNo = document.getElementById('activeWindows').value;
																					boxNo=parseInt(boxNo)+1
																					if(boxNo<6&&checkBox(getXMLContent("chatID",xmlHttpresponseText),boxNo)){
																						document.getElementById('activeWindows').value=boxNo;
																						document.getElementById("attendee_id"+boxNo).value=getXMLContent("attendeeID",xmlHttpresponseText);
																						document.getElementById("chat_id"+boxNo).value=getXMLContent("chatID",xmlHttpresponseText);
																						document.getElementById("chatheader"+boxNo).innerHTML=getXMLContent("chattingWith",xmlHttpresponseText);
																						setTimeout("showChat('"+document.getElementById("attendee_id"+boxNo).value+"','"+document.getElementById("chat_id"+boxNo).value+"','"+boxNo+"')",500);
																					}
																				}
																				setTimeout("chatListener('"+user_id+"')",800)
																				queue--;
																		}
																}
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
}
function checkBox(chat_id,boxNo){
		for(i=1;i<=boxNo;i++){
			if(document.getElementById("chat_id"+i).value==chat_id){
				return false;	
			}
		}
		return true;
}
function createRoom(user_id,invited)
{
		if(queue<=maxqueue){
		queue++;
		var xmlHttp;
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
			alert ("Your browser does not support AJAX!");
			return;
		} 
		var url="/AJAX_Pages/createChatRoom.asp?user_id="+user_id+"&invited="+invited+"&r="+Math.random();
		//url=url+"&user_id="+user_id.toString()+"";
		//url=url+"?last_id="+document.getElementById("lastID").value;
		xmlHttp.onreadystatechange=function(){
																		if (xmlHttp.readyState==4)
																		{
																				xmlHttpresponseText=xmlHttp.responseText
																				delete xmlHttp['onreadystatechange'];
																				xmlHttp = null;
																				var msie = ((navigator.appVersion.indexOf("MSie")!= -1||navigator.appVersion.indexOf("MSIE")!= -1)&&!window.opera)? true : false; 
																				if (msie) 
																				{
																					CollectGarbage();
																				}
																				if(getXMLContent("attendeeID",xmlHttpresponseText)!='0'){
																					var boxNo = document.getElementById('activeWindows').value;
																					boxNo=parseInt(boxNo)+1
																					if(boxNo<6&&checkBox(getXMLContent("chatID",xmlHttpresponseText),boxNo)){
																						document.getElementById('activeWindows').value=boxNo;
																						document.getElementById("attendee_id"+boxNo).value=getXMLContent("attendeeID",xmlHttpresponseText);
																						document.getElementById("chat_id"+boxNo).value=getXMLContent("chatID",xmlHttpresponseText);
																						document.getElementById("chatheader"+boxNo).innerHTML=getXMLContent("chattingWith",xmlHttpresponseText);
																						if(document.getElementById("attendee_id"+boxNo).value!='0'){
																							setTimeout("showChat('"+document.getElementById("attendee_id"+boxNo).value+"','"+document.getElementById("chat_id"+boxNo).value+"','"+boxNo+"')",500);	
																						}
																					}
																				}
																				queue--;
																		}
																}
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
}
function setAdminOnline(user_id)
{
	var xmlHttp;
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
    {
  	alert ("Your browser does not support AJAX!");
  	return;
    } 
	var url="/AJAX_Pages/setAdminOnline.asp";
	//url=url+"?q="+item;
	url=url+"?user_id="+user_id;
	//url=url+"&ip="+ip_address;
	//url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=function(){
																	if (xmlHttp.readyState==4)
																	{
																		delete xmlHttp['onreadystatechange'];
 																		xmlHttp = null;
 																		var msie = ((navigator.appVersion.indexOf("MSie")!= -1||navigator.appVersion.indexOf("MSIE")!= -1)&&!window.opera)? true : false; 
																			if (msie) 
																			{ CollectGarbage(); }
																	}
															}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}
function setAdminOffline(user_id)
{
	var xmlHttp;
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
    {
  	alert ("Your browser does not support AJAX!");
  	return;
    } 
	var url="/AJAX_Pages/setAdminOffline.asp";
	//url=url+"?q="+item;
	url=url+"?user_id="+user_id;
	//url=url+"&ip="+ip_address;
	//url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=function(){
																	if (xmlHttp.readyState==4)
																	{
																		delete xmlHttp['onreadystatechange'];
 																		xmlHttp = null;
 																		var msie = ((navigator.appVersion.indexOf("MSie")!= -1||navigator.appVersion.indexOf("MSIE")!= -1)&&!window.opera)? true : false; 
																			if (msie) 
																			{ CollectGarbage(); }
																	}
															}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}
function addMessage(chat_id,user_id,message)
{
	var xmlHttp;
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
    {
  	alert ("Your browser does not support AJAX!");
  	return;
    } 
	var url="/AJAX_pages/addMessage.asp";
	url=url+"?q="+message;
	url=url+"&chat_id="+chat_id;
	url=url+"&user_id="+user_id;
	//url=url+"&ip="+ip_address;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=function(){
																	if (xmlHttp.readyState==4)
																	{
																		delete xmlHttp['onreadystatechange'];
 																		xmlHttp = null;
 																		var msie = ((navigator.appVersion.indexOf("MSie")!= -1||navigator.appVersion.indexOf("MSIE")!= -1)&&!window.opera)? true : false; 
																			if (msie) 
																			{ CollectGarbage(); }
																	}
															}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}
function addIsTyping(chat_id,user_id)
{
	var xmlHttp;
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
    {
  	alert ("Your browser does not support AJAX!");
  	return;
    } 
	var url="/AJAX_pages/addIsTyping.asp";
	url=url+"?chat_id="+chat_id;
	url=url+"&user_id="+user_id;
	//url=url+"&ip="+ip_address;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=function(){
																	if (xmlHttp.readyState==4)
																	{
																		delete xmlHttp['onreadystatechange'];
 																		xmlHttp = null;
 																		var msie = ((navigator.appVersion.indexOf("MSie")!= -1||navigator.appVersion.indexOf("MSIE")!= -1)&&!window.opera)? true : false; 
																			if (msie) 
																			{ CollectGarbage(); }
																	}
															}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}
focusState=1;
window.onblur = function () {
 focusState=0;
}
function EvalSound(soundobj) {
  var thissound=document.getElementById(soundobj);
  thissound.Play();
}
function newExcitingAlerts() {  
focusState=1;
var oldTitle = document.title;    
var msg = "New Message!";
EvalSound('Audio1');
var timeoutId = setInterval(function() {        
									 document.title = document.title == msg ? ' ' : msg;    
									 }, 1000);    
window.onfocus = function() {
	focusState=1;
	clearInterval(timeoutId);        
	document.title = oldTitle;       
	window.onmousemove = null;    
};
}
function showChat(user_id,chat_id,boxNo)
{	
	if(queue<=maxqueue){
		queue++;
		var xmlHttp;
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
			alert ("Your browser does not support AJAX!");
			return;
		} 
		var url="/AJAX_Pages/chatInfo.asp?chat_id="+chat_id.toString()+"&r="+Math.random();
		url=url+"&user_id="+user_id.toString()+"";
		url=url+"&last_id="+document.getElementById("lastID"+boxNo).value;
		xmlHttp.onreadystatechange=function(){
																		if (xmlHttp.readyState==4)
																		{
																				xmlHttpresponseText=xmlHttp.responseText
																				delete xmlHttp['onreadystatechange'];
																				xmlHttp = null;
																				var msie = ((navigator.appVersion.indexOf("MSie")!= -1||navigator.appVersion.indexOf("MSIE")!= -1)&&!window.opera)? true : false; 
																				if (msie) 
																				{
																					CollectGarbage();
																				}																				
																				var autoScroll = divScroll.isScrollable(''+boxNo);
																				document.getElementById("chatbox"+boxNo).innerHTML=document.getElementById("chatbox"+boxNo).innerHTML+getXMLContent("theMessages",xmlHttpresponseText);
																				document.getElementById("chatIsTyping"+boxNo).innerHTML=getXMLContent("typingString",xmlHttpresponseText);
																				//var objDiv = document.getElementById("chatbox");
																				//objDiv.scrollTop = objDiv.scrollHeight;
																				if(autoScroll){
																					divScroll.scrollToEnd(''+boxNo);
																				}																				
																				if((document.getElementById("lastID"+boxNo).value!=getXMLContent("theLastID",xmlHttpresponseText))&&(focusState==0)){
																					newExcitingAlerts();
																				}
																				document.getElementById("lastID"+boxNo).value=getXMLContent("theLastID",xmlHttpresponseText)
																				setTimeout("showChat('"+user_id+"','"+chat_id+"','"+boxNo+"')",800)
																				queue--;
																		}
																}
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
}

function showRooms()
{	
	if(queue<=maxqueue){
		queue++;
		var xmlHttp;
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
			alert ("Your browser does not support AJAX!");
			return;
		} 
		var url="/AJAX_Pages/chatRooms.asp?last_id="+document.getElementById("lastID").value+"";
		//url=url+"&user_id="+user_id.toString()+"";
		//url=url+"?last_id="+document.getElementById("lastID").value;
		xmlHttp.onreadystatechange=function(){
																		if (xmlHttp.readyState==4)
																		{
																				xmlHttpresponseText=xmlHttp.responseText
																				delete xmlHttp['onreadystatechange'];
																				xmlHttp = null;
																				var msie = ((navigator.appVersion.indexOf("MSie")!= -1||navigator.appVersion.indexOf("MSIE")!= -1)&&!window.opera)? true : false; 
																				if (msie) 
																				{
																					CollectGarbage();
																				}
																				document.getElementById("lastID").value=getXMLContent("theLastID",xmlHttpresponseText)
																				var autoScroll = divScroll.isScrollable();
																				document.getElementById("chatbox").innerHTML=getXMLContent("theMessages",xmlHttpresponseText)+document.getElementById("chatbox").innerHTML;
																				//var objDiv = document.getElementById("chatbox");
																				//objDiv.scrollTop = objDiv.scrollHeight;
																				if(autoScroll){
																					divScroll.scrollToEnd();;
																				}
																				setTimeout("showRooms()",800)
																				queue--;
																		}
																}
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
} 

function getXMLContent(tagName,XMLString){
	theResponseText=XMLString.split("<"+tagName+">");
	theResponseText=theResponseText[1].split("</"+tagName+">");
	return theResponseText[0];
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Internet Explorer
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  
  }
catch (e)
  {
  
  try
    {
    // Firefox, Opera 8.0+, Safari
  	xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}