function set_menu_visibility(id, status)
{
  var date = new Date();
  date.setFullYear(date.getFullYear() + 1);
  setCookie('left_menu['+id+']', status, date, '/');
}

function get_menu_visibility(id)
{
  return getCookie('left_menu['+id+']') ? true : false;
}

function toggle_left_menu(id, status, to_show_content)
{
  var e = {collapsed: _ge('left_menu_collapsed_'+id), expanded: _ge('left_menu_expanded_'+id), submenu: _ge('left_submenu_'+id)};

  //if (e.submenu || true)
  //{
    if (!to_show_content)
    {
      set_menu_visibility(id, status);

      if (e.collapsed) e.collapsed.style.display = status ? 'none' : 'block';
      if (e.expanded) e.expanded.style.display = status ? 'block' : 'none';
      if (e.submenu) e.submenu.style.display = status ? 'block' : 'none';
    }

    if (status)
    {
      for (var i = 0; i < js_content_ids_ar.length; i++)
      {
        var a = js_content_ids_ar[i];

        if (a.id != id)
          toggle_left_menu(a.id, false, a.to_show_content);
      }
    }
  //}

  return to_show_content ? true : false;
}

function di_init()
{
  _add_event(document, 'mousemove', engage);

  init_current_song();

  //_di_replace_links();
}

function _di_replace_links()
{
  //if (window.location.href.indexOf('#ololo') == -1)
  //  return;

  for (var i = 0; i < document.links.length; i++)
  {
    var a = document.links[i];

    if (a.href.substr(0,11) != 'javascript:' && !a.onclick)
    {
      eval("_add_event(a, 'click', function(){_di_load_page('"+a.href+"');return false;});");
    }
  }
}

function _di_load_page(url)
{
  var x = url.indexOf('#');
  if (x != -1)
    url = url.substr(0, x);

  url += url.indexOf('?') == -1 ? '?' : '&';
  url += 'xml_version=1';

  diXMLRequest.get(url, _di_load_page_response);

  return false;
}

function _di_load_page_response(xmlDoc)
{
  try { var rs = xmlDoc.documentElement.getElementsByTagName('result'); } catch(e) {}
  if (!rs) return false;

  var r = rs[0];

  var e = _ge('the_body');

  if (r && e)
  {
    e.innerHTML = get_xml_text(r);
    setupZoom();
    di_init();
  }

  return false;
}

//window.onresize = di_init;
//window.onload = di_init;

function show_reply_form(before_obj_id, parent)
{
  var a = _ge(before_obj_id);

  if (!a || !comment_reply_div || !comment_parent) return false;

  a.parentNode.insertBefore(comment_reply_div, a);
  comment_reply_div.style.display = 'block';

  comment_parent.value = parent;

  return false;
}

function toggle_wait(v)
{
}

function favorites_action(action, type, target_id)
{
  var xml_url = '/xml/favorites.php';
  var __query_str = 'action='+action+'&type='+type+'&target_id='+target_id;
  diXMLRequest.get(xml_url+'?'+__query_str, favorites_response);

  return false;
}

function favorites_response(xmlDoc)
{
  try { var rs = xmlDoc.documentElement.getElementsByTagName('result'); } catch(e) {}
  if (!rs) return;

  for (var i = 0; i < rs.length; i++)
  {
    var ok = rs[i].getAttribute('ok') * 1;
    var action = rs[i].getAttribute('action');
    var target_id = rs[i].getAttribute('target_id') * 1;
    var type = rs[i].getAttribute('type');

    if (ok)
    {
      switch (action)
      {
        case 'add':
          var e = _ge('favorites_link['+type+']['+target_id+']');
          if (e)
          {
            e.innerHTML = '<a href="'+window.location.href+'#" onclick="return favorites_action(\'del\',\''+type+'\',\''+target_id+'\');">В избранном</a>';
          }
          break;

        case 'del':
          var e = _ge('favorites_link['+type+']['+target_id+']');
          if (e)
          {
            e.innerHTML = '<a href="'+window.location.href+'#" onclick="return favorites_action(\'add\',\''+type+'\',\''+target_id+'\');">Добавить в избранное</a>';
          }
          break;
      }
    }
  }
}

/* ------------------------------------------------------------ */

function thisMovie(movieName)
{
  if (navigator.appName.indexOf("Microsoft") != -1)
  {
    return window[movieName];
  }
  else
  {
    return document[movieName];
  }
}

/* current song */

var cs_timer_id = 0;

function init_current_song()
{
  cs_timer_id = setTimeout("get_current_song()", 30000);
}

function get_current_song()
{
  if (cs_timer_id) clearTimeout(cs_timer_id);

  var url = '/xml/air/current_song.xml';
  diXMLRequest.get(url, get_current_song_response);
}

function get_current_song_response(xmlDoc)
{
  var rs;

  try {
    rs = xmlDoc.documentElement.getElementsByTagName('result');
  } catch(e) {}

  if (!rs || typeof str_cut_end == 'undefined') return;

  for (var i = 0; i < rs.length; i++)
  {
    var name = rs[i].getAttribute('name');

    switch (name)
    {
      case 'song':
        var cursong_artist = rs[i].getAttribute('artist');
        var cursong_title = rs[i].getAttribute('title');
        var cursong_length = rs[i].getAttribute('length');

        //var e1 = _ge('current_song_artist_span');
        //var e2 = _ge('current_song_title_span');
        //var e3 = _ge('current_song_length_span');

        if (cursong_length.length == 8)
          cursong_length = cursong_length.substr(3);

        discroller1.set_content('<span class="red">'+cursong_artist+'</span> - '+cursong_title+' ['+cursong_length+']');

        /*
        if (e1 && e2 && e3)
        {
          //discroller1.set_content(cursong_artist);
          //discroller2.set_content(cursong_title);

          e1.innerHTML = '<nobr>'+cursong_artist+'</nobr>';
          e2.innerHTML = '<nobr>'+cursong_title+'</nobr>';
          e3.innerHTML = '<nobr>'+cursong_length+'</nobr>';
        }
        */

        /*
        var cursong_full = rs[i].getAttribute('artist')+' - '+rs[i].getAttribute('title');
        var cursong = str_cut_end(cursong_full, cur_song_cut_len);
        var e = _ge('current_song_span');
        if (e)
        {
          e.innerHTML = '<nobr>'+cursong+'</nobr>';
        }
        var e2 = _ge('popup_div_current_song_title');
        if (e2)
        {
          e2.innerHTML = '<nobr>'+cursong_full+'</nobr>';
        }
        */
        break;

      case 'segment':
        var cursegment_full = rs[i].getAttribute('title');
        var cursegment = str_cut_end(cursegment_full, cur_segment_cut_len);
        var e = _ge('current_segment_span');
        if (e)
        {
          e.innerHTML = '<nobr>'+cursegment+'</nobr>';
        }
        var e2 = _ge('popup_div_current_segment_title');
        if (e2)
        {
          e2.innerHTML = '<nobr>'+cursegment_full+'</nobr>';
        }
        var e3 = _ge('current_segment_img');
        if (e3)
        {
          e3.src = rs[i].getAttribute('pic');
          e3.style.width = rs[i].getAttribute('pic_w');
          e3.style.width = rs[i].getAttribute('pic_h');
        }
        break;
    }
  }

  init_current_song();
}

function set_player_quality(q)
{
  var ar = {64: _ge('pq_64_a'), 96: _ge('pq_96_a'), 128: _ge('pq_128_a')};

  if (!ar[q]) return false;

  if (!ar[q].className)
  {
    for (var i in ar)
    {
      ar[i].className = i == q ? 'red nound' : '';
    }

    //flash.givevar('http://89.208.99.16:8088/zvezda_'+q);
    var date = new Date();
    date.setFullYear(date.getFullYear() + 1);
    setCookie('pq', q, date, '/');

    var m = thisMovie('online_top');

    if (m)
      m.SetVariable('myObject', q);
  }

  return false;
}

var di_wdays = ['вс','пн','вт','ср','чт','пт','сб'];
var di_month_names = ['января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'];

function diTimeBlock(instance_name, timestamp_ar)
{
  this.instance_name = instance_name;
  this.ar = timestamp_ar;
  this.now = new Date();

  this.init = function()
  {
    this.refresh();
    t = setInterval(this.instance_name+'.refresh()', 500);
  }

  this.refresh = function()
  {
    this.now = new Date();

    var stamp = Math.round(this.now.getTime() / 1000);
    var next_news_stamp = this.get_next_news_timestamp(stamp);

    this.print_current_time();
    this.print_next_news_time(next_news_stamp - stamp);
  }

  this.get_next_news_timestamp = function(timestamp)
  {
    for (var i = 0; i < this.ar.length; i++)
    {
      if (this.ar[i] > timestamp)
      {
        return this.ar[i];
      }
    }

    return 0;
  }

  this.print_current_time = function()
  {
    var e = _ge('current_time_span');
    var e_wd = _ge('current_wday_span');
    var e_d = _ge('current_date_span');

    if (e) e.innerHTML = lead0(this.now.getHours())+':'+lead0(this.now.getMinutes());
    if (e_wd) e_wd.innerHTML = di_wdays[this.now.getDay()];
    if (e_d) e_d.innerHTML = this.now.getDate()+' '+di_month_names[this.now.getMonth()]+' '+this.now.getYear();
  }

  this.print_next_news_time = function(seconds)
  {
    var e_h = _ge('upcoming_news_hours');
    var e_m = _ge('upcoming_news_minutes');

    if (e_h && e_m)
    {
      var m = Math.ceil(seconds / 60);

      var h = Math.floor(m / 60);
      m -= h * 60;

      e_h.innerHTML = h;
      e_m.innerHTML = m;
    }
  }

  this.init();
}
