var uploading = false;
var lastFileId = 0;
var currentFileId = 0;
var uploadOrder = [];
var orderId = randomString(10)+ new Date().getTime();
$(document).ready(function() {
    document.forms.upload.order_id.value = orderId;
    document.forms.upload.name.focus();
    uploadOrder.push(newUpload(lastFileId));
});

function newUpload(pid){
    if (pid == 0)
        $("#upload").append('<div id="upload_button" class="upload_button">click here to choose an image to attach</div>');
    else
        $("#upload").append('<div id="upload_button" class="upload_button">choose another image to attach</div>');
    var au = new AjaxUpload('#upload_button', {
        ready: false,
        pid: pid,
        action: '/my-addons/upload/upload.php',
        name: 'userimage',
        data: {
            APC_UPLOAD_PROGRESS : randomString(20),
            order_id : document.forms.upload.order_id.value
        },
        autoSubmit: false,
        responseType: false,
        onChange: function(file, extension){
            $("#upload_button").remove();
            addProgress(this._settings.pid, file);
            this._settings.ready = true;
            if (!uploading && currentFileId == pid){
                uploading = true;
                this.submit();
                updateProgress(this._settings.pid, this._settings.data.APC_UPLOAD_PROGRESS);
            }
            uploadOrder.push(newUpload(this._settings.pid+1));
        },
        onSubmit: function(file, extension) {},
        onComplete: function(file, response) {
            uploading = false;
            //$("#debug").append('<div>'+this._settings.pid+':'+file+'</div>');
            $("#fp"+this._settings.pid).html("100%");
            $("#file"+this._settings.pid).css({width:'100%'});
            currentFileId++;
            if (uploadOrder[currentFileId]._settings.ready){
                uploading = true;
                uploadOrder[currentFileId].submit();
                updateProgress(uploadOrder[currentFileId]._settings.pid, uploadOrder[currentFileId]._settings.data.APC_UPLOAD_PROGRESS);
            }
        }
    });
    return au;
}

function addProgress(id, filename){
    $("#files").append('<div class="filePercents" id="fp'+id+'">0%</div>');
    $("#fp"+id).css({position:'absolute'});
    $("#files").append('<div class="fileName">'+filename+'</div>');
    $("#files").append('<div id="file'+id+'" class="fileProgress">&nbsp;</div>');
    $("#file"+id).css({width:'0%'});
}
function updateProgress(id, key){
    $.ajax({
        type: "GET",
        url: "/my-addons/upload/ajax_upload_status.php",
        data: "progress_key="+key+"&rnd="+randomString(10),
        success: function(msg){
            if (id == currentFileId){
                $("#fp"+id).html(msg+'%');
                $("#file"+id).css({width:msg+'%'});
                setTimeout("updateProgress('"+id+"', '"+key+"')", 500);
            }
        }
    });
}
function randomString(string_length) {
	var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	var randomstring = '';
	for (var i=0; i<string_length; i++) {
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}
        return randomstring;
}
function checkUpload(){
    if (uploading)
        alert("Please wait while your file is uploading");
    return !uploading;
}