//Set global vars
//iTimerID needs to maintain value after any local function calls setTimeout
//and starts looping. It would lose scope and couldn't cancel timer.
var iTimerID        = null;
var hFFFadeTimer    = null;
var hIEFadeTimer    = null;
var strLastMouseOut = null;
var idNames         = [ 'banner_1', 'banner_2', 'banner_3', 'banner_4', 'banner_5' ];
var buttonNames     = [ 'button_1', 'button_2', 'button_3', 'button_4', 'button_5' ];

  // button mgmt start
var imagePrefix = "../../images/button_";
var imageSuffix = ".png";

function setButtonImage(imageElementId,state) {
  document.getElementById(imageElementId).src = imagePrefix + state + imageSuffix;
}


// button mgmt end


//************************************


//*****************************************************

//*******************************************************
function myHiLite(imgDocID, imgObjName) {
	if(document.images)	{
		document.images[imgDocID].src = eval(imgObjName + ".src");
	}
}


//***********************************

//*********************************
function myMouseOver(strBannerNumber) {

	var bFadeOut = true;
	var bDisplay = true;
	var bContinueLoop = true;

	clearTimeout(iTimerID);
	
	myStopFadeTimer("IEFade");
	myStopFadeTimer("FFFade");
	
	myResetOpacities();
	myFade(strLastMouseOut, strBannerNumber, bFadeOut);
	myWriteBannerAndButtonCode('', strBannerNumber,6000, false);

/*
	//set buttons
	switch(strBannerNumber)
	{
		case 'banner_1':
			myHiLite('banner_1_buttonimage','product_1_on');
			myHiLite('banner_2_buttonimage','product_2_off');
			myHiLite('banner_3_buttonimage','product_3_off');
			myHiLite('banner_4_buttonimage','product_4_off');
			myHiLite('banner_5_buttonimage','product_5_off');
			break;
		case 'banner_2':
			myHiLite('banner_1_buttonimage','product_1_off');
			myHiLite('banner_2_buttonimage','product_2_on');
			myHiLite('banner_3_buttonimage','product_3_off');
			myHiLite('banner_4_buttonimage','product_4_off');
			myHiLite('banner_5_buttonimage','product_5_off');
			break;
		case 'banner_3':
			myHiLite('banner_1_buttonimage','product_1_off');
			myHiLite('banner_2_buttonimage','product_2_off');
			myHiLite('banner_3_buttonimage','product_3_on');
			myHiLite('banner_4_buttonimage','product_4_off');
			myHiLite('banner_5_buttonimage','product_5_off');
			break;
		case 'banner_4':
			myHiLite('banner_1_buttonimage','product_1_off');
			myHiLite('banner_2_buttonimage','product_2_off');
			myHiLite('banner_3_buttonimage','product_3_off');
			myHiLite('banner_4_buttonimage','product_4_on');
			myHiLite('banner_5_buttonimage','product_5_off');
			break;
		case 'banner_5':			
			myHiLite('banner_1_buttonimage','product_1_off');
			myHiLite('banner_2_buttonimage','product_2_off');
			myHiLite('banner_3_buttonimage','product_3_off');
			myHiLite('banner_4_buttonimage','product_4_off');
			myHiLite('banner_5_buttonimage','product_5_on');
			break;
		default :
			break;
	}//end switch
			*/
}//end of funcion
//***********************************************************

//*********************************
function myMouseOut(strFromBanner) {

	strLastMouseOut = strFromBanner;
	var strBannerNumber = 'none';
	strBannerNumber = mySetCurrentBanner(strFromBanner);
	
	var iWait = 6000; // msecs

	myStringSetTimeout(strFromBanner, strBannerNumber, iWait);
	
}//end of funcion

//*********************************************************************************

//*********************************************************************************
function myWriteBannerAndButtonCode(strFromBanner, strBannerNumber, iWait, bFadeOut) {

  strLastMouseOut = strFromBanner;

	myFade(strFromBanner, strBannerNumber, bFadeOut);	
	//alert(strBannerNumber + " " + document.images[strBannerNumber + "_buttonimage"].src);
	
	for(i = 0; i < 5; i++) {
	  if (idNames[i] == strBannerNumber) {
			document.getElementById(buttonNames[i]).innerHTML = '<img src="../../images/button_' + (i + 1) + '_hover.png" id="' + idNames[i] + '_buttonimage" width="222" height="39" border="0" alt="">';
    } else {
			document.getElementById(buttonNames[i]).innerHTML = '<img src="../../images/button_' + (i + 1) + '_enabled.png" id="' + idNames[i] + '_buttonimage" width="222" height="39" border="0" alt="">';
    }
  }	    

	strFromBanner   = strBannerNumber;
	strBannerNumber = mySetCurrentBanner(strBannerNumber);
	
	myStringSetTimeout(strFromBanner, strBannerNumber, iWait);
}

//*******************************************************************

//********************************************************************
function mySetCurrentBanner(strCurrentBanner) {
  for(i = 0; i < idNames.length; i++) {
    if (strCurrentBanner == idNames[i]) {
      var j = (i + 1) % idNames.length;
      return idNames[j];
    }
  }
  return idNames[0];
}// end function
//********************************************
//**************************************************************
function myRandomBanner()
{
	var fRandomNumber = 0;
	var iMaxBanners = 5;
	var iMinBanner = 1;
	var iRandomBanner = 0;
	var strBannerNumber = "";
	var strFromBanner = "banner_blank";

	//fRandomNumber   = Math.random();
	iRandomBanner   = 1;//Math.floor((fRandomNumber * iMaxBanners) + iMinBanner);
	strBannerNumber = idNames[iRandomBanner - 1]; 

	myWriteBannerAndButtonCode(strFromBanner, strBannerNumber, 6000, true);	

	return strBannerNumber;
}
//****************************************************************
//****************************************************************
function myStopTimer() {
	clearTimeout(iTimerID);
}
//**************************************************************
//**************************************************************
function myStringSetTimeout(strFromBanner, strBannerNumber, iWait)
{
	/*
	 * This avoids having to use a global var to maintain banner state and losing scope
	 * when the timer leaves the function call
	 */
	var strNoVariablesInFunctionCall = "myWriteBannerAndButtonCode('" + strFromBanner + "', ";
  strNoVariablesInFunctionCall += ("'" + strBannerNumber +"', ");
	strNoVariablesInFunctionCall += (iWait + ", true);");
	
	if(iTimerID != null) {
		clearTimeout(iTimerID);
	}
	
	iTimerID = setTimeout(strNoVariablesInFunctionCall, iWait);
}
//**********************************************
//**********************************************

//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
// Fading functions
//*************************
function myStopFadeTimer(strType)
{
	switch(strType)
	{
		case 'IEFade':
			if(hIEFadeTimer != null)
			{
				clearTimeout(hIEFadeTimer);
			}
			break;
		case 'FFFade':
			if(hFFFadeTimer != null)
			{
				clearTimeout(hFFFadeTimer);
			}
			break;
		default:
			break;
	}//end switch
}//end function
//**************************************************************

//***************************************************************
function mySetIEOpactiy(iOpacity, strIDFrom, strIDTo, bFadeOut)
{
	var objImgFrom = document.getElementById(strIDFrom);
	var objImgTo = document.getElementById(strIDTo);
	
	var strIEFilter = "alpha(opacity=" + iOpacity + ")";	
	
	var iOpacityStep = 5;
	var iFadeWait = 50; //msecs		
  var iHiddenOpacity = 25; // don't go completely to a white page
	var iVisibleOpacity = 100;

	myStopFadeTimer("IEFade");		

	if(bFadeOut)
	{
		if(iOpacity > iHiddenOpacity)
		{
			if(objImgFrom.style.display == "inline")
			{
				//continue looping
				objImgFrom.style.filter = strIEFilter;
				iOpacity -= iOpacityStep;
				var strIEOpacity = "mySetIEOpactiy(" + iOpacity + ",\'" + strIDFrom + "\', \'" + strIDTo + "\'," + bFadeOut +");";
				hIEFadeTimer = setTimeout(strIEOpacity, iFadeWait);
			}//end if inline check
		}//end if opacity > hidden
		else
		{
			//fade complete, hide image
			objImgFrom.style.display = "none";	
			bFadeOut = !bFadeOut;

			objImgTo.style.opacity = 0.25;
			objImgTo.style.filter = "alpha(opacity=25)";

			//poll to check that the image is gone before displaying the next banner
			var bContinueLoop = true;
			while(bContinueLoop)
			{
				if(objImgFrom.style.display == "none")
				{
					bContinueLoop = false;
					objImgTo.style.display = "inline";
				}
			}// end while			
    		var strIEOpacity = "mySetIEOpactiy(" + iOpacity + ",\'" + strIDFrom + "\', \'" + strIDTo + "\'," + bFadeOut +");";
			hIEFadeTimer = setTimeout(strIEOpacity, iFadeWait);						
		}//end else
	}//end if
	else // fading in
	{
		if(iOpacity < iVisibleOpacity)
		{
			//continue looping
			objImgTo.style.filter = strIEFilter;
			iOpacity += iOpacityStep;
			var strIEOpacity = "mySetIEOpactiy(" + iOpacity + ",\'" + strIDFrom + "\', \'" + strIDTo + "\'," + bFadeOut +");";
			hIEFadeTimer = setTimeout(strIEOpacity, iFadeWait);
		}
	}	
}//end function
//****************************************************************

//****************************************************************
function mySetFFOpactiy(fOpacity, strIDFrom, strIDTo, bFadeOut)
{
	var objImgFrom = document.getElementById(strIDFrom);
	var objImgTo = document.getElementById(strIDTo);
		
	var iOpacityStep = 5;		
	var iFadeWait = 50; //msecs
	var fHiddenOpacity = 0.25; // don't go completely to a white page
	var fVisibleOpacity = 1.0;
	
	myStopFadeTimer("FFFade");		
	
	if(bFadeOut)
	{
		if(fOpacity > fHiddenOpacity)
		{
			if(objImgFrom.style.display == "inline")
			{
				//continue looping
				objImgFrom.style.opacity = fOpacity;
				fOpacity *= 100;
				fOpacity = (parseInt(fOpacity) - iOpacityStep)/100;
				var strFFOpacity = "mySetFFOpactiy(" + fOpacity  + ",\'" + strIDFrom + "\', \'" + strIDTo + "\'," + bFadeOut +");";
				hFFFadeTimer = setTimeout(strFFOpacity, iFadeWait);
			}//end if inline check
		}//end if opacity > hidden
		else
		{
			//fade complete, hide image
			objImgFrom.style.display = "none";

			//fade in new image
			bFadeOut = !bFadeOut;
			objImgTo.style.opacity = 0.25;
			objImgTo.style.filter = "alpha(opacity=25)";

			//poll to check that the image is gone before displaying the next banner
			var bContinueLoop = true;
			while(bContinueLoop)
			{
				if(objImgFrom.style.display == "none")
				{
					bContinueLoop = false;
					objImgTo.style.display = "inline";
				}//end if 
			}//end while
			var strFFOpacity = "mySetFFOpactiy(" + fOpacity  + ",\'" + strIDFrom + "\', \'" + strIDTo + "\'," + bFadeOut +");";
			hFFFadeTimer = setTimeout(strFFOpacity, iFadeWait);			
		}//end else
	}//end if
	else //fading in
	{
		if(fOpacity < fVisibleOpacity)
		{
			//continue looping
			objImgTo.style.opacity = fOpacity;
			fOpacity *= 100;
			fOpacity = (parseInt(fOpacity) + iOpacityStep)/100;
			var strFFOpacity = "mySetFFOpactiy(" + fOpacity  + ",\'" + strIDFrom + "\', \'" + strIDTo + "\'," + bFadeOut +");";
			hFFFadeTimer = setTimeout(strFFOpacity, iFadeWait);
		}
	}		
}//end function
//****************************************************

//****************************************************
function myFade(strIDFrom, strIDTo, bFadeOut)
{
	var iOpacityStep = 5;
	var iFadeWait = 50; //msecs

	var fOpacity = 1.0; //reset to visible
	var iOpacity = parseInt(fOpacity * 100);
	var bDisplay = true;


	if(bFadeOut)
	{
		//make sure the previous banner is displayed before fading
		myDisplayBanner(strIDFrom, bDisplay);
		iOpacity = parseInt(iOpacity - iOpacityStep);
	}
	else
	{
		fOpacity = 0.0; //reset to hidden
		iOpacity = parseInt(iOpacity + iOpacityStep);
	}//end else
	
	fOpacity = iOpacity/100;							
	var strIEOpacity = "mySetIEOpactiy(" + iOpacity + ", \'" + strIDFrom + "\', \'" + strIDTo + "\'," + bFadeOut +");";
	myStopFadeTimer("IEFade");
	hIEFadeTimer = setTimeout(strIEOpacity, iFadeWait);

	var strFFOpacity = "mySetFFOpactiy(" + fOpacity + ", \'" + strIDFrom + "\', \'" + strIDTo + "\'," + bFadeOut +");";
	myStopFadeTimer("FFFade");
	hFFFadeTimer = setTimeout(strFFOpacity, iFadeWait);			

}//end function
//*****************************	

//***********************************************
function myResetOpacities()
{
	var objImg1 = document.getElementById("banner_1");
	var objImg2 = document.getElementById("banner_2");
	var objImg3 = document.getElementById("banner_3");
	var objImg4 = document.getElementById("banner_4");
	var objImg5 = document.getElementById("banner_5");	

	var fVisibleOpacity = 1.0;
	var strVisibleOpacity = "alpha(opacity=100)";
		
	objImg1.style.opacity = fVisibleOpacity;
	objImg2.style.opacity = fVisibleOpacity;
	objImg3.style.opacity = fVisibleOpacity;
	objImg4.style.opacity = fVisibleOpacity;
	objImg5.style.opacity = fVisibleOpacity;	
	
	objImg1.style.filter = strVisibleOpacity;
	objImg2.style.filter = strVisibleOpacity;	
	objImg3.style.filter = strVisibleOpacity;
	objImg4.style.filter = strVisibleOpacity;	
	objImg5.style.filter = strVisibleOpacity;	
}
//***********************************************

//*********************************************
function myDisplayBanner(strImgID, bDisplay)
{
	var strNone = "none";
	var strInline = "inline";
	var objImg = document.getElementById(strImgID);
	
	var objImg0 = document.getElementById("banner_blank");
	var objImg1 = document.getElementById("banner_1");
	var objImg2 = document.getElementById("banner_2");
	var objImg3 = document.getElementById("banner_3");
	var objImg4 = document.getElementById("banner_4");
	var objImg5 = document.getElementById("banner_5");	

	
	if(bDisplay)
	{
		//make sure all other banners are not displayed first
		switch(strImgID)
		{
			case 'banner_1':
 				objImg0.style.display = strNone;
				objImg2.style.display = strNone;
				objImg3.style.display = strNone;
				objImg4.style.display = strNone;
				objImg5.style.display = strNone;
				
				objImg1.style.display = strInline;
				break;
			case 'banner_2':
 				objImg0.style.display = strNone;
				objImg1.style.display = strNone;
				objImg3.style.display = strNone;
				objImg4.style.display = strNone;
				objImg5.style.display = strNone;
				
				objImg2.style.display = strInline;
				break;
			case 'banner_3':
 				objImg0.style.display = strNone;
				objImg1.style.display = strNone;
				objImg2.style.display = strNone;
				objImg4.style.display = strNone;
				objImg5.style.display = strNone;
				
				objImg3.style.display = strInline;
				break;
			case 'banner_4':
 				objImg0.style.display = strNone;
				objImg1.style.display = strNone;
				objImg2.style.display = strNone;
				objImg3.style.display = strNone;
				objImg5.style.display = strNone;
				
				objImg4.style.display = strInline;
				break;
			case 'banner_5':
 				objImg0.style.display = strNone;
				objImg1.style.display = strNone;
				objImg2.style.display = strNone;
				objImg3.style.display = strNone;
				objImg4.style.display = strNone;
				
				objImg5.style.display = strInline;
				break;
			default :
				break;
		}//end switch						
	}
	else
	{
		objImg.style.display = strNone;	
	}
}// end function
//**********************************************