1var RECAPTCHA_SITE_KEY = '6LfI4dEsAAAAACd4_8lZ0Ar0fLechV2VxlZr7qys'; 2 3var val = new Validate({ 4 formID: 'form_newsletter', 5 fields:{ 6 'name': "required", 7 'email': "email" 8 }, 9 createMessage: false, 10 submithandler: function(form) 11 { 12 beforeSend(form); 13 14 if (typeof grecaptcha === 'undefined' || !grecaptcha.enterprise) { 15 sendNewsletter(form, ''); 16 return; 17 } 18 19 grecaptcha.enterprise.ready(function() { 20 grecaptcha.enterprise.execute(RECAPTCHA_SITE_KEY, {action: 'newsletter'}) 21 .then(function(token) { 22 sendNewsletter(form, token); 23 }) 24 .catch(function() { 25 sendNewsletter(form, ''); 26 }); 27 }); 28 } 29}); 30 31function sendNewsletter(form, token) 32{ 33 let data = new FormData(form); 34 35 if (token) { 36 data.append('recaptcha_token', token); 37 data.append('recaptcha_action', 'newsletter'); 38 } 39 40 var request = new XMLHttpRequest(); 41 42 request.open('POST', 'home/save-newsletter', true); 43 44 request.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 45 46 request.onload = function() 47 { 48 if (request.status >= 200 && request.status < 400) 49 { 50 if(isJson(request.responseText)) 51 { 52 var json = JSON.parse(request.responseText); 53 54 afterSend(form); 55 56 let title = 'A assinatura não pode ser enviada!'; 57 let classDiv = 'envio text-center bg-primary-900 border border-2 shadow border-primary-700 p-3 rounded-3'; 58 let btnTxt = 'TENTAR NOVAMENTE'; 59 let reset = false; 60 61 if(json.status == 'success') 62 { 63 title = 'Assinatura enviada!'; 64 classDiv = 'envio text-center bg-primary-900 border border-2 shadow border-primary-700 p-3 rounded-3'; 65 btnTxt = 'Voltar'; 66 reset = true; 67 } 68 69 let div = document.createElement('div'); 70 71 div.className = classDiv; 72 73 div.innerHTML = ` 74 <h5 class="fs-11 fw-bold text-success text-white">${title}</h5> 75 <a href="javascript:;" class="btn btn-green-200 fs-13 fw-bold px-4 py-2 rounded-1 text-white" onclick="show_form('${form.id}', ${reset});">${btnTxt}</a> 76 `; 77 78 form.appendChild(div); 79 } 80 else 81 { 82 afterSend(form); 83 84 let div = document.createElement('div'); 85 86 div.className = 'envio text-center bg-primary-900 border border-2 shadow border-primary-700 p-3 rounded-3'; 87 88 div.innerHTML = ` 89 <h5 class="fs-11 fw-bold text-success text-white">A assinatura não pode ser enviada!</h5> 90 <a href="javascript:;" class="btn btn-green-200 fs-13 fw-bold px-4 py-2 rounded-1 text-white" onclick="show_form('${form.id}');">TENTAR NOVAMENTE</a> 91 `; 92 93 form.appendChild(div); 94 } 95 } 96 }; 97 98 request.onerror = function(a) 99 { 100 afterSend(form); 101 102 let div = document.createElement('div'); 103 104 div.className = 'envio text-center bg-primary-900 border border-2 shadow border-primary-700 p-3 rounded-3'; 105 106 div.innerHTML = ` 107 <h5 class="fs-11 fw-bold text-success text-white">A assinatura não pode ser enviada!</h5> 108 <a href="javascript:;" class="btn btn-green-200 fs-13 fw-bold px-4 py-2 rounded-1 text-white" onclick="show_form('${form.id}');">TENTAR NOVAMENTE</a> 109 `; 110 111 form.appendChild(div); 112 }; 113 114 request.send(data); 115} 116 117function beforeSend(el) 118{ 119 var fieldset = el.querySelector('fieldset'); 120 121 if(!fieldset) return; 122 123 let div = document.createElement('div'); 124 125 div.className = 'envio bg-primary-900 border border-2 shadow border-primary-700 p-3 rounded-3 d-flex justify-content-center align-items-center gap-2'; 126 127 div.innerHTML = ` 128 <svg class="svg-load" width="24" height="24" viewbox="0 0 100 100"> 129 <use href="#load" stroke="#74b80a"> 130 </svg> 131 <h5 class="text-white fs-10 mb-0">Carregando...</h5> 132 `; 133 134 fieldset.style.display = 'none'; 135 136 el.appendChild(div); 137} 138 139function afterSend(el) 140{ 141 var c = el.querySelector("div.envio"); 142 143 if(c) c.remove(); 144} 145 146function show_form(id, reset = false) 147{ 148 let form = document.getElementById(id); 149 150 afterSend(form); 151 152 var fieldset = form.querySelector('fieldset'); 153 154 if(!fieldset) return; 155 156 fieldset.style.display = ''; 157 158 if(reset) form.reset(); 159}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.