//--------------------------------------------------------------------------------------------
/*
	Data:        05/09/2002
	Autor(es):   Mauro Brenneisen e Patrícia Martins
	Uso:         Função para testar campos vazios com retorno de msgerro.
	Parâmetros:  
				 campo          - campo do formulario forms[0].campo
				 msgErro        - Mensagem de erro que deve ser exibida caso o valor
*/
	function Evazio(campo, msgErro) {		
		if ( campo.value== '') {
			alert(msgErro);
			return false;
		}
		return true;
	}
//------------------------------------------------------------------------
/*
	Data:       15/08/2002
	Autor(a):   Patrícia Martins	
	Uso:        Função que torna os campos readOnly quando o critério
				de busca listar todos é selecionado, e habilita quando
				Usar critérios é escolhido.
					
	Parâmetros: a) f - formulário que contém os campos de pesquisa
				b) radioButton - radio button que será selecionado 
				
	Status:     TESTADA e NÃO DOCUMENTADA
*/
	function listarTodos(f, radioButton) {
		numCampos = f.elements.length;
		for (i=0; i < numCampos; i++) {
			if (radioButton.value == '1') {
				f.elements[i].readOnly = true;
			}
			else {
				f.elements[i].readOnly = false;
			}
		}
	}
//------------------------------------------------------------------------

//------------------------------------------------------------------------
/*
	Data:       14/08/2002
	Autor(a):   Patrícia Martins	
	Uso:        Função que seleciona todos os checkboxes de determinado grupo
					
	Parâmetros: a) chkAtual - checkbox que determina os checkboxes do grupo deve ser 
							  marcados ou desmarcados
				b) chkGrupo - grupo de checkboxes que recebe a seleção
				
	Status:     TESTADA e NÃO DOCUMENTADA
*/
	function selecionarTodos (chkAtual, chkGrupo) {
		
		for (i=0; i < chkGrupo.length; i++) {
			if (chkAtual.checked) {
				chkGrupo[i].checked = true;
			}
			else {
				chkGrupo[i].checked = false;
			}
		}
	}
//------------------------------------------------------------------------

//------------------------------------------------------------------------
/*
	Data:       09/08/2002
	Autor(a):   Patrícia Martins	
	Uso:        Função utilizada para eliminar ítens de uma lista que apareçam
				na outra. Geralmente é utilizada no evento onLoad da tag <body>
					
	Parâmetros: a) lst1 - lista que contém os ítens a serem eliminados
				b) lst2 - lista que contém os itens que serão pesquisados
				
	Status:     TESTADA e NÃO DOCUMENTADA
*/
	function eliminaElementosLista (lst1, lst2) {
		tamLst1 = lst1.length;
		tamLst2 = lst2.length;
	
		for (i=0; i < tamLst1; i++) {
			for (j=0; j < lst2.length; j++) {
				if (lst1.options[i].value == lst2.options[j].value) {					
					lst1.options[i] = null;
					tamLst1 --;
				}
			}
		}		
	}

//------------------------------------------------------------------------


//------------------------------------------------------------------------
/*
	Data:       07/08/2002
	Autor(a):   Patrícia Martins	
	Uso:        Função utilizada para abrir uma página de listagem, na qual será
				escolhido um valor da lista para que o campo de uma página possa ser 
				preenchido. Trabalha em conjunto com a página selecionaValor.
					
	Parâmetros: a) pagina 		 - página de listagem que se deseja abrir
				b) titulo 		 - título da página de listagem
				c) comp 		 - comprimento da página
				d) larg 		 - largura da página
				e) formAtual 	 - objeto de formulário que contém os campos a serem preenchidos
				f) nomeVarCodigo - nome da variável hidden, que irá receber o valor do id
								   da opção escolhida
				g) nomeVarTexto	 - nome da variável de texto que irá receber o valor da 
								   descrição da opção escolhida		
				
	Status:     TESTADA
*/
	function abrirListagem(pagina, titulo, comp, larg, formAtual, nomeVarCodigo, nomeVarTexto) {
		pagina = pagina + "?NomeVarCodigo=" + nomeVarCodigo + "&NomeVarTexto=" + nomeVarTexto + "&NomeVarFormulario=" + formAtual.name;		
		abrirPopUp(pagina, titulo, larg, comp);
	}

//------------------------------------------------------------------------

//------------------------------------------------------------------------
/*
	Data:       07/08/2002
	Autor(a):   Patrícia Martins	
	Uso:        Função utilizada nos ítens listados a partir do botão
			    pesquisar/localizar. Atribui valores aos campos hidden e text especificados
				por parâmetro. Para que esta função possa ser utilizada é necessário que
				as páginas de listagem possuam um formulário com 3 variáveis do tipo hidden:
				a) hidNomeVarCodigo - variável que contém o nome da variável da página
				   que irá receber o valor "codigo" (parâmetro desta função)
				b) hidNomeVarTexto -  variável que contém o nome da variável da página
				   que irá receber o valor "valor" (parâmetro desta função)
				c) hidNomeFormulario - variável que contém o nome do formulário que possui
				   as variáveis acima			
					
	Parâmetros: a) codigo - código que deve ser atribuído a variável escondida
							referente ao código
				b) valor  - valor que deve ser atribuído a variável text
				
	Status:     NÃO TESTADA
*/
	function selecionaValor(fAtual, codigo, valor) {
		nomeVarCodigo  = fAtual.hidNomeVarCodigo.value;
		nomeVarTexto   = fAtual.hidNomeVarTexto.value; 
		nomeFormulario = fAtual.hidNomeFormulario.value;
				
		eval("window.opener.document." + nomeFormulario + "." + nomeVarCodigo + ".value='" + codigo + "';");
		eval("window.opener.document." + nomeFormulario + "." + nomeVarTexto + ".value='" + valor + "';");		
		window.close();
	}

//------------------------------------------------------------------------

//------------------------------------------------------------------------
/*
	Data:       05/08/2002
	Autor(a):   cedido por Daniel Coquieri p/ Mauro Brenneisen
	Uso:        Função que valida Alfa no evento da Tecla
	Parâmetros: e) campo (objeto referente ao campo do formulário que se deseja validar)	           	
	Status:     NAO TESTADA
*/

/*function formataMoeda(num){
	num = num.toString()
	num = num.replace(/\$|\,/g,'''');
	alert(num);	


	if(isNaN(num)) num = "0";
	cents = Math.floor((num*100+0.5)%100);
	num = Math.floor((num*100+0.5)/100).toString();
	if(cents < 10) cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num =
	num.substring(0,num.length-(4*i+3))+''.''+num.substring(num.length-(4*i+3));
	return (''R$'' + num + '','' + cents);

}
*/	

//------------------------------------------------------------------------
/*
	Data:       05/08/2002
	Autor(a):   Mauro Brenneisen
	Uso:        Função que valida Alfa no evento da Tecla
	Parâmetros: e) campo (objeto referente ao campo do formulário que se deseja validar)	           	
	Status:     TESTADA
*/


	function EKeyLetra(e)
	{
		if(document.all){ // Internet Explorer
			var tecla = event.keyCode;
		}else if(document.layers){ // Nestcape
			var tecla = e.which;
		}
		if( (tecla > 96 && tecla < 123) || (tecla > 64 && tecla < 91) ){ //Letras
			return true;
		}else{
			if (tecla != 8){ // backspace
		 		return false;
		}else{
			return true;
		}
	}
}

//------------------------------------------------------------------------
/*
	Data:       05/08/2002
	Autor(a):   Mauro Brenneisen
	Uso:        Função de saudação de Bom Dia,Boa Tarde, Boa Noite
	Parâmetros: não tem
	Status:     TESTADA
*/

function Saudacao(){
	var date = new Date();
	var hours = date.getHours();
	if ( (hours < 6) || (hours >= 18) ){
		document.write("Boa Noite");
	}else if ( (hours >= 12) && (hours < 18) ){
		document.write("Boa Tarde");
	}else if ( (hours >= 6) && (hours < 12) ){
		document.write("Bom Dia");

	}else{
		document.write("Bom Dia");
	}
}
//------------------------------------------------------------------------

//------------------------------------------------------------------------
/*
	Data:       05/08/2002
	Autor(a):   Mauro Brenneisen
	Uso:        Função que valida Numeros no evento da Tecla
	Parâmetros: e) campo (objeto referente ao campo do formulário que se deseja validar)	           	
	Status:     TESTADA
*/

function EKeyNumero(e)
{
	if(document.all){ // Internet Explorer
		var tecla = event.keyCode;
	}else if(document.layers){ // Nestcape
		var tecla = e.which;
	}
	if(tecla > 47 && tecla < 58){ // numeros de 0 a 9
		return true;
	}else{
		if (tecla != 8){ // backspace
		 return false;
		}else{
			return true;
		}
	}
}
//---------------------------------------------------------------------------------------------
/*
	Data:       01/08/2002
	Autor:      www.javascriptsource.com
	Uso:        Funções que permitem adicionar e remover ítens de duas listas
	Parâmetros: a) campo (objeto referente ao campo do formulário que se deseja validar)	           	
*/

function compareOptionValues(a, b) { 
  // Radix 10: for numeric values
  // Radix 36: for alphanumeric values
  var sA = parseInt(a.value, 36);  
  var sB = parseInt(b.value, 36);  
  return sA - sB;
}

// Compare two options within a list by TEXT
function compareOptionText(a, b) 
{ 
  // Radix 10: for numeric values
  // Radix 36: for alphanumeric values
  var sA = parseInt(a.text, 36);  
  var sB = parseInt(b.text, 36);  
  return sA - sB;
}

// Dual list move function
function moveDualList(srcList, destList, moveAll) 
{
  // Não faz nada se não houver ítens selecionados na lista de origem
  if (( srcList.selectedIndex == -1 ) && ( moveAll == false )){
    return;
  }
  newDestList = new Array(destList.options.length);
  var len = 0;
  for( len = 0; len < destList.options.length; len++ ) {
    if (destList.options[len] != null){
      newDestList[ len ] = new Option( destList.options[len].text, destList.options[len].value, destList.options[ len ].defaultSelected, destList.options[len].selected);
    }
  }
  for( var i = 0; i < srcList.options.length; i++ ) { 
    if (srcList.options[i] != null && (srcList.options[i].selected == true || moveAll)) {
       // Incorporate into new list
       newDestList[len] = new Option( srcList.options[i].text, srcList.options[i].value, srcList.options[i].defaultSelected, srcList.options[i].selected );
       len++;
    }
  }
  // Ordena a lista de destino
  newDestList.sort(compareOptionValues);   // valores
  //newDestList.sort( compareOptionText );   // texto
  
  // Preenche o destino com ítens do novo array
  for ( var j = 0; j < newDestList.length; j++ ) {
    if ( newDestList[ j ] != null ) {
      destList.options[ j ] = newDestList[ j ];
    }
  }

  // Apaga elementos selecionados da lista de origem
  for( var i = srcList.options.length - 1; i >= 0; i-- ) { 
    if (srcList.options[i] != null && ( srcList.options[i].selected == true || moveAll )) {

       // Apaga a lista de origem
       //srcList.options[i].value = "";
       //srcList.options[i].text  = "";
       srcList.options[i] = null;
    }
  }
} // Fim of moveDualList()

//  End -->

//-------------------------------------------------------------------------------------------

//-------------------------------------------------------------------------------------------
/*
	Data:       01/08/2002
	Autora:     Patrícia Martins
	Uso:        Função que seleciona todos os ítens de uma lista. Deve ser utilizada antes da
	            submissão do formulário para que os ítens escolhidos sejam recuperados na
				página de action do formulário       
	Parâmetros: a) l - lista cujos ítens se deseja selecionar
	Status:		TESTADA
*/
	function selecionarItensLista(l) {
		numItens = l.options.length;	
		for (i=0; i<numItens; i++){
			l.options[i].selected = true;
		}
	}

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------
/*
	Data:        07/08/2002
	Autor(es):   Mauro Brenneisen e Patrícia Martins
	Uso:         Função utilizada quando é permitido ao usuário digitar o valor de um campo,
	             quando o mesmo pode ser selecionado de uma lista. Para que esta função possa
				 ser usada, é necessário que haja 2 ou 3 arrays de variáveis no javascript: 
				 id's, abreviatura(opcional) e descrição.
	Parâmetros:  
				 campo          - campo que recebe a descrição
				 campoId        - campo tipo hidden que recebe o valor do id escolhido
				 aryId          - array contendo id's do objeto relacionado
				 aryAbreviatura - array contendo as abreviaturas do objeto relacionado
				 aryDescricao   - array contendo as descrições dos objetos relacionados
				 msgErro        - Mensagem de erro que deve ser exibida caso o valor
				 				  de campo não esteja correto	
*/

	function validaLista(campo, campoId, aryId, aryAbreviatura, aryDescricao, msgErro) {		
		for (i=0; i < aryId.length; i++ ){			
			if ( ((aryAbreviatura.length > 0)&&(aryAbreviatura[i]==campo.value)) || (aryDescricao[i]==campo.value) ) {
				campoId.value = aryId[i];
				campo.value   = aryDescricao[i]; 
				return true;
			}			
		}
		alert(msgErro);
		return false;
	}
//------------------------------------------------------------------------
/*
	Data:       05/08/2002
	Autor(a):   Mauro Brenneisen
	Uso:        Função que permite a entrada de apenas valores numericos e alfa - bloqueia carac espec.
	Parâmetros: e) campo (objeto referente ao campo do formulário que se deseja validar)	           	
	Status:     TESTADA
*/

function EKeyNumeroLetra(e)
{
	if(document.all){ // Internet Explorer
		var tecla = event.keyCode;
	}else if(document.layers){ // Nestcape
		var tecla = e.which;
	}
	if( (tecla > 47 && tecla < 58)|| (tecla > 96 && tecla < 123) || (tecla > 64 && tecla < 91) ){ // numeros de 0 a 9 e letras Maiu Min
		return true;
	}else{
		if (tecla != 8){ // backspace
		 return false;
		}else{
			return true;
		}
	}
}
//---------------------------------------------------------------------------------------------