﻿///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Unselects the identified menu; if there is a folder-button, 
// then the class is updated to an unselected state. Then 
// hides the associated submenu items:
function __ekFlexMenu_unSelectSubmenu(idString, topLevelUIOverride) {
	if (idString && idString.length) {
		var overrideTopLevelUI = false;
		if (ekFlexMenu.isDefinedNotNull(topLevelUIOverride)) {
			overrideTopLevelUI = topLevelUIOverride;
		}
	    var menuSubmenuId = ekFlexMenu.parseMenuSubmenuIdString(idString);
	    
	    if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
	        if (("undefined" != typeof selparentid) && ("0" != selparentid))
	        {
			    if ((menuSubmenuId != selparentid) && ((ekFlexMenu.private_getSubmenuId(menuSubmenuId) == 0) 
				    || ((ekFlexMenu.private_getSubmenuId(menuSubmenuId) > 0) 
				    && (overrideTopLevelUI || !this.private_isSlaveControl || !this.isTopLevelUI(menuSubmenuId))))) {
				    var btnObj = this.getFolderButtonObject(menuSubmenuId);
    								
				    if (ekFlexMenu.private_isValidSubmenuButton(btnObj)) {				
					    var wasHovering = (ekFlexMenu.hasClassName(btnObj, ekFlexMenu_classNames.buttonHover)
						    || ekFlexMenu.hasClassName(btnObj, ekFlexMenu_classNames.buttonSelectedHover));
    					
					    if (wasHovering) {
						    ekFlexMenu.removeClassName(btnObj, ekFlexMenu_classNames.buttonSelectedHover);
						    ekFlexMenu.addClassName(btnObj, ekFlexMenu_classNames.buttonHover);
					    }
					    else {
						    ekFlexMenu.removeClassName(btnObj, ekFlexMenu_classNames.buttonSelected);
						    ekFlexMenu.addClassName(btnObj, ekFlexMenu_classNames.button);
					    }
				    }
    				
				    var itmObj = this.getSubmenuItemsObject(menuSubmenuId);
				    // Don't hide slave containers:
				    if (!(this.private_isSlaveControl 
					    && (ekFlexMenu.submenuIsTopLevel(menuSubmenuId) 
						    || ekFlexMenu.hasClassName(itmObj, ekFlexMenu_classNames.slaveContainer)))) {						
					    if (ekFlexMenu.private_isValidSubmenuItems(itmObj)) {
						    ekFlexMenu.removeClassName(itmObj, ekFlexMenu_classNames.submenuItems);
						    ekFlexMenu.addClassName(itmObj, ekFlexMenu_classNames.submenuItemsHidden);
					    }
				    }

				    this.unMarkParentSubmenu(menuSubmenuId);
			    }
			}else{
			
			        if (((ekFlexMenu.private_getSubmenuId(menuSubmenuId) == 0) 
				    || ((ekFlexMenu.private_getSubmenuId(menuSubmenuId) > 0) 
				    && (overrideTopLevelUI || !this.private_isSlaveControl || !this.isTopLevelUI(menuSubmenuId))))) {
				    var btnObj = this.getFolderButtonObject(menuSubmenuId);
    								
				    if (ekFlexMenu.private_isValidSubmenuButton(btnObj)) {				
					    var wasHovering = (ekFlexMenu.hasClassName(btnObj, ekFlexMenu_classNames.buttonHover)
						    || ekFlexMenu.hasClassName(btnObj, ekFlexMenu_classNames.buttonSelectedHover));
    					
					    if (wasHovering) {
						    ekFlexMenu.removeClassName(btnObj, ekFlexMenu_classNames.buttonSelectedHover);
						    ekFlexMenu.addClassName(btnObj, ekFlexMenu_classNames.buttonHover);
					    }
					    else {
						    ekFlexMenu.removeClassName(btnObj, ekFlexMenu_classNames.buttonSelected);
						    ekFlexMenu.addClassName(btnObj, ekFlexMenu_classNames.button);
					    }
				    }
    				
				    var itmObj = this.getSubmenuItemsObject(menuSubmenuId);
				    // Don't hide slave containers:
				    if (!(this.private_isSlaveControl 
					    && (ekFlexMenu.submenuIsTopLevel(menuSubmenuId) 
						    || ekFlexMenu.hasClassName(itmObj, ekFlexMenu_classNames.slaveContainer)))) {						
					    if (ekFlexMenu.private_isValidSubmenuItems(itmObj)) {
						    ekFlexMenu.removeClassName(itmObj, ekFlexMenu_classNames.submenuItems);
						    ekFlexMenu.addClassName(itmObj, ekFlexMenu_classNames.submenuItemsHidden);
					    }
				    }

				    this.unMarkParentSubmenu(menuSubmenuId);
			    }
			
			
			
			
			}
		}
	}
}
