
// JavaScript Document

//Abre e fecha TRs das tabelas

function EscondeLinhas(NomeTabela,NomeImagem)
{
imagem = document.getElementById(NomeImagem);
tabela = document.getElementById(NomeTabela);

if (tabela.estado == 0)
	{ 
		for(x=0;x<tabela.rows.length;x++)
		  {	
			   linha = tabela.rows.item(x);
			   linha.style.display='';
			   if (document.getElementById('painel_teia') != undefined){
				  document.getElementById('painel_teia').style.display = '';
			   }			   
			   titulo = tabela.rows.item(0);
			   titulo.style.display = '';
		  }
		 
		 tabela.estado = 1;
		 imagem.src = 'imagens/menos.gif';
		
	}
else
	{
	 for(x=0;x<tabela.rows.length;x++)
		  {	
			   linha = tabela.rows.item(x);
			   linha.style.display='none';
			   if (document.getElementById('painel_teia') != undefined){
				  document.getElementById('painel_teia').style.display = 'none';
			   }
			   titulo = tabela.rows.item(0);
			   titulo.style.display = '';
		  }
		tabela.estado = 0;
		imagem.src = 'imagens/mais.gif';
	} 
  
}

// Label dos botoes de navegacao global
function BotaoMensagem(strMensagem) {
	document.getElementById('BotaoLabel').innerHTML= strMensagem;
}

function LimpaMensagem(){
	document.getElementById('BotaoLabel').innerHTML= '';
}

//ALERT e CONFIRM
function MM_popupAlert(msg) { //v1.0
  alert(msg);
}

function MM_popupConfirm(msg) { //v1.0
  return confirm(msg);
}

//GotoUrl
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function fecharJanela() {
	window.close();
	}

function atualizaContador(i,campo, contador) {
                    field = document.getElementById(campo);
                    if ( field )
                    {
                          if(field.value.length >= i)
                              field.value = field.value.substring(0, i);
                    }
                    txt_field = document.getElementById(contador);
                    if ( txt_field )
                    {
                        txt_field.innerHTML =  i - field.value.length;
                    }
}


function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_jumpMenuGo(selName,targ,restore){ //v3.0
  var selObj = MM_findObj(selName); if (selObj) MM_jumpMenu(targ,selObj,restore);
}


// FUNÇÃO MOVER Up E Down
function MoverUP(NomeTabela,NumLinhasAntes,nomeCampoSelecionado){
	var numLinha1;
	var htmlIntermediario
	
	tabela = document.getElementById(NomeTabela);
	campoLinhaSelecionada  = document.getElementById(nomeCampoSelecionado);
	numLinha1 = campoLinhaSelecionada.value;

	if((numLinha1 == NumLinhasAntes) || (numLinha1 == 0))
		return null; 
	
	linha1 = tabela.rows.item(eval(numLinha1));
	
	numLinha2 = numLinha1 - 1;

	if (numLinha2 < 0)
		return false;
	
	linha2 = tabela.rows.item(eval(numLinha2));
	
	for(x=0;x< linha1.cells.length;x++)
	{
		celula1 = linha1.cells.item(x);
		celula2 = linha2.cells.item(x);
	
		htmlIntermediario = celula2.innerHTML;
		celula2.innerHTML = celula1.innerHTML.replace("id=","checked='checked' id=");
		celula1.innerHTML = htmlIntermediario;	
	}
	Selecionar(linha2,NomeTabela,nomeCampoSelecionado);
}


function MoverTOP(NomeTabela,NumLinhasAntes,nomeCampoSelecionado){
	var numLinha1;
	var htmlIntermediario
	
	tabela = document.getElementById(NomeTabela);
	campoLinhaSelecionada  = document.getElementById(nomeCampoSelecionado);
	numLinha1 = campoLinhaSelecionada.value;
	while(numLinha1>2)
		{
		if((numLinha1 == NumLinhasAntes) || (numLinha1 == 0))
			return null; 
		
		linha1 = tabela.rows.item(eval(numLinha1));
		
		numLinha2 = numLinha1 - 1;
	
		if (numLinha2 < 0)
			return false;
		
		linha2 = tabela.rows.item(eval(numLinha2));
		
		for(x=0;x< linha1.cells.length;x++)
		{
			celula1 = linha1.cells.item(x);
			celula2 = linha2.cells.item(x);
		
			htmlIntermediario = celula2.innerHTML;
			celula2.innerHTML = celula1.innerHTML.replace("id=","checked='checked' id=");
			celula1.innerHTML = htmlIntermediario;	
		}
		Selecionar(linha2,NomeTabela,nomeCampoSelecionado);
		tabela = document.getElementById(NomeTabela);
		campoLinhaSelecionada  = document.getElementById(nomeCampoSelecionado);
		numLinha1 = campoLinhaSelecionada.value;
		}
}

function MoverUltimo(NomeTabela,NumLinhasDepois,nomeCampoSelecionado){

	var numLinha1;
	var htmlIntermediario;
	
	tabela = document.getElementById(NomeTabela);
	campoLinhaSelecionada  = document.getElementById(nomeCampoSelecionado);
	numLinha1 = campoLinhaSelecionada.value; 
	while(numLinha1<(tabela.rows.length)){
		linha1 = tabela.rows.item(eval(numLinha1));
		
		if((numLinha1 == (tabela.rows.length+1+NumLinhasDepois)) || (numLinha1 == 0)){
			return null; 
		}
		
		numLinha2 = eval(numLinha1)+1;
			
		if (numLinha2 == (tabela.rows.length - NumLinhasDepois+1)){

				return false;
				
		}
		linha2 = tabela.rows.item(eval(numLinha2));
		
		for(x=0;x<linha1.cells.length;x++)
		{
			celula1 = linha1.cells.item(x);
			celula2 = linha2.cells.item(x);
	
			htmlIntermediario = celula2.innerHTML;
			celula2.innerHTML = celula1.innerHTML.replace("id=","checked='checked' id=");
			celula1.innerHTML = htmlIntermediario;
		}
		Selecionar(linha2,NomeTabela,nomeCampoSelecionado);
	
		tabela = document.getElementById(NomeTabela);
		campoLinhaSelecionada  = document.getElementById(nomeCampoSelecionado);
		numLinha1 = campoLinhaSelecionada.value; 
	}
}

function MoverDown(NomeTabela,NumLinhasDepois,nomeCampoSelecionado){

	var numLinha1;
	var htmlIntermediario;
	
	tabela = document.getElementById(NomeTabela);
	campoLinhaSelecionada  = document.getElementById(nomeCampoSelecionado);
	numLinha1 = campoLinhaSelecionada.value; 

	linha1 = tabela.rows.item(eval(numLinha1));
	
	if((numLinha1 == NumLinhasDepois) || (numLinha1 == 0))
		return null; 
	
	numLinha2 = eval(numLinha1) + 1;
		
	if (numLinha2 == (tabela.rows.length - NumLinhasDepois))
		return false;
	
	linha2 = tabela.rows.item(eval(numLinha2));
	
	for(x=0;x< linha1.cells.length;x++)
	{
		celula1 = linha1.cells.item(x);
		celula2 = linha2.cells.item(x);

		htmlIntermediario = celula2.innerHTML;
		celula2.innerHTML = celula1.innerHTML.replace("id=","checked='checked' id=");
		celula1.innerHTML = htmlIntermediario;
	}
	Selecionar(linha2,NomeTabela,nomeCampoSelecionado);
}

function LimpaSelecao(NomeTabela){
	tabela = document.getElementById(NomeTabela);
	for (x=0;x< tabela.rows.length;x++){
		linha = tabela.rows.item(x);
	}
}
function Selecionar(Linha,NomeTabela,nomeCampoSelecionado){	
	campoLinhaSelecionada = document.getElementById(nomeCampoSelecionado);
	campoLinhaSelecionada.value = Linha.rowIndex;
	
}

//Validação necessária para não permitir movimentação dos itens
//após a operação de SALVAR PUBLICAÇÃO
function ValidaMoverDown(NomeTabela,NumLinhasDepois,nomeCampoSelecionado){
	tabela = document.getElementById(NomeTabela);
	for (x=0;x< tabela.rows.length;x++){
		linhaAtual = tabela.rows.item(x);
		//validação para o IE
		if (linhaAtual.innerHTML.indexOf("CHECKED")>=0){
			MoverDown(NomeTabela,NumLinhasDepois,nomeCampoSelecionado)
			return null;
		} else {
			//validação para o MOZILLA
			if (navigator.userAgent.indexOf('MSIE')<0){
				MoverDown(NomeTabela,NumLinhasDepois,nomeCampoSelecionado)
				return null;
			}
		}
	}
}
function ValidaMoverUp(NomeTabela,NumLinhasAntes,nomeCampoSelecionado){
	tabela = document.getElementById(NomeTabela);
	for (x=0;x< tabela.rows.length;x++){
		linhaAtual = tabela.rows.item(x);
		//validação para o IE
		if (linhaAtual.innerHTML.indexOf("CHECKED")>=0){
			MoverUP(NomeTabela,NumLinhasAntes,nomeCampoSelecionado)
			return null;
		} else{
			//validação para o MOZILLA
			 if (linhaAtual.innerHTML.indexOf("checked")>=0){
				MoverUP(NomeTabela,NumLinhasAntes,nomeCampoSelecionado)
				return null;
			}
		}
	}
}
//  Paginação

function EscondeLinhasPaginacao(NomeTabela,NomeImagem){
imagem = document.getElementById(NomeImagem);
tabela = document.getElementById(NomeTabela);
if (tabela != null && tabela.estado == 0)
      { for(x=0;x<tabela.rows.length;x++)
              {   
                     linha = tabela.rows.item(x);
                     linha.style.display='';
                     titulo = tabela.rows.item(0);
                     titulo.style.display = '';
              }
             tabela.estado = 1;
             imagem.src = 'imagens/menos.gif';
      }
else if (tabela != null)
      { for(x=0;x<tabela.rows.length;x++)
              {   
                     linha = tabela.rows.item(x);
                     linha.style.display='none';
                     if (document.getElementById('painel_teia') != undefined){
				  			document.getElementById('painel_teia').style.display = '';
				    }			   
			   		titulo = tabela.rows.item(0);
			   		titulo.style.display = '';
              }
            tabela.estado = 0;
            imagem.src = 'imagens/mais.gif';
      }  }

//Posiciona o asterico na tela
function asterix_obrigatorio() {
	var asterix = document.getElementById("asterix");
	var asterix2 = document.getElementById("asterix2");

	if (window.screen.height >= 640 && document.body.clientWidth >= 828)  {
		if (navigator.appName.indexOf("Netscape")>=0){
			if(asterix != null)
				asterix.style.width = document.body.clientWidth - 828;
			if(asterix2 != null)
				asterix2.style.width = document.body.clientWidth - 828;
		} else {
			if(asterix != null)
				asterix.style.width = document.body.clientWidth - 828+"px";
			if(asterix2 != null)
				asterix2.style.width = document.body.clientWidth - 828+"px";
		}
	}
	displayNone(asterix);
	displayNormal(asterix);
	displayNone(asterix2);
	displayNormal(asterix2);
}

function displayNone(obj){
	if(obj != null)
		obj.style.display="none";
}

function displayNormal(obj){
	if(obj != null)
		obj.style.display="";
}

//Função responsável por controlar a ordenação, criando uma String com os códigos separados por "#"
function preencheOrdenacao(radio,textoResultado){
	var resultado = '';
	if(typeof(radio.length)=='undefined'){
		resultado = radio.value;
	}else{
		for(var i=0;i<radio.length;i++){
			if(i == 0){
				resultado =radio[i].value;
		  	}else{	
		    	resultado = resultado +'#'+radio[i].value;
		  	} 
	 	}
	}
	textoResultado.value = resultado;
}



/*
	Função utilizada na ordenação..
*/

function ocultarLinhas(tabelas,NomeImagem){
	for (i = 0; i < tabelas.length; i++) {
		if (i > 0 ) {
			EscondeLinhasOrdenacao(tabelas[i], NomeImagem, true);
		} else {
			EscondeLinhasOrdenacao(tabelas[i], NomeImagem);
		}

	}
}

/*
	Quando utilizar ordenação, aplicar esta função.
*/

function EscondeLinhasOrdenacao(NomeTabela,NomeImagem,isOcultarTitulo)
{

	isOcultarTitulo || (isOcultarTitulo = false)	
	
imagem = document.getElementById(NomeImagem);
tabela = document.getElementById(NomeTabela);

if (tabela.estado == 0)
	{ 
		for(x=0;x<tabela.rows.length;x++)
		  {	
			   linha = tabela.rows.item(x);
			   linha.style.display='';
			   if (document.getElementById('painel_teia') != undefined){
				  document.getElementById('painel_teia').style.display = '';
			   }
			   if (!isOcultarTitulo) {
				   titulo = tabela.rows.item(0);
				   titulo.style.display = '';
			   }
			   
		  }
		 
		 tabela.estado = 1;
		 imagem.src = 'imagens/menos.gif';
		
	}
else
	{
	 for(x=0;x<tabela.rows.length;x++)
		  {	
			   linha = tabela.rows.item(x);
			   linha.style.display='none';
			   if (document.getElementById('painel_teia') != undefined){
				  document.getElementById('painel_teia').style.display = 'none';
			   }
			   if (!isOcultarTitulo) {
				   titulo = tabela.rows.item(0);
				   titulo.style.display = '';
			   }
		  }
		tabela.estado = 0;
		imagem.src = 'imagens/mais.gif';
	} 
  
}



/*
	Funcoes para ordenações. 
	As linhas ordenadas deverão estar em uma tabela separada e em cada tag <tr> o atributo id devera ser numerado a partir 
	de 0. (Obs. para tabelas dinamicas incrementar automaticamente ...).
	Se for preciso esconder as linhas da tabela exterior, utilzar o metodo ocultarLinhas passando como argumento
	um array com os id's das tabelas a serem ocultadas e o nome da img de ocultar.
*/


		function moverLinha(qtdPosicao, tabela) {
			var linhaAtiva = getLinhaAtiva(tabela);
			if (linhaAtiva == null) return;
			var tabela = document.getElementById(tabela);
			var rows = tabela.rows;
			var thisRow, nextRow = null;
			posicao = getQtdNextRow(rows.length, parseInt(linhaAtiva), parseInt(qtdPosicao));
			if (posicao == null) return;
			thisRow = rows[linhaAtiva];	
			nextRow = rows[posicao];
			substituirTD(thisRow, nextRow);
		}


function getLinhaAtiva(tabela) {
			var tabela = document.getElementById(tabela);
			var linhaAtiva = null;
			for (i = 0; i < tabela.rows.length; i++) {	
				linhaAtual = tabela.rows.item(i);
				if (linhaAtual.innerHTML.indexOf("CHECKED")>=0){
					linhaAtiva= linhaAtual.id;
				}
			}
			return linhaAtiva;
		}
		
		
		function substituirTD(thisRow, nextRow) {
	  		if (thisRow.cells.length != nextRow.cells.length) return;
	  		var celThis, celNext, htmlTmp;  	
	  		for (i = 0 ; i < thisRow.cells.length; i++) {
	  			celThis = thisRow.cells.item(i);
	  			celNext = nextRow.cells.item(i);	  			
	  			htmlTmp = celNext.innerHTML;
	  			celNext.innerHTML = celThis.innerHTML;
	  			celThis.innerHTML = htmlTmp;
	  		}
	  	}
	  	
	  	/*
	  		se subir a primeira linha: vai para ultima. Se descer a ultima linha vai para primeira..
	  	*/
	  	function getQtdNextRowSemLimite(length, linhaAtiva, qtdPosicao) {
		  	var linhaRetorno;
		  		if (length - 1 == parseInt(linhaAtiva) ) {
		  			if (qtdPosicao > 0 ) {
		  				linhaRetorno = 0;
		  			} else {
		  				linhaRetorno = parseInt(linhaAtiva) + qtdPosicao;
		  			}
		  		} else {
			  		linhaRetorno = parseInt(linhaAtiva) + qtdPosicao;
		  		}
		  		if (linhaRetorno < 0 ) {
		  			linhaRetorno = length - 1;
		  		}
	  	}
	  	
	  	function getQtdNextRow(length, linhaAtiva, qtdPosicao) {
	  		linhaAtiva = linhaAtiva + qtdPosicao;
	  		if (linhaAtiva > length - 1 || linhaAtiva < 0 ) return null;
	  		return linhaAtiva
	  	}


