// Global user functions
//Formata o Campo de CPF, Telefone, Data, Etc.

    function Format(objForm, strField, sMask, evtKeyPress) {
      var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;
      if(document.all) { // Internet Explorer
        nTecla = evtKeyPress.keyCode; }
      else if(document.layers) { // Nestcape
        nTecla = evtKeyPress.which;
      }
      sValue = objForm[strField].value;
      // Limpa todos os caracteres de formatação que
      // já estiverem no campo.
      sValue = sValue.toString().replace( "-", "" );
      sValue = sValue.toString().replace( "-", "" );
      sValue = sValue.toString().replace( ".", "" );
      sValue = sValue.toString().replace( ".", "" );
      sValue = sValue.toString().replace( "/", "" );
      sValue = sValue.toString().replace( "/", "" );
      sValue = sValue.toString().replace( "(", "" );
      sValue = sValue.toString().replace( "(", "" );
      sValue = sValue.toString().replace( ")", "" );
      sValue = sValue.toString().replace( ")", "" );
      sValue = sValue.toString().replace( " ", "" );
      sValue = sValue.toString().replace( " ", "" );
      sValue = sValue.toString().replace( ":", "" );
      sValue = sValue.toString().replace( ":", "" );
      fldLen = sValue.length;
      mskLen = sMask.length;
      i = 0;
      nCount = 0;
      sCod = "";
      mskLen = fldLen;
      while (i <= mskLen) {
        bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/")||(sMask.charAt(i) == ":"))
        bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
        if (bolMask) {
          sCod += sMask.charAt(i);
          mskLen++; }
        else {
          sCod += sValue.charAt(nCount);
          nCount++;
        }
        i++;
      }
      objForm[strField].value = sCod;
      if (nTecla != 8) { // backspace
        if (sMask.charAt(i-1) == "9") { // apenas números...
          return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9
        else { // qualquer caracter...
          return true;
        } }
      else {
        return true;
      }
    }
//Valida o campo CPF   

function validacpf(){ 
// Configura o CPF para utilizar somente números.
var sResult = '' ;
var m = document.myForm.x_CPF
var n = document.myForm.x_CPFV
var r = document.myForm.x_CPF.value ;
for ( var i = 0 ; i < r.length ; i++ )
if ( !isNaN( r.charAt( i ) ) )
     sResult += r.charAt( i ) ;
n.value = sResult ;
// Valida o CPF sem os caracteres não numéricos.		
var i; 
s = n.value; 
var c = s.substr(0,9); 
var dv = s.substr(9,2); 
var d1 = 0; 
for (i = 0; i < 9; i++) 
{ 
d1 += c.charAt(i)*(10-i); 
} 
// Gera erro caso coloque números sequenciais para burlar a validação do CPF.
if (s <= 0 || s == '11111111111' || s == '22222222222' || s == '33333333333' || s == '44444444444' 
|| s == '55555555555' || s == '66666666666' || s == '77777777777' || s == '88888888888'){ 
//alert("CPF Invalido") 
m.value = '';
m.focus();
return false;
}
// Permite utilizar o formato 999.999.999-99 para fins administrativos.
if (s == '99999999999'){ 
alert("CPF cadastrado para fins administrativos")
}
d1 = 11 - (d1 % 11); 
if (d1 > 9) d1 = 0; 
if (dv.charAt(0) != d1) 
{ 
alert("CPF Invalido") 
m.value = '';
m.focus();
return false; 
} 
d1 *= 2; 
for (i = 0; i < 9; i++) 
{ 
d1 += c.charAt(i)*(11-i); 
} 
d1 = 11 - (d1 % 11); 
if (d1 > 9) d1 = 0; 
if (dv.charAt(1) != d1) 
{ 
alert("CPF Invalido") 
m.value = '';
m.focus();
return false; 
} 
return false; 
}
