function isCpf( cpf ) {
    var erro  = 0;
  
    onze = /^(\d{11})+$/;
  if ( ! onze.test( cpf ) ) {
        soNum = /^(\d{3})+\.+(\d{3})+\.+(\d{3})+\-+(\d{2})+$/;
    if ( soNum.test( cpf ) ) {
      num = soNum.exec( cpf );
      cpf = num[ 1 ] + num[ 2 ] + num[ 3 ] + num[ 4 ];
    } else {
      erro++;
    }
  }

  if ( cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999" ){
      erro++;
  }
  var a = [];
  var b = new Number;
  var c = 11;
  for ( var i = 0 ; i < 11 ; i++ ){
    a[ i ] = cpf.charAt(i);
    if ( i < 9 ) {
      b += ( a[ i ] * --c );
    }
  }
  a[ 9 ] = ( ( x = b % 11 ) < 2 ) ? 0 : 11 - x;
  b = 0;
  c = 11;
  for ( y = 0 ; y < 10 ; y++ ) {
    b += ( a[ y ] * c-- );
  }
  a[ 10 ] = ((x = b % 11) < 2) ? 0 : 11 - x;
  if ( ( cpf.charAt( 9 ) != a[ 9 ] ) || ( cpf.charAt( 10 ) != a[ 10 ] ) ) {
    erro++;
  }
  if ( erro > 0 ){
    return false;
  }
  return true;
}



