1const element = document.getElementById("hero-word"); 2 3if (element) { 4 const words = ["High-Impact", "Visionary", "Innovative"]; 5 6 let wordIndex = 0; 7 let charIndex = words[0].length; // start fully typed 8 let isDeleting = true; // start by deleting 9 10 function typeEffect() { 11 const currentWord = words[wordIndex]; 12 13 charIndex += isDeleting ? -1 : 1; 14 15 element.textContent = currentWord.substring(0, charIndex); 16 17 let speed = isDeleting ? 50 : 100; 18 19 // let speed = isDeleting 20 // ? 40 + Math.random() * 20 21 // : 80 + Math.random() * 40; 22 23 // Fully deleted â move to next word 24 if (isDeleting && charIndex === 0) { 25 isDeleting = false; 26 wordIndex = (wordIndex + 1) % words.length; 27 speed = 500; 28 } 29 30 // Fully typed â pause â then delete 31 if (!isDeleting && charIndex === currentWord.length) { 32 isDeleting = true; 33 speed = 1500; 34 } 35 36 setTimeout(typeEffect, speed); 37 } 38 39 // â³ Wait 2s before starting deletion 40 setTimeout(typeEffect, 2000); 41} 42 43function cxSwitchListing(type) { 44 45 const map = { 46 event: { 47 form: 'cx-form-event', 48 btn: 'cx-tab-event' 49 }, 50 vendor: { 51 form: 'cx-form-vendor', 52 btn: 'cx-tab-vendor' 53 }, 54 opportunity: { 55 form: 'cx-form-opportunity', 56 btn: 'cx-tab-opportunity' 57 } 58 }; 59 60 // Reset all 61 Object.keys(map).forEach(key => { 62 const form = document.getElementById(map[key].form); 63 const btn = document.getElementById(map[key].btn); 64 65 if (form) form.classList.add('cx-hidden'); 66 if (btn) btn.classList.remove('active'); 67 }); 68 69 // Activate selected 70 const selected = map[type]; 71 if (!selected) return; 72 73 const activeForm = document.getElementById(selected.form); 74 const activeBtn = document.getElementById(selected.btn); 75 76 if (activeForm) activeForm.classList.remove('cx-hidden'); 77 if (activeBtn) activeBtn.classList.add('active'); 78} 79 80jQuery(function ($) { 81 82 $(document).on('click', '#menu-item-5225 > a', function (e) { 83 84 // Already on a messages page 85 if (window.location.pathname.indexOf('/messages/') !== -1) { 86 e.preventDefault(); 87 88 if ($('#cx-video-tab-link').length) { 89 $('#cx-video-tab-link').trigger('click'); 90 } 91 return; 92 } 93 94 // Not on messages page - go there with a query parameter 95 e.preventDefault(); 96 window.location.href = '/members/me/messages/?video=1'; 97 }); 98 99 // Auto-open after arriving 100 if (new URLSearchParams(window.location.search).get('video') === '1') { 101 102 const wait = setInterval(function () { 103 104 if ($('#cx-video-tab-link').length) { 105 clearInterval(wait); 106 $('#cx-video-tab-link').trigger('click'); 107 } 108 109 }, 100); 110 } 111 112});
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.