

function change_style(name,style)
{
	var i;
	
	if (name.constructor != Array)
	{
		name=[name];
	}
	
	for (i in name)
	{
		if (name[i].indexOf('-')>0)
		{
			if (document.all)
			{ //IS IE 4 or 5 (or 6 beta)
				//document.all[layer].style.filter = "alpha(opacity:20)";
				
				// check all object names
				for (var n=0;n<document.all.length;n++)
				{
					if (document.all[n].id==name[i]) document.all[n].style.display = style;
				}
			}
			else if (document.layers)
			{ //IS NETSCAPE 4 or below
				//document.layers[layer].opacity = 0.2;
				//document.layers[layer[i]].display = "block";
				for (var n=0;n<document.layers.length;n++)
				{
					if (document.layers[n].id==name[i]) document.layers[n].display = style;
				}
			}
			else if (document.getElementsByName)
			{
				/* all new browsers */
				var e = document.getElementsByTagName("*"); // yes, wildcards do exist
				for (var n=0;n<e.length;n++)
				{
					if (e[n].id==name[i])
					{
						 // you probably don't want to hide *all* elements
						e[n].style.display = style;
					}
				}
				//hza = document.getElementById(layer[i]);
				//hza.style.opacity = 0.2;
				//hza.style.display = 'block';
			}
		}
		else
		{
			if (document.all)
			{ //IS IE 4 or 5 (or 6 beta)
				//document.all[layer].style.filter = "alpha(opacity:20)";
				
				// check all object names
				for (var n=0;n<document.all.length;n++)
				{
					if (document.all[n].id.indexOf(name[i]+'-')==0) document.all[n].style.display = style;
				}
			}
			else if (document.layers)
			{ //IS NETSCAPE 4 or below
				//document.layers[layer].opacity = 0.2;
				//document.layers[layer[i]].display = "block";
				for (var n=0;n<document.layers.length;n++)
				{
					if (document.layers[n].id.indexOf(name[i]+'-')==0) document.layers[n].display = style;
				}
			}
			else if (document.getElementsByName)
			{
				/* all new browsers */
				var e = document.getElementsByTagName("*"); // yes, wildcards do exist
				for (var n=0;n<e.length;n++)
				{
					if (e[n].id.indexOf(name[i]+'-')==0)
					{
						 // you probably don't want to hide *all* elements
						e[n].style.display = style;
					}
				}
				//hza = document.getElementById(layer[i]);
				//hza.style.opacity = 0.2;
				//hza.style.display = 'block';
			}
		}
	}
}

function show(name)
{
	if (name.constructor != Array)
	{
		name=[name];
	}
	
	for (var i=0;i<name.length;i++)
	{
		var c=name[i].indexOf('-');
		if (c>0) change_style(name[i].substring(0,c),'none');
		change_style(name[i],'block');
	}
}

function hide(name)
{
	change_style(name,'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(object,name_show,time)
{
	var eshow,ehide,i;
	
	/* find parent name, this is done by parsing through the parents until a name without a - is found */
	if (name_show.indexOf('-')<=0)
	{
		var parent=object;
		
		while (parent!=null && parent.id!=null && (parent.id.length==0 || parent.id.indexOf('-')>0))
		{
			parent=parent.parentNode;
		}
		
		if (parent!=null)
		{
			/* show the selected element */
			name_show=parent.id+'-'+name_show;
		}
	}
	
	//if (document.all)
	{
		/* don't do fade for IE because it doesn't work very well */
		show(name_show);
	}
	/*else
	{
		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);
		}
	}*/
}

function animateFade(lTick,fTime)
{
	var cTick = new Date().getTime();
	var eTick = ((cTick - lTick) * 1000) / fTime;
	
	//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) + ")";
		
		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;
			}
		}
	}
}


