/*
	#bounding_fix - content area, critical to make visible
	menu_ec, menuChile - for expand/collapse
	menuPageTabsDiv - wrapper around tabbed content
	b_overlay_cnt - for business overlays
	b_icon - for busines overlays
*/
if (typeof GR == "undefined") {
	GR ={};
}
if (typeof GR.menu == "undefined") {
	GR.menu = {};
}

GR.menu.globalDropOverlay;

/* ----------------------------------------------------------- 
	Loader
   ----------------------------------------------------------- */
GR.menu.pageLoader = function(){

	//attach tab
	var menuPageTabsDiv = document.getElementById("menuPageTabsDiv");
	if(typeof menuPageTabsDiv != 'undefined'){
		var regionTabs = new HRGR.widget.TabView("menuPageTabsDiv"); 
		//highlight tab if region is specified
		var regionCode = HRGR.util.History.getQueryStringParameter("rh");
		GR.menu.highlightRegion(regionTabs,regionCode);
	}
	
	//attach expand/collapse ability	
	var ecNodes = HRGR.util.Dom.getElementsByClassName('menu_ec');
	for(var i=0; i<ecNodes.length; i++){
		HRGR.util.Event.addListener(ecNodes[i], "click", GR.menu.expandcollapse, ecNodes[i]);
		HRGR.util.Event.addListener(ecNodes[i], "mouseover", GR.menu.ecHover, ecNodes[i]);
		HRGR.util.Event.addListener(ecNodes[i], "mouseout", GR.menu.ecHover, ecNodes[i]);
		//close initially
		GR.menu.expandcollapse(null,ecNodes[i],"off");
	}
	
	//attach overlay (business tooltip)
	//GR.menu.loadOverlaysIfOnPage();	
	GR.menu.loadPopupsIfOnPage();
	
	//Make Content Visible (notice this happens after load and as soon as all components are available)
	var invisibleContentArea = document.getElementById("bounding_fix");
	HRGR.util.Dom.setStyle(invisibleContentArea,'visibility','visible');
};

/* ----------------------------------------------------------- 
	Tab Nav
   ----------------------------------------------------------- */
GR.menu.highlightRegion = function(tabViewObj,regionCode){
	if(typeof regionCode == 'undefined'){
		return;
	}
	switch(regionCode){
		case "mb_mregion_2":
			tabViewObj.set('activeIndex',1);
			break;
		case "mb_mregion_1":
			tabViewObj.set('activeIndex',2);
			break;
		case "mb_mregion_3":
			tabViewObj.set('activeIndex',3);
			break;
		case "mb_mregion_4":
			tabViewObj.set('activeIndex',4);
			break;
		case "gcg_mregion_2":
			tabViewObj.set('activeIndex',1);
			break;	
		case "gcg_mregion_1":
			tabViewObj.set('activeIndex',2);
			break;
		case "gcg_mregion_3":
			tabViewObj.set('activeIndex',3);
			break;		
		case "cross_mregion_100":
			tabViewObj.set('activeIndex',1);
			break;
		case "cross_mregion_2":
			tabViewObj.set('activeIndex',2);
			break;	
		case "cross_mregion_1":
			tabViewObj.set('activeIndex',3);
			break;
		case "cross_mregion_3":
			tabViewObj.set('activeIndex',4);
			break;		
	}
}// END GR.menu.highlightRegion

/* ----------------------------------------------------------- 
	Expand/collapse
   ----------------------------------------------------------- */
GR.menu.ecHover = function(e,menuElement) {
	if( HRGR.util.Dom.hasClass(menuElement,"on") ){
		HRGR.util.Dom.removeClass(menuElement,"on");
	}else{
		HRGR.util.Dom.addClass(menuElement,"on");
	}
};//END GR.menu.ecHover
GR.menu.expandcollapse = function(e,menuElement,onOff){
	var liParentNode = menuElement.parentNode;
	if(typeof onOff == 'undefined'){
		onOff="";
	}
	//swap styles for on/off
	if( HRGR.util.Dom.hasClass(menuElement,"menu_active") || onOff == "off" ){
		HRGR.util.Dom.removeClass(menuElement,"menu_active");
	}else{
		HRGR.util.Dom.addClass(menuElement,"menu_active");
	}
	var olNodes = HRGR.util.Dom.getElementsByClassName('menuChild','ol',liParentNode);
	for(var i=0; i<olNodes.length;i++){
		var olNode = olNodes[i];
		var styleState = HRGR.util.Dom.getStyle(olNode,"display");
		if(typeof styleState == 'undefined' || styleState=='none'){
			HRGR.util.Dom.setStyle(olNode,'display','block');			
		} else {
			HRGR.util.Dom.setStyle(olNode,'display','none');			
		}
	}
};

/* ----------------------------------------------------------- 
	Popup
   ----------------------------------------------------------- */
GR.menu.createPopup = function(contentHtml){
	var overlay;
	
	if(typeof GR.menu.globalDropOverlay == 'undefined' || GR.menu.globalDropOverlay == null){
		overlay = new HRGR.widget.Panel("currentContentSheet",
			{ 
			fixedcenter:true, width:"550px", height:"400px" ,
			visible:false, constraintoviewport:true, 
			modal:true, underlay: "matte", close: true}
			);
		GR.menu.globalDropOverlay = overlay;
	}
	overlay = GR.menu.globalDropOverlay ;
	overlay.setHeader("Business Description");
	overlay.setBody('<div id="businessdescriptioncnt">'+contentHtml+'</div>');
	overlay.render(document.body);
	overlay.show();	
	overlay.cfg.setProperty("fixedcenter",false); 
	//set close behavior on mask
	var maskNodes = HRGR.util.Dom.getElementsByClassName('mask');
	for(var i=0; i< maskNodes.length ; i++){
		HRGR.util.Event.addListener(maskNodes[i], 
			"click", GR.menu.destroyPopup);
	}
};//END GR.menu.createPopup 

GR.menu.loadPopupsIfOnPage = function(){
	var businessDescContentNodes = HRGR.util.Dom.getElementsByClassName("b_overlay_cnt");
	var businessDescIconNodes = HRGR.util.Dom.getElementsByClassName("b_icon","a");
	
	for(var i=0; i<businessDescIconNodes.length; i++){
		var refName = businessDescIconNodes[i].href.substr( businessDescIconNodes[i].href.lastIndexOf("#") + 1 );
		businessDescIconNodes[i].href="#";
		businessDescIconNodes[i].onclick="return false;";
		HRGR.util.Event.addListener(businessDescIconNodes[i], 
			"click", showPopup, 
			refName, true);
	}
	
	//Inner method
	function showPopup(e,refName){ 
		var ele = document.getElementById(refName);
		GR.menu.createPopup(ele.innerHTML);
	};

};//END GR.menu.loadPopupsIfOnPage

GR.menu.destroyPopup = function(){
	if(typeof GR.menu.globalDropOverlay != 'undefined' && GR.menu.globalDropOverlay != null){
		GR.menu.globalDropOverlay.destroy();
		GR.menu.globalDropOverlay = null;
	}	
};

/* ----------------------------------------------------------- 
	Overlay (Business Tooltip)  Deprecate
   ----------------------------------------------------------- */
 /* 
GR.menu.dropSheet={};
GR.menu.activeSheet={};

GR.menu.loadOverlaysIfOnPage = function(){
	var businessDescContentNodes = HRGR.util.Dom.getElementsByClassName("b_overlay_cnt");
	var businessDescIconNodes = HRGR.util.Dom.getElementsByClassName("b_icon","a");
	
	var overlayCollection = {};
	GR.menu.overlayCollection = overlayCollection;
	
	GR.menu.dropSheet = GR.menu.setUpDropSheetOverlay();
	
	for(var i=0; i<businessDescIconNodes.length; i++){
		var refName = businessDescIconNodes[i].href.substr( businessDescIconNodes[i].href.lastIndexOf("#") + 1 );
		businessDescIconNodes[i].href="#";
		businessDescIconNodes[i].onclick="return false;";
		HRGR.util.Event.addListener(businessDescIconNodes[i], 
			"click", showOverlayAndDropSheet, 
			refName, true);
	}
	
	//Inner method
	function showOverlayAndDropSheet(e,refName){ 
		GR.menu.dropSheet = GR.menu.setUpDropSheetOverlay();
		GR.menu.dropSheet.show();		
		newObj = GR.menu.setUpCurrentSheetOverlay(refName);
		newObj.show();
	};//END showOverlayAndDropSheet()

};//END GR.menu.loadOverlaysIfOnPage

GR.menu.closeAllOverlay = function(e,obj){
	GR.menu.dropSheet.hide();
	GR.menu.activeSheet.hide();
	return true;
};

GR.menu.setUpDropSheetOverlay = function(){
	var viewportWidth = HRGR.util.Dom.getViewportWidth();
	var viewportHeight = HRGR.util.Dom.getViewportHeight();
	var overlay = new HRGR.widget.Overlay("generatedDropSheet",
		{	x:0, y:0,
			visible:false,
			width:viewportWidth+"px",
			height:viewportHeight+"px"
		}
		);
	HRGR.util.Dom.addClass("generatedDropSheet","dropSheet");
	HRGR.util.Event.addListener("generatedDropSheet", "click", GR.menu.closeAllOverlay);
	overlay.render(document.body);
	return overlay;
};

GR.menu.setUpCurrentSheetOverlay = function(contentId){
	var viewportWidth = HRGR.util.Dom.getViewportWidth();
	var viewportHeight = HRGR.util.Dom.getViewportHeight();
	
	var ele = document.getElementById(contentId);
	
	var overlay = new HRGR.widget.Overlay("testDropSheet",
		{ fixedcenter:true, visible:false, width:"650px" } );	
	overlay.setBody("<div class='menu_popup'>"+ele.innerHTML+"</div>");
	overlay.render(document.body);
	GR.menu.activeSheet = overlay;
	return overlay;
};
*/
/* ----------------------------------------------------------- 
	Main
   ----------------------------------------------------------- */

HRGR.util.Event.addListener(window, "load", GR.menu.pageLoader);