	function shobj(obj)
	{
		if ( arguments[1] == 'visible' || arguments[1] == 'hidden' )
			obj.style.visibility = arguments[1];
		else if ( obj.style.visibility == 'visible' )
			obj.style.visibility = 'hidden';
		else
			obj.style.visibility = 'visible';
	}
	function activateinput(o)
	{
		o.className = 'active';
		shobj(post_comment, 'visible');
	}
	function disactivateinput(o)
	{
		o.className = '';
	}
	function setOFOB(el)
	{
		document.getElementById(el).onfocus = function () {activateinput(this);};
		document.getElementById(el).OnFocus = function () {activateinput(this);};
		document.getElementById(el).onblur = function () {disactivateinput(this);};
		document.getElementById(el).OnBlur = function () {disactivateinput(this);};
	}
	function CreateXHR()
	{
		var xmlHttp;
		try { xmlHttp=new XMLHttpRequest(); }
		catch (e)
		{
			try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }
			catch (e)
			{
				try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
				catch (e) { return false; }
			}
		}
		return xmlHttp;
	}
	function XHROnStateChange()
	{
		if(xhr.readyState == 4)
		{
			if ( xhr.status == 200 )
			{
				var txt = xhr.responseText;
				var add = '';
				shobj(waiter, 'hidden');
				shobj(answer, 'visible');
				if ( 0+txt.substr(0, 1) == 0 )
				{
					answer.className = 'error';
					add = '<a onclick="ErrorRead();">OK</a>';
					DeactivateForm();
				}
				else
				{
					answer.className = 'success';
					add = '<a onclick="AllDone();">OK</a>';
				}
				txt = txt.substr(2, txt.length-2);
				if ( txt == '' )
					txt = unexpectedError;
				txt += add;
				answer.innerHTML = txt;
			}
			else
			{
				shobj(waiter, 'hidden');
				shobj(answer, 'visible');
				answer.className = 'error';
				DeactivateForm();
				answer.innerHTML = unexpectedError+'<a onclick="ErrorRead();">OK</a>';
			}
		}
	}
	function ErrorRead()
	{
		shobj(answer, 'hidden');
		ActivateForm();
	}
	function AllDone()
	{
		shobj(waiter, 'hidden');
		shobj(answer, 'hidden');
		shobj(post_comment, 'hidden');
		document.getElementById('thePostLink').onclick = function () {return false};
		document.getElementById('thePostLink').OnClick = function () {return false};
		document.getElementById('thePostLink').className = 'used';
	}
	function DeactivateForm()
	{
		inputs = post_comment.getElementsByTagName('input');
		for ( i = 0; i < inputs.length; i++ )
			inputs[i].disabled = true;
		inputs = post_comment.getElementsByTagName('textarea');
		for ( i = 0; i < inputs.length; i++ )
			inputs[i].disabled = true;
	}
	function ActivateForm()
	{
		inputs = post_comment.getElementsByTagName('input');
		for ( i = 0; i < inputs.length; i++ )
			inputs[i].disabled = false;
		inputs = post_comment.getElementsByTagName('textarea');
		for ( i = 0; i < inputs.length; i++ )
			inputs[i].disabled = false;
	}
	function PostComment()
	{
		xhr = CreateXHR();
		var params = getFormDataForPost();
		
		//shobj(post_comment, 'hidden');
		shobj(waiter, 'visible');
		
		xhr.onreadystatechange = XHROnStateChange;
		xhr.open('POST', postURL+'?rand='+Math.random(), true);
		xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xhr.setRequestHeader('Content-Length', params.length);
		xhr.setRequestHeader('Connection', 'close');
		xhr.send(params);
	}
	function getFormDataForPost()
	{
		var ret = 'comment_name='+escape(document.getElementById('comment_name').value) +
			'&comment_secure='+escape(document.getElementById('comment_secure').value) +
			'&comment_comments='+escape(document.getElementById('comment_comments').value);
		if ( document.getElementById('comment_game') )
			ret += '&comment_game='+escape(document.getElementById('comment_game').value) +
				'&comment_topic='+escape(document.getElementById('comment_topic').value);
		else if ( document.getElementById('comment_article') )
			ret += '&comment_article='+escape(document.getElementById('comment_article').value);
		else
			ret += '&comment_casino='+escape(document.getElementById('comment_casino').value);
		return ret;
	}
	function InitForm()
	{
		var theform = document.getElementById('post_comment_holder').innerHTML;
		document.getElementById('post_comment_holder').innerHTML = theform.substr(4, theform.length - 7);
		document.getElementById('thePostLink').onclick = function () {shobj(document.getElementById('post_comment'))};
		document.getElementById('thePostLink').OnClick = function () {shobj(document.getElementById('post_comment'))};
		setOFOB('comment_name');
		setOFOB('comment_comments');
		setOFOB('comment_secure');
		shobj(document.getElementById('post_comment'), 'hidden');
		document.getElementById('post_comment').onsubmit = function () {PostComment();return false;};
		document.getElementById('post_comment').OnSubmit = function () {PostComment();return false;};
	}
	function InitWaiter()
	{
		var thewaiter = document.getElementById('waiter_holder').innerHTML;
		document.getElementById('waiter_holder').innerHTML = thewaiter.substr(4, thewaiter.length - 7);
		shobj(document.getElementById('waiter'), 'hidden');
	}
	function InitAll()
	{
		InitForm();
		InitWaiter();
		shobj(document.getElementById('answer'), 'hidden');
	}

