/************************************************************************************************************************************************
Criador: Gustavo Faria Lopes
Iniciais: GFL
Cidade: Itabirito / MG
Arquivo Atualizado: 03/12/2007
************************************************************************************************************************************************/

//Declaração de variáveis globais
var strTituloGlobalJanelaAviso;
var strCaminhoPadraoArquivosFontesJanelaAviso;
var strCaminhoPadraoArquivosEstilosJanelaAviso;
var strCaminhoPadraoArquivosImagensJanelaAviso;

//Declaração de constates globais
var cstSufixoPixelJanelaAviso = "px";
var cstElementoPaginaTipoBotaoJanelaAviso = "BUTTON";
var cstElementoPaginaTipoTextoJanelaAviso = "TEXT";
var cstElementoPaginaTipoRadioJanelaAviso = "RADIO";
var cstElementoPaginaTipoCheckboxJanelaAviso = "CHECKBOX";
var cstElementoPaginaTipoSelectJanelaAviso = "SELECT-ONE";
var cstElementoPaginaTipoBotaoSubmitJanelaAviso = "SUBMIT";
var cstVariavelTipoUndefinedJanelaAviso = "UNDEFINED";

function apiJanelaAviso(strNomeObjetoAPI) {
	try {
		//Declaração de variáveis
		var objJanelaAviso;
		var objEventoGlobalJanelaAviso;
		var fltAlturaAtualJanelaAviso;
		var fltLarguraAtualJanelaAviso;
		var fltAlturaAtualMaximizarJanelaAviso;
		var fltLarguraAtualMaximizarJanelaAviso;
		var strEstiloVisibilityMinimizarPersonalizadoJanelaAviso;
		var strEstiloVisibilityMaximizarPersonalizadoJanelaAviso;
		
		//Declaração de constates
		var cstModoNormalJanelaAviso = "NORMAL";
		var cstModoMinimizadaJanelaAviso = "MINIMIZADA";
		var cstModoMaximizarJanelaAviso = "MAXIMIZAR";
		
		this.inicializarAPIJanelaAviso = function() {
			//CONFIGURÃÇÕES GERAIS
			/***********************************************************************************************************/
			//Armazena o local onde se encontram os arquivos JavaScript para a utilização da API
			strCaminhoPadraoArquivosFontesJanelaAviso = this.strCaminhoPadraoArquivosFontesJanelaAviso;
			//Armazena o local onde se encontram os arquivos CSS (Estilos) para a utilização da API
			strCaminhoPadraoArquivosEstilosJanelaAviso = this.strCaminhoPadraoArquivosEstilosJanelaAviso;
			//Armazena o local onde se encontram os arquivos Imagens (Fotos, ícones e etc) para a utilização da API
			strCaminhoPadraoArquivosImagensJanelaAviso = this.strCaminhoPadraoArquivosImagensJanelaAviso;
			//Verifica se não foi definido o local onde será criada a Janela Aviso, então usa-se o local padrão
			if(typeof(this.objLocalJanelaAviso) == cstVariavelTipoUndefinedJanelaAviso.toLowerCase() || this.objLocalJanelaAviso == null || this.objLocalJanelaAviso == "") {
				this.objLocalJanelaAviso = document.getElementsByTagName("body")[0];
			}
			//Verifica se não foi definida a largura da Janela de Aviso, então usa-se um valor padrão
			if(typeof(this.fltLarguraJanelaAviso) == cstVariavelTipoUndefinedJanelaAviso.toLowerCase() || this.fltLarguraJanelaAviso == null || this.fltLarguraJanelaAviso.replace(cstSufixoPixelJanelaAviso,"") == "") {
				this.fltLarguraJanelaAviso = "410";
			}		
			//Verifica se não foi definida a altura da Janela de Aviso, então usa-se um valor padrão
			if(typeof(this.fltAlturaJanelaAviso) == cstVariavelTipoUndefinedJanelaAviso.toLowerCase() || this.fltAlturaJanelaAviso == null || this.fltAlturaJanelaAviso.replace(cstSufixoPixelJanelaAviso,"") == "") {
				this.fltAlturaJanelaAviso = "125";
			}
			//Verifica se não foi informado o caminho para o arquivo de estilo da Janela de Aviso, então o nome padrão do mesmo
			if(typeof(this.strNomeArquivoEstiloPadraoJanelaAviso) == cstVariavelTipoUndefinedJanelaAviso.toLowerCase() || this.strNomeArquivoEstiloPadraoJanelaAviso == null || this.strNomeArquivoEstiloPadraoJanelaAviso == "") {
				this.strNomeArquivoEstiloPadraoJanelaAviso = "estiloJanelaAviso.css";
			}
			//Verifica se não foi definido o objeto do formulário utilizado
			if(typeof(this.objFormularioUtilizadoJanelaAviso) == cstVariavelTipoUndefinedJanelaAviso.toLowerCase() || this.objFormularioUtilizadoJanelaAviso == null) {
				this.objFormularioUtilizadoJanelaAviso = "";
			}
			/***********************************************************************************************************/

			//CONFIGURÃÇÕES PERSONALIZADO
			/***********************************************************************************************************/			
			//Verifica se não foi informado o nome do arquivo de imagem para o ícone da Janela Aviso do tipo PERSONALIZADO
			if(typeof(this.strNomeArquivoIconePersonalizadoJanelaAviso) == cstVariavelTipoUndefinedJanelaAviso.toLowerCase() || this.strNomeArquivoIconePersonalizadoJanelaAviso == null || this.strNomeArquivoIconePersonalizadoJanelaAviso == "") {
				this.strNomeArquivoIconePersonalizadoJanelaAviso = "";
			}  
			//Verifica se foi preenchida a variável que define a exibição ou não do botão de minimizar								
			if(typeof(this.blnExibirBotoaMinimizarPersonalizadoJanelaAviso) != cstVariavelTipoUndefinedJanelaAviso.toLowerCase() || this.blnExibirBotoaMinimizarPersonalizadoJanelaAviso != null) {
				if(this.blnExibirBotoaMinimizarPersonalizadoJanelaAviso) {
					strEstiloVisibilityMinimizarPersonalizadoJanelaAviso = "style='visibility: show;'";
				}
				else {
					strEstiloVisibilityMinimizarPersonalizadoJanelaAviso = "style='visibility: hidden;'";
				}
			}
			//Verifica se foi preenchida a variável que define a exibição ou não do botão de maximizar
			if(typeof(this.blnExibirBotoaMaximizarPersonalizadoJanelaAviso) != cstVariavelTipoUndefinedJanelaAviso.toLowerCase() || this.blnExibirBotoaMaximizarPersonalizadoJanelaAviso != null) {
				if(this.blnExibirBotoaMaximizarPersonalizadoJanelaAviso) {
					strEstiloVisibilityMaximizarPersonalizadoJanelaAviso = "style='visibility: show;'";
				}
				else {
					strEstiloVisibilityMaximizarPersonalizadoJanelaAviso = "style='visibility: hidden;'";
				}
			}
			/***********************************************************************************************************/
		}
		
	 	this.montaJanelaAviso = function(strNomeTipoJanelaAviso, strTituloJanelaAviso, strConteudoJanelaAviso, strConfiguracoesExtras) {	
	 		try {
	 			//Chamada da função responsável pela inicialização das configurações definidas para a API
	 			this.inicializarAPIJanelaAviso();

	 			//Armazena o tipo atual da Janela Aviso
	 			var strNomeTipoAtualJanelaAviso = strNomeTipoJanelaAviso.toUpperCase();
	 			
	 			//Armazena de forma global o título da Janela Aviso
	 			strTituloGlobalJanelaAviso = strTituloJanelaAviso;
				
				//Verificação para quando o conteúdo passado for um objeto
				if(typeof(strConteudoJanelaAviso) == "object") {
					var strTipoElementoPagina = strConteudoJanelaAviso.type;
	        		if(strTipoElementoPagina == cstElementoPaginaTipoBotaoJanelaAviso.toLowerCase() || strTipoElementoPagina == cstElementoPaginaTipoTextoJanelaAviso.toLowerCase() || strTipoElementoPagina == cstElementoPaginaTipoRadioJanelaAviso.toLowerCase() || strTipoElementoPagina == cstElementoPaginaTipoCheckboxJanelaAviso.toLowerCase() || strTipoElementoPagina == cstElementoPaginaTipoBotaoSubmitJanelaAviso.toLowerCase()) {
	        			strConteudoJanelaAviso = strConteudoJanelaAviso.value;
	        		}
	        		else if(strTipoElementoPagina == cstElementoPaginaTipoSelectJanelaAviso.toLowerCase()) {
	        			strConteudoJanelaAviso = strConteudoJanelaAviso.options[strConteudoJanelaAviso.selectedIndex].text;
	        		}
	        		else {
	        			strConteudoJanelaAviso = strConteudoJanelaAviso.innerHTML;
	        		}
	 			}
	 			
 				this.strFuncoesAExecutar = strConfiguracoesExtras;
 				
	    		if(!document.getElementById("divJanelaAviso" + strNomeTipoAtualJanelaAviso)) {
	 				objJanelaAviso = document.createElement("div");
					objJanelaAviso.setAttribute("id","divJanelaAviso" + strNomeTipoAtualJanelaAviso);
		  			this.objLocalJanelaAviso.appendChild(objJanelaAviso);
	 			}
	 			else {
	 				objJanelaAviso = document.getElementById("divJanelaAviso" + strNomeTipoAtualJanelaAviso);
	 			}
				objJanelaAviso.style.zIndex = "9999999";
				objJanelaAviso.style.position = "absolute";
				objJanelaAviso.style.display = "block";
				if(document.all) {
					objJanelaAviso.style.filter = "alpha(opacity=100)";
				}
				else {
		   			objJanelaAviso.style.MozOpacity = ((100/100));
		   		}
		   		
		   		//Chamada da função que realiza o include dos estilos para a API
	        	this.includeEstiloJanelaAviso();
				
				objJanelaAviso.innerHTML = "<iframe frameborder='0' id='janelaAvisoIframeSobreposicao' style='width:" + this.fltLarguraJanelaAviso + cstSufixoPixelJanelaAviso + "; height:" + this.fltAlturaJanelaAviso + cstSufixoPixelJanelaAviso + ";'></iframe>" +
											"<table border='0' cellspacing='0' cellpadding='0' id='janelaAviso' class='janelaAvisoTabela' style='width:" + this.fltLarguraJanelaAviso + cstSufixoPixelJanelaAviso + "; height:" + this.fltAlturaJanelaAviso + cstSufixoPixelJanelaAviso + "; z-index: 9999999; position: absolute;'>" +
	 										"	<tr>" +
	   										"		<td colspan='5' id='janelaAvisoCabecalho' class='janelaAvisoCabecalho' modoExibicaoJanelaAviso='normal'>" +
	     									"			<span id='iconeCabecalhoJanelaAviso' class='janelaAvisoCabecalhoIcone' onmousedown=\"iniciarMovimentoElementoJanelaAviso(event,'" + objJanelaAviso.id + "');\" onselectstart='return false;'>" + 
											"			</span>" +
	     									"			<span id='tituloCabecalhoJanelaAviso' class='janelaAvisoCabecalhoTitulo' onmousedown=\"iniciarMovimentoElementoJanelaAviso(event,'" + objJanelaAviso.id + "');\" onselectstart='return false;'>" + 
	     									"				" + strTituloJanelaAviso + "" +
	     									"			</span>" +
	     									"			<span id='botoesCabecalhoJanelaAviso' class='janelaAvisoCabecalhoBotoes' onselectstart='return false;'>" +
											"				<input type='image' name='btnMinimizar' id='btnMinimizar' value='Minimizar' src='" + strCaminhoPadraoArquivosImagensJanelaAviso + "IconeMinimizar.gif' title='Minimizar' tipo='minimizar' onclick='" + strNomeObjetoAPI + ".minimizarJanelaAviso(\"\");' tabindex='1' " + strEstiloVisibilityMinimizarPersonalizadoJanelaAviso + ">" +
											"				<input type='image' name='btnMaximizar' id='btnMaximizar' value='Maximizar' src='" + strCaminhoPadraoArquivosImagensJanelaAviso + "IconeMaximizar.gif' title='Maximizar' tipo='maximizar' onclick='" + strNomeObjetoAPI + ".maximizarJanelaAviso(\"\");' tabindex='2' " + strEstiloVisibilityMaximizarPersonalizadoJanelaAviso + ">" +												
											"				<input type='image' name='btnFechar' value='Fechar' src='" + strCaminhoPadraoArquivosImagensJanelaAviso + "IconeFechar.gif' title='Fechar' onclick='" + strNomeObjetoAPI + ".fecharJanelaAviso(\"\");' tabindex='3'>" +
											"			</span>" +
	   										"		</td>" +
	  										"	</tr>" +
	  										"	<tr id='janelaAvisoCorpo'>" +
	  										"		<td colspan='5' id='janelaAvisoConteudo' class='janelaAvisoConteudo'>" +
	  										"			<div id='janelaAvisoConteudoPersonalizado' class='janelaAvisoConteudoPersonalizado'>" +
	  										"				" + strConteudoJanelaAviso + "" +
	  										"			</div>" +
	  										"		</td>" +
	  										"	</tr>" +
											"</table>";
				this.exibirImagemIconeJanelaAviso(this.strNomeArquivoIconePersonalizadoJanelaAviso, "");
				
				objJanelaAviso.style.width = parseFloat(this.fltLarguraJanelaAviso) + cstSufixoPixelJanelaAviso;
				objJanelaAviso.style.height = parseFloat(this.fltAlturaJanelaAviso) + cstSufixoPixelJanelaAviso;
				
				centralizarJanelaAviso(objJanelaAviso);
				
				return objJanelaAviso;
			}
			catch(strErro) {
			}
		}
		
		this.includeEstiloJanelaAviso = function() {
			try {
				var objEstiloJanelaAviso = document.createElement("link");
				objEstiloJanelaAviso.setAttribute("rel","stylesheet");
				objEstiloJanelaAviso.setAttribute("type","text/css");
		  		objEstiloJanelaAviso.setAttribute("href", strCaminhoPadraoArquivosEstilosJanelaAviso + this.strNomeArquivoEstiloPadraoJanelaAviso);
		  		try {
		  			document.getElementsByTagName("head")[0].appendChild(objEstiloJanelaAviso);
		  		}
		  		catch(strErro) {
		  			try {
		  				document.getElementsByTagName("body")[0].appendChild(objEstiloJanelaAviso);
		  			}
		  			catch(strErro) {
		  			}	
		  		}
			}
			catch(strErro) {
				var strMsgErro = "Ocorreu um erro com a API Janela de Aviso - includeEstiloJanelaAviso. ";
				strMsgErro = strMsgErro + "Erro: " + strErro.description + " ";
				window.status = strMsgErro;
				return true;				
			}			
		}
		
		this.minimizarJanelaAviso = function(strNomeTipoJanelaAviso) {
			try {
				var objJanelaAviso = document.getElementById("divJanelaAviso" + strNomeTipoJanelaAviso);
				var objCabecalhoJanelaAviso = document.getElementById("janelaAvisoCabecalho" + strNomeTipoJanelaAviso);
				var fltAlturaAtualCabecalhoJanelaAviso = parseFloat(objCabecalhoJanelaAviso.offsetHeight);
				var fltLarguraAtualCabecalhoJanelaAviso = parseFloat(objCabecalhoJanelaAviso.offsetWidth);
				var fltLarguraAtualTituloJanelaAviso = parseFloat(document.getElementById("tituloCabecalhoJanelaAviso" + strNomeTipoJanelaAviso).offsetWidth);
				if(objCabecalhoJanelaAviso.getAttribute("modoExibicaoJanelaAviso").toUpperCase() == cstModoNormalJanelaAviso) {
					//Armazena as últimas dimensões da Janela Aviso antes de ser minimizada
					fltAlturaAtualJanelaAviso = parseFloat(objJanelaAviso.offsetHeight);
					fltLarguraAtualJanelaAviso  = parseFloat(objJanelaAviso.offsetWidth);
					
					//Armazena a última largura da área do título da Janela Aviso antes de ser minimizada
					fltUltimaLarguraTituloJanelaAviso = parseFloat(document.getElementById("tituloCabecalhoJanelaAviso" + strNomeTipoJanelaAviso).offsetWidth);
					
					//Armazena a última largura da área do cabeçalho da Janela Aviso antes de ser minimizada
					fltUltimaLarguraCabecalhoJanelaAviso = parseFloat(objCabecalhoJanelaAviso.offsetWidth);
					
					//Esconde o conteúdo
					if(document.getElementById("janelaAvisoCorpo" + strNomeTipoJanelaAviso)) {
						document.getElementById("janelaAvisoCorpo" + strNomeTipoJanelaAviso).style.display = "none";
					}
					if(document.getElementById("janelaAvisoRodape" + strNomeTipoJanelaAviso)) {
						document.getElementById("janelaAvisoRodape" + strNomeTipoJanelaAviso).style.display = "none";
					}
					document.getElementById("iconeCabecalhoJanelaAviso" + strNomeTipoJanelaAviso).style.display = "none";
					document.getElementById("botoesCabecalhoJanelaAviso" + strNomeTipoJanelaAviso).style.display = "none";
					
					//Redimensiona a janela para ter a altura do cabecalho e a largura do título da Janela Aviso
					objJanelaAviso.style.height = fltAlturaAtualCabecalhoJanelaAviso + cstSufixoPixelJanelaAviso;
					objJanelaAviso.style.width = fltLarguraAtualTituloJanelaAviso + cstSufixoPixelJanelaAviso;
					document.getElementById("janelaAviso" + strNomeTipoJanelaAviso).style.height = fltAlturaAtualCabecalhoJanelaAviso + cstSufixoPixelJanelaAviso;
					document.getElementById("janelaAviso" + strNomeTipoJanelaAviso).style.width = fltLarguraAtualTituloJanelaAviso + cstSufixoPixelJanelaAviso;
					document.getElementById("janelaAvisoIframeSobreposicao" + strNomeTipoJanelaAviso).style.height = fltAlturaAtualCabecalhoJanelaAviso + cstSufixoPixelJanelaAviso;
					document.getElementById("janelaAvisoIframeSobreposicao" + strNomeTipoJanelaAviso).style.width = fltLarguraAtualTituloJanelaAviso + cstSufixoPixelJanelaAviso;
					document.getElementById("tituloCabecalhoJanelaAviso" + strNomeTipoJanelaAviso).style.width = "100%";
					
					//Reposiciona a janela ao rodapé da página e à esquerda da janela do navegador
					objJanelaAviso.style.position = "absolute";
					objJanelaAviso.style.left = "0" + cstSufixoPixelJanelaAviso;
					document.getElementById("janelaAviso" + strNomeTipoJanelaAviso).style.left = "0" + cstSufixoPixelJanelaAviso;
					document.getElementById("janelaAvisoIframeSobreposicao" + strNomeTipoJanelaAviso).style.left = "0" + cstSufixoPixelJanelaAviso;
					if (typeof(window.innerHeight) == "number") {
						objJanelaAviso.style.top = window.innerHeight - fltAlturaAtualCabecalhoJanelaAviso;
					}
					else {
						if (document.documentElement && document.documentElement.clientHeight) {
							objJanelaAviso.style.top = document.documentElement.clientHeight - fltAlturaAtualCabecalhoJanelaAviso;
						}
						else {
							if (document.body && document.body.clientHeight) {
								objJanelaAviso.style.top = document.body.clientHeight - fltAlturaAtualCabecalhoJanelaAviso;
							}
						}
					}
					if(document.all) {
						objJanelaAviso.style.top = (parseFloat(objJanelaAviso.style.top.replace(cstSufixoPixelJanelaAviso,"")) + document.body.scrollTop) + cstSufixoPixelJanelaAviso;
					}
					else {
						objJanelaAviso.style.top = (parseFloat(objJanelaAviso.style.top.replace(cstSufixoPixelJanelaAviso,"")) + pageYOffset) + cstSufixoPixelJanelaAviso;
					}
					
					//Propriedades da janela minimizada
					//objJanelaAviso.style.clip = "rect(0px, " + fltLarguraAtualTituloJanelaAviso + cstSufixoPixelJanelaAviso, " + fltAlturaAtualCabecalhoJanelaAviso + cstSufixoPixelJanelaAviso, 0px)";
					document.getElementById("tituloCabecalhoJanelaAviso" + strNomeTipoJanelaAviso).style.cursor = "pointer";
					document.getElementById("tituloCabecalhoJanelaAviso" + strNomeTipoJanelaAviso).onmousedown = null;
					document.getElementById("tituloCabecalhoJanelaAviso" + strNomeTipoJanelaAviso).setAttribute("title", "Clique aqui para voltar ao normal");
					objCabecalhoJanelaAviso.setAttribute("modoExibicaoJanelaAviso", "minimizada");
					document.getElementById("tituloCabecalhoJanelaAviso" + strNomeTipoJanelaAviso).setAttribute("onclick", strNomeObjetoAPI + ".minimizarJanelaAviso('" + strNomeTipoJanelaAviso + "')");
					if(document.all && document.getElementById) {
						document.getElementById("tituloCabecalhoJanelaAviso" + strNomeTipoJanelaAviso)["onclick"] = new Function(strNomeObjetoAPI + ".minimizarJanelaAviso('" + strNomeTipoJanelaAviso + "')");
					}
					adicionarEventoJanelaAviso(window, "scroll", function() { seguirRolagemJanelaAviso(); }, false);
				}
				else {
					//Setando novamente o objeto da API
					apiJanelaAviso.prototype.objAPIJanelaAviso = new apiJanelaAviso(strNomeObjetoAPI);
					
					//Exibe conteúdo
					if(document.getElementById("janelaAvisoCorpo" + strNomeTipoJanelaAviso)) {
						document.getElementById("janelaAvisoCorpo" + strNomeTipoJanelaAviso).style.display = "";
					}
					if(document.getElementById("janelaAvisoRodape" + strNomeTipoJanelaAviso)) {
						document.getElementById("janelaAvisoRodape" + strNomeTipoJanelaAviso).style.display = "";
					}
					document.getElementById("iconeCabecalhoJanelaAviso" + strNomeTipoJanelaAviso).style.display = "block";
					document.getElementById("botoesCabecalhoJanelaAviso" + strNomeTipoJanelaAviso).style.display = "block";
					
					//Redimensiona a janela para que volte a ter os valores iniciais
					objJanelaAviso.style.height = fltAlturaAtualJanelaAviso;
					objJanelaAviso.style.width = fltLarguraAtualJanelaAviso;
					document.getElementById("janelaAviso" + strNomeTipoJanelaAviso).style.height = fltAlturaAtualJanelaAviso;
					document.getElementById("janelaAviso" + strNomeTipoJanelaAviso).style.width = fltLarguraAtualJanelaAviso;
					document.getElementById("janelaAvisoIframeSobreposicao" + strNomeTipoJanelaAviso).style.height = fltAlturaAtualJanelaAviso;
					document.getElementById("janelaAvisoIframeSobreposicao" + strNomeTipoJanelaAviso).style.width = fltLarguraAtualJanelaAviso;
					//Cálculo para a porcentagem da nova largura da área do título
					var fltValorPorcentagemLarguraTituloJanelaAviso = parseFloat( (fltUltimaLarguraTituloJanelaAviso * 100)/fltUltimaLarguraCabecalhoJanelaAviso );
					document.getElementById("tituloCabecalhoJanelaAviso" + strNomeTipoJanelaAviso).style.width = fltValorPorcentagemLarguraTituloJanelaAviso + "%";
					
					//Propriedades da janela
					document.getElementById("tituloCabecalhoJanelaAviso" + strNomeTipoJanelaAviso).style.cursor = "move";
					document.getElementById("tituloCabecalhoJanelaAviso" + strNomeTipoJanelaAviso).setAttribute("title", "");
					objCabecalhoJanelaAviso.setAttribute("modoExibicaoJanelaAviso", "normal");
					removerEventoJanelaAviso(window, "scroll", function() { seguirRolagemJanelaAviso(); }, false);
					document.getElementById("tituloCabecalhoJanelaAviso" + strNomeTipoJanelaAviso).setAttribute("onclick", "");
					if(document.all && document.getElementById) {
						document.getElementById("tituloCabecalhoJanelaAviso" + strNomeTipoJanelaAviso)["onclick"] = null;
					}
					adicionarEventoJanelaAviso(document.getElementById("tituloCabecalhoJanelaAviso" + strNomeTipoJanelaAviso), "mousedown", function(event) { iniciarMovimentoElementoJanelaAviso(event, objJanelaAviso.id) }, false);
					centralizarJanelaAviso(objJanelaAviso);
				}
				
				function seguirRolagemJanelaAviso() {
					if(objJanelaAviso) {
						//Verifica se a Janela Aviso está no modo minimizada para evitar que siga a barra de rolagem quando estive no modo de exibição normal
						if(objCabecalhoJanelaAviso.getAttribute("modoExibicaoJanelaAviso").toUpperCase() == cstModoMinimizadaJanelaAviso) {
							if (typeof(window.innerHeight) == "number") {
								objJanelaAviso.style.top = window.innerHeight - objJanelaAviso.offsetHeight;
							}
							else {
								if (document.documentElement && document.documentElement.clientHeight) {
									objJanelaAviso.style.top = document.documentElement.clientHeight - objJanelaAviso.offsetHeight;
								}
								else {
									if (document.body && document.body.clientHeight) {
										objJanelaAviso.style.top = document.body.clientHeight - objJanelaAviso.offsetHeight;
									}
								}
							}
							if(document.all) {
								objJanelaAviso.style.top = (parseFloat(objJanelaAviso.style.top.replace(cstSufixoPixelJanelaAviso,"")) + document.body.scrollTop) + cstSufixoPixelJanelaAviso;
							}
							else {
								objJanelaAviso.style.top = (parseFloat(objJanelaAviso.style.top.replace(cstSufixoPixelJanelaAviso,"")) + pageYOffset) + cstSufixoPixelJanelaAviso;
							}
						}
					}
				}
			}
			catch(strErro) {
				var strMsgErro = "Ocorreu um erro com a API Janela de Aviso - minimizarJanelaAviso. ";
				strMsgErro = strMsgErro + "Erro: " + strErro.description + " ";
				window.status = strMsgErro;
				return true;				
			}
		}
		
		this.maximizarJanelaAviso = function(strNomeTipoJanelaAviso) {
			try {
				var	objJanelaAviso = document.getElementById("divJanelaAviso" + strNomeTipoJanelaAviso);
				var objCentralizarJanelaAviso = new centralizarJanelaAviso(objJanelaAviso);
				var fltLarguraJanelaNavegador = objCentralizarJanelaAviso.pegarLarguraNavegadorJanelaAviso();
				var fltAlturaJanelaNavegador = objCentralizarJanelaAviso.pegarAlturaNavegadorJanelaAviso();
				var objBotaoMaximizarJanelaAviso = document.getElementById("btnMaximizar");
				var cstDiferencialMaximizarJanelaAviso = 10;
				
				if(objBotaoMaximizarJanelaAviso.getAttribute("tipo").toUpperCase() == cstModoMaximizarJanelaAviso) {
					//Armazena as últimas dimensões da Janela Aviso antes de ser maximizada
					fltAlturaAtualJanelaAviso = parseFloat(objJanelaAviso.offsetHeight);
					fltLarguraAtualJanelaAviso = parseFloat(objJanelaAviso.offsetWidth);
					fltAlturaAtualMaximizarJanelaAviso = parseFloat(objJanelaAviso.offsetHeight);
					fltLarguraAtualMaximizarJanelaAviso = parseFloat(objJanelaAviso.offsetWidth);
					
					//Altera o tamanho da DIV
					objJanelaAviso.style.width = parseFloat(fltLarguraJanelaNavegador - cstDiferencialMaximizarJanelaAviso) + cstSufixoPixelJanelaAviso;
					objJanelaAviso.style.height = parseFloat(fltAlturaJanelaNavegador - cstDiferencialMaximizarJanelaAviso) + cstSufixoPixelJanelaAviso;
					
					//Altera o tamanho do IFRAME responsável pela sobreposição de elementos como combobox
					document.getElementById("janelaAvisoIframeSobreposicao" + strNomeTipoJanelaAviso).style.width = parseFloat(fltLarguraJanelaNavegador - cstDiferencialMaximizarJanelaAviso) + cstSufixoPixelJanelaAviso;
					document.getElementById("janelaAvisoIframeSobreposicao" + strNomeTipoJanelaAviso).style.height = parseFloat(fltAlturaJanelaNavegador - cstDiferencialMaximizarJanelaAviso) + cstSufixoPixelJanelaAviso;
					
					//Altera o tamanho da TABELA
					document.getElementById("janelaAviso" + strNomeTipoJanelaAviso).style.width = parseFloat(fltLarguraJanelaNavegador - cstDiferencialMaximizarJanelaAviso) + cstSufixoPixelJanelaAviso;
					document.getElementById("janelaAviso" + strNomeTipoJanelaAviso).style.height = parseFloat(fltAlturaJanelaNavegador - cstDiferencialMaximizarJanelaAviso) + cstSufixoPixelJanelaAviso;
					
					//Altera os atributos do botão maximizar para restaurar
					objBotaoMaximizarJanelaAviso.value = "Restaurar";
					objBotaoMaximizarJanelaAviso.setAttribute("title", "Restaurar")
					objBotaoMaximizarJanelaAviso.setAttribute("tipo", "restaurar");
					objBotaoMaximizarJanelaAviso.setAttribute("src", "" + strCaminhoPadraoArquivosImagensJanelaAviso + "IconeRestaurar.gif");
					
					centralizarJanelaAviso(objJanelaAviso);
				}
				else {
					//Altera o tamanho da DIV
					objJanelaAviso.style.width = fltLarguraAtualMaximizarJanelaAviso;
					objJanelaAviso.style.height = fltAlturaAtualMaximizarJanelaAviso;
					
					//Altera o tamanho do IFRAME responsável pela sobreposição de elementos como combobox
					document.getElementById("janelaAvisoIframeSobreposicao" + strNomeTipoJanelaAviso).style.width = fltLarguraAtualMaximizarJanelaAviso;
					document.getElementById("janelaAvisoIframeSobreposicao" + strNomeTipoJanelaAviso).style.height = fltAlturaAtualMaximizarJanelaAviso;
					
					//Altera o tamanho da TABELA
					document.getElementById("janelaAviso" + strNomeTipoJanelaAviso).style.width = fltLarguraAtualMaximizarJanelaAviso;
					document.getElementById("janelaAviso" + strNomeTipoJanelaAviso).style.height = fltAlturaAtualMaximizarJanelaAviso;				
					
					//Altera os atributos do botão restaurar para maximizar
					objBotaoMaximizarJanelaAviso.value = "Maximizar";
					objBotaoMaximizarJanelaAviso.setAttribute("title", "Maximizar")
					objBotaoMaximizarJanelaAviso.setAttribute("tipo", "maximizar");
					objBotaoMaximizarJanelaAviso.setAttribute("src", "" + strCaminhoPadraoArquivosImagensJanelaAviso + "IconeMaximizar.gif");
					
					centralizarJanelaAviso(objJanelaAviso);
				}
			}
			catch(strErro) {
				var strMsgErro = "Ocorreu um erro com a API Janela de Aviso - maximizarJanelaAviso. ";
				strMsgErro = strMsgErro + "Erro: " + strErro.description + " ";
				window.status = strMsgErro;
				return true;				
			}
		}
		
		this.exibirImagemIconeJanelaAviso = function(strNomeArquivoIconeJanelaAviso, strNomeTipoJanelaAviso) {
			try {
				var objLocalIconeJanelaAviso = document.getElementById("iconeCabecalhoJanelaAviso" + strNomeTipoJanelaAviso);
				if(objLocalIconeJanelaAviso && strNomeArquivoIconeJanelaAviso != "") {
					objLocalIconeJanelaAviso.style.backgroundImage = "url('" + strCaminhoPadraoArquivosImagensJanelaAviso + strNomeArquivoIconeJanelaAviso + "')";
					objLocalIconeJanelaAviso.style.backgroundRepeat = "no-repeat";
					objLocalIconeJanelaAviso.style.backgroundPosition = "top center";
				}
			}
			catch(strErro) {
				var strMsgErro = "Ocorreu um erro com a API Janela de Aviso - exibirImagemIconeJanelaAviso. ";
				strMsgErro = strMsgErro + "Erro: " + strErro.description + " ";
				window.status = strMsgErro;
				return true;				
			}
		}
		
		this.fecharJanelaAviso = function(strNomeTipoJanelaAviso) {
			var objJanelaAviso = document.getElementById("divJanelaAviso" + strNomeTipoJanelaAviso);
			this.objLocalJanelaAviso.removeChild(objJanelaAviso);
			
			//Verifica a variável que armazena as funções que devem ser executadas após a Janela de Aviso, como se estivessem em evento JavaScript, 
			//vale lembrar que todas devem ser separadas por ponto e vírgula(;)
			if(this.strFuncoesAExecutar != "") {
				try {
					eval(this.strFuncoesAExecutar);
				}
				catch(strErro) {
					var strMsgErro = "Ocorreu um erro com a API Janela de Aviso - fecharJanelaAviso. ";
					strMsgErro = strMsgErro + "Erro: " + strErro.description + " ";
					window.status = strMsgErro;
					return true;
				}
			}
		}
	}
	catch(strErro) {
		var strMsgErro = "Ocorreu um erro com a API Janela de Aviso. ";
		strMsgErro = strMsgErro + "Erro: " + strErro.description + " ";
		window.status = strMsgErro;
		return true;
	}
}

//-------------------------------------------------------------------------------------------------------------
//-- Função responsável por centralizar a Janela Aviso
function centralizarJanelaAviso(elemento) {
	this.pegarAlturaNavegadorJanelaAviso = function() {
		var alturaJanela = 0;
		if (typeof(window.innerHeight) == "number") {
			alturaJanela = window.innerHeight;
		}
		else {
			if (document.documentElement && document.documentElement.clientHeight) {
				alturaJanela = document.documentElement.clientHeight;
			}
			else {
				if (document.body && document.body.clientHeight) {
					alturaJanela = document.body.clientHeight;
				}
			}
		}
		return alturaJanela;
	}
	
	this.pegarLarguraNavegadorJanelaAviso = function() {
		var larguraJanela = 0;
		if (typeof(window.innerWidth) == "number") {
			larguraJanela = window.innerWidth;
		}
		else {
			if (document.documentElement && document.documentElement.clientWidth) {
	        	larguraJanela = document.documentElement.clientWidth;
			}
			else {
				if (document.body && document.body.clientWidth) {
					larguraJanela = document.body.clientWidth;
	     		}
			}
	  	}
		return larguraJanela;
	}	
	
	if (document.getElementById) {
		var larguraJanela = this.pegarLarguraNavegadorJanelaAviso();
		var alturaJanela = this.pegarAlturaNavegadorJanelaAviso();
		if (larguraJanela > 0 && alturaJanela > 0) {
			//Verifica se o ELEMENTO passado não é um objeto
			if(typeof(elemento) != "object") {
				var objElemento = document.getElementById(elemento);
			}
			else {
            	var objElemento = elemento;
			}
			var larguraElemento = objElemento.offsetWidth;
			var alturaElemento = objElemento.offsetHeight;

			if (larguraJanela - larguraElemento > 0 && alturaJanela - alturaElemento > 0) {
				objElemento.style.position = "absolute";
				objElemento.style.left = ((larguraJanela / 2) - (larguraElemento / 2)) + cstSufixoPixelJanelaAviso;
				if(document.all) {
					objElemento.style.top = ((alturaJanela / 2 + (document.body.scrollTop)) - (alturaElemento / 2)) + cstSufixoPixelJanelaAviso;
				}
				else {
					objElemento.style.top = (((alturaJanela / 2) + (pageYOffset)) - (alturaElemento / 2)) + cstSufixoPixelJanelaAviso;
				}
			}
			else if(larguraJanela - larguraElemento > 0) {
				objElemento.style.position = "absolute";
				objElemento.style.left = ((larguraJanela / 2) - (larguraElemento / 2)) + cstSufixoPixelJanelaAviso;
				objElemento.style.top = 0 + cstSufixoPixelJanelaAviso;
			}
			else if(alturaJanela - alturaElemento > 0) {
				objElemento.style.position = "absolute";
				if(document.all) {
					objElemento.style.top = ((alturaJanela / 2 + (document.body.scrollTop)) - (alturaElemento / 2)) + cstSufixoPixelJanelaAviso;
				}
				else {
					objElemento.style.top = (((alturaJanela / 2) + (pageYOffset)) - (alturaElemento / 2)) + cstSufixoPixelJanelaAviso;
				}
				objElemento.style.left = 0 + cstSufixoPixelJanelaAviso;
			}
			else {
				objElemento.style.position = "static";
			}
		}
	}
}
//-- FIM - Função responsável por centralizar a Janela Aviso
//-------------------------------------------------------------------------------------------------------------

function adicionarEventoJanelaAviso(objElemento, strTipoEvento, Funcao, blnPropagar) {
	if(document.addEventListener) {
		objElemento.addEventListener(strTipoEvento, Funcao, blnPropagar);
	}
	else if(document.attachEvent) {
		objElemento.attachEvent("on" + strTipoEvento, Funcao);
	}
	else {
		objElemento["on" + strTipoEvento] = Funcao;
	}
}

function removerEventoJanelaAviso(objElemento, strTipoEvento, Funcao, blnPropagar) {
	if(document.removeEventListener) {
		objElemento.removeEventListener(strTipoEvento, Funcao, blnPropagar);
	}
	else if(document.detachEvent) {
		objElemento.detachEvent("on" + strTipoEvento, Funcao);
	}
	else {
		objElemento["on" + strTipoEvento] = null;
	}
}

//-------------------------------------------------------------------------------------------------------------
//-- Scripts para mover a Janela Aviso
var objElementoMovelJanelaAviso; //Armazena o objeto do elemento a ser movimentado
var deltaX, deltaY;
var arrPosicaoPonteiroMouse; //Array com as posições X e Y respectivamente do mouse
var objEventoMoverJanelaAviso; //Armazena o evento retornado do elemento de forma global
		
function tratarSelecaoTextoJanelaAviso(objEvento, blnEvitarSelecaoTexto) {
	if(blnEvitarSelecaoTexto) {
		document.ondrag = function () { return false; };
		document.onselectstart = function () { return false; };
	}
	else {
		document.ondrag = function () { return true; };
		document.onselectstart = function () { return true; };		
	}
}

function setarOpacidadeJanelaAviso(objElementoMovelJanelaAviso, strValorOpacidade) {
	if(objElementoMovelJanelaAviso.filters) {
		try {
			objElementoMovelJanelaAviso.filters["alpha"].opacity = strValorOpacidade * 100;
		} 
		catch (strErro) { 
			try {
				objElementoMovelJanelaAviso.style.filter = "alpha(opacity=" + strValorOpacidade * 100 + ")";
			}
			catch(strErro) {
			}
		}
	} 
	else if (objElementoMovelJanelaAviso.style.opacity) {
		try {
			objElementoMovelJanelaAviso.style.opacity = strValorOpacidade;
		}
		catch(strErro) {
			try {
				objElementoMovelJanelaAviso.style.MozOpacity = ((strValorOpacidade/100));
			}
			catch(strErro) {
			}			
		}
	}
}

function pegarPosicaoHorizontalJanelaAviso(objElementoMovelJanelaAviso) {
	return parseInt(objElementoMovelJanelaAviso.style.left);
}

function pegarPosicaoVerticalJanelaAviso(objElementoMovelJanelaAviso) {
	return parseInt(objElementoMovelJanelaAviso.style.top);
}

function setarPosicaoElementoMovelJanelaAviso(objElementoMovelJanelaAviso, valorX, valorY) {
	objElementoMovelJanelaAviso.style.left = valorX + cstSufixoPixelJanelaAviso;
	objElementoMovelJanelaAviso.style.top = valorY + cstSufixoPixelJanelaAviso;
}

function iniciarMovimentoElementoJanelaAviso(objEventoElemento, idElemento) {
	objEventoMoverJanelaAviso = objEventoElemento? objEventoElemento : window.event;
	objElementoMovelJanelaAviso = document.getElementById(idElemento);
	setarOpacidadeJanelaAviso(objElementoMovelJanelaAviso, 0.50);
	arrPosicaoPonteiroMouse = pegarPosicaoPonteiroMouseJanelaAviso(objEventoMoverJanelaAviso);
	deltaX = arrPosicaoPonteiroMouse[0] - pegarPosicaoHorizontalJanelaAviso(objElementoMovelJanelaAviso);
	deltaY = arrPosicaoPonteiroMouse[1] - pegarPosicaoVerticalJanelaAviso(objElementoMovelJanelaAviso);
	if(document.all) {
		adicionarEventoJanelaAviso(document, "drag", moverElementoJanelaAviso, false);
	}
	adicionarEventoJanelaAviso(document, "mousemove", moverElementoJanelaAviso, false);
	adicionarEventoJanelaAviso(document, "mouseup", soltarElementoJanelaAviso, false);
}

function moverElementoJanelaAviso(objEventoMoverJanelaAviso) {
	tratarSelecaoTextoJanelaAviso(objEventoMoverJanelaAviso, true);
	arrPosicaoPonteiroMouse = pegarPosicaoPonteiroMouseJanelaAviso(objEventoMoverJanelaAviso);
	setarPosicaoElementoMovelJanelaAviso(objElementoMovelJanelaAviso, arrPosicaoPonteiroMouse[0] - deltaX, arrPosicaoPonteiroMouse[1] - deltaY);
	evitarPropagacaoEventoMoverJanelaAviso(objEventoMoverJanelaAviso);
}

function soltarElementoJanelaAviso(objEventoMoverJanelaAviso) {
	arrPosicaoPonteiroMouse = pegarPosicaoPonteiroMouseJanelaAviso(objEventoMoverJanelaAviso);
	setarOpacidadeJanelaAviso(objElementoMovelJanelaAviso, 1);
	if(document.all) {
		removerEventoJanelaAviso(document, "drag", moverElementoJanelaAviso, false);
	}
	removerEventoJanelaAviso(document, "mousemove", moverElementoJanelaAviso, false);
	removerEventoJanelaAviso(document, "mouseup", soltarElementoJanelaAviso, false);
	evitarPropagacaoEventoMoverJanelaAviso(objEventoMoverJanelaAviso);
	tratarSelecaoTextoJanelaAviso(objEventoMoverJanelaAviso, false);
}

function pegarPosicaoPonteiroMouseJanelaAviso(objEvento) {
 	if (document.all) {
  		mouseX = event.clientX + document.body.scrollLeft;
  		mouseY = event.clientY + document.body.scrollTop;
 	} 
 	else {
    	mouseX = objEvento.pageX;
    	mouseY = objEvento.pageY;
   	}
   	return [mouseX, mouseY];
}

function evitarPropagacaoEventoMoverJanelaAviso(objEvento) {
	if(objEvento.stopPropagation) {
		objEvento.stopPropagation();
		objEvento.preventDefault();
	}
	else if(objEvento.cancelBubble) {
		objEvento.cancelBubble = true;
		objEvento.returnValue = false;
	}
}
//-- FIM - Scripts para mover a Janela Aviso
//-------------------------------------------------------------------------------------------------------------

function CapturarEventosJanelaAviso(arrEventosCapturados) {
	var intContadorEventos;
	for (intContadorEventos = 0; intContadorEventos < arrEventosCapturados.length; intContadorEventos++) {	
		document.addEventListener(arrEventosCapturados[intContadorEventos], function (objEventoCapturado) {window.event = objEventoCapturado;}, true);
	}
}
if (document.addEventListener) {
	CapturarEventosJanelaAviso(["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","keyup","keydown","keypress"]);
}