// JavaScript Document


//configuration variable
var timeout = 200; //milliseconds
var fadeSpeed = 400; 
var useFade = true;

//timers array
var timers = new Array();

//state array -- by id, value = active, false = inactive
var state = new Array();

var lastOpacity = new Array();

var msie = false;
if( navigator.appNane == "Microsoft Internet Explorer" ) msie = true;

function setMenu(id)
{
		var e = document.getElementById(id);
		e.style.visibility = "visible";
		state[id] = true;
		setOpacity (id, 1);
		if(timers[id]) {
			clearTimeout(timers[id]);
			timers[id] = undefined;
		}
}

function hideMenu( id )
{
		var e = document.getElementById(id);
		state[id] = false;
		e.style.visibility = "hidden";
		if(useFade) setOpacity( id, 1 );
}

function clearMenu( id )
{
		if(useFade) timers[id] = setTimeout( 'fadeMenu("' + id + '" )', timeout );
		else timers[id] = setTimeout( 'hideMenu( "' + id + '")', timeout );
}

function setOpacity(id, value)
{
		var e = document.getElementById(id);
		
		if(state[id]) value = 1;
		else if(lastOpacity[id] && (lastOpacity[id] < value)) value = lastOpacity[id];
		
		if(msie) e.style.filter = 'alpha(opacity=' + value * 100 + ')';
		else e.style.opacity = (value);
		
		if( value == 0) hideMenu( id );
		lastOpacity[id] = value;
}

function fadeMenu ( id )
{
		var start = 0;
		var end = 0;
		var s = Math.round ( fadeSpeed / 25); 
		var timer = 0;
		var i;
		
		state[id] = false;
		
		for( i = s; i >= 0 ; i-- ) {
			setTimeout( "setOpacity('" + id + "'," + ( i / s ) + ")", timer++ * fadeSpeed / s )
		}
}
		
			


