// ************ Global definitions ...
var xmlTimer = new Array();	// Separate timer to handle separate AJAX panels
var arContent = new Array();	// Fader panel content
var arLink = new Array();	// Fader panel content
var lenContent = 0;		// Array size for fader panel content
var indexContent= 1;		// Wierd, but true... index must start at 2...
var fadeId = 0;			// Fader ID catch

var isWorking = false;
var userAgent = navigator.userAgent.toLowerCase();
var isMSIE = false;		// Internet Explorer flag initialize
isMSIE = (document.all && userAgent.indexOf('msie')!=-1)? true: false;

var vTarget = "/cgibin/boxOutput.cgi"


// ************ Fader Functions ...
// ** requires BoxFader and BoxFader1 divs
// ** Needs arContent[x] defined with <img src....> stuff
// ** Need lenContent to be defined as arContent.length
// ** Need faderIndex + x to be defined for fader indicator

var TimeToFade = 800.0;
var TimeToStay = 3500.0;

function jump(vIndex)
{  
	var vIndex
	var element = document.getElementById('BoxFader');
	var element1 = document.getElementById('BoxFader1');
	if (Math.abs(element.FadeState) != 2 && element.FadeState != null) return;  // go back if still fading...

	indexContent = vIndex;
	clearTimeout(fadeId);

	var nextContent = (indexContent == arContent.length-1)? 0 : indexContent+1 ;
		
	if (element.FadeState == -2)
	{ element.innerHTML = arContent[indexContent]; element1.innerHTML = arContent[nextContent]; fade();}
	if (element.FadeState == 2 || element.FadeState == null)
	{ element1.innerHTML = arContent[indexContent]; element.innerHTML = arContent[nextContent]; fade();}
}


function animateFade(lastTick)
{  
	var curTick = new Date().getTime();
	var elapsedTicks = curTick - lastTick;
	var element = document.getElementById('BoxFader');
	var element1 = document.getElementById('BoxFader1');

	if(element.FadeTimeLeft <= elapsedTicks)
	{
		element.style.opacity = element.FadeState == 1 ? '1' : '0';
		if (isMSIE) element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100' : '0') + ')';
		element.FadeState = element.FadeState == 1 ? 2 : -2;

		// handle the fade image indicator
		var y = 0;
		while (y < lenContent)
		{
			var x = "faderIndex"+y;
			document.getElementById(x).style.backgroundColor= (y == indexContent) ? "#9b333e":"white";
			y++;
		}

		// Reset fader issues.
		// FadeState: 2 = solid first panel; -2 = solid second panel
		indexContent = (indexContent == arContent.length-1)? 0 : indexContent+1 ;
		if (element.FadeState == -2)
		{ 	if (isMSIE) element.style.filter = 'alpha(opacity = 0)'; element1.style.zIndex = 1;  element.style.zIndex = 0; 
				element.style.opacity = 0; element.innerHTML = arContent[indexContent]; }
		if (element.FadeState == 2)
		{ 	if (isMSIE) element1.style.filter = 'alpha(opacity = 0)'; element1.style.zIndex = 0;  element.style.zIndex = 1; 
				element1.style.opacity = 0; element1.innerHTML = arContent[indexContent];}
		fadeId = setTimeout("fade();", TimeToStay);
		return;
	}

	element.FadeTimeLeft -= elapsedTicks;
	var newOpVal = element.FadeTimeLeft/TimeToFade;
	var newOpVal1 = 1 - newOpVal;

	if(element.FadeState == 1) { newOpVal = 1 - newOpVal; newOpVal1 = element.FadeTimeLeft/TimeToFade;}

	element.style.opacity = newOpVal;
	if (isMSIE) element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
 
	element1.style.opacity = newOpVal1;
	if (isMSIE) element1.style.filter = 'alpha(opacity = ' + (newOpVal1*100) + ')';

	fadeId = setTimeout("animateFade(" + curTick + ")", 33);
}

function fade()
{
	var element = document.getElementById('BoxFader');
	if(element.FadeState == null)
	{
		if(element.style.opacity == null
		    || element.style.opacity == ''
		    || element.style.opacity == '1')
		{ element.FadeState = 2;}
		else
		{ element.FadeState = -2;}
	}
	 
	if(element.FadeState == 1 || element.FadeState == -1)
	{
		element.FadeState = element.FadeState == 1 ? -1 : 1;
		element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
	}
	else
	{
		element.FadeState = element.FadeState == 2 ? -1 : 1;
		element.FadeTimeLeft = TimeToFade;
		fadeId = setTimeout("animateFade(" + new Date().getTime() + ")", 33);
	}  
}


// ** Fader detains Functions ...
function faderMessage()
{ 
	var vTrueIndex = (indexContent == 0)? arContent.length -1: indexContent -1; 
	fileData('messageBox','','proc=fader&id=' + arLink[vTrueIndex]) 
}

// *****************************************

