// JavaScript Document
//Dropdown menu

//Config vars
var timeout = 250;
var fadeSpeed = 500;
var useFade = true;

//Timers Array
var timers = new Array();

//State array
var state = new Array();

//Last opacity used to prevent from mulitple timers from fade flickering
var lastOpacity = new Array();

//IE opacity
var msie = false;
if(navigator.appName == "Microsoft Internet Explorer"){
	msie = true;
}

function setMenu(eId){
	
	var e = document.getElementById(eId);
	
	e.style.visibility = "visible";
	
	state[eId] = true;
	setOpacity(eId,1);
	
	if(timers[eId]){
		
		clearTimeout(timers[eId]);
		timers[eId] = undefined;
	}
	
}

function hideMenu(eId){
	
	var e = document.getElementById(eId);	
	state[eId] = false;
	e.style.visibility = "hidden";
	
	if(useFade){
		
		setOpacity(eId,1);
	}
}

function clearMenu(eId){
	
	if(useFade){
		
		timers[eId] = setTimeout('fadeMenu("'+ eId +'")',timeout);
	}
	else{
		
		timers[eId] = setTimeout('hideMenu("'+ eId +'")',timeout);
	}
}

//Set opacity method
function setOpacity(eId,val){
	
	var e = document.getElementById(eId);
	
	
	if(state[eId]){
		//Menu fade was interrupted
		val= 1;
	}
	else if(lastOpacity[eId] && (lastOpacity[eId] < val)){
		
		//Prevents flicker if multiple times menu item is clicked
		val = lastOpacity[eId];
	}
		
		if(msie){
			
			e.style.filter = 'alpha(opacity=' + val * 100 +  ')';
		}
		else{
			e.style.opacity = (val);
		}
		
		if(val == 0){
			
			hideMenu(eId);
		}
		
		lastOpacity[eId] = val;
	
}

function fadeMenu(eId){
	
	var start = 0;
	var end = 0;
	var s = Math.round(fadeSpeed / 25);
	var timer = 0;
	var i;
	
	state[eId] = false;
	
	for(i=s; i>=0; i--){
		
		setTimeout("setOpacity('"+ eId + "'," + (i / s) + ")",timer++ * fadeSpeed / s);
	}
}
