﻿function SortableTrackList() {
    // Setup Sortable Playlist
    $("#TrackList").sortable({
        placeholder: 'TrackGhost',
        update: function(event, ui) {

            // Get Variables
            var order = $('#TrackList').sortable('serialize', { key: 'Track' });
            var droppedTrack = $(ui.item).attr("id");
            var trackID = droppedTrack.toString().replace('Track_', '');
            var newPosition = ($('#' + droppedTrack).prevAll('li').length + 1);

            //alert('Dropped Track ID:\n#' + trackID + '\n\nDropped Track New Position:\n' + newPosition + '\n\nNew Track Order:\n' + order);

            // Save via AJAX
            $.post(ajaxPrefix + 'playlists/tools/ReorderPlaylist.aspx', {
                PlaylistID: playlistID,
                TrackID: trackID,
                PositionID: newPosition
            });

        }
    });
}

function SaveTrackToPlaylist(playlistID, trackID) {
    SaveToPlaylist(playlistID, '', trackID);
    $("#Tracklist").load(ajaxPrefix + 'playlists/tools/GetTracklist.aspx?id=' + playlistID, '', function() { 
        $("#TrackSearchResults").slideUp("fast", function() {
            $("#TrackSearchInput").val("").blur();
            SortableTrackList();
        });
    });
}

$(document).ready(function() {
    
    // Call Sortable Tracklist
    SortableTrackList();

    // Add class for selected playlist
    $("#PlaylistSelection .PlaylistName").click(function() {
        $("#PlaylistSelection li").removeClass("Selected");
        $(this).parent().addClass("Selected");
    });

    // Toggle Settings Panel Open/Close
    $(".SettingsBtn").click(function() {
        $("#SettingsPanel").toggle();
    });

    // Remove Track If Trash Can is clicked
    $("#MyPlaylists .TrashSmall").click(function() {
        $(this).parent().remove();
        $.post(ajaxPrefix + 'playlists/tools/DeletePlaylist.aspx', {
            PlaylistID: this.id.replace('Playlist_', '')
        });
    });
    $("#PlaylistCreator .TrashSmall").click(function() {
        $(this).parent().parent().remove();
        $.post(ajaxPrefix + 'playlists/tools/DeletePlaylist.aspx', {
            PlaylistID: playlistID,
            TrackID: this.id
        });
    });

    // Match Playlist Title to Title being entered in Settings Box
    $("#SettingsPanel").find(".PlaylistName").find("input").keyup(function() {
        $("#PlaylistDetails").find(".Heading").find("h3.Title").text($("#SettingsPanel").find(".PlaylistName").find("input").val());
    });


});
