var menuId_0 = '';
var menuId_1 = '';
var menuId_2 = '';
var cellId_0 = '';
var cellId_1 = '';
var cellClass_0 = '';
var cellClass_1 = '';
var subMenuId_0 = '';
var subMenuId_1 = '';
var subMenuId_2 = '';
var clearTimer;
var pendingTimer;
var debugItem = document.getElementById('debug');

function setCellClass(cellId, level) {

//debug.innerHTML = level + '<hr>' + cellId_0 + '<hr>' + cellClass_0 + '<hr>' + cellId_1 + '<hr>' + cellClass_1

	if (level == 0) {
	} else if (level == 1 && cellId_0 != cellId) {
		cellId_0 = cellId;
		cellClass_0 = document.getElementById(cellId).className;
		document.getElementById(cellId).className = 'main_menu main_menu_select'
	} else if (level == 2 && cellId_1 != cellId) {
		cellId_1 = cellId;
		cellClass_1 = document.getElementById(cellId).className;
		if (cellId_1 != '') document.getElementById(cellId).className = 'sub_menu sub_menu_select'
	}

}

function restoreCellClass(level) {

	if (level == 0 && cellId_0 != '') {
		document.getElementById(cellId_0).className = cellClass_0
		cellId_0 = '';
		cellClass_0 = '';
	} else if (level == 1 && cellId_1 != '') {
		document.getElementById(cellId_1).className = cellClass_1
		cellId_1 = '';
		cellClass_1 = '';
	}

}

function pendingMenu(level, horizontal, hOffset, vOffset, parentCellId, currentItem, subMenu) {

	var command = "showMenu('" + level + "'," + horizontal + "," + hOffset + "," + vOffset + ",'" + parentCellId + "','" + currentItem + "','" + subMenu + "')";
	clearTimeout(pendingTimer);
	pendingTimer = setTimeout(command, 250);
//debugItem.innerHTML = command;
}

function testMenu(level, horizontal, hOffset, vOffset, parentCellId, currentItem, subMenu) {

	clearTimeout(clearTimer);

	if ((level == 0) && (menuId_0 != currentItem) && (subMenuId_0 != '')) {
		pendingMenu(level, horizontal, hOffset, vOffset, parentCellId, currentItem, subMenu)
	} else if ((level == 1) && (menuId_1 != currentItem) && (subMenuId_1 != '')) {
		pendingMenu(level, horizontal, hOffset, vOffset, parentCellId, currentItem, subMenu)
	} else if ((level == 2) && (menuId_2 != currentItem) && (subMenuId_2 != '')) {
		pendingMenu(level, horizontal, hOffset, vOffset, parentCellId, currentItem, subMenu)
	} else {
		clearTimeout(pendingTimer);
		showMenu(level, horizontal, hOffset, vOffset, parentCellId, currentItem, subMenu)
	}
	
}

function menuOnPathMouseover(level, horizontal, hOffset, vOffset, parentId, currentItem, subMenu) {

	testMenu(level, horizontal, hOffset, vOffset, parentId, currentItem, subMenu)
}

function menuOnPathMouseout(level) {

	clearTimeout(clearTimer);
	clearTimer = setTimeout('hideMenu(0)', 250);
}

function menuMouseover(level, horizontal, hOffset, vOffset, parentId, currentItem, subMenu) {

	testMenu(level, horizontal, hOffset, vOffset, parentId, currentItem, subMenu)
}

function menuMouseout(level) {

	clearTimeout(clearTimer);
	clearTimer = setTimeout('hideMenu(0)', 250);
}

function menu_click_url(url) {
	document.location = url
}

function showMenu(level, horizontal, hOffset, vOffset, parentCellId, menuItem_id, subMenu_id) {

	hideMenu(level);

	if (subMenu_id != '') {

		var subMenu = document.getElementById(subMenu_id);
	
		with (subMenu.style) {
			display = "block";
			zIndex = 5;
			if (level == 0) {
				if (horizontal) { // horizontal 
					top = vOffset + 'px';
				} else { // vertical
					left = hOffset + 'px';
				}
			} else {
				left = hOffset + 'px';
			}

			var oH = clientWidth() + scrollWidth() - subMenu.offsetWidth - positionX(subMenu)
			if ((level > 0) && (oH < 0)) {
				left = (20 - subMenu.offsetWidth) + 'px';
			}
			
			var oV = clientHeight() + scrollHeight() - subMenu.offsetHeight - positionY(subMenu)
			if (oV < 0) {
				if (isIE) {
					top = oV + 'px'
				} else {
					oV = clientHeight() + scrollHeight() - document.getElementById('banner').offsetHeight - subMenu.offsetHeight - 20;
					top = oV + 'px'
				}
			}
		}
	}

	if (level == 0) {
		menuId_0 = menuItem_id
		subMenuId_0 = subMenu_id;
	} else if (level == 1) {
		menuId_1 = menuItem_id
		subMenuId_1 = subMenu_id;
	} else if (level == 2) {
		menuId_2 = menuItem_id
		subMenuId_2 = subMenu_id;
	}

	setCellClass(parentCellId, level);

}
	
function hideMenu(level) {

	var the_menu = '';

	if (level == 0) {
		hideMenu(2);
		hideMenu(1);
		the_menu = subMenuId_0;
	} else if (level == 1) {
		hideMenu(2);
		the_menu = subMenuId_1;
	} else if (level == 2)
		the_menu = subMenuId_2;
	
	if (the_menu != '') {
		the_menu = document.getElementById(the_menu);
		with (the_menu.style) {
			display = 'none';
			zIndex = 0;
			if (isIE) {
				left = '';
				top = '';
			} else {
				left = '';
				top = '';
			}
		}

		if (level == 0) {
			menuId_1 = '';
			subMenuId_0 = '';
		} else if (level == 1) {
			menuId_2 = '';
			subMenuId_1 = '';
		} else if (level == 2) {
			subMenuId_2 = '';
		}
		
		restoreCellClass(level);
	
	}
}

