docs: function(bounds, options) {
          if (typeof options === "boolean") {
              options =  {inclusive: options};
          }
          options = options || {};
          if (options.worldBounds) {
              var self = this.wrapDateLine(options.worldBounds);
              bounds = bounds.wrapDateLine(options.worldBounds);
          } else {
              self = this;
          }
          if (options.inclusive == null) {
              options.inclusive = true;
          }
          var intersects = false;
          var mightTouch = (
              self.left == bounds.right ||
              self.right == bounds.left ||
              self.top == bounds.bottom ||
              self.bottom == bounds.top
          );
          
          // if the two bounds only touch at an edge, and inclusive is false,
          // then the bounds don't *really* intersect.
          if (options.inclusive || !mightTouch) {
              // otherwise, if one of the boundaries even partially contains another,
              // inclusive of the edges, then they do intersect.
              var inBottom = (
                  ((bounds.bottom >= self.bottom) && (bounds.bottom <= self.top)) ||
                  ((self.bottom >= bounds.bottom) && (self.bottom <= bounds.top))
              );
              var inTop = (
                  ((bounds.top >= self.bottom) && (bounds.top <= self.top)) ||
                  ((self.top > bounds.bottom) && (self.top < bounds.top))
              );
              var inLeft = (
                  ((bounds.left >= self.left) && (bounds.left <= self.right)) ||
                  ((self.left >= bounds.left) && (self.left <= bounds.right))
              );
              var inRight = (
                  ((bounds.right >= self.left) && (bounds.right <= self.right)) ||
                  ((self.right >= bounds.left) && (self.right <= bounds.right))
              );
              intersects = ((inBottom || inTop) && (inLeft || inRight));
          }
          // document me
          if (options.worldBounds && !intersects) {
              var world = options.worldBounds;
              var width = world.getWidth();
              var selfCrosses = !world.containsBounds(self);
              var boundsCrosses = !world.containsBounds(bounds);
              if (selfCrosses && !boundsCrosses) {
                  bounds = bounds.add(-width, 0);
                  intersects = self.intersectsBounds(bounds, {inclusive: options.inclusive});
              } else if (boundsCrosses && !selfCrosses) {
                  self = self.add(-width, 0);
                  intersects = bounds.intersectsBounds(self, {inclusive: options.inclusive});                
              }
          }
          return intersects;
      }