docs: function(maxExtent, options) {    
          options = options || {};
          
          var leftTolerance = options.leftTolerance || 0;
          var rightTolerance = options.rightTolerance || 0;
  
          var newBounds = this.clone();
      
          if (maxExtent) {
              var width = maxExtent.getWidth();
  
              //shift right?
              while (newBounds.left < maxExtent.left && 
                     newBounds.right - rightTolerance <= maxExtent.left ) { 
                  newBounds = newBounds.add(width, 0);
              }
  
              //shift left?
              while (newBounds.left + leftTolerance >= maxExtent.right && 
                     newBounds.right > maxExtent.right ) { 
                  newBounds = newBounds.add(-width, 0);
              }
             
              // crosses right only? force left
              var newLeft = newBounds.left + leftTolerance;
              if (newLeft < maxExtent.right && newLeft > maxExtent.left && 
                     newBounds.right - rightTolerance > maxExtent.right) {
                  newBounds = newBounds.add(-width, 0);
              }
          }
                  
          return newBounds;
      }