//---- preload images ----//
var aImages = new Array(aVisuals.length);
for (i = 0; i < aVisuals.length; i++) {

	aImages[i] = new Image(347, 347);
	aImages[i].src = aVisuals[i];
}				

var aPositions = new Array(8);
aPositions[0] = "0-0";
aPositions[1] = "1-0";
aPositions[2] = "2-0";
aPositions[3] = "0-1";
aPositions[4] = "1-1";
aPositions[5] = "2-1";
aPositions[6] = "0-2";
aPositions[7] = "1-2";

function randomRange(a_iMax) {

 	return Math.floor(a_iMax * (Math.random() % 1));
}

function shuffleArray(a_aArray) {
				
	var r, t, i;
    for (i = a_aArray.length - 1; i > 0; i--) {
        
        r = randomRange(i + 1);
        t = a_aArray[i];
        a_aArray[i] = a_aArray[r];
        a_aArray[r] = t;
    }
}


var hLoopTimeout  = null;			
var iVisualsPos   = null;
var iPositionsPos = null;
var sVisual       = null;
var sOldVisual    = aVisuals[0];

function loopIntro() {
	
	if (iPositionsPos == null || iPositionsPos >= aPositions.length) {
	
		//---- shuffle positions ----//
		shuffleArray(aPositions);
		iPositionsPos = 0;
		
		//---- pick new visual ----//
		do {
			if (iVisualsPos == null || iVisualsPos >= aVisuals.length) {
			
				//---- shuffle visuals ----//
				shuffleArray(aVisuals);
				iVisualsPos = 0;
			}
			
			sVisual = aVisuals[iVisualsPos++];
			
		} while (sVisual == sOldVisual);
		sOldVisual = sVisual;
	} 
	
	sNext = aPositions[iPositionsPos++];
	if (oBox = document.getElementById("box-" + sNext)) {
	
		oBox.style.backgroundImage = "url(" + sVisual + ")"; 
	}

	if (iPositionsPos == aPositions.length) {
	
		//---- show complete visual longer ----//
		hLoopTimeout = setTimeout("loopIntro()", iLoopTimeoutLong);
	} else {

		hLoopTimeout = setTimeout("loopIntro()", iLoopTimeout);
	}				
}


function linkOver(a_sVisual) {
	
	//---- clear timeout ----//
	clearTimeout(hLoopTimeout);
	
	//---- apply visual ----//
	for (i = 0; i < aPositions.length; i++) {
		
		if (oBox = document.getElementById("box-" + aPositions[i])) {
		
			oBox.style.backgroundImage = "url(" + a_sVisual + ")";
		}
	}
	
	//---- reset variables ----//
	shuffleArray(aPositions);
	iPositionsPos = aPositions.length;
	sOldVisual    = a_sVisual;
	iVisualsPos   = aVisuals.length;
}

function linkOut() {

	//---- set timeout ----//
	hLoopTimeout = setTimeout("loopIntro()", iLoopTimeout)
}

function debug(a_sText) {
	
	oDebug = document.getElementById("debug");
	oDebug.innerHTML = oDebug.innerHTML + a_sText + "<br />";
}
