docs: function () {
              var cfg = this._cfg;
              var modal = cfg.modal;
  
              if (this._showBack != null) {
                  this._showBack();
                  this._showBack = null;
              }
  
              if (this._popup) {
                  this.waiReadText(cfg.waiCloseMsg);
  
                  this._destroyDraggable();
                  this._destroyResizable();
  
                  if (cfg.maximized) {
                      this._setContainerOverflow(this._optionsBeforeMaximize.containerOverflow);
                  }
  
                  this._domElt = null;
                  this._titleBarDomElt = null;
                  this._titleDomElt = null;
                  if (this._closeDelegateId) {
                      ariaUtilsDelegate.remove(this._closeDelegateId);
                  }
                  if (this._maximizeDelegateId) {
                      ariaUtilsDelegate.remove(this._maximizeDelegateId);
                  }
  
                  this._popup.close();
                  this._popup.$unregisterListeners(this);
                  this._popup.$dispose();
                  this._popup = null;
                  PopupContainerManager.releasePopupContainer(this._popupContainer);
                  this._popupContainer = null;
  
                  ariaTemplatesLayout.$removeListeners({
                      "viewportResized" : this._onViewportResized,
                      scope : this
                  });
  
                  if (modal) {
                      var previouslyFocusedElement = this._previouslyFocusedElement;
                      if (cfg.restoreFocusOnClose && ariaUtilsDom.isInDom(previouslyFocusedElement) && !/^body$/i.test(previouslyFocusedElement.tagName)) {
                          setTimeout(function () {
                              try {
                                  // On IE 7 and 8, focusing an element which is no longer in the DOM
                                  // throws the "Unexpected call to method or property access." exception
                                  previouslyFocusedElement.focus();
                              } catch (e) {}
                          }, 0);
                          this._previouslyFocusedElement = null;
                      }
                  }
              }
          }