var naam_huidige_gebruiker = '';
var chat_line;
var chatbox;
var today;
var last_id =1;
var url = 'ajax_insert_chatline.php';
var target = 'chatbox';
var timerID = 0;
var abort_ophalen = 0;
var interval = 3000; // 3 seconde
var request_bezig = 0;
var eerste_keer = 1;

function init_chat()
{
	chat_line = document.getElementById('chat_line');
	chatbox = document.getElementById('chatbox');
	//$('chat_naam_gebruiker').value = '';
	if( $('chat_naam_gebruiker').value != '' )
	{
		naam_huidige_gebruiker = $('chat_naam_gebruiker').value;
	}
	periodetimer();
	setTimeout( "vertraag( 10000 )", 120000 ); // set 10 seconde over 2 minuten
}
function vertraag( vertraging )
{
	interval = vertraging;
	if( vertraging == 3000 )
	{
		setTimeout( "vertraag( 10000 )", 120000 ); // set 10 seconde over 2 minuten
	}
	if( vertraging == 10000 )
	{
		setTimeout( "vertraag( 60000 )", 300000 ); // set 2 minuten over 5 minuten
	}
	if( vertraging == 120000 )
	{
		setTimeout( "vertraag( null )", 7200000 ); // set null over 1 uur
	}
	periodetimer()
}
function periodetimer()
{
	if(timerID)
	{
		clearTimeout(timerID);
		clockID  = 0;
	}
	if ( request_bezig == 0 )
	{
		request_bezig = 1;
		var pars = 'last_id='+last_id;
		if ( eerste_keer == 1)
		{
			d = new Date();
			localTime = d.getTime();
			localOffset = d.getTimezoneOffset();
			pars += '&timezone='+localOffset;
			eerste_keer= 0
		}
		var myAjax = new Ajax.Request(url, {
			method: 'get', 
			parameters: pars,
			onSuccess : function(t) {
			   apply_regels ( t, 'r' );
			 }
		});
	}
	timerID = setTimeout("periodetimer()", interval);
}
function submit_regel ( chatbox,tekst, time )
{
	if ( naam_huidige_gebruiker == '' )
	{
		alert ( 'Change your name first!' );
	} else
	{
		request_bezig = 1;
		abort_ophalen = 1;
		var pars = 'name='+escape(naam_huidige_gebruiker)+'&text='+escape(tekst)+'&last_id='+last_id;
		var myAjax = new Ajax.Request(url, {
			method: 'get', 
			parameters: pars,
			onSuccess : function(t) {
			   apply_regels ( t, 'w' );
			 }
		});
		last_contact = (new Date().getTime());
		//apply_regel ( chatbox, naam_huidige_gebruiker, tekst );
		chat_line.value = '';
	}
	vertraag( 3000 );
	  
}
function apply_regels (t, mode)
{
	if ( abort_ophalen == 1 && mode == 'r')
		abort_ophalen = 0;
	else
	{
		data = t.responseText.evalJSON();
		
		for ( var i = 0; i < data.length; i++ )
		{
			chatregel = data[i];
			apply_regel ( chatbox, chatregel.naam, chatregel.tekst, chatregel.tijd );		
			last_id = chatregel.id;
	
		}
		h = chatbox.scrollHeight+100;
		chatbox.scrollTop = h;
		request_bezig = 0;
		abort_ophalen = 0;
	}
}

function apply_regel ( chatbox, naam, tekst, tijd )
{
	var chat_regel = document.createElement ( 'p' );
	Element.addClassName(chat_regel, 'chat_regel');

	var chat_naam = document.createElement ( 'span' );
	//chat_naam.setAttribute( 'className', 'chat_naam' );
	
	Element.addClassName(chat_naam, 'chat_naam');
	var chat_naam_inhoud = document.createTextNode( '['+tijd+'] <'+naam+'> ');
	chat_naam.appendChild ( chat_naam_inhoud );
	chat_regel.appendChild ( chat_naam );

	var chat_tekst = document.createElement ( 'span' );
	Element.addClassName(chat_tekst, 'chat_tekst');
	var chat_tekst_inhoud = document.createTextNode(tekst);
	chat_tekst.appendChild ( chat_tekst_inhoud );
	chat_regel.appendChild ( chat_tekst );
	chatbox.appendChild ( chat_regel );
	
}
function verander_naam ( naam )
{
	naam_huidige_gebruiker = naam;
	$('chat_naam_gebruiker').style.backgroundColor='#FFFFCC';
	var myAjax = new Ajax.Request('ajax_verander_naam.php', { method: 'get', parameters: 'name='+escape(naam_huidige_gebruiker) } );
	vertraag( 3000 );
}
