var youTubePlayer = null;

function togglePlayerVisibility()
{
    if($('youtube_player_container').style.left == '0px'){
        hidePlayer();
    } else {
        showPlayer();
    }
}

function hidePlayer()
{
    if($('youtube_player_container').style.left == '0px'){
        $('music_video_container').style.visibility = 'hidden';
        $('youtube_player_container').style.left = '-4000px';
    }
}

function showPlayer()
{
    if($('youtube_player_container').style.left == '-4000px'){
        $('music_video_container').style.visibility = 'visible';
        $('youtube_player_container').style.left = '0px';
    }
}

function onYouTubePlayerReady(playerId) 
{
    youTubePlayer = $(playerId);
    
    setInterval(updatePlayerHtml, 250);
    youTubePlayer.addEventListener("onStateChange", "onYouTubePlayerStateChange");
    
                  
    volumeSlider.setValue(getPlayerVolume());
}

function onYouTubePlayerStateChange(newState) 
{
    switch(newState) {
        case(-1): 
            break;
        case(0):
            $('play_button').src = './images/player_play_button.png';
        
            if (playlistIsPlaying == true){
                playNextPlaylistVideo();
            } else {
                $('currently_playing').innerHTML = "Nothing";
                hidePlayer();
            }
            break;
        case(1): 
                
            $('video_loading_icon_'+current_id).style.display = 'none';
            showPlayer();
            break;
        case(2): 
            $('play_button').src = './images/player_play_button.png';
            break;
        case(3): 
            $('video_loading_icon_'+current_id).style.display = 'block';
            break;
    }
}
            

function updatePlayerHtml()
{
    if (youTubePlayer != null) {
        if(getCurrentVideoTime() > 0) {
            var seekValue = youTubePlayer.getCurrentTime()/youTubePlayer.getDuration()*100;
            seekSlider.setValue(seekValue);
            
            var currTime = Math.round(youTubePlayer.getCurrentTime());
            var duration = Math.round(youTubePlayer.getDuration());
            
            if($('seek_curr_time_'+previous_id)) {
            	$('seek_curr_time_'+previous_id).style.display = "none";
            	$('seek_curr_time_'+previous_id).style.visibility = "hidden";
            }
            $('seek_curr_time_'+current_id).innerHTML = TimeHelper.secToTime(currTime, false);
            if($('seek_duration_'+previous_id)) {
            	$('seek_duration_'+previous_id).style.display = "none";
            	$('seek_duration_'+previous_id).style.visibility = "hidden";
            }
            $('seek_duration_'+current_id).innerHTML = TimeHelper.secToTime(duration, false);
        }
    }
}

function playerSeekTo(seconds) 
{
    if (youTubePlayer != null) {
        youTubePlayer.seekTo(seconds, true);
    }
}      

function playNewVideo(videoId, title)
{
    if(youTubePlayer != null) {
        youTubePlayer.loadVideoById(videoId);
        
        
       // $('currently_playing').innerHTML = StringHelper.shorten(title, 50);
       // $('play_button').value = "Pause";
    }
}

function setPlayerVolume(value)
{
    if(youTubePlayer != null) {
        youTubePlayer.setVolume(value);
    }
}

function getPlayerVolume()
{
    if(youTubePlayer != null) {
        return youTubePlayer.getVolume();
    }
}

function getCurrentVideoTime()
{
    if(youTubePlayer != null) {
        return youTubePlayer.getCurrentTime();
    }
}

function getVideoDuration()
{
    if(youTubePlayer != null) {
        return youTubePlayer.getDuration();
    }
}

function videoSeekTo(seconds) {
    if (youTubePlayer != null) {
        youTubePlayer.seekTo(seconds, true);
    }
}


function getPlayerState()
{
    if(youTubePlayer != null) {
        return youTubePlayer.getPlayerState();
    }
}

function pauseVideo()
{ 
    if (youTubePlayer != null) {
        youTubePlayer.pauseVideo();
    }
}

function playVideo() 
{ 
	  if (youTubePlayer != null) {
        youTubePlayer.playVideo();
    }
}

function stopVideo() 
{
    if (youTubePlayer != null) {
        youTubePlayer.stopVideo();
    }
}