function FileUploader(uploaderName, uploadProcesorAction, dynamicFormDataFunction, onSuccessFunction, onErrorFunction) {
	
	this.uploader = $("#"+uploaderName).uploadFile({
		                    url: contextPath + uploadProcesorAction,
							fileName:"file",
							dragDrop:true,
							autoSubmit:false,
							multiple:false,
							maxFileCount:1,
							maxFileSize: 15728640,
							dynamicFormData: dynamicFormDataFunction,
							dragDropStr: "<span><b>Arrastra aqui el archivo a subir</b></span>",
				            uploadStr:"Subir",
				            abortStr: "Abortar",
				            cancelStr: "Cancelar",
				            deletelStr: "Borrar",
				            doneStr: "Concluido",
				            multiDragErrorStr: "No se permite arrastrar mas de un archivo.",
				            extErrorStr: "No es posible adjuntar el documento. Activar extensiones: ",
				            duplicateErrorStr: "No es posible adjuntar el documento. El archivo ya existe.",
				            sizeErrorStr: "No es posible adjuntar el documento. Tama&ntilde;o maximo permitido: ",
				            uploadErrorStr: "Carga no permitida",
				            maxFileCountErrorStr: "No es posible adjuntar el documento. Tama&ntilde;o maximo de documentos permitido:",
				            downloadStr: "Descargar",
				            acceptFiles:" .xls, .xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel ",
				            onSubmit:function(files)
							{				            					            	
				            	
							},
							onSuccess: onSuccessFunction,
							onError: onErrorFunction
					});
	
	this.getFileName = function (nameModal) { 				      
		var fileName = $("#"+nameModal+" div.ajax-file-upload-filename").text();
		var arr      = fileName.split('');
		var cont     = 0;
		
		for(var i=arr.length-1; i>0; i--)		
			if(arr[i] == '('  && cont == 0)
			   cont = i;							
		cont = (arr.length - cont);
		cont = (arr.length - cont)-1;		
		return fileName.substring(4, cont);												 
	};
}

FileUploader.prototype.startUpload = function(nameModal) {			    
		if(this.getFileName(nameModal).includes(" "))
		{
			this.uploader.stopUpload();
			$("#"+nameModal).modal('hide');
			showError("El nombre del archivo contiene espacios en blanco.");
		}
		else
		{
			$("#esperaDiv").html("<h4 class='text-primary'> Procesando... </h4>");
			this.uploader.startUpload();
		}			
};

FileUploader.prototype.limpiaForma = function(nameModal) {			
	$("#"+nameModal).find("div.ajax-file-upload-statusbar").remove();  // se quitan los div con informacion de las cargar previas.
};