var timeId;
var voteLink;

function reloadMusics()
{
  simulateClick($('all_musics_link'));
}

function showIndicator()
{
  $('indicator').show();
}

function hideIndicator(text)
{
  $('indicator').hide();
  if(text != null) eval(text);
}

// Uzywany podczas zapisywania listy
function addMusicsToInput(input)
{
  input.setValue('');
  list = $('player_list');
  $('player_list').childElements().each(function(o){
    if(o.id != 'empty_list') input.setValue($F(input) + " " + o.down('.music_id').id);
  });
}


function moveUp(music)
{
  exchange(music, music.previousSiblings().first());
}

function moveDown(music)
{
  exchange(music, music.nextSiblings().first());
}

function exchange(a, b)
{
  if(a == null || b == null) return;
  var itemtext = a.innerHTML;
  var classes = a.className;
  a.innerHTML = b.innerHTML;
  a.className = b.className;
  b.innerHTML = itemtext;
  b.className = classes;
}

function stopPlaying()
{
  playing = getCurrentPlaying();
  if(playing)
  {
    playing.removeClassName('playing');
  }
}

function onytplayerStateChange(newState) {
  if(newState == 0 && isAutoPlay()) playNext();
}

function getFirstMusic()
{
  return $$('li.music').first();
}

function getLastMusic()
{
  return $$('ol#player_list li.music').last();
}

function isLooped()
{
  if($F('loop') == null) return false;
  else return true;
}

function isRandom()
{
  if($F('random') == null) return false;
  else return true;
}

function playFirst()
{
  music = getFirstMusic();
  play(music);
}

function play(music)
{
  stopPlaying();
  music.addClassName('playing');
  link = getCurrentPlayingLink();
  simulateClick(link);
}

function getRandom(array)
{
  nr = Math.floor((Math.random()*array.length));
  return array[nr];
}

function isAutoPlay()
{
  if($F('auto_play') == null) return false;
  else return true;
}

function playNext()
{
  current = getCurrentPlaying();
  if(current == null)
  {
    playFirst();
    return;
  }

  if(isRandom())
  {
    next = getRandom($('player_list').childElements());
  }
  else
  {
    next = current.next('li.music');
    if(next == null)
    {
      if(isLooped()) next = getFirstMusic();
      else return;
    }
  }
  
  if(next == null) return;
  play(next);
}

function playPrev()
{
  current = getCurrentPlaying();
  if(current == null)
  {
    playFirst();
    return;
  }

  next = current.previous('li');
  if(next == null)
  {
    if(isLooped()) next = getLastMusic();
    else return;
  }
  
  if(next == null) return;
  play(next);
}

function simulateClick(link)
{
  if(document.all)
    link.fireEvent("onclick");
  else
  {
    var evt = document.createEvent("MouseEvents");
    evt.initEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    link.dispatchEvent(evt);
  }
}

function getCurrentPlaying()
{
  return $$('li.playing').first();
}

function getCurrentPlayingLink()
{
  return $$('li.playing a.play').first();
}

function onYouTubePlayerReady(playerId) {
  $("myytplayer").addEventListener("onStateChange", "onytplayerStateChange");
}


// Narazie nie uzywana
function loadMusicsIntoInput(input)
{
  input.setValue('');
  list = $('music_list');
  list.childElements().each(function(o){
    if(o.hasClassName('music'))
    {
      var i = o.down('.vote_panel').id;
      input.setValue($F(input) + " " + i.substr(i.indexOf('_')+1));
    }
  });
}

// Funkcja niepotrzebna srodek po zalogowaniu jest ladowany na nowo
function reloadVotes(votes)
{
  var image = 'star_full.png';
  votes = votes.split(' ');
  votes.each(function(o){
    id = $('counter_'+o);
    if(id == null) return;
    var src = id.down('img').src;
    var path = src.substr(0, src.lastIndexOf('/')+1);
    var  a = id.down('a.voting');
    if(a == null) return;
    a.remove();
    id.down('.vote_button').insert('<img src="'+path+image+'" />');
  });
}

function dropDownHide() {
  $$("ul#navigation_list li ul").each(function(node){
    Element.hide(node);
  });
}

function dropDownInit(){
	
 $$("#navigation_list li").each(function(node){
		var ul = $A(node.getElementsByTagName("ul")).first();
		if(ul != null){
			node.onmouseover = node.onmouseout = function(){
				Element.toggle(ul);
    }
		}
	});
}

// Obsługa Wrzuty
function playing_finished()
{
  playNext();
}
