docs: function DropDownMenu( parent, triggerNode, options ){
  		var node = lib.node(parent);
  		if (node) {
  			this._parent = node;
  		} else {
  			throw new Error("Parent node of dropdown menu not found"); //$NON-NLS-0$
  		}
  		
  		options = options || {};
  		this.options = options;
  		
  		// Assign dynamic ids to the dropdown menu node to support multiple drop down menus in the same page
  		this.navDropDownId = this._parent.id + '_navdropdown'; //$NON-NLS-0$
  		this.selectionClass = options.selectionClass;
  		
  		// Create dropdown container and append to parent dom
  		var dropDownContainer = document.createElement("div"); //$NON-NLS-0$
  		dropDownContainer.classList.add("dropdownMenu"); //$NON-NLS-0$
  		dropDownContainer.classList.add("dropdownMenuOpen"); //$NON-NLS-0$
  		dropDownContainer.id = this.navDropDownId; 
  		dropDownContainer.style.display = 'none'; //$NON-NLS-0$
  		this._parent.appendChild(dropDownContainer);
  		this._dropdownMenu = dropDownContainer;
  		
  		// Display trigger node and bind on click event
  		triggerNode = lib.node(triggerNode);
  		if (triggerNode) {
  			this._triggerNode = triggerNode;
  		} else {
  			throw "Trigger node of dropdown menu not found"; //$NON-NLS-0$
  		}
  		if (this._triggerNode.style.visibility === 'hidden') { //$NON-NLS-0$
  			this._triggerNode.style.visibility = 'visible'; //$NON-NLS-0$
  		}
  		
  		if (!options.noClick) {
  			this._triggerNode.onclick = this.click.bind(this);
  		}
  		this._dropdownMenu.addEventListener("keydown", function (e) { //$NON-NLS-0$
  			if (e.keyCode === lib.KEY.ESCAPE) {
  				this.clearPanel();
  			}
  		}.bind(this));
  	}