/**     
 * Traffic.js
 * Yandex.Maps API extension to enable traffic information layer on custom Yandex.Map
 * Oleg Elifantiev, 2010, http://elifantiev.ru/ymaps-traffic-loader/
 */
YMaps.TrafficLoader = (function() { // My traffic loader
  var coverage = 'http://jgo.maps.yandex.net/trf/coverage.js';
  var stat = 'http://jgo.maps.yandex.net/trf/stat.js';
  var tileSource;
  var undefined;
  var ts;
  return {  
    init: function(map) {
      var layer;
      (function(){
        var aFunction = function(){
          window.setTimeout(aFunction, 300000); // Set next update in 5 minutes 
          YMaps.jQuery.getScript(stat, function(){
            if(tileSource == undefined) {
              tileSource = new YMaps.TileDataSource('http://jgo.maps.yandex.net/tiles?l=trf&tm='+YMaps.TrafficLoader.getTs()+'&%c&%g', true, false);
              tileSource.ERROR_TILE_URL = 'http://api-maps.yandex.ru/i/0.4/404t.png';
              layer = new YMaps.Layer(tileSource);
              map.addLayer(layer);
            } else {
              tileSource.setTileUrlTemplate('http://jgo.maps.yandex.net/tiles?l=trf&tm='+YMaps.TrafficLoader.getTs()+'&%c&%g');
              map.removeLayer(layer);
              layer = new YMaps.Layer(tileSource);
              map.addLayer(layer);
            }
            map.redraw();  
          });
        };
        aFunction();
      })();
    },
    getTs: function() {
      return ts;
    },
    onLoad: function(cmd, data) { 
      ts = data.timestamp;
    }
  }
})();
