Ajax.Responders.register({
	onCreate: function() {
		if ($('busy') && Ajax.activeRequestCount>0) {
			Element.show('busy');
			//Effect.Appear('busy', {duration:0.5,queue:'end'});

			if (document.all) {
				var iebody = (document.compatMode && document.compatMode!="BackCompat") ? document.documentElement : document.body;
				$('busy').style.top = iebody.scrollTop + 'px';
			}
			// window.pageYOffset for Gecko
		}
	},
	onComplete: function() {
		if ($('busy') && Ajax.activeRequestCount==0) {
			Element.hide('busy');
			//Effect.Fade('busy', {duration:0.5,queue:'end'});
		}
	}
});

Ajax.Responders.register({
  // log the beginning of the requests
  onCreate: function(request, transport) {
    new Insertion.Bottom('debug', '[' +
    new Date().toString() + '] accessing '
    + request.url + '')
  },

  // log the completion of the requests
  onComplete: function(request, transport) {
    new Insertion.Bottom('debug',
    'http status: ' + transport.status
    + '' + ''
    + transport.responseText.escapeHTML() + '')

  }

});

function chb_others(prep_name, th)
{
	var i, len = prep_name.length;
	var els = th.form.elements;

	for (i = 0; i < els.length; i++) {
		if (els[i].name!=th.name && els[i].name.substr(0,len)==prep_name) {
			els[i].checked = th.checked;
		}
	}

	return true;
}

function chb_main(prep_name, main_name, th)
{
	var i, len = prep_name.length;
	var els = th.form.elements;
	var el_main = null;
	var cnt_all = 0, cnt_ch = 0;

	for (i = 0; i < els.length; i++) {
		if (els[i].name == main_name) el_main = els[i];
		else
		if (els[i].name.substr(0,len) == prep_name) {
			cnt_all++;
			if (els[i].checked) cnt_ch++;
		}
	}

	if (el_main) el_main.checked = (cnt_all == cnt_ch);
	return true;
}


function hide_settings(element_id)
{
	setTimeout(function() { document.getElementById('element_' + element_id + '_settings').innerHTML = ''; }, 10);
}

//-------------------------------

GamesScroll = function()
{
	var in_action = false;
	var curr_ind = 0;
	var curr_pos = 0;
	var next_pos = 0;
	var pos_add = 0;
	var interval = 0;
	var el = null;

	function scroll_it()
	{
		curr_pos += pos_add;

		if ((pos_add<0 && curr_pos<=next_pos) || (pos_add>0 && curr_pos>=next_pos))
		{
			curr_pos = next_pos;
			clearInterval(interval);
			interval = 0;
			in_action = false;

			document.getElementById('games_scroll_prev').style.display = (curr_pos == 0) ? 'none' : '';
			document.getElementById('games_scroll_next').style.display = (curr_pos == -(2200-220)) ? 'none' : '';
		}
		else
		{
			pos_add *= 1.2;
		}

		el.style.left = Math.round(curr_pos) + 'px';
	}

	function scroll_to(ind)
	{
		el = document.getElementById('games_scroll');

		in_action = true;
		curr_ind = ind;

		for (var i = 0; i < 10; i++) {
			document.getElementById('gs_' + i).style.backgroundPosition = (i==ind ? '0 -9px' : '0 0');
		}

		next_pos = -(ind * 220);
		pos_add = ((curr_pos-next_pos > 0) ? -15 : 15);
		interval = setInterval(scroll_it, 20);
	}

	return {
		prev: function()
		{
			if (in_action || curr_ind<=0) return false;

			scroll_to(curr_ind - 1);
			return false;
		},

		next: function()
		{
			if (in_action || curr_ind>=9) return false;

			scroll_to(curr_ind + 1);
			return false;
		},

		go: function(ind)
		{
			if (in_action) return false;

			scroll_to(ind);
			return false;
		}
	}
}();
