﻿$(document).ready(function () {
    // jQuery Uniform
    $("select, input:not(.colorpicker, .hideMe), menu, textarea:not(.enhanced), .uniformMe").uniform();

    // Workaround for FireFox size bug: FireFox Ignores % attributes in Width or Height on Objects
    /* if (!jQuery.isEmptyObject($("#videoPlayerObject"))) {
    $("#videoPlayerObject").height('400px').width('640px');
    }*/


    // Developer-Info Overlay
    $('#overlay').hide();
    var fC;
    $(document).keydown(function (e) {
        if ((fC == '84' || fC == '86') && fC + e.keyCode == '170') {
            var left = ($(window).width() - $('#olContent').outerWidth(true)) / 2;
            var top = ($(window).height() - $('#olContent').outerHeight(true)) / 2;
            $('#overlay').show().children('#olContent').css({ 'left': left + 'px', 'top': +'px' });
        } else if (e.keyCode == '84' || e.keyCode == '86') {
            fC = e.keyCode;
        } else {
            fC = 0;
        }
    }).keyup(function () {
        fC = 0;
        $('#overlay').hide();
    });


    // DataTables
    $('#featureTable, #servicesTable, #groupTable, #permissionTable, #jobTable, #presetTable, #encodejobsTable, #imagemanagementTable, #categoryTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "sScrollXInner": "110%",
        "bScrollCollapse": true
    });
    $('#domainTable, #channelTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "sScrollXInner": "110%",
        "bScrollCollapse": true,
        "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]]
    });
    $('.mediaTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "sScrollXInner": "110%",
        "bScrollCollapse": true,
        "aoColumns": [
            { "bSearchable": false,
                "bSortable": false
            },
            null,
            null,
            null,
            { "bSearchable": false,
                "bSortable": false
            },
            { "bSearchable": false,
                "bSortable": false
            },
            { "bSearchable": false,
                "bSortable": false
            }]
    });


    // Related Videos in EditMetadata
    $('#relatedVideosTable, #selectedRelatedVideosTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "sScrollXInner": "110%",
        "bScrollCollapse": true,
        "aoColumns": [
            { "bSearchable": false,
                "bSortable": false
            },
            null,
            null,
            null,
            { "bSearchable": null,
                "bSortable": null,
                "bVisible": null
            }
            ]
    });
    function updateRelatedVideoIDs() {
        var relatedVideos = new Array();
        var nodes = $('#selectedRelatedVideosTable').dataTable().fnGetNodes();
        var aData = new Array();
        for (var i = 0; i < nodes.length; i++) {
            var aData = $('#selectedRelatedVideosTable').dataTable().fnGetData(nodes[i]);
            relatedVideos.push(aData[4]);
        }
        $('#relatedVideoIDs').val(relatedVideos.join(','));
    }

    $('#relatedVideosTable tbody tr').live('click', function () {
        var aData = $('#relatedVideosTable').dataTable().fnGetData(this);
        $('#selectedRelatedVideosTable').dataTable().fnAddData(aData);
        $('#relatedVideosTable').dataTable().fnDeleteRow(this);
        updateRelatedVideoIDs();
    });
    $('#selectedRelatedVideosTable tbody td').live('click', function () {
        var rowIndex = $('#selectedRelatedVideosTable').dataTable().fnGetPosition(this);
        var aData = $('#selectedRelatedVideosTable').dataTable().fnGetData(rowIndex[0]);
        $('#selectedRelatedVideosTable').dataTable().fnDeleteRow(rowIndex[0]);
        $('#relatedVideosTable').dataTable().fnAddData(aData);
        updateRelatedVideoIDs();
    });

    // Expandable fieldsets
    $('fieldset.exp').children().not('legend').hide();
    $('fieldset.exp legend').live('click', function () {
        if ($(this).next().is(':visible')) {
            $(this).parent('fieldset').children().not('legend').stop(true, true).slideUp();
        } else {
            $(this).parent('fieldset').children().not('legend').stop(true, true).slideDown();
        }
    });


    // Tabs
    $('.tabs').tabs();


    // Edit Style
    $('#iconTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "sScrollXInner": "110%",
        "bScrollCollapse": true,
        "aoColumns": [
            null,
            { "bSearchable": false,
                "bSortable": false
            },
            { "bSearchable": false,
                "bSortable": false
            },
            { "bSearchable": false,
                "bSortable": false
            }
            ]
    });


    // Enhanced Textarea
    $('textarea.enhanced').ckeditor();

    // Download Center
    $('#downloadTable ul').live('mouseleave', function () {
        $(this).hide();
    }).hide();
    $('#downloadTable a:not(ul>a)').live('mouseover', function () {
        $(this).next('ul').show();
    });


    // Live Program Manager
    function getOrder() {
        var data = '';
        $('#timeline li:not(.mid, .end)').each(function () {
            var hrs = (($(this).position().top - 10) / 58 * 60 * 60);
            var pos = $(this).position().left - 10; // - 10 due to padding of timeline
            var time = hrs + pos;
            data += '<input type="hidden" data-videoid="' + $(this).attr('data-videoID') + '" value="' + time + '" />';
        });
        $('#dataprovider').html(data);
    };
    function hourOverlap() {
        // get rid of unwanted clones etc...
        $('.mid, .end').remove();
        $('.beg').each(function () {
            $(this).removeClass('beg').css({ 'width': $(this).attr('data-videolength') - 2 });
        });
        $('#timeline li').each(function (index) {
            var sec = $(this).position().left - 10;
            if (sec == 0 && $(this).prev('li').length > 0) {
                // NOT 1st video in timeline
                var startpos = $(this).prev('li').position().left - 10 + $(this).prev('li').outerWidth();
                var remaining = 3600 - startpos;
                if (remaining > 0 && remaining < $(this).attr('data-videolength')) {
                    // not enough time in the current hour --> SPLIT!
                    var restlength = $(this).attr('data-videolength') - remaining;
                    if (restlength > 3600) {
                        // still too large -- > SPLIT again!
                        $(this).before($(this).clone().addClass('beg').css({ 'width': remaining - 2 }));
                        var parts = Math.ceil(restlength / 3600);
                        for (i = 1; i < parts; i++) {
                            // 1st part is already marked as .beg
                            if (i == parts - 1) {
                                // last split part
                                var lastlength = restlength - ((parts - 1) * 3600);
                                // clone gets full width, original gets rest
                                $(this).before($(this).clone().css({ 'width': 3598 }).addClass('mid')).css({ 'width': lastlength - 2 }).removeClass('mid').addClass('end');
                            } else {
                                // some other split part
                                $(this).before($(this).clone().css({ 'width': 3598 })).addClass('mid');
                            }
                        }
                    } else {
                        // fits now - no split needed!
                        $(this).before($(this).clone().addClass('beg').css({ 'width': remaining - 2 })).addClass('end').css({ 'width': restlength - 2 });
                    }
                }
            } else if (sec == 0) {
                // 1st video in timeline
                var parts = Math.ceil($(this).attr('data-videolength') / 3600);
                for (i = 1; i < parts; i++) {
                    if (i == parts - 1) {
                        // last split part
                        var restlength = $(this).attr('data-videolength') - ((parts - 1) * 3600);
                        // clone gets full width, origrinal gets rest
                        if (i == 1) {
                            $(this).before($(this).clone().css({ 'width': 3598 }).addClass('beg')).css({ 'width': restlength - 2 }).addClass('end');
                        } else {
                            $(this).before($(this).clone().css({ 'width': 3598 }).addClass('mid')).css({ 'width': restlength - 2 }).removeClass('mid').addClass('end');
                        }
                    } else if (i == 1) {
                        // 1st split part
                        $(this).before($(this).clone().addClass('beg').css({ 'width': 3598 })).addClass('mid');
                    } else {
                        // some other split part
                        $(this).before($(this).clone().css({ 'width': 3598 })).addClass('mid');
                    }
                }
            }
        });
        getOrder();
    };
    $('.lp-selectables-container li a span').hide();
    $('#timeline').sortable({
        revert: true,
        tolerance: 'pointer',
        placeholder: 'placeholder',
        start: function (event, ui) {
            if (ui.item.hasClass('beg')) {
                // 1st part
                ui.item.nextUntil('li.end').next('li.end').andSelf().not('li.placeholder').remove();
            } else if (ui.item.hasClass('mid')) {
                // some middle part
                ui.item.prevUntil('li.beg').prev('li.beg').andSelf().not('li.placeholder').remove();
                ui.item.nextUntil('li.end').next('li.end').andSelf().not('li.placeholder').remove();
                ui.item.prev('li.beg').remove();
                ui.item.next('li.end').remove();
            } else if (ui.item.hasClass('end')) {
                // last part
                ui.item.prevUntil('li.beg').prev('li.beg').andSelf().not('li.placeholder').remove();
            }
            if (ui.item.hasClass('beg')) {
                $('#timeline li.mid, #timeline li.end').remove();
            } else if (ui.item.hasClass('mid')) {
                $('#timeline li.beg, #timeline li.end').remove();
            } else {
                $('#timeline li.beg, #timeline li.mid').remove();
            }
            $('#timeline li').removeClass('beg mid end').each(function () {
                $(this).css({ 'width': $(this).attr('data-videolength') - 2 });
            });
            $('#timeline li.placeholder').css({ 'width': ui.item.attr('data-videolength') - 2 });
        },
        sort: function () {
            //$('#timeline li.placeholder').css({ 'width': $(this).attr('data-videolength') - 2 });
        },
        stop: function (event, ui) {
            if (ui.item.children('a:not(.del)').children('span').children('.videolength').length < 1) {
                var hours = Math.floor(ui.item.attr('data-videolength') / (60 * 60));
                var divisor_for_minutes = ui.item.attr('data-videolength') % (60 * 60);
                var minutes = Math.floor(divisor_for_minutes / 60);
                var divisor_for_seconds = divisor_for_minutes % 60;
                var seconds = Math.ceil(divisor_for_seconds);
                var dur = hours + ':' + minutes + ':' + seconds;
                ui.item.children('a:not(.del)').children('span').append('<br /><small class="videolength">' + dur + '</small>').removeAttr('style');
            }
            if (ui.item.children('a.del').length < 1) {
                ui.item.append('<a class="del" href="javascript:void(0);" title=""></a>');
            }
            ui.item.removeAttr('style').css({ 'width': ui.item.attr('data-videolength') - 2 }); // videolength - 2 due to border around items
            hourOverlap();
        },
        receive: function (event, ui) {
            hourOverlap();
        }
    });
    $('.lp-selectables-container li').draggable({
        connectToSortable: "#timeline",
        helper: 'clone',
        revert: 'invalid',
        opacity: 0.5,
        start: function (event, ui) {
            $('body').css({ 'overflow': 'hidden' });
        },
        drag: function () {
            $('.ui-draggable-dragging, #timeline li.placeholder').css({ 'width': $(this).attr('data-videolength') - 2 });
        },
        stop: function (event, ui) {
            $('body').css({ 'overflow': 'auto' });
            hourOverlap();
        }
    });
    $('.lp-selectables-container li a').live('mouseover', function () {
        $(this).children('span').stop(true, true).slideDown();
    }).live('mousedown', function () {
        $(this).children('span').stop(true, true).slideUp();
    }).live('mouseleave', function () {
        $(this).children('span').stop(true, true).slideUp();
    });
    $('.del').live('click', function () {
        if ($(this).parent('li').hasClass('beg')) {
            // 1st part
            $(this).parent('li').nextUntil('li.end').andSelf().next('li.end').andSelf().remove();
        } else if ($(this).parent('li').hasClass('mid')) {
            // some middle part
            $(this).parent('li').prevUntil('li.beg').andSelf().prev('li.beg').andSelf().not('li.placeholder').remove();
            $(this).parent('li').nextUntil('li.end').andSelf().next('li.end').andSelf().not('li.placeholder').remove();
            $(this).parent('li').prev('li.beg').remove();
            $(this).parent('li').next('li.end').remove();
        } else if ($(this).parent('li').hasClass('end')) {
            // last part
            $(this).parent('li').prevUntil('li.beg').andSelf().prev('li.beg').andSelf().not('li.placeholder').remove();
        } else {
            $(this).parent('li').remove();
        }
        $('#timeline li').each(function () {
            $(this).css({ 'width': $(this).attr('data-videolength') - 2 });
        });
        hourOverlap();
    });


    // Video Comments
    $('#CommentsWidget').hide();
    function videoCommentToggle() {
        if ($('#CommentsWidget').is(":visible")) {
            $('#CommentsWidget').hide();
        } else {
            $('#CommentsWidget').show();
        }
        var oldsrc = $('#commentToggler img').attr('src');
        var newsrc = $('#commentToggler img').attr('data-toggleurl');
        $('#commentToggler img').attr({ src: newsrc, 'data-toggleurl': oldsrc });
    }
    $('#commentToggler').live('click', function () {
        videoCommentToggle();
    });
    $('#btnComment').live('click', function () {
        var text = $('#TextBox1').val();
        /*$.post("/Comment/AddVideoComment", { id: <%: (int)ViewBag.MappingID %>, txt: text },
        function (obj) {
        if (!obj.Success) {
        alert(obj.Message); //failure, show message
        }
        UpdateVideoComments();
        });*/
        $('#TextBox1').val('');
    });
    setInterval(UpdateVideoComments, 10000);
    function UpdateVideoComments() {
        $('#commentsOutput').empty();
        /*$.post("/Comment/GetVideoComments",
        { id: <%: (int)ViewBag.MappingID %>},
        function(obj) {
        var comments = obj.d;
        $.each(comments, function(index, comment) {
        $('#output').append('<p>' + index + '</p>');
        });
        }
        );*/
    }


    // Now Playing Widget
    function refreshNowPlaying() {
        $.post("/Widgets/NowPlayingData", {},
            function (obj) {
                var meta = '<h5>Now Playing...</h5>';
                if (obj.ScreenShotURL != null) {
                    meta += '<img src="' + obj.ScreenShotURL + '" alt="" width="100" height="56" />';
                }
                if (obj.TitleText != null) {
                    meta += '<h3>' + obj.TitleText + '</h3>';
                }
                if (obj.SubTitle != null) {
                    meta += '<h4>' + obj.SubTitle + '</h4>';
                }
                if (obj.Description != null) {
                    meta += '<div class="descr">' + obj.Description + '</div>';
                }
                if (obj.TimeRemaining != null) {
                    meta += '<small>Remaining: ' + obj.TimeRemaining + '</small>';
                }
                meta += '<h5>Next Up...</h5>';
                if (obj.NextScreenShotURL != null) {
                    meta += '<img src="' + obj.NextScreenShotURL + '" alt="" width="100" height="56" />';
                }
                if (obj.NextTitleText != null) {
                    meta += '<h3>' + obj.NextTitleText + '</h3>';
                }
                if (obj.NextSubTitle != null) {
                    meta += '<h4>' + obj.NextSubTitle + '</h4>';
                }
                if (obj.NextDescription != null) {
                    meta += '<div class="descr">' + obj.NextDescription + '</div>';
                }
                if (obj.NextVideoLength != null) {
                    meta += '<small>Length: ' + obj.NextVideoLength + '</small>';
                }
                api.getContentPane().html(meta);
                api.reinitialise();
            });
    }

    if ($('#videometa').length > 0) {
        var meta = $('#videometa');
        meta.jScrollPane();
        var api = meta.data('jsp');
        var refreshInterval = setInterval(refreshNowPlaying, 10000);
        refreshNowPlaying();
    }


    // OnDemand View
    $('.od-descr').each(function () {
        if ($(this).text().length > 203) {
            $(this).html($(this).text().substr(0, 200) + '...');
        } else {
            $(this).html($(this).text());
        }
    });
    $('#odTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "sScrollXInner": "110%",
        "bScrollCollapse": true,
        "iDisplayLength": 20
    });
    $('#odTable_length').remove();


    // SelectDomains Select
    $('.dialog').dialog({ autoOpen: false, modal: true, resizable: false, width: 'auto' });
    $('.openDialog').live('click', function () {
        var dlg = $(this).attr('href');
        $(dlg).dialog('open');
        return false;
    });

    $('#singleDomain').dialog({ autoOpen: false, modal: true, resizable: false, width: 'auto' });
    $('#singleDomainTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers"
    });
    $('#singleDomainTable tbody td').live('click', function () {
        $('#Domain').val($(this).text().replace(/^\s+|\s+$/g, ''));
        $('#DomainID').val($(this).attr('data-domainid'));
        $('#singleDomain').dialog('close');
    });


    // Administrator Select


    // MultiSelectDomains Select
    $('#additionalDomainTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "aoColumns": [
            null,
            { "bSearchable": false,
                "bVisible": false
            },
            { "bSearchable": false,
                "bVisible": false
            }
        ]
    });
    $('#selectedAdditionalDomainTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "aoColumns": [
            null,
            { "bSearchable": false,
                "bVisible": false
            },
            { "bSearchable": false,
                "bSortable": false
            }
        ]
    });
    $('#additionalDomain').dialog({ autoOpen: false, modal: true, resizable: false, width: 'auto' });

    function updateIDs() {
        var additionalDomains = new Array();
        var nodes = $('#selectedAdditionalDomainTable').dataTable().fnGetNodes();
        var aData = new Array();
        for (var i = 0; i < nodes.length; i++) {
            var aData = $('#selectedAdditionalDomainTable').dataTable().fnGetData(nodes[i]);
            additionalDomains.push(aData[1]);
        }
        $('#AdditionalDomains').val(additionalDomains.join(','));
    }
    $('#additionalDomainTable tbody tr').live('click', function () {
        var aData = $('#additionalDomainTable').dataTable().fnGetData(this);
        $('#selectedAdditionalDomainTable').dataTable().fnAddData(aData);
        $('#additionalDomainTable').dataTable().fnDeleteRow(this);
        updateIDs();
    });
    $('#selectedAdditionalDomainTable tbody td').live('click', function () {
        var rowIndex = $('#selectedAdditionalDomainTable').dataTable().fnGetPosition(this);
        var aData = $('#selectedAdditionalDomainTable').dataTable().fnGetData(rowIndex[0]);
        $('#additionalDomainTable').dataTable().fnAddData(aData);
        $('#selectedAdditionalDomainTable').dataTable().fnDeleteRow(rowIndex[0]);
        updateIDs();
    });
    $('#selectedAdditionalDomainTable tbody a').live('click', function () {
        $(this).parent('td').click();
    });


    // MultiSelectChannels Select
    $('#relatedChannelTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "aoColumns": [
            null,
            { "bSearchable": false,
                "bVisible": false
            },
            { "bSearchable": false,
                "bVisible": false
            }
        ]
    });
    $('#selectedRelatedChannelsTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "aoColumns": [
            null,
            { "bSearchable": false,
                "bVisible": false
            },
            { "bSearchable": false,
                "bSortable": false
            }
        ]
    });
    $('#relatedChannel').dialog({ autoOpen: false, modal: true, resizable: false, width: 'auto' });

    function updateIDAdditionalChannels() {
        var additionalChannels = new Array();
        var nodes = $('#selectedRelatedChannelsTable').dataTable().fnGetNodes();
        var aData = new Array();
        for (var i = 0; i < nodes.length; i++) {
            var aData = $('#selectedRelatedChannelsTable').dataTable().fnGetData(nodes[i]);
            additionalChannels.push(aData[1]);
        }
        $('#SelectedChannels').val(additionalChannels.join(','));
    }

    $('#relatedChannelTable tbody tr').live('click', function () {
        var aData = $('#relatedChannelTable').dataTable().fnGetData(this);
        $('#selectedRelatedChannelsTable').dataTable().fnAddData(aData);
        $('#relatedChannelTable').dataTable().fnDeleteRow(this);
        updateIDAdditionalChannels();
    });
    $('#selectedRelatedChannelsTable tbody td').live('click', function () {
        var rowIndex = $('#selectedRelatedChannelsTable').dataTable().fnGetPosition(this);
        var aData = $('#selectedRelatedChannelsTable').dataTable().fnGetData(rowIndex[0]);
        $('#selectedRelatedChannelsTable').dataTable().fnDeleteRow(rowIndex[0]);
        $('#relatedChannelTable').dataTable().fnAddData(aData);
        updateIDAdditionalChannels();
    });
    $('#selectedRelatedChannelsTable tbody a').live('click', function () {
        $(this).parent('td').click();
    });

    // HTML5 Video Player
    $('video').VideoJS();


    // Social Features
    $('.expandable').hide();
    $('.expander').live('click', function () {
        var xpndbl = $(this).attr('href')
        if ($(xpndbl).is(':visible')) {
            $(xpndbl).slideUp();
            $(this).text('Show more');
        } else {
            $(xpndbl).slideDown();
            $(this).text('Show less');
        }
        return false;
    });


    // Video Rating
    $(".star").live('click', function () {
        var span = $(this).parent("span");
        var newRating = $(this).attr("value");
        var postID = span.attr("post");
        var text = span.children("span");
        $.post("/Rating/RateVideo", { mappingID: postID, rating: newRating },
            function (obj) {
                if (obj.Success) {
                    text.html("Currently rated " + obj.Result.Rating + " by " + obj.Result.Raters + " people"); //modify the text
                    span.attr("rating", obj.Result.Rating); //set the rating attribute
                    setRating(span, obj.Result.Rating); //update the display
                    alert("Thank you, your vote was casted successfully.");
                } else {
                    alert(obj.Message); //failure, show message
                }
            }
        );
    })/*;
    $(".star").live('click', function () {
        var span = $(this).parent("span");
        var newRating = $(this).attr("value");
        var postID = span.attr("post");
        var text = span.children("span");
        $.post("/Post/SetRating", { id: postID, rating: newRating },
            function (obj) {
                if (obj.Success) {
                    text.html("Currently rated " + obj.Result.Rating + " by " + obj.Result.Raters + " people"); //modify the text
                    span.attr("rating", obj.Result.Rating); //set the rating attribute
                    setRating(span, obj.Result.Rating); //update the display
                } else {
                    alert(obj.Message); //failure, show message
                }
            }
        );
    })*/.live('mouseover', function () {
        var span = $(this).parent("span");
        var newRating = $(this).attr("value");
        setRating(span, newRating);
    });

    function setRating(span, rating) {
        span.find('img').each(function () {
            var value = parseFloat($(this).attr("value"));
            var imgSrc = $(this).attr("src");
            if (value <= rating)
                $(this).attr("src", imgSrc.replace("off.gif", "on.gif"));
            else
                $(this).attr("src", imgSrc.replace("on.gif", "off.gif"));
        });
    }


    // OnDemand-Tree Builder
    $('.odVideotable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "sScrollXInner": "110%",
        "bScrollCollapse": true,
        "aoColumns": [
            { "bSearchable": false,
                "bSortable": false
            },
            null,
            null,
            null,
            { "bSearchable": false,
                "bSortable": false,
                "bVisible": false
            }]
    });


    // OnDemand-Tree
    $('#odTree').dynatree({
        initAjax: {
            type: 'POST',
            url: $('#odTree').attr('data-source'),
            onPostInit: function () {
                getTreeData();
            }
        },
        dnd: {
            onDragStart: function (node) {
                return true;
            },
            autoExpandMS: 1000,
            preventVoidMoves: true,
            onDragEnter: function (targetNode, sourceNode) {
                /*if (!targetNode.isFolder)
                return ['before', 'after'];*/
                return true;
            },
            onDragOver: function (targetNode, sourceNode, hitMode) {
                /*if (targetNode.isDescendantOf(sourceNode))
                return false;
                if (!targetNode.isFolder)
                return ['before', 'after'];*/

            },
            onDrop: function (targetNode, sourceNode, hitMode, ui, draggable) {
                sourceNode.move(targetNode, hitMode);
                getTreeData();
            },
            onDragLeave: function (targetNode, sourceNode) {
            }
        },
        onFocus: function (node) {
            selectedNode = node;
            //alert(selectedNode.data.key);
        }
    });
    var selectedNode = $('#odTree').dynatree('getRoot');
    $('#od-addFolder').live('click', function () {
        var target = $(this).attr('data-action');
        //var parent = selected.key;
        if ($('#new-folder-title').val().length > 0) {
            var permissions = new Array();
            $('[name="permission[]"]:checked').each(function () {
                permissions.push($(this).val());
            });
            var childNode = selectedNode.addChild({
                title: $('#new-folder-title').val(),
                isFolder: true,
                thumbnail: $('[name="thumbnail[]"]:checked').val(),
                permissions: permissions
            }).expand(false);
            $('#newFolder').dialog('close');
            $('#new-folder-title').val('');
            $('#folder-extended input[type="checkbox"]').each(function () {
                $(this).prop('checked', true).parent('span').addClass('checked');
            });
            $('input[name="thumbnail[]"]').each(function () {
                $(this).prop('checked', false).parent('span').removeClass('checked');
            });
        }
        getTreeData();
    });
    $('#od-ownvideos tbody tr td').live('click', function () {
        var rowIndex = $('#od-ownvideos').dataTable().fnGetPosition(this);
        var aData = $('#od-ownvideos').dataTable().fnGetData(rowIndex[0]);
        var childNode = selectedNode.addChild({
            title: aData[1],
            videoID: parseInt(aData[4]),
            isFolder: false
        });
        $('#newVideo').dialog('close');
        getTreeData();
    });
    $('#od-partnervideos tbody tr td').live('click', function () {
        var rowIndex = $('#od-partnervideos').dataTable().fnGetPosition(this);
        var aData = $('#od-partnervideos').dataTable().fnGetData(rowIndex[0]);
        var childNode = selectedNode.addChild({
            title: aData[1],
            videoID: parseInt(aData[4]),
            isFolder: false
        });
        $('#newVideo').dialog('close');
        getTreeData();
    });
    $('#editFolder-button').live('click', function () {
        $('#edit-folder-title').val(selectedNode.data.title);
        $('input[name="editPermission[]"]').each(function () {
            $(this).prop('checked', false).parent('span').removeClass('checked');
        });
        for (permission in selectedNode.data.permissions) {
            $('input[name="editPermission[]"][value="' + selectedNode.data.permissions[permission] + '"]').each(function () {
                $(this).prop('checked', true).parent('span').addClass('checked');
            });
        }
        $('input[name="editThumbnail[]"]').each(function () {
            $(this).prop('checked', false).parent('span').removeClass('checked');
        });
        $('input[name="editThumbnail[]"][value="' + selectedNode.data.thumbnail + '"]').prop('checked', true).parent('span').addClass('checked');
    });
    $('#od-saveFolder').live('click', function () {
        if ($('#new-folder-title').val().length > 0) {
            selectedNode.data.title = $('#edit-folder-title').val();
            var newPermissions = new Array();
            $('[name="editPermission[]"]:checked').each(function () {
                newPermissions.push($(this).val());
            });
            selectedNode.data.permissions = newPermissions;
            selectedNode.data.thumbnail = $('input[name="editThumbnail[]"]:checked').val();
            selectedNode.render();
            getTreeData();
            $('#editFolder').dialog('close');
        }
    });
    $('#od-remove').live('click', function () {
        selectedNode.remove();
        selectedNode.render();
        getTreeData();
    });
    function getTreeData() {
        var dict = $("#odTree").dynatree("getTree").toDict();
        $('#treeArray').val(JSON.stringify(dict));
    }

    //OnDemand-Tree View
    $('#onDemandTreeView').dynatree({
        initAjax: {
            type: 'POST',
            url: $('#onDemandTreeView').attr('data-source'),
            data: { key: 0, mode: 'all' }
        },
        onClick: function (node) {
            selectedNode = node;
            if (selectedNode.data.isFolder == false) {
                $('#treePlayer').load($('#treePlayer').attr('data-source') + selectedNode.data.realVideoID + ' #videoPlayerObject');
                $('#leftflyout').load($('#treePlayer').attr('data-source') + selectedNode.data.realVideoID + ' .slidePanel.left', function () {
                    $('.slidePanel').removeClass('open').children('.sP-container').jScrollPane();
                    $('body').css({ 'overflow-x': 'hidden' });
                    $('.slidePanel a.toggler').live('click', function () {
                        if ($(this).parent('.slidePanel').hasClass('open')) {
                            $(this).parent('.slidePanel').switchClass('open', 'closed', 500);
                        } else {
                            $(this).parent('.slidePanel').switchClass('closed', 'open', 500);
                        }
                    });
                });
                $('#rightflyout').load($('#treePlayer').attr('data-source') + selectedNode.data.realVideoID + ' .slidePanel.right', function () {
                    $('.slidePanel').removeClass('open').children('.sP-container').jScrollPane();
                    $('body').css({ 'overflow-x': 'hidden' });
                    $('.slidePanel a.toggler').live('click', function () {
                        if ($(this).parent('.slidePanel').hasClass('open')) {
                            $(this).parent('.slidePanel').switchClass('open', 'closed', 500);
                        } else {
                            $(this).parent('.slidePanel').switchClass('closed', 'open', 500);
                        }
                    });
                });

            }
        }
    });


    // Videomail
    $('#mailAddressesTable, #maillistsTable, #videomailsTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "aoColumns": [
            null,
            { "bSearchable": false,
                "bSortable": false
            }
        ]
    });
    $('#selectedMailAddressesTable, #selectableMailAddressesTable, #selectedMaillistsTable, #selectableMaillistsTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "aoColumns": [
            null,
            { "bSearchable": false,
                "bSortable": false,
                "bVisible": false
            }
        ]
    });
    function updateMailLists() {
        var mailLists = new Array();
        var nodes = $('#selectedMaillistsTable').dataTable().fnGetNodes();
        var aData = new Array();
        for (var i = 0; i < nodes.length; i++) {
            var aData = $('#selectedMaillistsTable').dataTable().fnGetData(nodes[i]);
            mailLists.push(aData[1]);
        }
        $('#MailLists').val(mailLists.join(','));
    }
    $('#selectableMaillistsTable tbody tr').live('click', function () {
        var aData = $('#selectableMaillistsTable').dataTable().fnGetData(this);
        $('#selectedMaillistsTable').dataTable().fnAddData(aData);
        $('#selectableMaillistsTable').dataTable().fnDeleteRow(this);
        updateMailLists();
    });
    $('#selectedMaillistsTable tbody td').live('click', function () {
        var rowIndex = $('#selectedMaillistsTable').dataTable().fnGetPosition(this);
        var aData = $('#selectedMaillistsTable').dataTable().fnGetData(rowIndex[0]);
        $('#selectedMaillistsTable').dataTable().fnDeleteRow(rowIndex[0]);
        $('#selectableMaillistsTable').dataTable().fnAddData(aData);
        updateMailLists();
    });

    function updateAddedMailAddresses() {
        var addedMailAddresses = new Array();
        var nodes = $('#selectedMailAddressesTable').dataTable().fnGetNodes();
        var aData = new Array();
        for (var i = 0; i < nodes.length; i++) {
            var aData = $('#selectedMailAddressesTable').dataTable().fnGetData(nodes[i]);
            addedMailAddresses.push(aData[1]);
        }
        $('#AddedMailAddresses').val(addedMailAddresses.join(','));
    }
    $('#selectableMailAddressesTable tbody tr').live('click', function () {
        var aData = $('#selectableMailAddressesTable').dataTable().fnGetData(this);
        $('#selectedMailAddressesTable').dataTable().fnAddData(aData);
        $('#selectableMailAddressesTable').dataTable().fnDeleteRow(this);
        updateAddedMailAddresses();
    });
    $('#selectedMailAddressesTable tbody td').live('click', function () {
        var rowIndex = $('#selectedMailAddressesTable').dataTable().fnGetPosition(this);
        var aData = $('#selectedMailAddressesTable').dataTable().fnGetData(rowIndex[0]);
        $('#selectedMailAddressesTable').dataTable().fnDeleteRow(rowIndex[0]);
        $('#selectableMailAddressesTable').dataTable().fnAddData(aData);
        updateAddedMailAddresses();
    });

    // Create Videomail
    /* Topgraphic Choice */
    $('#videomail-topgraphic-choice-container img:not(:first)').hide();
    $('#videomail-topgraphic').val($('#videomail-topgraphic-choice-container img:first').attr('id'));
    $('#prev-videomail-topgraphic').live('click', function () {
        if ($('#videomail-topgraphic-choice-container img:visible').prev().length > 0) {
            $('#videomail-topgraphic-choice-container img:visible').hide().prev().show();
        } else {
            $('#videomail-topgraphic-choice-container img:visible').hide();
            $('#videomail-topgraphic-choice-container img:last').show();
        }
        $('#videomail-topgraphic').val($('#videomail-topgraphic-choice-container img:visible').attr('id'));
    });
    $('#next-videomail-topgraphic').live('click', function () {
        if ($('#videomail-topgraphic-choice-container img:visible').next().length > 0) {
            $('#videomail-topgraphic-choice-container img:visible').hide().next().show();
        } else {
            $('#videomail-topgraphic-choice-container img:visible').hide();
            $('#videomail-topgraphic-choice-container img:first').show();
        }
        $('#videomail-topgraphic').val($('#videomail-topgraphic-choice-container img:visible').attr('id'));
    });

    $('#videomail-video-table tbody tr').live('click', function () {
        var aData = $('#videomail-video-table').dataTable().fnGetData(this);
        $('#VideomailVideo').val(aData[6]);
        $('#videomail-video-dialog').dialog('close');
    });
    // Screen Choice
    $('#videomail-player-screen-choice-container img:not(:first)').hide();
    $('#videomail-player-screen').val($('#videomail-player-screen-choice-container img:first').attr('id'));
    $('#prev-videomail-screen').live('click', function () {
        if ($('#videomail-player-screen-choice-container img:visible').prev().length > 0) {
            $('#videomail-player-screen-choice-container img:visible').hide().prev().show();
        } else {
            $('#videomail-player-screen-choice-container img:visible').hide();
            $('#videomail-player-screen-choice-container img:last').show();
        }
        $('#videomail-player-screen').val($('#videomail-player-screen-choice-container img:visible').attr('id'));
    });
    $('#next-videomail-screen').live('click', function () {
        if ($('#videomail-player-screen-choice-container img:visible').next().length > 0) {
            $('#videomail-player-screen-choice-container img:visible').hide().next().show();
        } else {
            $('#videomail-player-screen-choice-container img:visible').hide();
            $('#videomail-player-screen-choice-container img:first').show();
        }
        $('#videomail-player-screen').val($('#videomail-player-screen-choice-container img:visible').attr('id'));
    });
});
