var imageItemIndex = 0;
var imageItems = new Array();
var lastTimeOutId;

function ImageItem(Path, DisplaySeconds, URL, AltText, ID)
{
	this.ImageObject = new Image();
	this.ImageObject.src = Path;
	this.URL = URL;
	this.DisplaySeconds = DisplaySeconds;
	this.AltText = AltText;
	this.ImageId = ID;
}


function GetNextImage()
{
	imageItemIndex++;
	if (imageItemIndex == imageItems.length)
	{
		imageItemIndex = 0;
	}

	var imageToReturn = imageItems[imageItemIndex];
	
	return(imageToReturn);
}

function GetPreviousImage()
{
	imageItemIndex--;
	if (imageItemIndex < 0)
	{
		imageItemIndex = (imageItems.length - 1);
	}

	var imageToReturn = imageItems[imageItemIndex];
	
	return(imageToReturn);
}

function RotateImage(ImageId, UrlId, HiddenFieldId, isFirstTimeRun, isMovingForward)
{
	var imageToRotate = document.getElementById(ImageId);
	var imageToRotateURL = document.getElementById(UrlId);
	var imageToRotateHiddenField = document.getElementById(HiddenFieldId);
	var recurringCall = "RotateImage('"+ImageId+"', '"+UrlId+"', '"+HiddenFieldId+"', false, true)";
	var nextImage;

	if (isFirstTimeRun == true)
	{
		imageItemIndex = -1;
	}
	
	if (isMovingForward == true)
	{
		nextImage = GetNextImage();
	}
	else
	{
		nextImage = GetPreviousImage();
	}
	

	clearTimeout();
	
	imageToRotate.setAttribute("src", nextImage.ImageObject.src);
	imageToRotate.setAttribute("alt", nextImage.AltText);

	imageToRotateURL.setAttribute("value", nextImage.URL);

	imageToRotateHiddenField.setAttribute("value", nextImage.ImageId);
	
	lastTimeOutId = setTimeout(recurringCall, (nextImage.DisplaySeconds*1000));
}


function FastForward(ImageId, UrlId, HiddenFieldId)
{
	clearTimeout(lastTimeOutId);
	RotateImage(ImageId, UrlId, HiddenFieldId, false, true);
}

function Rewind(ImageId, UrlId, HiddenFieldId)
{
	clearTimeout(lastTimeOutId);
	RotateImage(ImageId, UrlId, HiddenFieldId, false, false);
}

