﻿var Fade = new FadeClass();

//=======================================================================
// Fade class.
//=======================================================================
function FadeClass()
{
	var THIS = this;
	
	var blnStarted = false;
	var intTimer = 10000;
	var intOpacity = 0.5;
	var intImageNumber = 1;
	var intImageCount = 23;
	var intFade = 50;
	var intFadeOpacity = 0.02;
	
	var objBanner1 = null;
	var objBanner2 = null;
	var strFadeOutBanner = '';
	var intBanner1Opacity = 1;
	var intBanner2Opacity = 0;
	var intBannerTimerID = 0;
	
	//===============================================================
	// Start the fader.
	//===============================================================
	this.Start = function Start(FadeOutBanner, FadeInBanner)
	{
		intBanner1Opacity = intOpacity;
		intBanner2Opacity = 0;
		strFadeOutBanner = FadeOutBanner;
		objBanner1 = document.getElementById(FadeOutBanner);
		objBanner2 = document.getElementById(FadeInBanner);
		
		if (!blnStarted)
		{
			intImageNumber = Math.floor(Math.random() * (intImageCount - 1));
			
			if ((intImageNumber > intImageCount) || (intImageNumber == 0))
				intImageNumber = 1;

			objBanner1.style.backgroundImage = 'url(/Images/Banner/' + intImageNumber + '.jpg)';
			objBanner2.style.backgroundImage = 'url(/Images/Banner/' + (intImageNumber + 1) + '.jpg)';
			intImageNumber = (intImageNumber + 1);
		
			blnStarted = true;
			objBanner1.style.opacity = intOpacity;
			objBanner1.style.MozOpacity = intOpacity;
			objBanner1.style.filter = 'alpha(opacity=' + (intOpacity * 100) + ')';
		}
		
		intBannerTimerID = window.setInterval(THIS.Fade, intTimer);
		return;
	}

	//===============================================================
	// Fade.
	//===============================================================
	this.Fade = function Fade()
	{
		window.clearInterval(intBannerTimerID);
		
		// Fade out banner 1.
		objBanner1.style.opacity = intBanner1Opacity;
		objBanner1.style.MozOpacity = intBanner1Opacity;
		objBanner1.style.filter = 'alpha(opacity=' + (intBanner1Opacity * 100) + ')';
		intBanner1Opacity -= intFadeOpacity;
		
		// Fade in banner 2.
		objBanner2.style.opacity = intBanner2Opacity;
		objBanner2.style.MozOpacity = intBanner2Opacity;
		objBanner2.style.filter = 'alpha(opacity=' + (intBanner2Opacity * 100) + ')';
		intBanner2Opacity += intFadeOpacity;
		
		// Check the opacity.
		if (intBanner1Opacity > 0)
		{
			intBannerTimerID = window.setInterval(Fade, intFade);
		}
		else
		{
			intImageNumber = intImageNumber + 1;

			// Check the image number.
			if (intImageNumber > intImageCount)
				intImageNumber = 1;
			
			objBanner1.style.opacity = 0;
			objBanner1.style.MozOpacity = 0;
			objBanner1.style.filter = 'alpha(opacity=0)';
			objBanner1.style.backgroundImage = 'url(/Images/Banner/' + intImageNumber + '.jpg)';
			
			// Check the fade out banner.
			if (strFadeOutBanner == 'Banner1')
			{
				THIS.Start('Banner2', 'Banner1');
			}
			else
			{
				THIS.Start('Banner1', 'Banner2');
			}
		}
		return;
	}
	
	return;
}
