
//ARQUIVO CONTENDO BIBLIOTECA DE FUNÇÕES JAVASCRIPT PARA REUSO NOS PROJETOS WEB

//------------------------------------------------------------------------------------------
// function mascara_cpf
// OBJETIVO: Formata campos do tipo CPF.
// ENTRADA:
//	Recebe como parâmetro a referência - this - do campo onde está sendo digitado o CPF.
// EX.:
//	<input type="text" name="cpf" size="14" maxlength="14" onkeypress="mascara_cpf(this);"> 
//------------------------------------------------------------------------------------------
function mascara_cpf(obj)
{
	if (obj.value.length == 3){obj.value = obj.value + '.';}
	if (obj.value.length == 7){obj.value = obj.value + '.';}
	if (obj.value.length == 11){obj.value = obj.value + '-';}
}


//--------------------------------------------------------------------------------------------
// function mascara_data
// OBJETIVO: Formata campos do tipo data.
// ENTRADA:
//	Recebe como parâmetro a referência - this - do campo onde está sendo digitado a data.
// EX.:
//	<input type="text" name="data" size="10" maxlength="10" onkeypress="mascara_data(this);"> 
//--------------------------------------------------------------------------------------------
function mascara_data(obj)
{
	if (obj.value.length == "2"){obj.value = obj.value + "/";}	
	if (obj.value.length == "5"){obj.value = obj.value + "/";}	
}


//-----------------------------------------------------------------------------------------
// function mascara_cep
// OBJETIVO: Formata campos do tipo CEP.
// ENTRADA:
//	Recebe como parâmetro a referência - this - do campo onde está sendo digitado o CEP.
// EX.:
//	<input type="text" name="cep" size="09" maxlength="09" onkeypress="mascara_cep(this);"> 
//------------------------------------------------------------------------------------------
function mascara_cep(obj)
{
	if (obj.value.length == "5"){obj.value = obj.value + "-";}	
}


//-------------------------------------------------------------------------------------------------
// function mascara_mes_ano
// OBJETIVO: Coloca barra de espaço para campos do tipo mês/ano - 99/99.
// ENTRADA:
//	Recebe como parâmetro a referência - this - do campo onde está sendo digitado o valor.
// EX.:
//	<input type="text" name="periodo" size="05" maxlength="05" onkeypress="mascara_mes_ano(this);"> 
//-------------------------------------------------------------------------------------------------
function mascara_mes_ano(obj)
{
	if (obj.value.length == 2){obj.value=obj.value + "/";}
}


//--------------------------------------------------------------------------------------------------------------------------
// function mascara_valor
// OBJETIVO: Esta função tem a finalidade de ir colocando o valor digitado no campo em formato monetário.
// ENTRADA:
//	Recebe como parâmetro o nome completo do campo onde está sendo digitado o valor.
// EX.:
//	<input type="text" name="valor" size="10" maxlength="10" onkeypress="mascara_valor('document.formulario.valor.value');"> 
//--------------------------------------------------------------------------------------------------------------------------
function mascara_valor(campo,e)
{

   	var key = (window.event) ? e.keyCode : e.which;
   	//alert(key);
	
	if (key != 0 && key != 13 && key != 32 && key != 8)
	{
 
	if (eval(campo + ".length") <= 18)
	{ 
		if (eval(campo + ".length") > 2)
		{
		    valor=eval(campo);
		    
			//pegando o índice onde se encontra a vírgula se esta existir
			indice= valor.indexOf(","); 

			//retirando a vírgula se tiver, para atualizar o novo valor
			if (indice!= -1)
			{
			
				//pegando tudo que vem antes da vírgula
				parteInicial = valor.substring(0,indice); 

				//pegando tudo que vem depois da vírgula
				parteFinal = valor.substr(indice+1);
 
				//atualizando o novo valor sem vírgula
				valor = parteInicial + parteFinal; 
			}
			
			//pegando o índice onde se encontra o primeiro ponto se existir
			indice=valor.indexOf("."); 

			//retirando os pontos se tiver
			while (indice!=-1)
			{
				//pegando tudo que vem antes do ponto
				parteInicial = valor.substring(0,indice);
 
				//pegando tudo que vem depois do ponto
				parteFinal = valor.substr(indice+1);
 
				//atualizando o novo valor sem o ponto determinado
				valor = parteInicial + parteFinal;
 
				//pegando o índice do próximo ponto se existir
				indice=valor.indexOf("."); 
			}
			
			//atualizando o tamanho do valor, agora sem vírgula e sem ponto
			tamanho = valor.length;
			
			//colocando a vírgula    
		   	parteSemPonto = valor.substring(0, tamanho-1);
			parteDecimal = "," + valor.substr(tamanho-1);
			tamanho = parteSemPonto.length;
			
			//colocando os pontos
			if(tamanho > 3)
			{
			   parteComPonto= "";
				
			   //A quantidade de pontos que o valor vai ter
			   quantPontos = tamanho/3;
			   
			   //colocando os pontos no número
				
			   for (varInd=1; varInd <= quantPontos; varInd++)
			   {	
			       if(tamanho > 3) //vai ter ponto
			       {					
		             parteComPonto = "." + parteSemPonto.substr(tamanho - 3) + parteComPonto; 
		 		      if (tamanho==4) 
				         parteSemPonto = parteSemPonto.substr(0,1);
				      else					 						             
				         parteSemPonto = parteSemPonto.substring(0, tamanho-3);
				         tamanho = parteSemPonto.length; 
				   }
			      else
			      {				
				     parteSemPonto = parteSemPonto.substr(0,tamanho); 
				     break;
			      }
			   }
				
			   valor = parteSemPonto + parteComPonto + parteDecimal;
			}
			else
			{
				if (parteSemPonto == "")
				{
					indice= parteDecimal.indexOf(","); 
					//retirando a vírgula se tiver
					if (indice!= -1)
						parteDecimal = parteDecimal.substr(1);
				}
				valor = parteSemPonto + parteDecimal;
				
			}
			
			eval(campo + "='" + valor + "'");
			
			//IMPORTANTE:Devido ao uso do sqlencode do SIFU, esta linha está 				
			//recebendo dois plics antes e depois do campo valor, para a função 				
			//funcionar corretamente, deixar apenas um.
		}
	}		
	
	}
}


//-----------------------------------------------------------------------
// function vazio
// OBJETIVO: Verifica se o campo está vazio. 
// ENTRADA:
//	texto - texto ou campo que será submetido a validação
//------------------------------------------------------------------------
function vazio(texto) {
	if(document.activeElement.tagName == 'INPUT') {
		for(i=0; i < texto.length; i++)
			if(texto.charAt(i) != ' ')
				return false;
		return true;
	}
	else
		return false;
		
}


//-----------------------------------------------------------------------------------------------------------------
// function SaltaCampo
// OBJETIVO: Posiciona automaticamente o cursor de um campo para o outro. 
// ENTRADA:
// 	campo - índice do campo onde a função está sendo executada
//      prox  - índice do próximo campo onde o cursor será posicionado 
//	tammax - tamanho do atributo MAXLENGTH da tag <INPUT? do campo de chamada da função
//	teclapres - código da tecla ao se digitar no campo 
// EX.:
//	<input size="2" MAXLENGTH="2" name="PAR_DIA_NASC" tabindex="1" value="" onKeyup="SaltaCampo(1,2,2,event.keyCode);"> 
// <input size="2" MAXLENGTH="2" name="PAR_MES_NASC" tabindex="1" value="" onKeyup="SaltaCampo(2,3,2,event.keyCode);"> 
// <input size="4" MAXLENGTH="4" name="PAR_ANO_NASC" tabindex="1" value="">
//------------------------------------------------------------------------------------------------------------------
function SaltaCampo(campo,prox,tammax,teclapres)
{
	var tecla = teclapres;
	vr = document.forms[0][campo].value;

	if(vazio(document.all.item(document.activeElement.getAttribute('name')).value))
		document.all.item(document.activeElement.getAttribute('name')).value = '';
	
	if(!(tecla == 109 || tecla == 189 || tecla == 188 || tecla == 110 || tecla == 111 || tecla == 223 || tecla == 108 ))
	{
	 	tam = vr.length;	

	 	if (tecla != 0 && tecla != 9 && tecla != 16 )
			if ( tam == tammax )
				document.forms[0][prox].focus() ;
	}
}


//----------------------Valida campos no submit-------------------------

//Exemplo de Utilização:
/*
if (!Valida_Valor(document.frmSCPP.pretencao_salarial.value))
{
    alert("Valor inválido!")
    document.frmSCPP.pretencao_salarial.focus();
    return;
}
*/

function Valida_Valor(valor)
{
	
	//expressão de caracteres inválidos para valor
	var expressaoRegular= /[a-zA-Z\''\"!@#\$%¨\&\*\(\)\-_\+=\{\}\[\]´`\^~|<>:;?\\\/]/g; 
	resposta = valor.match(expressaoRegular); 
	if (resposta == null)//não tem nenhum dos caracteres que não podem ser aceitos
	{
		//expressão de caracteres aceitos - dígitos, ponto e vírgula
		expressaoRegular= /[0-9.,]/;
		resposta = valor.match(expressaoRegular);
		if (resposta)
		   return true;
		else
		   return false;
	}
	else
	   return false;
}

//------------------------------------------------------------------------------------------------------

//A função abaixo retira os espaços antes e depois do texto passado
function Trim(sTrim)
{
	var String = sTrim;
	var Resultado = String;

	//Retira espaços do inicio
	var i = 0;

	if (Resultado.charCodeAt(2-1) == '32'){
	}

	while (Resultado.charCodeAt(0) == '32'){
		Resultado = String.substring(i,String.length);
		i++;
	}

	//Retira espaços do final
	while(Resultado.charCodeAt(Resultado.length-1) == '32'){
		Resultado = Resultado.substring(0,Resultado.length-1);
	}
	String = "";
	return Resultado;
}

//Função replace
function replaceChars(entry,out,add) 
{
	//out - replace this
	//add - with this
	temp = "" + entry; // temporary holder
	
	while (temp.indexOf(out)>-1) {
	pos= temp.indexOf(out);
	temp = "" + (temp.substring(0, pos) + add + 
	temp.substring((pos + out.length), temp.length));
	}
	return temp;
}

//-------------------------------------------------------------------------------------------------------

//Funções abaixo desenvolvidas por Janete Amaral da Costa - CEENG/CEINT
//Utilizadas na página BuscaNCM.jsp para abrir o frame listagem_ncm.jsp

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);


function identBrowser() {
  if (document.all)
	return "ie";
  if (document.layers)
	return "ns4";
  if (document.getElementById)
	return "ns6";
}


// Mostra ou esconde um layer (<div>)
function gerenciarLayer() {
  var i, p, v, obj, args=gerenciarLayer.arguments;
  var browser = identBrowser();
  for (i=0; i<(args.length-1); i+=2) {
    if (browser == "ns6")
      obj = document.getElementById(args[i]);
    else
      obj = procurarObjeto(args[i])
    if (obj != null) {
      v = args[i+1];
      if (obj.style) {
        obj=obj.style;
        v=(v=='show')?'visible':(v='hide')?'hidden':v;
      }
      obj.visibility=v;
    }
  }
}


function procurarObjeto(n, d) {
  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=procurarObjeto(n,d.layers[i].document);
  return x;
}


function procurarObjetoPorTipo(nome, tipo) {
  var  xx, ii, obj;
  obj = null;
  if (identBrowser() == "ns6") {
    var vetor = document.getElementsByTagName(tipo);
    for (ii = 0; vetor.item(ii) != null; ii++) {
      if (nome == vetor.item(ii).getAttribute("name"))
        return vetor.item(ii);
    }
  }
  else {
    xx = (!document.all);
    if (!xx) 
      for (ii = 0; ii < document.all.length; ii++)
        if (document.all[ii].nodeName == tipo)
            if (document.all[ii].name == nome || document.all[ii].id == nome)
              return document.all[ii];
  }
  return obj;
}
//-------------------Fim das funções desenvolvidas pela Janete-------------






