function OnMainMenuOver(obj, id) {
    var objMenu = JS$(obj.arrMenu[id].idMenu),
		objLink = JS$(obj.arrMenu[id].idLink);
    if (objMenu && objLink) {
        if (objMenu.style.visibility != 'visible') {
			var xy = JSLIB.dom.getXY(objLink);
            objMenu.style.left = (xy[0] + obj.offsetX) + 'px';
            objMenu.style.top = (xy[1] + obj.offsetY) + 'px';
            objMenu.style.visibility = 'visible';
        }
        obj.arrMenu[id].bHiding = false;
        
        if (obj.arrMenu[id].parentMenu) {
        	var parent = window[obj.arrMenu[id].parentMenu]["arrMenu"][obj.arrMenu[id].parentMenuItem];
        	if (parent) {
        		parent.bHiding = false;
        	}
        }
    }
    // hide all other submenu
    for (var i = 0; i < obj.arrMenu.length; i ++) {
        if (i != id) {
            MainMenuHide(obj, i);
        }
    }
}

function OnMainMenuOut(obj, i) {
    // delay hiding submenu since the cursor may be moving from main menu to its submenu.
    // if so, cancel hiding the submenu
    obj.arrMenu[i].bHiding = true;
    window.setTimeout('MainMenuHide(' + obj.name + ', ' +i+')', 150);
}

function MainMenuHide(obj, i) {
	var elem=JS$(obj.arrMenu[i].idMenu);
    if (elem) {
        if (obj.arrMenu[i].bHiding) {
            elem.style.visibility = 'hidden';
	        if (obj.arrMenu[i].parentMenu) {
	        	var parent = window[obj.arrMenu[i].parentMenu]["arrMenu"][obj.arrMenu[i].parentMenuItem];
	        	if (parent) {
	        		var parentElem=JS$(parent.idMenu);
	        		if (parentElem) {
	        			parentElem.style.visibility = 'hidden';
	        		}
	        	}
	        }            
		}
        obj.arrMenu[i].bHiding = false;
    }
}

// update position. firefox may display the layer before moving it.
function MainMenuInit(obj) {
    for (var i = 0; i < obj.arrMenu.length; i ++) {
        var objMenu = JS$(obj.arrMenu[i].idMenu);
        var objLink = JS$(obj.arrMenu[i].idLink);
        if (objMenu) {
			var xy = JSLIB.dom.getXY(objLink);
            objMenu.parentNode.removeChild(objMenu);
            document.body.appendChild(objMenu);
            objMenu.style.left = (xy[0] + obj.offsetX) + 'px';
            objMenu.style.top = (xy[1] + obj.offsetY) + 'px';
        }
    }
}

