//Popup Pix Static Page Script
//previous version 080804
//current version 092107
//copyright © 2004 Hal Barwood & Finite Arts

//..............................................................................

//globals...
popinterval = new Array(12);
popspeed = new Array(300, 900, 1300, 1700, 2300, 500, 1000, 1500, 700, 1900, 1100, 2100);
imagename = new Array('tlc', 'tlm', 'trm', 'trc', 'mlc', 'mlm', 'mrm', 'mrc', 'blc', 'blm', 'brm', 'brc');
imagelist = new Array(54, 60, 45, 55, 29, 43, 46, 51, 34, 17, 36, 52);
clickinterval = new Array(3);

selectrange = 62;
cyclecount = 80;

pathstring = "Images_Home/";
namestring = "fpix_";

//..............................................................................

//start the whole thing up...
window.onload = startpulse;

//popup tlc image...
function pop_tlc()
{
	//randomly pick an image...
	pickimage(0);

	//change display time...
	varypulse(0);

	//force face image if chosen...
	if (imagelist[0] < 12)
	{
		//set tlc face tile...
		imagelist[0] = 0;	
	}

	//set new pulse...
	popinterval[0] = setInterval("pop_tlc()", popspeed[0]);
	
	//place tile onscreen...
	document[imagename[0]].src = pathstring + namestring + imagelist[0] + ".jpg";		
}

//popup tlm image...
function pop_tlm()
{
	pickimage(1);
	varypulse(1);
	if (imagelist[1] < 12) { imagelist[1] = 1; }
	popinterval[1] = setInterval("pop_tlm()", popspeed[1]);
	document[imagename[1]].src = pathstring + namestring + imagelist[1] + ".jpg";		
}

//popup trm image...
function pop_trm()
{
	pickimage(2);
	varypulse(2);
	if (imagelist[2] < 12) { imagelist[2] = 2; }
	popinterval[2] = setInterval("pop_trm()", popspeed[2]);
	document[imagename[2]].src = pathstring + namestring + imagelist[2] + ".jpg";		
}

//popup trc image...
function pop_trc()
{
	pickimage(3);
	varypulse(3);
	if (imagelist[3] < 12) { imagelist[3] = 3; }
	popinterval[3] = setInterval("pop_trc()", popspeed[3]);
	document[imagename[3]].src = pathstring + namestring + imagelist[3] + ".jpg";		
}

//popup mlc image...
function pop_mlc()
{
	pickimage(4);
	varypulse(4);
	if (imagelist[4] < 12) { imagelist[4] = 4; }
	popinterval[4] = setInterval("pop_mlc()", popspeed[4]);
	document[imagename[4]].src = pathstring + namestring + imagelist[4] + ".jpg";		
}

//popup mlm image...
function pop_mlm()
{
	pickimage(5);
	varypulse(5);
	if (imagelist[5] < 12) { imagelist[5] = 5; }
	popinterval[5] = setInterval("pop_mlm()", popspeed[5]);
	document[imagename[5]].src = pathstring + namestring + imagelist[5] + ".jpg";		
}

//popup mrm image...
function pop_mrm()
{
	pickimage(6);
	varypulse(6);
	if (imagelist[6] < 12) { imagelist[6] = 6; }
	popinterval[6] = setInterval("pop_mrm()", popspeed[6]);
	document[imagename[6]].src = pathstring + namestring + imagelist[6] + ".jpg";		
}

//popup mrc image...
function pop_mrc()
{
	pickimage(7);
	varypulse(7);
	if (imagelist[7] < 12) { imagelist[7] = 7; }
	popinterval[7] = setInterval("pop_mrc()", popspeed[7]);
	document[imagename[7]].src = pathstring + namestring + imagelist[7] + ".jpg";		
}

//popup blc image...
function pop_blc()
{
	pickimage(8);
	varypulse(8);
	if (imagelist[8] < 12) { imagelist[8] = 8; }
	popinterval[8] = setInterval("pop_blc()", popspeed[8]);
	document[imagename[8]].src = pathstring + namestring + imagelist[8] + ".jpg";		
}

//popup blm image...
function pop_blm()
{
	pickimage(9);
	varypulse(9);
	if (imagelist[9] < 12) { imagelist[9] = 9; }
	popinterval[9] = setInterval("pop_blm()", popspeed[9]);
	document[imagename[9]].src = pathstring + namestring + imagelist[9] + ".jpg";		
}

//popup brm image...
function pop_brm()
{
	pickimage(10);
	varypulse(10);
	if (imagelist[10] < 12)	{ imagelist[10] = 10; }
	popinterval[10] = setInterval("pop_brm()", popspeed[10]);
	document[imagename[10]].src = pathstring + namestring + imagelist[10] + ".jpg";		
}

//popup brc image...
function pop_brc()
{
	pickimage(11);
	varypulse(11);
	if (imagelist[11] < 12)	{ imagelist[11] = 11; }
	popinterval[11] = setInterval("pop_brc()", popspeed[11]);
	document[imagename[11]].src = pathstring + namestring + imagelist[11] + ".jpg";		
}

//..............................................................................

//start image-switching pulse...
function startpulse()
{
	popinterval[0] = setInterval("pop_tlc()", popspeed[0]);
	popinterval[1] = setInterval("pop_tlm()", popspeed[1]);
	popinterval[2] = setInterval("pop_trm()", popspeed[2]);
	popinterval[3] = setInterval("pop_trc()", popspeed[3]);
	popinterval[4] = setInterval("pop_mlc()", popspeed[4]);
	popinterval[5] = setInterval("pop_mlm()", popspeed[5]);
	popinterval[6] = setInterval("pop_mrm()", popspeed[6]);
	popinterval[7] = setInterval("pop_mrc()", popspeed[7]);
	popinterval[8] = setInterval("pop_blc()", popspeed[8]);
	popinterval[9] = setInterval("pop_blm()", popspeed[9]);
	popinterval[10] = setInterval("pop_brm()", popspeed[10]);
	popinterval[11] = setInterval("pop_brc()", popspeed[11]);
}

//choose images...
function pickimage(cell_ID)
{
	//locals...
	var modulum = 7;
	var facetime = 0;
	var newimage = 0;
	var goodimage = true;
	
	//count each pass...
	++cyclecount;

	//gradually make it easier to show face tiles...
	if (cyclecount > 90)
	{
		modulum = 5;
	}

	//check if time to pick face image...
	facetime = (cyclecount % modulum);
	if (facetime == 0 && imagelist[cell_ID] > 11)
	{
		imagelist[cell_ID] = 0;
	}
	else
	{
		//randomly pick an image avoiding face pix...
		newimage = Math.round((Math.random() * selectrange));

		//make sure new choice differs...
		if (newimage == imagelist[cell_ID])
		{
			++newimage;
		}
		if (newimage > selectrange)
		{
			goodimage = false;
		}
	}

	//check for image dupes...
	for ( var i = 0; i < 12; i++)
	{
		if (newimage == imagelist[i])
		{
			goodimage = false;
		}
	}
	
	//change display image if no dupe exists
	if (goodimage)
	{
		imagelist[cell_ID] = newimage;
	}
}

//change the individual cell pulse rates...
function varypulse(cell_ID)
{
	popspeed[cell_ID] = 1200 + (Math.random() * 2500);
	clearInterval(popinterval[cell_ID]);
	
	//hold face images longer...
	if (imagelist[cell_ID] < 12)
	{
		popspeed[cell_ID] = (3000 + (Math.random() * (cyclecount/5) * popspeed[cell_ID]));
		if (popspeed[cell_ID] > 9000)
		{
			popspeed[cell_ID] = 7000 + (Math.random() * 2000);
		}
	}
}


//on mouse rollover...
function rolltask(cell_ID)
{
	//force face tile...
	imagelist[cell_ID] = cell_ID;

	//place tile onscreen...
	document[imagename[cell_ID]].src = pathstring + namestring + imagelist[cell_ID] + ".jpg";
}


//interpret user clicks...
function clicktask(cell_ID)
{
	if (imagelist[cell_ID] < 12)
	{
		//reduce face tile time...
		if (cyclecount > 80)
		{
			cyclecount -= 20;
		}

		//show FA logo...
		imagelist[cell_ID] = 63;

	}
	else
	{
		//force proper face tile...
		imagelist[cell_ID] = cell_ID;
	}

	//place tile onscreen...
	varypulse(cell_ID);
	var popcell = "pop_" + imagename[cell_ID] + "()";
	popinterval[cell_ID] = setInterval(popcell, popspeed[cell_ID]);
	document[imagename[cell_ID]].src = pathstring + namestring + 					imagelist[cell_ID] + ".jpg";
}
