function UploaderMod(divUploader, action, functionProcessor) {
	var me = this;
	this.divName= divUploader;
	this.uploader = $("#"+divUploader).uploadFile({
							url:contextPath + action,
							fileName:"fileUpload",
							dragDrop:true,
							autoSubmit:false,
							multiple:false,
							maxFileCount:1,
							maxFileSize: 20971520,
							dynamicFormData: function()
							{
								var data = {};//agregar los parametros que recive el action en el formato {"llave":valor, "llave":valor, ...}
								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 mas 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 ",
				            onSuccess:function(files,data,xhr,pd)
				            {
				            	functionProcessor(data);
				            },
				            onError: function(files,status,errMsg,pd)
				            {
				            	showError("Ocurri\u00F3 un error al subir el documento");
				            }
					});
	
	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);												 
	};
}

UploaderMod.prototype.startUpload = function(nameModal) {
	
	if(this.getFileName(nameModal).indexOf(" ") > -1)
	{
		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();
	}			
};

UploaderMod.prototype.initUploader = function() {
	this.uploader.reset();
};

var carga;

$().ready(function() {

	carga= new UploaderMod("subeDiv", "/carga/suscripcion/getCargaExcel", validaRespuesta);

});


function validaRespuesta(data){
	
	if(data.errores == "" || data.errores == null){
		showMessage("El documento ["+data.fileUploadFileName+"] se ha cargado con \u00E9xito.");
		actualizaInformacion(data.informacionExcel);
		carga.initUploader();
	}else {
		showError("Ocurri\u00F3 un error al subir el documento");
	}
	
	$('#modalCargaArchivo').modal('hide');//se debe hacer hide al div que engloba todo el modal
}