/*
 * requires: main.js, member_logo_list.js
 */

var mlogos_slots = 5;

var mlogos_ls_counter;
var mlogos_used;
var mlogos_cur_idx;
var mlogos_slot_lidx;

var mlogos_preloads;

function mlogos_set_ls_timeout()
{
	setTimeout("mlogos_little_step();", 150);
}

function mlogos_set_bs_timeout()
{
	setTimeout("mlogos_big_step();", 3000);
}

function mlogos_unmark_used()
{
	var i, idx;

	for (i=0; i<mlogos_slots; i++) {
		idx = mlogos_slot_lidx[i];
		mlogos_used[idx] = false;
	}
}

function mlogos_little_step()
{
	var lslot;
	var displ;
	var fence;

	lslot = document.getElementById('logo_slot_'+mlogos_ls_counter);
	displ = rand(mlogos_list.length) - mlogos_ls_counter;

	mlogos_cur_idx = (mlogos_cur_idx + displ) % mlogos_list.length;
	fence = mlogos_cur_idx;

	while (mlogos_used[mlogos_cur_idx]) {
		++mlogos_cur_idx;
		if (mlogos_cur_idx >= mlogos_list.length) mlogos_cur_idx = 0;
		if (mlogos_cur_idx == fence) {
			alert('Error!');
			return;
		}
	}

	lslot.src = mlogos_list[mlogos_cur_idx][1];
	mlogos_used[mlogos_cur_idx] = true;
	mlogos_slot_lidx[mlogos_ls_counter] = mlogos_cur_idx;

	if (++mlogos_ls_counter >= mlogos_slots) {
		mlogos_unmark_used();
		mlogos_set_bs_timeout();
	} else {
		mlogos_set_ls_timeout();
	}
}

function mlogos_big_step()
{
	var i;

	for (i=0; i<mlogos_list.length; i++) {
		mlogos_used[i] = false;
	}

	mlogos_ls_counter = 0;
	mlogos_cur_idx = 0;
	
	mlogos_little_step();
}


function mlogos_init()
{
	var i;
	var ml;

	/* Check that the logos are actually displayed */
	ml = document.getElementById('member_logos');
	if (!ml) return;

	mlogos_used = Array();
	for (i=0; i<mlogos_list.length; i++) {
		mlogos_used[i] = false;
	}

	/* preload all images */
	mlogos_preloads = new Array();

	for (i=0; i<mlogos_list.length; i++) {
		var img = new Image();
		img.src = mlogos_list[i][1];
		mlogos_preloads[i] = img;
	}

	mlogos_slot_lidx = Array();

	mlogos_set_bs_timeout();
}

page_onload_register(mlogos_init);
