///////////////////////////////////////////////////////////////////////////////
//
//  ExtendedPlayer
//
//  This extends the base player class, you may override the base player
//  member functions or add additional player functionality here.
//
///////////////////////////////////////////////////////////////////////////////

Type.registerNamespace('ExtendedPlayer');

ExtendedPlayer.Player = function(domElement) {
    ExtendedPlayer.Player.initializeBase(this, [domElement]);
}
ExtendedPlayer.Player.prototype = {
}

ExtendedPlayer.Player.registerClass('ExtendedPlayer.Player', EePlayer.Player);

function indexBoxLoaded(sender){
    if(get_mediainfo("element_length")<=1){
        sender.Visibility = "Collapsed";
    }
}

var expanded = false;
var scrollRange = 0;
var mouseDownPosition = 0;
var mouseDownValue = -1;
var thumbCenter = 0;
var a_watched = [0];

function expandIndex(sender){
    var boxAni;
    if(expanded == false){
        boxAni = sender.findName("indexExpandAnimation");
    }
    else{
        boxAni = sender.findName("indexCollapseAnimation");
    }
    boxAni.begin()
    expanded = !expanded;

    var i_y = 0;
    var i_elements = get_mediainfo("element_length");
    var c_element = sender.findName("playlist_content");

    var c_element_width = 188; //Länge Playlist-Element
    var l_element_width = 194; //Länge Trennlinie

    var c_element_height = 78; // Höhe Playlist-Element
    var st_element_height = 24; // Höhe Subtitle-Element
    var t_element_height = 42; // Höhe Title-Element
    var mi_element_height = 12; // Höhe Metainfo-Element

    c_element.children.clear();
    if(expanded == true){
        for(var i=0; i<i_elements; i++){

            var o_data = get_mediainfo(i);


            var subtitle = c_element.findName("subtitleText");
            var title = c_element.findName("titleText");
            var meta = c_element.findName("metaText");
            var s_color = "#FFFFFFFF";
            for(var j=0;j<a_watched.length;j++){
                if(i==a_watched[j]){
                     s_color = "#FFBCBCBC";
                }
            }

var xaml_element='<Canvas Width="'+c_element_width+'" Tag="'+ i +'" Height="'+c_element_height+'" Canvas.Top="'+i_y+'" Canvas.Left="2" MouseLeftButtonDown="playMedia" Cursor="Hand">';
xaml_element+='<TextBlock Width="'+c_element_width+'" Height="'+st_element_height+'" FontFamily="Arial" FontSize="9" Foreground="#FFBCBCBC" Text="'+o_data.subtitle+'" TextWrapping="Wrap"/>';
xaml_element+='<TextBlock Width="'+c_element_width+'" Height="'+t_element_height+'" FontFamily="Arial" FontSize="12" Foreground="'+s_color+'" Text="'+o_data.title+'" TextWrapping="Wrap" Canvas.Left="10.5" Canvas.Top="'+st_element_height+'" TextDecorations="Underline" FontStyle="Normal"/>';
xaml_element+='<TextBlock Width="'+c_element_width+'" Height="'+mi_element_height+'" FontFamily="Arial" FontSize="9" Foreground="#FFBCBCBC" Text="'+o_data.metainfo+'" TextWrapping="Wrap" Canvas.Top="'+(st_element_height+t_element_height-8)+'"/>';
xaml_element+='<Path Width="'+l_element_width+'" Height="1" Stretch="Fill" Stroke="#FF000000" StrokeThickness="1" Data="M292,25.5 L505.50059,25.5" Canvas.Top="'+(st_element_height+t_element_height+mi_element_height-7)+'"/>';
xaml_element+='<Path Width="'+l_element_width+'" Height="1" Stretch="Fill" Stroke="#FF717773" StrokeThickness="1" Data="M292,25.5 L505.50059,25.5" Canvas.Top="'+(st_element_height+t_element_height+mi_element_height-7)+'"/>';
xaml_element+='<Path Fill="#FFFFFFFF" Width="3.352" Height="6.427" Stretch="Fill" Stroke="#FF000000" StrokeThickness="0" Data="M125.5,247.24993 L125.5,258.91673 131.58334,253.08336 C131.58334,253.08336 131.625,253.06715 125.5,247.24993 z" Canvas.Top="'+(st_element_height+3)+'" Canvas.Left="1.665"/>';
xaml_element+='</Canvas>';

var plugin = sender.getHost();
var e = plugin.content.createFromXaml(xaml_element, true);
c_element.children.Add(e);
i_y += c_element_height;
}

var scroller = sender.findName("scroller");
if(i_y > c_element.Width){
scroller.Visibility="Visible";
scrollRange = i_y;
}
else{scroller.Visibility="Collapsed";}
}
}

function playMedia(sender){
    player._playVideo(sender.tag);
    //expandIndex(sender.getHost().content.findName("IndexBox")); //Schließen der Playlist durch Anwahl eines Videos
}


// SCROLLER
function slider_thumb_MouseLeftButtonDown(sender, args) {
    var slider = sender.findName("scroller");
    sender.captureMouse();
    mouseDownValue = slider_GetValue(slider);
    mouseDownPosition = args.getPosition(null).y;
}

function slider_thumb_MouseLeftButtonUp(sender, args) {

	var slideRange = sender.findName("scroller");
	var slide = sender.findName("thumb");
	var i_perc = slide["Canvas.Left"]/slideRange.height;

    var slider = sender.findName("scroller");
    slider.releaseMouseCapture();
    mouseDownValue = -1;
}

function slider_thumb_MouseMove(sender, args) {
    var slider = sender.findName("scroller");
    if (mouseDownValue != -1) {
        var newValue = mouseDownValue + (args.getPosition(null).y - mouseDownPosition);
        slider_SetValue(slider, newValue);
    }
}

function slider_GetValue(sender) {
    var thumb = sender.findName("thumb");
    return thumb["Canvas.Top"];
}
function slider_SetValue(sender, newValue) {
	var slideRange = sender.findName("scroller");
    if (newValue > slideRange.height ) {
        newValue = slideRange.height;
    }

    if (newValue < - thumbCenter) {
        newValue = - thumbCenter;
    }
    var thumb = sender.findName("thumb");

    var perc = newValue/slideRange.height;
    content_SetValue(sender, perc);

    thumb["Canvas.Top"] = newValue;
}

function content_SetValue(sender, perc){
    var playlist_content = sender.findName("playlist_content");
    var playlist = sender.findName("playlist");
    var offset = 26;
    playlist_content["Canvas.Top"] = -((scrollRange-playlist_content.height-10)*perc);
}