function testa_caracter(caracter)//função para validar qualquer caracter que nao seja o da listagem no momento da digitação
{
	var strValidos ='abcdefghijklmnopqrstuvwxyz0123456789';
	qtd = caracter.length;
	qtd--;
	testa = caracter.substr( qtd, [1] );
	if ( strValidos.indexOf( testa ) == -1 )
	{
		alert("Não é permitido caracter em branco, letras maiusculas ou com acentos!");
		document.cadastro.end_virtualField.value = "";
		document.cadastro.end_virtualField.focus();
	}
}
function testa_ddd(caracter)//função para validar qualquer caracter que nao seja o da listagem no momento da digitação
{
	var strValidos =' 0123456789';
	qtd = caracter.length;
	qtd--;
	testa = caracter.substr( qtd, [1] );
	if ( strValidos.indexOf( testa ) == -1 )
	{
		document.cadastro.ddd.value = "";
		alert("DDD Somente com numeros !");
		document.cadastro.ddd.focus();
	}
}
function testa_tel1(caracter)//função para validar qualquer caracter que nao seja o da listagem no momento da digitação
{
	var strValidos =' 0123456789';
	qtd = caracter.length;
	qtd--;
	testa = caracter.substr( qtd, [1] );
	if ( strValidos.indexOf( testa ) == -1 )
	{
		document.cadastro.tel1.value = "";
		alert("Telefone Somente com numeros !");
		document.cadastro.tel1.focus();
	}
}
function testa_num(caracter)//função para validar qualquer caracter que nao seja o da listagem no momento da digitação
{
	var strValidos =' 0123456789';
	qtd = caracter.length;
	qtd--;
	testa = caracter.substr( qtd, [1] );
	if ( strValidos.indexOf( testa ) == -1 )
	{
		document.cadastro.num.value = "";
		alert("Somente numeros !");
		document.cadastro.tel1.focus();
	}
}
function testa_qtd(caracter)//função para validar qualquer caracter que nao seja o da listagem no momento da digitação
{
	var strValidos ='0123456789';
	qtd = caracter.length;
	qtd--;
	testa = caracter.substr( qtd, [1] );
	if ( strValidos.indexOf( testa ) == -1 )
	{
		alert("Coloque somente numeros!");
		document.cadastro.qtd.value = "aaa";
		document.cadastro.qtd.focus();
	}
}
function testa_ddd2(caracter)//função para validar qualquer caracter que nao seja o da listagem no momento da digitação
{
	var strValidos ='0123456789';
	qtd = caracter.length;
	qtd--;
	testa = caracter.substr( qtd, [1] );
	if ( strValidos.indexOf( testa ) == -1 )
	{
		alert("Coloque somente dois numeros !");
		document.cadastro.ddd2Field.value = "";
		document.cadastro.ddd2Field.focus();
	}
}
function testa_email(pVal)//funcao para validar email
{
	var email = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	return email.test(pVal);
}

function testa_cpf(numcpf)
{
	x = 0;
	soma = 0;
	dig1 = 0;
	dig2 = 0;
	texto = "";
	numcpf1="";
	len = numcpf.length; x = len -1;
	// var numcpf = "12345678909";
	for (var i=0; i <= len - 3; i++) {
		y = numcpf.substring(i,i+1);
		soma = soma + ( y * x);
		x = x - 1;
		texto = texto + y;
	}
	dig1 = 11 - (soma % 11);
	if (dig1 == 10) dig1=0 ;
	if (dig1 == 11) dig1=0 ;
	numcpf1 = numcpf.substring(0,len - 2) + dig1 ;
	x = 11; soma=0;
	for (var i=0; i <= len - 2; i++) {
		soma = soma + (numcpf1.substring(i,i+1) * x);
		x = x - 1;
	}
	dig2= 11 - (soma % 11);
	if (dig2 == 10) dig2=0;
	if (dig2 == 11) dig2=0;
	//alert ("Digito Verificador : " + dig1 + "" + dig2);
	if ((dig1 + "" + dig2) == numcpf.substring(len,len-2)) {
		return true;
	}
	alert ("Numero do CPF invalido !!!");
	return false;
}

function validaCNPJ() //funcao para validar cnpj
{
		 CNPJ = document.cadastro.cpfField.value;
		 erro = new String;
		 if (CNPJ.length < 18) erro += "É necessario preencher corretamente o número do CNPJ! \n\n";
		 if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")){
		 if (erro.length == 0) erro += "É necessário preencher corretamente o número do CNPJ! \n\n";
		}
		//substituir os caracteres que não são números
	   if(document.layers && parseInt(navigator.appVersion) == 4){
			   x = CNPJ.substring(0,2);
			   x += CNPJ. substring (3,6);
			   x += CNPJ. substring (7,10);
			   x += CNPJ. substring (11,15);
			   x += CNPJ. substring (16,18);
			   CNPJ = x;
	   } else {
			   CNPJ = CNPJ. replace (".","");
			   CNPJ = CNPJ. replace (".","");
			   CNPJ = CNPJ. replace ("-","");
			   CNPJ = CNPJ. replace ("/","");
	   }
	   var nonNumbers = /\D/;
	   if (nonNumbers.test(CNPJ)) erro += "A verificação de CNPJ suporta apenas números! \n\n";
	   var a = [];
	   var b = new Number;
	   var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
	   for (i=0; i<12; i++){
			   a[i] = CNPJ.charAt(i);
			   b += a[i] * c[i+1];
 }
               if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
               b = 0;
               for (y=0; y<13; y++) {
                       b += (a[y] * c[y]);
               }
               if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
               if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
                       erro +="Dígito verificador com problema!";
               }
               if (erro.length > 0){
                       alert(erro);
                       return false;
               } else {
					   return true;
               }
               return true;

}

function Trim(strTexto)
{
	// Substitúi os espaços vazios no inicio e no fim da string por vazio.
	return strTexto.replace(/^\s+|\s+$/g, '');
}

function testa_cep(strCEP, blnVazio)
{
	// Caso o CEP não esteja nesse formato ele é inválido!
	var objER = /^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/;

	strCEP = Trim(strCEP)
	if(strCEP.length > 0)
		{
			if(objER.test(strCEP))
				return true;
			else
				return false;
		}
	else
		return blnVazio;
}


function valida_cpf() {
var CPF = document.cadastro.cpfField.value; // Recebe o valor digitado no campo

// Verifica se o campo é nulo
if (CPF == '') {
  //alert('Este campo é de preenchimento obrigatório!');
  return false;
   }

// Aqui começa a checagem do CPF
var POSICAO, I, SOMA, DV, DV_INFORMADO;
var DIGITO = new Array(10);
DV_INFORMADO = CPF.substr(9, 2); // Retira os dois últimos dígitos do número informado

// Desemembra o número do CPF na array DIGITO
for (I=0; I<=8; I++) {
  DIGITO[I] = CPF.substr( I, 1);
}

// Calcula o valor do 10º dígito da verificação
POSICAO = 10;
SOMA = 0;
   for (I=0; I<=8; I++) {
      SOMA = SOMA + DIGITO[I] * POSICAO;
      POSICAO = POSICAO - 1;
   }
DIGITO[9] = SOMA % 11;
   if (DIGITO[9] < 2) {
        DIGITO[9] = 0;
}
   else{
       DIGITO[9] = 11 - DIGITO[9];
}

// Calcula o valor do 11º dígito da verificação
POSICAO = 11;
SOMA = 0;
   for (I=0; I<=9; I++) {
      SOMA = SOMA + DIGITO[I] * POSICAO;
      POSICAO = POSICAO - 1;
   }
DIGITO[10] = SOMA % 11;
   if (DIGITO[10] < 2) {
        DIGITO[10] = 0;
   }
   else {
        DIGITO[10] = 11 - DIGITO[10];
   }

// Verifica se os valores dos dígitos verificadores conferem
DV = DIGITO[9] * 10 + DIGITO[10];
   if (DV != DV_INFORMADO) {
      //alert('CPF inválido');
      document.cadastro.cpfField.value = '';
      document.cadastro.cpfField.focus();
      return false;
   }
}
