function onlynumber(myfield, e,tolerado)
{
	if (myfield.length ==0)
		myfield.value=0;  
	
	var key;
	var keychar;
	
	if (window.event)
		key = window.event.keyCode;
	else if (e)
		key = e.which;
	else
		return true;
	
	keychar = String.fromCharCode(key);
	
	if ((key==null) || (key==0) || (key==8) || (key==9)|| (key==13)|| (key==27) )
		return true;
	else if ((("0123456789"+tolerado).indexOf(keychar) > -1)){
		if (((myfield.value).indexOf(tolerado) > -1)&&(keychar==tolerado))
			return false;
		else if ((myfield.value.length==0)&&(keychar==tolerado))
		{
			myfield.value = "0";
			return true;	
		}
		else
			return true;
	}
	else
		return false;	
}
var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function Formato_Data(input) {
var keyCode = (isNN) ? event.which : event.keyCode;
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
var strPonto = "."; 
var strBarra = "/"; 
var strTraco = "-"; 
if (keyCode != 8 ){ 
	if(input.value.length == 2){input.value = input.value+strBarra}
	else if(input.value.length == 5){input.value = input.value+strBarra}
	if(input.value.length >= 10 && !containsElement(filter,keyCode)) {
	input.value = input.value.slice(0, 10);
	input.form[(getIndex(input)+1) % input.form.length].focus();
	}
}
}

function Formato_CPF(input) {
var keyCode = (isNN) ? event.which : event.keyCode;
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
var strPonto = "."; 
var strTraco = "-";
if (keyCode != 8 ){ 
	if(input.value.length == 3){input.value = input.value+strPonto}
	else if(input.value.length == 7){input.value = input.value+strPonto}
	else if(input.value.length == 11){input.value = input.value+strTraco}
	else if(input.value.length == 14){input.value = input.value+strPonto}
	if(input.value.length >= 14 && !containsElement(filter,keyCode)) {
	input.value = input.value.slice(0, 14);
	input.form[(getIndex(input)+1) % input.form.length].focus();
	validaCGC_CPF(input);
	}
}
}

function Formato_CGC(input) {
var isNN = (navigator.appName.indexOf("Netscape")!=-1);
var keyCode = (isNN) ? event.which : event.keyCode;
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
var strPonto = "."; 
var strBarra = "/"; 
var strTraco = "-"; 
if (keyCode != 8 ){
	if(input.value.length == 2){input.value = input.value+strPonto}
	else if(input.value.length == 6){input.value = input.value+strPonto}
	else if(input.value.length == 10){input.value = input.value+strBarra}
	else if(input.value.length == 15){input.value = input.value+strTraco}
	if(input.value.length >= 18 && !containsElement(filter,keyCode)) {
	input.value = input.value.slice(0, 18);
	input.form[(getIndex(input)+1) % input.form.length].focus();
	validaCGC_CPF(input);
	}
}
}

function containsElement(arr, ele) {
var found = false, index = 0;
while(!found && index < arr.length)
if(arr[index] == ele)
found = true;
else
index++;
return found;
}
function getIndex(input) {
var index = -1, i = 0, found = false;
while (i < input.form.length && index == -1)
if (input.form[i] == input)index = i;
else i++;
return index;
}

function autoTab(input,len,e) {
var keyCode = (isNN) ? e.which : e.keyCode;
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
if(input.value.length >= len && !containsElement(filter,keyCode)) {
input.value = input.value.slice(0, len);
input.form[(getIndex(input)+1) % input.form.length].focus();
}
}

function check_cpf (StrCPF,input)
{
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 !");
input.form[(getIndex(input)) % input.form.length].focus();
return false;
}


function check_cgc (StrCGC,input)
{
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 !");
input.form[(getIndex(input)) % input.form.length].focus();
return false; }
if( c!=varFirstChr ) { vaCharCGC = true; }
}
if( ! vaCharCGC ) {

alert("Número do CGC Inválido !");
input.form[(getIndex(input)+1) % input.form.length].focus();
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 !");
input.form[(getIndex(input)) % input.form.length].focus();
return false;
return false;
}
else {
// alert("Número do CGC Válido !");
return true;
}


}


function validaCGC_CPF(input) {

var StrData = input.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 (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);

return false;
return false;
}
else if(matchCGCArray != null) {
StrData = matchCGCArray[1] + matchCGCArray[2] + matchCGCArray[3] +
matchCGCArray[4] + matchCGCArray[5] ;
check_cgc(StrData,input);
}
else if(matchCGCArray2 != null) {
StrData = matchCGCArray2[1];
check_cgc(StrData,input);
}
else if(matchCPFArray != null) {
StrData = matchCPFArray[1] + matchCPFArray[2] + matchCPFArray[3] +
matchCPFArray[4];
check_cpf(StrData,input);
}
else if(matchCPFArray2 != null) {
StrData = matchCPFArray2[1];
check_cpf(StrData,input);
}
return false;
}

function Formato_Data(input) {
var keyCode = (isNN) ? event.which : event.keyCode;
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
var strPonto = "."; 
var strBarra = "/"; 
var strTraco = "-"; 
if (keyCode != 8 ){ 
	if(input.value.length == 2){input.value = input.value+strBarra}
	else if(input.value.length == 5){input.value = input.value+strBarra}
	if(input.value.length >= 10 && !containsElement(filter,keyCode)) {
	input.value = input.value.slice(0, 10);
	//input.form[(getIndex(input)+1) % input.form.length].focus();
	}
}
}