//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;

//************************************

//*************************************
function myTestConnection()
{
   alert("connected to banner.js 3/31/08 - 2:05");
}
//*****************************************************

//*******************************************************
function myHiLite(imgDocID, imgObjName)
{
	if(document.images)
	{
		document.images[imgDocID].src = eval(imgObjName + ".src");
	}//end if
}//end of function
//***********************************

//*********************************
function myMouseOver(strBannerNumber)
{
	var bFadeOut = true;
	var bDisplay = true;
	var bContinueLoop = true;
	var objImgBanner = null;

	myStopTimer();
	myStopFadeTimer("IEFade");
	myStopFadeTimer("FFFade");
	
	if(strLastMouseOut != null)
	{
		objImgBanner = document.getElementById(strLastMouseOut);
	}
    	
	myResetOpacities();
	myFade(strLastMouseOut, strBannerNumber, bFadeOut);

}//end of funcion
//***********************************************************

//*********************************
function myMouseOut(strFromBanner)
{
	strLastMouseOut = strFromBanner;
	var strBannerNumber = 'none';
	strBannerNumber = mySetCurrentBanner(strFromBanner);
	
	var iWait = 8000; // msecs

	myStringSetTimeout(strFromBanner, strBannerNumber, iWait);
}//end of funcion
//***********************************************************

//*********************************************************************************
function myWriteBannerAndButtonCode(strFromBanner, strBannerNumber, iWait, bFadeOut)
{
	var strBannerResult = 'ok';
	var strButtonResult = 'ok';
	
	strLastMouseOut = strFromBanner;

	myFade(strFromBanner, strBannerNumber, bFadeOut);	
	
	//advance banner number
	strFromBanner = strBannerNumber;
	strBannerNumber = mySetCurrentBanner(strBannerNumber);
	
	myStringSetTimeout(strFromBanner, strBannerNumber, iWait);
}//end function
//*******************************************************************

//********************************************************************
function mySetCurrentBanner(strCurrentBanner)
{
	switch(strCurrentBanner)
	{
		case 'banner_1':
			strCurrentBanner = 'banner_2';
			break;
		case 'banner_2':
			strCurrentBanner = 'banner_3';
			break;
		case 'banner_3':
			//strCurrentBanner = 'banner_4';
			strCurrentBanner = 'banner_1';
			break;
/*		case 'banner_4':
			//strCurrentBanner = 'banner_5';
			strCurrentBanner = 'banner_1';
			break;
*/			
/*		case 'banner_5':
			strCurrentBanner = 'banner_1';
	*/	
			break;
		default :
			break;
	}//end switch
	
	return strCurrentBanner;
}// end function
//********************************************
//**************************************************************
function myRandomBanner()
{
	var fRandomNumber = 0;
	var iMaxBanners = 3;
	var iMinBanner = 1;
	var iRandomBanner = 0;
	var strBannerNumber = "";
	var strFromBanner = "banner_blank";

	fRandomNumber = Math.random();
	iRandomBanner = Math.floor((fRandomNumber * iMaxBanners) + iMinBanner);

	strBannerNumber = 'banner_' + iRandomBanner;

	var iWait = 8000; // msecs
	var bFadeOut = true;
	
	myWriteBannerAndButtonCode(strFromBanner, strBannerNumber, iWait, bFadeOut);	

	return strBannerNumber;
}//end of function
//****************************************************************
//****************************************************************
function myStopTimer()
{
	clearTimeout(iTimerID);
}//end of function
//**************************************************************
//**************************************************************
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 = 0;
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;	

}//end of function
//***********************************************

//*********************************************
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
//**********************************************