function UploaderEX(divUploader, successUpload, grid) {
	this.bf = true;
	var me = this;
	this.divName = divUploader;
	this.uploader = $("#" + divUploader).uploadFile({
		url: contextPath + "/catalogos/tipoCambioAddOns/cargaMasiva.action",
		fileName: "file",
		dragDrop: true,
		autoSubmit: false,
		multiple: false,
		maxFileCount: 1,
		maxFileSize: 20971520,
		dynamicFormData: function() {

			var annio = $("#myannio").val().split(":");
			var data = {
				"estudio": $("#mystdio").val(),
				"annio": annio[1]
			};

			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 ",
		onSubmit: function(files) {
			$("#esperaDiv").html("<h4 class='text-primary'> Procesando </h4>");

		},
		onSuccess: function(files, data, xhr, pd) {
			$("#esperaDiv").html("<h4 class='text-primary'> Documento cargado con exito </h4>");
		},
		onError: function(files, status, errMsg, pd) {
			showError("Ocurrio un error al subir el documento");
			$('#modalCarga').modal('hide');
		}
	});


	this.idFormCarga = $("#idFormCarga").validate({
		rules: {
			"tipoCargaDocumento": {
				required: true
			},
			"fechaInicioNuevo": {
				required: function() {
					if ($('input[name=tipoCargaDocumento]:checked').val() == 'N') { return true; }
					else { return false; }
				},
				date: true
			}
		}
	});

	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);
	};
}


UploaderEX.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
		this.uploader.startUpload();
};

UploaderEX.prototype.opentUploader = function() {
	$("#esperaDiv").html("");
	$('#modalCarga').modal('show');
};