//menu.js
//Simple DOM dynamic menu with IE support
//Version 1.0 created January 13, 2010
//based on the script by Bill Weinman bw.org ©2009 BHG LLC

//config vars
var timeout = 100; //msecs
var fadeSpeed = 500; //msecs
var useFade = true;
var timers = new Array();
var state = new Array();
var lastOpacity = new Array(); //to reduce flicker between fades

//IE detection
var msie = false;
if( navigator.appname == "Microsoft Internet Explorer" ) msie = true;

//call from HTML to set menu
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;
	}
}

//set element to hidden and reset opacity
function hideMenu( id )
{
	var e = document.getElementById(id);
	state[id] = false;
	e.style.visibility = "hidden";
	if(useFade) setOpacity( id, 1 );
}

//call from HTML to hide menu using fade if enabled
function clearMenu( id )
{
	if(useFade) timers[id] = setTimeout( 'fadeMenu( "' + id + '")', timeout );
	else timers[id] = setTimeout( 'hideMenu( "' + id + '")', timeout );
}

//set opacity 
function setOpacity( id, value )
{
	var e = document.getElementById(id);
	
	if (state[id]) value = .8; 
	else if (lastOpacity[id] && (lastOpacity[id] < value)) value = lastOpacity[id];// prevent flicker
	
	if(msie) e.style.filter = 'alpha(opacity=' + value * 100 + ')'; // for IE
	else e.style.opacity = (value); // standard DOM
	
	if( value == 0 ) hideMenu( id );
	lastOpacity[id] = value;
}

//fade menu
function fadeMenu ( id )
{
	var start = 0;
	var end = 0;
	var s = Math.round( fadeSpeed / 25 ); // msec
	var timer = 0;
	var i;
	
	state[id] = false;
	for( i = s; i >= 0 ; i-- ) {
		setTimeout( "setOpacity('" + id + "'," + ( i / s ) + ")", timer++ * fadeSpeed / s)
	}
}
	
function toggleMe(a){
  var e=document.getElementById(a);
  if(!e)return true;
  if(e.style.display=="none"){
    e.style.display="block"
  } else {
    e.style.display="none"
  }
  return true;
}



