1(function () { 2 "use strict"; 3 4 function updateMessageCount() { 5 var message = document.getElementById("message"); 6 var counter = document.getElementById("message-count"); 7 8 if (message && counter) { 9 counter.textContent = String(message.value.length); 10 } 11 } 12 13 function revealContent() { 14 var items = Array.prototype.slice.call(document.querySelectorAll("[data-contact-reveal]")); 15 16 if (!items.length) { 17 return; 18 } 19 20 if (window.matchMedia("(prefers-reduced-motion: reduce)").matches || !("IntersectionObserver" in window)) { 21 items.forEach(function (item) { 22 item.classList.add("is-visible"); 23 }); 24 return; 25 } 26 27 document.body.classList.add("contact-motion-ready"); 28 29 var observer = new IntersectionObserver(function (entries) { 30 entries.forEach(function (entry) { 31 if (entry.isIntersecting) { 32 entry.target.classList.add("is-visible"); 33 observer.unobserve(entry.target); 34 } 35 }); 36 }, { 37 rootMargin: "0px 0px -8% 0px", 38 threshold: 0.12 39 }); 40 41 items.forEach(function (item) { 42 observer.observe(item); 43 }); 44 } 45 46 function focusEnquiryForm() { 47 var section = document.getElementById("contact-enquiry"); 48 var firstField = document.getElementById("firstname"); 49 50 if (section) { 51 section.scrollIntoView({ behavior: "smooth", block: "start" }); 52 } 53 54 window.setTimeout(function () { 55 if (firstField) { 56 firstField.focus({ preventScroll: true }); 57 } 58 }, 450); 59 } 60 61 function openChat() { 62 var salesiq = window.$zoho && window.$zoho.salesiq ? window.$zoho.salesiq : null; 63 64 if (salesiq && salesiq.floatwindow && typeof salesiq.floatwindow.visible === "function") { 65 salesiq.floatwindow.visible("show"); 66 return; 67 } 68 69 if (salesiq && salesiq.chat && typeof salesiq.chat.start === "function") { 70 salesiq.chat.start(); 71 return; 72 } 73 74 focusEnquiryForm(); 75 } 76 77 document.addEventListener("DOMContentLoaded", function () { 78 var message = document.getElementById("message"); 79 var chatButtons = document.querySelectorAll("[data-open-chat]"); 80 81 if (message) { 82 message.addEventListener("input", updateMessageCount); 83 updateMessageCount(); 84 } 85 86 chatButtons.forEach(function (button) { 87 button.addEventListener("click", openChat); 88 }); 89 90 revealContent(); 91 }); 92 93 document.addEventListener("storegister:inquiry-submitted", function () { 94 var success = document.getElementById("form-sucess"); 95 96 if (success) { 97 success.scrollIntoView({ behavior: "smooth", block: "center" }); 98 } 99 }); 100})();
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.