jQuery.validator.addMethod('celular', function (value, element) {
    value = value.replace("(","");
    value = value.replace(")", "");
    value = value.replace("-", "");
    value = value.replace(" ", "").trim();
    if (value == '0000000000') {
      return (this.optional(element) || false);
    } else if (value == '00000000000') {
      return (this.optional(element) || false);
    }
    if (["00", "01", "02", "03", , "04", , "05", , "06", , "07", , "08", "09", "10"].indexOf(value.substring(0, 2)) != -1) {
      return (this.optional(element) || false);
    }
    if (value.length < 10 || value.length > 11) {
      return (this.optional(element) || false);
    }
    if (["6", "7", "8", "9"].indexOf(value.substring(2, 3)) == -1) {
      return (this.optional(element) || false);
    }
    return (this.optional(element) || true);
}, 'Informe um número válido!');

jQuery.validator.addMethod('telefone', function (value, element) {
    value = value.replace("(","");
    value = value.replace(")", "");
    value = value.replace("-", "");
    value = value.replace(" ", "").trim();
    if (value == '0000000000') {
      return (this.optional(element) || false);
    } else if (value == '00000000000') {
      return (this.optional(element) || false);
    }
    if (["00", "01", "02", "03", , "04", , "05", , "06", , "07", , "08", "09", "10"].indexOf(value.substring(0, 2)) != -1) {
      return (this.optional(element) || false);
    }
    if (value.length < 10) {
      return (this.optional(element) || false);
    }
    return (this.optional(element) || true);
}, 'Informe um número válido!');

jQuery.validator.addMethod("cnpj", function (value, element) {

  var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
  if (value.length == 0) {
    return false;
  }

  value = value.replace(/\D+/g, '');
  digitos_iguais = 1;

  for (i = 0; i < value.length - 1; i++)
  if (value.charAt(i) != value.charAt(i + 1)) {
    digitos_iguais = 0;
    break;
  }
  if (digitos_iguais)
  return false;

  tamanho = value.length - 2;
  numeros = value.substring(0, tamanho);
  digitos = value.substring(tamanho);
  soma = 0;
  pos = tamanho - 7;
  for (i = tamanho; i >= 1; i--) {
    soma += numeros.charAt(tamanho - i) * pos--;
    if (pos < 2)
    pos = 9;
  }
  resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
  if (resultado != digitos.charAt(0)) {
    return false;
  }
  tamanho = tamanho + 1;
  numeros = value.substring(0, tamanho);
  soma = 0;
  pos = tamanho - 7;
  for (i = tamanho; i >= 1; i--) {
    soma += numeros.charAt(tamanho - i) * pos--;
    if (pos < 2)
    pos = 9;
  }

  resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;

  return (resultado == digitos.charAt(1));
}, 'Informe um número de CNPJ válido!');

 function verifyEmail(value){
  
  var data = {};
      data['email'] = value;    

  var retorno = true;  

  $('.js-mail-verify').prop('readonly', true);
  $('.js-loading-email').removeClass('hidden');

  $.ajax({
    url: 'index.php?route=account/register_content/email',
    type: 'post',
    data: data,
    dataType: 'json',
    async: false,
    timeout: 4000,
    beforeSend: function() {},
    complete: function() {},
    success: function(json) {       
      if(json['error']){        
        retorno = false;
      }

      if(json['success']){   
        retorno = true;  
      }

    }
  }); 

  $('.js-mail-verify').prop('readonly', false);
  $('.js-loading-email').addClass('hidden');

  return retorno;   
 }
 
 // Add Custom Email Validation
jQuery.validator.addMethod('customemail', function (emailaddr, element) {
  emailaddr = emailaddr.replace(/\s+/g, '');
  return this.optional(element) ||
  emailaddr.match(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
}, 'Forneça um endereço de email válido.');

// Add Custom Email Validation
jQuery.validator.addMethod('checkemail', function (emailaddr, element) {
  
  emailaddr = emailaddr.trim();
  
  var valida =  this.optional(element) || emailaddr.match(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);

  if(valida && element && !$(element).is(":focus")){
    valida = verifyEmail(emailaddr);
    $.validator.messages.checkemail = 'E-mail já cadastrado na loja virtual.';
  }else{
    $.validator.messages.checkemail = 'Forneça um endereço de email válido.';
  }

  return valida;

}, 'Forneça um endereço de email válido.');