var sid=null;

function init()
{
	new Ajax.Request(
	"/cometChat/Load",
	{
		method: 'post',
		onComplete: function(request)
		{
			sid=request.getResponseHeader('sid');
			$('log').innerHTML=request.responseText;
			observe();
		}
	});
}

function login()
{
	var name=encodeURIComponent($('line').value);

	if(name.replace(' ','').replace('　','').length==0)
	{
		alert("名前を入れてください…(;;)");
		$('line').focus();
	}
	else
	{
		new Ajax.Request(
		"/cometChat/Login;jsessionid="+sid,
		{
			method: 'post',
			parameters: 'name='+name,
			onSuccess: function(request)
			{
				Element.hide('login');
				Element.show('chat');
				$('message').focus();
			}
		});
	}
}

function observe()
{
	$('log').scrollTop=100000;
	new Ajax.Request(
	"/cometChat/Observe;jsessionid="+sid,
	{
		method: 'post',
		onSuccess: function(request)
		{
			var val=request.responseText;
			if(val!=null)
				$('log').innerHTML+=val;
			$('log').scrollTop=$('log').scrollTop+100;
			observe();
		}
	});
}

function say()
{
	var message=encodeURIComponent($('message').value);

	if(message.replace(' ','').replace('　','').length==0)
		return;

	new Ajax.Request(
	"/cometChat/Say;jsessionid="+sid,
	{
		method: 'post',
		parameters: 'message='+message,
		onComplete: function(request)
		{
			$('message').value='';
		}
	});
}

function disconnect()
{
	new Ajax.Request(
	"/cometChat/Disconnect;jsessionid="+sid,
	{
		method: 'post',
		onComplete: function(request)
		{
			Element.hide('chat');
			Element.show('login');
		}
	});
}

function key()
{
	if (document.all && event.keyCode==13)
	{
		commitKey(event.srcElement.id);
	}
}

function key2(e)
{
	var keyCode=e.keyCode!=0?e.keyCode:e.charCode;
	if(keyCode==13)
	{
		commitKey(e.target.id);
	}
}

function commitKey(id)
{
	if(id=='line')
		login();
	else if(id=='message')
	{
		say();
		$('message').value='';
	}
}

if (!document.all)
	window.document.onkeydown=key2;
window.onunload=disconnect;

