var FadeInStep 	= 20;
var FadeOutStep = 20;

document.write('<STYLE TYPE="text/css">.imgFader{ position:relative; filter:alpha(opacity=0); -moz-opacity:0.0 }</STYLE>');

if(!window.JSFX)
 JSFX=new Object();
JSFX.RolloverObjects=new Array();
JSFX.Rollover = function(name, img)
{
 JSFX.RolloverObjects[name]=new Image();
 JSFX.RolloverObjects[name].img_src = img;	
 if(!JSFX.Rollover.postLoad)
  JSFX.RolloverObjects[name].src = img;
}
JSFX.Rollover.postLoad = false;
JSFX.Rollover.loadImages = function()
{
 var i;
 for(i in JSFX.RolloverObjects)
  {
   r=JSFX.RolloverObjects[i];
   r.src=r.img_src;
  }
}
JSFX.Rollover.error = function(n)
{
 alert("JSFX.Rollover - An Error has been detected\n");
}
JSFX.getImg = function(n, d) 
{
 var img = d.images[n];
 if(!img && d.layers)  
  for(var i=0 ; !img && i<d.layers.length ; i++)
   img=JSFX.getImg(n,d.layers[i].document);
 return img;
}
JSFX.findImg = function(n, d) 
{
 var img = JSFX.getImg(n, d);
 if(!img)
  {
   alert("JSFX.findImg - An Error has been detected\n");
   return(new Image());
  }
 return img;
}

JSFX.ImageFadeRunning=false;
JSFX.ImageFadeInterval=30;
JSFX.imgFadeIn = function(img, imgSrc)
{
 if(img) 
  {
   if(img.state == null) 
    {
     img.state = "OFF";
     img.index = 0;
     img.next_on    = null;
    }
   if(img.state == "OFF")
    {
     if(img.src.indexOf(imgSrc) == -1)
      img.src=imgSrc;
     img.currSrc = imgSrc;
     img.state = "FADE_IN";
     JSFX.startFading();
    }
   else if( img.state == "FADE_IN_OUT" || img.state == "FADE_OUT_IN" || img.state == "FADE_OUT")
    {
     if(img.currSrc == imgSrc)
      img.state = "FADE_IN";
     else
     {
      img.next_on = imgSrc;
      img.state="FADE_OUT_IN";
     }
    }
   }
}
JSFX.imgFadeOut = function(img)
{
  if(img)
   {
    if(img.state=="ON")
     {
      img.state="FADE_OUT";
      JSFX.startFading();
     }
    else if(img.state == "FADE_IN")
     {
      img.state="FADE_IN_OUT";
     }
    else if(img.state=="FADE_OUT_IN")
     {
      img.next_on == null;
      img.state = "FADE_OUT";
     }
    }
}
JSFX.startFading = function()
{
  if(!JSFX.ImageFadeRunning)
   JSFX.ImageFadeAnimation();
}

JSFX.ImageFadeAnimation = function()
{
	JSFX.ImageFadeRunning = false;
	for(i=0 ; i<document.images.length ; i++)
	{
		var img = document.images[i];
		if(img.state)
		{
			if(img.state == "FADE_IN")
			{
				img.index+=FadeInStep;

				if(img.index > 100)
					img.index = 100;

				if(img.filters)
					img.filters.alpha.opacity = img.index;
				else
					img.style.MozOpacity = img.index/101;

				if(img.index == 100)
					img.state="ON";
				else
					JSFX.ImageFadeRunning = true;
			}
			else if(img.state == "FADE_IN_OUT")
			{
				img.index+=FadeInStep;
				if(img.index > 100)
					img.index = 100;

				if(img.filters)
					img.filters.alpha.opacity = img.index;
				else 
					img.style.MozOpacity = img.index/101;

	
				if(img.index == 100)
					img.state="FADE_OUT";

				JSFX.ImageFadeRunning = true;
			}
			else if(img.state == "FADE_OUT")
			{
				img.index-=FadeOutStep;
				if(img.index < 0)
					img.index = 0;

				if(img.filters)
					img.filters.alpha.opacity = img.index;
				else
					img.style.MozOpacity = img.index/101;


				if(img.index == 0)
					img.state="OFF";
				else
					JSFX.ImageFadeRunning = true;
			}
			else if(img.state == "FADE_OUT_IN")
			{
				img.index-=FadeOutStep;
				if(img.index < 0)
					img.index = 0;

				if(img.filters)
					img.filters.alpha.opacity = img.index;
				else
					img.style.MozOpacity = img.index/101;

				if(img.index == 0)
				{
					img.src = img.next_on;
					img.currSrc = img.next_on;
					img.state="FADE_IN";
				}
				JSFX.ImageFadeRunning = true;
			}
		}
	}
	if(JSFX.ImageFadeRunning)
		setTimeout("JSFX.ImageFadeAnimation()", JSFX.ImageFadeInterval);
}
JSFX.hasOpacity = function(obj)
{
	if(document.layers)
		return false;

	if(window.opera)
		return false;

	if(navigator.userAgent.toLowerCase().indexOf("mac") != -1)
		return false;

	return true;
}
JSFX.fadeIn = function(imgName, rollName)
{
	if(rollName == null)
		rollName=imgName;

	/*** Stop emails because the rollover was named incorrectly ***/
	if(!JSFX.RolloverObjects[rollName])
	{
		JSFX.Rollover.error(rollName);
		return;
	}

	var img = JSFX.findImg(imgName, document);
	if(JSFX.hasOpacity(img))
		JSFX.imgFadeIn(img, JSFX.RolloverObjects[rollName].img_src);
	else
	{
		if(img.offSrc==null)
			img.offSrc=img.src;
		img.src=JSFX.RolloverObjects[rollName].img_src;
	}
}
JSFX.fadeOut = function(imgName)
{
	var img = JSFX.findImg(imgName, document);
	if(JSFX.hasOpacity(img))
		JSFX.imgFadeOut(img);
	else
		img.src=img.offSrc;
}
JSFX.imgOn = function(imgName, rollName)
{
	if(rollName == null)
		rollName=imgName;

	/*** Stop emails because the rollover was named incorrectly ***/
	if(!JSFX.RolloverObjects[rollName])
	{
		JSFX.Rollover.error(rollName);
		return;
	}
	var img = JSFX.findImg(imgName,document);
	if(img.offSrc==null)
		img.offSrc=img.src;
	img.src=JSFX.RolloverObjects[rollName].img_src;
}
JSFX.imgOff = function(imgName)
{
	var img = JSFX.findImg(imgName,document);
	img.src=img.offSrc;
}}