if(!window.aa)
	aa=new Object();

aa.faderRunning    = false;
aa.faderMinOpacity = 90;
aa.faderAutoUp	 = 5;
aa.faderAutoDown   = 5;
aa.faderSavedOver  = null;
aa.faderSavedOut   = null;
document.write('<STYLE TYPE="text/css">.aafader{ position:relative; filter:alpha(opacity='+aa.faderMinOpacity+'); -moz-opacity:'+aa.faderMinOpacity/101+'}</STYLE>');


aa.fader_actionOnMouseOver = function(e)
{
	srcElement=e ? e.target : event.srcElement;
	
	if(srcElement.className && srcElement.className=="aafader")
		aa.fadeUp(srcElement);

	if(aa.faderSavedOver != null)
		aa.faderSavedOver(e);
}

aa.fader_actionOnMouseOut = function(e)
{
	srcElement=e ? e.target : event.srcElement;

	if(srcElement.className && srcElement.className=="aafader")
		aa.fadeDown(srcElement);

	if(aa.faderSavedOut != null)
		aa.faderSavedOut(e);
}

aa.faderAuto = function(minOpacity, stepUp, stepDown)
{
	if(minOpacity)
		aa.faderMinOpacity = minOpacity;
	if(stepUp)
		aa.faderAutoUp	= stepUp;
	if(stepDown)
		aa.faderAutoDown	= stepDown;


	aa.faderSavedOver = document.onmouseover;
	aa.faderSavedOut  = document.onmouseout;

	document.onmouseover	= aa.fader_actionOnMouseOver ;
	document.onmouseout	= aa.fader_actionOnMouseOut ;
	aa.setMinOpacity(aa.faderMinOpacity);
}

aa.setMinOpacity = function(minOpacity)
{
	if(document.layers) return;

	for(i=0 ; i<document.images.length ; i++)
	{
		var img = document.images[i];
		if(img.className=="aafader")
		{
			if(img.filters)
				img.filters.alpha.opacity = aa.faderMinOpacity;
			else
				img.style.MozOpacity = aa.faderMinOpacity/101;
		}
	}
}

aa.fadeUpImg = function(imgName, step)
{
	if(document.layers || window.opera)
		return;

	img = document.images[imgName];
	if(img)
		aa.fadeUp(img, step);
}

aa.fadeUp = function(img, step)
{

	if(img)
	{
		if(!step) step=aa.faderAutoUp;

		if(img.fade == null)
		{
			img.fade = new Object();
			img.fade.state	 = "OFF";
			img.fade.upStep	 = step;
			img.fade.downStep  = step;
			img.fade.minOpacity  = aa.faderMinOpacity;
			img.fade.index = img.fade.minOpacity;
			
		}
		if(img.fade.state == "OFF")
		{
			img.fade.upStep  = step;
			img.fade.state = "FADE_UP";
			aa.startImageFading();
		}
		else if( img.fade.state == "FADE_UP_DOWN"
			|| img.fade.state == "FADE_DOWN")
		{
			img.fade.upStep  = step;
			img.fade.state = "FADE_UP";
		}
	}
}

aa.fadeDownImg = function(imgName, step)
{
	if(document.layers || window.opera)
		return;

	img = document.images[imgName];
	if(img)
		aa.fadeDown(img, step);
}

aa.fadeDown = function(img, step)
{
	if(img)
	{
		if(!step) step=aa.faderAutoDown;

		if(img.fade.state=="ON")
		{
			img.fade.downStep  = step;
			img.fade.state="FADE_DOWN";
			aa.startImageFading();
		}
		else if(img.fade.state == "FADE_UP")
		{
			img.fade.downStep  = step;
			img.fade.state="FADE_UP_DOWN";
		}
	}
}

aa.startImageFading = function()
{
	if(!aa.faderRunning)
		aa.faderAnimation();
}


aa.faderAnimation = function()
{
	aa.faderRunning = false;
	for(i=0 ; i<document.images.length ; i++)
	{
		var img = document.images[i];
		if(img.fade)
		{
			if(img.fade.state == "FADE_UP")
			{
				img.fade.index+=img.fade.upStep;
				if(img.fade.index > 100)
					img.fade.index = 100;

				if(img.filters)
					img.filters.alpha.opacity = img.fade.index;
				else
					img.style.MozOpacity = img.fade.index/101;

				if(img.fade.index == 100)
					img.fade.state="ON";
				else
					aa.faderRunning = true;
			}
			else if(img.fade.state == "FADE_UP_DOWN")
			{
				img.fade.index+=img.fade.upStep;
				if(img.fade.index > 100)
					img.fade.index = 100;

				if(img.filters)
					img.filters.alpha.opacity = img.fade.index;
				else
					img.style.MozOpacity = img.fade.index/101;
	
				if(img.fade.index == 100)
					img.fade.state="FADE_DOWN";
				aa.faderRunning = true;
			}
			else if(img.fade.state == "FADE_DOWN")
			{
				img.fade.index-=img.fade.downStep;
				if(img.fade.index < img.fade.minOpacity)
					img.fade.index = img.fade.minOpacity;

				if(img.filters)
					img.filters.alpha.opacity = img.fade.index;
				else
					img.style.MozOpacity = img.fade.index/101;

				if(img.fade.index == img.fade.minOpacity)
					img.fade.state="OFF";
				else
					aa.faderRunning = true;
			}
		}
	}

	if(aa.faderRunning)
		setTimeout("aa.faderAnimation()", 40);
}
