/**********************************************
 * EpicNav 1.0
 * (Fading Menu With Drop-Downs)
 * By Natalie Sklobovskaya (natalie-star.net)
 * Drop-down menu code based on original from
 * javascript-array.com
 * UNDER UNITED STATES COPYRIGHT LAW, THIS CODE MAY NOT BE REPRODUCED WITHOUT PERMISSION
 **********************************************/

/******** Configuration & Settings *********/

var fadeSpeed = 250;			// Fade time period in milliseconds (1000 ms = 1 second)
var freq = 5; 					// How many frames in this time period (higher number will produce "smoother" fades, but will also be rougher on the browser)
var timeOut	= 0;				// Delay (in milliseconds) before fading out a menu
var delay = 0;					// Delay before fading in a menu item and its dropdown

/***** Do not modify below this line *****/

var fadeOutFreq = freq;			
var dropDownMenu = null;
var noFadeIn = null;
var noFadeOut = null;

var closeTimer = new Array();
closeTimer['dd_etc'] = null;
closeTimer['dd_souvenirs'] = null;

function db(text) {
	document.getElementById("content").innerHTML = document.getElementById("content").innerHTML + "<br>" + text;
}

function fadeMenu(fadeInId, fadeOutId) {
	var fadeInItem = document.getElementById(fadeInId);
	if (!(fadeInItem && fadeInItem.style.opacity == "1"))	
		setTimeout("interFade('" + fadeInId + "', '" + fadeOutId + "', '1', '0', '0')", delay);
}

function forceFadeMenu(fadeInId, fadeOutId, fadeDelay) {
	setTimeout("interFade('" + fadeInId + "', '" + fadeOutId + "', '1', '1', '0')", fadeDelay);
}

function fadeDropDown(fadeInId, fadeOutId, fadeDelay) {
	var fadeInItem = document.getElementById(fadeInId);
	if (!(fadeInItem && fadeInItem.style.opacity == "1"))	
		setTimeout("interFade('" + fadeInId + "', '" + fadeOutId + "', '1', '0', '1')", fadeDelay);
}

function interFade(fadeInId, fadeOutId, level, ignore, hide) {
	var opacity = parseFloat(1/freq) * level;
	var inverseOpacity = 1-(parseFloat(1/fadeOutFreq) * level);	
	var fadeIn = document.getElementById(fadeInId);
	var fadeOut = document.getElementById(fadeOutId);

	if (fadeIn && (fadeInId != noFadeIn || ignore == 1)) {
		if (opacity > '0') 
			fadeIn.style.display = "block";
				
		fadeIn.style.opacity = opacity;
		fadeIn.style.filter = "alpha(opacity = " + (opacity * 100) + ")";
	}
	if (fadeOut && (fadeOutId != noFadeOut || ignore == 1)) {
		fadeOut.style.opacity = inverseOpacity;
		fadeOut.style.filter = "alpha(opacity = " + (inverseOpacity * 100) + ")";
	}
	
	if (level < freq) {
		var nextLevel = parseInt(level) + 1;
		setTimeout("interFade('" + fadeInId + "', '" + fadeOutId + "', '" + nextLevel + "', '" + ignore + "', '" + hide + "')", fadeSpeed / freq);
	}
	else {		
		if (hide == 1 && fadeOut) {	
			fadeOut.style.display = "none";
		}
		return;
	}
}

function openDropDown(id, lockInvisible, lockVisible) {
	cancelClosing(id);
	fadeMenu(lockVisible, lockInvisible);
	dropDownMenu = document.getElementById(id);
	fadeDropDown(dropDownMenu.id, null, delay);	
	noFadeIn = lockInvisible;
	noFadeOut = lockVisible;
	
	//db("<br/>Opened Id: " + id + "<br/>nfin: " + noFadeIn + "<br/>fout: " + noFadeOut);
	
}

function close(id, fIn, fOut) {	
	fadeDropDown(null, id, delay);	
	forceFadeMenu(fIn, fOut, delay);
	noFadeIn = null;
	noFadeOut = null;	

	//db("<br/>Closed Id: " + id + "<br/>nfin: " + noFadeIn + "<br/>fout: " + noFadeOut);
	//cancelClosing(dropDownMenu.id);	
}

function startClosing(id, fIn, fOut) {
	closeTimer[id] = window.setTimeout("close('" + id + "', '" + fIn + "', '" + fOut + "')", timeOut);
}

function cancelClosing(id) {
	if (closeTimer[id]) {
		window.clearTimeout(closeTimer[id]);
		closeTimer[id] = null;
	}
}

document.onClick = close; 

