//CONSTANTES
sApostrofe = "\u0027"
sAspas = "\u0022"

/*FUNÇÃO PARA CHAMAR A PÁGINA DO TOPICO*****************/
function PaginaTopico(iPrincipal,iContexto,bTemFuncao,sFuncao,sArgumento)
{
	TemFuncao = new Boolean(bTemFuncao)

	var sURL = "content.asp"
	sURL += "?principal=" + iPrincipal
	sURL += "&contexto=" + iContexto

	if (TemFuncao==true)
	{
		sURL += "&funcao=" + sFuncao
		sURL += "&fonte=" + sArgumento
	}

	parent.frames[1].location = sURL
	//alert(sURL)
}



/*FUNÇÃO PARA CARREGAR O CONTEXTO*****************
function PaginaContexto(iPrin, iCont, sFuncao, sFonte, iDif)
{
	var sURL = "content.asp?principal="
	sURL += iPrin + "&contexto=" + iCont
	sURL += "&fonte=" + sFonte
	sURL += "&funcao=" + sFuncao
	sURL += "&dif=" + iDif

	parent.frames[1].location = sURL
	//alert(sURL)

}*/


/*FUNÇÃO PARA CARREGAR OS TOPICOS DE TEXTO*****************/
function TopicoTexto(sFonte){
	
	var sHTML = ""
	var sLocal = sFonte + ".xml"
	
	var oTopico = new ActiveXObject("Msxml2.DOMDocument");
	oTopico.async = false;
	oTopico.validateOnParse = false;
	oTopico.load(sLocal);
	var Pai = oTopico.documentElement
	
	//obtem o titulo do documento
	TituloDoc = Pai.childNodes[0].nodeValue
	
	sHTML += TituloDoc!=null?"<p class='TituloDoc'>" + TituloDoc + "</p>":"" 

	//obtem o array de filhos do topico
	Filhos = Pai.childNodes

	//indice do 1ºfilho
	iFilho = Pai.firstChild.hasChildNodes?0:1

	//escreve os filhos
	for (i=iFilho; i< Filhos.length; i++){
		//obtem o conteúdo do filho
		ValorFilho = Filhos[i].childNodes[0].nodeValue
		sHTML += ValorFilho!=null?"<span class='TituloTexto'>" + ValorFilho + "</span><br>":""

		//obtem os netos
		Netos = Filhos[i].childNodes
		
		//indice do 1ºneto
		iNeto = Filhos[i].firstChild.hasChildNodes?0:1
		
		//escreve os netos
		for (j=iNeto; j<Netos.length; j++){
			//obtem o contéudo do neto
			ValorNeto = Netos[j].childNodes[0].nodeValue
			if (ValorNeto!=null)	{
				sHTML += "<span class='SubtituloTexto'>" + ValorNeto + "</span><br>"
			}

			//obtem os bisnetos
			Bisnetos = Netos[j].childNodes
			
			//indice do 1ºbisneto
			iBisneto = Netos[j].firstChild.hasChildNodes?0:1

			//escreve os bisnetos
			for (k=iBisneto; k<Bisnetos.length; k++){
				//obtem o valor do bisneto actual
				
				//vê se a seccao trata-se de uma imagem
				if (Bisnetos[k].attributes[0].nodeValue=='imagem')
				{
					ValorBisneto = "<img src='"
					ValorBisneto += Bisnetos[k].attributes[1].nodeValue
					ValorBisneto += "'>"
				}
				else{
					ValorBisneto = Bisnetos[k].childNodes[0].nodeValue
				}
				
				sHTML += ValorBisneto!=null?ValorBisneto + "<br><br>":""
				
				//obtem os trisnetos
				Trisnetos = Bisnetos[k].childNodes
				
				//indice do 1ºbisneto
				iTrisneto = Bisnetos[k].firstChild.hasChildNodes?0:1

				if (Trisnetos.length>1){
					//sHTML += "<ul class='ListaSimples'>"
					for (l=iTrisneto; l<Trisnetos.length; l++){
						ValorTrisneto = Trisnetos[l].childNodes[0].nodeValue
						sHTML += "<li>" + ValorTrisneto + "<br><br>"
					}
					//sHTML += "</ul>"
				}
			}
		}
	}
	
	
	parent.frames[1].document.all['Conteudo'].innerHTML = ""
	parent.frames[1].document.all['Conteudo'].innerHTML = sHTML
	parent.frames[1].document.all['Conteudo'].style.display = ''
	parent.frames[1].document.all['Decoracao'].innerHTML = ""
	parent.frames[1].document.all['Intro'].style.display = 'none'
	parent.frames[1].document.all['Intro'].innerHTML = ""
}



/*FUNÇÃO PARA CARREGAR OS TOPICOS EM FORMA DE FICHAS*****************/
function TopicoFicha(sFonte){
	
	var sHTML = ""
	var sLocal = sFonte + ".xml"

	var oTopico = new ActiveXObject("Msxml2.DOMDocument");
	oTopico.async = false;
	oTopico.validateOnParse = false;
	oTopico.load(sLocal);
	var Pai = oTopico.documentElement

	/*/abre os documentos XML e instancia os elementos pai
	topico.async = false
	var Pai = topico.documentElement
	/*/
	
	//obtem o titulo do documento
	TituloDoc = Pai.childNodes[0].nodeValue
	sHTML += "<p class='TituloDoc'>" + TituloDoc + "</p>" 

	//obtem o array de filhos do topico
	Filhos = Pai.childNodes

	//escreve os filhos
	for (i=1; i< Filhos.length; i++)
	{
		//obtem o conteúdo do filho
		ValorFilho = Filhos[i].childNodes[0].nodeValue
		sHTML += "<span class='TituloTexto'>" + ValorFilho + "</span>"

		//obtem os netos
		Netos = Filhos[i].childNodes
		
		//escreve os netos
		for (j=1; j<Netos.length; j++)
		{
			sHTML += "<br><br>"
			
			//obtem o contéudo do neto
			ValorNeto = Netos[j].childNodes[0].nodeValue
			if (ValorNeto!=null)
			{
				sHTML += "<span class='SubtituloTexto'>" + ValorNeto + "</span><br>"
			}

			//obtem os bisnetos
			Bisnetos = Netos[j].childNodes
			
			//indice do 1ºbisneto
			iBisneto = Netos[j].firstChild.hasChildNodes?0:1

			//escreve os bisnetos
			for (k=iBisneto; k<Bisnetos.length; k++)
			{
				//obtem o valor do bisneto actual
				
				ValorBisneto = Bisnetos[k].childNodes[0].nodeValue
				if (ValorBisneto!=null)
				{
					sHTML += ValorBisneto + "<br>"
				}

				//obtem os trisnetos
				Trisnetos = Bisnetos[k].childNodes
				
				//indice do 1ºbisneto
				iTrisneto = Bisnetos[k].firstChild.hasChildNodes?0:1

				if (Trisnetos.length>1)
				{
					//sHTML += "<ul class='ListaSimples'>"
					for (l=iTrisneto; l<Trisnetos.length; l++)
					{
						ValorTrisneto = Trisnetos[l].childNodes[0].nodeValue
						Atributo = Trisnetos[l].attributes[0].nodeValue
						
						sHTML += "<b>" + Atributo + ":</b>&nbsp&nbsp"
						sHTML += ValorTrisneto + "<br>"
					}
					//sHTML += "</ul>"
				}
			}
		}
	}
	
	parent.frames[1].document.all['Conteudo'].innerHTML = ""
	parent.frames[1].document.all['Conteudo'].innerHTML = sHTML
	parent.frames[1].document.all['Conteudo'].style.display = ''
	parent.frames[1].document.all['Decoracao'].innerHTML = ""
	parent.frames[1].document.all['Intro'].style.display = 'none'
	parent.frames[1].document.all['Intro'].innerHTML = ""
}



//FUNÇÃO PARA LANÇAR UMA JANELA COM LINK PARA UM FICHEIRO (.XLS, .PDF)
function LinkExterno(sURL)
{
	var EcranAltura = screen.height
	var EcranLargura = screen.width
	var JanelaX = EcranLargura * 0.1 / 2
	var JanelaY = EcranAltura * 0.15
	var JanelaLargura = EcranLargura * 0.9
	var JanelaAltura = EcranAltura * 0.7

	var destino = sURL
	var NomeJanela = 'Quadro'
	var Parametros = 'closebotton=no,scrollbars=yes,status=no,menubar=no,titlebar=no,'
	Parametros += 'left=' + JanelaX + ',top=' + JanelaY + ','
	Parametros += 'width=' + JanelaLargura + ',height=' + JanelaAltura

	window.open(destino, NomeJanela, Parametros)
}



/*FUNÇÃO PARA CONSTRUIR O MAPA DO SITE*****************/
function MapaSite(){
	
	var sHTML = "<div class='MapaTitulo'>Mapa do site</div>"
	var ValorNo = ""
	
	//abre os documentos XML e instancia os elementos pai
	conteudo.async = false
	var Pai = conteudo.documentElement

	for (i=1; i< Pai.childNodes.length; i++){

		ValorNo = Pai.childNodes[i].childNodes[0].nodeValue
			
		sHTML += "<div id='ListaPai' class='MapaPai' OnClick='OcultaItemMenu(" + (i-1) + ",ListaPai);'>"
		sHTML += ValorNo

		//se há filhos
		if (Pai.childNodes[i].hasChildNodes()){
				
			Filhos = Pai.childNodes[i]
					
			//escreve os filho
			for (j=1; j<Pai.childNodes[i].childNodes.length; j++){
					
				ValorNo = Filhos.childNodes[j].childNodes[0].nodeValue
				TemAccao = Filhos.childNodes[j].attributes[0].nodeValue
				
				sHTML += "<div class='MapaFilho' style='display:none' "
				sHTML += "OnClick=" + sAspas + "Navegacao1(" + i + "," + j + ");"

				//pesquisa se o nó actual tem acção
				if (TemAccao=='true'){
					sHTML += "PaginaContexto" 
					sHTML += "(" + i + "," + j + ","
					sHTML += sApostrofe + Filhos.childNodes[j].attributes[1].nodeValue + sApostrofe + ","
					sHTML += sApostrofe + Filhos.childNodes[j].attributes[2].nodeValue + sApostrofe
					sHTML += ",0);"
				}
				sHTML += sAspas + ">" + ValorNo
				
				//se tem netos
				if (Filhos.childNodes[j].hasChildNodes()){

					Netos = Filhos.childNodes[j]

					for (k=1; k<Netos.childNodes.length; k++){

						ValorNo = Netos.childNodes[k].childNodes[0].nodeValue

						sHTML += "<div class='MapaNeto'>"
						sHTML += ValorNo
						
						//se tem netos
						if (Netos.childNodes[k].hasChildNodes()){

							Bisnetos = Netos.childNodes[k]

							for (l=1; l<Bisnetos.childNodes.length; l++){

								ValorNo = Bisnetos.childNodes[l].childNodes[0].nodeValue

								sHTML += "<div class='MapaBisneto'>"
								sHTML += ValorNo
								sHTML += "</div>" //fim de cada bisneto
							}//loop do ciclo de bisnetos
						}//fim de condição de bisnetos
						
						sHTML += "</div>" //fim de cada neto

					}//loop do ciclo de netos
				}//fim de condição de netos

				sHTML += "</div>" //fim de cada filho
			}//loop do ciclo de filho
		}//fim de condição de filho
		
		sHTML += "</div>"//fim de cada pai
	}//loop do ciclo de pai


	parent.frames[1].document.all['Conteudo'].innerHTML = ""
	parent.frames[1].document.all['Conteudo'].innerHTML = sHTML
	parent.frames[1].document.all['Conteudo'].style.display = ''
	parent.frames[1].document.all['MenuContexto'].style.visibility = 'hidden'
	parent.frames[1].document.all['Intro'].style.display = 'none'
	parent.frames[1].document.all['Intro'].innerHTML = ""
	
}



function TopicoImagem(sFonte){
	sImagem = "<img src='" + sFonte + "'>"

	parent.frames[1].document.all['Conteudo'].innerHTML = ""
	parent.frames[1].document.all['Conteudo'].innerHTML = sImagem
	parent.frames[1].document.all['Conteudo'].style.display = ''
	parent.frames[1].document.all['Decoracao'].innerHTML = ""
	parent.frames[1].document.all['Intro'].style.display = 'none'
	parent.frames[1].document.all['Intro'].innerHTML = ""
}