﻿// JScript File - Fades.js

function Fading(Name, IdName, NumItems, FadeTime, ShowTime)
{
	this.Name		= Name;
	this.IdName		= IdName;
	this.cFades		= NumItems;
	this.FadeTime	= FadeTime;
	this.ShowTime	= ShowTime;
	this.iFades		= 0;
	this.FadeName	= "";
	this.effFadeOut	= null;
	this.effFadeIn	= null;
	
	this.StartFades			= StartFades;
	this.Invisible			= Invisible;
	this.Display			= Display;
	this.FadeIn				= FadeIn;
	this.FadeOut			= FadeOut;
	this.SetupTimer			= SetupTimer;
	this.FadeOutFinished	= FadeOutFinished;
	this.FadeInFinished		= FadeInFinished;
	this.Invisible			= Invisible;
	this.NextFade			= NextFade;
	this.SetupTimer			= SetupTimer;
	
	this.StartFades();
}

function StartFades()
{
	for (this.iFades = 0; this.iFades < this.cFades; this.iFades++)
	{
		var Fade = GetDocObj(this.IdName + this.iFades);
		if (Fade)
		{
			this.Invisible(Fade);
			this.Display(Fade, false);
		}
	}
	
	this.iFades = 0;
	this.FadeIn();
	this.SetupTimer();
}

function FadeOut()
{
	this.effFadeOut = new Spry.Effect.Fade(this.IdName + this.iFades, { duration: this.FadeTime, from: 100, to: 0, finish: this.FadeOutFinished, myThis: this } );
	this.effFadeOut.start();
}
 
function FadeIn()
{
	var Fade = GetDocObj(this.IdName + this.iFades);
	if (Fade)
	{
		this.Invisible(Fade);				
		this.Display(Fade, true);
	}
	this.effFadeIn = new Spry.Effect.Fade(this.IdName + this.iFades, { duration: this.FadeTime, from: 0, to: 100, finish: this.FadeInFinished, myThis: this } );
	this.effFadeIn.start();
}

function FadeOutFinished(Fade)
{
	this.myThis.effFadeOut = null;
	this.myThis.Display(Fade, false);
	
	this.myThis.NextFade();
}

function FadeInFinished(Fade)
{
	this.myThis.effFadeIn = null;
}
			
function Visible(Fade)
{
	if (Fade)
	{
		Fade.style.opacity = 1.0;
		Fade.style.filter = "alpha(opacity=100)";
	}
}			

function Invisible(Fade)
{
	if (Fade)
	{
		Fade.style.opacity = 0.0;
		Fade.style.filter = "alpha(opacity=0)";
	}
}

function Display(Fade, fDisplay)
{
	if (Fade)
	{
		Fade.style.display = (fDisplay ? "" : "none");
	}
}			

function SetupTimer()
{
	var a = setInterval(this.Name + ".FadeOut();", this.ShowTime);
}
 
function NextFade()
{			
	this.iFades++;
	if (this.iFades >= this.cFades)
	{
		this.iFades = 0;
	}
	
	this.FadeIn();			 
}
		 

