/* Copyright 2003-2008 Emergent Music LLC  All rights reserved.
$Id$
*/

FLYFI.TrackDialogCell = function(trackDict, onSoundFinishedCallback) {
    // the class for a single track display in a dialog, including playing, but no controls
    // Note: call afterShow() once the cell is shown so that the video gets set up
    
    var self = this;

    self.trackDict = trackDict;
    self.trackCell = new FLYFI.TrackCell(trackDict);
       
    self.html = function () {
        return self.trackCell.html(self.widgetCallback, null, null); // Don't supply self.playerControlsCallback here since the controls are not yet showing in the dialog
    };

    self.widgetCallback = function(trackDict) {
        // called by trackCell.html() to get the widget to use in the trackcell
        var wrapper = $('<ul class="trackcell songitem _small"/>');
        var widget = FLYFI.buildTrackCellWidget(trackDict, true);
        wrapper.append(widget);
        return wrapper;
    };
    
    self.playerControlsCallback = function(widget) {
        var playerControls = new FLYFI.PlayerControls(widget, FLYFI.videoPlayerID(self.trackDict, true) , null, false, onSoundFinishedCallback); // no libraryID
        playerControls.addTrackDictAndWidget(self.trackDict, widget);
        
        return playerControls;
    };
    
    self.afterShow = function(widget) {
        self.trackCell.playerControls = self.playerControlsCallback(widget);
        self.trackCell.playerControls.selectTrack(self.trackDict, false);
    };
    
};
