﻿var jukebox = null;
var jukeboxLoadCompleted = new Array();

Array.prototype.fire = function (sender, eventArgs) {
    for (var i = 0; i < this.length; i++) this[i](sender, eventArgs);
}

$(document).ready(function () {

    $.ajaxSetup({ cache: false });

    jukebox = new Jukebox();

    if (typeof (loadJukeboxDetailCompleted) != "undefined") {
        $("#jukebox_top").hide();
        jukeboxLoadCompleted.push(loadJukeboxDetailCompleted);
    }
    else {
        jukebox.get("");
        jukeboxLoadCompleted.push(loadJukeboxSiteCompleted);
    }

    $(".DefaultMainColumn tr:odd").css("background-color", "#ffe4f1");
    $(".HomeSongsContainer tr:odd").css("background-color", "#ffe4f1");
    $(".InputTable input[type='button'],input[type='submit'],input[type='reset']").button();

    var c = 46;

    $("#searchbox").autocomplete({
        source: function (request, response) {
            $.getJSON("/Song/Search", { id: request.term }, function (data) {
                $(".ui-autocomplete").addClass("SearchAutocomplete");
                response($.map(data, function (item) {
                    return {
                        label: item.ArtistTitle = item.ArtistTitle.length > c ? item.ArtistTitle.substring(0, c) + " ..." : item.ArtistTitle,
                        value: item.PlayLink
                    }
                }))
            });
        },
        select: function (event, ui) {
            window.location = ui.item.value;
        },
        minChars: 3,
        maxResults: 10
    });

    $("#jukebox_reset").live("click", function (event) {
        var answer = confirm("Weet u zeker dat u alle videoclips uit deze jukebox wilt verwijderen?");
        if (answer) {
            $(".JukeboxReset").append(getLoader());
            jukebox.resetJukebox();
            removeLoader();
            showResetButton(false);
        }
        stopEvent(event);
    });
});

function showResetButton(show) {
    $(document).ready(function () {
        if (show) {
            $("#jukebox_reset").show();
        }
        else {
            $("#jukebox_reset").hide();
        }
    });
}

function loadJukeboxSiteCompleted(sender, eventArgs) {
    $(document).ready(function () {
        showNumberOfSongs();
        jukebox = sender;
        var songs = jukebox.getSongs();
        $.each(songs, function (i, song) {
            var id = "#song_list_buttons_" + song.ID;
            $(id).html("");
            $(id).append(getJukeboxDeleteLink(song.ID));
        });
        showResetButton(songs.length > 0);
        if ($("#song_play_jukebox_button").length > 0) {
            jukeboxSongPlayButton();
        }

        removeLoader();
    });
}

function getJukeboxAddLink(songid) {
    var html = "<a href=\"#\" onclick=\"addToJukebox(" + songid + ");\">";
    html += "<span class=\"AddIconSmall\"></span>voeg toe</a>";
    return html;
}
function getJukeboxDeleteLink(songid) {
    var html = "<a href=\"#\" onclick=\"deleteFromJukebox(" + songid + ");\">";
    html += "<span class=\"DeleteIconSmall\"></span>verwijder</a>";
    return html;
}
function showNumberOfSongs() {
    var maxsongs = jukebox.getMaxSongs();
    var nrsongs = jukebox.getNumberOfSongs();
    $("#jukebox_songcount").html("(" + nrsongs + "/" + maxsongs + ")");
}

function isMaxSongs() {
    var ismax = false;
    var maxsongs = jukebox.getMaxSongs();
    if (jukebox.getNumberOfSongs() >= maxsongs) {
        ismax = true;
        alert("U kunt maximaal " + maxsongs + " videoclips toevoegen aan de jukebox, verwijder eerst een videoclip voordat u weer één kunt toevoegen.");
    }
    return ismax;
}
function addToJukebox(songid) {
    if (!isMaxSongs()) {
        jukebox.addToJukebox(songid);
        var id = "#song_list_buttons_" + songid;
        $(id).html("");
        $(id).append(getLoader());
    }
    stopEvent();
}

function addArtistToJukebox(artistid) {
    if (!isMaxSongs()) {
        jukebox.addArtistToJukebox(artistid);
        var id = "#jukebox_add_artist_" + artistid;
        $(id).html("");
        $(id).append("toegevoegd!");
    }
    stopEvent();
}

function existsCheck(songid) {
    var exists = false;
    $(document).ready(function () {
        var jsongs = jukebox.getSongs();
        for (var i = 0; i < jsongs.length; i++) {
            if (jsongs[i].ID == songid) {
                exists = true;
                break;
            }
        }
    });
    return exists;
}

function deleteFromJukebox(songid) {
    jukebox.deleteFromJukebox(songid);
    var id = "#song_list_buttons_" + songid;
    $(id).html("");
    $(id).append(getJukeboxAddLink(songid));
    stopEvent();
}

function getLoader() {
    return "<img id=\"loader\" src=\"/Content/Images/loader.gif\" />";
}

function removeLoader() {
    $(document).ready(function () {
        $("#loader").remove();
    });
}

function stopEvent(e) {
    if (!e) var e = window.event;

    if (e.stopPropagation) {
        e.stopPropagation();
        e.preventDefault();
    }

    e.cancelBubble = true;
    e.returnValue = false;
    return false;
}
