var tile_layer_count = 0

function tile_layer_fabrica (tile_dir, transparent, smooth ,layers) {
  tile_layer_count = layers.length
  $.each(layers,function(i,el){
      var tile_data = new YMaps.TileDataSource(tile_dir, transparent, smooth),
        layer_name = el[ 0 ],
        layer_format = el[ 1 ]
      tile_data.getTileUrl = function (tile, zoom) { return this.getTileUrlTemplate() + layer_name + '/' + zoom + '/' + tile.x + '/' + tile.y + '.' + layer_format }

      YMaps.Layers.add(layer_name + '_tiles',
        function(){
          var layer = new YMaps.Layer(tile_data),
            layer_container = $(layer.getContainer()),
            z = parseInt( layer_name.slice( 1 ) )
            layer_container.addClass(layer_name + '_tiles')
            layer_container.css( { 'z-index': z }  )
          return layer
        }
      )
  })
}

function overlay_layer_fabrica(layers){

  $.each(layers,function(i,el){

    var tile_data = new YMaps.TileDataSource('/point_shapes/branches/' + el + '/', true, false)
    tile_data.getTileUrl = function (tile, zoom) { return this.getTileUrlTemplate() + zoom + ',' + tile.x + ',' + tile.y + '.png' }

    YMaps.Layers.add(el + '_tiles',function()
      {
        var layer = new YMaps.Layer(tile_data),
          layer_container = $(layer.getContainer())

        layer_container.addClass(el + '_tiles')
        layer_container.css( { 'z-index': tile_layer_count + i }  )

        return layer

      })

    var object_source = new YMaps.Hotspots.ObjectSource('/point_shapes/branches/' + el + '/', el + ':', {useProgramCache:true})

    object_source.getTileUrl = function (tileNumber, zoom) {
      return this.getTileUrlTemplate() + zoom + ','  + tileNumber.getX() + ',' + tileNumber.getY() + '.js'
    }

    object_source.getKey = function (tileNumber, zoom) {
      return this.getKeyTemplate() + zoom + ',' + tileNumber.getX() + ',' + tileNumber.getY()
    }

    var layer = new YMaps.Hotspots.Layer(object_source)
    YMaps.Layers.add(el,layer)

  }) 


}

