function FileProgress(file) {
		if (file != undefined) {
				this.fileID = file.id;
				this.fileName = file.name;
				this.fileSize = file.size;
		}
}

FileProgress.prototype.addItem = function (target) {
		queueItem = $("#" + this.fileID);

		if(queueItem.length <= 0){
				var spanFilename = document.createElement("span");
				spanFilename.className = "filename";
				spanFilename.appendChild(document.createTextNode(this.fileName));

				var spanError = document.createElement("span");
				spanError.className = "error";

				var col1 = document.createElement("div");
				col1.className = "col1";
				col1.appendChild(spanFilename);
				col1.appendChild(spanError);

				var fileSize = document.createElement("div");
				fileSize.className = "size";
				fileSize.appendChild(document.createTextNode("" + Math.ceil(this.fileSize / 1000) + " KB"));

				var btnDefaultImage = document.createElement("a");
				btnDefaultImage.className = "noDefaultImage bottom";
				btnDefaultImage.appendChild(document.createTextNode(" "));

				var btnCancel = document.createElement("a");
				btnCancel.className = "cancel bottom";
				btnCancel.appendChild(document.createTextNode(" "));

				var btnOk = document.createElement("a");
				btnOk.className = "ok bottom";
				btnOk.appendChild(document.createTextNode(" "));

				var col2 = document.createElement("div");
				col2.className = "col2";
				col2.appendChild(fileSize);
				col2.appendChild(btnDefaultImage);
				col2.appendChild(btnCancel);
				col2.appendChild(btnOk);

				var queueContainer = document.createElement("div");
				queueContainer.className = "container";
				queueContainer.appendChild(col1);
				queueContainer.appendChild(col2);
				
				var queueItem = document.createElement("div");
				queueItem.className = "queueitem";
				queueItem.id = this.fileID;
				queueItem.appendChild(queueContainer);
				
				$(target).append(queueItem);
		}
};

FileProgress.prototype.addGlobalError = function (settings) {
		globalError = $(settings.globalError);
		
		if(globalError.length <= 0){
				var globalError = document.createElement("div");
				globalError.className = "queueitem global error";
				globalError.id = "globalError";
				globalError.appendChild(document.createTextNode(settings.etiqueta1019));
				
				$(settings.itemsTarget).append(globalError);
		}
};

FileProgress.prototype.setStart = function () {
		$("#" + this.fileID).addClass("progressBar");
};

FileProgress.prototype.setProgress = function (percentage) {
		$("#" + this.fileID).css("background-position", "" + percentage + "% 0");
};

FileProgress.prototype.setComplete = function () {
		var queueItem = $("#" + this.fileID);
		
		queueItem.removeClass("progressBar").addClass("finished");
		queueItem.find("div.col2 a.bottom").hide();
		queueItem.find("div.col2 a.ok").show();
};

FileProgress.prototype.setError = function (type) {
		if (type == undefined) {
	  		type = "Undefined";
		}
		
		var queueItem = $("#" + this.fileID);
		queueItem.addClass("error");
		queueItem.find("a.bottom").hide();
		
		switch(type){
				case "FileSize>":
						queueItem.find("div.size").html(">3 MB").css("color", "red");
						
						break;
				case "FileSize<":
						queueItem.find("div.size").html("=0 MB").css("color", "red");
						
						break;
				case "Undefined":
						queueItem.find("span.error").show();

						break;
		}
};

FileProgress.prototype.registerCancel = function (swfUploadInstance) {
	if (swfUploadInstance) {
			var fileID = this.fileID;
			
			$("#" + fileID).find("a.cancel").click(function (){
					swfUploadInstance.cancelUpload(fileID);
					$("#" + fileID).hide().addClass("removed");
					
					calculateNumItemsAndTotalSize(swfUploadInstance.customSettings);
					
					return false;
			});
	}
};