<!--
// Chat
// Copyright 2006 by Stupar Alexandru.
// All rights reserved.

function GetElement(elementname)
{
	var IE4 = ((document.all) && (!document.getElementById)) ? true : false;
	var NS4 = (document.layers) ? true : false;
	var IE5 = ((document.all) && (document.getElementById)) ? true : false;
	var N6 = ((document.getElementById) && (!document.all)) ? true : false;		

	switch (true)
	{
		case IE4:
			return(eval('document.all.' + elementname));
			break;	
		case NS4:			
			return(eval('document.layers.' + elementname));
			break;
		case IE5:
			return(eval('document.getElementById(\'' + elementname + '\')'));
			break;
		case N6:
			return(eval('document.all.' + elementname));			
			break;	
								
	}
	
}

function NewRequestObject() 
{	
    var request;
        
    if (window.XMLHttpRequest)
    {
  		request = new XMLHttpRequest();
  		
  		if (request.overrideMimeType) 
  		{
        	request.overrideMimeType('text/xml');
        	
  		}
                
        return request;
  		
    }
	else if (window.ActiveXObject) 
	{
   		var versions = new Array("Microsoft.XmlHttp", "MSXML2.XmlHttp", "MSXML2.XmlHttp.3.0", "MSXML2.XmlHttp.4.0", "MSXML2.XmlHttp.5.0");

   		for (var i = versions.length - 1; i >= 0; i--) 
   		{
      		try {
    		     request = new ActiveXObject(versions[i]);
         		 return request;
         		 
       		    } catch(e) {}
       		    
   		}
   		
	}
	throw new Error('Browser-ul nu suporta AJAX XMLHTTP!');
    
}

function SendRequest(mode, action, user_id_1, user_id_2, direction) 
{
	http = eval('HTTP' + direction); 
		
	var timestamp = new Date()
		
    http.open('get', GetElement('www_path').value + 'chat/process.php?mode=' + mode + '&action=' + action + '&user_id_1=' + user_id_1 + '&user_id_2=' + user_id_2 + '&diff=' + timestamp.getTime());
    
    http.onreadystatechange = function(){HandleResponse(direction)};
    
    http.send(null);
    
}

function HandleResponse(direction) 
{	
	http = eval('HTTP' + direction); 
	
	if (http.readyState == 4)
    {
        var response = http.responseText;        
        var update = new Array();
		var test;
        var fieldname;
        var fieldresponse;
        
        sloc = response.indexOf(':');
        test = response.substring(1, sloc);
        
        if(sloc > -1) 
        {
        	if (test.indexOf(';') == -1)
        	{
		    	fieldname = response.substring(1, sloc);
		    	fieldresponse = response.substring(sloc + 1, response.length);
		    	
		    	switch(fieldname)
		    	{
		        	case 'chatspace': 
		        		GetElement(fieldname).innerHTML += fieldresponse;
		        		break;	
		        	case 'userslist':
		        		GetElement(fieldname).innerHTML = fieldresponse;
		        		break;                        		
		         	case 'chatlaunch':
		        		GetElement(fieldname).value = fieldresponse;
		        		break;           		
		         	case 'rtilping':
		        		GetElement(fieldname).value = fieldresponse;
		        		break;             	
		        			
		    	}
        	
        	}
            
        }
        
    }    
    
}

function SaveField(fieldname)
{
	return GetElement(fieldname).value;
	
}

function ClearField(fieldname)
{
	GetElement(fieldname).value = "";
	
}

function SendMessage(keycode, enteronly)
{	
	if ((enteronly == 0) || ((window.event && window.event.keyCode == keycode) && (enteronly == 1) && (keycode > 0)) || ((!window.event && arguments.callee.caller.arguments[0].keyCode == keycode) && (enteronly == 1) && (keycode > 0)))
	{
		if (SaveField('chatmessage') != "")
		{		
			SendRequest('chatspace', SaveField('chatmessage'), GetElement('user_id_1').value, GetElement('user_id_2').value, 'In'); 
			
			ClearField('chatmessage');		
			
			document.getElementById('chatspace').scrollTop = GetElement('chatspace').scrollHeight;
		
		}
		
	}
	
}

function StartTimerEvents(counter, every)
{	
    counter = counter - 1;   
    
    if (counter == 0)
    {
    	RequestOnTime();
    
       	setTimeout("StartTimerEvents(" + every + ", " + every + ")", 1000);
       	
    }
    else
    {
    	setTimeout("StartTimerEvents(" + counter + ", " + every +  ")", 1000);
    		
    }    

}
        
function RequestOnTime()
{	
	SendRequest('usersmsg', 'try', GetElement('user_id_1').value, GetElement('user_id_2').value, 'Out'); 

	SendRequest('ping', 'try', GetElement('user_id_1').value, GetElement('user_id_2').value, 'Events'); 
	
	document.getElementById('chatspace').scrollTop = GetElement('chatspace').scrollHeight;
	
}

function StartRTI(counter, every)
{
    counter = counter - 1;   
    
    if (counter == 0)
    {
    	SendRequest('rti', 'try', GetElement('rti_my_user_id').value, 'try', 'Events'); 
    	
    	SendRequest('rtiping', 'try', GetElement('rti_my_user_id').value, 'try', 'Events'); 
    	
    	if ((GetElement('chatlaunch').value > 0) && (GetElement('chatstarted').value == 0))
    	{  	  		
    		if  (GetElement('chatlive').value == 0)
    		{    			
    			window.location = GetElement('www_path').value + 'popups/chat.php?popup=0&inviter_user_id=' + GetElement('chatlaunch').value ,'Max', 'toolbar=no,width=500,height=300,status=no,scrollbars=yes,resize=yes';

    		}
    		else
    		{
    			window.open(GetElement('www_path').value + 'popups/chat.php?popup=1&inviter_user_id=' + GetElement('chatlaunch').value ,'Max', 'toolbar=no,width=500,height=300,status=no,scrollbars=yes,resize=yes');
    			
    		}
    		
    		GetElement('chatlaunch').value = 0;   	
    		GetElement('chatstarted').value = 1; 
    		   	
    	}
    	
       	setTimeout("StartRTI(" + every + ", " + every + ")", 1000)
    
    }
    else
    {
    	setTimeout("StartRTI(" + counter + ", " + every +  ")", 1000)
    		
    }

}

//-->
