﻿Ext.ux.ChartEntryGridPanel = Ext.extend(Ext.ux.TrackGridPanel, {

    // standard initializer
    initComponent: function() {
        Ext.ux.ChartEntryGridPanel.superclass.initComponent.apply(this, arguments);

        // don't restrict tracks played by the current user id
        this.setRestrictByUser(false);

        // args have to go here as base class initComponent doesn't get called for some reason
        var config = {
            view: new Ext.ux.ChartEntryGridView({ scrollOffset: g_gridScrollOffset })
        };

        Ext.apply(this, config);
        Ext.apply(this.initialConfig, config);

        this.on('contextmenu', this.onContextMenu, this);
    },


    // ------ event handler functions ------ //

    // context menu
    onContextMenu: function(e) {
        var rowIndex = this.getRowIndexFromEvent(e);
        
        this.updateSelections(rowIndex);
        this.contextMenu = this.createActionsContextMenu(this, rowIndex);

        Ext.ux.ChartEntryGridPanel.superclass.onContextMenu.call(this, e);
    },


    // ------ context menu creation helper functions ------ //

    // create the context menu
    createActionsContextMenu: function(grid, rowIndex) {
        var contextMenu = this.createEmptyActionsContextMenu();

        contextMenu = this.addStreamingMenuItems(contextMenu, rowIndex);
        contextMenu = this.addSharingMenuItems(contextMenu, rowIndex);
        
        /*
        contextMenu.add(new Ext.menu.Item({
            text: g_resourceStrings['Js_ResultsGrid_PopupMenu_CreatePlaylistFromSelectedTracks'],
            handler: function() { chartEntryGridPanel_createPlaylistFromSelectedTracksClicked(); }
        }));

        contextMenu.add(new Ext.menu.Item({
            text: g_resourceStrings['Js_ResultsGrid_PopupMenu_SaveSearchAsChart'],
            handler: function() { chartEntryGridPanel_saveSearchAsChartClicked(); }
        }));
        */

        // add any generic menu items
        contextMenu = this.addGenericMenuItems(grid, contextMenu, rowIndex);

        return contextMenu;
    }
});

Ext.ux.ChartEntryGridView = Ext.extend(Ext.ux.TrackGridView, { 
});

// configure drag & drop
Ext.ux.ChartEntryGridDragZone = Ext.extend(Ext.ux.TrackGridDragZone, {
});


// ------ context menu item click handler functions ------ //

function chartEntryGridPanel_saveSearchAsChartClicked() {
}

function chartEntryGridPanel_createPlaylistFromSelectedTracksClicked() {
}