
// Funçoes genéricas de validação
//
function ValidaTexto(valor) {
	var i = 0;
	// Testa se string vazia
	if (valor==''){
		return false;
	}
	else {
		// Testa se string só tem espaços
		for (i=0; i<valor.length; i++) {
			if (valor.substring(i,i+1)!=' ') return true;
		}
		return false;
	}
}

function FG_ValidaEmail(email) {
   if(email.indexOf('@') == -1) return false; 
   else return true;
}

function TemProtocolo(endereco) {
	index = endereco.indexOf(':');
	if (index!=-1) {
		if (endereco.substring(index+1,index+3)=='//') {
			return true;
		}
		else {
			return false;
		}
	}
	else {
		return false;
	}
}

function FG_Consiste_cpf(nu_cpf)
{
 if (nu_cpf == null)
    {
     return false;
    }
 if (nu_cpf.length != 11)
    {
     return false;
    }
 for (i=0;i<nu_cpf.length;i++)
     {
      if (!((nu_cpf.substring(i,i+1) >= '0') && (nu_cpf.substring(i,i+1) <= '9')))
         {
          return false;
         }
     }
 nu_cpf_dv=nu_cpf.substring(9,11);
 nu_cpf = nu_cpf.substring(0,9);
 for (k=1;k<3;k++)
     {
      soma = 0;
      multi = 1;
      for (i=nu_cpf.length-1;i>=0;i--)
          {
          multi++;
          soma += (parseInt(nu_cpf.substring(i,i+1),10) * multi); 
           }
      resto = (soma % 11);
      dv =0;
      if (resto > 1)
         {
          dv= 11 - resto;
         }
      nu_cpf +=dv; 
     }
return (nu_cpf_dv == nu_cpf.substring(9,11));
}
//

function FG_ValidaCPF(CPF) {

	var i = 0;
	var j = 0;
 
	if (CPF.length != 11)
		return false;

	for (i = 0; i < CPF.length; i++)
		if (CPF.charAt(i) >= "0" &&
			CPF.charAt(i) <= "9")
			continue;
		else
			return false;

	CPFdv = CPF.substring(9,11);
	CPFtmp = CPF.substring(0,9);

	for (j = 1; j < 3; j++) {

		soma = 0;
		multi = 1;

		for (i = CPFtmp.length - 1; i >= 0; i--) {
			multi++;
			soma += (parseInt(CPFtmp.charAt(i), 10) * multi); 
		}

		resto = (soma % 11);

		if (resto > 1)
			dv = 11 - resto;
		else
			dv = 0;

		CPFtmp += dv; 
	}
	
	return (CPFdv == CPFtmp.substring(9,11));
	}


function FG_ValidaCNPJ(CNPJ) {

	var i = 0;
	var j = 0;
	if (CNPJ.length != 14)
		return false;

	for (i = 0; i < CNPJ.length; i++)
		if (CNPJ.charAt(i) >= "0" &&
			CNPJ.charAt(i) <= "9")
			continue;
		else
			return false;

	CNPJdv = CNPJ.substring(12,14);
	CNPJtmp = CNPJ.substring(0,12);

	for (j = 1; j < 3; j++) {

		soma = 0;
		multi = 1;

		for (i = CNPJtmp.length - 1; i >= 0; i--) {
			multi++;
			if (multi>9){multi=2}
			soma += (parseInt(CNPJtmp.charAt(i), 10) * multi); 
		}

		resto = (soma % 11);

		if (resto > 1)
			dv = 11 - resto;
		else
			dv = 0;

		CNPJtmp += dv; 
	}

	return (CNPJdv == CNPJtmp.substring(12,14));
	}

//

function FG_Formata_Linha(Texto) 
{
    i=0;
	auxiliar="";
	while (i < Texto.length)
	{
	    if (Texto.charAt(i) == " ") 
		   {
	       auxiliar = auxiliar + "+";
		   }
		else
		   {
     	    if ((escape(Texto.charAt(i)) == "%0D") || (escape(Texto.charAt(i+1)) == "%0A"))
			    {
	            auxiliar = auxiliar + "%0D%0A";
				i++
				}
		    else
			    {
		       auxiliar = auxiliar + Texto.charAt(i);
			     }
			}
		i++;
	}
	return auxiliar;
}
function FG_Formata(Texto) 
{
    i=0;
	auxiliar="";
	while (i < Texto.length)
	{
	    if (Texto.charAt(i) == " ")
	       auxiliar = auxiliar + "+";
		else
		   auxiliar = auxiliar + Texto.charAt(i);
		i++;
	}
	return auxiliar
}

function FG_ValidaEmail(email)
{
   if(email.indexOf('@') == -1)
   {
     alert("Favor digitar o email com @ !");
     return false; 
    }

    else return true;
}

function FG_TiraBrancosData(Texto) 
{
        i=0;
	auxiliar="";
	while (i < Texto.length)
	{
	    if (Texto.charAt(i) == " ")
	       auxiliar = auxiliar + "";
	    else
		auxiliar = auxiliar + Texto.charAt(i);
		i++;
	}
	return auxiliar
};

function FG_ValData(SData)
{
 var Sano;
 var Smes;
 var Sdia;
  SData = FG_TiraBrancosData(SData);
  if ( !(SData.length==10) ) {
     return (false);
	  };
  Sdia = SData.substring(0,2);
  if (isNaN(Sdia)) {
     return(false);
	 };  
  Sdia = parseInt(Sdia,10);
  Smes = SData.substring(3,5);
  if (isNaN(Smes)) {
     return(false);
	 };  
  Smes = parseInt(Smes,10);
  Sano = SData.substring(6,10); 
  if (isNaN(Sano)) {
     return(false);
	 };  
  Sano = parseInt(Sano,10); 
  if ( Sano<0 ) { 
      return (false);
	  };
  if (Sano>2079) {
      return (false);
  }; 
  if (Sano<1900) {
      return (false);
  }; 
  if ((Sdia<1) || (Sdia>31)) { 
      return (false);
	  };
  if ((Smes<1) || (Smes>12)) { 
     return (false);
	  };
  if ( ((Smes==4) || (Smes==6) || (Smes==9) || (Smes==11)) && (Sdia > 30) ) {
      return (false);
  };
  if ( (Smes == 2) &&(Sdia > 29)) { 
     return (false);
	  };
  if ( (Smes == 2) && (Sdia == 29) && !(FG_Bissexto(Sano))) { 
     return (false);
	  };
   return (true);
}

function FG_Bissexto(ano)
{
  var resto;
  if (ano == 0) {
  return(true);
  }
  resto = (ano % 400);
  if (resto == 0) {
  return (true);
  }
  resto = (ano % 100);
  if (resto == 0) {
  return (false);
  }
  resto = (ano % 4);
  if (resto == 0) {
  return (true);
  }
  return (false);
};

function FG_InvData(SData)
{
 var Sano;
 var Smes;
 var Sdia;
  Sdia = SData.substring(0, 2);
  Smes = SData.substring(3, 5);
  Sano = SData.substring(6, 10); 
   return (Sano + Smes + Sdia); 
};
