$.validator.addMethod(
"cpf", 
function(cpf){ 
  var numeros, digitos, soma, i, resultado, digitos_iguais;
  digitos_iguais = 1;
  if (cpf.length < 11) return false;
  for (i = 0; i < cpf.length - 1; i++){
    if (cpf.charAt(i) != cpf.charAt(i + 1)){
      digitos_iguais = 0;
      break;
    }
  }
  if (!digitos_iguais){
    numeros = cpf.substring(0,9);
    digitos = cpf.substring(9);
    soma = 0;
    for (i = 10; i > 1; i--){
      soma += numeros.charAt(10 - i) * i;        
    }
    resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
    if (resultado != digitos.charAt(0)) return false;
    numeros = cpf.substring(0,10);
    soma = 0;
    for (i = 11; i > 1; i--){
      soma += numeros.charAt(11 - i) * i;    
    }
    resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
    if (resultado != digitos.charAt(1)) return false;
    return true;
  }else return false;
},
"CPF Inválido");

$.validator.addMethod(
"databr", 
function(value){
  dataexp=value.split('/');
  dia=dataexp[0];
  mes=dataexp[1];
  ano=dataexp[2];
  if((ano>=1000)&&(ano<10000)){
    if(((mes=='01')||(mes=='03')||(mes=='05')||(mes=='07')||(mes=='08')||(mes=='10')||(mes=='12'))&&(dia.match(/^(0[1-9]|[1-2][0-9]|3[0-1])$/))){
      return true;
    }else if(((mes=='04')||(mes=='06')||(mes=='09')||(mes=='07')||(mes=='08')||(mes=='11'))&&(dia.match(/^(0[1-9]|[1-2][0-9]|30)$/))){
      return true;
    }else if((mes=='02')&&(dia.match(/^(0[1-9]|1[0-9]|2[0-8])$/))){
      return true;
    }else if((mes=='02')&&(dia=='29')&&((ano%400==0)||((ano%4==0)&&(ano%100!=0)))){
      return true;
    }else{
      return false;
    }
  }else{
    return false;
  }
},
"Data Inválida");

$.validator.addMethod(
"tel", 
function(value){
  if(value.match(/^\(\d{2}\)\d{8}$/)){
    return true;
  }else return false;
},
"Telefone inválido");

$.validator.addMethod(
"cep", 

function(value){
  if(value.match(/^\d{5}\-\d{3}$/)){
    return true;
  }else return false;
},
"CEP inválido");