﻿var ep_list;



function clear_animating() {
    document.getElementById("ul_episodes").animating = false;
}

function shift_episodes(dist) {
    var ep_list = document.getElementById("ul_episodes");

    // don't do anything if it's already moving
    if (ep_list.animating) return;
    ep_list.animating = true;

    // enforce bounds
    var dex = ep_list.pos + dist;
    if (dex < 0 || dex > ep_list.size - 1) return clear_animating();


    // animate position
    var myAnim = new YAHOO.util.Motion(ep_list);
    myAnim.attributes.points = { by: [0, -1 * dist * ep_list.item_height] };
    myAnim.duration = .4;
    myAnim.method = YAHOO.util.Easing.easeBoth;
    myAnim.onComplete.subscribe(clear_animating);
    myAnim.animate();


    // animate colors
    var anim1 = new YAHOO.util.ColorAnim(ep_list.getElementsByTagName("li")[ep_list.pos]);
    anim1.attributes.color = { to: '#555' };
    anim1.duration = .4;
    anim1.animate();

    var anim2 = new YAHOO.util.ColorAnim(ep_list.getElementsByTagName("li")[dex]);
    anim2.attributes.color = { to: '#222' };
    anim2.duration = .4;
    anim2.animate();

    ep_list.pos = dex;
}




function switch_episode(dex) {
    var li = ep_list.getElementsByTagName("li")[dex];
    var data = li.getElementsByTagName("span");
    var title = data[0].innerHTML;
    var description = data[1].innerHTML;
    var ep_num = data[2].innerHTML;

    var url = "http://cms027.sv1.qcn3.movenetworks.com/cms/publish/vod/vodclip/byutv/" + ep_num + ".qvt";
    MN.TP.qmp.Play(url);
    MN.Event.Observe(MN.TP.qmp, 'PlayStateChanged', MN.TP.OnPlayStateChanged);

    document.getElementById("ep_title").innerHTML = title;
    document.getElementById("ep_description").innerHTML = description;
    ep_list.playing = dex;
    shift_episodes(ep_list.playing - ep_list.pos);
}





function on_show_ended() {
    if (MN.TP.qmp.CurrentPlayState() == 5) {
        var dex = (ep_list.playing < ep_list.size - 1) ? ep_list.playing + 1 : 0;
        switch_episode(dex);
    }
}




function first_load() {
    MN.Event.Observe(MN.TP.qmp, 'PlayStateChanged', on_show_ended);

    // init episode list
    ep_list = document.getElementById("ul_episodes");
    ep_list.pos = 0;
    ep_list.playing = 0;
    ep_list.size = ep_list.getElementsByTagName("li").length;
    ep_list.item_height = 57;
    switch_episode(0);
}