var ImgRoot = "";
var ImgSuffix = ".gif";
var ImgPrefix = "";				//example: 'menu_'
var ImgOverSuffix = "_o.gif";
var MenuLayerName = "";
var MenuClicking = false;
var MenuReset = false;
var ResetTimeout = 400;

var imageStore = new Array();
var imageStore2 = new Array();

function
preloadImage(n, gif, over_gif)
{
	if (!gif) {
		gif = n+ImgSuffix;
	}
	if (!over_gif) {
		over_gif = n+ImgOverSuffix;
	}
	imageStore[n] = new Image;
	imageStore[n].src = ImgRoot+ImgPrefix+gif;
	imageStore[n+"-over"] = new Image;
	imageStore[n+"-over"].src = ImgRoot+ImgPrefix+ over_gif;
}

function
preloadImage2(n, lay, gif, over_gif)
{
	if (!gif) {
		gif = n+ImgSuffix;
	}
	if (!over_gif) {
		over_gif = n+ImgOverSuffix;
	}
	var o = imageStore2[n] = new Object;
	o.layer = "menu-"+lay;
	o.image = new Image;
	o.image.src = ImgRoot+ImgPrefix+gif;
	o.over = new Image;
	o.over.src = ImgRoot+ImgPrefix+over_gif;
}

function findImg(n)
{
	if (document.images) {
		if (document.layers && MenuLayerName) {
			return document.layers[MenuLayerName].document.images[n];
		} else {
			return document.images[n];
		}
	}
}

function findImg2(n)
{
	ret = null;
	if (document.images && n) {
		if (document.layers && imageStore2[n]) {
			ret = document.layers[imageStore2[n].layer].document.images[n];
		} else {
			ret = document.images[n];
		}
	}
	return ret;
}


var resetTimer = 0;

function
setupResetTimer()
{
	if (!resetTimer) {
		resetTimer = setTimeout("resetMenu()", ResetTimeout);
	}
}

function
clearResetTimer()
{
	if (resetTimer) {
		clearTimeout(resetTimer);
		resetTimer = 0;
	}
}

var active = null;
var activeMenu = null;
var selected = null;

var active2 = null;
var selected2 = null;

function doOver(n)
{
	if (active) {
		doOut();
	}
	clearResetTimer();
	active = findImg(n);
	if (active) {
		active.src = imageStore[n+"-over"].src;
	}
	if (!MenuClicking) {
		showMenu(n);
	}
}

function doOver2(n)
{
	if (active2) {
		doOut2();
	}
	active2 = findImg2(n);
	if (active2) {
		active2.src = imageStore2[n].over.src;
	}
}

function doOut()
{
	if (active && active != selected) {
		active.src = imageStore[active.name].src;
		active = null;
	}
	setupResetTimer();
}

function doOutKeep()
{
	setupResetTimer();
}

function doOut2()
{
	if (active2 && active2 != selected2) {
		active2.src = imageStore2[active2.name].image.src;
		active2 = null;
	}
}

function doClick()
{
	if (MenuClicking) {
		showMenu(active.name);
	} else {
		hideActiveMenu();
	}
	if (selected && selected != active) {
		selected.src = imageStore[selected.name].src;
	}
	selected = active;
}

function doClick2()
{
	if (selected2 && selected2 != active2) {
		selected2.src = imageStore2[selected2.name].image.src;
	}
	selected2 = active2;
}

function
showMenu(n)
{
	var tmpMenu = findLayer("menu-"+n);
	if (activeMenu && activeMenu != tmpMenu) {
		hideActiveMenu();
	}
	activeMenu = tmpMenu;
	if (activeMenu) {
		activeMenu.onmouseover = function () {
			clearResetTimer();
		}
		activeMenu.onmouseout = function () {
			setupResetTimer();
		}
		showLayer(activeMenu);
	}
}

function
hideActiveMenu()
{
	if (activeMenu) {
		hideLayer(activeMenu);
		activeMenu = null;
	}
}

var firstMenuName = "";

function
setupMenu(n)
{
	firstMenuName = n;
	resetMenu();
}

function
resetMenu()
{
	if (firstMenuName) {
		doOver(firstMenuName);
	}
}

function
highlight2(n, p)
{
	if (p) {
		doOver(p);
		doClick();
	}
	doOver2(n);
}

function
clearAll()
{
	hideActiveMenu();
	if (selected) {
		selected.src = imageStore[selected.name].src;
		selected = null;
	}
}
