
hideMenuTimer = null;
aryOriginalImgSrc = new Array();
aryMenuLayers = new Array();

// ########################################################
// CONFIGURATION OPTIONS
// --------------------------------------------------------
// delay before menus hide (1000 = 1 second)
	menuDelay = 250;
// --------------------------------------------------------
// y axis position of the menus
	menuYpos = 40;
// --------------------------------------------------------
// ########################################################

function showSubMenu(imgID,swapImg,divName) {
if (document.getElementById) {
if (document.getElementById(imgID)) {

	// add requested div to layer array
	if (!aryMenuLayers[divName]) {aryMenuLayers[divName] = 0;}

	// get the image object from the passed ref
	var objImg = document.getElementById(imgID);

	// clear menu delay timer
	clearTimer();

	// reset image swap states
	resetImages();

	// do img swap if requested
	if (swapImg) {
		swapImage(imgID,swapImg);
	}

	// get position of passed image object
	var xpos = findPosX(objImg);
	var ypos = findPosY(objImg);

	// hide all menus
	for (var i in aryMenuLayers) {
		if (document.getElementById(i)) {
			document.getElementById(i).style.visibility = "hidden";
		}
	}

	// position and show requested menu
	if (divName) {
		document.getElementById(divName).style.visibility = "visible";
		document.getElementById(divName).style.left = xpos - 1;
		document.getElementById(divName).style.top = ypos + menuYpos;
	}
}}}
//
function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}
//
function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
//
function menuItemOver() {
clearTimer();
}
//
function hideMenus() {
hideMenuTimer = setTimeout("doHideMenus()", menuDelay);
}
// reset images
function resetImages() {
for (i in aryOriginalImgSrc) {
	document.getElementById(i).src = aryOriginalImgSrc[i];
}
}
// swap image
function swapImage(imgID,swapImg) {

// get the image object from the passed ref
	var objImg = document.getElementById(imgID);

if (!aryOriginalImgSrc[objImg.id]) {
	aryOriginalImgSrc[objImg.id] = objImg.src;
}
	document.getElementById(objImg.id).src = swapImg;
}
//
function doHideMenus() {
	clearTimer();
	// hide all menus
	for (var i in aryMenuLayers) {
		if (document.getElementById(i)) {
			document.getElementById(i).style.visibility = "hidden";
		}
	}
	// reset image src's
	resetImages();
}
//
function clearTimer() {
if (hideMenuTimer) {
	clearTimeout(hideMenuTimer);
	hideMenuTimer = null;
}
}
