code: function(ratio, origin){
          if(origin == null){
              origin = this.getCenterLonLat();
          }
          
          var origx,origy;
  
          // get origin coordinates
          if(origin.CLASS_NAME == "OpenLayers.LonLat"){
              origx = origin.lon;
              origy = origin.lat;
          } else {
              origx = origin.x;
              origy = origin.y;
          }
  
          var left = (this.left - origx) * ratio + origx;
          var bottom = (this.bottom - origy) * ratio + origy;
          var right = (this.right - origx) * ratio + origx;
          var top = (this.top - origy) * ratio + origy;
          
          return new OpenLayers.Bounds(left, bottom, right, top);
      }
docs: APIMethod: scale
  Scales the bounds around a pixel or lonlat. Note that the new
  bounds may return non-integer properties, even if a pixel
  is passed.
  
  Parameters:
  ratio - {Float}
  origin - {<OpenLayers.Pixel> or <OpenLayers.LonLat>}
  Default is center.
  
  Returns:
  {<OpenLayers.Bounds>} A new bounds that is scaled by ratio
  from origin.