var ytplayer = null;
var autoplay = true;

var currentID = "";
var currentLikes = 0;
var currentDislikes = 0;

var nextReady = false;
var nextID = "";
var nextLikes = 0;
var nextDislikes = 0;

function urlme(video)
{
  return "http://www.youtube.com/e/" + video + "?enablejsapi=1&playerapiid=ytplayer&autoplay=1&autohide=1&fs=0&iv_load_policy=3&rel=0&showinfo=0";
}

function onYouTubePlayerReady(playerId)
{
  ytplayer = document.getElementById("myytplayer");
  ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
  ytplayer.addEventListener("onError", "onytplayerError");
  document.getElementById('divMenu').style.visibility='visible';
}

function onytplayerStateChange(newState)
{
  if (newState == 0)
  {
    // ended
    if (autoplay)
    {
      next();
    }
  }
  else if (newState == -1)
  {
    // loaded                         
    document.getElementById("tdDislike").innerHTML = currentDislikes;
    document.getElementById("tdLike").innerHTML = currentLikes;
    document.getElementById("tdLink").innerHTML = "http://grineren.dk/"+currentID+"&nbsp;&nbsp;";  
  }
}

function onytplayerError(errorCode)
{
  // error
  if (autoplay)
  {
    next();
  }
}

function fetch()
{
  nextReady = false;
  
  var xmlhttp;
  if (window.XMLHttpRequest)
  {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else
  {
    // code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function()
  {
    if (xmlhttp.readyState == 4)
    {
      if (xmlhttp.status == 200)
      {
        var response = xmlhttp.responseText;
        var respArr  = response.split(',');
        
        nextID       = respArr[0];
        nextLikes    = respArr[1];
        nextDislikes = respArr[2];
        nextReady    = true;
        
        linkedID = "";
      }
      else
      {
        fetch();
      }
    }
  }
  if (linkedID != "")
  {
    //alert('1');
    // fetch linked ID
    xmlhttp.open("GET","fetch.php?v="+linkedID,true);
  }
  else
  {
    //alert('2');
    xmlhttp.open("GET","fetch.php?c="+currentID,true);
  }
  xmlhttp.send();  
}

function first()
{
  if (!nextReady)
  {
    setTimeout("first();", 10);
  }
  else
  {
    currentID       = nextID;
    currentDislikes = nextDislikes;
    currentLikes    = nextLikes;
        
    swfobject.embedSWF(urlme(currentID),"ytapiplayer","100%","100%","8","expressInstall.swf",null,{ allowScriptAccess:"always", allowfullscreen:"false", wmode:"opaque" },{ id:"myytplayer" });
  
    fetch();
  }
}                

function next()
{
  if (!nextReady)
  {
    setTimeout("next();", 10);
  }
  else
  {
    currentID       = nextID;
    currentDislikes = nextDislikes;
    currentLikes    = nextLikes;
        
    ytplayer.loadVideoByUrl(urlme(currentID),0);
    
    fetch();
  }
}

function like()
{
  var xmlhttp;
  if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function()
  {
    if (xmlhttp.readyState==4)
    {
      if (xmlhttp.status==200)
      {
        var response = xmlhttp.responseText;
        var respArr  = response.split(',');
        
        document.getElementById("tdLike").innerHTML=respArr[0];
        document.getElementById("tdDislike").innerHTML=respArr[1];
      }
      else
      {
        like();
      }
    }
  }
  xmlhttp.open("GET","like.php?v="+currentID,true);
  xmlhttp.send();
}

function dislike()
{
  var xmlhttp;
  if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function()
  {
    if (xmlhttp.readyState==4)
    {
      if (xmlhttp.status==200)
      {
        var response = xmlhttp.responseText;
        var respArr  = response.split(',');
        
        document.getElementById("tdLike").innerHTML=respArr[0];
        document.getElementById("tdDislike").innerHTML=respArr[1];
        
        setTimeout("next();",500);
      }
      else
      {
        dislike();
      }
    }
  }
  xmlhttp.open("GET","dislike.php?v="+currentID,true);
  xmlhttp.send();
}

function shuffleautoplay()
{
  autoplay = !autoplay;
}

fetch();
first();
