var pImages = new Array();		// An array of all the images added
var pfOpacity = new Array();		// An array of the opacity for each image
					// This is needed because dObject.style.opacity is based on the stylesheet	
	
var nImageCount = 0;			// Total number of images
var nCurrImage = 0;			// The currently fading out image
var nNextImage = 0;			// The currently fading in image
var lpiImages = new Array();		// Created to hold preloaded images.

var nImageSwitchDelay = 3000;		// The number of milliseconds to wait before swapping the image.
var fOpacityPerFrame = 0.05;		// The amount to change the opacity per animation frame. 0.1 would be 10% per frame
var fAnimationRate = 22;		// The speed in milliseconds to animate each frame. 33 is 30 FPS


var dImageRotator;			// Document object references

function AddImage(szFileName)
{
	lpiImages[nImageCount] = new Image();
	lpiImages[nImageCount].src = szFileName;
	pImages[nImageCount] = document.createElement("img");
	pImages[nImageCount].src = szFileName;
	if(nImageCount == 0)
	{
		pfOpacity[nImageCount] = 1.0;
	}
	else
	{
		pfOpacity[nImageCount] = 0.0;
	}
	dImageRotator.appendChild(pImages[nImageCount]);
	nImageCount++;
}

function RotateImages()
{
	if(nImageCount > 1)
	{
		if (pImages[nNextImage].complete)
		{
			nCurrImage = nNextImage;
			nNextImage++;
			if (nNextImage >= nImageCount) {
				nNextImage = 0;
			}
			pfOpacity[nCurrImage] = 1.0;
			pImages[nCurrImage].style.opacity = pfOpacity[nCurrImage];
			AnimateImages();
		}
		else
		{
			setTimeout("RotateImages()", nImageSwitchDelay);
		}
	}
}

function AnimateImages()
{
	var bProceed = false;	// Should we rotate again?
	
	pfOpacity[nCurrImage] -= fOpacityPerFrame;
	pfOpacity[nNextImage] += fOpacityPerFrame;
	
	if(pfOpacity[nCurrImage] <= 0.0)
	{
		pfOpacity[nCurrImage] = 0.0;
		bProceed = true;
	}
	if(pfOpacity[nNextImage] >= 1.0)
	{
		pfOpacity[nNextImage] = 1.0;
		bProceed = true;
}		
	
	pImages[nCurrImage].style.opacity = pfOpacity[nCurrImage];
	pImages[nCurrImage].style.filter = "alpha(opacity=" + (pfOpacity[nCurrImage] * 100) + ")";
	pImages[nNextImage].style.opacity = pfOpacity[nNextImage];
	pImages[nNextImage].style.filter = "alpha(opacity=" + (pfOpacity[nNextImage] * 100) + ")";
	
	if(bProceed)
	{
		setTimeout("RotateImages()", nImageSwitchDelay);
	}
	else
	{
		setTimeout("AnimateImages()", fAnimationRate);
	}
}

function RotatorInit()
{
	dImageRotator = document.getElementById("dImageRotator");
	AddImage("images/rotator/1.jpg");
	AddImage("images/rotator/2.jpg");
	AddImage("images/rotator/3.jpg");
	AddImage("images/rotator/4.jpg");
	AddImage("images/rotator/5.jpg");
	AddImage("images/rotator/6.jpg");
	AddImage("images/rotator/7.jpg");
	AddImage("images/rotator/8.jpg");
	AddImage("images/rotator/9.jpg");
	AddImage("images/rotator/10.jpg");
	AddImage("images/rotator/11.jpg");
	AddImage("images/rotator/12.jpg");
	AddImage("images/rotator/13.jpg");
	AddImage("images/rotator/14.jpg");
	AddImage("images/rotator/15.jpg");
	RotateImages();
}