var g_Posting = false;
var g_Refresh = false;

var last_users_list = new Array();

//------------------------------------------------------
// Function to Disable/Enable input fields
//------------------------------------------------------
function DisableInput(type)
{
	disableThis = document.getElementsByTagName("input");
	for (i=0; i< disableThis.length; i++)
	{
		disableThis[i].disabled = type;
	}
}

//------------------------------------------------------
// Request function for get possible new messages
//------------------------------------------------------
function GetUsers()
{
	new Request.JSON(
	{
		url : 'chatbox.php',
		method : 'post',
		data : { 'chatbox_user' : 1 },
		onSuccess : function(users_list)
		{
			var find = true;
			var index = 0;
			var indexlast = 0;
			
			if( last_users_list.length != users_list.length )
			{
				find = false;
			}
			else
			{
				for( indexlast = 0 ; indexlast <= (last_users_list.length) && find == true ; indexlast++ )
				{
					find = false;
					for( index = 0 ; index <= (users_list.length) ; index++ )
					{
						if( users_list[index] == last_users_list[indexlast] )
						{
							find |= true;
						}
					}
				}
			}
			if( find == false )
			{
			//------------------------------------------------------------------------
				new Request(
				{
					url : 'chatbox.php',
					method : 'post',
					data : { 'refresh' : 1 },
					onSuccess : function(chatbox_data)
					{
						$('chatbox').set('html', chatbox_data);
					}
				}).send();
			//------------------------------------------------------------------------
				last_users_list = users_list;				
			}
		}
	}).send();
}

//------------------------------------------------------
// Request function for get possible new messages
//------------------------------------------------------
function GetMessages()
{
var users_count;
var users_list = new Array();
	
	var myRequest = new Request(
	{
		url: 'chatbox.php',
		method: 'get',
		data:
		{
			'ajax': '1',
			'last_msg': LastMsg
		},
		onSuccess: RequestResponse
	}).send();
	$('loading').setStyle('display', '');
}

//------------------------------------------------------
// Request function for send new message
//------------------------------------------------------
function SendMessage()
{
	var myRequest = new Request(
	{
		url: 'chatbox.php',
		method: 'post',
		data:
		{
			'ajax': '1',
			'last_msg': LastMsg,
			'form_user': $('form_user').value,
			'req_username': $('req_username').value,
			'req_email': $('req_email').value,
			'email': $('email').value,
			'req_message': $('req_message').value
		},
		onSuccess: RequestResponse
	}).send();
	$('loading').setStyle('display', '');

	DisableInput(true);
	g_Posting = true;
}

//------------------------------------------------------
// Get the response server
//------------------------------------------------------
function RequestResponse(Response)
{
	$('loading').setStyle('display', 'none');
	var LastMsgInfo = '';
	LastMsgInfo = Response.substring(0, 10);

	if( LastMsgInfo == 'error:chat' )
	{
		error = Response.substring(10, Response.length);
		var chatbox = $('chatbox');
		chatbox.innerHTML = chatbox.innerHTML + error + '\n';
	}
	else if( LastMsgInfo == 'PostedInDB' )
	{
		GetMessages();
	}
	else if( LastMsgInfo != LastMsg )
	{
		LastMsg = LastMsgInfo;
		messages = Response.substring(10, Response.length);
		var chatbox = $('chatbox');
		chatbox.innerHTML = chatbox.innerHTML + messages + '\n';
	}
//	else if( g_Refresh == true )
//	{
//		g_Refresh = false;
//	}
	
	if( g_Posting == true )
	{
		( function() { DisableInput(false); } ).delay(500);
		if (LastMsgInfo != 'error:chat')
			$('req_message').value = '';

		document.formulaire.req_message.focus();
		g_Posting = false; 
	}

	if( $('autoscroll').checked == true ){$('chatbox').scrollTop = $('chatbox').scrollHeight;}
}

