function DgCpf(st) {
 var pr = 0;
 var ml = 2;
 var di = "";
 tm = st.length;
 for (var i=tm; i>0; i--) {
  pr = pr + (st.charAt(i-1) * ml);
  ml = ml + 1;
  if (ml>99) ml=2;
 } 
 di = pr%11;
 if (di==0 || di==1) {
  di = 0 }
 else { 
  di = 11 - di
 }
 return di
}

function eCpf(st) {
 if (st!="") {
  st = st.replace("-","");
  st = st.replace(".","");
  st = st.replace(".","");
  var nr = st;
  tm = nr.length;
  if (tm!=11) return false;
  if (!eNum(nr)) return false;
  var dg = nr.substr(9,2);
  nr = nr.substr(0,9);
  var dg1 = DgCpf(nr);
  nr = nr + dg1;
  var dg2 = DgCpf(nr);
  nr = nr + dg2;
  if (st!=nr) return false;
 }
 return true
}

function ChkCpf(obj) {
 if (!eCpf(obj.value)) {
  alert("CPF inválido");
  obj.focus();
  return false;
 }
 return true;
}

function FmtCpf(obj,tc) {
 tc = tc.keyCode;
 vr = obj.value;
 tm = vr.length;
 if (tc!=45 && tc!=46) {
  if (tm==3) obj.value = vr.substr(0,3) + '.' + vr.substr(3,1);
  if (tm==7) obj.value = vr.substr(0,7) + '.' + vr.substr(7,1);
  if (tm==11) obj.value = vr.substr(0,11) + '-' + vr.substr(11,1);
 }
}
