docs: function() {
          // create the overview map
          var options = OpenLayers.Util.extend(
                          {controls: [], maxResolution: 'auto', 
                           fallThrough: false}, this.mapOptions);
          this.ovmap = new OpenLayers.Map(this.mapDiv, options);
          this.ovmap.viewPortDiv.appendChild(this.extentRectangle);
          
          // prevent ovmap from being destroyed when the page unloads, because
          // the OverviewMap control has to do this (and does it).
          OpenLayers.Event.stopObserving(window, 'unload', this.ovmap.unloadDestroy);
          
          this.ovmap.addLayers(this.layers);
          this.ovmap.zoomToMaxExtent();
          // check extent rectangle border width
          this.wComp = parseInt(OpenLayers.Element.getStyle(this.extentRectangle,
                                                 'border-left-width')) +
                       parseInt(OpenLayers.Element.getStyle(this.extentRectangle,
                                                 'border-right-width'));
          this.wComp = (this.wComp) ? this.wComp : 2;
          this.hComp = parseInt(OpenLayers.Element.getStyle(this.extentRectangle,
                                                 'border-top-width')) +
                       parseInt(OpenLayers.Element.getStyle(this.extentRectangle,
                                                 'border-bottom-width'));
          this.hComp = (this.hComp) ? this.hComp : 2;
  
          this.handlers.drag = new OpenLayers.Handler.Drag(
              this, {move: this.rectDrag, done: this.updateMapToRect},
              {map: this.ovmap}
          );
          this.handlers.click = new OpenLayers.Handler.Click(
              this, {
                  "click": this.mapDivClick
              },{
                  "single": true, "double": false,
                  "stopSingle": true, "stopDouble": true,
                  "pixelTolerance": 1,
                  map: this.ovmap
              }
          );
          this.handlers.click.activate();
          
          this.rectEvents = new OpenLayers.Events(this, this.extentRectangle,
                                                  null, true);
          this.rectEvents.register("mouseover", this, function(e) {
              if(!this.handlers.drag.active && !this.map.dragging) {
                  this.handlers.drag.activate();
              }
          });
          this.rectEvents.register("mouseout", this, function(e) {
              if(!this.handlers.drag.dragging) {
                  this.handlers.drag.deactivate();
              }
          });
  
          if (this.ovmap.getProjection() != this.map.getProjection()) {
              var sourceUnits = this.map.getProjectionObject().getUnits() ||
                  this.map.units || this.map.baseLayer.units;
              var targetUnits = this.ovmap.getProjectionObject().getUnits() ||
                  this.ovmap.units || this.ovmap.baseLayer.units;
              this.resolutionFactor = sourceUnits && targetUnits ?
                  OpenLayers.INCHES_PER_UNIT[sourceUnits] /
                  OpenLayers.INCHES_PER_UNIT[targetUnits] : 1;
          }
      }