code: function() {
          if (!this.mapDiv) { // we've already been destroyed
              return;
          }
          if (this.handlers.click) {
              this.handlers.click.destroy();
          }
          if (this.handlers.drag) {
              this.handlers.drag.destroy();
          }
  
          this.ovmap && this.ovmap.viewPortDiv.removeChild(this.extentRectangle);
          this.extentRectangle = null;
  
          if (this.rectEvents) {
              this.rectEvents.destroy();
              this.rectEvents = null;
          }
  
          if (this.ovmap) {
              this.ovmap.destroy();
              this.ovmap = null;
          }
          
          this.element.removeChild(this.mapDiv);
          this.mapDiv = null;
  
          this.div.removeChild(this.element);
          this.element = null;
  
          if (this.maximizeDiv) {
              this.div.removeChild(this.maximizeDiv);
              this.maximizeDiv = null;
          }
          
          if (this.minimizeDiv) {
              this.div.removeChild(this.minimizeDiv);
              this.minimizeDiv = null;
          }
  
          this.map.events.un({
              buttonclick: this.onButtonClick,
              moveend: this.update,
              changebaselayer: this.baseLayerDraw,
              scope: this
          });
  
          OpenLayers.Control.prototype.destroy.apply(this, arguments);    
      }
docs: APIMethod: destroy
  Deconstruct the control