/******************************************
 * Admin Live uploader v0.1
 *
 * Deze class maakt het mogelijk om dingen
 * toe tevoegen aan de nieuwe berichten
 * momenteel alleen plaatjes..
 *
 * Opties:
 *      fileData; variable
 *      uploadURL; php file
 *      flashURL; flash file
 *      fileTypes; files
 *      postParams; parameters
 *      fileSize; max. bestandgroote
 *
 * new Ajax.Upload({fileData: "bla"}) etc.
 *****************************************/
 
if((typeof Prototype == 'undefined') ||
    (typeof Ajax.Modal != 'function') ||
    (typeof SWFUpload != 'function')) {
    throw('Ajax.Upload vereist Prototype, Ajax.Modal & SWFUpload!');
}

Ajax.Upload = Class.create();
Ajax.Upload.prototype = {
    initialize: function() {
        this.options = Object.extend({
            fileData: 'fileData', // Variable via post
            uploadURL: 'backbase/php/aupload.php', // Upload file
            flashURL: 'backbase/js/swfupload/swfupload_f8.swf', // Flash URL
            fileTypes: '*.jpg; *.png; *.jpeg; *.gif', // Accepted files
            postParams: { "messageID":"0", "messageUpdateID":"0"}, // Post parameters
            fileSize: "2048", // Maximale filesize 2MB
            fileDesc: "Image bestanden",
            progressCont: "SWFUploadTarget",
            queueMax: "1",
            autoStart: false
        }, arguments[0] || {} );
        
        this.initUpload();
    },
    
    initUpload: function() {
        adminUpload = new SWFUpload({
            upload_script: this.options.uploadURL,
            flash_path: this.options.flashURL,
            target: this.options.progressCont,
            
            file_queue_limit: this.options.queueMax,
            file_queue_error_handler: uploadQueueError,
            
            allowed_filesize: this.options.fileSize,
            allowed_filetypes: this.options.fileTypes,
            allowed_filetypes_description: this.options.fileDesc,
            
            browse_link_innerhtml: "Bladeren..",
            upload_link_innerhtml: "Upload queue",
            browse_link_class: "swfuploadbtn browsebtn",
            upload_link_class: "swfuploadbtn uploadbtn",
            
            upload_file_queued_callback: fileQueued,
            upload_file_start_callback: uploadFileStart,
            upload_progress_callback: uploadProgress,
            upload_file_complete_callback: uploadFileComplete,
            upload_file_cancel_callback: uploadFileCancelled,
            upload_queue_complete_callback: uploadQueueComplete,
            upload_file_error_callback: uploadError,
            upload_file_cancel_callback: uploadFileCancelled,
            
            auto_upload: false,
            debug: false
        });
    }
};