﻿// -------------- base handlers -------------- //

// base handler for handling 'Play' clicked
function eventHandler_handlePlayClickedInt(type, idArray, restrictByUser) {

    var successCallback         = null;
    var errorCallback           = jQuery_ajaxRequestFailed_redirectToLogin;
    var currentPlaylistEntryId  = g_default_xPOPropertyId;
    var positionQualifierEnum   = g_positionQualifierEnum_start;
    
    if (player_isActive()) {
        // only reload player grid
        successCallback = player_reloadAndPlayTrack;
         
        // find current entry and add immediately afterwards (unless we're 'play now'ing' a playlist)
        currentPlaylistEntryId = g_playerPopup.player_getCurrentPlaylistEntryId();
        if ((type !== g_extJsGrid_dataTypePlaylist) && (currentPlaylistEntryId !== g_default_xPOPropertyId) && (currentPlaylistEntryId !== null)) {
            positionQualifierEnum = g_positionQualifierEnum_afterEntry;
        }
        else {
            currentPlaylistEntryId = g_default_xPOPropertyId;
        }
    }
    else {
        // player has been closed, so re-open
        successCallback = player_launch;
    }
    
    // add to stream & launch player
    ajax_addToStream(type, idArray, positionQualifierEnum, currentPlaylistEntryId, restrictByUser, successCallback, errorCallback);
}

// base handler for handling 'Play next' clicked
function eventHandler_handlePlayNextClickedInt(type, idArray, restrictByUser) {

    var successCallback         = null;
    var errorCallback           = jQuery_ajaxRequestFailed_redirectToLogin;
    var currentPlaylistEntryId  = g_default_xPOPropertyId;
    var positionQualifierEnum   = g_positionQualifierEnum_start;

    if (player_isActive()) {
        // only reload player grid
        successCallback = player_reload;

        // find current entry and add immediately afterwards
        currentPlaylistEntryId = g_playerPopup.player_getCurrentPlaylistEntryId();
        if ((currentPlaylistEntryId != g_default_xPOPropertyId) && (currentPlaylistEntryId !== null)) {
            positionQualifierEnum = g_positionQualifierEnum_afterEntry;
        }
        else {
            currentPlaylistEntryId = g_default_xPOPropertyId;
        }
    }
    else {
        // player has been closed, so re-open
        successCallback = player_launch;
    }

    // add to stream & launch player
    ajax_addToStream(type, idArray, positionQualifierEnum, currentPlaylistEntryId, restrictByUser, successCallback, errorCallback);
}

// base handler for handling 'Add to now playing' clicked
function eventHandler_handleAddToNowPlayingClickedInt(type, idArray, restrictByUser) {

    var successCallback = null;
    var errorCallback   = jQuery_ajaxRequestFailed_redirectToLogin;
    
    if (player_isActive()) {
        // only reload player grid
        successCallback = player_reload;
    }
    else {
        // player has been closed, so re-open
        successCallback = player_launch;
    }

    ajax_addToStream(type, idArray, g_positionQualifierEnum_end, g_default_xPOPropertyId, restrictByUser, successCallback, errorCallback);
}

// base handler for handling 'Share on Facebook...' clicked
function eventHandler_handleShareOnFacebookClickedInt(type, trackId) {
    testAndShowFacebookWallPostModalForm(type, trackId);
}

// base handler for handling 'Share on Twitter...' clicked
function eventHandler_handleShareOnTwitterClickedInt(type, trackId) {
    testAndShowTwitterStatusUpdateModalForm(type, trackId);
}

