1function initializeMobileNavigationScrollLock() { 2 const mobileNavigationElement = document.getElementById("mobileNav"); 3 4 if (mobileNavigationElement === null) { 5 return; 6 } 7 8 const desktopMediaQuery = window.matchMedia("(min-width: 992px)"); 9 10 function lockDocumentScroll(event) { 11 if (event.target !== mobileNavigationElement) { 12 return; 13 } 14 15 document.body.classList.add("fixed"); 16 } 17 18 function unlockDocumentScroll(event) { 19 if (event.target !== mobileNavigationElement) { 20 return; 21 } 22 23 document.body.classList.remove("fixed"); 24 } 25 26 function resetNavigationAtDesktopWidth(event) { 27 if (event.matches) { 28 document.body.classList.remove("fixed"); 29 } 30 } 31 32 mobileNavigationElement.addEventListener( 33 "show.bs.collapse", 34 lockDocumentScroll 35 ); 36 37 mobileNavigationElement.addEventListener( 38 "hidden.bs.collapse", 39 unlockDocumentScroll 40 ); 41 42 desktopMediaQuery.addEventListener( 43 "change", 44 resetNavigationAtDesktopWidth 45 ); 46 47 if (mobileNavigationElement.classList.contains("show")) { 48 document.body.classList.add("fixed"); 49 } 50} 51 52if (document.readyState === "loading") { 53 document.addEventListener( 54 "DOMContentLoaded", 55 initializeMobileNavigationScrollLock 56 ); 57} else { 58 initializeMobileNavigationScrollLock(); 59} 60 61document.addEventListener("DOMContentLoaded", function () { 62 // For the AppModal. Detects if page is being loaded on a mobile 63 // device before opening. Sets cookie if modal has been closed. 64 const modalElement = document.querySelector( 65 '[id^="appModalUnique-"]' 66 ); 67 68 if (modalElement) { 69 var cookieName = "modalClosed-" + modalElement.id; 70 71 if ( 72 /Mobi|Android/i.test(navigator.userAgent) || 73 window.innerWidth <= 800 74 ) {
75 const setCookie = (name, value, days) => { 76 let expires = ""; 77 78 if (days) { 79 let date = new Date(); 80 81 date.setTime( 82 date.getTime() + days * 24 * 60 * 60 * 1000 83 ); 84 85 expires = "; expires=" + date.toUTCString(); 86 } 87 88 document.cookie = 89 `${name}=${value || ""}${expires}; path=/`; 90 }; 91 92 const getCookie = name => { 93 let nameEQ = `${name}=`; 94 let ca = document.cookie.split(";"); 95 96 for (let c of ca) { 97 while (c.charAt(0) === " ") { 98 c = c.substring(1); 99 } 100 101 if (c.indexOf(nameEQ) === 0) { 102 return c.substring(nameEQ.length); 103 } 104 } 105 106 return null; 107 }; 108 109 if (!getCookie(cookieName)) { 110 var appModal = new bootstrap.Modal(modalElement); 111 112 appModal.show(); 113 114 modalElement.addEventListener( 115 "hidden.bs.modal", 116 () => { 117 setCookie(cookieName, "true", 7); 118 } 119 ); 120 } 121 } 122 } 123 124 const searchInputs = document.querySelectorAll( 125 'input[type="search"]' 126 ); 127 128 searchInputs.forEach(input => { 129 const label = input.previousElementSibling; 130 131 if (label && label.tagName === "LABEL") { 132 input.addEventListener("focus", function () { 133 label.classList.add("search-active"); 134 }); 135 136 input.addEventListener("blur", function () { 137 label.classList.remove("search-active"); 138 }); 139 } 140 }); 141 142 // Services dropdown routing on Department list page. 143 const servicesDropdowns = document.querySelectorAll( 144 ".services-dropdown" 145 ); 146 147 if (servicesDropdowns.length > 0) { 148 servicesDropdowns.forEach(function (dropdown) { 149 dropdown.addEventListener("change", function () { 150 const selectedUrl = this.value; 151 152 if (selectedUrl) { 153 window.location.href = selectedUrl; 154 } 155 }); 156 }); 157 } 158 159 // Hiding label in search column under specific conditions. 160 const searchInput = document.getElementById( 161 "search-input-blog-post" 162 ); 163 164 const searchLabel = document.getElementById("search-label"); 165 166 if (searchInput && searchLabel) { 167 function updateLabelVisibility() { 168 if ( 169 searchInput === document.activeElement || 170 searchInput.value.trim() !== "" 171 ) { 172 searchLabel.style.visibility = "hidden"; 173 } else { 174 searchLabel.style.visibility = "visible"; 175 } 176 } 177 178 searchInput.addEventListener( 179 "focus", 180 updateLabelVisibility 181 ); 182 183 searchInput.addEventListener( 184 "blur", 185 updateLabelVisibility 186 ); 187 188 searchInput.addEventListener( 189 "input", 190 updateLabelVisibility 191 ); 192 193 updateLabelVisibility(); 194 } 195}); 196 197// $(document).ready(function () { 198// function CloseNav() { 199// $(".dropdown-toggle") 200// .removeClass("show") 201// .attr("aria-expanded", "false"); 202// 203// $(".dropdown-menu").removeClass("show"); 204// } 205// 206// $("html").click(function (event) { 207// var clickover = $(event.target); 208// var opened = $(".dropdown-toggle").hasClass("show"); 209// 210// if ( 211// opened === true && 212// !clickover.hasClass("navbar-collapse") 213// ) { 214// CloseNav(); 215// } 216// }); 217// }); 218 219document 220 .querySelectorAll(".featured-news-slider") 221 .forEach(function (slider) { 222 const configuredDesktopSlidesPerView = Number.parseFloat( 223 slider.dataset.desktopSlidesPerView 224 ); 225 const desktopSlidesPerView = Number.isFinite( 226 configuredDesktopSlidesPerView 227 ) 228 ? configuredDesktopSlidesPerView 229 : 2.2; 230 231 new Swiper(slider.querySelector(".slider-news"), { 232 slidesPerView: 1, 233 slidesPerGroup: 1, 234 spaceBetween: 15, 235 breakpointsBase: "container", 236 navigation: { 237 nextEl: slider.querySelector( 238 "#blog-featured-slider-next" 239 ), 240 prevEl: slider.querySelector( 241 "#blog-featured-slider-prev" 242 ), 243 }, 244 freeMode: { 245 enabled: true, 246 sticky: true, 247 }, 248 loop: true, 249 pagination: { 250 el: slider.querySelector( 251 "#blog-featured-slider-pagination" 252 ), 253 type: "fraction", 254 }, 255 breakpoints: { 256 600: { 257 slidesPerView: 1.2, 258 }, 259 992: { 260 slidesPerView: desktopSlidesPerView, 261 }, 262 1440: { 263 slidesPerView: 3.2, 264 }, 265 }, 266 }); 267 }); 268 269document 270 .querySelectorAll(".featured-news-slider-1") 271 .forEach(function (slider) { 272 new Swiper(slider.querySelector(".slider-news"), { 273 slidesPerView: 1, 274 slidesPerGroup: 1, 275 spaceBetween: 15, 276 navigation: { 277 nextEl: slider.querySelector( 278 "#blog-featured-slider-next" 279 ), 280 prevEl: slider.querySelector( 281 "#blog-featured-slider-prev" 282 ), 283 }, 284 freeMode: { 285 enabled: true, 286 sticky: true, 287 }, 288 loop: true, 289 pagination: { 290 el: slider.querySelector( 291 "#blog-featured-slider-pagination" 292 ), 293 type: "fraction", 294 }, 295 breakpoints: { 296 768: { 297 slidesPerView: 1, 298 }, 299 }, 300 }); 301 }); 302 303var swiperEvents = new Swiper("#slider-events-1", { 304 slidesPerView: 1, 305 spaceBetween: 15, 306 navigation: { 307 nextEl: "#event-swiper-next", 308 prevEl: "#event-swiper-prev", 309 }, 310 pagination: { 311 el: "event-swiper-pagination", 312 type: "fraction", 313 }, 314 breakpoints: { 315 991: { 316 slidesPerView: 1.2, 317 }, 318 }, 319}); 320 321var swiperEvents = new Swiper("#slider-events-2", { 322 slidesPerView: 1, 323 spaceBetween: 15, 324 navigation: { 325 nextEl: "#event-swiper-next", 326 prevEl: "#event-swiper-prev", 327 }, 328 pagination: { 329 el: "event-swiper-pagination", 330 type: "fraction", 331 }, 332 breakpoints: { 333 991: { 334 slidesPerView: 2.2, 335 }, 336 }, 337}); 338 339var swiperBlog = new Swiper("#blog-featured-slider", { 340 slidesPerView: 1, 341 spaceBetween: 15, 342 loop: true, 343 navigation: { 344 nextEl: "#blog-featured-slider-next", 345 prevEl: "#blog-featured-slider-prev", 346 }, 347 breakpoints: { 348 768: { 349 slidesPerView: 1, 350 }, 351 }, 352}); 353 354var swiper = new Swiper(".amenityswiper", { 355 autoHeight: true, 356 navigation: { 357 nextEl: ".amenityswiper-button-next", 358 prevEl: ".amenityswiper-button-prev", 359 }, 360}); 361 362var swiper = new Swiper(".locationswiper", { 363 autoHeight: true, 364 navigation: { 365 nextEl: ".locationswiper-button-next", 366 prevEl: ".locationswiper-button-prev", 367 }, 368}); 369 370function setHeaderOffset() { 371 const header = document.querySelector(".header"); 372 373 if (!header) { 374 return; 375 } 376 377 document.documentElement.style.setProperty( 378 "--header-h", 379 header.offsetHeight + "px" 380 ); 381} 382 383window.addEventListener("load", setHeaderOffset); 384window.addEventListener("resize", setHeaderOffset); 385window.addEventListener( 386 "scroll", 387 setHeaderOffset, 388 { passive: true } 389);
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.