function onYouTubePlayerReady(playerId) {
    ytplayer = document.getElementById("ytplayerid");
    ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
    return true;
}

function addVideoEntryToList(o) {
    var odd_even;
    switch(list_count % 2) {
        case 0:
            odd_even = 'even';
            break;
        default:
            odd_even = 'odd';
    }
    var el = '<div class="link"><a class="' + odd_even + '" ' + 
        'title="' + o.data.title + '" ' +
        'href="#' + o.data.url + '" ' +
        'onclick="javascript:return playVideoEntry(\'' + o.data.url + '\');">' +
        o.data.title + '</a></div>';
    div_list.insertHtml('beforeEnd', el);
    list_count += 1;
    return true;
}

function onytplayerStateChange(newState) {
    switch(newState) {
        case 0:
            var url = Ext.urlDecode(ytplayer.getVideoUrl().split('?')[1]).v;
            var next = ds.indexOfId(url) + 1;
            if (next < ds.getCount()) {
                playVideoEntry(ds.getAt(next).data.url);
            }
            break;
        default:
            break;
    }
   return true;
}

function playVideoEntry(url) {
    ytplayer.loadVideoById(url);
    var o = ds.getById(url);
    div_title.update(o.data.title);
    div_desc.update(o.data.description);
    return true;
}
