/*
Modification of Image Cross Fade Redux to handle multiple image sets and mouseover stopping.
You need to add array items to imgsets in InitRotateFader with the id of the containing div
*/

var imgsets = new Array(), imgs = new Array(), current = new Array(), nIndex = new Array(), T1;

function InitRotateFaderSetup() {
	var d=document;
	if(!d.getElementById || !d.createElement)return;

	//add array items here manually
	imgsets[0] = d.getElementById('rotator').getElementsByTagName('img');

	for(iset=0; iset<imgsets.length; iset++) {
		for(i=1;i<imgsets[iset].length;i++) imgsets[iset][i].xOpacity = 0;
		imgsets[iset][0].style.display = 'block';
		imgsets[iset][0].xOpacity = .99;
		current[iset]=0;
	}
}

function InitRotateFader()
{
	InitRotateFaderSetup();

	T1 = setTimeout(ImageFade,3000);
}

function ImageFade()
{
	cOpacity = imgsets[0][current[0]].xOpacity;
	for(iset=0; iset<imgsets.length; iset++) {
		nIndex[iset] = imgsets[iset][current[iset]+1]?current[iset]+1:0;
	}
	nOpacity = imgsets[0][nIndex[0]].xOpacity;

	cOpacity-=.05;
	nOpacity+=.05;

	for(iset=0; iset<imgsets.length; iset++) {
		imgsets[iset][nIndex[iset]].style.display = 'block';
		imgsets[iset][current[iset]].xOpacity = cOpacity;
		imgsets[iset][nIndex[iset]].xOpacity = nOpacity;

		setOpacity(imgsets[iset][current[iset]]);
		setOpacity(imgsets[iset][nIndex[iset]]);
		
		/*hack for circles*/
		document.getElementById('circle'+current[iset]).src = "/images/circle.gif";
		document.getElementById('circle'+nIndex[iset]).src = "/images/circle_blue.gif";
	}

	if(cOpacity<=0)
	{
		for(iset=0; iset<imgsets.length; iset++) {
			imgsets[iset][current[iset]].style.display = 'none';
			current[iset] = nIndex[iset];
		}
		T1 = setTimeout(ImageFade,3000);
	}
	else
	{
		T1 = setTimeout(ImageFade,50);
	}
}

function setOpacity(obj)
{
	if(obj.xOpacity>.99)
	{
		obj.xOpacity = .99;
		return;
	}

	obj.style.opacity = obj.xOpacity;
	obj.style.MozOpacity = obj.xOpacity;
	obj.style.filter = 'alpha(opacity=' + (obj.xOpacity*100) + ')';
}

function DisplayStoppedImage()
{
	cOpacity = imgsets[0][current[0]].xOpacity;
	for(iset=0; iset<imgsets.length; iset++) {
		nIndex[iset] = imgsets[iset][current[iset]+1]?current[iset]+1:0;
	}
	nOpacity = imgsets[0][nIndex[0]].xOpacity;

	//show the one that's most clear
	if (cOpacity < 0.5) {
		cOpacity=0;
		nOpacity=.99;
	}
	else {
		cOpacity=.99;
		nOpacity=0;
	}
	
	for(iset=0; iset<imgsets.length; iset++) {
		imgsets[iset][current[iset]].xOpacity = cOpacity;
		imgsets[iset][nIndex[iset]].xOpacity = nOpacity;

		setOpacity(imgsets[iset][current[iset]]);
		setOpacity(imgsets[iset][nIndex[iset]]);
		
		if (nOpacity == 0) {
			imgsets[iset][nIndex[iset]].style.display = 'none';
			/*hack for circles*/
			document.getElementById('circle'+current[iset]).src = "/images/circle_blue.gif";
			document.getElementById('circle'+nIndex[iset]).src = "/images/circle.gif";
		}
		else {
			imgsets[iset][current[iset]].style.display = 'block';
			/*hack for circles*/
			document.getElementById('circle'+current[iset]).src = "/images/circle.gif";
			document.getElementById('circle'+nIndex[iset]).src = "/images/circle_blue.gif";
		}
	}
}


function StopRotation()
{
	clearTimeout(T1);
	DisplayStoppedImage();
}

function StartRotation()
{
	T1 = setTimeout(ImageFade,3000);
}

function ShowRotation(pArrImage, pArrList) {
/*has a bug if choose one twice then let it rotate...*/
	
	clearTimeout(T1);

//	set correct current and next image
	current[pArrList] = pArrImage;
	nIndex[pArrList] = imgsets[pArrList][pArrImage+1]?current[pArrList]+1:0;

//show the image and hide the others
	for(iset=0; iset<imgsets[0].length; iset++) {
		if (iset == pArrImage)
		{
			imgsets[0][iset].style.opacity = .99;
			imgsets[0][iseti].style.MozOpacity = .99;
			imgsets[0][iset].style.filter = 'alpha(opacity=100)';
			imgsets[0][iset].style.display = 'block';
			document.getElementById('circle'+iset).src = "/images/circle_blue.gif";
			document.getElementById('circle'+iset).style.visibility = 'visible';
		}
		else
		{
			imgsets[0][iset].style.opacity = 0;
			imgsets[0][iset].style.MozOpacity = 0;
			imgsets[0][iset].style.filter = 'alpha(opacity=0)';
			imgsets[0][iset].style.display = 'none';
			document.getElementById('circle'+iset).src = "/images/circle.gif";
			document.getElementById('circle'+iset).style.visibility = 'visible';
		}
	}

	imgsets[0][current[0]].xOpacity = .99;
	imgsets[0][nIndex[0]].xOpacity = 0.00;
}
