
	colunas = null;
	tipo_analise = null;
	
	function avancar_analise_etapa4_grafico()
	{
		if($("#titulo").val() == "")
		{
			alert("Informe o título do widget")
			return;
		}
		if($("#select_colunas_valores_vertical").val() == "")
		{
			alert("Informe a coluna de valor")
			return;
		}
		if($("#grafico").val() == "")
		{
			alert("Informe tipo de gráfico")
			return;
		}
		colunasSelecionadas = $("#select_colunas_info").val();
		aColunasSelecionadas = [];
		colunas_view_vertical = "";
		colunas_valores_vertical = "";
		coluna_vertical = "";
		colunas_quebra_parcial_vertical = "";
		colunas_sequencia_ordenacao = "";
		if($("#select_colunas_info").val() != null)
		{
			//colunas_view_vertical = $("#select_colunas_info").val().toString();
			for(k =0; k < $("#select_colunas_info").val().length; k++)
			{
				if(colunas_view_vertical != ""){colunas_view_vertical += ",";}
				colunas_view_vertical += "`"+$("#select_colunas_info").val()[k]+"`";
			}
			colunas_view_vertical.replaceAll("``","`");
			//colunas_view_vertical += "`"+$("#select_colunas_info").val()+"`";
			
		}
		
		if($("#select_sequenc_colunas_ordenar").val() != null)
		{
			//colunas_view_vertical = $("#select_colunas_info").val().toString();
			for(k =0; k < $("#select_sequenc_colunas_ordenar").val().length; k++)
			{
				if(colunas_sequencia_ordenacao != ""){colunas_sequencia_ordenacao += ",";}
				colunas_sequencia_ordenacao += "`"+$("#select_sequenc_colunas_ordenar").val()[k]+"`";
			}
			colunas_sequencia_ordenacao.replaceAll("``","`");
			
		}
		
		if($("#select_colunas_valores_vertical").val() != null)
		{
			//colunas_valores_vertical = $("#select_colunas_valores_vertical").val().toString();
			for(k =0; k < $("#select_colunas_valores_vertical").val().length; k++)
			{
				if(colunas_valores_vertical != ""){colunas_valores_vertical += ",";}
				colunas_valores_vertical += "`"+$("#select_colunas_valores_vertical").val()[k]+"`";
			}
			colunas_valores_vertical.replaceAll("``","`");
		}
		
		//marcar colunas usadas
		for(i =0; i < colunas.length; i++)
		{
			if(colunas_valores_vertical.includes(colunas[i].nome.trim()) ||
			   coluna_vertical.includes(colunas[i].nome.trim()) ||
			   colunas_quebra_parcial_vertical.includes(colunas[i].nome.trim()) ||
			   colunasSelecionadas.includes(colunas[i].nome.trim()) 
			)
			{
				colunas[i].oculto = false;
			}
			$('.linha_cor_dinamica').each(function(){
				//alert($(this).find('[name="col_valor"]').val())
				if($(this).find('[name="col_valor"]').length > 0)
				{
					//alert($(this).find('[name="col_valor"]').val())
					if($(this).find('[name="col_valor"]').val().trim() == colunas[i].nome.trim())
					{
						colunas[i].utilizada_para_calculo = true;
						if(colunas_valores_ocultas_para_calculo != "")
						{
							colunas_valores_ocultas_para_calculo += ",";
						}
						colunas_valores_ocultas_para_calculo += "`"+colunas[i].nome.trim()+"`";
					}
				}
			});
		}
		monta_tabela_agregacao();
		
		$("#etapa2").css("display", "none");
		$("#etapa3").css("display", "none");
		$("#etapa4").css("display", "block");
	}
	
	function finalizar_analise_grafico()
	{
		
		
		query = $("#query").val();
		analise = {nome: $("#nome_analise").val(), query: query, colunas_view_vertical: colunas_view_vertical, 
				colunas_valores_vertical: colunas_valores_vertical, coluna_vertical: coluna_vertical,
				colunas_quebrar_parcial_analise_vertical: "", colunas_quebrar_media_parcial_analise_vertical: "",
				colunas_total_analise_vertical: "", colunas_media_analise_vertical: "",
				colunas_quebra_parcial_vertical: colunas_quebra_parcial_vertical, codigo: $("#codigo_analise").val(),
				grafico: $("#grafico").val(), lista_filtros : lista_filtros, titulo_widget_grafico: $("#titulo").val(), 
				conexao: $("#conexao").val(), modelo_dados: $("#modelo_dados").val(),
				"area": $("#area").val(), "exibir_em_analise": $("#exibir_em_analise").val(),
				icone: $("#opc_label").val(),
				colunas: colunas, colunas_sequencia_ordenacao: colunas_sequencia_ordenacao
			};
		abrir_modal_aviso("<b>Aguarde ...</b>");	
		//console.log(analise);
		$.post("src/controller/Bi_analiseControllerUser.php?mod=salvar_analise", 
			analise, 
			function (retorno)
			{
				fechar_modal_aviso();
				if(! retorno.status)
				{
					alert(retorno.mensagem);
				}
				else
				{
					$("#codigo_analise").val(retorno.codigo);
					if(confirm("Sucesso! Código "+retorno.codigo+". Deseja visualizar a análise?"))
					{
						window.open('Analise_view.php?analise='+retorno.codigo, '_blank');
					}
					$(".modal_fechar").click();
						
					//alert(retorno.mensagem);
				}
			},'json'
		);	
	}
	
	function escolher_tipo_analise()
	{
		alistaSeqColOrdenarArmazenada = listaSeqColOrdenarArmazenada.split(",");
		for(i =0; i < alistaSeqColOrdenarArmazenada.length; i++)
		{
			if(! $("#select_sequenc_colunas_ordenar").html().replaceAll('"',"").includes(">"+alistaSeqColOrdenarArmazenada[i]+"<"))
			{
				$("#select_sequenc_colunas_ordenar").append($('<option>', {
					value: alistaSeqColOrdenarArmazenada[i],
					text: alistaSeqColOrdenarArmazenada[i],
					"selected": true
				}));
			}
		}
		for(i =0; i < colunas.length; i++)
		{
			selected = false;
			if(listaInfoArmazenada.split(",").includes(colunas[i].nome))
			{
				selected = true;
			}
			if(! listaInfoValoresArmazenada.split(",").includes(colunas[i].nome) && ! $("#select_colunas_info").html().replaceAll('"',"").includes(">"+colunas[i].nome+"<") )
			{
				$("#select_colunas_info").append($('<option>', {
					value: colunas[i].nome,
					text: colunas[i].nome,
					"selected": selected
					
				}));
			}
			
			if(! $("#select_sequenc_colunas_ordenar").html().replaceAll('"',"").includes(">"+colunas[i].nome+"<"))
			{
				$("#select_sequenc_colunas_ordenar").append($('<option>', {
					value: colunas[i].nome,
					text: colunas[i].nome,
					"selected": false
				}));
			}
			$("#select_sequenc_colunas_ordenar").select2({ width: '100%' });
			//abaixo codigo para colocar na sequencia de clique
			$("#select_sequenc_colunas_ordenar").on("select2:select", function (evt) {var element = evt.params.data.element; var $element = $(element); $element.detach(); $(this).append($element); $(this).trigger("change");});
		
			
			if(colunas[i].tipo_dado == "int" || colunas[i].tipo_dado == "float")
			{
				selected = false;
				if(listaInfoValoresArmazenada.split(",").includes(colunas[i].nome))
				{
					selected = true;
				}
				if(! $("#select_colunas_valores_vertical").html().replaceAll('"',"").includes(">"+colunas[i].nome+"<"))
				{
					$("#select_colunas_valores_vertical").append($('<option>', {
						value: colunas[i].nome,
						text: colunas[i].nome,
						"selected": selected
					}));
				}
				
			}
			
		}
		///recriar os select2
		crar_select2_com_todas_as_configs();
	}
	
	function crar_select2_com_todas_as_configs()
	{
		$("#select_colunas_info").select2({ width: '100%' });
		$("#select_colunas_info").on("select2:select", function (evt) {var element = evt.params.data.element; var $element = $(element); $element.detach(); $(this).append($element); $(this).trigger("change");});
			
		$("#select_colunas_valores_vertical").select2({ width: '100%' });
		$("#select_colunas_valores_vertical").on("select2:select", function (evt) {var element = evt.params.data.element; var $element = $(element); $element.detach(); $(this).append($element); $(this).trigger("change");});
		
		$(".select2-container--default").click(function(){
			//reprocessar ao abrir os selects
		    ///atualiza_select_vertical()
		});
		//permite sequenciar as seleções
		criar_sequenciar_colunas();
	}

	function criar_sequenciar_colunas()
	{
		$("ul.select2-selection__rendered").sortable({
		  containment: 'parent',
		  stop: function(event, ui) {
		  // event target would be the <ul> which also contains a list item for searching (which has to be excluded)
		   idDoSelect = $(event.target).parent().parent().parent().prev().attr("id");
		   console.log(idDoSelect);
		   ////return {name: $(this).data('data').text, value: $(this).data('data').id }; 
			var arr = Array.from($(event.target).find('li:not(.select2-search)').map(function () { 
				return $(this).data('data').id ;
			  }))
			   console.log(arr);
			  //recriar com sequencia
			 //$("#"+idDoSelect).val(arr).change();
			 
			 // $("#"+idDoSelect).val(arr);
			 //$("#"+idDoSelect).select2(arr, null, false);
			 //$("#"+idDoSelect).select2("val", arr);
			// $("#"+idDoSelect).trigger('change');
			$("#"+idDoSelect).select2('destroy');
			bkpItens = [];
			$("#"+idDoSelect+" > option").each(function() {
				bkpItens.push({text: this.text, value: this.value, "selected": false});
				$(this).prop("selected", false);
				$(this).remove();
			});	
			aValoresAdicionados = [];
			$("#"+idDoSelect).append($('<option>', {
					value: "",
					text: "",
					"selected": false
				}));
			aValoresAdicionados.push("");	
			for(i =0; i < arr.length; i++)
			{
				$("#"+idDoSelect).append($('<option>', {
					value: arr[i],
					text: arr[i],
					"selected": true
				}));
				aValoresAdicionados.push(arr[i]);
			}
			for(i =0; i < bkpItens.length; i++)
			{
				if(! aValoresAdicionados.includes(bkpItens[i].value))
				{
					$("#"+idDoSelect).append($('<option>', {
						value: bkpItens[i].value,
						text: bkpItens[i].value,
						"selected": false
					}));
						
				}
			}
				
			$("#"+idDoSelect).select2({ width: '100%' });		
			$("#"+idDoSelect).on("select2:select", function (evt) {var element = evt.params.data.element; var $element = $(element); $element.detach(); $(this).append($element); $(this).trigger("change");});
			$(".select2-container--default").click(function(){
				//reprocessar ao abrir os selects
				//atualiza_select_vertical()
			});
			criar_sequenciar_colunas();
			
		  }
		  
		});
	}
	
	function sequenciar_colunas_conforme_escolhidas(colunas)
	{
		aColunasSequencial = [];
		aListaInfoArmazenada = listaInfoArmazenada.split(",");
		for(j =0; j < aListaInfoArmazenada.length; j++)
		{
			for(i =0; i < colunas.length; i++)
			{
				if(colunas[i].nome == aListaInfoArmazenada[j])
				{
					aColunasSequencial.push(colunas[i]);
				}
			}
		}
		aListaValArmazenada = listaInfoValoresArmazenada.split(",");
		for(j =0; j < aListaValArmazenada.length; j++)
		{
			for(i =0; i < colunas.length; i++)
			{
				if(colunas[i].nome == aListaValArmazenada[j])
				{
					aColunasSequencial.push(colunas[i]);
				}
			}
		}
		arrayLen = aColunasSequencial.length;
		for(i =0; i < colunas.length; i++)
		{
			achouNome = false;
			for(j =0; j < arrayLen; j++)
			{
				if(colunas[i].nome == aColunasSequencial[j].nome)
				{
					achouNome = true;
				}
			}
			if(! achouNome)
			{
				aColunasSequencial.push(colunas[i]);
			}
		}
		return aColunasSequencial;
	}
