chat_user_link='/login._replace_/';

$( document ).ready(
	function() {
		if (chat_url)
		{
			lc_chat.getOnliners();
			chatTimer=setInterval(function(){lc_chat.updateChatData();},5000);
			chatTimer=setInterval(function(){lc_chat.getOnliners();},50000);
		}
	}
);


lc_chat={
	last_id:0,
	request:false,
	limit:200,
	current_text:'',
	send_msg:function(form)
	{
		if (lc_chat.request) return false;
		if ($('#msg_input').value=='') return false;
		sendData=$(form).serialize()+'&id='+lc_chat.last_id+'&action=post';
		lc_chat.current_text=$('#msg_input').value;
		$('#msg_input').value='';
		while(lc_chat.request){}
		lc_chat.request=true;
		$.ajax({
			url:chat_url,
			type: 'post',
			data: sendData,
			dataType: 'json',
			success:function(result){
				if (lc_chat.checkResponse(result))
				{
					lc_chat.setPosts(result.posts);
					$('#msg_input').val('').focus();
				}
			},
			complete:function(){lc_chat.request=false;}
			});
		return false;
	},

	updateChatData:function()
	{
		if (lc_chat.request) return false;
		lc_chat.request=true;
		$.ajax({
			url:chat_url,
			type: 'post',
			data:'id='+lc_chat.last_id+'&action=get&token='+token,
			dataType: 'json',
			success:function(result){
				if (lc_chat.checkResponse(result))
				{
					lc_chat.setPosts(result.posts);
				}
			},
			complete:function(){lc_chat.request=false;}
		});
	},
	
	getOnliners:function()
	{
		$.ajax({
			url:chat_url,
			type: 'post',
			data:'action=getOnliners&token='+token,
			dataType: 'json',
			success:function(result) {
				if (lc_chat.checkResponse(result))
				{
					lc_chat.setOnliners(result.onliners);
				}
			}
		});
	},

	checkResponse:function(result)
	{
		if (result.error)
		{
			alert(result.error);
			$('msg_input').value=lc_chat.current_text;
			return false;
		}
		return true;
	},
	
	setOnliners:function(users)
	{
		$('#onliners').html('');
		$(users).each(function(key, value){
			$('<a href="'+chat_user_link.replace(/_replace_/, value.user_id)+'" target="_blank">'+value.login+'</a>').appendTo($('#onliners'));
		});
	},

	setPosts:function(posts)
	{
		$(posts).each(function(key,value){lc_chat.setPost(value)});
		lc_chat.removeOldMessages();
	},

	setPost:function(post)
	{
		user_login=post.login.replace(/\&/g,'&amp;').replace(/\</g,'&lt;').replace(/\>/g,'&gt;');
		login=$('<a href="#">'+user_login+'</a>');
		login.click(function(){lc_chat.setName(post.login);return false;});
		if (user_login==chat_user) login.addClass('own');
		//new Element('div', {html:'['+post.time+'] '+post.login+': '+post.text}).inject($('mainChat'))
		div=$('<div>');
		if (post.info!=1)
		{
			$('<span>['+post.time+'] </span>').appendTo(div);
			login.appendTo(div);
			$('<span>&gt; '+post.text+'</span>').appendTo(div);
		}
		else
			$('<span>'+post.text+'</div>').appendTo(div);
			
		div.appendTo($('#mainChat'));
		lc_chat.last_id=post.id;
		$('#mainChat').scrollTop($('#mainChat').height());
	},
	
	removeOldMessages:function()
	{
		items=$('#mainChat').children('div');
		if ((count=items.length)>lc_chat.limit)
		{
			for(i=0;i<(count-lc_chat.limit);i++)
			{
				items[i].remove();
			}
		}
	},
	
	setName:function(login)
	{
		$('#msg_input').val(login+': '+$('#msg_input').val()).focus();
	}
}