﻿// -------------- base handlers -------------- //

// base handler for handling 'Play' clicked
function eventHandler_handlePlayClickedInt(type, idArray, restrictByUser) {

    var callback                = null;
    var currentPlaylistEntryId  = g_default_xPOPropertyId;
    var positionQualifierEnum   = g_positionQualifierEnum_start;
    
    if (player_isActive()) {
        // only reload player grid
        callback = player_reloadAndPlayTrack;
         
        // find current entry and add immediately afterwards
        currentPlaylistEntryId = g_playerPopup.player_getCurrentPlaylistEntryId(); 
        if (currentPlaylistEntryId != g_default_xPOPropertyId) {
            positionQualifierEnum = g_positionQualifierEnum_afterEntry;
        }
    }
    else {
        // player has been closed, so re-open
        callback = player_launch;
    }
    
    // add to stream & launch player
    ajax_addToStream(type, idArray, positionQualifierEnum, currentPlaylistEntryId, restrictByUser, callback);
}

// base handler for handling 'Play next' clicked
function eventHandler_handlePlayNextClickedInt(type, idArray, restrictByUser) {

    var callback                = null;
    var currentPlaylistEntryId  = g_default_xPOPropertyId;
    var positionQualifierEnum   = g_positionQualifierEnum_start;

    if (player_isActive()) {
        // only reload player grid
        callback = player_reload;

        // find current entry and add immediately afterwards
        currentPlaylistEntryId = g_playerPopup.player_getCurrentPlaylistEntryId();
        if (currentPlaylistEntryId != g_default_xPOPropertyId) {
            positionQualifierEnum = g_positionQualifierEnum_afterEntry;
        }
    }
    else {
        // player has been closed, so re-open
        callback = player_launch;
    }

    // add to stream & launch player
    ajax_addToStream(type, idArray, positionQualifierEnum, currentPlaylistEntryId, restrictByUser, callback);
}

// base handler for handling 'Add to now playing' clicked
function eventHandler_handleAddToNowPlayingClickedInt(type, idArray, restrictByUser) {

    var callback = null;
    if (player_isActive()) {
        // only reload player grid
        callback = player_reload;
    }
    else {
        // player has been closed, so re-open
        callback = player_launch;
    }

    ajax_addToStream(type, idArray, g_positionQualifierEnum_end, g_default_xPOPropertyId, restrictByUser, callback);
}