﻿var players = null;
var locked = false;
var seeking = 0;
var standaloneSeekTimes = new Array(100);

function playerReady(obj) {    
    if(players == null)
    {
        players = new Array(100);
    }
    var id = parseInt(obj['id'].substring(2,obj['id'].length));
    var player = document.getElementById(obj.id);
    players[id] = player;
    addListeners(player);
    initPlaylist(obj);
    if(standaloneSeekTimes[id] != null && standaloneSeekTimes[id] != undefined)
    {
        $("#Playlist"+id).append(getSeekTimeHtml(standaloneSeekTimes[id], id, 0));
    }
};

function playItem(id, index)
{
    players[id].sendEvent('ITEM', index);
}

function addListeners(player) {
	player.addModelListener("STATE", "stateListener"); 
	player.addControllerListener("ITEM", "itemListener");
	player.addControllerListener("PLAYLIST", "playlistListener");
}

function playlistListener(obj)
{
    initPlaylist(obj);
}

function getSeekTimeHtml(seekTimes, id, index)
{
    var html = "";
    html += "<div class=\"seek"+id+"\" style=\"display:none\" id=\"Seek"+id+"-"+index+"\"><p><b>Jump to:</b></p><ul>";
    for(var j = 0; j < seekTimes.length; j++)
    {
        html+="<li><a href=\"javascript:seek("+id+","+seekTimes[j].time+");\">"+seekTimes[j].title+"</a></li>";
    }
    html+="</ul></div>";
    return html;
}


function initPlaylist(obj)
{
    var id = parseInt(obj['id'].substring(2,obj['id'].length));
    var player = document.getElementById(obj.id);
    var playList = player.getPlaylist();
    if(playList && playList.length > 1)
    {
        
        
        //create an html playlist associated with that video...
        var html = "<ul>";
        for(var i = 0; i < playList.length; i++)
        {
            //alert(playList[i]);
            html += "<li><b>"+playList[i].title+"</b> - <a class=\"playlistItem"+id+"\" id=\"PlaylistItem-"+id+"-"+i+"\" href=\"Javascript:playItem("+id+","+i+")\">Play</a>";
            if(playList[i].link)
            {
            html += " - <a href=\""+playList[i].link+"\">Download MP3</a>";
            }
            html+= "<p>"+playList[i].description+"</p>";
            
            if(playList[i].tags && playList[i].tags != "")
            {
                var seekTimes = eval('(' + playList[i].tags + ')');
                html += getSeekTimeHtml(seekTimes, id, i);
            }
            
            html+="</li>";
            
        }
        html += "</ul>";
        $("#Playlist"+id).append(html);
    }
}

function itemListener(obj)
{
    var id = parseInt(obj['id'].substring(2,obj['id'].length));
    $(".playlistItem"+id).removeClass("selected");
    $("#PlaylistItem-"+id+"-"+obj.index).addClass('selected');
    $(".seek"+id).css("display","none");
    $("#Seek"+id+"-"+obj.index).css("display","block");
    players[id].currentItem = obj.index;
}

function seek(id, second)
{
    players[id].sendEvent('SEEK', second);
}

function stateListener (obj)
{

    var id = parseInt(obj['id'].substring(2,obj['id'].length));
    if(standaloneSeekTimes[id] != null && standaloneSeekTimes!= undefined)
    {
        
        currentState = obj.newstate; 
        if(currentState == "PLAYING" || currentState == "PAUSED" || currentState == "BUFFERING")
        {
            $("#Seek"+id+"-0").css("display","block");
        }
        else
        {
            $("#Seek"+id+"-0").css("display","none");
        }
    }
}
