function fileQueued(file, queuelength) {
    var listingfiles = document.getElementById("SWFUploadFileListingFiles");

    if(!listingfiles.getElementsByTagName("ul")[0]) {
        var ul = document.createElement("ul")
        ul.id = 'fileList';
        listingfiles.appendChild(ul);
    }
    
    if($('SWFErr')) {
        err = document.getElementById('SWFErr');
        listingfiles.removeChild(err);
    }
    
    listingfiles = listingfiles.getElementsByTagName("ul")[0];
    
    var li = document.createElement("li");
    li.id = file.id;
    li.className = "SWFUploadFileItem";   
    li.innerHTML = "<p>" + file.name + "</p><p class='progressBar' id='" + file.id + "progress'></p><a id='" + file.id + "deletebtn' class='cancelbtn' href='javascript:adminUpload.cancelFile(\"" + file.id + "\");'><!-- IE --></a>";

    listingfiles.appendChild(li);
    
    var queueinfo = document.getElementById("queueinfo");
    if(queueinfo != null) {
        queueinfo.innerHTML = ((queuelength == 1) ? queuelength + " bestand in de wachtrij" : queuelength + " bestanden in de wachtrij");
        document.getElementById("cancelqueuebtn").style.visibility = "visible"; 
    }
}

function uploadFileCancelled(file, queuelength) {
    var ul = document.getElementById('fileList');
    var li = document.getElementById(file.id);
    if(li != null) {
        li.innerHTML = file.name + " - geannuleerd";
        li.className = "SWFUploadFileItem uploadCancelled";
        var queueinfo = document.getElementById("queueinfo");
        if(queueinfo != null) { 
            queueinfo.innerHTML = ((queuelength == 1) ? queuelength + " bestand in de wachtrij" : queuelength + " bestanden in de wachtrij");
        }
        
        // Queue verwijder effect
        setTimeout(function () { 
            new Effect.Fade(li, {duration: 0.5, afterFinish: function() { 
                clearFile(ul, li);
            } }) 
        }, 1000);
    }
}

function clearFile(ul, li) {
    ul.removeChild(li);
}

function uploadFileStart(file, position, queuelength) {
    var div = document.getElementById("queueinfo");
    if(div != null) {
        div.innerHTML = "Bezig met uploaden van bestand: " + position + " v/d: " + queuelength;
    }

    var li = document.getElementById(file.id);
    li.className += " fileUploading";
}                                                                          

function uploadProgress(file, bytesLoaded) {

    var progress = document.getElementById(file.id + "progress");
    var percent = Math.ceil((bytesLoaded / file.size) * 200)
    progress.style.background = "#f0f0f0 url(backbase/images/layout/swfupload_progressbar.png) no-repeat -" + (200 - percent) + "px 0";
}

function uploadError(errno) {
    // SWFUpload.debug(errno);
}

function uploadFileComplete(file) {
    var li = document.getElementById(file.id);
    li.className = "SWFUploadFileItem uploadCompleted";
}

function cancelQueue() {
    adminUpload.cancelQueue();
    
    document.getElementById("cancelqueuebtn").style.visibility = "hidden";
}

function uploadQueueComplete(file) {
    document.getElementById("cancelqueuebtn").style.visibility = "hidden";
}

function uploadQueueError(file, errorCode, message) {
    try {
        if (errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) {
            //alert("You have attempted to queue too many files.\n" + (message === 0 ? "You have reached the upload limit." : "You may select " + (message > 1 ? "up to " + message + " files." : "one file.")));
            var err = document.getElementById('SWFUploadFileListingFiles');
            err.innerHTML = '<p id="SWFErr" style="color:red"><strong>Er zijn te veel bestanden geselecteerd.' + (message === 0 ? "De upload limit is gehaald" : " Je mag maar " + (message > 1 ? " tot aan: " + message + " bestanden selecteren." : " één bestand selecteren.")) + "</strong></p>";
            adminUpload.cancelQueue();
            return;
        }

        var progress = new FileProgress(file, this.customSettings.progressTarget);
        progress.setError();
        progress.toggleCancel(false);

        switch (errorCode) {
        case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
            progress.setStatus("File is too big.");
            this.debug("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
            break;
        case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
            progress.setStatus("Cannot upload Zero Byte files.");
            this.debug("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
            break;
        case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
            progress.setStatus("Invalid File Type.");
            this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
            break;
        case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:
            alert("You have selected too many files.  " +  (message > 1 ? "You may only add " +  message + " more files" : "You cannot add any more files."));
            break;
        default:
            if (file !== null) {
                progress.setStatus("Unhandled Error");
            }
            this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
            break;
        }
    } catch (ex) {
        this.debug(ex);
    }
}