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
              */
  
              Overlay.superclass.init.call(this, el/*, userConfig*/);
  
              this.beforeInitEvent.fire(Overlay);
  
              Dom.addClass(this.element, Overlay.CSS_OVERLAY);
  
              if (userConfig) {
                  this.cfg.applyConfig(userConfig, true);
              }
  
              if (this.platform == "mac" && UA.gecko) {
  
                  if (! Config.alreadySubscribed(this.showEvent,
                      this.showMacGeckoScrollbars, this)) {
  
                      this.showEvent.subscribe(this.showMacGeckoScrollbars, 
                          this, true);
  
                  }
  
                  if (! Config.alreadySubscribed(this.hideEvent, 
                      this.hideMacGeckoScrollbars, this)) {
  
                      this.hideEvent.subscribe(this.hideMacGeckoScrollbars, 
                          this, true);
  
                  }
              }
  
              this.initEvent.fire(Overlay);
          }
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.