<?php
//require_once("config/config_dir_raiz.php");
//include_once("cabecalho.php");
//include_once("rodape.php");
//include_once("nav_bar.php");
//$config = new Config();
//require_once($config->diretorio_raiz()."/src/model/bd/BiDAO.php");
//$biDAO = new BiDAO();
//$listaRelatorios = $biDAO->monta_filtro(2, "formDadosbi_analiseFiltro", "seletor1");
//$listaRelatorios = $biDAO->monta_filtro(1, "formDadosbi_analiseFiltro2", "seletor2");

?>
<a href="javaScript:void(0);" class="dropdown_filtro" onclick="imprimirPagina()" style="float: right; margin-left: 10px;">
	<i class="fa-solid fa-print"></i> 
</a>
<button type="button" style="display: block; border: none; background: none; padding: 0; margin: 0; float: right; " id="btn_abrir_modal_filtropagina"  data-toggle="modal" data-target="#modal_filtropagina" data-backdrop="static" data-keyboard="false">
	<i class="fa fa-filter" aria-hidden="true"></i>
</button>
<!-- Sera feito uma busca com todos os filtros da análise e agrupado num geral-->
<div class="modal fade" id="modal_filtropagina" data-focus="false" data-bs-focus="false"  role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
	<div class="modal-dialog" role="document">
		<div class="modal-content"><div class="modal-header" style="display: none;" ></div>
			<div class="modal-body" >
				<b style="float: left; margin-top: -10px; color: #bfbfbf;">Filtros</b>
				<a style="float: right; margin-top: -14px; margin-right: -12px;" href="javaScript:void(0)" onclick="$('#btn_abrir_modal_filtropagina').click();"><i class="fa-solid fa-circle-xmark"></i></a>
				
			</div>
			<div class="modal-body" id="conteudo_filtro_pagina"></div>
		</div>
	</div>
</div>

<div id="pagina_view"></div>
<div id="analies_capa" style="width: 100%; max-width: 950px; margin: 0 auto; text-align: Center; position: relative; min-height: 100%; clear: both;"></div>

<script>
	//funções da cria pagina
	//redimencionar
	
	linhaAnterior = -1;
	html = "";
	
	arrayAnalinalisesFiltro = [];
	arrayAnalinaliseStyleInicial = [];
	listaLabelAdicionadas = [];
	aAnalisesSemTratativas = [];
	//percorer analises ja incluídas 
	<?php 
	echo "$( document ).ready(function() {";
	foreach ($listabi_pagina_analise  as $pagina_analise){ 
		echo "pagina_analise = {
		width: ".round($pagina_analise->getLargura()).", 
		height: ".round($pagina_analise->getAltura()).", 
		linha: ".round($pagina_analise->getLinha()).", 
		coluna: ".round($pagina_analise->getColuna()).", 
		top: ".round($pagina_analise->getTop_fixo()).", 
		left: ".round($pagina_analise->getLeft_fixo()).", 
		analise: \"".$pagina_analise->getAnalise()->getCodigo()."\", 
		pagina_analise: ".$pagina_analise->getCodigo().", 
		tipo_charts: '".($pagina_analise->getAnalise()->getGrafico()  !== null ? $pagina_analise->getAnalise()->getGrafico()->getCodigo() : "")."', 
		nome_analise: '".$pagina_analise->getAnalise()->getNome()."' , 
		tipo: \"".$pagina_analise->getTipo()."\", 
		texto: \"".str_replace('"',"\\\"",str_replace("\n","",$pagina_analise->getTexto()))."\",
		layout: \"".$pagina_analise->getPagina()->getLayout()."\",
		titulo_grafico_mapa: '".($pagina_analise->getAnalise()->getGrafico()  !== null ? $pagina_analise->getAnalise()->getTitulo_widget_grafico() : "")."', 
		estaEmContainer: false
		};
		
		aAnalisesSemTratativas.push(pagina_analise);
		";
	   
		/*if($pagina_analise->getTipo() == "" or $pagina_analise->getTipo() == "analise")
		{
			echo " adiciona_analise(pagina_analise);";
		}
		else
		{
			echo " adicionarLabelText(pagina_analise, '".$pagina_analise->getTipo()."');";
		}*/
		
	} 
	echo "});";
	  ?>
	for(iObg =0; iObg < aAnalisesSemTratativas.length; iObg++)
	{
		pagina_analise = aAnalisesSemTratativas[iObg];
		if(pagina_analise.tipo == "analise")
		{
			container = "analies_capa";
			//adicionarNoContainer
			for(iContainer =0; iContainer < aAnalisesSemTratativas.length; iContainer++)
			{
				pagina_analiseCont = aAnalisesSemTratativas[iContainer];
				if(pagina_analiseCont.tipo == "container"
				&& pagina_analise.top >= pagina_analiseCont.top
				&& pagina_analise.top <= pagina_analiseCont.top+pagina_analiseCont.height 
				&& pagina_analise.left >= pagina_analiseCont.left
				&& pagina_analise.left <= pagina_analiseCont.left+pagina_analiseCont.width
				)
				{
					container = "resizable"+pagina_analiseCont.pagina_analise;
					pagina_analise.estaEmContainer = true;
				}
			}
			adiciona_analise(pagina_analise, container);
		}
		else
		{
			adicionarLabelText(pagina_analise, pagina_analise.tipo, "analies_capa");
			if(pagina_analise.tipo == "container")
			{
				html = "";//"Conteiner";
				//$(".analiseId"+pagina_analise.analise).append(html);
				$("#resizable"+pagina_analise.pagina_analise).append(html);
				//percorrer todas as analises que colide com esse container
			}
		}
	}
	styleInicial("classAjustInicial");//clasTabChart
	//styleInicial("containerClass");
	function styleInicial(tipoClass)
	{
		linhaAnterior = null;
		for(i =0; i < aAnalisesSemTratativas.length; i++)
		{
			analise = aAnalisesSemTratativas[i].analise;
			codigo_analise_pag = aAnalisesSemTratativas[i].pagina_analise;
			if(linhaAnterior != $("#resizable"+codigo_analise_pag).attr("linha") && $("#resizable"+codigo_analise_pag).attr("class").includes(tipoClass))
			{
				qtd_analises_na_lina = 0;
				$("."+tipoClass+"[linha]").each(function(){
					if($(this).attr("linha") == $("#resizable"+codigo_analise_pag).attr("linha"))
					{
						qtd_analises_na_lina += 1;
					}
				})
				//alert("linha "+$("#resizable"+codigo_analise_pag).attr("linha")+ " qtd "+qtd_analises_na_lina);
				//alert(qtd_analises_na_lina)
				if(qtd_analises_na_lina > 1)
				{
					//alert(qtd_analises_na_lina)
					$("."+tipoClass+"[linha]").each(function(){
						if($(this).attr("linha") == $("#resizable"+codigo_analise_pag).attr("linha"))
						{
							//alert($(this).css("max-width").replace("px",""))
							if($(this).css("max-width").replace("px","") >=300 && qtd_analises_na_lina ==2)
							{
								//$(this).css({"width": "calc(50% - 5px)", "max-width": "100%"})
								$(this).css({"width": "", "max-width": ""});
								$(this).attr("class", $(this).attr("class")+" analise_item_50")
							}
							else if($(this).css("max-width").replace("px","") >=200 && qtd_analises_na_lina ==3)
							{
								//$(this).css({"width": "calc(50% - 5px)", "max-width": "100%"})
								$(this).css({"width": "", "max-width": ""});
								$(this).attr("class", $(this).attr("class")+" analise_item_33")
							}
							else if(qtd_analises_na_lina ==4)
							{
								//$(this).css({"width": "calc(50% - 5px)", "max-width": "100%"})
								$(this).css({"width": "", "max-width": ""});
								$(this).attr("class", $(this).attr("class")+" analise_item_25")
							}
						}
					})
				}
			}
			linhaAnterior = $("#resizable"+codigo_analise_pag).attr("linha");
		}
	}
	criar_inputform_clik();
	$( document ).ready(function() {
		consultar_todas_analises();
	});
	leftFixoAnterior = 0;
	widthAnterior = 0;
	function adiciona_analise(obgPagina_analise, container)
	{
		addClass = "";
		centralizar = false;
		html = "";
		width = 300; 
		height = 300; 
		linha = 0; 
		coluna = 0; 
		analise = $("#analise").val();
		codigo_analise_pagina = "";
		if(obgPagina_analise.width != "" )
		{
			width = obgPagina_analise.width; 
			height = obgPagina_analise.height; 
			linha = obgPagina_analise.linha; 
			coluna = obgPagina_analise.coluna; 
			analise = obgPagina_analise.analise;
			codigo_analise_pagina = obgPagina_analise.pagina_analise;
			topFixo = obgPagina_analise.top; 
			leftFixo = obgPagina_analise.left;
			
		}
		
		
		style = ""
		strFloat = "";
		//strFloat = "float: left; display: Inline-block; margin-left: 5px; ";
		addClass = "analise_item_left";
		if(leftFixo+width > 720  )
		{
			//strFloat = "float: right";
			addClass = "analise_item_right";
		}
		if(obgPagina_analise.tipo_charts == "5")//widget
		{
			/*if(leftFixo+width > 700 && ((leftFixo)-(leftFixoAnterior+widthAnterior)) < (120*(coluna)) )
			{
				strFloat = "float: left; ";
			}*/
			//alert((leftFixo)-(leftFixoAnterior+widthAnterior) +" "+(100*(coluna)) )
			//center
			if(leftFixo >= 250 && leftFixo+width < 650 && 
			(((leftFixo)-(leftFixoAnterior+widthAnterior)) > 80 || linhaAnterior != linha))//(120*(coluna)))
			{
				strFloat = "  display: Inline-block;";
				addClass = "analise_item_certer";
				//centralizar = true;
			}
			else if(coluna > 0)
			{
				//style = "margin-left: 5px;"
			}
			addClass += " widgetcardcapa";
		}
		//alert(linhaAnterior+" "+linha)
		
		
		
		if(obgPagina_analise.width != "" )
		{
			//style += "top: "+topFixo+"px; left: "+leftFixo+"px;";
		}
		style += " "+strFloat+"; ";
		
		
		//alert(obgPagina_analise.tipo_charts);
		if(obgPagina_analise.tipo_charts != "5")//diferente de widget
		{
			if( obgPagina_analise.tipo_charts != "5" )
			{
				width += 28;
			}
			strwidth = "max-width: "+width+"px; width: 100%;";
			if(width-28 >= 720)
			{
				strwidth = "width: 100%";
			}
			
			addClass += " clasTabChart classAjustInicial"
			style +=" "+strwidth+"; height: "+(height+30)+"px;  ";
			style += " padding: 10px; border-radius: 5px; background: white;";
			//border: solid 1px #f2f2f2; box-shadow: 0px 1px 3px 0px #d9d9d9;
			if(obgPagina_analise.tipo_charts == "6")//mapa
			{
				style += " padding-bottom: 0; ";
			}
		}
		else
		{
			
		}
		
		if( obgPagina_analise.tipo_charts == "5" )
		{
			//addClass = "widgetcardcapa ";
			style += " max-height: 90px; overflow: hidden;";
		}
		
		if(obgPagina_analise.layout == "estatico")
		{
			addClass = "";
			style += " position: absolute; top: "+topFixo+"px; left: "+leftFixo+"px; width: "+width+"px; ";
		}
		html+='<div class=\'analise_item '+addClass+'\' tipo="analise" id="resizable'+codigo_analise_pagina+'" ';
		html+=' linha="'+linha+'" coluna="'+coluna+'" codigo_analise_pagina="'+codigo_analise_pagina+'" width_original="'+width+'" top_original="'+obgPagina_analise.top+'" left_original="'+obgPagina_analise.left+'" style="text-align: left; '+style+'" >';
		if(obgPagina_analise.tipo_charts != "5")//widget
		{
			html+='	<div style="padding: 2px; width: 100%; border-bottom: solid 1px #6887a6; display:block;text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"><b style="color: #394d60;">';
			if(obgPagina_analise.titulo_grafico_mapa != "" && obgPagina_analise.titulo_grafico_mapa != null)
			{
				html+= obgPagina_analise.titulo_grafico_mapa;
			}
			else
			{
				html+= obgPagina_analise.nome_analise;
			}
			html+='</b></div>';
			if(obgPagina_analise.tipo_charts != "6")//mapa
			{
				html+='<br>';
			}
		}
		height = "height: calc(100% - 40px);";
		if(obgPagina_analise.tipo_charts == "5")//widget
		{
			height = "height: 90px; min-width: 227px;";
		}
		html+='	<div id=\'seletor'+analise+'Filtro\'></div>';
		html+='	<div id="seletor'+analise+'" style="width: 100%; '+height+' overflow: auto;"></div>';
		html+='</div>';
		if(centralizar)
		{
			//html+='</center>';
		}
		//linhaAnterior >-1 &&  linhaAnterior != linha &&
		if( obgPagina_analise.layout != "estatico" && ! obgPagina_analise.estaEmContainer )
		{
			//seTiverUmadoladodaOutraNãoquebrar
			quebrarLinha = permiteQuebrarLinha(obgPagina_analise);
			//se tiver outro seletor do lado direito na mesma linha não quebrar linha
			if(quebrarLinha)
			{
				html+='<div style="width: 100%; clear:both; "></div>';
			}
		}
		$("#"+container).append(html);
		arrayAnalinaliseStyleInicial.push({"analise": analise });
		montaFiltro("seletor"+analise+"Filtro", analise,"formDadosbi_seletor"+analise, "seletor"+analise );
		linhaAnterior = linha;
		leftFixoAnterior = leftFixo;
		widthAnterior = width;
	}
	
	function adicionarLabelText(obgPagina_analise, tipo, container)
	{
		qtdLabel = listaLabelAdicionadas.length + 1;
		//analise = tipo+"_"+qtdLabel;
		analise = obgPagina_analise.analise;
		addClass = "analise_item_left";
		style = "";
		if(obgPagina_analise.tipo == "label")
		{
			style +="border: none; box-shadow: 0px 0px 0px 0px white; "
		}
		else
		{
			style +="background: white; padding: 10px; "
		}
		
		width = obgPagina_analise.width; 
		height = obgPagina_analise.height; 
		linha = obgPagina_analise.linha; 
		coluna = obgPagina_analise.coluna; 
		
		codigo_analise_pagina = obgPagina_analise.pagina_analise;
		topFixo = obgPagina_analise.top; 
		leftFixo = obgPagina_analise.left;
		texto = obgPagina_analise.texto;
		html = "";	
		if(obgPagina_analise.tipo == "container")
		{
			width += 5;
			addClass += " containerClass classAjustInicial" ;
		}
		else
		{
			width += 30;
		}
		if(obgPagina_analise.tipo == "texto")
		{
			//width = width-20;
		}
		
		
		if(obgPagina_analise.tipo == "label")
		{
			if(leftFixo >= 250 && leftFixo+width < 650 && 
			(((leftFixo)-(leftFixoAnterior+widthAnterior)) > 80 || linhaAnterior != linha)) //(120*(coluna)))
			{
				//strFloat = "  display: Inline-block;";
				addClass = "analise_item_certer";
			}
		}
		if(leftFixo+width > 700  )
		{
			//strFloat = "float: right";
			addClass = "analise_item_right";
		}
		if(obgPagina_analise.tipo == "texto")
		{
			addClass += " clasTabChart classAjustInicial";
		}
		
		if(width >= 700)
		{
			style +="width: 100%;  ";
		}
		else
		{
			style +="width: 100%; max-width: "+width+"px; ";
		}
		
		if(obgPagina_analise.layout == "estatico")
		{
			addClass = "";
			style += "position: absolute; top: "+topFixo+"px; left: "+leftFixo+"px; width: "+width+"px; ";
		}
		if(obgPagina_analise.tipo == "container")
		{
			style += "  padding: 0; margin: 0; border: none; box-shadow: 0px 0px 0px 0px #d9d9d9;";
		}
		html+='<div class=\'analise_item '+addClass+'  analiseId'+obgPagina_analise.analise+'\' tipo="'+tipo+'" id="resizable'+codigo_analise_pagina+'" ';
		html+=' linha="'+linha+'" coluna="'+coluna+'" codigo_analise_pagina="'+codigo_analise_pagina+'" width_original="'+width+'" top_original="'+obgPagina_analise.top+'" left_original="'+obgPagina_analise.left+'" style="text-align: left; '+style+'" >';
			html+=texto;
		html+='</div>';
		//linhaAnterior >-1 && linhaAnterior != linha &&
		if( obgPagina_analise.layout != "estatico")
		{
			quebrarLinha = permiteQuebrarLinha(obgPagina_analise);
			//se tiver outro seletor do lado direito na mesma linha não quebrar linha
			if(quebrarLinha)
			{
				html+='<div style="width: 100%; clear:both; "></div>';
			}
		}
		$("#"+container).append(html);
		linhaAnterior = linha;
		leftFixoAnterior = leftFixo;
		widthAnterior = width;
		arrayAnalinaliseStyleInicial.push({"analise": analise });
	}
	
	function permiteQuebrarLinha(obgPagina_analise)
	{
		quebrarLinha = true;	
		
		//se tiver outro seletor do lado direito na mesma linha não quebrar linha
		for(iObgTeste =0; iObgTeste < aAnalisesSemTratativas.length; iObgTeste++)
		{
			pagina_analiseTeste = aAnalisesSemTratativas[iObgTeste];
			if(
				(obgPagina_analise.top >= pagina_analiseTeste.top-25
				&& obgPagina_analise.top <= pagina_analiseTeste.top+pagina_analiseTeste.height +25
				&& obgPagina_analise.left < pagina_analiseTeste.left+25
				//&& obgPagina_analise.left <= pagina_analiseTeste.left+pagina_analiseTeste.width
				&& obgPagina_analise.pagina_analise != pagina_analiseTeste.pagina_analise
				)
			)
			{
				/*for(iObgTesteProx =0; iObgTesteProx < aAnalisesSemTratativas.length; iObgTesteProx++)
				{
					//obter indice do elemento atual
					//valida se o proximo elemento a esquerda é abaixo fora da pilha
					if(aAnalisesSemTratativas[iObgTesteProx].top > obgPagina_analise.top 
					&& aAnalisesSemTratativas[iObgTesteProx].left <=  obgPagina_analise.left+2
					&& aAnalisesSemTratativas[iObgTesteProx].pagina_analise != obgPagina_analise.pagina_analise)
					{
						pagina_analiseTestePorixmo = aAnalisesSemTratativas[iObgTesteProx];
						if(
							aAnalisesSemTratativas[iObgTesteProx].width <=  obgPagina_analise.width+2
							&&
							! //se o proximo não tiver dentro
							(pagina_analiseTestePorixmo.top >= pagina_analiseTeste.top
							&& pagina_analiseTestePorixmo.top <= pagina_analiseTeste.top+pagina_analiseTeste.height 
							&& pagina_analiseTestePorixmo.left < pagina_analiseTeste.left
							//&& obgPagina_analise.left <= pagina_analiseTeste.left+pagina_analiseTeste.width
							&& pagina_analiseTestePorixmo.pagina_analise != pagina_analiseTeste.pagina_analise
							)
						)
						{
							return true;
						}
						break;
					}
					
				}*/
				quebrarLinha = false;
			}
			/*if(
				(pagina_analiseTeste.top >= obgPagina_analise.top
				&& pagina_analiseTeste.top <= obgPagina_analise.top+obgPagina_analise.height
				&& pagina_analiseTeste.left < obgPagina_analise.left
				//&& pagina_analiseTeste.left <= obgPagina_analise.left+obgPagina_analise.width
				&& pagina_analiseTeste.pagina_analise != obgPagina_analise.pagina_analise
				
				)
			)
			{
				quebrarLinha = false;
			}*/
		}
		return quebrarLinha;
	}
	//Conteiner responsivo
	$(window).resize(function() {
	   //$('body').html('<div>aa' + $(window).width() + '</div>');
	   //percorre o container se a soma do conteiner m
	  containerResponsivo();
	 });
	function containerResponsivo()
	{
		 $(".analise_item").each(function() {
		   if($(this).attr("tipo") == "container")
		   {
			 //  $(this).css("margin-right", "3px");
			  if($(window).width() < 980)
				{
					$(this).css("max-width", "100%");
				}
				else
				{
					$(this).css("max-width", $(this).attr("width_original")+"px");
				}
		   }
		});
	}
	function criar_inputform_clik()
	{
		//altera todos os forms com o mesmo ids para o mesmo valor
		$(":input.form").on("change", function(event) { 
			 altera_valores_dos_mesmos_ids(this);
		} );
		$(document.body).on("change",".select2-hidden-accessible",function(){
			 //alert($(this).attr("name"));
			 name = $(this).attr("name");
			 value = $(this).val();
			 $("select[name*='"+name+"']").each(function() {
				//alert($(this).val());
				$(this).val(value);
			});
		});
		/*$(".btnFiltroForm").on("onclick", function(event) { 
			 submet_todos_os_forms(this);
		} );
		*/
		$(".btnFiltroForm").click(function(){ submet_todos_os_forms(this); });
		

	}
	function altera_valores_dos_mesmos_ids(input)
	{
		//alert($(input).attr("name"))
		valorAtual = $(input).val()
		//altera todos os forms com o mesmo ids para o mesmo valor
		//$("input[name*='"+$(input).attr("name")+"']").each(function() {
		$("input[name='"+$(input).attr("name")+"']").each(function() {
		//$("input[name*='"+$(input).attr("name")+"']").each(function() {
			//alert($(this).val());
			$(this).val(valorAtual);
		});
	}
	
	function submet_todos_os_forms(btn)
	{
		//alert("chegou")
		idFormInvocado = $(btn).parent().attr("id");
		$(".form_filtro").each(function() {
			//alert($(this).attr("id"))
			//if($(this).attr("id") != idFormInvocado)
			//{
				//$(this).submit();
				 if(montaTebelaBi($(this).attr("id"),$(this).attr("seletor"))) 
				 { 
					$('#btn_fechar_filtrobi_analise').prop('disabled',false); 
					$('#btn_fechar_filtrobi_analise').click(); 
				}
			//}
		});
	}



	
	//montaFiltro("seletor1Filtro", '36',"formDadosbi_seletor1", "seletor1" );
	//montaFiltro("seletor2Filtro", '40',"formDadosbi_seletor2", "seletor2" );
	//
	
	$(document).ready(function(){
	 containerResponsivo();
	  setTimeout(function(){
		$('#conteudo_filtro_pagina').append('<form style="background: white;  padding: 10px; " action="'+$(".btnFiltroForm").eq(0).parent().attr("action")+'" id="formfiltropagina" seletor="filtrogeral" class="form_filtro">');
		$('#conteudo_filtro_pagina').append('</form>');
		$('.inputFiltroBi').each(function(i, obj) {
			//$(this).attr("id")
			if(! $('#formfiltropagina').html().includes($(this).attr("id")))
			{
				if($(this).attr("class").includes("select2"))
				{
					//alert($(this).parent().parent().attr('id'))
					//new_element  = document.getElementById($(this).parent().parent().attr("id")).cloneNode(true);
					$('#formfiltropagina').append($(this).parent().parent());
				}
				else
				{
					//new_element  = document.getElementById($(this).attr('id')).cloneNode(true);
					$('#formfiltropagina').append($(this).parent());
				}
				//document.getElementById("conteudo_filtro_pagina").after(new_element);
			}
		});
		$('#formfiltropagina').append('<br><button type="button" class="btnSuccess btnSn btnFiltroForm" onclick=" if(montaTebelaBi(\'formfiltropagina\',\'filtrogeral\')) {submet_todos_os_forms(this); $(\'#btn_abrir_modal_filtropagina\').click(); }">Filtrar </button>');
		
	}, 500)
	})
	
</script>



