

function show(layer)
{
	var i;
	
	if (layer.constructor != Array)
	{
		layer=[layer];
	}
	
	for (i in layer)
	{
		if (document.all)
		{ //IS IE 4 or 5 (or 6 beta)
			//document.all[layer].style.filter = "alpha(opacity:20)";
			document.all[layer[i]].style.display = "block";
		}
		else if (document.layers)
		{ //IS NETSCAPE 4 or below
			//document.layers[layer].opacity = 0.2;
			document.layers[layer[i]].display = "block";
		}
		else if (document.getElementById && !document.all)
		{
			hza = document.getElementById(layer[i]);
			//hza.style.opacity = 0.2;
			hza.style.display = 'block';
		}
	}
}

function hide(layer)
{
	var i;
	
	if (layer.constructor != Array)
	{
		layer=[layer];
	}
	
	for (i in layer)
	{
		if (document.all)
		{ //IS IE 4 or 5 (or 6 beta)
			//document.all[layer].style.filter = "alpha(opacity:0)";
			document.all[layer[i]].style.display = "none";
		}
		else if (document.layers)
		{ //IS NETSCAPE 4 or below
			//document.layers[layer].opacity = 0;
			document.layers[layer[i]].display = "none";
		}
		else if (document.getElementById &&!document.all)
		{
			hza = document.getElementById(layer[i]);
			//hza.style.opacity = 0;
			hza.style.display = 'none';
		}
	}
}


function swap(layer_hide,layer_show)
{
	//hide(layer_hide);
	//show(layer_show);
	fade(layer_hide,layer_show,250);
}


// the function that performs the fade
/*function swap(layer_hide, layer_show)
{
	Effect.Fade(layer_hide, { duration:.25, from:1.0, to:0.0 });
	Effect.Appear(layer_show, { duration:.25, from:0.0, to:1.0 });
}*/


var FadeLayer=null;


function fade(layer_hide,layer_show,time)
{
	var eshow,ehide,i;
	
	if (layer_hide.constructor != Array)
	{
		layer_hide=[layer_hide];
	}
	
	for (i in layer_hide)
	{
		var element;
		element=document.getElementById(layer_hide[i]);

		if (element != null && element.style.display!='none')
		{
			ehide = element;
		}
	}
	eshow = document.getElementById(layer_show);
	
	if (eshow == ehide) return;
	
	if (FadeLayer != null)
	{
		if (FadeLayer == eshow)
		{
			FadeLayer.FadeShow = null;
		}
		else (FadeLayer.FadeShow != eshow)
		{
			FadeLayer.FadeShow = eshow;
		}
	}
	else
	{
		FadeLayer = ehide;
		FadeLayer.FadeShow = eshow;
		FadeLayer.FadeOpacity = 1000;
		setTimeout("animateFade(" + new Date().getTime() + "," + time + ")",20);
	}
	
	// setup the hide element to fade out
	//if ((layer_fade != eshow && ehide.FadeToo != layer_show) ||
	//	(layer_fade == ehide && layer_fade.FadeToo != layer_show))
	/*if (layer_fade == null || (layer_fade != null && layer_fade == ehide && ehide.FadeToo!=eshow))
	{
		ehide.FadeToo = eshow;
		ehide.FadeTime = time;
		eshow.FadeToo = null;
		eshow.FadeTime = time;
	} else if (layer_fade != null && layer_fade == ehide && layer_fade.FadeToo == null)
	{
		layer_fade.FadeToo = eshow;
		ehide.FadeTime = time;
		eshow.FadeToo = null;
		eshow.FadeTime = time;
	}*/
	/* else if (layer_fade != null && layer_fade.FadeToo == null)
	{
		layer_fade.FadeToo = layer_show;
		layer_fade.FadeTimer = new Date().getTime()+layer_fade.FadeTime;
	}*/
	
	/*if (layer_fade == null)
	{
		layer_fade=ehide;
		layer_fade.FadeTimer = new Date().getTime()+layer_fade.FadeTime;
		setTimeout("animateFade("+new Date().getTime()+")",100);
	}*/
}

function animateFade(lTick,fTime)
{
	var cTick = new Date().getTime();
	var eTick = ((cTick - lTick) * 1000) / fTime;
	//FadeLayer.FadeTimer=cTick;
	
	//if (layer_fade==null) return;
	
	//if (document.all)
	//{ //IS IE 4 or 5 (or 6 beta)
		//document.all[layer].style.filter = "alpha(opacity:0)";
		//document.all[layer].style.display = "none";
		//layer_fade.style.filter = "alpha(apacity:
	//}
	//else if (document.layers)
	//{ //IS NETSCAPE 4 or below
		//document.layers[layer].opacity = 0;
		//document.layers[layer].display = "none";
	//}
	//else 
	//if (document.getElementById && !document.all)
	{
		if (FadeLayer.FadeShow == null)
		{
			// we are fading in
			FadeLayer.FadeOpacity += eTick;
			
			if (FadeLayer.FadeOpacity >= 1000)
			{
				// we are done
				FadeLayer.FadeOpacity = null;
				FadeLayer.style.opacity = 1;
				FadeLayer.style.filter = "alpha(opacity:100)";
				FadeLayer = null;
			}
		}
		else
		{
			// we are fading out
			FadeLayer.FadeOpacity -= eTick;
			
			if (FadeLayer.FadeOpacity <= 0)
			{
				var Layer=FadeLayer
				
				FadeLayer = FadeLayer.FadeShow;
				
				// we've faded out
				Layer.FadeOpacity = 0;
				Layer.style.opacity = 0;
				Layer.style.filter = "alpha(opacity:0)";
				Layer.style.display = "none";
				
				// fade in new layer
				FadeLayer.FadeOpacity = 0;
				FadeLayer.style.opacity = 0;
				FadeLayer.style.filter = "alpha(opacity:0)";
				FadeLayer.style.display = "block";

				Layer.FadeShow = null;
			}
		}
	}

	if (FadeLayer != null)
	{
		FadeLayer.style.opacity = FadeLayer.FadeOpacity/1000;
		FadeLayer.style.filter = "alpha(opacity:" + (FadeLayer.FadeOpacity/10) + ")";
		//FadeLayer.filter.alpha.opacity = FadeLayer.FadeOpacity/10;
		
		setTimeout("animateFade(" + cTick + "," + fTime + ")", 20);
	}
}


function changeStyle(cName, eName, value)
{
	for (var s = 0; s<document.styleSheets.length; s++)
	{
		var sheet = document.styleSheets[s];
		var rules = (typeof sheet.cssRules != "undefined") ?
			sheet.cssRules : ((typeof sheet.rules != "undefined") ? sheet.rules
			: null );
		
		for (var r = 0; rules && r < rules.length; r++)
		{
			var name = rules[r].selectorText;
			if (name == cName)
			{
				if (rules[r].style[eName])
				{
					rules[r].style[eName] = value;
				}
				else
				{
					if (sheet.insertRule)
					{
						sheet.insertRule(cName+' { '+eName+': '+value+'; }',rules.length);
					}
					else if (sheet.addRule)
					{
						sheet.addRule(cName,eName+': '+value+';');
					}
				}
				break;
			}
		}
	}
}

