1(function () { 2 const cfg = document.getElementById('turnstile-site-key-json'); 3 try { 4 window.__TURNSTILE_SITE_KEY__ = 5 cfg && cfg.textContent ? JSON.parse(cfg.textContent.trim()) : ''; 6 } catch (_) { 7 window.__TURNSTILE_SITE_KEY__ = ''; 8 } 9 window.__tsWidgetByMount = {}; 10 11 window.initTurnstileWidgets = function () { 12 const sitekey = window.__TURNSTILE_SITE_KEY__; 13 if (!sitekey || typeof window.turnstile === 'undefined') return; 14 [ 15 'contact-turnstile', 16 'login-turnstile', 17 'admin-login-turnstile', 18 'schedule-book-turnstile', 19 ].forEach(function (mountId) { 20 const el = document.getElementById(mountId); 21 if (el && window.__tsWidgetByMount[mountId] == null) { 22 window.__tsWidgetByMount[mountId] = window.turnstile.render(el, { 23 sitekey: sitekey, 24 }); 25 } 26 }); 27 }; 28 29 window.turnstileGetToken = function (mountId) { 30 if (!window.__TURNSTILE_SITE_KEY__) { 31 return { ok: true, token: '' }; 32 } 33 if (typeof window.turnstile === 'undefined') { 34 return { 35 ok: false, 36 message: 37 'Security check is still loading. Please wait a moment and try again.', 38 }; 39 } 40 const wid = window.__tsWidgetByMount[mountId]; 41 if (wid == null) { 42 return { 43 ok: false, 44 message: 45 'Security check is still loading. Please wait a moment and try again.', 46 }; 47 } 48 const token = window.turnstile.getResponse(wid) || ''; 49 if (!token) { 50 return { ok: false, message: 'Please complete the security verification.' }; 51 } 52 return { ok: true, token: token }; 53 }; 54 55 window.turnstileReset = function (mountId) { 56 const wid = window.__tsWidgetByMount[mountId]; 57 if (typeof window.turnstile !== 'undefined' && wid != null) { 58 window.turnstile.reset(wid); 59 } 60 }; 61})();
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.