﻿var gStandardInterval = 8000; 	// defaulting the interval to 8 seconds

var gCurrentItem = 0;
var gCancelInterval;
var rotatorItems;


// call this on window.onload
function InitializeRotator(rotateInterval)
{
	rotatorItems = document.getElementById('rotator').children;

	if (rotatorItems.length > 1)			// if we have enough to rotate through, set it up
	{
		document.getElementById('rotatorNav').style.display = 'block';
		if (document.getElementById('rotatorNavBackground') != null)					// background may not be present - usually used for transparency
			document.getElementById('rotatorNavBackground').style.display = 'block';

		if (rotateInterval == null)
			rotateInterval = gStandardInterval;

		for (var index = 0; index < rotatorItems.length; index++)
		{
			if (rotatorItems[index].nodeName != 'DIV')
				rotatorItems.splice(index, 1);
		}


		var rotatorLinks = document.getElementById('rotatorLinks');
		rotatorLinks.innerHTML = '';

		for (counter = 0; counter < rotatorItems.length; counter++)
		{
			rotatorLinks.innerHTML += '<a id="rotatorLink' + counter + '" href="#" onclick="ChangeImage(' + counter + ',true)">' + (+counter + 1) + '</a> ';
			rotatorItems[counter].style.display = 'none';
		}
		rotatorLinks.innerHTML += '<span class="clear"><!-- --></span>';

		gCancelInterval = window.setInterval("RotateRight();", rotateInterval);
	}
	ChangeImage(0);
}

function ChangeImage(indexNumber, sentByClick)
{
	gCurrentItem = indexNumber;

	for (counter = 0; counter < rotatorItems.length; counter++)
	{
		if (rotatorItems[counter].style.display != 'none')
		{
			Fader(rotatorItems[counter].id, 400, 100, 0, 25, 0);
			document.getElementById('rotatorLink' + counter).className = '';
		}
	}

	Fader(rotatorItems[gCurrentItem].id, 400, 0, 100, 25, 0);
	document.getElementById('rotatorLink' + gCurrentItem).className = 'active';

	// restarting the timer
	if (sentByClick != null && sentByClick == true)
	{
		clearInterval(gCancelInterval);
		gCancelInterval = window.setInterval("RotateRight();", gStandardInterval);
	}
}

function RotateRight(sentByClick)
{
	gCurrentItem++;
	if (gCurrentItem == rotatorItems.length) gCurrentItem = 0;

	ChangeImage(gCurrentItem, sentByClick);
}

function RotateLeft(sentByClick)
{
	gCurrentItem--;
	if (gCurrentItem == -1) gCurrentItem = rotatorItems.length - 1;

	ChangeImage(gCurrentItem, sentByClick);
}



// objectID				- the ID of the object to be faded
// duration				- total duration of event in milliseconds (should be a multiple of frequency)
// startingOpacity		- the opacity that it will start on
// endingOpacity		- the opacity that it will end on
// frequency			- how often the event will occur
var gFaderClearArray = new Array();
function Fader(objectID, duration, startingOpacity, endingOpacity, frequency, delay)
{
	window.setTimeout('SetOpacity(document.getElementById("' + objectID + '"),' + startingOpacity + ');', delay);
	var counter = 0;
	var differenceOpacity = endingOpacity - startingOpacity;
	while (frequency * counter < duration)
	{
		counter++;
		gFaderClearArray[counter - 1] = window.setTimeout('SetOpacity(document.getElementById("' + objectID + '"), "' + (startingOpacity + ((frequency * counter / duration) / (1 / differenceOpacity))) + '");', counter * frequency + delay);
	}
}

function SetOpacity(object, value)
{
	if (value == 0) object.style.display = 'none';
	else object.style.display = 'block';

	object.style.opacity = value / 100;
	object.style.filter = 'alpha(opacity=' + value + ')';
}












InitializeRotator();