YMaps.jQuery(document).ready(function(){

  YMaps.jQuery('head').append('<link rel="stylesheet" type="text/css" media="all" href="http://roadcams.elifantiev.ru/include/roadcams.css" />');
  var map = new YMaps.Map(document.getElementById("map"));
  var baloonOpen = false;
  var geocoder = new YMaps.Geocoder("Ярославль");

  YMaps.Events.observe(map, map.Events.BoundsChange, function(map) {
    POI.init(map);
  });
  
  YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
    map.setCenter(this.get(0).getCoordPoint(), 12, YMaps.MapType.MAP);    
    map.addControl(new YMaps.TypeControl());
    map.addControl(new YMaps.Zoom());
    try {
	YMaps.load('traffic', function(){
var traffic = new YMaps.Traffic.Control();
map.addControl(traffic);
traffic.setOptions({ showInfoSwitcher: true });
traffic.setState({ infoLayerShown: true });
traffic.show();
});
    } catch(e) {}
  });  
  
  YMaps.jQuery.each(cams, function(idx, item){
    var mark = new YMaps.Placemark(
      new YMaps.GeoPoint(item.lng, item.lat), { style: 'cam#mark' } 
    );
    map.addOverlay(mark);
    YMaps.Events.observe(mark, mark.Events.BalloonOpen, function(markO){
      baloonOpen = true;
      map.openBalloon(markO.getCoordPoint(), getBalloonContent(item), { mapAutoPan: true });
      YMaps.jQuery('.frame').data('baseurl', item.cams[0].url).attr('src', item.cams[0].url).load(function(){
        var baseurl = YMaps.jQuery(this).data('baseurl');
        if(baloonOpen)
          YMaps.jQuery(this).attr('src', baseurl+'?r='+Math.random());      
      });
      YMaps.jQuery('.YMaps-b-balloon-close').click(function(){
        baloonOpen = false;
      });
    });
  });
  
  YMaps.jQuery('.menu h2').click(function(){
    if(YMaps.jQuery(this).next().hasClass('current') == false)
    {
      YMaps.jQuery('.menu .current').hide('slow').removeClass('current');
      YMaps.jQuery(this).next().addClass('current').show('slow');
    }
  });

  if(window.location.host != 'roadcams.elifantiev.ru') {
    YMaps.jQuery('<div class="roadcamscopy">&copy;&nbsp;<a href="http://roadcams.elifantiev.ru?from='+encodeURIComponent(window.location)+'">Дорожные камеры Ярославля</a>').insertAfter('#map');
  } 
  
});



function getBalloonContent(cams) 
{
  var content = "<h4>"+cams.name+"</h4><br /><table class='cams'><tr><td>";
  content += "<img id='frame1' class='frame' src='"+cams.cams[0].url+"' />";
  content += "</td>";
  if(cams.cams.length>1)
  {
    content += "<td>";

    YMaps.jQuery.each(cams.cams,function(idx, camI){
      var camName = camI.name || ("Камера " + (idx+1));
      content += "<a "+(idx==0?"class='current'":"")+" onclick='setStream(this, event); return false;' href='"+camI.url+"'>"+camName+"</a><br />";
    });
    content += "</td>";
  }
  content += "</tr></table><p class='copy'>Данные &copy; <span id='source'>"+cams.cams[0].copy+"</span></p>";
  return content; 
}

function setStream(object, event) 
{
  YMaps.jQuery('a.current').removeClass('current');
  YMaps.jQuery(object).addClass('current');
  YMaps.jQuery('.frame').data('baseurl', object.href.replace('thread.mjpg', 'preview.jpg'));
  return false;
}

