
function addZerosLeft(strField, intLength) {
// adiciona zeros aa esquerda
  var intDifer = intLength - strField.length;

  for (var i = 0; i < intDifer; i++) {
    strField = "0" + strField;
  }  //end for

  return strField;
}

function ValidaCPFCNPJ(strField) {
//verifica se CNPJ ou CPF sao validos

  if (!parseFloat(strField)) {
     return false;
  }
  else {
     for (var i=0; i < strField.length; i++) {
       if (strField.charAt(i) != "0") {
          if (!parseInt(strField.charAt(i))) {
             return false;
          }
       }
     } //end for
  }

  var strFieldL = strField.length;

  if (strFieldL < 12) {

    if (strFieldL < 6) {
	   return false;
	}
    
    strField = addZerosLeft(strField, 11);

    //verifica CPF
    var intDGCalc = 0;
    var strCPF = strField.substring(0, 9);
    var strDG = strField.substring(9, 11);
	var invalidCPFs = new Array("11111111111", "22222222222", "333333333", "44444444444", "55555555555", "66666666666", "77777777777", "88888888888", "999999999");
	var flagCPF = false;
	
	for (var i = 0; i < 9; i++) {
		flagCPF = strField.indexOf(invalidCPFs[i]);

		if (flagCPF > -1) {
		   return false;
		}
	}

    //calcula primeiro digito
    for (var i = 0; i < 9; i++) {
       intDGCalc += parseInt(strCPF.charAt(i)) * (10-i);
    }//end for

    intDGCalc = 11 - (intDGCalc % 11);

    if (intDGCalc > 9) { intDGCalc = 0; }
    //verifica se digito 1 estah correto
    if ( intDGCalc != parseInt(strDG.charAt(0)) ) {
      return false;
    }

    // calcula segundo digito
    intDGCalc *=2;

    for (var i = 0; i < 9; i++) {
       intDGCalc += parseInt(strCPF.charAt(i)) * (11-i);
    }//end for

    intDGCalc = 11 - (intDGCalc % 11);

    if (intDGCalc > 9) { intDGCalc = 0; }
    //verifica se digito 2 estah correto
    if (intDGCalc != parseInt(strDG.charAt(1)) ) {
      return false;
    }

    // consistencia OK
    return true;

  }


  else {
//---------------------------inicio CNPJ -----------------------------------------//
    var intFatorA = new Array(6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2);
    strField = addZerosLeft(strField, 14);

    //verifica CNPJ
    var intDGCalc = 0;
    var strCNPJ = strField.substring(0, 12);
    var strDG = strField.substring(12, 14);

    //calcula primeiro digito
    for (var i = 0; i < 12; i++) {
       intDGCalc += parseInt(strCNPJ.charAt(i)) * intFatorA[i+1];
    }//end for

    intDGCalc = 11 - (intDGCalc % 11);

    if (intDGCalc > 9) { intDGCalc = 0; }

    //verifica se digito 1 estah correto
    if ( intDGCalc != parseInt(strDG.charAt(0)) ) {
      return false;
    }

    // calcula segundo digito
    intDGCalc *=2;

    for (var i = 0; i < 12; i++) {
       intDGCalc += parseInt(strCNPJ.charAt(i)) * intFatorA[i];
    }//end for

    intDGCalc = 11 - (intDGCalc % 11);

    if (intDGCalc > 9) { intDGCalc = 0; }

    //verifica se digito 2 estah correto
    if (intDGCalc != parseInt(strDG.charAt(1)) ) {
      return false;
    }

    // consistencia OK
    return true;


  }  

}