var oH2Menu = {
	aInitObj			: [],
	oSubMenus			: {},
	bClickFlag			: false,
	
	mInit : function(){
		return function(){
			oH2Menu.aInitObj[0] = 'Hawaii2_Menu';
			oTools.mMap(oH2Menu.aInitObj, oH2Menu.mSetup);
		}
	},
	
	mSetup : function(){
		var oMenuSec = document.getElementById('header_portal_menu');
		if(!oMenuSec){alert("'header_portal_menu' is missing!"); return false;}
		var oDiv = document.createElement('DIV');
		oDiv.id = 'hawaii2_portal_submenus_section';
		var aSubMenus = oIThelp.getAllElementsByClassName(oMenuSec, 'submenusection');
		var oB = document.body;
		oB.appendChild(oDiv);
		for(var i = (aSubMenus.length - 1); i > -1 ; i--){
			var oSubMenu = aSubMenus[i];
			var sParentId = oIThelp.mGetAttribute(oSubMenu, 'parentid');
			var sLevel = oIThelp.mGetAttribute(oSubMenu, 'level');
			oDiv.appendChild(oSubMenu);
			oSubMenu.level = sLevel;
			oH2Menu.oSubMenus[sParentId] = oSubMenu;
		}
		if(oClient.bIE)
			document.attachEvent("onclick", oH2Menu.mHideSubMenu);
		else
			document.addEventListener("click", oH2Menu.mHideSubMenu, false);
	},
	
	mExpand : function(oSender, sParentId, isSub){
		oH2Menu.bClickFlag = true;
		var iX = oITHNavs.mFPX(oSender), iY = oITHNavs.mFPY(oSender);
		var iRel = isSub ? oSender.parentNode.offsetWidth : oSender.offsetHeight + 1;
		var oSubMenu = oH2Menu.oSubMenus[sParentId];
		oH2Menu.mManageOpenedSubMenus(oSubMenu.level);
		oSubMenu.opened = true;
		oSubMenu.style.display = 'block'; 
		oSubMenu.style.left = ((isSub ? iRel : 0) + iX) + 'px';
		oSubMenu.style.top = ((isSub ? 0 : iRel) + iY) + 'px';
	},
	
	mEffect : function(oSender, isOver){
		if(isOver) oIThelp.mAddClass(oSender, 'menuover');
		else oIThelp.mRemoveClass(oSender, 'menuover');
	},
	
	mManageOpenedSubMenus : function(sLevel){
		for(var s in oH2Menu.oSubMenus)
			if(oH2Menu.oSubMenus[s].opened && parseInt(oH2Menu.oSubMenus[s].level) >= parseInt(sLevel)){
				oH2Menu.oSubMenus[s].style.display = 'none';
				oH2Menu.oSubMenus[s].opened = false;
			}
	
	},
	
	mHideSubMenu : function(){
		if(oH2Menu.bClickFlag == false)
			for(var s in oH2Menu.oSubMenus){
				if(oH2Menu.oSubMenus[s].opened){
					oH2Menu.oSubMenus[s].style.display = 'none';
					oH2Menu.oSubMenus[s].opened = false;
				}
			}
		else
			oH2Menu.bClickFlag = false;
	}
}

oGod.mOnload ( oH2Menu.mInit() );

