var err_timeout;
var active_requests = 0;

function stdfailure()
{
	splash_error("Unable to contact server");
}
function cto()	// clear time-out
{
	if(err_timeout)
	{
		clearTimeout(err_timeout);
		err_timeout = null;
	}
}
function hide_error()
{
	$('error_msg').style.display = 'none';
	cto();
}
function splash_error(msg)
{
	var em = document.getElementById('error_msg');

	em.innerHTML = msg;
	cto();
	em.style.display = 'block';
	err_timeout = setTimeout(hide_error, 5000);
}

function commanize(e)
{
	e.value = e.value.replace(/(\d)(\d{3})$/, '$1,$2')
}
function commanize2(e)
{
	e.innerHTML = e.innerHTML.replace(/(\d)(\d{3})$/, '$1,$2')
}
function numbers_only(t, e)
{
	var keynum;
	var keychar;
	var numcheck;

	if(window.event) // IE
		keynum = e.keyCode;
	else if(e.which) // Netscape/Firefox/Opera
		keynum = e.which;
	if(keynum == 0xd)
		t.blur();
	else if(keynum == null || keynum == 8)
		return true;
	keychar = String.fromCharCode(keynum);
	numcheck = /\d/;
	return numcheck.test(keychar);
}
function proceed_post(bkgfn)
{
//	new Ajax.Updater('error_msg', '/game/',
	new Ajax.Request('/game/',
	{
		method: 'post',
		asynchronous: true,
		evalJSON: false,
		evalJS: false,
		parameters: { time: new Date().getTime() },	// for stupid browsers that cache POST requests
		on404: function() {
				window.location = "/game/";
		},
		onSuccess: function(transport) {
			var rsp = transport.responseText;
//			var error_re = /^proceed/;

//			if(rsp.match(error_re))
//			{
////				window.location.reload();
//				window.location = "/game/";
//			}
//			else
			{
				$("wrap_all").update(rsp);
				$("header").style.background = 'url(/static/' + bkgfn + '.jpg)';
			}
		},
		onFailure: stdfailure
	});
}

Ajax.Responders.register({
	onCreate: function() {
		active_requests++;
		$("pacifier").style.display = 'block';
	},
	onComplete: function() {
		if(--active_requests == 0)
			$("pacifier").style.display = '';
	}
});
