// menu.js
// simple dynamic menu

var timeout = 100;
var fadeSpeed = 200;
var useFade = true;

var timers = new Array ();

var state = new Array();

var lastOpacity = new Array ();

var msie = false;
if( navigator.appName == "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 );
	}
}
