- Airport Tips
- November 15, 2021
Reserve SJC Parking Online
Make your next trip through SJC a breeze and reserve a parking space in advance!
We’re currently offering parking reservations for Economy Lot 1, and reservations for our other lots are coming soon.
Learn how you can reserve your parking space online by using the step-by-step "How-To" video below. Happy travels!
document.addEventListener('DOMContentLoaded', function () { const acceptButton = document.querySelector('.cm-btn-success')[0]; const declineButton = document.querySelector('.cm-btn-danger')[0]; acceptButton.addEventListener('click', function () { // Handle accept action loadChatbot(); // Load chatbot immediately on accept }); declineButton.addEventListener('click', function () { loadChatbot(); // Load chatbot immediately on decline }); function loadChatbot() { (function (d, m) { var defaultSettings = { "defaultBotIds": ["sjc-oj2ht"], "defaultAssignee": "sjc-oj2ht", "skipRouting": true, }; var kommunicateSettings = { "appId": "115795fb883b8512e78ed54540345f318", "popupWidget": true, "automaticChatOpenOnNavigation": true, "talkToHuman": true, "primaryCTA": "TALK_TO_HUMAN", "onInit": function () { /* Hide Kommunicate branding */ var css = ".mck-running-on {display:none !important;}"; Kommunicate.customizeWidgetCss(css); // Disable input - before widget loads document.addEventListener("DOMContentLoaded", function () { const attempt = setInterval(() => { const iframeDoc = window.KommunicateGlobal?.document; if (!iframeDoc) return; const box = iframeDoc.querySelector(".mck-box-form.mck-row"); if (box) { box.style.pointerEvents = "none"; box.style.opacity = "0.5"; clearInterval(attempt); // stop polling } }, 50); }); // Main logic - Run after widget loaded setTimeout(() => { const kmDoc = window.KommunicateGlobal?.document; if (!kmDoc) return; let consentGiven = false; function disableInput() { const box = kmDoc.querySelector(".mck-box-form.mck-row"); if (box) { box.style.pointerEvents = "none"; box.style.opacity = "0.5"; } } function enableInput() { const box = kmDoc.querySelector(".mck-box-form.mck-row"); if (box) { box.style.pointerEvents = "auto"; box.style.opacity = "1"; } } /* Disable input again (persistent) */ disableInput(); /* Detect clicking the “I Agree” button */ Kommunicate.subscribeToEvents({ onRichMessageButtonClick: function (resp) { if (resp.eventLabel === "I Agree") { consentGiven = true; } } }); /* Keep enforcing the rule even after re-renders */ const observer = new MutationObserver(() => { if (consentGiven) enableInput(); else disableInput(); }); const target = kmDoc.querySelector("#mck-sidebox-content") || kmDoc.body; observer.observe(target, { childList: true, subtree: true }); }, 1200); // widget render delay Kommunicate.updateSettings(defaultSettings); } }; /* Default Kommunicate loader */ kommunicateSettings.restartConversationByUser = true; var s = document.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = "https://widget.kommunicate.io/v2/kommunicate.app"; var h = document.getElementsByTagName("head")[0]; h.appendChild(s); window.kommunicate = m; m._globals = kommunicateSettings; })(document, window.kommunicate || {}); } });