code: function(bounds) {
          var res = this.getServerResolution();
          var bbox = this.maxExtent;
          var size = this.tileSize;
          var tileX = Math.round((bounds.left - bbox.left) / (res * size.w));
          var tileY = Math.round((bounds.bottom - bbox.bottom) / (res * size.h));
          var tileZ = this.serverResolutions != null ?
              OpenLayers.Util.indexOf(this.serverResolutions, res) :
              this.map.getZoom();
  
          var components = [
              this.layername,
              OpenLayers.Number.zeroPad(tileZ, 2),
              OpenLayers.Number.zeroPad(parseInt(tileX / 1000000), 3),
              OpenLayers.Number.zeroPad((parseInt(tileX / 1000) % 1000), 3),
              OpenLayers.Number.zeroPad((parseInt(tileX) % 1000), 3),
              OpenLayers.Number.zeroPad(parseInt(tileY / 1000000), 3),
              OpenLayers.Number.zeroPad((parseInt(tileY / 1000) % 1000), 3),
              OpenLayers.Number.zeroPad((parseInt(tileY) % 1000), 3) + '.' + this.extension
          ];
          var path = components.join('/'); 
          var url = this.url;
          if (OpenLayers.Util.isArray(url)) {
              url = this.selectUrl(path, url);
          }
          url = (url.charAt(url.length - 1) == '/') ? url : url + '/';
          return url + path;
      }
docs: Method: getURL
  
  Parameters:
  bounds - {<OpenLayers.Bounds>}
  
  Returns:
  {String} A string with the layer's url and parameters and also the
  passed-in bounds and appropriate tile size specified as parameters.