document.addEventListener("DOMContentLoaded", function (event){
document.getElementById('is_associated').addEventListener('change', function (){
var style=this.value=='yes' ? 'block':'none';
document.querySelector('.input_associado').style.display=style;
});
document.getElementById('deficiencia').addEventListener('change', function (){
var style=this.value=='yes' ? 'block':'none';
document.getElementById('hidden_div').style.display=style;
});
document.querySelector('#subscription-form #confirm-registration').addEventListener('click', function (e){
e.preventDefault();
jQuery.ajax({
url: '/wp-json/api/v1/checkout',
data: {
'data': {
'is_associated': document.querySelector('#is_associated').value,
'name': document.querySelector('#subscription-form input[name=nome]').value,
'email': document.querySelector('#subscription-form input[name=email]').value,
'phone': document.querySelector('#subscription-form input[name=telefone]').value,
'company': document.querySelector('#subscription-form input[name=empresa]').value,
'cnpj': document.querySelector('#subscription-form input[name=cnpj_geral]').value,
'role': document.querySelector('#subscription-form input[name=cargo]').value,
'pwd': document.querySelector('#subscription-form select[name=deficiencia]').value,
'pwd_description': document.querySelector('#subscription-form input[name=tipo_de_deficiencia]').value,
'associate_cnpj': document.querySelector('#subscription-form input[name=cnpj]').value,
'associate_registration_id': document.querySelector('#subscription-form input[name=matricula]').value,
'course_id': document.querySelector('#subscription-form input[name=ID_curso]').value,
'order_id': document.querySelector('#subscription-form input[name=num_inscricao]').value
}},
type: 'POST',
beforeSend: function (){
document.querySelector('#subscription-form #confirm-registration').style.display="none";
document.querySelector('#subscription-form #message-box').style.display="none";
document.querySelector('#subscription-form #placeholder-button').style.display="block";
},
success: function (response){
document.querySelector('#subscription-form #placeholder-button').style.display="none";
document.querySelector('#subscription-form #confirm-registration').style.display="block";
if(response["redirect"]===true){
window.location='https://ascoferj.com.br/finalizacao-de-inscricao/confirmacao-de-inscricao/';
}else{
if(response["token"]){
PagSeguroLightbox({
code: response["token"][0]
}, {
success: function (transactionCode){
window.location='https://ascoferj.com.br/finalizacao-de-inscricao/confirmacao-de-inscricao/';
}});
}else if(response['error']){
document.querySelector('#subscription-form #message-box').style.display="block";
document.querySelector('#subscription-form #message-box').innerHTML=response['error'];
}}
},
error: function (error){
document.querySelector('#subscription-form #confirm-registration').style.display="block";
document.querySelector('#subscription-form #placeholder-button').style.display="none";
console.error(error);
}});
});
});
var passo=1;
jQuery(document).ready(function (){
jQuery('.cpf-mask').mask('000.000.000-00');
jQuery('.cnpj-mask').mask('00.000.000/0000-00');
jQuery('.card-number-mask').mask('0000 0000 0000 0000');
jQuery('.card-expiry-mask').mask('00/00');
jQuery('.card-cvv-mask').mask('000');
function validarCPF(cpf){
cpf=cpf.replace(/[^\d]/g, '');
if(cpf.length!==11) return false;
if(/^(\d)\1+$/.test(cpf)) return false;
let soma=0;
for (let i=0; i < 9; i++){
soma +=parseInt(cpf.charAt(i)) * (10 - i);
}
let resto=11 - (soma % 11);
let digitoVerificador1=resto > 9 ? 0:resto;
if(digitoVerificador1!==parseInt(cpf.charAt(9))) return false;
soma=0;
for (let i=0; i < 10; i++){
soma +=parseInt(cpf.charAt(i)) * (11 - i);
}
resto=11 - (soma % 11);
let digitoVerificador2=resto > 9 ? 0:resto;
if(digitoVerificador2!==parseInt(cpf.charAt(10))) return false;
return true;
}
function validarCartao(numero){
numero=numero.replace(/\s/g, '');
return /^[0-9]{16}$/.test(numero);
}
function validarValidade(validade){
const [mes, ano]=validade.split('/');
const dataAtual=new Date();
const anoAtual=dataAtual.getFullYear() % 100;
const mesAtual=dataAtual.getMonth() + 1;
if(mes < 1||mes > 12) return false;
if(ano < anoAtual||(ano===anoAtual&&mes < mesAtual)) return false;
return true;
}
function validarCVV(cvv){
return /^[0-9]{3,4}$/.test(cvv);
}
jQuery('#btsubmit').on('click', function (e){
e.preventDefault();
if(passo==1){
let isValid=true;
let errorMessage='';
const perfil=jQuery('#perfil').val();
if(!perfil){
isValid=false;
errorMessage='Por favor, selecione um perfil.';
}
const nome=jQuery('#dados input[name=nome]').val();
const email=jQuery('#dados input[name=email]').val();
const telefone=jQuery('#dados input[name=telefone]').val();
if(!nome){
isValid=false;
errorMessage='Por favor, preencha seu nome completo.';
}else if(!email){
isValid=false;
errorMessage='Por favor, preencha seu e-mail.';
}else if(!telefone){
isValid=false;
errorMessage='Por favor, preencha seu telefone.';
}
if(perfil==='associado'){
const empresa=jQuery('#bloco-associado input[name=empresa_associado]').val();
const cnpj=jQuery('#bloco-associado input[name=cnpj_associado]').val();
const ocupacao=jQuery('#bloco-associado input[name=ocupacao_associado]').val();
const matricula=jQuery('#bloco-associado input[name=matricula]').val();
if(!empresa){
isValid=false;
errorMessage='Por favor, preencha o nome da empresa.';
}else if(!cnpj){
isValid=false;
errorMessage='Por favor, preencha o CNPJ da empresa.';
}else if(!validarCNPJ(cnpj)){
isValid=false;
errorMessage='Por favor, preencha com um CNPJ válido.';
}else if(!ocupacao){
isValid=false;
errorMessage='Por favor, preencha sua ocupação.';
}else if(!matricula){
isValid=false;
errorMessage='Por favor, preencha seu número de matrícula ASCOFERJ.';
}}else if(perfil==='naoassociado'){
const empresa=jQuery('#bloco-empresa input[name=empresa_empresa]').val();
const cnpj=jQuery('#bloco-empresa input[name=cnpj_empresa]').val();
const ocupacao=jQuery('#bloco-empresa input[name=ocupacao_empresa]').val();
if(!empresa){
isValid=false;
errorMessage='Por favor, preencha o nome da empresa.';
}else if(!cnpj){
isValid=false;
errorMessage='Por favor, preencha o CNPJ da empresa.';
}else if(!validarCNPJ(cnpj)){
isValid=false;
errorMessage='Por favor, preencha com um CNPJ válido.';
}else if(!ocupacao){
isValid=false;
errorMessage='Por favor, preencha sua ocupação.';
}}else if(perfil==='estudante'){
const instituicao=jQuery('#bloco-estudante input[name=instituicao_ensino]').val();
const matricula=jQuery('#bloco-estudante input[name=matricula_estudante]').val();
const curso=jQuery('#bloco-estudante input[name=curso]').val();
if(!instituicao){
isValid=false;
errorMessage='Por favor, preencha a instituição de ensino.';
}else if(!matricula){
isValid=false;
errorMessage='Por favor, preencha seu número de matrícula.';
}else if(!curso){
isValid=false;
errorMessage='Por favor, preencha o nome do curso.';
}}
const deficiencia=jQuery('#deficiencia').val();
if(deficiencia==='sim'){
const descricaoDeficiencia=jQuery('#campo-deficiencia input[name=descricao_deficiencia]').val();
if(!descricaoDeficiencia){
isValid=false;
errorMessage='Por favor, descreva sua deficiência.';
}}
const ciente=jQuery('#declaracao input[name=ciente]').is(':checked');
const termos=jQuery('.checkbox-group input[name=termos]').is(':checked');
if(!ciente&&(perfil==='estudante'||perfil==='associado')){
isValid=false;
errorMessage='Por favor, aceite a declaração de ciência.';
}else if(!termos){
isValid=false;
errorMessage='Por favor, aceite os termos da Política de Privacidade.';
}
if(!isValid){
alert(errorMessage);
return;
}
const valor_normal=parseFloat(jQuery('#valor_normal').val());
const valor_associado=parseFloat(jQuery('#valor_associado').val());
const valor_estudante=parseFloat(jQuery('#valor_estudante').val());
if(perfil=='naoassociado'&&valor_normal==0||perfil=='associado'&&valor_associado==0||perfil=='estudante'&&valor_estudante==0){
finalizaForm();
}else{
jQuery('#dados').hide();
jQuery('#payment-form').show();
jQuery('#btvoltar').show();
passo=2;
}}else{
const cpf=jQuery('#cpf').val();
if(!validarCPF(cpf)){
alert('Por favor, insira um CPF válido.');
return;
}
const paymentMethod=jQuery('input[name="payment_method"]:checked').val();
if(!paymentMethod){
alert('Por favor, selecione uma forma de pagamento.');
return;
}
if(paymentMethod==='credit_card'){
const cardNumber=jQuery('#card_number').val();
const cardName=jQuery('#card_name').val();
const cardExpiry=jQuery('#card_expiry').val();
const cardCVV=jQuery('#card_cvv').val();
if(!validarCartao(cardNumber)){
alert('Por favor, insira um número de cartão válido.');
return;
}
if(!cardName){
alert('Por favor, insira o nome como está no cartão.');
return;
}
if(!validarValidade(cardExpiry)){
alert('Por favor, insira uma data de validade válida.');
return;
}
if(!validarCVV(cardCVV)){
alert('Por favor, insira um CVV válido.');
return;
}}
finalizaForm();
}});
function finalizaForm(){
const formData={
data: {
asaas: 1,
is_associated: jQuery('#perfil').val()==='associado' ? 'yes':'no',
perfil: jQuery('#perfil').val(),
name: jQuery('#dados input[name=nome]').val(),
email: jQuery('#dados input[name=email]').val(),
phone: jQuery('#dados input[name=telefone]').val(),
company: jQuery('#perfil').val()==='associado' ? jQuery('#dados input[name=empresa_associado]').val():jQuery('#dados input[name=empresa_empresa]').val(),
cnpj: jQuery('#perfil').val()==='associado' ? jQuery('#dados input[name=cnpj_associado]').val():jQuery('#dados input[name=cnpj_empresa]').val(),
cpf: jQuery('#dados input[name=cpf]').val(),
role: jQuery('#perfil').val()==='associado' ? jQuery('#dados input[name=ocupacao_associado]').val():jQuery('#dados input[name=ocupacao_empresa]').val(),
pwd: jQuery('#deficiencia').val()==='sim' ? 'yes':'no',
pwd_description: jQuery('#dados input[name=descricao_deficiencia]').val(),
associate_cnpj: jQuery('#dados input[name=cnpj_associado]').val(),
associate_registration_id: jQuery('#dados input[name=matricula]').val(),
student_id: jQuery('#dados input[name=matricula_estudante]').val(),
institution: jQuery('#dados input[name=instituicao_ensino]').val(),
course_name: jQuery('#dados input[name=curso]').val(),
course_id: jQuery('#ID_curso').val(),
order_id: jQuery('#num_inscricao').val(),
payment: {
method: jQuery('input[name="payment_method"]:checked').val(),
cpf: jQuery('#cpf').val(),
card: {
number: jQuery('#card_number').val(),
name: jQuery('#card_name').val(),
expiry: jQuery('#card_expiry').val(),
cvv: jQuery('#card_cvv').val()
}}
}};
jQuery('#btsubmit').prop('disabled', true);
jQuery('#btvoltar').prop('disabled', true);
jQuery('#btsubmit').html('Processando...');
jQuery.ajax({
url: '/wp-json/api/v1/checkout',
data: formData,
type: 'POST',
success: function (res){
if(res.success!=undefined){
window.location='https://ascoferj.com.br/finalizacao-de-inscricao/confirmacao-de-inscricao/';
return false;
}
if(res.status==200){
jQuery('#payment-form').hide();
jQuery('#btsubmit').hide();
jQuery('#btvoltar').hide();
jQuery('#payment-result').show();
let method=jQuery('input[name="payment_method"]:checked').val().toUpperCase();
if(method=='CREDIT_CARD'){
window.location='https://ascoferj.com.br/finalizacao-de-inscricao/confirmacao-de-inscricao/';
return false;
}else if(method=='BOLETO'){
jQuery('#payment-message').html('<p class="success-message">Boleto gerado com sucesso!</p>');
jQuery('#payment-details').html(`
<div class="boleto-info">
<p><strong>Link do Boleto:</strong> <a href="${res.response.bankSlipUrl}" target="_blank">Clique aqui para abrir o boleto</a></p>
</div>
`);
jQuery('#print-receipt').show();
jQuery('#new-payment').show();
}else if(method=='PIX'){
jQuery('#payment-message').html('<p class="success-message">QR Code PIX gerado com sucesso!</p>');
jQuery('#payment-details').html(`
<div class="pix-info">
<p style="text-align: center;"><strong>QR Code:</strong></p>
<div style="text-align: center;"><img src="data:image/png;base64,${res.response.encodedImage}" alt="QR Code PIX" style="max-width: 200px; margin: 10px 0;"></div>
<p style="word-break: break-all;white-space: normal;">${res.response.payload}</p>
<p><button class="copy-button" data-payload="${res.response.payload}">Copiar Código PIX</button></p>
</div>
`);
jQuery('#new-payment').show();
}}else{
alert(res.error);
}},
error: function (error){
console.error(error);
alert('Ocorreu um erro ao processar o pagamento. Por favor, tente novamente.');
},
complete: function (){
jQuery('#btsubmit').prop('disabled', false);
jQuery('#btvoltar').prop('disabled', false);
jQuery('#btsubmit').html('Continuar inscrição');
}});
}
jQuery('#btvoltar').on('click', function (){
if(passo==2){
jQuery('#payment-form').hide();
jQuery('#dados').show();
jQuery('#btvoltar').hide();
passo=1;
}});
jQuery('input[name="payment_method"]').on('change', function (){
if(jQuery(this).val()==='CREDIT_CARD'){
jQuery('#credit-card-fields').slideDown();
}else{
jQuery('#credit-card-fields').slideUp();
}});
jQuery('#perfil').on('change', function (){
var perfil=jQuery(this).val();
if(perfil==='associado'){
jQuery('#bloco-estudante').hide();
jQuery('#bloco-empresa').hide();
jQuery('.cpf').show();
jQuery('#bloco-associado').show();
jQuery('#declaracao input').prop('checked', false);
jQuery('#declaracao span').html(`Declaro estar ciente de que, para obter o desconto como associado, é necessário estar adimplente com a contribuição associativa.
Caso contrário, estarei sujeito ao pagamento integral do valor da inscrição.`);
jQuery('#declaracao').show();
}else if(perfil==='naoassociado'){
jQuery('#bloco-estudante').hide();
jQuery('.cpf').show();
jQuery('#bloco-associado').hide();
jQuery('#declaracao').hide();
jQuery('#bloco-empresa').show();
}else{
jQuery('#bloco-associado').hide();
jQuery('#bloco-empresa').hide();
jQuery('.cpf').show();
jQuery('#bloco-estudante').show();
jQuery('#declaracao input').prop('checked', false);
jQuery('#declaracao span').html(`Declaro estar ciente de que, para obter o desconto de estudante da área da Saúde, devo apresentar uma declaração de matrícula atualizada no dia do curso.
Caso contrário, estarei sujeito ao pagamento integral do valor da inscrição.`);
jQuery('#declaracao').show();
}});
jQuery('#deficiencia').on('change', function (){
if(jQuery(this).val()==='sim'){
jQuery('#campo-deficiencia').slideDown();
}else{
jQuery('#campo-deficiencia').slideUp();
}});
jQuery('#perfil').trigger('change');
jQuery('#deficiencia').trigger('change');
jQuery(document).on('click', '.copy-button', function (e){
e.preventDefault();
const payload=jQuery(this).data('payload');
navigator.clipboard.writeText(payload).then(()=> {
const button=jQuery(this);
const originalText=button.text();
button.text('Código PIX Copiado!');
button.css('background-color', '#28a745');
setTimeout(()=> {
button.text(originalText);
button.css('background-color', '#375FF0');
}, 2000);
}).catch((err)=> {
console.error('Erro ao copiar código PIX:', err);
alert('Erro ao copiar o código PIX. Por favor, tente novamente.');
});
});
jQuery('#new-payment').on('click', function (e){
e.preventDefault();
window.location.reload();
});
jQuery('#print-receipt').on('click', function (){
window.print();
});
});
function validarCNPJ(cnpj){
cnpj=cnpj.replace(/[^\d]+/g, '');
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 +=parseInt(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 +=parseInt(numeros.charAt(tamanho - i)) * pos--;
if(pos < 2) pos=9;
}
resultado=soma % 11 < 2 ? 0:11 - soma % 11;
return resultado===parseInt(digitos.charAt(1));
};