times=new Array();
duration=1000;
waiting=25;
do_fade=true;

function fade_in(menukey,init)
{
	if (do_fade==false)
		return false;

	if (typeof(init)=="undefined")
		init=true;

	if (menukey!=currsite)
	{
		if (init==true)
		{
			currdate=new Date();

			if(typeof(times[menukey]) == "undefined" || times[menukey]==null)
			{
				times[menukey]=new Array();
				times[menukey]["laststep"]=0;
				times[menukey]["start"]=currdate.getTime();

				sei_layer_transparency(menukey,0);
				sei_layer_set_style(menukey, "top", sei_layer_get_offset(currsite, "top"));
				sei_layer_set_style(menukey, "left", sei_layer_get_offset(currsite, "left"));
				sei_layer_show(menukey);
			}
			else
			{
				times[menukey]["start"]=currdate.getTime()-((duration/100)*times[menukey]["laststep"]);
				window.clearTimeout(times[menukey]["fade"]);
			}

			times[menukey]["fade"]=window.setTimeout("fade_in('"+menukey+"', false)",waiting);
		}
		else
		{
			currdate=new Date();

			currdate=currdate.getTime();
			startdate=times[menukey]["start"];

			currstep=Math.round(100/duration*(currdate-startdate));

			if (currstep<100)
			{
				sei_layer_transparency(menukey,currstep);
				times[menukey]["fade"]=window.setTimeout("fade_in('"+menukey+"', false)",waiting);
				times[menukey]["laststep"]=currstep;
			}
			else
			{
				sei_layer_transparency(menukey,100);
				times[menukey]=null;
			}
		}
	}
}

function fade_out(menukey,init)
{
	if (do_fade==false)
		return false;

	if (typeof(init)=="undefined")
		init=true;

	if (menukey!=currsite)
	{
		if (init==true)
		{
			currdate=new Date();

			if(typeof(times[menukey]) == "undefined" || times[menukey]==null)
			{
				times[menukey]=new Array();
				times[menukey]["laststep"]=100;
				times[menukey]["start"]=currdate.getTime();

				sei_layer_transparency(menukey,100);
				sei_layer_set_style(menukey, "top", sei_layer_get_offset(currsite, "top"));
				sei_layer_set_style(menukey, "left", sei_layer_get_offset(currsite, "left"));
				sei_layer_show(menukey);
			}
			else
			{
				times[menukey]["start"]=currdate.getTime()-(duration-((duration/100)*times[menukey]["laststep"]));
				window.clearTimeout(times[menukey]["fade"]);
			}

			times[menukey]["fade"]=window.setTimeout("fade_out('"+menukey+"', false)",waiting);
		}
		else
		{
			currdate=new Date();

			currdate=currdate.getTime();
			startdate=times[menukey]["start"];

			currstep=100-Math.round(100/duration*(currdate-startdate));

			if (currstep>0)
			{
				sei_layer_transparency(menukey,currstep);
				times[menukey]["fade"]=window.setTimeout("fade_out('"+menukey+"', false)",waiting);
				times[menukey]["laststep"]=currstep;
			}
			else
			{
				sei_layer_transparency(menukey,0);
				sei_layer_hide(menukey);
				times[menukey]=null;
			}
		}
	}
}

function fade_stop(menukey)
{
	do_fade=false;
	sei_layer_transparency(menukey,100);
	times[menukey]=null;
	sei_layer_set_style(menukey, "top", sei_layer_get_offset(currsite, "top"));
	sei_layer_set_style(menukey, "left", sei_layer_get_offset(currsite, "left"));
	sei_layer_show(menukey);
}
