1!function(){"use strict";var e=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,t="Oops! Something went wrong while submitting the form.";document.addEventListener("DOMContentLoaded",function(){var n=document.querySelector(".form-block.w-form form.form");if(n){var a=n.closest("div.w-form"),i=a?a.querySelector(":scope > .w-form-done"):null,o=a?a.querySelector(":scope > .w-form-fail"):null,r=o?o.querySelector("div"):null,s=n.querySelector('input[name="name"]'),l=n.querySelector('input[name="Email"]'),c=n.querySelector('textarea[name="How-can-we-help"]'),d=n.querySelector('input[name="website"]'),u=n.querySelector('input[type="submit"]'),f=document.getElementById("contact-turnstile");if(s&&l&&c&&u){var m="",w="idle";(n.closest(".w-dropdown")||n).addEventListener("click",p,{once:!0}),n.addEventListener("focusin",p,{once:!0}),n.addEventListener("keydown",function(e){switch(e.key){case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"ArrowDown":case"Home":case"End":e.stopPropagation()}}),n.addEventListener("submit",function(a){a.preventDefault(),a.stopPropagation(),o&&(o.style.display="none");var r=(s.value||"").trim(),u=(l.value||"").trim(),f=(c.value||"").trim();if(!r||!e.test(u)||f.length<2)g("Please fill in your name, a valid email address, and a message.");else{if(!m)return p(),void g("error"===w?"The verification challenge couldn't load. Please refresh the page and try again.":"Please complete the verification challenge below the message field.");var y;h(!0),fetch((y=window.location.hostname,("sogni.ai"===y||"www.sogni.ai"===y?"https://api.sogni.ai":"https://api-staging.sogni.ai")+"/v1/contact"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:r,email:u,message:f,turnstileToken:m,website:d?d.value:""})}).then(function(e){return e.json().catch(function(){return{}}).then(function(t){return{ok:e.ok,data:t}})}).then(function(e){if(e.ok&&e.data&&"success"===e.data.status)return n.style.display="none",void(i&&(i.style.display="block",i.setAttribute("tabindex","-1"),i.focus()));if(h(!1),g(e.data&&e.data.message||t),m="",window.turnstile)try{window.turnstile.reset()}catch(e){}}).catch(function(){h(!1),g("Network error. Please check your connection and try again.")})}})}}function y(){if(window.turnstile&&f)try{window.turnstile.render(f,{sitekey:"0x4AAAAAABA3JGUSIHxBNhO5",theme:"dark",callback:function(e){m=e,w="ready"},"expired-callback":function(){m=""},"error-callback":function(){return w="error",!0}}),w="ready"}catch(e){w="error"}}function p(){if("idle"===w)if(w="loading",window.turnstile)y();else{window.sogniContactTurnstileReady=y;var e=document.createElement("script");e.src="https://challenges.cloudflare.com/turnstile/v0/api.js?onload=sogniContactTurnstileReady&render=explicit",e.async=!0,e.defer=!0,e.onerror=function(){w="error"},document.head.appendChild(e)}}function g(e){r&&(r.textContent=e||t),o&&(o.style.display="block",o.setAttribute("tabindex","-1"),o.focus()),i&&(i.style.display="none")}function h(e){u.disabled=e,e?(u.dataset.originalValue=u.value,u.value=u.getAttribute("data-wait")||"Please wait...",a&&a.classList.add("w-form-loading")):(u.dataset.originalValue&&(u.value=u.dataset.originalValue),a&&a.classList.remove("w-form-loading"))}})}();
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.