﻿///<reference path="../../Lib/Extjs_Intellisense.js" />

Ext.namespace('LUL');

LUL.FileBrowser = function(config, scope) {

    var path = '';
    var folderTree = new LUL.FolderTree({ type: config.type || 'image', panelPath: config.panelPath || '' });
    var filePanel = new LUL.FilePanel({ type: config.type || 'image' });

    folderTree.on('folderSelected', function(node) {
        path = node.attributes.path;
        filePanel.loadFiles(path);
    });

    filePanel.on('uploadFile', function() {
        var uploader = new LUL.Uploader(path, function() {
            filePanel.loadFiles(path);
        });
    });

    filePanel.on('activateFile', function() {
        selectFile();
    });

    filePanel.on('deleteFile', function(data) {
        Ext.Ajax.request({
            url: dataManager.deleteFileURL,
            success: function() {
                filePanel.loadFiles(path);
            },
            params: { path: data[0].filePath }
        });
    });

    function selectFile() {
        var file = filePanel.contents.getSelectedRecords()[0].data;
        win.close();
        if (config.callback) config.callback.call(scope, file.filePath);
    }

    var win = new Ext.Window({
        width: 640,
        height: 480,
        title: 'Välj fil',
        layout: 'border',
        border: false,

        defaults: {
            collapsible: true,
            split: true
        },

        buttons: [
            { text: 'Välj', handler: selectFile },
            { text: 'Avbryt', handler: function() { win.close() } }
        ],

        items: [
            folderTree,
            filePanel
        ]
    });

    win.show();
}
