function UploaderEX(divUploader, successUpload , grid )
{
	this.bf = true;
	var me = this;
	this.divName= divUploader;
	this.uploader = $("#"+divUploader).uploadFile({
							url: contextPath+"/contrato/license/titulos/cargaMasiva.action",
							fileName:"file",
							dragDrop:true,
							autoSubmit:false,
							multiple:false,
							maxFileCount:1,
							maxFileSize: 20971520,
							dynamicFormData: function()
							{
								var data ={
											"titulo.fechaInicio" : $("#fechaInicioNuevo").val(),
											"titulo.briefcase" : me.bf,
											"tipoCarga" : $('input[name=tipoCargaDocumento]:checked').val()
										};
								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 m\u00E1ximo permitido: ",
				            uploadErrorStr: "Carga no permitida",
				            maxFileCountErrorStr: "no es posible adjuntar el documento. Tama&ntilde;o m\u00E1ximo 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)
				            {
				            	successUpload(data,grid);
				            },
				            onError: function(files,status,errMsg,pd)
				            {
				            	showError("Ocurri\u00F3 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).includes(" "))
	{
		this.uploader.stopUpload();
		$("#"+nameModal).modal('hide');
		showError("El nombre del archivo contiene espacios en blanco.");
	}	   	
	else if($("#idFormCarga").valid())	
	        this.uploader.startUpload();				
};

UploaderEX.prototype.opentUploader = function() {	
	$("#fechaInicioNuevaDiv").hide();
	this["idFormCarga"].resetForm();
	
	$("#idFormCarga").find(
	'input:text, input:password, input:file, select, textarea').val('');
	$("#idFormCarga").find('input:radio, input:checkbox').removeAttr(
	'checked').removeAttr('selected');
	
	$("#fechaInicioNuevo").datepicker("option", "minDate", $("#idMDLAvalable").val().replace(/\s+/g, '') );
	this.uploader.reset();
	$("#esperaDiv").html("");
	$('#modalCarga').modal('show');
};