var totalFiles = 0;
var handlers = new function() {
    var self = this;

    var fileCancelled = function(file) {
        var li = document.getElementById(file.id);
        li.innerHTML = file.name + " - sters";
        $(li).hide(800);
        
        totalFiles--;

        if (totalFiles === 0) {
            $("#upload-btn").hide();
        }
    };

    self.fileQueued = function(file) {
        var listingfiles = document.getElementById("SWFUploadTarget");

        if(!listingfiles.getElementsByTagName("ul")[0]) {

            var info = document.createElement("h4");
            //info.appendChild(document.createTextNode("Fisiere in asteptare"));

            listingfiles.appendChild(info);

            var ul = document.createElement("ul")
            listingfiles.insertBefore(ul, listingfiles.getElementsByTagName("a")[1]);
        }

        listingfiles = listingfiles.getElementsByTagName("ul")[0];

        var li = document.createElement("li");
        li.id = file.id;
        li.className = "SWFUploadFileItem";
        li.innerHTML = file.name + "<span style='position:relative;top:-15px;left:-20px;float:right;' id='"+file.id+"procent'></span> <span class='progressBar' id='" + file.id + "progress'></span><a id='" + file.id + "deletebtn' class='cancelbtn' href='javascript:swfu.cancelUpload(\"" + file.id + "\");'><!-- IE --></a>";
        $(li).hide()
        listingfiles.appendChild(li);
        $(li).show(500);

        totalFiles++;

        var queueinfo = document.getElementById("queueinfo");
        document.getElementById("upload-btn").style.display = "";
    };

    self.queueError = function(file, errorCode, message) {
        // console.log("Queue error: ", file.name, message);
    };

    self.dialogComplete = function(numFilesSelected, numFilesQueued) {
        // console.log("Dialog complete: ", numFilesSelected, numFilesQueued);
        // this.startUpload(); // "this" is the SWFUpload object
    };

    self.uploadStart = function(file) {
        // var div = document.getElementById("queueinfo");
        // div.innerHTML = "Uploadez " + position + " din " + queuelength;

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

        // console.log("Upload start: ", file.name);
    };

    self.uploadProgress = function(file, bytesLoaded, bytesTotal) {
        var progress = document.getElementById(file.id + "progress");
        var percent = Math.ceil((bytesLoaded / bytesTotal) * 380)
        document.getElementById(file.id+'procent').innerHTML=' '+Math.ceil(bytesLoaded/1024)+' kb / '+Math.ceil(bytesTotal/1024)+' kb';
        progress.style.background = "#f0f0f0 url(/utile/upload2/images/progressbar.png) no-repeat -" + (380 - percent) + "px 0";

        // console.log("Upload progress: ", file, bytesLoaded, bytesTotal);
    };

    self.uploadError = function(file, errorCode, message) {
        switch (errorCode) {
            case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:
                // console.log("Limit exceeded");
                break;
            case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
                // console.log("File exceeds size limit");
                break;
            case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
                // console.log("Zero byte file");
                break;
            case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
                // console.log("Invalid filetype");
                break;
            case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
                // console.log("HTTP error");
                break;
            case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
                // console.log("Missing upload URL");
                break;
            case SWFUpload.UPLOAD_ERROR.IO_ERROR:
                // console.log("IO error");
                break;
            case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
                // console.log("Security error");
                break;
            case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
                // console.log("Upload limit exceeded");
                break;
            case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
                // console.log("Uploaded failed");
                break;
            case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND:
                // console.log("SPECIFIED_FILE_ID_NOT_FOUND");
                break;
            case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
                // console.log("FILE_VALIDATION_FAILED");
                break;
            case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
                fileCancelled(file);
                // console.log("FILE_CANCELLED");
                break;
            case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
                // console.log("UPLOAD_STOPPED");
                break;
            default:
                // console.log("Unknown error code");
        }

        // console.log("Upload error: ", file, errorCode, message);
    };

    self.uploadSuccess = function(file, serverData) {
        // console.log("Upload success: ", file, serverData);
    };

    self.uploadComplete = function(file) {
        var li = document.getElementById(file.id);
        li.className = "SWFUploadFileItem uploadCompleted";
        $(".uploadbtn").hide();
        var id=file.id;
        $(".cancelbtn, .progressBar", li).hide(1000);
    };
    
    self.queueComplete = function(numFilesUploaded) {
        totalFiles = 0;
        $("#upload-btn").hide();
    };
};

