<?php
if (isset($_POST['BTEnvia'])) {

    // Função para validar CPF
    function validarCPF($cpf) {
        $cpf = preg_replace('/[^0-9]/', '', $cpf);
        if (strlen($cpf) != 11 || preg_match('/(\d)\1{10}/', $cpf)) return false;

        for ($t = 9; $t < 11; $t++) {
            $d = 0;
            for ($c = 0; $c < $t; $c++) {
                $d += $cpf[$c] * (($t + 1) - $c);
            }
            $d = ((10 * $d) % 11) % 10;
            if ($cpf[$c] != $d) return false;
        }
        return true;
    }

    // Captura e sanitiza os dados
    $nome     = strip_tags(trim($_POST['nome'] ?? ''));
    $email    = filter_var(trim($_POST['email'] ?? ''), FILTER_SANITIZE_EMAIL);
    $telefone = preg_replace('/[^0-9]/', '', $_POST['telefone'] ?? '');
    $cpf      = preg_replace('/[^0-9]/', '', $_POST['cpf'] ?? '');
    $servico  = strip_tags(trim($_POST['servico'] ?? ''));
    $assunto  = strip_tags(trim($_POST['assunto'] ?? ''));
    $mensagem = strip_tags(trim($_POST['mensagem'] ?? ''));

    // Validações simples
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        exit("E-mail inválido.");
    }

    if (strlen($telefone) < 10 || strlen($telefone) > 15) {
        exit("Telefone inválido.");
    }

    if (!validarCPF($cpf)) {
        exit("CPF inválido.");
    }

    // Validação do reCAPTCHA
    $secret = "SUA_CHAVE_SECRETA_AQUI";
    $response = $_POST['g-recaptcha-response'] ?? '';
    $remote_ip = $_SERVER['REMOTE_ADDR'];

    $recaptcha = file_get_contents(
        "https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$response&remoteip=$remote_ip"
    );
    $recaptcha_result = json_decode($recaptcha);

    if ($recaptcha_result && $recaptcha_result->success) {
        // E-mail de envio
        $email_remetente = "contato@seudominio.com.br";
        $email_destinatario = "destino@seudominio.com.br";
        $email_reply = $email;
        $nomeEmpresa = "Sua Empresa";
        $email_assunto = "Contato via Site - $nomeEmpresa";

        $email_conteudo = "Nome: $nome\n";
        $email_conteudo .= "Telefone: $telefone\n";
        $email_conteudo .= "CPF: $cpf\n";
        $email_conteudo .= "Email: $email\n";
        $email_conteudo .= "Serviço: $servico\n";
        $email_conteudo .= "Assunto: $assunto\n";
        $email_conteudo .= "Mensagem: $mensagem\n";

        $headers = implode("\n", [
            "From: $email_remetente",
            "Reply-To: $email_reply",
            "Return-Path: $email_remetente",
            "MIME-Version: 1.0",
            "X-Priority: 3",
            "Content-Type: text/plain; charset=UTF-8"
        ]);

        if (mail($email_destinatario, $email_assunto, $email_conteudo, $headers)) {
            echo "<b>E-mail enviado com sucesso!</b>";
        } else {
            echo "<b>Erro no envio do e-mail.</b>";
        }

        // Redirecionamento, se necessário
        // header("Location: obrigado.html");
        // exit;

    } else {
        echo "<b>Erro na verificação do reCAPTCHA.</b>";
    }
}
?>



	
	<form class="book-taxi-form" method="POST"> 
 

		<span>
            <input placeholder="Nome completo*" type="text" size="30" name="nome" required>
		</span>

		<span>
			<input placeholder="CPF*" type='text' id="key" name="cpf">
		</span>
		
		<span>
            <input placeholder="Celular/WhatsApp*" size="35" name="telefone" type="tel" maxlength="15" onkeyup="handlePhone(event)" required>
		</span>
        
        <span>
            <input placeholder="Email*" type="text" size="30" name="email" required>
		</span>
        
		<span>
            <input placeholder="Nascimento*" type="date" size="30" name="email" required>

        </span>
		
		
		<button data-sitekey="<?=$public?>" class="metrica-envio" type="submit" name="BTEnvia" value="Enviar">Próximo</button>

     
	</form>



<script>
// Forçar inicio com Pessoa fisica CPF
document.getElementById("key").setAttribute("onkeypress", "mascaraMutuario(this,Cpf),limitarInputCpf(this)");
document.getElementById("key").setAttribute("onblur", "");

// Controle para pegar os valores das opções selecionadas 
// e aplicar as funções de cada mascara
function exibeMsg( valor )
{
  if(valor == 1){
    document.getElementById("key").setAttribute("onkeypress", "mascaraMutuario(this,Cpf),limitarInputCpf(this),Verifica(this)");

  }else if(valor == 2){
    document.getElementById("key").setAttribute("onkeypress", "mascaraMutuario(this,Cnpj),limitarInputCnpj(this)");
  }
}
function mascaraMutuario(o,f){
  v_obj=o
  v_fun=f
  setTimeout('execmascara()',1)
}

function execmascara(){
  v_obj.value=v_fun(v_obj.value)
}

// Mascara do CPF
function Cpf(v){

  //Remove tudo o que não é dígito
  v=v.replace(/\D/g,"")

     //Coloca um ponto entre o terceiro e o quarto dígitos
     v=v.replace(/(\d{3})(\d)/,"$1.$2")

     //Coloca um ponto entre o terceiro e o quarto dígitos
     //de novo (para o segundo bloco de números)
     v=v.replace(/(\d{3})(\d)/,"$1.$2")

     //Coloca um hífen entre o terceiro e o quarto dígitos
     v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2")
    
 return v
}

// Mascara do CNPJ
function Cnpj(v){

  //Remove tudo o que não é dígito
  v=v.replace(/\D/g,"")
      //Coloca ponto entre o segundo e o terceiro dígitos
      v=v.replace(/^(\d{2})(\d)/,"$1.$2")

      //Coloca ponto entre o quinto e o sexto dígitos
      v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3")

      //Coloca uma barra entre o oitavo e o nono dígitos
      v=v.replace(/\.(\d{3})(\d)/,".$1/$2")

      //Coloca um hífen depois do bloco de quatro dígitos
      v=v.replace(/(\d{4})(\d)/,"$1-$2")
  
  return v
}

function limitarInputCpf(obj) {
obj.value = obj.value.substring(0,13);
}

function limitarInputCnpj(obj) {
obj.value = obj.value.substring(0,17);
}

// a função principal de validação
function validar(obj) { // recebe um objeto
	var s = (obj.value).replace(/\D/g,'');
	var tam=(s).length; // removendo os caracteres não numéricos
	if (!(tam==11 || tam==14)){ // validando o tamanho
     // tamanho inválido
		alert("'"+s+"' Não é um CPF ou um CNPJ válido!" );
    documento.GetElementById("tx").innerHTML = "text";
		return false;
	}
	
// se for CPF
	if (tam==11 ){
		if (!validaCPF(s)){ // chama a função que valida o CPF
			alert("'"+s+"' Não é um CPF válido!" ); // se quiser mostrar o erro
			obj.select();  // se quiser selecionar o campo em questão
			return false;
		}
		alert("'"+s+"' É um CPF válido!" ); // se quiser mostrar que validou		
		obj.value=maskCPF(s);	// se validou o CPF mascaramos corretamente
		return true;
	}
	
// se for CNPJ			
	if (tam==14){
		if(!validaCNPJ(s)){ // chama a função que valida o CNPJ
			alert("'"+s+"' Não é um CNPJ válido!" ); // se quiser mostrar o erro
			obj.select();	// se quiser selecionar o campo enviado
			return false;			
		}
		alert("'"+s+"' É um CNPJ válido!" ); // se quiser mostrar que validou				
		obj.value=maskCNPJ(s);	// se validou o CNPJ mascaramos corretamente
		return true;
	}
}
// fim da funcao validar()

// função que valida CPF
// O algorítimo de validação de CPF é baseado em cálculos
// para o dígito verificador (os dois últimos)
// Não entrarei em detalhes de como funciona
function validaCPF(s) {
	var c = s.substr(0,9);
	var dv = s.substr(9,2);
	var d1 = 0;
	for (var i=0; i<9; i++) {
		d1 += c.charAt(i)*(10-i);
 	}
	if (d1 == 0) return false;
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1){
		return false;
	}
	d1 *= 2;
	for (var 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){
		return false;
	}
    return true;
}

// Função que valida CNPJ
// O algorítimo de validação de CNPJ é baseado em cálculos
// para o dígito verificador (os dois últimos)
function validaCNPJ(CNPJ) {
	var a = new Array();
	var b = new Number;
	var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
	for (i=0; i<12; i++){
		a[i] = CNPJ.charAt(i);
		b += a[i] * c[i+1];
	}
	if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
	b = 0;
	for (y=0; y<13; y++) {
		b += (a[y] * c[y]);
	}
	if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
	if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
		return false;
	}
	return true;
}


	// Função que permite apenas teclas numéricas
	// Deve ser chamada no evento onKeyPress desta forma
	// return (soNums(event));
function soNums(e)
{
	if (document.all){var evt=event.keyCode;}
	else{var evt = e.charCode;}
	if (evt <20 || (evt >47 && evt<58)){return true;}
	return false;
}

//	função que mascara o CPF
function maskCPF(CPF){
	return CPF.substring(0,3)+"."+CPF.substring(3,6)+"."+CPF.substring(6,9)+"-"+CPF.substring(9,11);
}

//	função que mascara o CNPJ
function maskCNPJ(CNPJ){
	return CNPJ.substring(0,2)+"."+CNPJ.substring(2,5)+"."+CNPJ.substring(5,8)+"/"+CNPJ.substring(8,12)+"-"+CNPJ.substring(12,14);	
}
</script>