function add_filtro_analaise(obgFiltro)
{
		codigo_filtro = "";
		tipo_filtro = "";
		id_filtro = "";
		descricao_filtro = "";
		obrigatorio_filtro = "0";
		tabela_buscar_filtro = "";
		coluna_buscar_filtro = "";
		tipo_calculo_data_filtro = "";
		valor_calculo_data_filtro = "";
		tipo_dia_data_filtro = "";
		qtd_linha_filtro += 1;
		displayColunasEscolha = "display: none;";
		displayColunasEscolhaTipoCalcData = "display: none;";
		if(obgFiltro !== undefined  )
		{
			codigo_filtro  = obgFiltro.codigo;
			tipo_filtro = obgFiltro.tipo;
			id_filtro  = obgFiltro.id;
			descricao_filtro = obgFiltro.descricao;
			//alert(obgFiltro.descricao)
			obrigatorio_filtro = obgFiltro.obrigatorio;
			tabela_buscar_filtro = obgFiltro.tabela_buscar;
			coluna_buscar_filtro = obgFiltro.coluna_buscar;
			tipo_calculo_data_filtro = obgFiltro.tipo_calculo_data_filtro;
			valor_calculo_data_filtro = obgFiltro.valor_calculo_data_filtro;
			tipo_dia_data_filtro = obgFiltro.tipo_dia_data_filtro;;
			if(tabela_buscar_filtro != "")
			{
				displayColunasEscolha = "display: block;";
			}
			if(tipo_calculo_data_filtro != "")
			{
				displayColunasEscolhaTipoCalcData = "display: block;";
			}
		}
		
		html = "";
		
		html += ' 	<div id="linha_grid_'+qtd_linha_filtro+'" class="linha_filtro" style="width: 900px; border-bottom: solid 1px #d9d9d9; display: table; float: left;">																											';
		html += ' 		<div style="width: auto; float: left;">                                                                                                                                                                         ';
		html += ' 			<span class="form_obrigatorio_grid_editavel">&nbsp;</span>                                                                                                                                                  ';
		html += ' 			<a href="javaScript:void(0)" class="cor_verde" onclick="marcar_linha_como_excluida(\'linha_grid_'+qtd_linha_filtro+'\');">                                                                                                                      ';
		html += ' 			<i class="fa fa-trash" aria-hidden="true"></i></a>                                                                                                                                                          ';
		html += ' 		</div>                                                                                                                                                                                                          ';
		html += ' 		<div style="display: none; float: left;">                                                                                                                                                                       ';
		html += ' 			<span class="form_obrigatorio_grid_editavel">&nbsp;</span>                                                                                                                                                  ';
		html += ' 			<label style="display: none;">Código</label>                                                                                                                                                                ';
		html += ' 			<input type="text" readonly="" class="form mask" name="codigo_filtro" placeholder="000000000000" data-mask="000000000000" value="'+codigo_filtro+'"  autocomplete="off" maxlength="12">           ';
		html += ' 		</div>                                                                                                                                                                                                          ';
		html += ' 		<div style="width: auto; display: none;">                                                                                                                                                                       ';
		html += ' 			<label style="">Análise</label>                                                                                                                                                                             ';
		html += ' 			<input type="hidden" class="form" name="analise" placeholder="Análise" readonly="" value="" >                                                                                                ';
		html += ' 		</div>                                                                                                                                                                                                          ';
		html += ' 		<div style="width: 120px; float: left; margin-left: 3px;">                                                                                                                                                                        ';
		html += ' 			<label style="font-size: 11px;"><span class="form_obrigatorio">*</span>Tipo</label>                                                                                                                                         ';
		html += ' 			<select class="form tipo_filtro" name="tipo_filtro" placeholder="Tipo" onchange="alterar_campos_pelo_tipo(this, \'linha_grid_'+qtd_linha_filtro+'\');" required="" value="'+tipo_filtro+'" style="width: 100%; padding: 4px;" tabindex="-1" aria-hidden="true">                            ';
		html += ' 				<option value=""></option>                                                                                                                                                                              ';
		html += ' 				<option value="1">Texto</option>                                                                                                                                                                        ';
		html += ' 				<option value="2">Número inteiro</option>                                                                                                                                                               ';
		html += ' 				<option value="3">Número decimal</option>                                                                                                                                                               ';
		html += ' 				<option value="4">Data</option>                                                                                                                                                                         ';
		html += ' 				<option value="5">Data hora minuto</option>                                                                                                                                                             ';
		html += ' 				<option value="6">Múltipla escolha</option>                                                                                                                                                             ';
		html += ' 				<option value="7">Data calculada</option>                                                                                                                                                             ';
		html += ' 			</select>                                                                                                                                                                                                   ';
		html += ' 		</div>                                                                                                                                                                                                          ';
		html += ' 		<div style="width: 120px; float: left; margin-left: 3px;">                                                                                                                                                                        ';
		html += ' 			<label style="font-size: 11px;"><span class="form_obrigatorio">*</span>Id</label>                                                                                                                                           ';
		html += ' 			<input type="text" class="form" name="id_filtro" placeholder="Id" required="" value="'+id_filtro+'" >                                                                                         ';
		html += ' 		</div>                                                                                                                                                                                                          ';
		html += ' 		                                                                                                                                                                                                                ';
		html += ' 		<div style="width: 150px; float: left; margin-left: 3px;">                                                                                                                                                                        ';
		html += ' 			<label style="font-size: 11px;"><span class="form_obrigatorio">*</span>Descrição</label>                                                                                                                                    ';
		html += ' 			<input type="text" class="form" name="descricao_filtro" placeholder="Descrição" required="" value="'+descricao_filtro+'" >                                                                           ';
		html += ' 		</div>                                                                                                                                                                                                          ';
		html += ' 		<div style="width: 80px; float: left; margin-left: 3px;"><span class="form_obrigatorio_grid_editavel">&nbsp;</span>                                                                                                               ';
		html += ' 			<label style="font-size: 11px;">Obrigatório</label><br>                                                                                                                                                                     ';
		html += ' 			<input type="checkbox" class="" name="obrigatorio_filtro" placeholder="Obrigatório" value="'+obrigatorio_filtro+'"  onclick="checkboxForm(this);">                                                     ';
		html += ' 		</div>                                                                                                                                                                                                          ';
		html += ' 		                                                                                                                                                                                                                ';
		html += ' 		<div style="width: 120px; float: left; '+displayColunasEscolha+' margin-left: 3px;"><span class="form_obrigatorio_grid_editavel">&nbsp;</span>                                                                                                              ';
		html += ' 			<label style="font-size: 11px;">Tabelabuscar</label>                                                                                                                                                                        ';
		html += ' 			<input type="text" class="form" name="tabela_buscar_filtro" placeholder="Tabelabuscar" value="'+tabela_buscar_filtro+'" defaultvalue="'+tabela_buscar_filtro+'" >                                                                                ';
		html += ' 		</div>                                                                                                                                                                                                          ';
		html += ' 		<div style="width: 120px; float: left; '+displayColunasEscolha+' margin-left: 3px;">                                                                                                                                                                        ';
		html += ' 			<span class="form_obrigatorio_grid_editavel">&nbsp;</span>                                                                                                                                                  ';
		html += ' 			<label style="" style="font-size: 11px;">Colunabuscar</label>                                                                                                                                                                        ';
		html += ' 			<input type="text" class="form" name="coluna_buscar_filtro" placeholder="Colunabuscar" value="'+coluna_buscar_filtro+'" defaultvalue="'+tabela_buscar_filtro+'" >                                                                                ';
		html += ' 		</div>                                                                                                                                                                                                          ';
		
		html += ' 		<div style="width: 120px; float: left; '+displayColunasEscolhaTipoCalcData+' margin-left: 3px;"><span class="">&nbsp;</span>                                                                                                              ';
		html += ' 			<label style="font-size: 11px;">Tipo calc data</label>                                                                                                                                                                        ';
		html += ' 			<select class="form tipo_cal_dt_filtro" name="tipo_calculo_data_filtro" onchange="opcoes_tipo_dia_data_filtro(this)" placeholder="Tipo calc data" value="'+tipo_calculo_data_filtro+'"  style="width: 100%; padding: 4px;" tabindex="-1" aria-hidden="true">';
		html += ' 				<option value=""></option>							';
		html += ' 				<option value="1">Retroceder dias</option>          ';
		html += ' 				<option value="2">Retroceder semanas</option>       ';
		html += ' 				<option value="3">Retroceder meses</option>         ';
		html += ' 				<option value="4">Retroceder anos</option>          ';
		html += ' 				<option value="5">Avançar dias</option>             ';
		html += ' 				<option value="6">Avançar semanas</option>          ';
		html += ' 				<option value="7">Avançar meses</option>            ';
		html += ' 				<option value="8">Avançar anos</option>             ';
		html += ' 				<option value="9">Mês atual</option>             ';
		html += ' 			</select> ';
		html += ' 		</div>        ';                                                                                                                                                                                                   
		
		html += ' 		<div style="width: 120px; float: left; '+displayColunasEscolhaTipoCalcData+' margin-left: 3px;"><span class="">&nbsp;</span>                                                                                                              ';
		html += ' 			<label style="font-size: 11px;">Valor calc dada</label>                                                                                                                                                                        ';
		html += ' 			<input type="text" class="form mask" name="valor_calculo_data_filtro" placeholder="000000000000000000000000" data-mask="000000000000000000000000" value="'+valor_calculo_data_filtro+'"  autocomplete="off" maxlength="24">         ';
		html += ' 		</div>                                                                                                                                                                                                          ';
		
		html += ' 		<div style="width: 120px; float: left; '+displayColunasEscolhaTipoCalcData+' margin-left: 3px;"><span class="">&nbsp;</span>                                                                                                              ';
		html += ' 			<label style="font-size: 11px;">Tipo dia</label>                                                                                                                                                                        ';
		html += ' 			<select class="form tipo_dia_dt_filtro" onclick="opcoes_tipo_dia_data_filtro(this);"  name="tipo_dia_data_filtro" placeholder="Tipo dia calc data" value="'+tipo_dia_data_filtro+'"  style="width: 100%; padding: 4px;" tabindex="-1" aria-hidden="true">';
		html += ' 				<option value=""></option>							';
		html += ' 				<option value="1">Primeiro dia</option>          ';
		html += ' 				<option value="2">Ultimo dia</option> ';
		html += ' 				<option value="3">A a partir do dia atual</option> ';
		html += ' 				<option value="4">01 de Janeiro</option> ';
		html += ' 				<option value="5">31 de Dezembro</option> ';
		html += ' 				<option value="6">Primeiro dia a partir do mes atual</option> ';
		html += ' 				<option value="7">Ultimo dia a partir do mes atual</option> ';
		
		html += ' 			</select> ';
		html += ' 		</div>        ';                                                                                                                                                                                                   
		   
		
		html += ' 	</div>                                                                                                                                                                                                              ';
		$("#resultadoBi_filtro").append(html);
		$('#linha_grid_'+qtd_linha_filtro+' .tipo_filtro option[value=\''+tipo_filtro+'\']').attr('selected','selected');
		$('#linha_grid_'+qtd_linha_filtro+' .tipo_cal_dt_filtro option[value=\''+tipo_calculo_data_filtro+'\']').attr('selected','selected');
		$('#linha_grid_'+qtd_linha_filtro+' .tipo_dia_dt_filtro option[value=\''+tipo_dia_data_filtro+'\']').attr('selected','selected');
		if(obrigatorio_filtro == "1")
		{
			$('#linha_grid_'+qtd_linha_filtro).find('[name="obrigatorio_filtro"]').attr('checked', true);
		}
	}
	function opcoes_tipo_dia_data_filtro(seletor)
	{
		
		//console.log("aa")
		valTipoData = $(seletor).parent().parent().find('[name="tipo_calculo_data_filtro"]').val();
		idParent = $(seletor).parent().parent().attr("id");
		$('#'+idParent+" .tipo_dia_dt_filtro option").each(function() {
			$(this).css("display", "block");
		});	
		/*$(seletor).val("");
		$('#linha_grid_'+qtd_linha_filtro+' .tipo_dia_dt_filtro option[value=\''+tipo_dia_data_filtro+'\']').attr('selected','selected');*/
		//console.log(valTipoData+" "+idParent);
		//$('#'+seletorLinha).find('[name="tipo_calculo_data_filtro"]').parent().css("display", "none");
		$('#'+idParent+" .tipo_dia_dt_filtro option").each(function() {
			if(valTipoData == "1" || valTipoData == "5")//dias
			{
				$(this).css("display", "none");
			}
			else if((valTipoData == "4" || valTipoData == "8") && $(this).val() < 3)//anos
			{
				$(this).css("display", "none");
			}
			else if(valTipoData != "1" && valTipoData != "5" && valTipoData != "4" && valTipoData != "8" && $(this).val() > 3)//meses
			{
				$(this).css("display", "none");
			}
		});
	}
	function marcar_linha_como_excluida(seletor_linha)
	{
		valueCodigo = $('#'+seletor_linha).find('[name="codigo_filtro"]').val();
		//alert(valueCodigo)
		$('#'+seletor_linha).find('[name="codigo_filtro"]').val("excluir_"+valueCodigo);
		$('#'+seletor_linha).css("display", "none");
		
	}
	function alterar_campos_pelo_tipo(seletorTipo, seletorLinha)
	{
		if($(seletorTipo).val() == "6")
		{
			//alert($(seletorTipo).val())
			$('#'+seletorLinha).find('[name="tabela_buscar_filtro"]').parent().css("display", "block");
			$('#'+seletorLinha).find('[name="coluna_buscar_filtro"]').parent().css("display", "block");
			$('#'+seletorLinha).find('[name="tabela_buscar_filtro"]').val($('#'+seletorLinha).find('[name="tabela_buscar_filtro"]').attr("defaultvalue"));
			$('#'+seletorLinha).find('[name="coluna_buscar_filtro"]').val($('#'+seletorLinha).find('[name="coluna_buscar_filtro"]').attr("defaultvalue"));
			$('#'+seletorLinha).find('[name="tipo_calculo_data_filtro"]').parent().css("display", "none");
			$('#'+seletorLinha).find('[name="valor_calculo_data_filtro"]').parent().css("display", "none");
			$('#'+seletorLinha).find('[name="tipo_dia_data_filtro"]').parent().css("display", "none");
		}
		else if($(seletorTipo).val() == "7")
		{
			$('#'+seletorLinha).find('[name="tabela_buscar_filtro"]').parent().css("display", "none");
			$('#'+seletorLinha).find('[name="coluna_buscar_filtro"]').parent().css("display", "none");
			$('#'+seletorLinha).find('[name="tabela_buscar_filtro"]').attr("defaultvalue", $('#'+seletorLinha).find('[name="tabela_buscar_filtro"]').val())
			$('#'+seletorLinha).find('[name="coluna_buscar_filtro"]').attr("defaultvalue", $('#'+seletorLinha).find('[name="coluna_buscar_filtro"]').val())
			$('#'+seletorLinha).find('[name="tabela_buscar_filtro"]').val("");
			$('#'+seletorLinha).find('[name="coluna_buscar_filtro"]').val("");
			$('#'+seletorLinha).find('[name="tipo_calculo_data_filtro"]').parent().css("display", "block");
			$('#'+seletorLinha).find('[name="valor_calculo_data_filtro"]').parent().css("display", "block");
			$('#'+seletorLinha).find('[name="tipo_dia_data_filtro"]').parent().css("display", "block");
		}
		else
		{
			$('#'+seletorLinha).find('[name="tabela_buscar_filtro"]').parent().css("display", "none");
			$('#'+seletorLinha).find('[name="coluna_buscar_filtro"]').parent().css("display", "none");
			$('#'+seletorLinha).find('[name="tabela_buscar_filtro"]').attr("defaultvalue", $('#'+seletorLinha).find('[name="tabela_buscar_filtro"]').val())
			$('#'+seletorLinha).find('[name="coluna_buscar_filtro"]').attr("defaultvalue", $('#'+seletorLinha).find('[name="coluna_buscar_filtro"]').val())
			$('#'+seletorLinha).find('[name="tabela_buscar_filtro"]').val("");
			$('#'+seletorLinha).find('[name="coluna_buscar_filtro"]').val("");
			$('#'+seletorLinha).find('[name="tipo_calculo_data_filtro"]').parent().css("display", "none");
			$('#'+seletorLinha).find('[name="valor_calculo_data_filtro"]').parent().css("display", "none");
			$('#'+seletorLinha).find('[name="tipo_dia_data_filtro"]').parent().css("display", "none");
		}
	}
	
	colunas = null;
	tipo_analise = null;
	lista_filtros = [];
	function analisar_colunas_query()
	{
		$(".ui-dialog").css("display","none");
		//$("#filtros_analise").dialog("close");
		lista_filtros = [];
		if($("#query").val().trim() == "" && $("#queryModelo").val().trim() == "")
		{
			alert("Informe a query ou query modelo da análise!");
			return ;
		}
		
		
		//validar Filtros
		valido = true;
		erro ="";
		linhaFiltro = 0;
		$('.linha_filtro').each(function(){
			linhaFiltro += 1;
			tipo_filtro = $(this).find('[name="tipo_filtro"]').val();
			if($(this).find('[name="id_filtro"]').val() == "")
			{
				erro = "Informe o ID na linha "+linhaFiltro+" dos filtros!";
				valido = false;
			}
			else if($(this).find('[name="descricao_filtro"]').val() == "")
			{
				erro = "Informe a descrição na linha "+linhaFiltro+" dos filtros!";
				valido = false;
			}
			else if($(this).find('[name="tipo_filtro"]').val() == "")
			{
				erro = "Informe o tipo do filtro na linha "+linhaFiltro+" dos filtros!";
				valido = false;
			}
			else if(tipo_filtro == "1" || tipo_filtro == "2" || tipo_filtro == "3" || tipo_filtro == "4" || tipo_filtro == "5")
			{
				
			}
			//alert(tipo_filtro);
			if(tipo_filtro == "6" )
			{
				if($(this).find('[name="tabela_buscar_filtro"]').val() == "")
				{
					erro = "Informe a tabela na linha "+linhaFiltro+" dos filtros!";
					valido = false;
				}
				else if($(this).find('[name="coluna_buscar_filtro"]').val() == "")
				{
					erro = "Informe a coluna na linha "+linhaFiltro+" dos filtros!";
					valido = false;
				}
			}
			
			if(tipo_filtro == "7" )
			{
				tipo_calculo_data_filtro = $(this).find('[name="tipo_calculo_data_filtro"]').val();
				if($(this).find('[name="tipo_calculo_data_filtro"]').val() == "")
				{
					erro = "Informe o tipo de cálculo de data na linha "+linhaFiltro+" dos filtros!";
					valido = false;
				}
				else if($(this).find('[name="valor_calculo_data_filtro"]').val() == "")
				{
					erro = "Informe o valor do cálculo de data na linha "+linhaFiltro+" dos filtros!";
					valido = false;
				}
				if(tipo_calculo_data_filtro == "2" || tipo_calculo_data_filtro == "3" ||
				tipo_calculo_data_filtro == "4" || tipo_calculo_data_filtro == "6" ||
				tipo_calculo_data_filtro == "7" || tipo_calculo_data_filtro == "8" ||
				tipo_calculo_data_filtro == "9")
				{
					if($(this).find('[name="tipo_dia_data_filtro"]').val() == "")
					{
						erro = "Informe o tipo do dia na linha "+linhaFiltro+" dos filtros!";
						valido = false;
					}
				}
			}
		});	
		if(! valido)
		{
			alert(erro);
			return;
		}
		//envia filtros
		
		$('.linha_filtro').each(function(){
			filtro = {tipo: $(this).find('[name="tipo_filtro"]').val(), id: $(this).find('[name="id_filtro"]').val(),
			descricao: $(this).find('[name="descricao_filtro"]').val(), obrigatorio: $(this).find('[name="obrigatorio_filtro"]').val(),
			tabela_buscar: $(this).find('[name="tabela_buscar_filtro"]').val(), coluna_buscar: $(this).find('[name="coluna_buscar_filtro"]').val(),
			codigo: $(this).find('[name="codigo_filtro"]').val(),
			tipo_calculo_data_filtro: $(this).find('[name="tipo_calculo_data_filtro"]').val(),
			valor_calculo_data_filtro: $(this).find('[name="valor_calculo_data_filtro"]').val(),
			tipo_dia_data_filtro: $(this).find('[name="tipo_dia_data_filtro"]').val(),
			valor: ""
			}
			lista_filtros.push(filtro);
		});
		monta_filtros(lista_filtros);
		
	}
	function fim_analisar_colunas_query()
	{
		$(".ui-dialog").css("display","none");
		if( $('.btnFiltroAnalise').length )       
		{
			$("#filtros_analise").dialog("close");
		}
		$( "#contaudo_filtros_analise" ).remove();
		possui_filtro = 0;
		if($("#resultadoBi_filtro").html().trim() != "")
		{
			possui_filtro = 1;
		}
		abrir_modal_aviso("<b>Analisando colunas! Aguarde ...</b>");	
		$.post("src/controller/Bi_analiseControllerUser.php?mod=analisar_colunas_query", 
			{query: $("#queryModelo").val()+" "+$("#query").val(), 
			codigo_analise: $("#codigo_analise").val(),
			codigo_conexao: $("#conexao").val(),
			possui_filtro: possui_filtro,
			lista_filtros: lista_filtros}, 
			function (retorno)
			{
				if(! retorno.status)
				{
					alert(retorno.mensagem);
				}
				else if(retorno.lista_colunas.length > 0)
				{
					colunas = retorno.lista_colunas;
					//ordenar pela visualização, valores depois as outras
					colunas = sequenciar_colunas_conforme_escolhidas(colunas)
					$("#etapa2").css("display", "none");
					$("#etapa3").css("display", "block");
					escolher_tipo_analise();
					
				}
				else
				{
					alert("Sem dados para a consulta");
				}
				fechar_modal_aviso();
			},'json'
		);	
	}
	
	
	function atualiza_select_vertical()
	{
		if($("#select_colunas_info").val() != null)
		{
			colunasViewSelecionadas = $("#select_colunas_info").val();
			//$("#select_colunas_quebra_parcial_vertical").empty();
			for(i =0; i < colunasViewSelecionadas.length; i++)
			{
				
				//retira dos outros select
				//$("#select_coluna_vertical option[value='"+colunasViewSelecionadas[i]+"']").css("display", "none");
				//$("#select_colunas_valores_vertical option[value='"+colunasViewSelecionadas[i]+"']").css("display", "none");
				$("#select2-select_coluna_vertical-results .select2-results__option").each(function(){
					if($(this).html()==colunasViewSelecionadas[i])
					{
						$(this).css("display", "none");
					}
				});
				$("#select2-select_colunas_valores_vertical-results .select2-results__option").each(function(){
					if($(this).html()==colunasViewSelecionadas[i])
					{
						$(this).css("display", "none");
					}
				});
				
			}
			colunaVerticalSelecionada = $("#select_coluna_vertical").val();
			$("#select2-select_colunas_info-results .select2-results__option").each(function(){
				if($(this).html()==colunaVerticalSelecionada)
				{
					$(this).css("display", "none");
				}
			});
			atualiza_select_valores_vertical();
		}
	}
	function monta_filtros(lista_filtros)
	{
		possui_filtroAnalise = false;
		htmlFiltr = "";
		for(iFilt = 0; iFilt < lista_filtros.length; iFilt++)
		{
			if(lista_filtros[iFilt].tipo=="4" || lista_filtros[iFilt].tipo=="5" || lista_filtros[iFilt].tipo=="7")
			{
				mask = "00/00/0000";
				if(lista_filtros[iFilt].tipo=="5"){mask = "00/00/0000 00:00";}
				htmlFiltr += '<div class="filtroForm" style="margin: 5px;" id="filtroSeletor">';
				htmlFiltr += '	<label><span class="form_obrigatorio">*</span>'+lista_filtros[iFilt].descricao+'</label> <br>';
				htmlFiltr += '	<input id="'+lista_filtros[iFilt].id+'" onchange="alteraValorFiltro(this, '+iFilt+')" name="'+lista_filtros[iFilt].id+'" tipo="Data calculada" value="" data-mask="'+mask+'" placeholder="'+mask+'" class="form mask inputFiltroBi"  style="z-index: 999999;">';
				htmlFiltr += '</div>	';
				possui_filtroAnalise = true;
				//alert("a")
			}
		}
		if(! possui_filtroAnalise)
		{
			fim_analisar_colunas_query();
		}
		else
		{
			htmlFiltr += '<button type="button" class="btnSuccess btnSn btnFiltroForm btnFiltroAnalise" onclick="fim_analisar_colunas_query()">Filtrar </button>';
			$( "#filtros_analise" ).html('<div id="contaudo_filtros_analise"></div>');
			$( "#contaudo_filtros_analise" ).html(htmlFiltr);
			$( "#filtros_analise" ).dialog({ clickOutside: true, clickOutsideTrigger: "#filtros_analise" });
			$(".ui-dialog").css("zIndex", 999999);
			$(".ui-dialog").css({"width": "100%", "left": "auto", "margin": "auto", "margin-left": "auto", "margin-right": "auto", "left": "50%", "right": "auto", "transform": "translate(-50%, -50%)"});
			$(".ui-dialog").css({"max-width": "500px", "top": "30%"});
			ajusteCalendario();
			$(".ui-datepicker").css("zIndex", 9999999);
			$("#"+lista_filtros[0].id).blur();//retira foco pra funcionar o calendário
			$(document).mouseup(function(e) //fechar dialogo do filtro se clicar fora
			{
				var container = $(".ui-dialog");
				var calendario = $(".ui-datepicker");

				// if the target of the click isn't the container nor a descendant of the container
				if (!container.is(e.target) && container.has(e.target).length === 0 && !calendario.is(e.target) && calendario.has(e.target).length === 0) 
				{
					//container.hide();
					$("#filtros_analise").dialog("close");
				}
			});
			$(".inputFiltroBi").change(function(){

				valorAtual = $(this).val()
				//altera todos os forms com o mesmo ids para o mesmo valor
				$("input[name*='"+$(this).attr("name")+"']").each(function() {
					//alert($(this).val());
					$(this).val(valorAtual);
				});
			});
	
		}
	}
	function alteraValorFiltro(seletor, index)
	{
		aDataHora = $(seletor).val().split(" ");
		aData = aDataHora[0].split("/");
		strData = aData[2]+"-"+aData[1]+"-"+aData[0];
		if(aDataHora.length > 1)
		{
			strData += " "+aDataHora[1];
		}
		lista_filtros[index].valor = strData;
	}
	function atualiza_select_valores_vertical()
	{
		$("#select2-select_colunas_valores_vertical-results .select2-results__option").each(function(){
				if($(this).html()==$("#select_coluna_vertical").val())
				{
					$(this).css("display", "none");
				}
			});	
		atualiza_select_quebrar_parcial_vertical()	
	}
	function atualiza_select_quebrar_parcial_vertical()
	{
		
		if($("#select_colunas_info").val() != null)
		{
			colunasViewSelecionadas = $("#select_colunas_info").val();
			//$("#select_colunas_quebra_parcial_vertical").empty();
			for(i =0; i < colunasViewSelecionadas.length; i++)
			{
				if($("#select_colunas_quebra_parcial_vertical").html() != null)//11/02/2025
				{
					if(! $("#select_colunas_quebra_parcial_vertical").html().replaceAll('"',"").includes(">"+colunasViewSelecionadas[i]+"<"))
					{
						$("#select_colunas_quebra_parcial_vertical").append($('<option>', {
							value: colunasViewSelecionadas[i],
							text: colunasViewSelecionadas[i]
						}));
					}
				}
				if($("#select_colunas_quebra_media_parcial_vertical").html() != null)//11/02/2025
				{
					if(! $("#select_colunas_quebra_media_parcial_vertical").html().replaceAll('"',"").includes(">"+colunasViewSelecionadas[i]+"<"))
					{
						$("#select_colunas_quebra_media_parcial_vertical").append($('<option>', {
							value: colunasViewSelecionadas[i],
							text: colunasViewSelecionadas[i]
						}));
					}
				}
				
				
			}
			colunaValoresSelecionadas = $("#select_colunas_valores_vertical").val();
			//listaQuebraTotFinalArmazenada = listaQuebraTotFinalArmazenada.split(",");
			//listaQuebraMediaFialArmazenada = listaQuebraMediaFialArmazenada.split(",");
			if($("#select_colunas_total_vertical").val() != "" && $("#select_colunas_total_vertical").val() != null)
			{
				listaQuebraTotFinalArmazenada = $("#select_colunas_total_vertical").val();
			}
			if($("#select_colunas_media_vertical").val() != "" && $("#select_colunas_media_vertical").val() != null)
			{
				listaQuebraMediaFialArmazenada = $("#select_colunas_media_vertical").val();
			}
			if($("#select_colunas_val_soma_parcial").length > 0)
			{
				if($("#select_colunas_val_soma_parcial").val() != "" && $("#select_colunas_val_soma_parcial").val() != null)
				{
					listacolunas_valores_soma_parcialArmazenada = $("#select_colunas_total_vertical").val();
				}
				if($("#select_colunas_val_media_parcial").val() != "" && $("#select_colunas_val_media_parcial").val() != null)
				{
					listacolunas_valores_media_parcialArmazenada = $("#select_colunas_val_media_parcial").val();
				}
			}
			if($("#select_colunas_valores_vertical").val() != "" && $("#select_colunas_valores_vertical").val() != null)
			{
				
				//alert(colunaValoresSelecionadas.length)
				for(i =0; i < colunaValoresSelecionadas.length; i++)
				{
					if(! $("#select_colunas_total_vertical").html().replaceAll('"',"").includes(">"+colunaValoresSelecionadas[i]+"<"))
					{
						if(listaQuebraTotFinalArmazenada.includes(colunaValoresSelecionadas[i]))
						{
							selected = true;
						}
						$("#select_colunas_total_vertical").append($('<option>', {
							value: colunaValoresSelecionadas[i],
							text: colunaValoresSelecionadas[i],
							"selected": selected
						}));
					}
					if(! $("#select_colunas_media_vertical").html().replaceAll('"',"").includes(">"+colunaValoresSelecionadas[i]+"<"))
					{
						selected = false;
						if(listaQuebraMediaFialArmazenada.includes(colunaValoresSelecionadas[i]))
						{
							selected = true;
						}
						$("#select_colunas_media_vertical").append($('<option>', {
							value: colunaValoresSelecionadas[i],
							text: colunaValoresSelecionadas[i],
							"selected": selected
						}));
					}
					//novas colunas
					if($("#select_colunas_val_soma_parcial").length > 0)
					{
						if(! $("#select_colunas_val_soma_parcial").html().replaceAll('"',"").includes(">"+colunaValoresSelecionadas[i]+"<"))
						{
							selected = false;
							if(listacolunas_valores_soma_parcialArmazenada.includes(colunaValoresSelecionadas[i]))
							{
								selected = true;
							}
							$("#select_colunas_val_soma_parcial").append($('<option>', {
								value: colunaValoresSelecionadas[i],
								text: colunaValoresSelecionadas[i],
								"selected": selected
							}));
							selected = false;
							if(listacolunas_valores_media_parcialArmazenada.includes(colunaValoresSelecionadas[i]))
							{
								selected = true;
							}
							$("#select_colunas_val_media_parcial").append($('<option>', {
								value: colunaValoresSelecionadas[i],
								text: colunaValoresSelecionadas[i],
								"selected": selected
							}));
						}
					}
				}
			}
			$("#select_colunas_total_vertical").val(listaQuebraTotFinalArmazenada).change();
			$("#select_colunas_media_vertical").val(listaQuebraMediaFialArmazenada).change();
			//novas colunas
			if($("#select_colunas_val_soma_parcial").length > 0)
			{
				$("#select_colunas_val_soma_parcial").val(listacolunas_valores_soma_parcialArmazenada).change();
				$("#select_colunas_val_media_parcial").val(listacolunas_valores_media_parcialArmazenada).change();
			}
		}
	}
	
	function monta_tabela_agregacao()
	{
		//colocar essa parte na etapa1
		//colocar essa parte na etapa1
		html = "<table>	<head> <tr> <td><b>Coluna</b></td> <td><b>Apelido</b></td> <td><b>Mascara</b></td> <td><b>Agregação</b><td><b>Ordenar</b></td> </tr> </head>";
		for(i =0; i < colunas.length; i++)
		{
			if((! colunas[i].oculto || colunas[i].utilizada_para_calculo )
				&& (colunas[i].tipo_dado == "datetime" || colunas[i].tipo_dado == "date" || colunas[i].tipo_dado == "float" || colunas[i].tipo_dado == "int")
			)
			{
					html += "<tr>    ";
					html += "<td><b style='top: -6px; position: relative;'>"+colunas[i].nome+"<b></td>";
					html += '<td><input value="'+colunas[i].apelido+'" onchange="alterar_apelido_coluna(this, '+i+');"  class="form" name="apelido"  style="width: 80px; padding: 5px;"></td>  ';
					html += "<td>" ;
					//alert(colunas[i].tipo);
					if(colunas[i].tipo_dado == "datetime")
					{
						if(colunas[i].mascara == "" || colunas[i].mascara == null)
						{
							colunas[i].mascara = "d/m/Y H:i";
						}
						html +='<select class="form" name="mascara" onchange="alterar_mascara_coluna(this, '+i+');"  style="width: 190px; padding: 4px;">';
						html +='	<option value="d/m/Y H:i" '+(colunas[i].mascara == "d/m/Y H:i" ? "selected='selected'": "")+'>Dia/Mês/Ano Hora:Minuto </option>';
						html +='	<option value="d/m/Y H" '+(colunas[i].mascara == "d/m/Y H" ? "selected='selected'": "")+'>Dia/Mês/Ano Hora </option>';
						html +='	<option value="H:i" '+(colunas[i].mascara == "H:i" ? "selected='selected'": "")+'>Hora:Minuto </option>';
						html +='	<option value="H" '+(colunas[i].mascara == "H" ? "selected='selected'": "")+'>Hora </option>';
						html +='	<option value="i" '+(colunas[i].mascara == "i" ? "selected='selected'": "")+'>Minuto </option>';
						html +='	<option value="d/m/Y" '+(colunas[i].mascara == "d/m/Y" ? "selected='selected'": "")+'>Dia/Mês/Ano</option>';
						html +='	<option value="d/m" '+(colunas[i].mascara == "d/m" ? "selected='selected'": "")+'>Dia/Mês </option>';
						html +='	<option value="d" '+(colunas[i].mascara == "d" ? "selected='selected'": "")+'>Dia </option>';
						html +='	<option value="m/Y" '+(colunas[i].mascara == "m/Y" ? "selected='selected'": "")+'>Mês/Ano </option>';
						html +='	<option value="m" '+(colunas[i].mascara == "m" ? "selected='selected'": "")+'>Mês</option>';
						html +='	<option value="Y" '+(colunas[i].mascara == "Y" ? "selected='selected'": "")+'>Ano</option>';
						
						html +='</select>';
					}
					else if(colunas[i].tipo_dado == "date")
					{
						if(colunas[i].mascara == "" || colunas[i].mascara == null)
						{
							colunas[i].mascara = "d/m/Y";
						}
						html +='<select class="form" name="mascara" onchange="alterar_mascara_coluna(this, '+i+');"  style="width: 190px; padding: 4px;" value="'+colunas[i].mascara+'">';
						html +='	<option value="d/m/Y" '+(colunas[i].mascara == "d/m/Y" ? "selected='selected'": "")+'>Dia/Mês/Ano</option>';
						html +='	<option value="d/m" '+(colunas[i].mascara == "d/m" ? "selected='selected'": "")+'>Dia/Mês </option>';
						html +='	<option value="d" '+(colunas[i].mascara == "d" ? "selected='selected'": "")+'>Dia </option>';
						html +='	<option value="m/Y" '+(colunas[i].mascara == "m/Y" ? "selected='selected'": "")+'>Mês/Ano </option>';
						html +='	<option value="m" '+(colunas[i].mascara == "m" ? "selected='selected'": "")+'>Mês</option>';
						html +='	<option value="Y" '+(colunas[i].mascara == "Y" ? "selected='selected'": "")+'>Ano</option>';
						
						html +='</select>';
					}
					else if(colunas[i].tipo_dado == "float")
					{
						if(colunas[i].mascara == "" || colunas[i].mascara == null)
						{
							colunas[i].mascara = "2";
						}
						html +='<b>Casas decimais</b><input value="'+colunas[i].mascara+'" onchange="alterar_mascara_coluna(this, '+i+');" class="form" name="mascara"  style="width: 80px; padding: 5px;">';
					}
					html += "</td> ";
					html += "<td>" ;
					//alert(colunas[i].tipo_dado)
					if(colunas[i].tipo_dado == "int" || colunas[i].tipo_dado == "float")
					{
						if(colunas[i].cod_agregacao == "" || colunas[i].cod_agregacao == null)
						{
							colunas[i].cod_agregacao = "1";
						}
						html += '<select class="form" name="agracacao" placeholder="Agregação" value="'+colunas[i].cod_agregacao+'" onchange="alterar_agregacao_coluna(this, '+i+');" style="width: 100%;" >';
						html += '	<option value="1" '+(colunas[i].cod_agregacao == "1" ? "selected='selected'": "")+'>Somatório</option>';
						html += '	<option value="2" '+(colunas[i].cod_agregacao == "2" ? "selected='selected'": "")+'>Media</option>';
						html += '	<option value="3" '+(colunas[i].cod_agregacao == "3" ? "selected='selected'": "")+'>Mínimo</option>';
						html += '	<option value="4" '+(colunas[i].cod_agregacao == "4" ? "selected='selected'": "")+'>Máximo</option>';
						html += '	<option value="5" '+(colunas[i].cod_agregacao == "5" ? "selected='selected'": "")+'>Contagem</option>';
						html += '	<option value="6" '+(colunas[i].cod_agregacao == "6" ? "selected='selected'": "")+'>Contagem distinta</option>';
						html += '</select>';
						
					}
					html += "</td> ";
						
					html += "<td>" ;
						if(colunas[i].ordenar == "" || colunas[i].ordenar == null)
						{
							colunas[i].ordenar = "";
						}
						html += '<select class="form" name="ordenar" placeholder="Ordenar" value="'+colunas[i].ordenar+'" onchange="alterar_ordenar_coluna(this, '+i+');" style="width: 100%;" >';
						html += '	<option value="" '+(colunas[i].ordenar == "" ? "selected='selected'": "")+'>Crescente</option>';
						html += '	<option value="DESC" '+(colunas[i].ordenar == "DESC" ? "selected='selected'": "")+'>Decrescente</option>';
						html += '</select>';
					html += "</td> ";
					html += "</tr> ";
					
			}
			else if(! colunas[i].oculto )
			{
				html += "<tr>  ";
					html += "<td><b style='top: -6px; position: relative;'>"+colunas[i].nome+"<b></td>";
					html += '<td><input value="'+colunas[i].apelido+'" onchange="alterar_apelido_coluna(this, '+i+');"  class="form" name="apelido"  style="width: 80px; padding: 5px;"></td>  ';
					html += "<td> </td>" ;
					html += "<td> </td>" ;
					html += "<td>" ;
						if(colunas[i].ordenar == "" || colunas[i].ordenar == null)
						{
							colunas[i].ordenar = "";
						}
						html += '<select class="form" name="ordenar" placeholder="Ordenar" value="'+colunas[i].ordenar+'" onchange="alterar_ordenar_coluna(this, '+i+');" style="width: 100%;" >';
						html += '	<option value="" '+(colunas[i].ordenar == "" ? "selected='selected'": "")+'>Crescente</option>';
						html += '	<option value="DESC" '+(colunas[i].ordenar == "DESC" ? "selected='selected'": "")+'>Decrescente</option>';
						html += '</select>';
					html += "</td> ";
				html += "</tr> ";
			}
		}
		html += "<table>";
		$('#config_coluna').html(html);
		
	}
	
	function alterar_apelido_coluna(seletor, indice_colunas)
	{
		//colocar essa parte na etapa1
		colunas[indice_colunas].apelido = $(seletor).val();
	}
	function alterar_agregacao_coluna(seletor, indice_colunas)
	{
		//colocar essa parte na etapa1
		colunas[indice_colunas].cod_agregacao = $(seletor).val();
	}
	function alterar_ordenar_coluna(seletor, indice_colunas)
	{
		colunas[indice_colunas].ordenar = $(seletor).val();
	}
	function alterar_tipo_dado_coluna(seletor, indice_colunas)
	{
		colunas[indice_colunas].tipo_dado = $(seletor).val();
	}
	function alterar_mascara_coluna(seletor, indice_colunas)
	{
		//colocar essa parte na etapa1
		colunas[indice_colunas].mascara = $(seletor).val();
	}
	function alterar_modelo_analise()
	{
		possuioModelo = false;
		for(i=0; i < listaModelos.length; i++)
		{
			if(listaModelos[i].codigo == $("#modelo_dados").val())
			{
				$("#queryModelo").html(listaModelos[i].query);
				$("#queryModelo").css("display", "block");
				$("#obsModeloAnalise").html("Abaixo pode-se adicionar um where com filtros!");
				possuioModelo = true;
				i = listaModelos.length;
			}
		}
		if(! possuioModelo)
		{
			$("#queryModelo").html("");
			$("#queryModelo").css("display", "none");
		}
		
	}
	
	function abrirAbaSequencOrder()
		{
			if($("#sequencia_ordenar").css("display") == "none")
			{
				$("#sequencia_ordenar").css("display", "block");
			}
			else
			{
				$("#sequencia_ordenar").css("display", "none");
			}
		}
	
	function ajusteCalendario()
	{
		
		dataAjustPaginaView = "";
		if($('input[data-mask="00/00/0000"]').length)
		{
			$('input[data-mask="00/00/0000"]').datepicker({
				dateFormat: 'dd/mm/yy',
				dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'],
				dayNamesMin: ['D','S','T','Q','Q','S','S','D'],
				dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb','Dom'],
				monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
				monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'],
				nextText: 'Próximo',
				prevText: 'Anterior',
				beforeShow:function(input) {
					$(input).css({
						"z-index": 99999999
					});
					dataAjustPaginaView = ""; ///correçõs no calendario ao avançar ou retroceder data/ pega o seletor proximo na pagina view
					//alert("a");
					//setTimeout(ajustar_clicks_avanc_e_retorced(),900);
				},
				afterShow:function(input) {
					setTimeout(ajustar_clicks_avanc_e_retorced(),300);
				}
				
			});
			$('input[data-mask="00/00/0000"]').on('focus', function (e) {
				e.preventDefault();
				$(this).datepicker('show');
				$(this).datepicker('widget').css('z-index', 9999999);
				
			});
			
			
		}


		if($('input[data-mask="00/00/0000 00:00"]').length)
		{	
			$('input[data-mask="00/00/0000 00:00"]').datetimepicker({
				 dateFormat: 'dd/mm/yy',
				controlType: myControl,
				dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'],
				dayNamesMin: ['D','S','T','Q','Q','S','S','D'],
				dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb','Dom'],
				monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
				monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'],
				nextText: 'Próximo',
				prevText: 'Anterior',
				beforeShow:function(input) {
					$(input).css({
						"z-index": 99999999
					});
				}
			});
		}	

		if($('input[data-mask="00/00"]').length)
		{	
			$('input[data-mask="00/00"]').datepicker({
				dateFormat: 'dd/mm',
				dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'],
				dayNamesMin: ['D','S','T','Q','Q','S','S','D'],
				dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb','Dom'],
				monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
				monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'],
				nextText: 'Próximo',
				prevText: 'Anterior',
				beforeShow:function(input) {
					$(input).css({
						"z-index": 99999999
					});
				}
			});
			$('input[data-mask="00/00"]').on('focus', function (e) {
				e.preventDefault();
				$(this).datepicker('show');
				$(this).datepicker('widget').css('z-index', 9999999);
			});
		}

		if($('input[data-mask="00/00/0000 00:00:00"]').length)
		{	
			$('input[data-mask="00/00/0000 00:00:00"]').datetimepicker({
				dateFormat: 'dd/mm/yy',
				timeFormat: 'HH:mm:ss',
				controlType: myControl,
				dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'],
				dayNamesMin: ['D','S','T','Q','Q','S','S','D'],
				dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb','Dom'],
				monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
				monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'],
				nextText: 'Próximo',
				prevText: 'Anterior',
				beforeShow:function(input) {
					$(input).css({
						"z-index": 99999999
					});
				}
			});
		}	
		  
		
	}