function check_cpf (StrCPF)
{
x = 0;
soma = 0;
dig1 = 0;
dig2 = 0;
texto = "";
StrCPF1="";
len = StrCPF.length;
x = len -1;
for (var i=0; i <= len - 3; i++)
{
y = StrCPF.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 ;
StrCPF1 = StrCPF.substring(0,len - 2) + dig1 ;
x = 11; soma=0;
for (var i=0; i <= len - 2; i++)
{
soma = soma + (StrCPF1.substring(i,i+1) * x);
x = x - 1;
}
dig2= 11 - (soma % 11);
if (dig2 == 10) dig2=0;
if (dig2 == 11) dig2=0;
if ((dig1 + "" + dig2) == StrCPF.substring(len,len-2))
{
// alert ("Número do CPF Válido !");
return true;
}
alert ("Número do CPF Inválido !");
document.cadastro.cpf_cnpj.focus();
document.cadastro.cpf_cnpj.value = '';
return false;
}


function check_cgc (StrCGC) {


var varFirstChr = StrCGC.charAt(0);
var vlMult,vlControle,s1, s2 = "";
var i,j,vlDgito,vlSoma = 0;
for ( var i=0; i<=13; i++ ) {
	var c = StrCGC.charAt(i);
	if( ! (c>="0")&&(c<="9") )
{
alert("Número do CGC Inválido !");
document.cadastro.cpf_cnpj.focus();
document.cadastro.cpf_cnpj.value = '';
return false; 
}
if( c!=varFirstChr ) { vaCharCGC = true; }
}
if( ! vaCharCGC ) {

alert("Número do CGC Inválido !");
document.cadastro.cpf_cnpj.focus();
document.cadastro.cpf_cnpj.value = '';
return false ;
}

s1 = StrCGC.substring(0,12);
s2 = StrCGC.substring(12,15);
vlMult = "543298765432";
vlControle = "";
for ( j=1; j<3; j++ ) {

vlSoma = 0;
for ( i=0; i<12; i++ )
{ vlSoma += eval( s1.charAt(i) )* eval( vlMult.charAt(i) );}
if( j == 2 ){ vlSoma += (2 * vlDgito); }
vlDgito = ((vlSoma*10) % 11);
if( vlDgito == 10 ){ vlDgito = 0; }
vlControle = vlControle + vlDgito;
vlMult = "654329876543";
}
if( vlControle != s2 ) {
alert("Número do CGC Inválido !");
document.cadastro.cpf_cnpj.focus();
document.cadastro.cpf_cnpj.value = '';
return false;
return false;
}
else {
// alert("Número do CGC Válido !");
return true;
}


}

function validaCGC_CPF() {
	var StrData = document.cadastro.cpf_cnpj.value;
	var CGCPat = /^(\d{2}).(\d{3}).(\d{3})\/(\d{4})-(\d{2})/;
	var CGCPat2 = /^(\d{14})/;
	var CPFPat = /^(\d{3}).(\d{3}).(\d{3})-(\d{2})/;
	var CPFPat2 = /^(\d{11})/;
	
	var matchCGCArray = StrData.match(CGCPat);
	var matchCGCArray2 = StrData.match(CGCPat2);
	var matchCPFArray = StrData.match(CPFPat);
	var matchCPFArray2 = StrData.match(CPFPat2);
	 if(      StrData == "00000000000" || 
 			 StrData == "11111111111" || 
 			 StrData == "22222222222" || 
 			 StrData == "33333333333" || 
 			 StrData == "44444444444" || 
 			 StrData == "55555555555" || 
 			 StrData == "66666666666" || 
 			 StrData == "77777777777" || 
 			 StrData == "88888888888" || 
 			 StrData == "99999999999") {
 							
 		alert('Vc deve fornecer um CGC ou um CPF valido');
		document.cadastro.cpf_cnpj.focus();
		document.cadastro.cpf_cnpj.value = '';
		return false;
 	}else if(      StrData == "000000000000" || 
 			 StrData == "111111111111" || 
 			 StrData == "222222222222" || 
 			 StrData == "333333333333" || 
 			 StrData == "444444444444" || 
 			 StrData == "555555555555" || 
 			 StrData == "666666666666" || 
 			 StrData == "777777777777" || 
 			 StrData == "888888888888" || 
 			 StrData == "999999999999") {
 							
 		alert('Vc deve fornecer um CGC ou um CPF valido');
		document.cadastro.cpf_cnpj.focus();
		document.cadastro.cpf_cnpj.value = '';
		return false;
 	 	}else if(      StrData == "0000000000000" || 
 			 StrData == "1111111111111" || 
 			 StrData == "2222222222222" || 
 			 StrData == "3333333333333" || 
 			 StrData == "4444444444444" || 
 			 StrData == "5555555555555" || 
 			 StrData == "6666666666666" || 
 			 StrData == "7777777777777" || 
 			 StrData == "8888888888888" || 
 			 StrData == "9999999999999") {
 							
 		alert('Vc deve fornecer um CGC ou um CPF valido');
		document.cadastro.cpf_cnpj.focus();
		document.cadastro.cpf_cnpj.value = '';
		return false;
 	}else if(      StrData == "00000000000000" || 
 			 StrData == "11111111111111" || 
 			 StrData == "22222222222222" || 
 			 StrData == "33333333333333" || 
 			 StrData == "44444444444444" || 
 			 StrData == "55555555555555" || 
 			 StrData == "66666666666666" || 
 			 StrData == "77777777777777" || 
 			 StrData == "88888888888888" || 
 			 StrData == "99999999999999") {
 							
 		alert('Vc deve fornecer um CGC ou um CPF valido');
		document.cadastro.cpf_cnpj.focus();
		document.cadastro.cpf_cnpj.value = '';
		return false;
 	}else if (matchCGCArray == null && matchCGCArray2 == null && matchCPFArray == null && matchCPFArray2 == null) {
		cpfalert = 'O número do CPF deve ser informado incluindo-se os dois dígitos verificadores. Não são necessários zeros à esquerda.\nExemplo:000.000.000-00 ou 00000000000\n\n';
		cgcalert = 'O número do CGC deve ser informado incluindo-se os 14 dígitos.Não são necessários zeros à esquerda.\nExemplo: 00.000.000\/0000-00 ou 00000000000000';
		
		alert('Vc deve fornecer um CGC ou um CPF valido\n\n' + cpfalert + cgcalert);
		document.cadastro.cpf_cnpj.focus();
		document.cadastro.cpf_cnpj.value = '';
		return false;
	} else if (matchCGCArray != null) {
		StrData = matchCGCArray[1] + matchCGCArray[2] + matchCGCArray[3] +
		matchCGCArray[4] + matchCGCArray[5] ;
		return check_cgc(StrData);
	} else if(matchCGCArray2 != null) {
		StrData = matchCGCArray2[1];
		return check_cgc(StrData);
	} else if(matchCPFArray != null) {
		StrData = matchCPFArray[1] + matchCPFArray[2] + matchCPFArray[3] +
		matchCPFArray[4];
		return check_cpf(StrData);
	} else if(matchCPFArray2 != null) {
		StrData = matchCPFArray2[1];
		return check_cpf(StrData);
	}
	return true;
}