function FileUploader(uploaderName, uploadProcesorAction, dynamicFormDataFunction, onSuccessFunction, onErrorFunction) {
	
	console.log(uploaderName);
	console.log(uploadProcesorAction);

	//var me = this;
	//me.mesCarga = null;
	//me.idCarga = null;
	//me.scope = null;
	
	//console.log("datos a pasar como parametros en Carga Trnasacciones: id_carga:"+me.idCarga);
	
	this.uploader = $("#"+uploaderName).uploadFile({
							//url: contextPath + "/carga/transacciones/cargaArchivo.action",
		                    url: contextPath + uploadProcesorAction,
							fileName:"file",
							dragDrop:true,
							autoSubmit:false,
							multiple:false,
							maxFileCount:1,
							maxFileSize: 15728640,
							dynamicFormData: dynamicFormDataFunction,
/*							dynamicFormData: function()
							{
								var data ={
											"mesCarga"  : me.mesCarga,
											"idCarga":me.idCarga
										};
								return data;
							},*/
							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)
							{				            					            	
				            	//$("#esperaDiv").html("<h4 class='text-primary'> Procesando </h4>");
							},
							onSuccess: onSuccessFunction,
/*				            onSuccess:function(files,data,xhr,pd)
				            {	
				            	
					            $("#esperaDiv").html("<h4 class='text-primary'> Terminado </h4>");
					            $('#modalCargarArchivo').modal('hide');
					            me.scope.RecuperaIdReporteError(data.cargaPrincipal);
					            me.scope.consultarCarga();
					            showMessage("Carga exitosa.");  
					          					            
				            	
				            },*/
							onError: onErrorFunction
/*				            onError: function(files,status,errMsg,pd)
				            {
				            	showError("Ocurrio un error al subir el documento");
				            	$('#modalCargarArchivo').modal('hide');
				            }*/
					});
	
	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.
};