var playing = false;

function updateHTML(elmId, value) { 
    var width = ( getCurrentTime() * 306 ) / getDuration() ;
    if( getCurrentTime() > 1 ){
        $('#nav_sure').css("width", width );
    }
    if( getPlayerState() == 0 ){
        stop();        
        loadNewVideo(next_video());
                 
    }
}



function setytplayerState(newState) {
  updateHTML("playerstate", newState);
}

function onYouTubePlayerReady(playerId) {
  ytplayer = document.getElementById("myytplayer");
  setInterval(updateytplayerInfo, 250);
  updateytplayerInfo();
  ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
  ytplayer.addEventListener("onError", "onPlayerError");
}

function onytplayerStateChange(newState) {
  setytplayerState(newState);
}

function onPlayerError(errorCode) {
  alert("An error occured: " + errorCode);
}

function updateytplayerInfo() {
  updateHTML("bytesloaded", getBytesLoaded());
  updateHTML("bytestotal", getBytesTotal());
  updateHTML("videoduration", getDuration());
  updateHTML("videotime", getCurrentTime());
  updateHTML("startbytes", getStartBytes());
  updateHTML("volume", getVolume());
}

// functions for the api calls
function loadNewVideo(id, startSeconds) {
  
  
  if ( ytplayer && id ) {   
        
        $('#ads').hide('fast');      
        $('#tags').hide('fast');   
        
        $('#myytplayer').css("height", 238);
        $('#myytplayer').css("width", 420);         
        
        playing = true;
        
       // alert(id);
        ytplayer.loadVideoById(id, parseInt(startSeconds));
                    
        $('#player').show('slow');   
        
        active_video = id;
        
        $('#picon').attr('src', 'images/pause.gif' );
        
        $.get("engine.php", { proc: "stats", vkey: id } );
        
        dynamic_info(id);
        
  } 
  
}

function cueNewVideo(id, startSeconds) {
  if (ytplayer) {
    ytplayer.cueVideoById(id, startSeconds);
  }
}

function play() {  
  
  if (ytplayer) {
  
    if( playing == false  ){
    
        playing = true;                
        
        $('#picon').attr('src', 'images/pause.gif' );
        
        ytplayer.playVideo();  
    }    
    else{
    
        playing = false;
        
        pause();
        
        $('#picon').attr('src', 'images/play_icon_player.gif' )
    }
    
  }  
      
    
}

function pause() {
  if (ytplayer) {
    ytplayer.pauseVideo();
  }
}

function stop() {
  if (ytplayer) {
    ytplayer.stopVideo();
  }
}

function getPlayerState() {
  if (ytplayer) {
    return ytplayer.getPlayerState();
  }
}

function seekTo(seconds) {
  if (ytplayer) {
    
    ytplayer.seekTo(seconds, true);
    
    playing = true;                
    
    $('#picon').attr('src', 'images/pause.gif' );    
    
  }
}

function getBytesLoaded() {
  if (ytplayer) {
    return ytplayer.getVideoBytesLoaded();
  }
}

function getBytesTotal() {
  if (ytplayer) {
    return ytplayer.getVideoBytesTotal();
  }
}

function getCurrentTime() {
  if (ytplayer) {
    return ytplayer.getCurrentTime();
  }
}

function getDuration() {
  if (ytplayer) {
    return ytplayer.getDuration();
  }
}

function getStartBytes() {
  if (ytplayer) {
    return ytplayer.getVideoStartBytes();
  }
}

function mute() {
  if (ytplayer) {
    ytplayer.mute();
  }
}

function unMute() {
  if (ytplayer) {
    ytplayer.unMute();
  }
}

function getEmbedCode() {
  alert(ytplayer.getVideoEmbedCode());
}

function getVideoUrl() {
  alert(ytplayer.getVideoUrl());
}

function setVolume(newVolume) {
  if (ytplayer) {
    ytplayer.setVolume(newVolume);
  }
}

function getVolume() {
  if (ytplayer) {
    return ytplayer.getVolume();
  }
}

function clearVideo() {
  if (ytplayer) {
    ytplayer.clearVideo();
  }
}
        

function search_video(keyword, page){

    $('#search_list').show(); 
    $('#search_list').html("<center><img src='img/ajax-loader.gif'></center>");    
    $.ajax({
        type: 'GET',
        url: 'ajx.php',
        data: 'action=search&keyword='+keyword+'&page='+page,
        success: function(ajaxCevap) {
            // Override #result for result.
            $('#search_list').html(ajaxCevap);

                       
        }
    });             
    
 
}

function add_song(song_key, song_title, song_duration){
    $.ajax({
        type: 'GET',
        url: 'ajx.php',
        data: 'action=add_song&song_key='+song_key+'&song_title='+song_title+'&song_duration='+song_duration,
        success: function(ajaxCevap) {
            // Override #result for result.
            refresh_list();                              
        }
    });     
}

function add_play_song( song_key, song_title, song_duration ){

    loadNewVideo(song_key, 0);
    
    add_song( song_key, song_title, song_duration );
         
}

function add_list(title){
    $.ajax({
        type: 'GET',
        url: 'ajx.php',
        data: 'action=add_list&list_title='+title,
        success: function(ajaxCevap) {
            // Override #result for result.
            refresh_list();
        }
    });       
} 

function select_list(list){

    show_loading('list'); 
    $.ajax({
        type: 'GET',
        url: 'ajx.php',
        data: 'action=select_list&list_id='+list,
        success: function(ajaxCevap) {
            // Override #result for result.
             $('#list').html(ajaxCevap); 
        }
    });        
    
}

function youtube_play( song ){
    loadNewVideo( song, 0 );    
}

function next_song(){
}

function prior_song(){
}


function get_bar_pos(e, obj){  

var evt=window.event || e ;

var x = ( evt.pageX ) ? evt.pageX: evt.clientX;

//var y = (window.event) ? window.event.pageY : event.clientY;

var o = getXY(obj);  

clickX = x-(o.x-8);
// clickY = y-obj.offsetTop;

return clickX;
}

function set_bar( event, obj ){
   var pos = get_bar_pos( event, obj );  
   var focus = (getDuration() / 306) * pos; 
   
   seekTo( focus -3);
  // this.container.style.width = pos-35;
   
}
function getXY(obj)
{
  var curleft = 0;
  var curtop = obj.offsetHeight + 5;
  var border;
  if (obj.offsetParent)
  {
    do
    {
      // XXX: If the element is position: relative we have to add borderWidth
      if (getStyle(obj, 'position') == 'relative')
      {
        if (border = _pub.getStyle(obj, 'border-top-width')) curtop += parseInt(border);
        if (border = _pub.getStyle(obj, 'border-left-width')) curleft += parseInt(border);
      }
      curleft += obj.offsetLeft;
      curtop += obj.offsetTop;
    }
    while (obj = obj.offsetParent)
  }
  else if (obj.x)
  {
    curleft += obj.x;
    curtop += obj.y;
  }
  return {'x': curleft, 'y': curtop};
}

function getStyle(obj, styleProp)
{
  if (obj.currentStyle)
    return obj.currentStyle[styleProp];
  else if (window.getComputedStyle)
    return document.defaultView.getComputedStyle(obj,null).getPropertyValue(styleProp);
}


