var player_win = 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];
  }
}

function thisMovie2(win, movieName)
{
  if (navigator.appName.indexOf("Microsoft") != -1)
  {
    return win[movieName];
  }
  else
  {
    return win.document[movieName];
  }
}

/* current song */

var cs_timer_id = 0;

function init_current_song()
{
  cs_timer_id = setTimeout("get_current_song()", 15000);
}

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 full_title = rs[i].getAttribute('album');
        var x = full_title.indexOf(' - ');

        //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.substr(0, 3) == '00:')
          cursong_length = cursong_length.substr(3);
        else if (cursong_length.length == 8)
          cursong_length = cursong_length.substr(1);

        if (cursong_title)
          cursong_title = ' - '+cursong_title;

        var for_scroll = full_title && x != -1
          ? '<span class="red">'+full_title.substr(0, x)+'</span>&nbsp;'+(full_title ? ' - '+full_title.substr(x + 3) : '')+'&nbsp;['+cursong_length+']'
          : (cursong_artist && cursong_artist != '---' ? '<span class="red">'+cursong_artist+'</span>&nbsp;' : '')+cursong_title+'&nbsp;['+cursong_length+']';

    //var for_scroll = full_title && x != -1^
    //  ? '<span class="red">'+full_title.substr(0, x)+'</span>'+(full_title ? ' - '+full_title.substr(x + 3) : '')+' ['+cursong_length+']'^
    //  : (cursong_artist && cursong_artist != '---' ? '<span class="red">'+cursong_artist+'</span>' : '')+cursong_title+' ['+cursong_length+']';

        //if (getCookie('test'))
        //  alert('for_scroll: '+for_scroll);

        discroller1.set_content(for_scroll);

        /*
        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;
        */
    }
  }

  var rs;

  try {
    rs = xmlDoc.documentElement.getElementsByTagName('air');
  } catch(e) {}

  if (!rs || typeof str_cut_end == 'undefined') return;

  for (var i = 0; i < rs.length; i++)
  {
    var type = rs[i].getAttribute('type');
    var e = _ge('air_div['+type+']');

    if (e)
    {
      var html = get_xml_text(rs[i]);

      e.innerHTML = html;
    }
  }

  init_current_song();
}

function set_player_quality(q)
{
  var date = new Date();
  date.setFullYear(date.getFullYear() + 1);
  setCookie('pq', q, date, '/');

  if (!window.opener && (!player_win || player_win.closed))
    open_player_win();

  // this window
  set_player_window_quality(q, window);

  // parent window
  if (window.opener && !window.opener.closed)
    set_player_window_quality(q, window.opener);

  // child window
  if (player_win && !player_win.closed)
    set_player_window_quality(q, player_win);

  return false;
}

function set_player_window_quality(q, w)
{
  var ar = {64: _ge2(w, 'pq_64_a'), 96: _ge2(w, 'pq_96_a'), 128: _ge2(w, 'pq_128_a')}; //, 'reg': _ge2(w, 'pq_reg_a')

  if (!ar[q]) return false;

  if (!ar[q].className)
  {
    for (var i in ar)
    {
      ar[i].className = i == q ? 'red' : ''; // nound
    }

    var m = thisMovie2(w, 'online_top');

    if (m)
      m.SetVariable('myObject', q);
  }
}

function open_player_win()
{
  player_win = window.open('/radio.php','radio','toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=0,resizable=0,width=470,height=100');
}

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 ? next_news_stamp - stamp : 0);
  }

  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()
  {
    this.now = new Date();

    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.getFullYear();
  }

  this.print_next_news_time = function(seconds)
  {
    var e_h = _ge('upcoming_news_hours');
    var e_h_str = _ge('upcoming_news_hours_str');
    var e_m = _ge('upcoming_news_minutes');

    if (e_h && e_m && e_h_str)
    {
      var m = Math.round(seconds / 60);

      var h = Math.floor(m / 60);
      m -= h * 60;

      if (h == 0 && m == 0)
      {
        h = '--';
        m = '--';
      }

      e_h.innerHTML = h;
      e_m.innerHTML = m;

      if (h*1 == 0)
      {
        e_h_str.style.display = 'none';
        e_h.style.display = 'none';
      }
      else
      {
        e_h_str.style.display = '';
        e_h.style.display = '';
      }
    }
  }

  this.init();
}

function show_file_info(idx, fn)
{
  if (fn)
  {
    var e = _ge('fileinput_fn'+idx);

    if (e)
    {
      e.innerHTML = str_cut_end(fn, 24);
      e.style.display = 'block';
    }
  }
}

function quiz_photos_vote(id)
{
  var xml_url = '/xml/vote.php';
  var __query_str = 'id='+id+'&type=quiz_photos';
  diXMLRequest.get(xml_url+'?'+__query_str, quiz_photos_vote_response);

  return false;
}

function quiz_photos_vote_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 id = rs[i].getAttribute('id') * 1;
    var votes = rs[i].getAttribute('votes') * 1;

    if (ok)
    {
      var e = _ge('quiz_photos_vote_for_'+id);
      if (e) e.innerHTML = '<span class="grey">Ваш голос учтен</span>';

      var e2 = _ge('quiz_photos_votes_of_'+id);
      if (e2) e2.innerHTML = votes;
    }
  }
}

function calendar_goto(y, ct)
{
  window.location.href = '/'+ct+'/'+y+'/';
  return false;
}

var opinion_timer_id;

function init_opinion()
{
  opinion_timer_id = setTimeout('get_opinion();', 15000);
}

function get_opinion()
{
  if (opinion_timer_id) clearTimeout(opinion_timer_id);

  var url = '/xml/get_opinion.php';
  diXMLRequest.get(url, get_opinion_response);
}

function get_opinion_response(xmlDoc)
{
  var rs;

  try {
    rs = xmlDoc.documentElement.getElementsByTagName('result');
  } catch(e) {}

  if (!rs || typeof str_cut_end == 'undefined') return;

  var name = rs[0].getAttribute('name');
  var content = rs[0].getAttribute('content');

  var e = {name: _ge('opinion[name]'), content: _ge('opinion[content]')};
  if (e.name) e.name.innerHTML = name;
  if (e.content) e.content.innerHTML = content;

  init_opinion();
}

var quiz_question_idx = 0;
var quiz_answers_ar = [];

function answer_quiz_time_trial()
{
  var old_id = question_ids_ar[quiz_question_idx];
  var old_e = _ge('quiz_question['+old_id+']');

  var radio_ar = _ge_inputs('radio', old_e, 'hq_', true);

  if (radio_ar.length == 0)
  {
    alert('Выберите вариант ответа');

    return false;
  }

  quiz_answers_ar[quiz_question_idx] = radio_ar[0].value;

  quiz_question_idx++

  var new_id = quiz_question_idx < question_ids_ar.length ? question_ids_ar[quiz_question_idx] : 0;
  var new_e = new_id ? _ge('quiz_question['+new_id+']') : false;

  var thanks_e = _ge('quiz_question[thanks]');

  old_e.style.display = 'none';

  if (new_e)
  {
    new_e.style.display = 'block';
  }
  else
  {
    thanks_e.style.display = 'block';
    sw.startstop();

    send_time_trial_data(1, quiz_answers_ar.join(','), sw.result);
  }

  var anchor_e = _ge('quiz_anchor');
  window.scrollTo(0,_get_top(anchor_e));

  return false;
}

function start_time_trial()
{
  var e = _ge('start_time_trial_btn');
  var e2 = _ge('quiz_submit_btn_div');

  e.style.display = 'none';
  e2.style.display = 'block';

  sw.startstop();
  send_time_trial_data(0);

  var old_id = question_ids_ar[quiz_question_idx];
  var old_e = _ge('quiz_question['+old_id+']');

  old_e.style.display = 'block';
}

function send_time_trial_data(state, answers, time)
{
  if (typeof answers == 'undefined')
    var answers = '';

  if (typeof time == 'undefined')
    var time = '';

  var url = '/xml/quiz_time_trial.php?state='+escape(state)+'&answers='+escape(answers)+'&time='+escape(time)+'&content_id='+escape(content_id);
  diXMLRequest.get(url, send_time_trial_data_response);
}

function send_time_trial_data_response(xmlDoc)
{
  var rs;

  try {
    rs = xmlDoc.documentElement.getElementsByTagName('result');
  } catch(e) {}

  if (!rs || typeof str_cut_end == 'undefined') return;

  //var name = rs[0].getAttribute('name');
  //var content = rs[0].getAttribute('content');
}

function ny2011_prize_onclick(prize_id)
{
  var date = new Date();
  date.setFullYear(date.getFullYear() + 1);
  setCookie('ny2011_prize_id', prize_id, date, '/');

  _ge('ny2011_shadow').style.display = 'none';
}

function ny_debug(xml_url)
{
  xml_url = xml_url.substr(xml_url.indexOf('/xml/'));
  diXMLRequest.get(xml_url, ny_debug_response);

  //if (getCookie('test'))
  //  alert(xml_url);
}

function ny_debug_response(xmlDoc)
{
  //if (getCookie('test'))
  //  alert('xml loaded');

  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');
  }
}

