code: function (el, userConfig) {
              /*
                   Note that we don't pass the user config in here yet because 
                   we only want it executed once, at the lowest subclass level
              */
  
              Panel.superclass.init.call(this, el/*, userConfig*/);
  
              this.beforeInitEvent.fire(Panel);
  
              Dom.addClass(this.element, Panel.CSS_PANEL);
  
              this.buildWrapper();
  
              if (userConfig) {
                  this.cfg.applyConfig(userConfig, true);
              }
  
              this.subscribe("showMask", this._addFocusHandlers);
              this.subscribe("hideMask", this._removeFocusHandlers);
              this.subscribe("beforeRender", createHeader);
  
              this.subscribe("render", function() {
                  this.setFirstLastFocusable();
                  this.subscribe("changeContent", this.setFirstLastFocusable);
              });
  
              this.subscribe("show", this.focusFirst);
  
              this.initEvent.fire(Panel);
          }
docs: The Overlay initialization method, which is executed for Overlay and
  all of its subclasses. This method is automatically called by the
  constructor, and  sets up all DOM references for pre-existing markup,
  and creates required markup if it is not already present.
  @method init
  @param {String} el The element ID representing the Overlay <em>OR</em>
  @param {HTMLElement} el The element representing the Overlay
  @param {Object} userConfig The configuration object literal
  containing the configuration that should be set for this Overlay.
  See configuration documentation for more details.