/*********************************************************/
/* Este arquivo contém funções para validar campos de    */
/* formulários e outras funcoes de uso geral             */
/*********************************************************/

/*********************************************************/
/* Funcao para validar data no formato DD/MM/AAAA        */
/* Parametros: Data                                      */
/* Retorna: true se data válida e false caso contrario   */
/*********************************************************/
function validadata(Data)
{
    var err = 0
    string = Data
    var valid = "0123456789/"
    var ok = "yes";
    var temp;
    for (var i=0; i< string.length; i++) {
    temp = "" + string.substring(i, i+1);
    if (valid.indexOf(temp) == "-1") err = 1;
    }
    if (string.length != 10) err=1
    dia    = string.substring(0, 2)  // dia
    barra1 = string.substring(2, 3)  // '/'
    mes    = string.substring(3, 5)  // mês
    barra2 = string.substring(5, 6)  // '/'
    ano    = string.substring(6, 10) // ano

    if (dia<1 || dia>31) err = 1
    if (barra1 != '/') err = 1
    if (mes<1 || mes>12) err = 1
    if (barra2 != '/') err = 1
    if (ano<1500 || ano>4000) err = 1
    if (mes==4 || mes==6 || mes==9 || mes==11)
    {
       if (dia==31) err=1	
    }
    if (mes==2)
    {
       var g=parseInt(ano/4)
       if (isNaN(g)) {
       err=1
       }
       if (dia>29) err=1
       if (dia==29 && ((ano/4)!=parseInt(ano/4))) err=1 //Verifica ano bissexto
    }
    if (err==1)
    {
       return(false);
    } 
    else
    {
       return(true);       
    }
}


/********************************************************************/
/* Funcao para validar duas datas, se data inicial <= data fim       */
/* Parametros: Data inicial, Data final (formato DD/MM/AAAA válido) */
/* Retorna: true se data inicial < data fim e false caso contrario  */
/********************************************************************/
function comparadata(dataini, datafim)
{
   var dtInicial = dataini.substr(6,4) + dataini.substr(3,2) + dataini.substr(0,2);
   var dtFinal   = datafim.substr(6,4) + datafim.substr(3,2) + datafim.substr(0,2);
   if (dtInicial > dtFinal) 
      return (false);
   else
      return (true);
}


/*********************************************************/
/* Funcao para validar campo numérico                    */
/* Parametros: Numero                                    */
/* Retorna: true se número válido e false caso contrario */
/*********************************************************/
function validanumero(numero)
{
    var valid = "0123456789"
    var ok = "yes";
    var temp;
    var Num;

    for (var i=0; i<numero.length; i++) {
     Num = numero.replace(",","");
     Num = numero.replace(".","");
    }

    if (parseInt(Num) == 0)
     return(false);

    for (var i=0; i<numero.length; i++) {
    temp = "" + numero.substring(i, i+1);
    if (valid.indexOf(temp) == "-1") ok = "no";   
    } 
    if (ok == "no") {
       return(false);
    }
   return(true);
}


/*************************************************************/
/* Funcao para validar campo numérico incluindo o valor zero */
/* Parametros: Numero                                        */
/* Retorna: true se número válido e false caso contrario     */
/*************************************************************/
function validanumero2(numero)
{
    var valid = "0123456789"
    var ok = "yes";
    var temp;
    var Num;

    for (var i=0; i<numero.length; i++) {
     Num = numero.replace(",","");
     Num = numero.replace(".","");
    }

    for (var i=0; i<numero.length; i++) {
    temp = "" + numero.substring(i, i+1);
    if (valid.indexOf(temp) == "-1") ok = "no";   
    } 
    if (ok == "no") {
       return(false);
    }
   return(true);
}


function validafloat(numero)
{
    var valido = "0123456789.,"
    var ok = "yes";
    var temp;
    var pos;
    var ponto = 0;
    var virg = 0;
    
    for(var i=0; i<numero.length; i++)
    {
		pos = numero.substring(i, i+1);
		temp += pos;
		if(valido.indexOf(pos) == "-1"){
			ok = "no";
		}
		if(pos == ","){
			virg++;
			if(virg > 1){
				ok = "no";
			}
		}
		if(pos == "."){
			ponto++;
			if(ponto > 1){
				ok = "no";
			}
		}
    } 
    if (ok == "no") {
       return(false);
    }

   return(true);
}


/************************************************************/
/* Funcao para tirar caracteres nao numericos de uma string */
/* Parametros: Numero com mascara                           */
/* Retorna: Numero sem mascara                              */ 
/* Autor: Vanderlei em 29/08/01                             */
/************************************************************/
function desmascaranumero(numero)
{
    var valid = "0123456789"
    var temp;
    var numerook = "";
    for (var i=0; i<numero.length; i++) {
       	temp = numero.substr(i, 1);
    	if (valid.indexOf(temp) != "-1") 
	   numerook = numerook + temp;
    } 
    return(numerook);
}

/************************************************************************/
/* Funcao para verificar se existe virgula (,) numa string              */
/* Parametro: campo (eh a string a ser verificada)                      */
/* Retorna: false se houver virgula na string e true caso contrario     */ 
/************************************************************************/
function verificavirgula(campo)
{
    var valid = ","
    var ok = "yes";
    var temp = "";
    var numVirgulas = 0;
    
    for (var i=0; i<campo.length; i++)
    {
    	temp = "" + campo.substring(i, i+1);
    	if(campo.substring(i, i+1) == ","){
    		numVirgulas++;
    		if(numVirgulas > 1){
    			ok = "no";
    		}
    	}
	    if (valid.indexOf(temp) != "-1") ok = "no";   
    } 
    if (ok == "no")
    {
       return(false);
    }
   return(true);
}

/************************************************************************/
/* Funcao para verificar se existe virgula (,) numa string              */
/* Parametro: campo (eh a string a ser verificada)                      */
/* Retorna: false se houver virgula na string e true caso contrario     */ 
/************************************************************************/
function verificavirgula2(campo)
{
    var valido = ","
    var temp = "";
    var pos = "";
    var numVirgulas = 0;
    
    for (var i=0; i<campo.length; i++)
    {
    	pos = campo.substring(i, i+1);
    	temp += pos;
    	if(valido.indexOf(pos) != -1){
    		ok = 
    		numVirgulas++;
   		}
   		if(numVirgulas > 1){
			return(false);
	   	}
	} 
	
	return(true);
}

/************************************************************************/
/* Funcao para verificar se existe o caracter numa string               */
/* Parametro: campo (eh a string a ser verificada)                      */
/*            caracter (o caracter a ser pesquisado)					*/
/* Retorna: false se houver virgula na string e true caso contrario     */
/************************************************************************/
function verificaCaracter(campo,caracter)
{
    var ok = "yes";
    
    for (var i=0; i<campo.length; i++)
    {
    	if(campo.substring(i, i+1) == caracter){
   			ok = "no";
    	}
    } 
    if (ok == "no")
    {
       return(false);
    }
	return(true);
}


/************************************************************************/
/* Funcao para verificar se existe ponto (.) numa string                */
/* Parametro: campo (eh a string a ser verificada)                      */
/* Retorna: false se houver ponto na string e true caso contrario       */ 
/* Autor: Vanderlei                                                     */
/************************************************************************/
function verificaponto(campo)
{
    var valid = "."
    var ok = "yes";
    var temp;
    for (var i=0; i<campo.length; i++)
    {
    	temp = "" + campo.substring(i, i+1);
	    if (valid.indexOf(temp) != "-1") ok = "no";   
    } 
    if (ok == "no")
    {
       return(false);
    }
   return(true);
}

/*********************************************************/
/* Funcao para validar CPF                               */
/* Parametros: Numero do CPF sem pontos e sem dígitos    */
/* Retorna: true se número válido e false caso contrario */
/*********************************************************/
function validaCPF(CPF)
{
  var CPFaux = CPF;
  var NR_CPF = CPFaux.substr(0,9);
  var NR_DV  = CPFaux.substr(9,2);

    if (CPFaux.length != 11){
     return(false);
    }

    if (CPFaux == "00000000000"){
     return(false);
    }
    if (CPFaux == "000000000-00"){
     return(false);
    }
    if (CPFaux == "11111111111"){
     return(false);
    }
    if (CPFaux == "111111111-11"){
     return(false);
    }
    if (CPFaux == "22222222222"){
     return(false);
    }
    if (CPFaux == "222222222-22"){
     return(false);
    }
    if (CPFaux == "33333333333"){
     return(false);
    }
    if (CPFaux == "333333333-33"){
     return(false);
    }
    if (CPFaux == "44444444444"){
     return(false);
    }
    if (CPFaux == "444444444-44"){
     return(false);
    }
    if (CPFaux == "55555555555"){
     return(false);
    }
    if (CPFaux == "555555555-55"){
     return(false);
    }
    if (CPFaux == "66666666666"){
     return(false);
    }
    if (CPFaux == "666666666-66"){
     return(false);
    }
    if (CPFaux == "77777777777"){
     return(false);
    }
    if (CPFaux == "777777777-77"){
     return(false);
    }
    if (CPFaux == "88888888888"){
     return(false);
    }
    if (CPFaux == "888888888-88"){
     return(false);
    }
    if (CPFaux == "99999999999"){
     return(false);
    }
    if (CPFaux == "999999999-99"){
     return(false);
    }

  if(!validanumeroCPF(NR_CPF, NR_DV,"CPF do Declarante"))
     return(false);
  else
     return(true);
}

function validanumeroCPF(rcpf1,rcpf2,c) 
{
   d1 = 0;
   for (i=0;i<9;i++) 
     d1 += rcpf1.charAt(i)*(10-i);
   d1 = 11 - (d1 % 11);
   if (d1>9) d1 = 0;
  
   if (rcpf2.charAt(0) != d1) 
     return false;
  
   d1 *= 2;
   for (i=0;i<9;i++) 
     d1 += rcpf1.charAt(i)*(11-i);
   d1 = 11 - (d1 % 11);
   if (d1>9) d1 = 0;
  
   if (rcpf2.charAt(1) != d1) 
     return false;
   return true;
}

/*********************************************************/
/* Função para validar CNPJ                              */
/* Parâmetros: Número do CNPJ sem pontos e sem dígitos   */
/* Retorna: true se número válido e false caso contrário */
/*********************************************************/
function validaCGC(cgc)
{
  /*Função que valida o cgc/cnpj através do dígito verificador*/
  var cgcCalc = cgc.substr(0,12);  
  var cgcSoma = 0;
  var cgcDigit = 0;  
  var digit = "";    
  
  for (i = 0;  i < 4;  i++)
  {
    cgcSoma = cgcSoma + parseInt(cgcCalc.charAt(i)) * (5 - i);
  } 
  
  for (i = 0;  i < 8;  i++)
  {
    cgcSoma = cgcSoma + parseInt(cgcCalc.charAt(i+4)) * (9 - i);            
  }    
 
  cgcDigit = 11 - cgcSoma%11;       

  if ((cgcDigit == 10) || (cgcDigit == 11))
  {     
    cgcCalc = cgcCalc + "0";        
  }
  else
  {     
    digit = digit + cgcDigit; 
    cgcCalc = cgcCalc + (digit.charAt(0));
  }
  
  cgcSoma = 0;
  
  for (i = 0;  i < 5;  i++)
  {
    cgcSoma = cgcSoma + parseInt(cgcCalc.charAt(i)) * (6 - i);    
  }  
  
  for (i = 0;  i < 8;  i++)
  {
    cgcSoma = cgcSoma + parseInt(cgcCalc.charAt(i+5)) * (9 - i);    
  }

  cgcDigit = 11 - cgcSoma%11;         
    
  if ((cgcDigit == 10) || (cgcDigit == 11))
  {    
    cgcCalc = cgcCalc + "0";    
  }
  else
  {     
    digit = "";
    digit = digit + cgcDigit; 
    cgcCalc = cgcCalc + (digit.charAt(0))        
  }
  
  if (cgc != cgcCalc) 
  {
    return(false);
  }
  else
  {
    return(true);
  }
}

// EM CONSTRUCAO NAO ESTA FUNCIONANDO AINDA!!!!
/****************************************************************************/
/* Funcao para tirar os espacos em branco da direita e da esquerda da string*/
/* Parametros: string                                                       */
/* Retorna: string sem os espacos em branco da direita e da esquerda        */
/****************************************************************************/
/*function trim(string)
{
   var stringvalida = "";
   var string_array = new Array(); 
   tamanho = string.length; // tamanho da string
   for (i = 0; i < tamanho; i++){
       string_array[i] = string.substr(i, 1);       
   }  
   for (j = 0; j < tamanho; j++){
       if (string_array[j] != " "){
          stringvalida = stringvalida.concat(string_array[j]);         
       }
   }     
   return(stringvalida);  
}
*/
/*******************************************************************/
/* Funcao para tirar caracteres em branco da esquerda e da direita */
/* de uma string. Simula o trim do VB Script */
/* Parametros: String com espacos em branco */
/* Retorna: String sem os brancos a esquerda e a direita */ 
/* Autor: Vanderlei em 05/11/01 */
/*******************************************************************/

//function trim2(string)
/*function trim(string)
{
   var stringvalida = "";
   var contador = 0;

   tamanho = string.length; // tamanho da string

   //varre da esquerda para a direita 
   for (i = 0; i < tamanho; i++){
       if (string.substr(i, 1) == " ")
          contador++;
       else
          i = tamanho;
   } 
   stringvalida = string.substr(contador); 

   tamanho = stringvalida.length; // tamanho da string 

   //varre da direita para a esquerda
   for (i = tamanho-1; i >0; i--){
       if (string.substr(i, 1) == " ")
          contador++;
       else
          i = 0;
   } 
   stringvalida = stringvalida.substr(0, tamanho - contador); 

   return(stringvalida); 
}*/

//Função mais simples
//Israel Rios (6 julho 2005)
function trim(str)
{
	return (String(str).replace(/^\s*|\s*$/g,""));
}




// EM TESTES
/**********************************************************/
/* Funcao para validar horário no formato hh:mm           */
/* Parametros: horário                                    */
/* Retorna: true se horário válido e false caso contrario */
/**********************************************************/
function validahorario(horario)
{    
  var ok    = "yes";
  var string = horario;
  var valid = "0123456789:"
  var quebra;
  var temp;

  for (var i=0; i< string.length; i++) {
    temp = "" + string.substring(i, i+1);
    if (valid.indexOf(temp) == "-1") ok = "no";
  }

  if ((ok == "yes") && (string.length != 4 && string.length != 5)) ok = "no";

  if ((ok == "yes") && (string.indexOf(":") == "-1")) ok = "no";

  if (ok == "yes"){
    quebra = string.split(":");
    if (quebra[0].length == 1){
      if (quebra[0] < 0 || quebra[0] > 9) ok = "no";
      if (string.substr(1,1) != ":") ok ="no";
    }
    else {
      if (quebra[0].length == 2)
        {
        if (quebra[0] < 0 || quebra[0] > 23) ok = "no";    
        if (string.substr(2,1) != ":") ok ="no";
      }
      else
      {
        ok = "no";
      }
   }
   }

  if ((ok == "yes") && (quebra[1].length == 2)) {
    if (quebra[1] < 0 || quebra[1] > 59) ok = "no"; 
  }   
  else {
    ok = "no";     
  }  

  if (ok == "no") {
    return(false);
  }
  return(true);
}

// Lu
function validahorario2(horario)
{    
  var ok    = "yes";
  var string = horario;
  var valid = "0123456789:"
  var quebra;
  var temp;

  for (var i=0; i< string.length; i++) {
    temp = "" + string.substring(i, i+1);
    if (valid.indexOf(temp) == "-1") ok = "no";
  }

  if ((ok == "yes") && (string.indexOf(":") == "-1")) ok = "no";

  if (ok == "yes")
    {
    quebra = string.split(":");
    if (quebra[0].length == 1)
    {
      if (quebra[0] < 0 || quebra[0] > 9) ok = "no";
      if (string.substr(1,1) != ":") ok ="no";
    }
  }

  if ((ok == "yes") && (quebra[1].length == 2)) {
    if (quebra[1] < 0 || quebra[1] > 59) ok = "no"; 
  }   
  else {
    ok = "no";     
  }  

  if (ok == "no") {
    return(false);
  }

  return(true);
}

/********************************************************************/
/* Funcao para validar dois horarios, se hora inicial <= hora fim    */
/* Parametros: Hora inicial, Hora final (formato HH:MM válido)       */
/* Retorna: true se hora inicial < hora fim e false caso contrario   */
/* Autora : Lucilene Paula Cabral em 19/09/2001                      */ 
/********************************************************************/
function comparahora(horaini, horafim)
{
   var hrInicial = horaini.substr(0,2) + horaini.substr(3,2);
   var hrFinal   = horafim.substr(0,2) + horafim.substr(3,2);
   if (hrInicial >= hrFinal) 
      return (false);
   else
      return (true);
}




/********************************************************************** */
/* Funcao para verificar o separador decimal de um numero               */
/* Parametro: Numero (Eh necessario que exista um ponto ou uma virgula) */
/* Retorna:  true se o separador decimal de uma string de entrada for   */ 
/*           virgula e retorna false se o separador for ponto           */ 
/* Autor: Vanderlei em 31/08/01                                         */
/************************************************************************/
function VerificaSeparadorDecimal(Entrada)
{
  var qtde = 0;
  for (var i=Entrada.length-1; i>=0; i--)
  	{
		switch (Entrada.substr(i, 1)) {
		case ',':
    //			if (qtde != 3) 
	 			return(true);   		 			
	//		else
    //				return(false);
        		break;
     		case '.':
	    		if (qtde != 3)
	 			return(false);
    			else
    				return(true);
        		break;
     		default:
        		qtde++;
        		break;
  		}
  	} 
}

/************************************************************/
/* Funcao para simula o formatnumber do VBScript, ou seja,  */
/* Coloar o numero no formato 99.999,99                     */
/* Parametro: Numero como foi digita                        */
/* Retorna: Numero no formato 99.999,99                     */ 
/* Autor: Vanderlei em 31/08/01                             */
/************************************************************/
function FormataNumero(Entrada)
{
//este trecho do codigo simula o formatnumber do VBScript, Vanderlei
//inicio
		 //if (trim(Entrada) != "")
		 if (Entrada != "")
		  {
		 	if ((!verificavirgula(Entrada)) || (!verificaponto(Entrada)))
			 {
		 	   if (!VerificaSeparadorDecimal(Entrada))	
			  	{
					var PosPonto = Entrada.split(".");
					if (PosPonto[0].length > 3)
					 {
						if (!verificavirgula(PosPonto[0]))
					 	 {
							var PosVirgula = PosPonto[0].split(",");
							Entrada = PosVirgula[0] + "." + PosVirgula[1] + "," + PosPonto[1];
					 	 }
					 	else
					 	 {
							Entrada = PosPonto[0].substr(0, PosPonto[0].length-3) + "." + PosPonto[0].substr(PosPonto[0].length-3, 3) + "," + PosPonto[1];					 	 	
					 	 }
					 }
					else
         				Entrada = PosPonto[0] + "," + PosPonto[1];
	         	}

			 	if (verificavirgula(Entrada))
			 		Entrada = Entrada + ",00" ;
		 		else
			  	{
					var PosVirgula = Entrada.split(",");
					for (i=PosVirgula[1].length; i<2;i++)
						Entrada = Entrada + "0"
			  	}
			 }
			else
				Entrada = Entrada + ",00" ;
		   //coloca o separador de milhar
			var PosVirgula = Entrada.split(",");
			if (PosVirgula[0].length > 3)
			 {
				if (!verificaponto(PosVirgula[0]))
			 	 {
					var PosPonto = PosVirgula[0].split(".");
					var MilharSemPonto = PosPonto[0] + PosPonto[1];
					Entrada = MilharSemPonto.substr(0, MilharSemPonto.length-3) + "." + MilharSemPonto.substr(MilharSemPonto.length-3, 3) + "," + PosVirgula[1]; 
				 }
			 	else
					Entrada = PosVirgula[0].substr(0, PosVirgula[0].length-3) + "." + PosVirgula[0].substr(PosVirgula[0].length-3, 3) + "," + PosVirgula[1];
			 }
		 }
   return(Entrada);
}

/************************************************************/
/* Colocar o numero no formato 99.999                       */
/* Parametro: Numero como foi digita                        */
/* Retorna: Numero no formato 99.999.999                    */ 
/************************************************************/
function FormataNumero2(Entrada)
{
	virgs = "";

	if((Entrada != "")&&(Entrada != "NULL"))
	{
		virsg = "";
		if ((!verificavirgula(Entrada)) || (!verificaponto(Entrada)))
		{
			if (VerificaSeparadorDecimal(Entrada) && verificaponto(Entrada))//se tiver virgula
			{
				var PosVirg = Entrada.split(",");
				var virg = Entrada.search(",");

				if (PosVirg[0].length > 3)
				{
					Entrada = Entrada.substr(0,virg-3) + "." + Entrada.substr(virg-3,Entrada.length);
				}
			}
		}
		else
		{
			if(Entrada.length > 6)
			{
				Entrada = Entrada.substring(0,Entrada.length-6) + "." + 
							Entrada.substring(Entrada.length-6,Entrada.length-3) + "." + 
							Entrada.substring(Entrada.length-3,Entrada.length)
			}
			else
			{
				if(Entrada.length > 3)
				{
					Entrada = Entrada.substring(0,Entrada.length-3) + "." + 
								Entrada.substring(Entrada.length-3,Entrada.length)
				}
			}
		}
	}
	return(Entrada);
}

/********************************************************************** */
/* Funcao para validar CEP                                              */
/* Parametro: CEP como foi digitado                                     */
/* Retorna:  CEP no formato 99999-999 ou true/false                     */ 
/* Autor: Marcel Mathias Chiquim          em 06/09/2002                 */
/************************************************************************/
function validacep(CEP)
{
    var err = 0
    string = CEP
    var valid = "0123456789-"
    var ok = "yes";
    var temp;
    var CepSemTraco;

    for (var i=0; i< string.length; i++) 
    {
	    CepSemTraco = string.replace("-","")
    }
  
     if(parseInt(CepSemTraco) == 0){
      return(false)
     }

     if(parseInt(CepSemTraco) >= 90000000){
      return(false)
     }

     if(parseInt(CepSemTraco) <= 10000000){
      return(false)
     }


    for (var i=0; i< string.length; i++) 
    {
	    temp = "" + string.substring(i, i+1);
  	    if (valid.indexOf(temp) == "-1") return(false);
    }

    if (string.length == 9) 
    {
	 traco    = string.substring(5, 6)
  	 if (traco != "-") err = 1
     CEPaux = CEP	
    }

    if(string.length == 8) 
    {
		CEPaux1 = string.substring(0, 5)
		CEPaux2 = string.substring(5, 8)
 		CEPaux = CEPaux1 + "-" + CEPaux2
               return(CEPaux);       
    }

    if (string.length < 8) err=1

    if (err==1)
       return(false);
       else
       return(true);       
}
/********************************************************************/
/* Funcao comparadata alterada para não validar se ambas são iguais */
/********************************************************************/
function comparadata2(dataini, datafim)
{
   var dtInicial = dataini.substr(6,4) + dataini.substr(3,2) + dataini.substr(0,2);
   var dtFinal   = datafim.substr(6,4) + datafim.substr(3,2) + datafim.substr(0,2);
   if (dtInicial >= dfFinal) 
      return (false);
   else
      return (true);
}


/********************************************************************** */
/* Funcao para validar CEP                                              */
/* Parametro: CEP como foi digitado                                     */
/* Retorna:  CEP no formato 99999-999 ou true/false                     */ 
/* Autor: Marcel em 04/10/2001                                          */
/************************************************************************/
function validacep2(CEP)
{
    var err = 0
    string = CEP
    var valid = "0123456789-"
    var ok = "yes";
    var temp;
    for (var i=0; i< string.length; i++) 
    {
	    temp = "" + string.substring(i, i+1);
  	    if (valid.indexOf(temp) == "-1") err = 1;
    }
    if (string.length == 9) 
    {
	 traco    = string.substring(5, 6)
  	 if (traco != "-") err = 1
CEPaux = formCadCurriculo.txtCep.value	
    }
    if(string.length == 8) 
    {
		CEPaux1 = string.substring(0, 5)
		CEPaux2 = string.substring(5, 8)
		CEPaux = CEPaux1 + "-" + CEPaux2
                return(CEPaux);       
    }
    if (string.length < 8) err=1
    if (err==1)
       return(false);
       else
       return(true);       
}


/********************************************************************** */
/* Funcao para validar CPF                                              */
/* Complementa validacpf, validando pontos, traço e tamanho do campo    */
/* Autor: Diego em 11/10/2001                                           */
/************************************************************************/

function validacpf2 (cpf){
    var err = 0
    string = cpf
    var valid = "0123456789-."
    var ok = "yes";
    var temp;
    for (var i=0; i< string.length; i++) 
    {
	    temp = "" + string.substring(i, i+1);
  	    if (valid.indexOf(temp) == "-1") err = 1;
    }

    if (string.length == 14) 
    {
	 traco    = string.substring(11, 12)
  	 if (traco != "-") err = 1
	 ponto    = string.substring(3, 4)
  	 if (ponto != "-") err = 1
	 ponto    = string.substring(7, 8)
  	 if (ponto != "-") err = 1
    }

    if (string.length != 14 && string.length != 11) 
    {
	err = 1;
    }

    if (string == "00000000000")
    {
	err = 1;
    }

    if (string == "000.000.000-00")
    {
	err = 1;
    }

    if (string == "11111111111")
    {
	err = 1;
    }
    if (string == "111.111.111-11")
    {
	err = 1;
    }
    if (string == "22222222222")
    {
	err = 1;
    }
    if (string == "222.222.222-22")
    {
	err = 1;
    }

    if (string == "333.333.333-33")
    {
	err = 1;
    }

    if (string == "33333333333")
    {
	err = 1;
    }

    if (string == "44444444444")
    {
	err = 1;
    }
    if (string == "444.444.444-44")
    {
	err = 1;
    }

    if (string == "55555555555")
    {
	err = 1;
    }

    if (string == "555.555.555-55")
    {
	err = 1;
    }

    if (string == "666.666.666-66")
    {
	err = 1;
    }

    if (string == "66666666666")
    {
	err = 1;
    }

    if (string == "77777777777")
    {
	err = 1;
    }

    if (string == "777.777.777-77")
    {
	err = 1;
    }

    if (string == "888.888.888-88")
    {
	err = 1;
    }

    if (string == "88888888888")
    {
	err = 1;
    }

    if (string == "99999999999")
    {
	err = 1;
    }
    if (string == "999.999.999-99")
    {
	err = 1;
    }

    if (err==1)
       return(false);
       else
       return(true);       
}

/***********************************************************************/
/* Funcao para validar UF                                              */
/* Invalida os espaços em branco                                       */
/* Autor: Diego em 19/10/2001                                          */
/***********************************************************************/

function validauf(uf)
{
    var err = 0
    string = uf
    var valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    var ok = "yes";
    var temp;
    for (var i=0; i< string.length; i++) {
    temp = "" + string.substring(i, i+1);
    if (valid.indexOf(temp) == "-1") err = 1;
    }
    if (string.length != 2) err=1
    if (err==1)
    {
       return(false);
    } 
    else
    {
       return(true);       
    }
}

/***********************************************************************/
/* Funcao para validar Telefone                                        */
/* Autor: Diego em 31/10/2001                                          */
/***********************************************************************/
function validafone(numero)
{
    var valid = "0123456789-() "
    var ok = "yes";
    var temp;
    for (var i=0; i<numero.length; i++) {
    temp = "" + numero.substring(i, i+1);
    if (valid.indexOf(temp) == "-1") ok = "no";   
    } 
    if (ok == "no") {
       return(false);
    }
   return(true);
}

/***********************************************************************/
/* Funcao para procurar na página                                       */
/* Autor: Cleber em 18/06/2001                                          */
/***********************************************************************/


<!-- 
var NS4 = (document.layers);
var IE4 = (document.all);
var win = this;
var n   = 0;

function findInPage(str) {
var txt, i, found;
if (str == "")
return false;
if (NS4) {
if (!win.find(str))
while(win.find(str, false, true))
n++;
else
n++;
if (n == 0) alert(str + " não localizado na página.");
}
if (IE4) {
txt = win.document.body.createTextRange();
for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
txt.moveStart("character", 1);
txt.moveEnd("textedit");
}
if (found) {
txt.moveStart("character", -1);
txt.findText(str);
txt.select();
txt.scrollIntoView();
n++;
}
else {
if (n > 0) {
n = 0;
findInPage(str);
}
else
alert(str + " não localizado na página.");
}
}
return false;
}

/*funcao para validar CGC/CNPJ*/

function validaCGC(cgc)
{
  /*Função que valida o cgc/cnpj através do dígito verificador*/
  
  var cgcCalc = cgc.substr(0,12);  
  var cgcSoma = 0;
  var cgcDigit = 0;  
  var digit = "";    
  
  for (i = 0;  i < 4;  i++)
  {
    cgcSoma = cgcSoma + parseInt(cgcCalc.charAt(i)) * (5 - i);
  } 
  
  for (i = 0;  i < 8;  i++)
  {
    cgcSoma = cgcSoma + parseInt(cgcCalc.charAt(i+4)) * (9 - i);            
  }    
 
  cgcDigit = 11 - cgcSoma%11;       

  if ((cgcDigit == 10) || (cgcDigit == 11))
  {     
    cgcCalc = cgcCalc + "0";        
  }
  else
  {     
    digit = digit + cgcDigit; 
    cgcCalc = cgcCalc + (digit.charAt(0));
  }
  
  cgcSoma = 0;
  
  for (i = 0;  i < 5;  i++)
  {
    cgcSoma = cgcSoma + parseInt(cgcCalc.charAt(i)) * (6 - i);    
  }  
  
  for (i = 0;  i < 8;  i++)
  {
    cgcSoma = cgcSoma + parseInt(cgcCalc.charAt(i+5)) * (9 - i);    
  }

  cgcDigit = 11 - cgcSoma%11;         
    
  if ((cgcDigit == 10) || (cgcDigit == 11))
  {    
    cgcCalc = cgcCalc + "0";    
  }
  else
  {     
    digit = "";
    digit = digit + cgcDigit; 
    cgcCalc = cgcCalc + (digit.charAt(0))        
  }
  
  if (cgc != cgcCalc) 
  {
    //alert("CGC incorreto!");
    return(false);
  }
  else
  {
    //alert("CGC correto!");
    return(true);
  }
}

/*
Funcao para validar email
feita por: Deni Maycon Bertipáglia Leocádio
valores de retorno: true se válido, false para não válido
*/


//
function validaEmail(email)
{
	email = trim(email);
	cp = 0;
	ca = 0;
	cc = 0;
	i  = 0;
	
	for(i;i<email.length;i++)
	{
		if (email.charAt(i) == '@')		
		{
			ca++;					
			if (i != 0)//nao é o primeiro caracter
			{
				if (email.charAt(i+1) == '.' || email.charAt(i+1) == ' ')
					return false;
			}
			else			
				return false;
		}
		else if (email.charAt(i) == '.')
		{
			cp++;			
			if (i != 0)//nao é o primeiro caracter
			{
				if (email.charAt(i+1) == ' ' || email.charAt(i+1) == '')
					return false;
			}
			else			
				return false;
		}
		else
			cc++;
	}		
	
	if(cc-ca+cp == 0)
		return false;
	else if (ca != 1)
		return false;
	else if (cp < 1)
		return false;
	else
		return true;
}
//

/*
função que redireciona para uma pagina através de um form submetido.
Objetivo: impedir que se percam as sessions de login.
*/
function ir(url)
{	
	document.write("<html><body><form id='frm' action='"+ url + "' method='post'></form></body></html>");
	document.getElementById('frm').submit();
}


/***********************************************************************/
/* Funcao para formatar datas incompletas                              */
/* Completa a data para ficar no formato dd/mm/aaaa                    */
/***********************************************************************/
function formataData(data)
{
	var dataFormatada;
	
	dataFormatada = data.substr(0,data.search("/"));
	data2 = data.substr(dataFormatada.length+1, data.length);
	if(dataFormatada.length < 2)
		dataFormatada = "0" + dataFormatada + "/";
	else
		dataFormatada = dataFormatada + "/";

	mesF = data2.substr(0, data2.search("/"));
	if(mesF.length < 2)
		dataFormatada = dataFormatada + "0" + mesF + "/";
	else
		dataFormatada = dataFormatada + mesF + "/";

	data2 = data2.substr(mesF.length+1, data.length);
		
	anoF = data2;

	dataFormatada = dataFormatada + anoF;

	
	return(dataFormatada);
}

/***********************************************************************/
/* Funcao para validar números decimais                                */
/***********************************************************************/
function validaDecimal(numero)
{
	var pos;
	var ok="sim";
	var virg;
	var valido = "0123456789,";

	for(var i=0; i<numero.length; i++)
   {
		pos = numero.substring(i, i+1);

		if(valido.indexOf(pos) == "-1"){
			ok = "no";
		}
		if(pos == ","){
			virg++;
			if((virg > 1)||(i == 0)||(i == numero.length-1)){
				ok = "no";
			}
		}
    } 
    if (ok == "no") {
       return(false);
    }
    
    return(true);
}
