function openAjax() {
	var ajax = false;

	try {
		ajax = new XMLHttpRequest(); // XMLHttpRequest para Firefox, Safari, dentre outros.
	} catch (ee) {
		try {
			ajax = new ActiveXObject("Msxml2.XMLHTTP"); // Para o Internet Explorer
		} catch (e) {
			try {
				ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o Internet Explorer
			} catch (E) {
				ajax = false;''
			}
		}
	}

	return ajax;
}

function decodificarUri(variable) {
	let retorno;

	try {
		retorno = decodeURIComponent(variable);
	} catch (error) {
		retorno = variable;
	}

	return retorno;
}


function validaConexao() {
	var tentativas = 0;

	var intervalo = setInterval(function() {
		fetch('/ajax/PingPongServlet.jsp')
			.then(response => {
				if (!response.ok) {
					throw new Error('Erro na conexão');
				}
				return response.text();
			})
			.then(data => {

				var el = document.getElementById('telaPercaConexao');
				if (el != null) {
					if (el.style.display == 'block') {
						el.style.display = 'none';

					};
				};

				console.log('Conexão com o site está ativa');
				tentativas = 0;
			})
			.catch(error => {
				telaPercaConexao();
				console.log('Erro: Perca de conexão com o site');
				tentativas++;
				if (tentativas >= 40) {
					invalidaSessao();
				}
			});
	}, 15000);
}




function telaPercaConexao() {
	var el = document.getElementById('telaPercaConexao');
	if (el != null) {
		if (el.style.display == 'none') {
			el.style.display = 'block';
		};
	};
}
function iAmAlive() {

	var ajax = openAjax();
	ajax.open("POST", "/ajax/PingPongServlet.jsp", true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=ISO-8859-1"
	);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			}
			ajax = null;
		}
	};

	ajax.send(null);
}

// Chama a função para notificar sobre novo atendimento e chat
function verificaNovoAttChat() {
	verificaNovoAtt();
}

var timeOutVerificaNovoAtt = null;

function verificaUsuarioLogado() {
	var cParam = "?tipo=loginOculto";

	verificaPopAjaxDrop();

	var data = new FormData();
	data.append("idAcesso", cParam);

	navigator.sendBeacon("/ajax/VerificaUsuarioLogado.jsp" + cParam, data);
}

function verificaNovoAtt() {
	if (timeOutVerificaNovoAtt != null) {
		clearTimeout(timeOutVerificaNovoAtt);
	}

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	verificaPopAjaxDrop();

	var ajax = openAjax();
	ajax.open("POST", "/ajax/VerificaNovoAtt.jsp" + cParam, true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=iso-8859-1"
	);
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
				timeOutVerificaNovoAtt = setTimeout("verificaNovoAtt()", 30000);
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(null);
}

function verificaNovaAssinaturaEletronica() {

	var res = "teste";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	verificaPopAjaxDrop();

	var ajax = openAjax();
	ajax.open("POST", "/ajax/AssinaturaPendente.jsp" + cParam, true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=iso-8859-1"
	);
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(null);
}

// Chama a funÃ§Ã£o para notificar sobre novo atendimento e chat
function verificaPopAjax() {
	verificaPop();
}

function startBackgroundProgressBar(range) {
	var idAba = document.getElementById("edIdAba").value;

	var elem = parent.document.getElementById("backgroundprogressbar" + idAba);
	if (elem != null) {
		elem.style.display = "block";
		elem.max = range;
		elem.value = 0;
	}

	var elemP = parent.document.getElementById(
		idAba + "statusBar"
	);
	elemP.style.display = "block";

	// if (elem.value >= elem.max) {
	// stopBackgroundProgressBar();
	// }
}

function stopBackgroundProgressBar() {
	var idAba = document.getElementById("edIdAba").value;

	var elem = parent.document.getElementById("backgroundprogressbar" + idAba);
	if (elem != null) {
		elem.style.display = "none";
		elem.max = 0;
		elem.value = 0;
	}

	var elemP = parent.document.getElementById(
		"spanbackgroundprogressbar" + idAba
	);
	elemP.innerHTML = "Processando..";

	var elemS = parent.document.getElementById(
		idAba + "statusBar"
	);
	elemS.style.display = "none";

	if (timeoutBackgroundProcessBar != null) {
		clearTimeout(timeoutBackgroundProcessBar);
	}

	timeoutBackgroundProcessBar = null;
}

function avancaBackgroundProgressBar(value, texto) {
	var idAba = document.getElementById("edIdAba").value;

	var elem = parent.document.getElementById("backgroundprogressbar" + idAba);
	if (elem != null) {
		elem.value += value;
	}

	var elemP = parent.document.getElementById(
		"spanbackgroundprogressbar" + idAba
	);
	var percentual = (elem.value * 100) / elem.max;
	percentual = percentual.toFixed(0);

	elemP.innerHTML = texto + " " + percentual + "% ";

	if (elem.value >= elem.max) {
		stopBackgroundProgressBar();
	}

	// elemP.setAttribute("data-value", percentual + "%");
}

var timeoutBackgroundProcessBar = null;
var ncountprogress = 0;

function updateBackgroundProgressBarStatus(jaEstaExecutando) {
	if (!jaEstaExecutando && timeoutBackgroundProcessBar != null) {
		return;
	}

	idAba = document.getElementById("edIdAba").value;

	var res = "id=progressBarStatus&idAba=" + idAba;

	var ajax = openAjax();
	ajax.open("POST", "/ajax/ProgressBar.jsp", true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=ISO-8859-1"
	);
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}

				var elem = parent.document.getElementById(
					"backgroundprogressbar" + idAba
				);

				if (
					ncountprogress <= 30 ||
					(elem != null && elem.style.display != "none")
				) {
					ncountprogress += 1;
					timeoutBackgroundProcessBar = setTimeout(
						"updateBackgroundProgressBarStatus(true)",
						500
					);
				} else {
					stopBackgroundProgressBar();
				}
			} else if (ajax.status == 400 || ajax.status == 500) {
				stopBackgroundProgressBar();
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

var nProcessosProcessando = 0;
var timeoutProcessando = null;

var showProgressBar = false;
var progressBarAtual;
var progressBarAtualP;

function iniciaProgressBar(range) {
	startProcessandoTimeout();

	showProgressBar = true;
	progressBarAtual.max = range;
	progressBarAtual.value = 0;
	progressBarAtualP.setAttribute("data-value", "0%");

	var elem = document.getElementById("TELA_PRO_SUB_IMG");
	elem.style.height = "60px";
	elem.style.width = "420px";
	elem.style.marginRight = "-210";

	document.getElementById("progressBarGeral").style.display = "block";
	document.getElementById("progressBarDefault").style.display = "none";
}

function avancaProgressBar(value, texto) {
	if (progressBarAtual != undefined && progressBarAtual != null)
		progressBarAtual.value += value;

	var percentual = (progressBarAtual.value * 100) / progressBarAtual.max;
	percentual = percentual.toFixed(0);

	if (texto != null && texto != "") progressBarAtualP.innerHTML = texto;

	progressBarAtualP.setAttribute("data-value", percentual + "%");
	if(percentual == 100){
		document.getElementById('pnProcessando').style.display = 'none';
	}
}

var timerProgessBar = 0;
var timeoutProcessBar = null;
var startProgressCount = null;

function updateProgressBarStatus() {

	try {
		timerProgessBar += 300;

		var temporizador = Math.floor(timerProgessBar / 1000);

		if (temporizador >= 3 && document.getElementById('pnProcessando').style.visibility == 'visible') {

			document.getElementById('texto-processando').style.marginTop = "3px";

			var minutos = Math.floor(temporizador / 60);

			if (minutos > 0) {

				if (temporizador % 60 > 0) {
					document.getElementById('timer-processando').innerHTML = minutos + "m " + temporizador % 60 + "s";
				} else {
					document.getElementById('timer-processando').innerHTML = minutos + "m";
				}

			} else {
				document.getElementById('timer-processando').innerHTML = temporizador + "s";
			}
		} else {
			document.getElementById('texto-processando').style.marginTop = "7px";
			document.getElementById('timer-processando').innerHTML = "";
		}

		idAba = document.getElementById("edIdAba").value;

		var res = "id=progressBarStatus&idAba=" + idAba;

		var ajax = openAjax();
		ajax.open("POST", "/ajax/ProgressBar.jsp", true);
		ajax.setRequestHeader(
			"Content-Type",
			"application/x-www-form-urlencoded; charset=ISO-8859-1"
		);
		// ajax.setRequestHeader("Content-length", res.length);
		ajax.onreadystatechange = function() {
			if (ajax.readyState == 4) {
				if (ajax.status == 200) {
					var resultado = ajax.responseText;
					if (resultado != "") {
						eval(resultado);
					}
				}
				ajax = null;
			}
		};
		ajax.send(res);
	} catch (e) {
		stopProcessando();
	}
}

var timeOutProgressBarStatus = null;

function progressBarStatusUpdate() {
	if (
		showProgressBar == false &&
		timeoutProcessando != null &&
		progressBarAtual != undefined
	) {
		timeOutProgressBarStatus = setTimeout("progressBarStatusUpdate()", 10);

		progressBarAtual.value += 1;

		if (progressBarAtual.value >= 100) {
			progressBarAtual.value = 0;
		}

		progressBarAtualP.innerHTML = "Processando...";
		progressBarAtualP.setAttribute("data-value", "");
	} else {
		if (timeOutProgressBarStatus != null) {
			clearTimeout(timeOutProgressBarStatus);
			timeOutProgressBarStatus = null;
		}
	}
}

function startProcessandoTimeout() {
	var pnProcessando = document.getElementById("pnProcessando");

	if (pnProcessando != null) {

		timerProgessBar = 0;

		document.getElementById('texto-processando').style.marginTop = "7px";
		document.getElementById('timer-processando').innerHTML = "";

		pnProcessando.style.height = document.body.scrollHeight;
		pnProcessando.style.width = document.body.scrollWidth;
		pnProcessando.style.display = "";
		pnProcessando.style.visibility = "visible";

		progressBarAtualP =
			document.getElementById("pnProcessando").childNodes[3].childNodes[1]
				.childNodes[1];
		progressBarAtual =
			document.getElementById("pnProcessando").childNodes[3].childNodes[1]
				.childNodes[3];

//		faz o contador funcionar. 	
		startProgressCount = setInterval("updateProgressBarStatus()", 300);

//		comentado pois estava ocasionando Timeout e Dropando conexão com sistema após +/- 10 - 12 minutos.
//		progressBarStatusUpdate();
	}
}

function ajustaProcessando(width, height) {
	const processando = document.getElementById("TELA_PRO_SUB_IMG");
	processando.style.width = width;
	processando.style.height = height;
}

function startProcessando() {
	nProcessosProcessando++;

	if (timeoutProcessando == null) {
		timeoutProcessando = setTimeout("startProcessandoTimeout()", 650);
	}
}

function stopProcessandoFinal() {
	nProcessosProcessando--;

	if (nProcessosProcessando < 0) {
		nProcessosProcessando = 0;
	}

	if (nProcessosProcessando == 0) {
		var pnProcessando = document.getElementById("pnProcessando");

		if (pnProcessando != null) {
			if (timeoutProcessando != null) {
				clearTimeout(timeoutProcessando);
			}
			timeoutProcessando = null;

			pnProcessando.style.height = "0px";
			pnProcessando.style.width = "0px";
			pnProcessando.style.display = "none";
			pnProcessando.style.visibility = "hidden";

			if (document.getElementById("progressbar") != null) {
				document.getElementById("progressbar").removeAttribute("value");
				document.getElementById("progressbar").max = "1";

				if (progressBarAtualP != null) {
					progressBarAtualP.innerHTML = "Processando...";
					progressBarAtualP.setAttribute("data-value", "");
				}
				showProgressBar = false;

				if (timeoutProcessBar != null) {
					clearTimeout(timeoutProcessBar);
				}
				
				if (startProgressCount != null) {
					clearInterval(startProgressCount);
				}

				startProgressCount = null;
				timeoutProcessBar = null;
			}

			var elem = document.getElementById("TELA_PRO_SUB_IMG");
			if (elem != null && elem != undefined) {
				elem.style.height = "28px";
				elem.style.width = "110px";
				elem.style.marginRight = "2";
			}

			var pbg = document.getElementById("progressBarGeral");
			if (pbg != null && pbg != undefined) {
				pbg.style.display = "none";
			}

			var pbd = document.getElementById("progressBarDefault");
			if (pbd != null && pbd != undefined) {
				pbd.style.display = "block";
			}
		}
	}
}

function stopProcessando() {
	setTimeout("stopProcessandoFinal();", 300);
}

var nProcessosPopAjax = 0;

function startPopAjax() {
	nProcessosPopAjax++;
	verificaPopAjax();
}

function stopPopAjax() {
	if (nProcessosPopAjax == 1) {
		verificaPopAjax();
	}

	nProcessosPopAjax--;

	if (nProcessosPopAjax < 0) {
		nProcessosPopAjax = 0;
	}
}

var timeOutVerificaPop = null;

function verificaPop() {
	if (nProcessosPopAjax < 1) {
		if (timeOutVerificaPop != null) {
			clearTimeout(timeOutVerificaPop);
		}
		return;
	}

	if (timeOutVerificaPop != null) {
		clearTimeout(timeOutVerificaPop);
	}

	try {
		if (document.getElementById("telacentral") == null) {
			return;
		}
	} catch (e) {
		return;
	}

	var idAba =
		document.getElementById("telacentral").parentNode.parentNode.parentNode;
	var id = getParameterUrl("idAba", idAba.URL);
	var res = "idAba=" + id;
	var cParam = getParameter("idAcesso");

	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/VerificaPop.jsp" + cParam, true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=iso-8859-1"
	);

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
				timeOutVerificaPop = setTimeout("verificaPop()", 750);
				verificaWinDropAcima();
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};

	ajax.send(res);
}

function respostaPop(resposta) {
	var idAba =
		document.getElementById("telacentral").parentNode.parentNode.parentNode;
	var id = getParameterUrl("idAba", idAba.URL);
	var res = "res=" + resposta + "&" + "idAba=" + id;
	var cParam = getParameter("idAcesso");

	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();

	ajax.open("POST", "/ajax/RespostaPop.jsp" + cParam, true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=iso-8859-1"
	);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function verificaPopAjaxDrop() {
	verificaWinDrop();
	// Força mais 2 verificações, pois o init da tela pode demorar para
	// processar.
	try {
		setTimeout("verificaWinDrop()", 500);
		setTimeout("verificaWinDrop()", 1500);
	} catch (e) { }
}

function verificaWinDropAcima() {
	if (window != null && window.parent != null) {
		var obj = window.parent.document.getElementById("btVerificaWinDropAcima");
		if (obj != null) {
			obj.click();
		}
	}
}

var timeOutVerificaWin = null;

function verificaWinDrop() {
	if (timeOutVerificaWin != null) {
		clearTimeout(timeOutVerificaWin);
	}

	var res = "idAba=mdi";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	try {
		var ajax = openAjax();
		ajax.open("POST", "/ajax/VerificaWin.jsp" + cParam, true);
		ajax.setRequestHeader(
			"Content-Type",
			"application/x-www-form-urlencoded; charset=iso-8859-1"
		);
		// ajax.setRequestHeader("Content-length", res.length);
		ajax.onreadystatechange = function() {
			if (ajax.readyState == 4) {
				if (ajax.status == 200) {
					eval(ajax.responseText);
				} else {
					// erro ajax
				}
				ajax = null;
			}
		};
		ajax.send(res);
	} catch (e) { }
}

function corrigeAlturaIframe() {
	if (document.getElementById("telacentral") == null) {
		return;
	}

	var idAba =
		document.getElementById("telacentral").parentNode.parentNode.parentNode;
	var id = getParameterUrl("idAba", idAba.URL);
	var nHeight = document.body.scrollHeight;
	var nWidth = document.body.scrollWidth;
	var oIframe = parent.document.getElementById(id + "iFrame");
	if (oIframe == null) {
		return;
	}
	var oBotaoMax = parent.document.getElementById(id + "Maximizar");

	parent.maximizarMdi(id, oBotaoMax, true);

	oIframe.parentNode.parentNode.style.display = "block";

	document.getElementById("btTesteFocus").focus();
}

function enviarAutoCompleteConsultaImovel(id, valor, cMap) {
	if (idFocus == null || id != idFocus) {
		return;
	}

	var cAux = "";
	if (cMap != null && cMap != "") {
		cAux = "&map=" + cMap;
	}

	var res = "id=" + id + "&valor=" + encodeURI(valor) + cAux;

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/EditAutoCompleteConsultaImovel.jsp" + cParam, true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=iso-8859-1"
	);
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function enviarAutoComplete(id, valor, cIdAba) {
	controlaObsAutoComplete(null);

	valor = replaceAll(valor, "+", "%");

	if (idFocus == null || id != idFocus || cIdAba == null || cIdAba == "") {
		return;
	}

	var cAux = "&idAba=" + cIdAba;

	var res = "id=" + id + "&valor=" + encodeURI(valor) + cAux;

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	itemAutoCompAant = null;

	var ajax = openAjax();
	ajax.open("POST", "/ajax/EditAutoComplete.jsp" + cParam, true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=iso-8859-1"
	);
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

// var timeOutVerificaMensagem = null;

function atualizarParametrosDicas() {
	var res = "idAba=mdi";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	cParam =
		cParam + "?params=" + document.getElementById("exibeDicasLidasCB").checked;

	var ajax = openAjax();
	ajax.open("POST", "/ajax/AtualizaParamsDicas.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
				console.log('Erro na função atualizarParametrosDicas');
				//invalidaSessao();
			}
			ajax = null;
		}
	};

	ajax.send(res);
}

function verificaMensagem(isOnLoad) {
	// if (timeOutVerificaMensagem != null) {
	// clearTimeout(timeOutVerificaMensagem);
	// }

	if (document.getElementById("pnMensagemAviso").style.display != "none") {
		return;
	}

	var res = "idAba=mdi";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}
	cParam =
		cParam +
		"?params=" +
		document.getElementById("exibeDicasAux").checked +
		";m;" +
		isOnLoad;

	var ajax = openAjax();
	ajax.open("POST", "/ajax/VerificaMensagem.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
				// timeOutVerificaMensagem = setTimeout("verificaMensagem(1)", timeout);
			} else {
				// if (contador == 1) {
				// timeOutVerificaMensagem = setTimeout("verificaMensagem(2)", timeout);
				// } else {
				// erro ajax
				console.log('Erro na função verificaMensagem');
				//invalidaSessao(); 
				// }
			}
			ajax = null;
		}
	};

	ajax.send(res);
}

function invalidaSessao() {

	document.getElementById("edValidaSessaoSair").value = "0";
	window.parent.document.getElementById("pnFormInicial").innerHTML =

		"<div style=' font-family: Arial, sans-serif; background-color: #f4f4f4; display: flex;justify-content: center;align-items: center;height: 100vh;margin: 0;'>"
		+ "<div style='text-align: center;    background-color: #fff;    padding: 40px;    border-radius: 8px;    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);'>"
		+ "<h1 style='font-size: 28px;margin-bottom: 40px;'>Não foi possível conectar</h1>"
		+ "<ul style='text-align: left; margin-left: -20px;'>"
		+ "<li style='margin-bottom: 10px;'>O Strato não conseguiu estabelecer uma conexão com o servidor</li>"
		+ "<li style='margin-bottom: 10px;'>O Strato pode estar temporariamente indisponível</li>"
		+ "<li style='margin-bottom: 10px;'>Será necessário logar no sistema novamente.</li>"
		+ "<li style='margin-bottom: 10px;'>Se o problema persistir, consulte o administrador do sistema.</li>"
		+ "</ul>"
		+ "<br> <p style='font-size: 12px; font-weight: 600; color:rgb(151, 151, 151); margin-bottom: -1rem;'>Strato10 - Powered by Esquemátika Informática</p>"
		+ "</div>"
		+ "</div>";

}

function selecionaMenuMensagem() {
	var res = "chave=selecionaMenuMensagem";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}
function selecionaMenuPowerBI() {
	var res = "chave=selecionaMenuPowerBI";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function selecionaMenuDadosUsuario() {
	var res = "chave=selecionaMenuDadosUsuario";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}
function selecionaMenuSaldoBanco() {
	var res = "chave=selecionaMenuSaldoBanco";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function selecionaMenuAssinaturaDigital() {
	var res = "chave=selecionaMenuAssinaturaDigital";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function selecionaAtualizarVersao() {
	var res = "chave=selecionaAtualizarVersao";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function selecionaMostrarSobreVersao() {
	var res = "chave=selecionaMostrarSobreVersao";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function selecionaMostrarSobre() {
	var res = "chave=selecionaMostrarSobre";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function atualizarModulos() {
	var res = "chave=selecionaAtualizarModulos";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function clickHelpDesk() {
	var res = "chave=selecionaHelpDesk";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function clickSuporteRemoto() {
	var res = "chave=selecionaSuporteRemoto";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function clickDiagnosticoMTR() {
	var res = "chave=selecionaDiagnosticoMTR";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function selecionaMenuNotificacao() {
	var res = "chave=selecionaMenuNotificacao";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function selecionaMenuSair() {
	window.parent.close();
}

function selecionaMenu(id) {
	var res = "chave=selecionaMenu&id=" + id;

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	// d 07/11/2013 - Fernando Philippi - AT 72402 - Abrir telas dialog no menu
	verificaPopAjaxDrop();

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				eval(ajax.responseText);
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	console.log(ajax.responseText);
	ajax.send(res);
}

function selecionaMenuFerramenta(id) {
	var res = "chave=selecionaMenuFerramenta&id=" + id;

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
				setTimeout("atualizaMenuClicado()", 3000);
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function atualizaMenuClicado() {
	var res = "";
	var cParam = "";
	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStratoAtualiza.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					document.getElementsByClassName("grid_menu grid-template-columns_menu")[0].innerHTML = resultado;
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function selecionaMenuAgendamentoIntegracao() {
	var res = "chave=selecionaMenuAgendamentoIntegracao";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function selecionaMenuCliente(id) {
	var res = "chave=selecionaMenuCliente&id=" + id;

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function selecionaMenuOculto() {
	var res = "chave=selecionaMenuOculto";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function selecionaMenuMdi() {
	var edTelaMdi = document.getElementById("edTelaMdi").value;
	var edTelaMdiId = document.getElementById("edTelaMdiId").value;

	var res =
		"chave=selecionaMenuMdi&edTelaMdi=" +
		edTelaMdi +
		"&edTelaMdiId=" +
		edTelaMdiId;

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				console.log(ajax.responseText);
				eval(ajax.responseText);
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

var lLoginVerificado = false; // Troca de senha

async function PegaIpUsuario() {
  try {
    let response = await fetch('https://api.ipify.org?format=json');
    let data = await response.json();
    return data.ip;
  } catch (error) {
    console.error('Erro ao obter o IP:', error);
    return "";
  }
}


async function entrarLogin(cTipo, lProcessando) {

  if (lProcessando) {
    startProcessando();
  }

  var usuario = "";
  var senha = "";
  var empresa = "";
  var ip = await PegaIpUsuario();

  if (cTipo == "login") {
    usuario = document.getElementById("edUsuario").value;
    senha = document.getElementById("edSenha").value;
  } else if (cTipo == "loginEsqueciSenha") {
    usuario = document.getElementById("edUsuario").value;
  }

  senha = encodeURI(senha);
  var res = "tipo=" + cTipo + "&usuario=" + usuario + "&senha=" + senha + "&ip=" + ip;

  if (lLoginVerificado) {
    res += "&loginVerificado=1";
  } else {
    res += "&loginVerificado=0";
  }

  var cParam = getParameter("idAcesso");
  if (cParam != null && cParam != "") {
    cParam = "?idAcesso=" + cParam + "&urlFixa=" + encodeURI(window.location.href).replaceAll("/", "+");
  } else {
    cParam = "?urlFixa=" + encodeURI(window.location.href).replaceAll("/", "+");
  }

  var ajax = openAjax();
  ajax.open("POST", "/ajax/LoginStratoAjax.jsp" + cParam, true);
  ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  ajax.onreadystatechange = function() {
    if (ajax.readyState == 4) {
      if (ajax.status == 200) {
        var resultado = ajax.responseText;
        if (resultado != "") {
          if (lProcessando) {
            stopProcessando();
          }
          eval(resultado);
        }
      } else {
        if (lProcessando) {
          stopProcessando();
        }
      }
      ajax = null;
    }
  };
  ajax.send(res);
}


function selecionaNavegador(nome, versao, mobile, android, ios) {
	var res =
		"tipo=loginSelecionaNavegador&nome=" +
		nome +
		"&versao=" +
		versao +
		"&mobile=" +
		mobile +
		"&android=" +
		android +
		"&ios=" +
		ios;

	if (
		FlashDetect != null &&
		FlashDetect != "undefined" &&
		FlashDetect.installed
	) {
		res += "&lFlash=true&nFlashVersao=" + FlashDetect.major;
	} else {
		res += "&lFlash=false&nFlashVersao=0";
	}

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/LoginStratoAjax.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function pesquisaMenuAjax(text) {
	if (text == null) {
		text = "";
	}

	var res = "chave=pesquisaMenu&text=" + encodeURIComponent(text);

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=ISO-8859-1"
	);
	// ajax.setRequestHeader("Content-Type",
	// "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function marcaMensagemLida(cod) {
	var res = "chave=marcaMensagemLida&cod=" + cod;

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function limpaAjax() {
	if (timeOutVerificaNovoAtt != null) {
		clearTimeout(timeOutVerificaNovoAtt);
		timeOutVerificaNovoAtt = null;
	}

	if (timeOutVerificaPop != null) {
		clearTimeout(timeOutVerificaPop);
		timeOutVerificaPop = null;
	}

	if (timeOutVerificaWin != null) {
		clearTimeout(timeOutVerificaWin);
		timeOutVerificaWin = null;
	}

	//	if (timeOutVerificaMensagem != null) {
	//		clearTimeout(timeOutVerificaMensagem);
	//		timeOutVerificaMensagem = null;
	//	}

	if (timeOutTempoAcesso != null) {
		clearTimeout(timeOutTempoAcesso);
		timeOutTempoAcesso = null;
	}

	if (timeOutManutencao != null) {
		clearTimeout(timeOutManutencao);
		timeOutManutencao = null;
	}

	for (var i = 0; i < aTimeOutAgendador.length; i++) {
		if (aTimeOutAgendador[i][1] != null) {
			clearTimeout(aTimeOutAgendador[i][1]);
		}
		aTimeOutAgendador[i][1] = null;
		break;
	}
}

function autoCompleteGridWeb(
	cMostrarStatus,
	idGrid,
	valueInput,
	idColuna,
	nLinha
) {
	var cParametros =
		"idGrid=" +
		idGrid +
		"&valorCompInput=" +
		encodeURIComponent(valueInput) +
		"&idColuna=" +
		idColuna +
		"&linha=" +
		nLinha;
	acaoWindow("AutoCompleteGrid", "", cMostrarStatus, cParametros);
}

function SelectCalendarControl(cId, aDate) {
	var dates = "";
	var cVirgula = "";

	for (var i = 0; i < aDate.length; i++) {
		var nDate = aDate[i].getTime();

		dates += cVirgula + nDate;

		cVirgula = ",";
	}

	var cParametros = "idCalendarControl=" + cId + "&adate=" + dates;

	acaoWindow("SelectCalendarControl", "", "1", cParametros);
}

function SelectCalendarControlWeek(cId, nSemana, nMes, nAno, lCtrl) {
	var cParametros =
		"idCalendarControl=" +
		cId +
		"&cSemana=" +
		nSemana +
		"&cMes=" +
		nMes +
		"&cAno=" +
		nAno +
		"&ctrl=" +
		lCtrl;

	acaoWindow("SelectCalendarControlWeek", "", "1", cParametros);
}

function downloadGantt(cId, cType, nHeight, nWidth) {
	var cParametros =
		"idGantt=" +
		cId +
		"&type=" +
		cType +
		"&height=" +
		nHeight +
		"&width=" +
		nWidth;
	acaoWindow("DownloadGantt", "", "1", cParametros);
}

function blurWeb(cMostrarStatus, comp, idComp) {
	// Não chamar o onBlur quando a divAutoComplete estiver aberta.
	// Ocorre problema pois chama o onBlur sem o valor estar preenchido no campo
	// de código.
	var divAutoComplete = document.getElementById("divAutoComplete");
	if (
		divAutoComplete != null &&
		divAutoComplete.style.visibility == "visible"
	) {
		var retorno = true;

		var objLinhaAtual = null;

		if (comp.uid != undefined) {
			objLinhaAtual = document.getElementById(comp.uid);
		} else {
			return;
			var linhaAtual = divAutoComplete.firstChild.firstChild.firstChild;

			if (linhaAtual != null) {
				objLinhaAtual =
					linhaAtual.firstChild.firstChild.firstChild.firstChild.firstChild
						.firstChild;
			}
		}

		if (objLinhaAtual != null) {
			var valor = objLinhaAtual.getAttribute("objValor");
			if (comp.value.toUpperCase() == valor.toUpperCase()) {
				retorno = false;
			}
		}

		if (retorno) {
			return;
		}
	}

	var cParametros =
		"idComp=" + idComp + "&valorComp=" + encodeURIComponent(comp.value);

	if (comp.tabela != null || comp.tabela != undefined) {
		cParametros +=
			"&tabela=" +
			comp.tabela +
			"&coluna=" +
			comp.coluna +
			"&chavetabela=" +
			comp.chavetabela;
	}

	acaoWindow("OnBlur", "", cMostrarStatus, cParametros);
}

function focusWeb(cMostrarStatus, comp, idComp) {
	var cParametros = "idComp=" + idComp;
	acaoWindow("OnFocus", "", cMostrarStatus, cParametros);
}

function buttonClickWeb(cMostrarStatus, comp, idComp) {
	var cParametros = "idComp=" + idComp + "&valorChk=" + comp.checked;
	acaoWindow("ButtonClickCheckBox", "", "1", cParametros);
}

function buttonClickRadioWeb(cMostrarStatus, comp, idComp) {
	var cParametros =
		"idComp=" + idComp + "&valorItem=" + encodeURIComponent(comp.value);
	acaoWindow("ButtonClickRadio", "", cMostrarStatus, cParametros);
}

function selecionaRelatorio(valor) {
	var cParametros = "valorItem=" + valor;
	if(valor == 6){
		var el = document.getElementById('pgToolBarRelatorio');
		var divFilho = document.createElement('div');
		var divFilho1 = document.createElement('div');
		var divFilho2 = document.createElement('div');
		
		divFilho.id = 'subMenuCsv';
		divFilho.className = 'SUB_MENU_CSV';
		
		divFilho1.innerText = 'Alternativo';
		divFilho1.className = 'SUB_MENU_CSV_BOTAO'
		divFilho1.onclick = (function() {
				var cParametros2 = "valorItem=" + "7";
			acaoWindow("SelecionaRelatorio", "", "0", cParametros2);
			var el = document.getElementById('subMenuCsv');
			el.remove();
			
		})
		
		divFilho2.innerText = 'Padrão';
		divFilho2.className = 'SUB_MENU_CSV_BOTAO'
		divFilho2.onclick = (function() {
			acaoWindow("SelecionaRelatorio", "", "0", cParametros);
			var el = document.getElementById('subMenuCsv');
			el.remove();
		})
		
		divFilho.appendChild(divFilho2);
		divFilho.appendChild(divFilho1);
		el.appendChild(divFilho);
		
		
		
	}else{
		acaoWindow("SelecionaRelatorio", "", "0", cParametros);
	}
}

function selecionaCSVAlternativo(){
	console.log('caiu');
	acaoWindow("SelecionaRelatorio", "", "0", 7);
	
	var el = document.getElementById('subMenuCsv');
	el.style.display = 'none';
}

var scrollPosAtual = 0;

function getScrollPos(idComp) {
	return document.getElementById(idComp).scrollTop;
}

function atualizarPosicaoScroll(idComp) {
	document.getElementById(idComp).scroll(0, scrollPosAtual);
}

function buttonClickListBoxWeb(cMostrarStatus, comp, idComp) {
	scrollPosAtual = getScrollPos(comp.id);
	var cValores = "";
	var cVirgula = "";

	// .length
	var childs = comp.childNodes;
	for (var i = 0; i < childs.length; i++) {
		if (childs[i].selected) {
			cValores += cVirgula + childs[i].value;
			cVirgula = ",";
		}
	}

	var cParametros =
		"idComp=" +
		idComp +
		"&valorItem=" +
		encodeURIComponent(comp.value) +
		"&valores=" +
		encodeURIComponent(cValores);
	acaoWindow("ButtonClickListBox", "", cMostrarStatus, cParametros);
}

function dbClickStatus(status) {
	var cParametros = "status=" + status;
	acaoWindow("DbClickStatusDocumento", "", "1", cParametros);
}

function acaoExluirFotoImovel(cIdImagem) {
	var cParametros = "cIdImagem=" + cIdImagem;
	acaoWindow("BotaoExluirFoto", "", "1", cParametros);
}

function acaoEditarLegendaImagem(cIdImagem, legenda) {
	var cParametros = "cIdImagem=" + cIdImagem + "&legenda=" + legenda;
	acaoWindow("BotaoEditarLegendaImagem", "", "1", cParametros);
}

function ajaxAutoCompleteResponse(params) {
	idAba = document.getElementById("edIdAba").value;

	var res = "id=ajaxAutoCompleteResponse&idAba=" + idAba + "&exp=" + params;

	var ajax = openAjax();
	ajax.open("POST", "/ajax/AcaoWindow.jsp", true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=ISO-8859-1"
	);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					console.log(resultado);
				}
			}
		}
	};
	ajax.send(res);
}

function chamaGridDropDownOrcamento() {
	idAba = document.getElementById("edIdAba").value;

	var res = "id=chamaDropDownGridOrcamento&idAba=" + idAba;

	var ajax = openAjax();
	ajax.open("POST", "/ajax/AcaoWindow.jsp", true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=ISO-8859-1"
	);
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			}
		}
	};
	ajax.send(res);
}

function acaoDownloadImagensGantt(imageData) {

	imageData = imageData.split(",")[1];

	var dataChuncks = [];

	if (imageData.length < 150000) {
		dataChuncks[0] = imageData;
	} else {

		while (imageData.length > 150000) {
			dataChuncks[dataChuncks.length] = imageData.substring(0, 150000);
			imageData = imageData.substring(150000);
		}

		dataChuncks[dataChuncks.length] = imageData;
	}

	var uniqueIdentifier = Math.floor(Math.random() * 1000000000);

	dataChuncks.forEach((data, i) => {
		requestDownloadImagensGantt(uniqueIdentifier, dataChuncks.length, i, data);
	});
}

function requestDownloadImagensGantt(uniqueIdentifier, totalChunks, currChunk, imgData) {

	idAba = document.getElementById("edIdAba").value;

	var res = "id=DownloadImagensGantt&idAba=" + idAba + "&uniqueIdentifier=" + uniqueIdentifier + "&totalChunks=" + totalChunks + "&currChunk=" + currChunk + "&imgData=" + imgData;

	var ajax = openAjax();
	ajax.open("POST", "/ajax/AcaoWindow.jsp", true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=ISO-8859-1"
	);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					console.log(resultado);
				}
			}
		}
	};
	ajax.send(res);
}

var listaAcaoWindowGrid = new Array();
var listaAcaoWindowGridRemover = new Array();

function acaoWindowGrid(id, idAba, cMostrarStatus, cParametros) {
	return acaoWindowGrid(id, idAba, cMostrarStatus, cParametros);
}

var disableGridUpdate = false;

function acaoWindowGrid(id, idAba, cMostrarStatus, cParametros, evento) {
	var lForcaExecucao =
		cParametros.match("ListViewMouseButtonDown_dropdown") != null;

	if (lForcaExecucao) {
		cParametros = cParametros.replace(
			"ListViewMouseButtonDown_dropdown",
			"ListViewMouseButtonDown"
		);
	} else {
		lForcaExecucao = id.match("gridEditavel") != null;
	}

	var idAux = id;

	if (evento != undefined || evento != null) {
		idAux += evento;
	}

	var comp = document.getElementById(id);
	if (
		comp != null &&
		(comp.getAttribute("type") == "image" ||
			comp.getAttribute("type") == "IMAGE") &&
		(comp.getAttribute("className") == "DESABILITA_OBJETO" ||
			comp.getAttribute("class") == "DESABILITA_OBJETO")
	) {
		return false;
	}

	if (listaAcaoWindowGrid.indexOf(idAux) == -1 || lForcaExecucao) {
		if (!lForcaExecucao) {
			listaAcaoWindowGrid.push(idAux);
		}

		startPopAjax();

		if (idAba == null || idAba == "") {
			idAba = document.getElementById("edIdAba").value;
		}

		if (cMostrarStatus == "1" && !disableGridUpdate) {
			startProcessando();

			ncountprogress = 0;
			updateBackgroundProgressBarStatus(false);
		}

		var cParams = "";
		if (cParametros != null && cParametros != "") {
			cParams = cParametros;
		}

		var res = "id=" + id + "&idAba=" + idAba + "&" + cParams;

		var compViewState = document.getElementById("javax.faces.ViewState");
		if (compViewState != null) {
			var viewState = compViewState.value;
			if (viewState != null && viewState != "") {
				res += "&viewState=" + viewState;
			}
		}

		var cParam = getParameter("idAcesso");
		if (cParam != null && cParam != "") {
			cParam = "?idAcesso=" + cParam;
		} else {
			cParam = "";
		}

		var ajax = openAjax();
		ajax.open("POST", "/ajax/AcaoWindow.jsp" + cParam, true);
		ajax.setRequestHeader(
			"Content-Type",
			"application/x-www-form-urlencoded; charset=ISO-8859-1"
		);
		ajax.onreadystatechange = function() {
			if (ajax.readyState == 4) {
				if (ajax.status == 200) {
					var resultado = ajax.responseText;
					if (resultado != "") {
						eval(resultado);
						stopPopAjax();
						if (cMostrarStatus == "1") {
							stopProcessando();
						}
					}
				} else {
					stopPopAjax();
					if (cMostrarStatus == "1") {
						stopProcessando();
					}
				}

				// if (!lForcaExecucao) {
				// listaAcaoWindowGridRemover.push(idAux);
				// }

				ajax = null;
			}

			if (!lForcaExecucao) {
				listaAcaoWindowGridRemover.push(idAux);
			}
		};
		ajax.send(res);

		return false;
	} else {
		return false;
	}
}

function removeItemListaAcaoWindow() {
	if (listaAcaoWindowGridRemover.length > 0) {
		for (var i = 0; i < listaAcaoWindowGridRemover.length; i++) {
			var id = listaAcaoWindowGridRemover[i];
			var nPos = listaAcaoWindowGrid.indexOf(id);
			if (nPos != -1) {
				listaAcaoWindowGrid.splice(nPos, 1);
				listaAcaoWindowGridRemover.splice(i, 1);
			}
		}
	}

	if (listaAcaoWindowRemover.length > 0) {
		for (var i = 0; i < listaAcaoWindowRemover.length; i++) {
			var id = listaAcaoWindowRemover[i];
			var nPos = listaAcaoWindow.indexOf(id);
			if (nPos != -1) {
				listaAcaoWindow.splice(nPos, 1);
				listaAcaoWindowRemover.splice(i, 1);
			}
		}
	}
}

function acaoWindow(id, idAba, cMostrarStatus, cParametros) {
	return acaoWindow(id, idAba, cMostrarStatus, cParametros, false);
}

var listaAcaoWindow = new Array();
var listaAcaoWindowRemover = new Array();
setInterval(function() {
	removeItemListaAcaoWindow();
}, 500);

function acaoWindow(id, idAba, cMostrarStatus, cParametros, sincronizado) {
	var comp = document.getElementById(id);
	if (
		comp != null &&
		(comp.getAttribute("type") == "image" ||
			comp.getAttribute("type") == "IMAGE") &&
		(comp.getAttribute("className") == "DESABILITA_OBJETO" ||
			comp.getAttribute("class") == "DESABILITA_OBJETO")
	) {
		return false;
	}

	if (listaAcaoWindow.indexOf(id) == -1) {
		var timeOut = null;

		if (sincronizado) {
			listaAcaoWindow.push(id);
		}

		startPopAjax();

		if (idAba == null || idAba == "") {
			idAba = document.getElementById("edIdAba").value;
		}

		if (cMostrarStatus == "1") {
			startProcessando();

			ncountprogress = 0;
			updateBackgroundProgressBarStatus(false);
		}

		var cParams = "";
		if (cParametros != null && cParametros != "") {
			cParams = cParametros;
		}

		var res = "id=" + id + "&idAba=" + idAba + "&" + cParams;
		var compViewState = document.getElementById("javax.faces.ViewState");
		if (compViewState != null) {
			var viewState = compViewState.value;
			if (viewState != null && viewState != "") {
				res += "&viewState=" + viewState;
			}
		}

		var cParam = getParameter("idAcesso");
		if (cParam != null && cParam != "") {
			cParam = "?idAcesso=" + cParam;
		} else {
			cParam = "";
		}

		var ajax = openAjax();
		ajax.open("POST", "/ajax/AcaoWindow.jsp" + cParam, true);
		ajax.setRequestHeader(
			"Content-Type",
			"application/x-www-form-urlencoded; charset=ISO-8859-1"
		);
		ajax.onreadystatechange = function() {
			if (ajax.readyState == 4) {
				if (ajax.status == 200) {
					var resultado = ajax.responseText;
					if (resultado != "") {
						eval(resultado);
						stopPopAjax();
						if (cMostrarStatus == "1") {
							stopProcessando();
						}
					}
				} else {
					stopPopAjax();
					if (cMostrarStatus == "1") {
						stopProcessando();
					}
				}

				if (sincronizado) {
					listaAcaoWindowRemover.push(id);
				}

				ajax = null;
			}
		};

		ajax.send(res);

		return false;
	} else {
		console.log("Ja executando: " + id);
		return false;
	}
}

var timeOutAtivaAtualizacao = null;
var lContinuaAtivaAtualizacao = false;

function ativaAtualizacao() {
	lContinuaAtivaAtualizacao = true;

	startPopAjax();

	var idAba = document.getElementById("edIdAba").value;

	var res = "id=AtivaAtualizacao&idAba=" + idAba;

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/AcaoWindow.jsp" + cParam, true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=iso-8859-1"
	);
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
					stopPopAjax();
				}
				if (lContinuaAtivaAtualizacao) {
					timeOutAtivaAtualizacao = setTimeout("ativaAtualizacao()", 1000);
				}
			} else {
				stopPopAjax();
				if (lContinuaAtivaAtualizacao) {
					timeOutAtivaAtualizacao = setTimeout("ativaAtualizacao()", 1000);
				}
			}
			ajax = null;
		}
	};
	ajax.send(res);

	return false;
}

function tempoAcesso() {
	var idAba = document.getElementById("edIdAba").value;
	var res = "idAba=" + idAba;

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/AcaoAcesso.jsp" + cParam, true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=iso-8859-1"
	);
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
				ativaTempoAcesso(true);
			} else {
				ativaTempoAcesso(true);
			}
			ajax = null;
		}
	};
	ajax.send(res);

	return false;
}

var timeOutTempoAcesso = null;

function ativaTempoAcesso(lAcessa) {
	if (timeOutTempoAcesso == null || lAcessa) {
		timeOutTempoAcesso = setTimeout("tempoAcesso()", 5000);
	}
}

function salvarGoogleMaps(latitude, longitude, zoom, tipo, univ1_cod) {
	var res =
		"latitude=" +
		latitude +
		"&longitude=" +
		longitude +
		"&zoom=" +
		zoom +
		"&tipo=" +
		tipo +
		"&univ1_cod=" +
		univ1_cod;

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/AcaoGoogleMaps.jsp" + cParam, true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=iso-8859-1"
	);
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
				ativaTempoAcesso(true);
			} else {
				ativaTempoAcesso(true);
			}
			ajax = null;
		}
	};
	ajax.send(res);

	return false;
}

var aTimeOutAgendador = new Array();
var qtdAgendador = -1;

function addAgendador(cId, cAcao, nTempo) {
	qtdAgendador++;

	var nAux = qtdAgendador;

	for (var i = 0; i < aTimeOutAgendador.length; i++) {
		if (aTimeOutAgendador[i][0] == cId) {
			removeAgendador(cId);
			nAux = i;
			break;
		}
	}

	aTimeOutAgendador[nAux] = new Array();
	aTimeOutAgendador[nAux][0] = cId;
	aTimeOutAgendador[nAux][1] = setTimeout(
		"executaAgendador('" + cId + "', '" + cAcao + "', " + nTempo + ")",
		nTempo
	);
}

function executaAgendador(cId, cAcao, nTempo) {
	acaoWindow(cAcao, "", "0", "");

	for (var i = 0; i < aTimeOutAgendador.length; i++) {
		if (aTimeOutAgendador[i][0] == cId) {
			aTimeOutAgendador[i][1] = setTimeout(
				"executaAgendador('" + cId + "', '" + cAcao + "', " + nTempo + ")",
				nTempo
			);
			break;
		}
	}
}

function removeAgendador(cId) {
	for (var i = 0; i < aTimeOutAgendador.length; i++) {
		if (aTimeOutAgendador[i][0] == cId) {
			if (aTimeOutAgendador[i][1] != null) {
				clearTimeout(aTimeOutAgendador[i][1]);
			}
			aTimeOutAgendador[i][1] = null;
			break;
		}
	}
}

function salvarResizeMenu(width) {
	var res = "width=" + width;

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuResize.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

function validaPosicaoElementoCheque(
	banc1_cod,
	coch1_pad,
	insere,
	posicaoComponentes
) {
	var res =
		"banc1_cod=" +
		banc1_cod +
		"&coch1_pad=" +
		coch1_pad +
		"&insere=" +
		insere +
		"&posicaoComponentes=" +
		posicaoComponentes;

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var result = "";

	var ajax = openAjax();
	ajax.open("POST", "/ajax/AcaoCheque.jsp" + cParam, false);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=iso-8859-1"
	);
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					result = resultado;
				}
			}
			ajax = null;
		}
	};
	ajax.send(res);

	return result;
}
/**
 * @param layout
 *            pode ser BOLETO ou CONCESSIONARIA:<br> -> BOLETO Quando linha
 *            digitável iniciar diferente de 8 é Boleto<br> -> CONCESSIONARIA
 *            Quando linha digitável iniciar com 8 é Concessionária<br>
 *            <br>
 * @param linhaDigitavel
 *            é o valor que usuário está digitando no edit
 */
function alteraLayoutBoleto(elem) {
	if (elem.value.charAt(0) == "8") {
		// Quando a linha digitável for Concessionária e os dois primeiros
		// dígitos continuarem iguais
		if (elem.value.substring(0, 2) == elem.valorAnterior.substring(0, 2)) {
			return false;
		}
	} else {
		// Quando a linha digitável for Boleto o os três primeiros digitos
		// ficarem iguais
		if (elem.value.substring(0, 3) == elem.valorAnterior.substring(0, 3)) {
			return false;
		}
	}

	var layout = "BOLETO";
	if (elem.value.charAt(0) == "8") {
		layout = "CONCESSIONARIA";
	}

	idAba = document.getElementById("edIdAba").value;
	var res =
		"id=alteraLayoutBoleto&idAba=" +
		idAba +
		"&layout=" +
		layout +
		"&linhaDigitavel=" +
		elem.value;

	var ajax = openAjax();
	ajax.open("POST", "/ajax/AcaoWindow.jsp", true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=ISO-8859-1"
	);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			}
			ajax = null;
		}
	};
	ajax.send(res);
	// }
}

function atualizarDicas(id) {
	var res = "chave=selecionaAtualizarDicas&id=" + id;

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

var downloadingVersao = false;

function baixarVersaoCliente(versao) {
	var estilo = document.getElementById("spanDownload").style;

	if (downloadingVersao) {
		alert("Download em andamento!");
	} else {
		var msg =
			"Deseja prosseguir com o download do arquivo do sistema (" +
			versao +
			")? \n\n Caso sim, uma mensagem notificar\u00E1 quando o download terminar.";

		if (confirm(msg)) {
			downloadingVersao = true;
			setDownloadVersao();
			var ajax = openAjax();
			ajax.open("POST", "/ajax/BaixarVersaoCliente.jsp", true);
			ajax.setRequestHeader(
				"Content-Type",
				"application/x-www-form-urlencoded"
			);
			ajax.onreadystatechange = function() {
				if (ajax.readyState == 4) {
					if (ajax.status == 200) {
						var resultado = ajax.responseText;
						if (resultado != "") {
							eval(resultado);
						}
					} else {
						// erro ajax
					}
					ajax = null;
				}
			};
			ajax.send(null);
		}
	}
}

var timeOutDownloadVersao = null;

function setDownloadVersao() {
	if (timeOutDownloadVersao != null) {
		clearTimeout(timeOutDownloadVersao);
		timeOutDownloadVersao = null;
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/ProgressoDownload.jsp", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(null);

	timeOutDownloadVersao = setTimeout("setDownloadVersao()", 1000);
}

function clearDownloadVersao() {
	if (timeOutDownloadVersao != null) {
		clearTimeout(timeOutDownloadVersao);
		timeOutDownloadVersao = null;
	}
}

function manutencaoStrato() {
	var res = "chave=manutencaoStrato";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}

var timeOutManutencao = null;

function mensagemManutencao() {
	setManutencao();

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MsgManutencao.jsp", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(null);
}

function setManutencao() {
	if (timeOutManutencao != null) {
		clearTimeout(timeOutManutencao);
		timeOutManutencao = null;
	}

	timeOutManutencao = setTimeout("mensagemManutencao()", 1000);
}

function clearManutencao() {
	if (timeOutManutencao != null) {
		clearTimeout(timeOutManutencao);
		timeOutManutencao = null;
	}
}

function reloadManuStrato() {
	idAba = document.getElementById("edIdAba").value;

	var res = "id=reloadManuStrato&idAba=" + idAba;

	var ajax = openAjax();
	ajax.open("POST", "/ajax/AcaoWindow.jsp", true);
	ajax.setRequestHeader(
		"Content-Type",
		"application/x-www-form-urlencoded; charset=ISO-8859-1"
	);
	// ajax.setRequestHeader("Content-length", res.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			}
		}
	};
	ajax.send(res);
}

var trocandoDeBase = false;

// Rotina que gerencia a troca de bases a partir da seleção do usuário na ComboBox
// Chama rotinas que alteram os valores da global e gerenciam visualmente o processo

function trocarEmpresaBase(cemp1Cod) {
	if (trocandoDeBase == false) {
		// Bloqueia novas chamadas
		trocandoDeBase = true;

		if (setaEmpresaSelecionada(cemp1Cod)) {
			cemp1CodSelecionado = cemp1Cod;

			var imagem = document.getElementById("imgTrocaEmpresa");

			// Altera imagem para indicar execução do processo
			imagem.src = "/layout/imagens/reload.png";
			//		document.getElementById('lbDescEmpresa').innerHTML = `Empresa: ${cemp1NomFan}`;

			// Adiciona a classe de rotação e força o elemento a ser recalculado
			imagem.className = "rotate";
			imagem.offsetWidth;

			// Disparo ajax para chegar no JAVA
			var ajax = openAjax();
			ajax.open("POST", `/ajax/TrocarBase.jsp?cemp1Cod=${cemp1Cod}`, true);
			ajax.setRequestHeader(
				"Content-Type",
				"application/x-www-form-urlencoded; charset=ISO-8859-1"
			);
			ajax.onreadystatechange = function() {
				if (ajax.readyState == 4) {
					if (ajax.status == 200) {
						var resultado = ajax.responseText;
						if (resultado != "") {
							eval(resultado);
						}
					}
				}
			};
			ajax.send(null);
		} else {
			alert("Esta j\u00E1 \u00E9 a base selecionada. Processo interrompido.");
		}
		trocandoDeBase = false;
	} else {
		alert(
			"Já existe um processo em andamento! \n\nPor favor, aguarde a conclusão do mesmo e tente novamente."
		);
	}
}

var timeOutMsgPrioritaria = null;

function verificaMsgPrioritaria() {
	setMsgPrioritaria();

	// Disparo ajax para chegar no JAVA
	var ajax = openAjax();
	ajax.open("POST", "/ajax/VerificaMsgPrioritaria.jsp", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado.length != 0) {
					eval(resultado);
				}
			} else {
				// erro ajax
				console.log('Erro na função verificaMsgPrioritaria');
				//invalidaSessao();
			}
			ajax = null;
		}
	}

	ajax.send(null);
}

function setMsgPrioritaria() {
	if (timeOutMsgPrioritaria != null) {
		clearTimeout(timeOutMsgPrioritaria);
		timeOutMsgPrioritaria = null;
	}

	timeOutMsgPrioritaria = setTimeout("verificaMsgPrioritaria()", 10000);
}

function defaultAjaxCall(destinyPage) {
	// Disparo ajax para chegar no JAVA
	var ajax = openAjax();
	ajax.open("POST", `/ajax/${destinyPage}.jsp`, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
				console.log('Erro na função defaultAjaxCall');
				//invalidaSessao();
			}
			ajax = null;
		}
	};

	ajax.send(null);
}

function enviaErroRelato(sql, nomeRelatorio, empresa, user) {
	//var idAba = document.getElementById('auxAba').value;
	var idAba = null;
	var ajax = openAjax();

	ajax.open(
		"POST",
		`/ajax/EnviaErroRelato.jsp?sql=${sql}&nomeRelatorio=${nomeRelatorio}&empresa=${empresa}&idAba=${iAba}&user=${user}`,
		true
	);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				console.log('Erro na função enviaErroRelato');
				//invalidaSessao();
			}
			ajax = null;
		}
	};

	ajax.send(null);
}

function selecionaAlterarSenha() {
	var res = "chave=selecionaAlterarSenha";

	var cParam = getParameter("idAcesso");
	if (cParam != null && cParam != "") {
		cParam = "?idAcesso=" + cParam;
	} else {
		cParam = "";
	}

	var ajax = openAjax();
	ajax.open("POST", "/ajax/MenuStrato.jsp" + cParam, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				// erro ajax
			}
			ajax = null;
		}
	};
	ajax.send(res);
}


// Atualiza um atendimento em tempo real
function AtualizaAtendimento(base, item) {
	var ajax = openAjax();

	ajax.open("POST", `/ajax/AtualizaAtendimento.jsp?base=${base}&item=${item}`, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				console.log('Erro na função AtualizaAtendimento');
				//invalidaSessao();	
			}
			ajax = null;
		}
	};

	ajax.send(null);
}

// cria uma chamada do GetQRCode do WhatsApp e atribui no botão de conectar
function ConectarWhatsApp(cDataBase, instanceId, what1_cod) {
	var ajax = openAjax();

	ajax.open("POST", `/ajax/ConectarWhatsApp.jsp?cDataBase=${cDataBase}&instanceId=${instanceId}&what1_cod=${what1_cod}`, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				console.log('Erro na função ConectarWhatsApp');
				//invalidaSessao();
			}
			ajax = null;
		}
	};

	ajax.send(null);
}

function DesconectarWhatsApp(cDataBase, instanceId, what1_cod) {
	startProcessando();
	ajustaProcessando('150px', '50px');
	var ajax = openAjax();

	ajax.open("POST", `/ajax/DesconectarWhatsApp.jsp?cDataBase=${cDataBase}&instanceId=${instanceId}&what1_cod=${what1_cod}`, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				console.log('Erro na função DesconectarWhatsApp');
				//invalidaSessao();
			}
			ajax = null;
		}
	};

	ajax.send(null);
}

function DesativarWhatsApp(cDataBase, instanceId, what1_cod) {
	startProcessando();
	ajustaProcessando('150px', '50px');
	var ajax = openAjax();

	ajax.open("POST", `/ajax/DesativarWhatsApp.jsp?cDataBase=${cDataBase}&instanceId=${instanceId}&what1_cod=${what1_cod}`, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				console.log('Erro na função DesativarWhatsApp');
				//invalidaSessao();
			}
			ajax = null;
		}
	};

	ajax.send(null);
}

function AtivarWhatsApp(cDataBase, instanceId, what1_cod) {
	startProcessando();
	ajustaProcessando('150px', '50px');
	var ajax = openAjax();

	ajax.open("POST", `/ajax/AtivarWhatsApp.jsp?cDataBase=${cDataBase}&instanceId=${instanceId}&what1_cod=${what1_cod}`, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				console.log('Erro na função AtivarWhatsApp');
				//invalidaSessao();
			}
			ajax = null;
		}
	};

	ajax.send(null);
}

//Exclui uma instância
function ExcluirWhatsApp(cDataBase, instanceId, what1_cod) {
	startProcessando();
	ajustaProcessando('150px', '50px');
	var ajax = openAjax();

	ajax.open("POST", `/ajax/ExcluirWhatsApp.jsp?cDataBase=${cDataBase}&instanceId=${instanceId}&what1_cod=${what1_cod}`, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				console.log('Erro na função ExcluirWhatsApp');
				//invalidaSessao();
			}
			ajax = null;
		}
	};

	ajax.send(null);
}

//Atualiza o status de uma instância
function AtualizarWhatsApp(cDataBase, what1_cod) {
	var ajax = openAjax();

	ajax.open("POST", `/ajax/AtualizarWhatsApp.jsp?cDataBase=${cDataBase}&what1_cod=${what1_cod}`, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				console.log('Erro na função AtualizarWhatsApp');
				//invalidaSessao();;
			}
			ajax = null;
		}
	};
	ajax.send(null);
}

//Gravar instância Whats
function ListaInstancia() {
	var ajax = openAjax();

	ajax.open("POST", `/ajax/ListaInstancia.jsp`, true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			} else {
				console.log('Erro na função ListaInstancia');
				//invalidaSessao();
			}
			ajax = null;
		}
	};

	ajax.send(null);
}

var nContagemItens = 0;
var nTipoEstilo;
function addContainersTable(id, altura, estilo) {
	nContagemItens = 0;
	nTipoEstilo = estilo;

	var estiloMain;

	if (nTipoEstilo == 0) {
		estiloMain = 'width: 99%; height: ' + altura + 'px; border-radius: 5px; background-color: rgb(221 221 221); margin-top: 5px; margin-bottom: 5px;';
	} else if (nTipoEstilo == 1) {
		estiloMain = 'width: 99%; height: ' + altura + 'px; border-radius: 5px; margin-top: 5px; margin-left: 5px; margin-bottom: 5px; box-shadow: 0 0 10px rgba(102, 102, 102, 0.2);';
	}

	var main = document.getElementById(id);
	main.style = estiloMain;

	var headerContainer = document.createElement('div');
	headerContainer.id = 'headerContainer';
	headerContainer.style = 'display: flex; width: 100%;';

	var contentContainer = document.createElement('div');
	contentContainer.id = 'contentContainer';
	contentContainer.style = 'display: flex; width: 100%;'

	main.appendChild(headerContainer);
	main.appendChild(contentContainer);
}

function addColumnTable(nome, texto, comprimento, altura, esconde) {

	var header = document.getElementById('headerContainer');
	var content = document.getElementById('contentContainer');
	var display = 'flex';

	var estiloColumn;

	if (esconde) {
		display = 'none';
	}

	if (nTipoEstilo == 0) {
		estiloColumn = 'width: ' + comprimento + '%; height: 18px; display: ' + display + '; justify-content: center; align-items: center; font-family: ARIAL; font-size: 10; font-weight: bold;';
	} else if (nTipoEstilo == 1) {
		estiloColumn = 'width: ' + comprimento + '%; height: 30px; display: ' + display + '; justify-content: center;';
		estiloColumn += 'align-items: center; font-family: Arial, sans-serif; font-size: 15; border: 1px solid #ccc; border-radius: 5px;';
	}

	var column = document.createElement('div');
	column.style = estiloColumn;
	column.id = 'COLUNA_' + nome;
	column.innerHTML = texto;
	header.appendChild(column);

	var columnContent = document.createElement('div');
	columnContent.style = 'width: ' + comprimento + '%; height: ' + altura + 'px; display: block;';
	columnContent.id = nome;
	content.appendChild(columnContent);
}

//Itens 0-Texto, 1-Input, 2-Botao, 3-CheckBox
function addItemContainer(nomeColuna, idItem, texto, tipoItem) {
	nContagemItens++;
	var estiloItem;

	var color = '#b6b6b6';

	if (nContagemItens <= 2) {
		color = '#efefef';
	} else if (nContagemItens >= 4) {
		nContagemItens = 0;
	}

	var item;

	if (nTipoEstilo == 0) {
		item = document.createElement('div');
		estiloItem = 'width: 100%; height: 18px; display: flex; background-color: ' + color + '; font-family: ARIAL; font-size: 10; font-weight: bold; display: flex; align-items: center; padding-left: 5px;';
	} else if (nTipoEstilo == 1) {

		if (tipoItem == 0) {
			item = document.createElement('div');
		} else if (tipoItem == 1) {
			item = document.createElement('input');
			item.setAttribute('type', 'text');
		} else if (tipoItem == 2) {
			item = document.createElement('button');
			item.addEventListener('click', (event) => { event.preventDefault(); });
		} else if (tipoItem == 3) {
			item = document.createElement('input');
			item.setAttribute('type', 'checkbox');
		}

		estiloItem = 'width: 100%; height: 30px; display: flex; background-color: #ffff; font-family: Arial, sans-serif; font-size: 15; font-weight: bold; display: flex; align-items: center; padding-left: 5px;';
	}

	var column = document.getElementById(nomeColuna);
	item.id = idItem;
	item.style = estiloItem;
	item.innerHTML = texto;

	column.appendChild(item);
}

function addItemContainerColors(nomeColuna, idItem, texto, tipoItem, color) {
	var estiloItem;

	var item;

	if (nTipoEstilo == 0) {
		item = document.createElement('div');
		estiloItem = 'width: 100%; height: 18px; display: flex; background-color: ' + color + '; font-family: ARIAL; font-size: 10; font-weight: bold; display: flex; align-items: center; padding-left: 5px;';
	} else if (nTipoEstilo == 1) {

		if (tipoItem == 0) {
			item = document.createElement('div');
		} else if (tipoItem == 1) {
			item = document.createElement('input');
			item.setAttribute('type', 'text');
		} else if (tipoItem == 2) {
			item = document.createElement('button');
			item.addEventListener('click', (event) => { event.preventDefault(); });
		} else if (tipoItem == 3) {
			item = document.createElement('input');
			item.setAttribute('type', 'checkbox');
		}

		estiloItem = 'width: 100%; height: 30px; display: flex; background-color: #ffff; font-family: Arial, sans-serif; font-size: 15; font-weight: bold; display: flex; align-items: center; padding-left: 5px;';
	}

	var column = document.getElementById(nomeColuna);
	item.id = idItem;
	item.style = estiloItem;
	item.innerHTML = texto;

	column.appendChild(item);
}

function addSeparator(texto) {
	nContagemItens++;
	nContagemItens++;

	var color = '#b6b6b6';

	if (nContagemItens <= 2) {
		color = '#efefef';
	} else if (nContagemItens >= 4) {
		nContagemItens = 0;
	}

	var itens = document.getElementById('itens');
	var separador = document.createElement('div');
	separador.style = 'width: 100%; height: 18px; background-color: ' + color + '; font-family: ARIAL; font-size: 10; font-weight: bold; display: flex; justify-content: end; align-items: center;';
	var parag = document.createElement('p');
	parag.style = 'position: relative;left: 100px;'
	parag.innerHTML = texto;
	separador.appendChild(parag);

	var valores = document.getElementById('valores');
	var valor = document.createElement('div');
	valor.style = 'width: calc(100% + 5px); height: 18px; background-color: ' + color + '; font-family: ARIAL; font-size: 10; font-weight: bold; display: flex; justify-content: center; align-items: center;';

	itens.appendChild(separador);
	valores.appendChild(valor);
}

function atribuirListaAoInput(lista) {
	ListarDados();
	let input = document.getElementById("mDadosInstancia");
	let valores = "";

	for (let i = 0; i < lista.length; i++) {
		valores += lista[i].codigo + "," + lista[i].descricao + "," + lista[i].ativo;

		if (i !== lista.length - 1) {
			valores += ";";
		}
	}

	input.value = valores;

}

var lista = [];

function ListarDados() {
	lista = [];
	let tabela = document.getElementById("conteudo");

	let linhas = tabela.getElementsByTagName("tr")

	for (let i = 0; i < linhas.length; i++) {
		let cod = linhas[i].querySelector("#cod").innerHTML;
		let desc = linhas[i].querySelector("input[name='descricao']").value;
		let ativo = linhas[i].querySelector("input[type='checkbox']").checked;
		let objeto = { codigo: cod, descricao: desc, ativo: ativo };
		lista.push(objeto);
	}
}

var tableGrid = '';
var validaBordaResult = false;
function imprimirTitulo(...titulo) {
	const gridBody = document.getElementById(tableGrid);
	var countTd = 1;
	var count = 0;
	const tr = document.createElement('tr');
	tr.style.fontWeight = 'bold';
	tr.style.fontSize = '9pt';
	tr.style.fontFamily = 'ARIAL';
	tr.style.width = '100%';
	tr.style.backgroundColor = '#adaaaa';

	titulo.slice().forEach((info) => {
		const td = document.createElement('td');
		td.style.paddingRight = '70px';
		td.textContent = info;
		td.style.borderTop = '1px solid black';
		if (count == 0) {
			if (validaBordaResult) {
				td.style.borderLeft = '1px solid black';
			}
		}
		if (titulo.length == countTd) {
			if (validaBordaResult) {
				td.style.borderRight = '1px solid black';
			}
			td.style.paddingRight = '0px';
		}
		tr.appendChild(td);
		count++;
		countTd++;
	});

	gridBody.appendChild(tr);
}

function imprimirSubtitulo(...subtitulo) {
	const gridBody = document.getElementById(tableGrid);
	var count = 0;
	var countTd = 1;
	const tr = document.createElement('tr');
	tr.style.fontWeight = 'bold';
	tr.style.fontFamily = 'ARIAL';
	tr.style.fontSize = '8pt';

	tr.style.backgroundColor = '#dbdada';

	subtitulo.slice().forEach((info) => {
		const td = document.createElement('td');

		if (subtitulo.length >= 5) {
			td.style.width = '250px';
			td.style.paddingRight = '100px';
		}

		if (subtitulo.length == 3) {
			td.style.width = '500px';
		} else {
			td.style.paddingRight = '30px';
		}
		if (count == 0) {
			td.style.width = '300px';
			if (validaBordaResult) {
				td.style.borderLeft = '1px solid black';
			}
			td.style.paddingRight = '100px';
		}
		if (subtitulo.length == countTd) {
			if (validaBordaResult) {
				td.style.borderRight = '1px solid black';
			}
			td.style.paddingRight = '0px';
		}
		if (info.includes(' @!1')) {
			info = info.replace(' @!1', '');
			td.style.textAlign = 'right';
			td.style.paddingRight = '0px';
		}

		td.textContent = info;
		tr.appendChild(td);
		countTd++;
		count++;
	});

	gridBody.appendChild(tr);
}
function imprimirSubtituloPrincipal(...subtitulo) {
	const gridBody = document.getElementById(tableGrid);
	var count = 0;
	var countTd = 1;
	const tr = document.createElement('tr');
	tr.style.fontFamily = 'ARIAL';
	tr.style.fontSize = '9pt';
	tr.style.backgroundColor = '#c9c9c9';
	subtitulo.slice().forEach((info) => {
		const td = document.createElement('td');
		if (subtitulo.length >= 5) {
			td.style.width = '250px';
			td.style.paddingRight = '100px';
		}

		if (subtitulo.length == 3) {
			td.style.width = '500px';
		} else {
			td.style.paddingRight = '30px';
		}
		if (count == 0) {
			td.style.width = '300px';
			if (validaBordaResult) {
				td.style.borderLeft = '1px solid black';
			}
			td.style.paddingRight = '100px';
		}
		td.style.borderTop = '1px solid black';
		if (subtitulo.length == countTd) {
			if (validaBordaResult) {
				td.style.borderRight = '1px solid black';
			}
			td.style.paddingRight = '0px';
		}


		td.textContent = info;
		tr.appendChild(td);
		countTd++;
		count++;
	});

	gridBody.appendChild(tr);
}

function imprimirResultado(...resultado) {
	const gridBody = document.getElementById(tableGrid);
	var count = 0;
	var countTd = 1;
	const tr = document.createElement('tr');

	tr.style.fontFamily = 'ARIAL';
	tr.style.fontSize = '8pt';
	tr.style.backgroundColor = '#f2f2f2';

	resultado.slice().forEach((info) => {
		const td = document.createElement('td');

		if (count == 0) {
			if (validaBordaResult) {
				td.style.borderLeft = '1px solid black';
			}
			td.style.paddingRight = '0px';
			td.style.width = '400px';

		}
		if (resultado.length == countTd) {
			if (validaBordaResult) {
				td.style.borderRight = '1px solid black';
			}
			td.style.paddingRight = '0px';
		}
		if (count > 0 && info.includes('R$') && !info.includes('align-left')) {
			td.style.textAlign = 'right';
		}

		info = info.replaceAll('align-left', '');

		const parag = document.createElement('p');

		parag.className = "custom-table-el";

		parag.innerText = info;

		td.appendChild(parag);
		tr.appendChild(td);
		countTd++;
		count++;
	});

	gridBody.appendChild(tr);
}

function imprimirBorda() {
	const gridBody = document.getElementById(tableGrid);
	const tr = document.createElement('div');
	tr.style.backgroundColor = 'black';
	tr.style.height = '1px';

	gridBody.appendChild(tr);
}

function criarPopup() {
	let telaCheiaAtivada = false;

	const overlay = document.createElement('div');
	overlay.id = 'overlay';
	overlay.style.display = 'none';
	overlay.style.position = 'fixed';
	overlay.style.top = '0';
	overlay.style.left = '0';
	overlay.style.width = '100%';
	overlay.style.height = '100%';
	overlay.style.backgroundColor = 'rgba(0, 0, 0, 0.5)';
	overlay.style.justifyContent = 'center';
	overlay.style.alignItems = 'center';
	overlay.style.textAlign = 'center';

	const popup = document.createElement('div');
	popup.id = 'popup';
	popup.style.backgroundColor = 'white';
	popup.style.padding = '20px';
	popup.style.borderRadius = '10px';

	const mensagem = document.createElement('p');
	mensagem.textContent = 'Deseja executar em tela cheia?';

	const botaoSim = document.createElement('button');
	botaoSim.textContent = 'Sim';
	botaoSim.addEventListener('click', ativarTelaCheia);

	const botaoNao = document.createElement('button');
	botaoNao.textContent = 'Não';
	botaoNao.addEventListener('click', fecharPopup);

	popup.appendChild(mensagem);
	popup.appendChild(botaoSim);
	popup.appendChild(botaoNao);

	overlay.appendChild(popup);
	document.body.appendChild(overlay);

	function togglePopup() {
		overlay.style.display = 'flex';
	}

	function ativarTelaCheia() {
		var elemento = document.documentElement;

		if (!telaCheiaAtivada) {
			if (elemento.requestFullscreen) {
				elemento.requestFullscreen();
			} else if (elemento.mozRequestFullScreen) {
				elemento.mozRequestFullScreen();
			} else if (elemento.webkitRequestFullscreen) {
				elemento.webkitRequestFullscreen();
			} else if (elemento.msRequestFullscreen) {
				elemento.msRequestFullscreen();
			}
			telaCheiaAtivada = true;
		}
		fecharPopup();
	}

	function fecharPopup() {
		overlay.style.display = 'none';
	}

	document.getElementById('toggleFullscreen').addEventListener('click', togglePopup);
}
function ativarTelaCheia() {
	var elemento = document.documentElement; // Obtém o elemento HTML

	if (document.fullscreenElement) {
		// Se o documento já estiver em full-screen, sai do modo full-screen
		if (document.exitFullscreen) {
			document.exitFullscreen();
		} else if (document.mozCancelFullScreen) { // Firefox
			document.mozCancelFullScreen();
		} else if (document.webkitExitFullscreen) { // Chrome, Safari e Opera
			document.webkitExitFullscreen();
		} else if (document.msExitFullscreen) { // Internet Explorer
			document.msExitFullscreen();
		}
	} else {
		// Se o documento não estiver em full-screen, entra no modo full-screen
		if (elemento.requestFullscreen) {
			elemento.requestFullscreen();
		} else if (elemento.mozRequestFullScreen) { // Firefox
			elemento.mozRequestFullScreen();
		} else if (elemento.webkitRequestFullscreen) { // Chrome, Safari e Opera
			elemento.webkitRequestFullscreen();
		} else if (elemento.msRequestFullscreen) { // Internet Explorer
			elemento.msRequestFullscreen();
		}
	}
}

function ImprimeMultiplasImagensGantt(tabelaLateralTemp) {

	var zip = new JSZip();

	RetornaImagemCompletaPlanejamento(tabelaLateralTemp).then(dataMain => {

		var imageToSlices = window.imageToSlices;

		var imgInput = new Image();
		imgInput.src = dataMain;

		imgInput.onload = function() {

			var width = this.width;
			var height = this.height;
			var sliceWidth = height * 1.4142;

			if (sliceWidth < 1080) {
				sliceWidth = 1080;
			}

			var slices = Math.ceil(width / sliceWidth);
			var lineYArray = [];
			var lineXArray = Array.from({ length: slices - 1 }, (_, i) => {
				return (i + 1) * sliceWidth;
			});

			imageToSlices(dataMain, lineYArray, lineXArray, {
				saveToDataUrl: true,
				clip: true
			}, function(dataUrlList) {

				if (dataUrlList != null) {

					var seqAux = 0;

					var listaPromisesImagens = [];

					dataUrlList.forEach(data => {

						var img = new Image();
						img.src = data.dataURI;

						var pAux = new Promise((resolve, reject) => {

							img.onload = function() {

								try {

									seqAux++;

									var uriAux = data.dataURI;

									zip.file(`gantt-img${seqAux}.jpeg`, uriAux.split('base64,')[1], { base64: true });

									resolve();
								} catch (error) {
									reject(error);
								}
							}
						})

						listaPromisesImagens.push(pAux);
					});

					Promise.all(listaPromisesImagens).then(() => {
						// Generate the zip file and download it
						zip.generateAsync({ type: "blob" })
							.then(function(content) {
								saveAs(content, "imagens-gantt.zip");
							});
					}).catch(err => console.log(err));

				}
			});
		}

	})

}

function ImprimeImagemCompletaGantt(tabelaLateralTemp) {

	RetornaImagemCompletaPlanejamento(tabelaLateralTemp).then((mergedImage) => {
		var link = document.createElement('a');
		link.download = 'imagem-completa.jpeg';
		link.href = mergedImage;

		link.click();
	}).catch(e => console.log(e));

}

function RetornaImagemCompletaPlanejamento(tabelaLateralTemp) {

	var canvas = document.createElement('canvas');
	var context = canvas.getContext('2d');

	var imgGantt = new Image();

	var p = new Promise((resolve, reject) => {

		try {

			RetornaImagemGantt().then(data1 => {

				imgGantt.src = data1;

				imgGantt.onload = () => {

					RetornaImagemNiveis(tabelaLateralTemp).then(data2 => {

						var imgLateral = new Image();
						imgLateral.src = data2;

						imgLateral.onload = () => {

							canvas.width = (imgLateral.width + imgGantt.width) - 150;
							canvas.height = Math.max(imgLateral.height, imgGantt.height);

							context.drawImage(imgLateral, 0, 0);
							context.drawImage(imgGantt, imgLateral.width, 0);

							var mergedImage = canvas.toDataURL('image/jpeg');
							resolve(mergedImage);
						}
					})

				}

			})

		} catch (error) {
			reject(error);
		}

	})

	return p;
}

function RetornaImagemNiveis(tabelaLateralTemp) {

	//Div Lateral
	var divLateralTemp = document.createElement('div');
	divLateralTemp.id = 'div-temporaria-impressao';
	divLateralTemp.style = 'display: flex; height: 1px; width: 1px; position: absolute; overflow: scroll; top: 0px; left: 0px; z-index: -100;';
	divLateralTemp.innerHTML = tabelaLateralTemp;

	document.body.appendChild(divLateralTemp);

	var p = new Promise((resolve, reject) => {

		try {
			domtoimage.toPng(divLateralTemp.children.item(0)).
				then(function(dataUrl) {
					document.body.removeChild(divLateralTemp);
					resolve(dataUrl);
				});
		} catch (error) {
			reject(error);
		}

	})

	return p
}

function RetornaImagemGantt() {

	//Gantt
	var elementoImprimir = document.getElementById('embedded-Ganttgchartbody');

	var headerGrafico = document.getElementById('embedded-Ganttgcharthead');
	var divVazia = document.getElementById('divVaziaGanttPlanejamento');
	var htmlOriginal = elementoImprimir.innerHTML;

	elementoImprimir.innerHTML = headerGrafico.innerHTML + elementoImprimir.innerHTML;

	headerGrafico.style.display = 'none'; divVazia.style.display = 'none';
	AdicionaLegendasImpressaoGantt();

	var p = new Promise((resolve, reject) => {

		try {
			domtoimage.toPng(elementoImprimir).
				then(function(dataUrl) {
					elementoImprimir.innerHTML = htmlOriginal;
					headerGrafico.style.display = '';
					divVazia.style.display = '';

					resolve(dataUrl);
				});
		} catch (error) {
			reject(error);
		}

	})

	return p
}

function AdicionaLegendasImpressaoGantt() {

	var elementosGantt = document.querySelectorAll("[id^='embedded-Gantttaskbar']");
	elementosGantt.forEach(e => {

		var elTitulo = e.parentElement.getElementsByClassName('gTtTitle');
		if (elTitulo.length > 0) {

			var elAppend = e.parentElement.getElementsByClassName('ggroupblackendpointleft');
			if (elAppend.length > 0) {
				elAppend[0].outerHTML = elAppend[0].outerHTML + "<div class='legenda-adicional-impressao' style='float: right; width: 0; margin-top: -10px; margin-right: -10px; text-wrap: nowrap;'>" + elTitulo[0].innerHTML + "</div>";
			} else {

				elAppend = e.parentElement.getElementsByClassName('gtaskbluecomplete');
				if (elAppend.length > 0) {
					elAppend[0].outerHTML = elAppend[0].outerHTML + "<div class='legenda-adicional-impressao' style='float: right; width: 0; margin-top: -2px; margin-right: -10px; text-wrap: nowrap;'>" + elTitulo[0].innerHTML + "</div>";
				}

			}

		}

	});
}


function drawInitialChart(chartDataTitles) {
	var data = new google.visualization.DataTable();
	data.addColumn('string', 'Content');

	var cards = Object.keys(chartDataTitles);
	cards.forEach(card => data.addColumn('number', chartDataTitles[card]));

	var options = {
		title: 'Selecione um card',
		hAxis: { title: '' },
		vAxis: { title: '' },
		seriesType: 'line'
	};

	var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
	chart.draw(data, options);
}


function updateChart(cardId, cardData, cardTitle) {
	var data = new google.visualization.DataTable();
	data.addColumn('string', '');
	data.addColumn('number', cardTitle);

	cardData.forEach(function(content) {
		if (content.conteudo !== 'Atendimentos' && content.conteudo !== 'Cotações') {
			data.addRow([content.conteudo, Number(content.valor)]);
		}
	});

	var options = {
		title: 'Valores dos(as)  ' + cardTitle,
		hAxis: { title: '' },
		vAxis: { title: '' },
		seriesType: 'line'
	};

	var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
	chart.draw(data, options);
}

var divsFixas = ['card1', 'card2', 'card3'];
function criarDivsCards(json) {
	var dataObj = typeof json === 'string' ? JSON.parse(json) : json;
	divsFixas = ['card1', 'card2', 'card3'];
	var divIndex = 0;
	var titulosAtuais = {};
	var chartData = {
		card1: [],
		card2: [],
		card3: []
	};
	var chartDataTitles = {};

	Object.keys(dataObj).forEach(function(key) {
		var obj = dataObj[key];
		var divFixa = document.getElementById(divsFixas[divIndex]);

		if (!divFixa) {
			console.error('Div fixa não encontrada!');
			return;
		}

		divFixa.innerHTML = '';

		var divHeader = document.createElement('div');
		divHeader.className = 'header';

		var divTitulo = document.createElement('div');
		divTitulo.className = 'titulo';
		if (divFixa.id == 'card1') {
			divTitulo.style.color = '#3366cc';
		} else if (divFixa.id == 'card2') {
			divTitulo.style.color = '#DC3912';
		} else if (divFixa.id == 'card3') {
			divTitulo.style.color = '#FF9900';
		}
		divTitulo.style.margin = '10 0 0 10';
		divTitulo.innerHTML = '<h2>' + obj.titulo + '</h2>';
		divHeader.appendChild(divTitulo);
		divFixa.onclick = (function(index) {
			return function() {
				trocarConteudo(index, selectTrocar.value, dataObj, divsFixas, titulosAtuais);
				var novoTitulo = dataObj[selectTrocar.value].titulo;
				var valoresTransformados = transformarValores(dataObj[selectTrocar.value].listaConteudo);
				updateChart(divsFixas[index], valoresTransformados, novoTitulo);
			};
		})(divIndex);

		var selectTrocar = document.createElement('select');
		selectTrocar.className = 'STR_EDIT_COMBOBOX';
		selectTrocar.style.marginRight = '10px';
		selectTrocar.style.borderRadius = '5px';
		selectTrocar.onchange = (function(index) {
			return function() {
				trocarConteudo(index, selectTrocar.value, dataObj, divsFixas, titulosAtuais);
				var novoTitulo = dataObj[selectTrocar.value].titulo;
				var valoresTransformados = transformarValores(dataObj[selectTrocar.value].listaConteudo);
				updateChart(divsFixas[index], valoresTransformados, novoTitulo);
			};
		})(divIndex);
		
		Object.keys(dataObj).forEach(function(key) {
			var option = document.createElement('option');
			option.value = key;
			option.text = dataObj[key].titulo;
			if (dataObj[key].titulo === obj.titulo) {
				option.selected = true;
			}
			selectTrocar.appendChild(option);
		});

		divHeader.appendChild(selectTrocar);
		divFixa.appendChild(divHeader);

		obj.listaConteudo.forEach(function(conteudo) {
			var divConteudo = document.createElement('div');
			divConteudo.className = 'conteudo';
			divConteudo.style.flexWrap = 'wrap';
			divConteudo.style.justifyContent = 'space-between';
			divConteudo.style.display = 'flex';
			if (conteudo.conteudo.includes('valor') || conteudo.conteudo.includes('saldo')) {
				var valorFormatado = parseFloat(conteudo.valor).toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
				if (valorFormatado.startsWith(',')) {
					valorFormatado = '0' + valorFormatado;
				}
				divConteudo.innerHTML = '<p>' + conteudo.conteudo + ':</p><p>R$' + valorFormatado + '</p>';
			} else {
				if (conteudo.valor == 'R$,00') {
					conteudo.valor = 'R$0,00'
				}
				divConteudo.innerHTML = '<p>' + conteudo.conteudo + ':</p><p>' + conteudo.valor + '</p>';
			}
			divFixa.appendChild(divConteudo);

			chartData[divFixa.id].push({
				content: conteudo.conteudo,
				value: parseFloat(conteudo.valor.replace("R$", "").replace(/\./g, "").replace(",", "."))
			});
		});

		chartDataTitles[divFixa.id] = obj.titulo;

		titulosAtuais[divsFixas[divIndex]] = obj.titulo;
		divIndex++;
	});

	drawInitialChart('.');
}


function transformarValores(listaConteudo) {
	return listaConteudo.map(item => {
		// Verifique se o item tem um campo 'valor' que é uma string
		if (item.hasOwnProperty('valor') && typeof item.valor === 'string') {
			// Remove "R$"
			let novoValor = item.valor.replace("R$", "");

			// Remove "."
			novoValor = novoValor.replace(/\./g, "");

			// Troca "," por "."
			novoValor = novoValor.replace(",", ".");

			// Retorne um novo objeto com o valor transformado
			return { ...item, valor: novoValor };
		}
		// Se não for uma string, retorne o item original
		return item;
	});
}

function trocarConteudo(cardIndex, selectedKey, data, titulosAtuais) {
	// Remove a classe de destaque de todos os cards
	divsFixas.forEach((cardId, index) => {
		var divFixa = document.getElementById(cardId);
		if (divFixa) {
			divFixa.classList.remove('card-selecionado');
		}
	});

	var divFixa = document.getElementById(divsFixas[cardIndex]);
	if (!divFixa) {
		console.error('Div fixa não encontrada!');
		return;
	}

	// Adiciona a classe de destaque ao card selecionado
	divFixa.classList.add('card-selecionado');

	var novoTitulo = data[selectedKey];

	if (!novoTitulo) {
		console.error('Título selecionado não encontrado!');
		return;
	}

	// Limpa o conteúdo atual, mas mantém o header
	var divHeader = divFixa.querySelector('.header');
	while (divFixa.lastChild && divFixa.lastChild !== divHeader) {
		divFixa.removeChild(divFixa.lastChild);
	}

	// Atualiza o título no header
	var divTitulo = divHeader.querySelector('.titulo');
	divTitulo.innerHTML = '<h2>' + novoTitulo.titulo + '</h2>';

	// Transforma os valores da lista de conteúdos
	var valoresTransformados = transformarValores(novoTitulo.listaConteudo);

	// Itera sobre a lista de conteúdos transformados e adiciona à div fixa
	valoresTransformados.forEach(function(conteudo) {
		var divConteudo = document.createElement('div');
		divConteudo.className = 'conteudo';
		divConteudo.style.flexWrap = 'wrap';
		divConteudo.style.display = 'flex';
		divConteudo.style.justifyContent = 'space-between';
		console.log('Início do bloco de código'); // Log inicial

		if (conteudo.conteudo.toLowerCase().includes('valor') || conteudo.conteudo.toLowerCase().includes('saldo')) {
			console.log('Entrou na condição de valor ou saldo'); // Log da condição

			var valorLimpo = conteudo.valor.replace(/\s/g, '');
			var valorNumerico = parseFloat(valorLimpo);

			if (isNaN(valorNumerico)) {
				valorNumerico = 0;
			}
			var valorFormatado = valorNumerico.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 });

			if (valorFormatado.startsWith(',')) {
				valorFormatado = '0' + valorFormatado;
			}
			divConteudo.innerHTML = '<p>' + conteudo.conteudo + ':</p><p>R$' + valorFormatado + '</p>';
		} else {

			if (conteudo.valor == 'R$,00') {
				conteudo.valor = 'R$ 0,00';
			}
			divConteudo.innerHTML = '<p>' + conteudo.conteudo + ':</p><p>' + conteudo.valor + '</p>';
		}

		divFixa.appendChild(divConteudo);
	});

	// Atualiza o título atual da div
	titulosAtuais[divsFixas[cardIndex]] = novoTitulo.titulo;

	// Atualiza os dados do gráfico do card atual
	updateChart(divsFixas[cardIndex], valoresTransformados, novoTitulo.titulo);
}
function ConfirmaCard(cardId, fromColumnId, toColumnId) {
	var ajax = new XMLHttpRequest();
	ajax.open("POST", "/ajax/ConfirmacaoCard.jsp", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4 && ajax.status == 200) {
			var resultado = ajax.responseText;
			if (resultado != "") {
				eval(resultado);
			}
		}
	};
	var params = "cardId=" + encodeURIComponent(cardId) +
		"&fromColumnId=" + encodeURIComponent(fromColumnId) +
		"&toColumnId=" + encodeURIComponent(toColumnId);
	ajax.send(params);
}
function CardInterativo(VerificacaoUsuario) {
	document.querySelectorAll('.ProcessoRequisicao-column .ProcessoRequisicao-Cards')
		.forEach(function(element) {
			new Sortable(element, {
				group: 'shared',
				animation: 150,
				ghostClass: 'sortable-ghost',
				handle: '.ProcessoRequisicao-card',
				onEnd: function(evt) {
					var cardId = evt.item.id;
					var fromColumnId = evt.from.closest('.ProcessoRequisicao-column').id;
					var toColumnId = evt.to.closest('.ProcessoRequisicao-column').id;
					if (fromColumnId === 'coluna-6' || VerificacaoUsuario == 'Observacao') {
						evt.from.insertBefore(evt.item, evt.from.children[evt.oldIndex]);
						return; 
					}
					ConfirmaCard(cardId, fromColumnId, toColumnId);
					setTimeout(() => {
						acaoWindow('ChamaFuncoesCard', '', '1', null, true);
					}, 100);
				}
			});
		});
}

function expandirConteudo(IdCard) {
	PopupCard(IdCard);
	document.getElementById("popup").style.display = "block";
	document.getElementById("popupOverlay").style.display = "block";
}
function hidePopup() {
        var popup = document.getElementById("popup");
        var popupOverlay = document.getElementById("popupOverlay");

        if (popup) {
            popup.style.display = "none";
        }
        if (popupOverlay) {
            popupOverlay.style.display = "none";
        }
    }
function PopupCard(IdCard) {
	var ajax = new XMLHttpRequest();
	ajax.open("POST", "/ajax/PopupCard.jsp", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4 && ajax.status == 200) {
			var resultado = ajax.responseText;
			if (resultado != "") {
				eval(resultado);
			}
		}
	};
	var params = "id=" + encodeURIComponent(IdCard);
	ajax.send(params);
}
function ConstrutorPopup(jsonPopup) {
	const data = JSON.parse(jsonPopup);

	let htmlContent = '';

	htmlContent += `<h1>${data.titulo}</h1>`;

	data.informacoes.forEach(info => {
		htmlContent += `<div class="info">
	            <h2>${info.subtitulo}</h2>
	            <p>${info.texto}</p>
	        </div>`;
	});

	const popupDiv = document.getElementById('CorpoPopup');

	if (popupDiv) {
		document.getElementById('botoes').innerHTML = `<div class="botao"><span class="popup-close" onclick="hidePopup()">Sair</span></div>`;
		popupDiv.innerHTML = htmlContent;
	} else {
		console.error('Div com id "CorpoPopup" não encontrada.');
	}
}
function filtrarCards() {
	const input = document.getElementById("inputPesquisa").value.toLowerCase();
	const cards = document.getElementsByClassName("ProcessoRequisicao-card");

	for (let i = 0; i < cards.length; i++) {
		const card = cards[i];
		const cardText = card.innerText.toLowerCase();

		if (cardText.includes(input)) {
			card.parentElement.style.display = "";
		} else {
			card.parentElement.style.display = "none";
		}
	}
}

// Adiciona eventos para a pesquisa
document.getElementById("inputPesquisa").addEventListener("keypress", function(event) {
	if (event.key === "Enter") {
		filtrarCards();
	}
});

document.getElementById("botaoPesquisa").addEventListener("click", function() {
	filtrarCards();
});
function pesquisarCards() {
	const termoPesquisa = document.getElementById("inputPesquisa").value.toLowerCase();
	const cards = document.querySelectorAll(".ProcessoRequisicao-card");
	cards.forEach(card => {
		const cardTexto = card.innerText.toLowerCase();
		if (cardTexto.includes(termoPesquisa)) {
			card.parentElement.style.display = "";
		} else {
			card.parentElement.style.display = "none";
		}
	});
}
function iniciaPesquisa() {

	document.getElementById("botaoPesquisa").addEventListener("click", pesquisarCards);

	document.getElementById("inputPesquisa").addEventListener("keyup", function(event) {
		if (event.key === "Enter") {
			pesquisarCards();
		}
	});
}
function ConstrutorPopupInput(cardId) {

	htmlContent = `<textarea id="ObservacaoPopup" class="ObservacaoPopup" placeholder=""></textarea>`;

	const popupDiv = document.getElementById('CorpoPopup');
	document.getElementById('botoes').innerHTML = `<div class="botao"><span class="popup-close" onclick="gravaTexto(` + cardId + `)">Ok</span></div>`;
	if (popupDiv) {
		popupDiv.innerHTML = htmlContent;
	} else {
		console.error('Div com id "CorpoPopup" não encontrada.');
	}
	PopUpInputConteudo(cardId);
}
function expandirConteudoInput(cardId) {
	ConstrutorPopupInput(cardId);
	document.getElementById("popup").style.display = "block";
	document.getElementById("popupOverlay").style.display = "block";
}
function PopUpInputConteudo(cardId) {
	var ajax = new XMLHttpRequest();
	ajax.open("POST", "/ajax/ConteudoInput.jsp", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4 && ajax.status == 200) {
			var resultado = ajax.responseText;
			if (resultado != "") {
				eval(resultado);
			}
		}
	};
	var params = "cardId=" + encodeURIComponent(cardId);
	ajax.send(params);
}

function gravaTexto(cardId) {
	var ajax = new XMLHttpRequest();
	ajax.open("POST", "/ajax/ObservacaoPopup.jsp", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4 && ajax.status == 200) {
			var resultado = ajax.responseText;
			if (resultado != "") {
				eval(resultado);
			}
		}
	};
	var observacao = document.getElementById('ObservacaoPopup').value;
	var params = "cardId=" + encodeURIComponent(cardId) +
		"&observacao=" + encodeURIComponent(observacao);
	ajax.send(params);
	hidePopup();
}

function AnexarArquivo(idCard) {
	var ajax = new XMLHttpRequest();
	ajax.open("POST", "/ajax/AnexarArquivoCard.jsp", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4 && ajax.status == 200) {
			var resultado = ajax.responseText;
			if (resultado != "") {
				eval(resultado);
			}
		}
	};
	var params = "cardId=" + encodeURIComponent(idCard);
	ajax.send(params);
}



function expandirConteudoAnexar(IdCard) {
	AnexarArquivo(IdCard);
	return acaoWindow('BotaoAnexar', '', '1', null, true);
}

function ConteudoInput(ObservacaoSql) {
	var textarea = document.getElementById('ObservacaoPopup');

	textarea.value = ObservacaoSql;
}
function NotificacaoCard(event, cardId) {
    event.preventDefault();

    var link = event.target;
    link.parentNode.removeChild(link);
    ConstrutorNotifica(cardId);
    
    var popup = document.getElementById("popup");
    var popupOverlay = document.getElementById("popupOverlay");
    
    if (popup) {
        popup.style.display = "block";
    }
    
    if (popupOverlay) {
        popupOverlay.style.display = "block";
    }
}
function ConstrutorNotifica(cardId) {
	var ajax = new XMLHttpRequest();
	ajax.open("POST", "/ajax/NotificaCard.jsp", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4 && ajax.status == 200) {
			var resultado = ajax.responseText;
			if (resultado != "") {
				eval(resultado);
			}
		}
	};
	var params = "cardId=" + encodeURIComponent(cardId);
	ajax.send(params)
}
function ConteudoNotifica(conteudo) {
	htmlContent = `<h1>` + conteudo + `<h1>`;

	const popupDiv = document.getElementById('CorpoPopup');
	popupDiv.innerHTML = htmlContent;

	document.getElementById('botoes').innerHTML = `<div class="botao"><span class="popup-close" onclick="hidePopup()">Sair</span></div>`;
}
function toggleDropdownOpcoes(colunaId) {
	var content = document.getElementById('dropdownOpcoes-' + colunaId);
	content.style.display = content.style.display === 'block' ? 'none' : 'block';
	window.onclick = function(event) {
		if (!event.target.matches('h2')) {
			var dropdowns = document.getElementsByClassName("dropdown-opcoes-content");
			for (var i = 0; i < dropdowns.length; i++) {
				var openDropdown = dropdowns[i];
				if (openDropdown.style.display === "block") {
					openDropdown.style.display = "none";
				}
			}
		}
	}
}
function MudarCorTitulo(cor, coluna) {
	var containerDiv = document.getElementById("coluna-" + coluna);

	if (containerDiv) {
		var myHeading = containerDiv.querySelector("h2");
		if (myHeading) {
			myHeading.style.color = cor;
		}

		var shadowBox = containerDiv.querySelector(".ProcessoRequisicao-titulo");
		if (shadowBox) {
			shadowBox.style.boxShadow = cor + " 0px 3px 0px inset";
		}
	}
	acaoWindow('AtribuiGlobal', '', '1', null, true);
	CorColunasJsp(cor, coluna)
}

function CorColunasJsp(cor, coluna){
	var ajax = new XMLHttpRequest();
		ajax.open("POST", "/ajax/CorColunas.jsp", true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");

		ajax.onreadystatechange = function() {
			if (ajax.readyState == 4 && ajax.status == 200) {
				var resultado = ajax.responseText;
				if (resultado != "") {
					eval(resultado);
				}
			}
		};
		var params = "cor=" + encodeURIComponent(cor) +
				 	 "&coluna=" + encodeURIComponent(coluna);	
		ajax.send(params)
}

function graficoAtendeCliente() {
    // Obter os valores da tabela dinamicamente
    var novas = parseInt(document.getElementById('FixedText18').textContent);
    var emAtendimento = parseInt(document.getElementById('FixedText19').textContent);
    var aguardando = parseInt(document.getElementById('FixedText20').textContent);
    var encerradas = parseInt(document.getElementById('FixedText21').textContent);
    var emAtraso = parseInt(document.getElementById('FixedText22').textContent);

    // Criar a tabela de dados para o gráfico com cores personalizadas
    var data = google.visualization.arrayToDataTable([
        ['Status', 'Quantidade', { role: 'style' }],
        ['Novas', novas, '#4caf50'],               // Cor verde
        ['Em atendimento', emAtendimento, '#ff9800'], // Cor laranja
        ['Aguardando meu retorno', aguardando, '#f44336'], // Cor vermelha
        ['Encerradas', encerradas, '#2196f3'],       // Cor azul
        ['Em atraso', emAtraso, '#9c27b0']           // Cor roxa
    ]);

    // Configurações do gráfico de barras
    var options = {
        'title': 'Status das Solicitacões',
        'width':650,  // Ajusta a largura para 100% do contêiner
        'height': 370,
        'hAxis': {
            title: 'Quantidade',
            minValue: 0
        },
        'vAxis': {
            title: 'Status'
        },
        'legend': { position: 'none' }
    };

    // Instanciar e desenhar o gráfico de barras
    var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
    chart.draw(data, options);
}
function DownloadBoleto(BoletoCod){
	var ajax = new XMLHttpRequest();
			ajax.open("POST", "/ajax/DownloadBoleto.jsp", true);
			ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");

			ajax.onreadystatechange = function() {
				if (ajax.readyState == 4 && ajax.status == 200) {
					var resultado = ajax.responseText;
					if (resultado != "") {
						eval(resultado);
					}
				}
			};
			var params = "Boleto=" + encodeURIComponent(BoletoCod);	
			ajax.send(params)
			
			return acaoWindow('Downlaod', '', '1', null, true);
}

function BaixarArquivo(element) {
    var ajax = new XMLHttpRequest();
    ajax.open("POST", "/ajax/BaixarArquivo.jsp", true);
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");

    ajax.onreadystatechange = function() {
        if (ajax.readyState == 4 && ajax.status == 200) {
            var resultado = ajax.responseText;
            if (resultado != "") {
                eval(resultado);
            }
        }
    };

    const card = element.closest('.card');
    const tituloElement = card.querySelector('h1');
    
    if (!tituloElement) {
        console.error('Título (h1) não encontrado');
        return;
    }

    const titulo = tituloElement.textContent.trim();
    const subpastaElement = card.querySelector('p[id*="Subpasta"]');
    const pastaElement = card.querySelector('p[id*="Pasta"]');

    let params;

    if (subpastaElement && pastaElement) {
        const subpasta = subpastaElement.textContent.split(':')[1].trim();
        const pasta = pastaElement.textContent.split(':')[1].trim();
        
        if (!subpasta || !pasta) {
            console.error('Subpasta ou pasta estão vazios');
            return;
        }

        let path = pasta + "/" + subpasta;
        params = "Arquivo=" + encodeURIComponent(path);
    } else {
        params = "Arquivo=" + encodeURIComponent(titulo);
    }

    ajax.send(params);

    return acaoWindow('Download', '', '1', null, true);
}

function FiltroCardsBoleto() {		 
	document.addEventListener("DOMContentLoaded", function() {
		const radioButtons = document.querySelectorAll('input[name="opcao"]');
		let cards = [];

		const verificarCartoes = setInterval(() => {
			cards = document.querySelectorAll('.card-cobranca');
			if (cards.length > 0) {
				clearInterval(verificarCartoes); 

				function filtrarCartoes() {
					const opcaoSelecionada = document.querySelector('input[name="opcao"]:checked');

					cards.forEach(card => {
						card.style.display = 'block';
					});

					if (opcaoSelecionada) {
						const valorSelecionado = opcaoSelecionada.value;

						cards.forEach(card => {
							if (valorSelecionado === '1') {
								card.style.display = 'block';
							} else if (valorSelecionado === '2') {
								card.style.display = card.querySelector('.status-cobranca.pago') ? 'block' : 'none'; 
							} else if (valorSelecionado === '3') {
								card.style.display = card.querySelector('.nao-pago-custom') ? 'block' : 'none'; 
							}
						});
					} else {
						cards.forEach(card => {
							card.style.display = 'block';
						});
					}
				}

				radioButtons.forEach(radio => {
					radio.addEventListener('change', filtrarCartoes);
				});

				filtrarCartoes(); 
			}
		}, 100);
	});
}
function mostrarImagemBase64(imagemBase64, descricao) {
    const container = document.getElementById('imagemContainer');
    const descricaoDiv = document.getElementById('descricaoContainer');

    container.innerHTML = '';
    descricaoDiv.textContent = descricao;

    if (imagemBase64) {
        const img = document.createElement('img');
        img.src = 'data:image/png;base64,' + imagemBase64;
        img.alt = 'Imagem carregada';
        img.style.maxWidth = '100%';
        img.style.height = 'auto';
        img.style.borderRadius = '5px';

        img.onclick = function() {
            const link = document.createElement('a');
            link.href = img.src;
            link.download = 'imagem_dica.png';
            link.click();
        };

        container.appendChild(img);
        container.style.display = 'block';
    } else {
        container.style.display = 'none';
    }
}


