1; });
if (nomes.length < 2 || contemConteudoSuspeito(nome)) {
return alerta("Informe seu nome completo (nome e sobrenome) com dados validos.");
}
const nomesMae = nomeMae.split(" ").filter(function (n) { return n.length > 1; });
if (nomesMae.length < 2 || contemConteudoSuspeito(nomeMae)) {
return alerta("Informe o nome completo da mae com dados validos.");
}
if (!dataNasc || !/^\d{4}-\d{2}-\d{2}$/.test(dataNasc)) {
return alerta("Informe uma data de nascimento valida.");
}
if (cpf.length !== 11) {
return alerta("CPF deve conter exatamente 11 numeros.");
}
if (!validarCPF(cpf)) {
return alerta("CPF invalido.");
}
if (!/^\d{10,11}$/.test(telefone)) {
return alerta("Telefone invalido. Use apenas numeros, com DDD (10 ou 11 digitos).");
}
if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(emailContato) || contemConteudoSuspeito(emailContato)) {
return alerta("E-mail de contato invalido.");
}
if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(emailLogin) || contemConteudoSuspeito(emailLogin)) {
return alerta("E-mail de login invalido.");
}
if (cepPF.length !== 8) {
return alerta("CEP do titular deve ter 8 numeros.");
}
if (!logPF || contemConteudoSuspeito(logPF)) {
return alerta("Informe o logradouro do titular.");
}
if (!numPF || contemConteudoSuspeito(numPF)) {
return alerta("Informe o numero do endereco do titular.");
}
if (!bairroPF || contemConteudoSuspeito(bairroPF)) {
return alerta("Informe o bairro do titular.");
}
if (!cidadePF || contemConteudoSuspeito(cidadePF)) {
return alerta("Informe a cidade do titular.");
}
if (!estadoPF || estadoPF.length !== 2 || contemConteudoSuspeito(estadoPF)) {
return alerta("Informe a UF do titular com 2 letras.");
}
if (tipoPessoa === 'PJ') {
if (!tipoEmpresa || contemConteudoSuspeito(tipoEmpresa)) {
return alerta("Selecione o tipo da empresa.");
}
if (!razaoSocial || contemConteudoSuspeito(razaoSocial)) {
return alerta("Informe a razao social da empresa.");
}
if (!nomeFantasia || contemConteudoSuspeito(nomeFantasia)) {
return alerta("Informe o nome fantasia da empresa.");
}
if (cnpjRaw.length !== 14) {
return alerta("CNPJ deve conter exatamente 14 numeros.");
}
if (!validarCNPJ(cnpjRaw)) {
return alerta("CNPJ invalido.");
}
if (!dataAbertura || !/^\d{4}-\d{2}-\d{2}$/.test(dataAbertura)) {
return alerta("Informe uma data de abertura valida.");
}
if (!setorAtiv || contemConteudoSuspeito(setorAtiv)) {
return alerta("Informe o setor de atividade.");
}
if (!emailPj || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(emailPj) || contemConteudoSuspeito(emailPj)) {
return alerta("Informe um e-mail valido da empresa.");
}
if (!/^\d{10,11}$/.test(telPj)) {
return alerta("Telefone da empresa invalido. Use apenas numeros, com DDD.");
}
if (cepPJ.length !== 8) {
return alerta("CEP da empresa deve ter 8 numeros.");
}
if (!logPJ || contemConteudoSuspeito(logPJ)) {
return alerta("Informe o logradouro da empresa.");
}
if (!numPJ || contemConteudoSuspeito(numPJ)) {
return alerta("Informe o numero do endereco da empresa.");
}
if (!bairroPJ || contemConteudoSuspeito(bairroPJ)) {
return alerta("Informe o bairro da empresa.");
}
if (!cidadePJ || contemConteudoSuspeito(cidadePJ)) {
return alerta("Informe a cidade da empresa.");
}
if (!estadoPJ || estadoPJ.length !== 2 || contemConteudoSuspeito(estadoPJ)) {
return alerta("Informe a UF da empresa com 2 letras.");
}
}
if (senha.length < 8 || contemConteudoSuspeito(senha)) {
return alerta("A senha deve ter no minimo 8 caracteres e nao pode conter caracteres suspeitos.");
}
if (senha !== senha2) {
return alerta("As senhas nao coincidem.");
}
if (!termos) {
return alerta("Voce precisa aceitar os termos de uso.");
}
const btn = form.querySelector(".submit-button");
if (btn) {
const spinner = btn.querySelector(".spinner-border");
if (spinner) {
spinner.classList.remove("d-none");
}
btn.disabled = true;
}
});
function validarCPF(cpf) {
if (cpf.length !== 11 || /^(\d)\1{10}$/.test(cpf)) return false;
let soma = 0;
for (let i = 0; i < 9; i++) soma += parseInt(cpf.charAt(i)) * (10 - i);
let resto = (soma * 10) % 11;
if (resto === 10 || resto === 11) resto = 0;
if (resto !== parseInt(cpf.charAt(9))) return false;
soma = 0;
for (let i = 0; i < 10; i++) soma += parseInt(cpf.charAt(i)) * (11 - i);
resto = (soma * 10) % 11;
if (resto === 10 || resto === 11) resto = 0;
return resto === parseInt(cpf.charAt(10));
}
function validarCNPJ(cnpj) {
if (!cnpj || cnpj.length !== 14) return false;
if (/^(\d)\1{13}$/.test(cnpj)) return false;
let tamanho = cnpj.length - 2;
let numeros = cnpj.substring(0, tamanho);
let digitos = cnpj.substring(tamanho);
let soma = 0;
let pos = tamanho - 7;
for (let i = tamanho; i >= 1; i--) {
soma += numeros.charAt(tamanho - i) * pos--;
if (pos < 2) pos = 9;
}
let resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
if (resultado !== parseInt(digitos.charAt(0))) return false;
tamanho = tamanho + 1;
numeros = cnpj.substring(0, tamanho);
soma = 0;
pos = tamanho - 7;
for (let 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 === parseInt(digitos.charAt(1)));
}
});