1/*global $*/ 2 3'use strict'; 4 5// $(function () { 6 7// $('.banner-image-carousel .responsive').each(function () { 8// var $this = $(this); 9// var bannerCarousel = $this.closest('.banner-image-carousel'); 10// var automateSlides = $this.closest('.banner-image-module').find('.automate-slides').html(); 11// var slideSpeedString = $this.closest('.banner-image-module').find('.slide-speed').html(); 12 13// var slideSpeed = parseInt(slideSpeedString); 14 15// automateSlides = (automateSlides.toLowerCase() === 'true'); 16 17// if (isNaN(slideSpeed)) { 18// slideSpeed = 3000; 19// } else { 20// if (slideSpeed > 0) { 21// slideSpeed *= 1000; 22// } else { 23// slideSpeed = 10000; 24// } 25// } 26 27// $this.slick({ 28// dots: false, 29// infinite: automateSlides, 30// speed: 300, 31// slidesToShow: 1, 32// slidesToScroll: 1, 33// swipe: false, 34// autoplay: automateSlides, 35// autoplaySpeed: slideSpeed, 36// prevArrow: '<div class="desktop banner-image-carousel-components carousel-left-arrow hidden-xs hidden-sm"><button type="button" class="icon-left-arrow btn-inactive"></button></div>', 37// nextArrow: '<div class="desktop banner-image-carousel-components carousel-right-arrow hidden-xs hidden-sm"><button type="button" class="icon-right-arrow"></button></div>', 38// responsive: [ 39// { 40// breakpoint: 1000, 41// settings: { 42// slidesToShow: 1, 43// slidesToScroll: 1, 44// dots: true, 45// infinite: false, 46// swipe: true 47// } 48// } 49// ] 50// }); 51 52// function calculateTotalPages() { 53// var activeSlides = $('.slick-active', bannerCarousel).length, 54// totalSlides = $('.slick-slide', bannerCarousel).length; 55// return Math.ceil(totalSlides / activeSlides); 56// } 57 58// var currentPage = 1, 59// leftButton = $('.icon-left-arrow', bannerCarousel), 60// rightButton = $('.icon-right-arrow', bannerCarousel), 61// page = currentPage, 62// totalPages = calculateTotalPages(); 63 64// rightButton.click(function () { 65 66// if (page === totalPages) { 67// return; 68// } 69 70// page++; 71// currentPage = page; 72 73// if (!automateSlides) { 74// if (page === totalPages) { 75// rightButton.addClass('btn-inactive'); 76// leftButton.removeClass('btn-inactive'); 77// } else { 78// rightButton.removeClass('btn-inactive'); 79// leftButton.removeClass('btn-inactive'); 80// } 81// } 82 83// }); 84 85// leftButton.click(function () { 86 87// if (page === 1) { 88// return; 89// } 90 91// page--; 92// currentPage = page; 93 94// if (!automateSlides) { 95// if (page === 1) { 96// leftButton.addClass('btn-inactive'); 97// rightButton.removeClass('btn-inactive'); 98// } else { 99// leftButton.removeClass('btn-inactive'); 100// rightButton.removeClass('btn-inactive'); 101// } 102// } 103// }); 104 105// if (automateSlides) { 106 107// rightButton.removeClass('btn-inactive'); 108// leftButton.removeClass('btn-inactive'); 109 110// $this.on('afterChange', function (event, slick, currentSlide, nextSlide) { 111// page = currentSlide + 1; //currentSlide starts from 0, page starts from 1 - sync up! 112// }); 113// } 114// var clonedCaption = $('.banner-image-carousel .slick-cloned .caption'); 115// clonedCaption.remove(); 116// }); 117 118// //slider locations for servcorp vs wework 119// $('.carousel[data-type="multi"] .item').each(function () { 120// var next = $(this).next();
121// if (!next.length) { 122// next = $(this).siblings(':first'); 123// } 124// next.children(':first-child').clone().appendTo($(this)); 125 126// for (var i = 0; i < 2; i++) { 127// next = next.next(); 128// if (!next.length) { 129// next = $(this).siblings(':first'); 130// } 131 132// next.children(':first-child').clone().appendTo($(this)); 133// } 134// }); 135// }); 136 137 138// $(function () { 139// $('.banner-image-carousel-m .responsive').each(function () { 140// var $this = $(this); 141 142// var automateSlides = $this.closest('.banner-image-module').find('.automate-slides').html(); 143// var slideSpeedString = $this.closest('.banner-image-module').find('.slide-speed').html(); 144 145// var slideSpeed = parseInt(slideSpeedString); 146 147// automateSlides = (automateSlides.toLowerCase() === 'true'); 148 149// if (isNaN(slideSpeed)) { 150// slideSpeed = 3000; 151// } else { 152// if (slideSpeed > 0) { 153// slideSpeed *= 1000; 154// } else { 155// slideSpeed = 10000; 156// } 157// } 158// if ($(this).hasClass('featurecontent')) { 159// $this.slick({ 160// dots: false, 161// infinite: automateSlides, 162// speed: 300, 163// slidesToShow: 1, 164// slidesToScroll: 1, 165// centerMode: true, 166// centerPadding: '60px', 167// swipe: true, 168// prevArrow: '', 169// nextArrow: '', 170// autoplay: automateSlides, 171// autoplaySpeed: slideSpeed, 172// responsive: [ 173// { 174// breakpoint: 1000, 175// settings: { 176// slidesToShow: 1, 177// slidesToScroll: 1, 178// dots: true, 179// infinite: automateSlides, 180// swipe: true 181// } 182// }, 183// { 184// breakpoint: 768, 185// settings: { 186// slidesToShow: 1, 187// slidesToScroll: 1, 188// dots: true, 189// infinite: automateSlides, 190// swipe: true 191// } 192// } 193// ] 194// }); 195// } else { 196// $this.slick({ 197// dots: false, 198// infinite: automateSlides, 199// speed: 300, 200// slidesToShow: 1, 201// slidesToScroll: 1, 202// swipe: true, 203// prevArrow: '', 204// nextArrow: '', 205// autoplay: automateSlides, 206// autoplaySpeed: slideSpeed, 207// responsive: [ 208// { 209// breakpoint: 1000, 210// settings: { 211// slidesToShow: 1, 212// slidesToScroll: 1, 213// dots: true, 214// infinite: automateSlides, 215// swipe: true 216// } 217// }, 218// { 219// breakpoint: 768, 220// settings: { 221// slidesToShow: 1, 222// slidesToScroll: 1, 223// dots: true, 224// infinite: automateSlides, 225// swipe: true 226// } 227// } 228// ] 229// }); 230// } 231// }); 232// $('.slick-dots li button').on('click', function () { 233// $('.banner-image-carousel-m .responsive').slick('slickPause'); 234// }); 235// }); 236 237// //Banner slider with GlideJs for mobile RTL 238// $(function () { 239// if ($('.banner-image-carousel-m.glide.rtl').length > 0) { 240// $('.banner-image-carousel-m.glide.rtl').each(function () { 241// var $this = $(this); 242 243// var automateSlides = $this.closest('.banner-image-module').find('.automate-slides').html();
244// var slideSpeedString = $this.closest('.banner-image-module').find('.slide-speed').html(); 245 246// var slideSpeed = parseInt(slideSpeedString); 247 248// automateSlides = (automateSlides.toLowerCase() === 'true'); 249 250// if (automateSlides == true) { 251// if (isNaN(slideSpeed)) { 252// slideSpeed = 3000; 253// } else { 254// if (slideSpeed > 0) { 255// slideSpeed *= 1000; 256// } else { 257// slideSpeed = 3000; 258// } 259// } 260// } 261// else { 262// slideSpeed = 'false'; 263// slideSpeed = (slideSpeed.toLowerCase() === 'true'); 264// } 265// var glide = new Glide('.banner-image-carousel-m.glide.rtl', { 266// type: 'slider', 267// rewind: automateSlides, 268// autoplay: slideSpeed, 269// animationDuration: 300, 270// startAt: 0, 271// perview: 1, 272// gap: 0, 273// direction: "rtl" 274// }); 275// glide.on(['mount.after', 'run'], function () { 276// if ($(glide.selector).parent().find(".glide__slide.glide_custom_lazy").length > 0) { 277// const currentIndex = glide.index; 278// var currentSlide = $(glide.selector).parent().find(".glide__slide.glide_custom_lazy")[currentIndex]; 279// var source = $(currentSlide).attr("data-src"); 280// $(currentSlide).css("background-image", "url(" + source + ")"); 281// } 282// }); 283// glide.mount(); 284// }); 285// } 286// }); 287 288// //Banner slider with GlideJs for desktop RTL 289// $(function () { 290// if ($('.banner-image-carousel.glide.rtl').length > 0) { 291// $('.banner-image-carousel.glide.rtl').each(function () { 292// var $this = $(this); 293 294// var automateSlides = $this.closest('.banner-image-module').find('.automate-slides').html(); 295// var slideSpeedString = $this.closest('.banner-image-module').find('.slide-speed').html(); 296 297// var slideSpeed = parseInt(slideSpeedString); 298 299// automateSlides = (automateSlides.toLowerCase() === 'true'); 300 301// if (automateSlides == true) { 302// if (isNaN(slideSpeed)) { 303// slideSpeed = 3000; 304// } else { 305// if (slideSpeed > 0) { 306// slideSpeed *= 1000; 307// } else { 308// slideSpeed = 3000; 309// } 310// } 311// } 312// else { 313// slideSpeed = 'false'; 314// slideSpeed = (slideSpeed.toLowerCase() === 'true'); 315// } 316// var glide = new Glide('.banner-image-carousel.glide.rtl', { 317// type: 'slider', 318// rewind: automateSlides, 319// autoplay: slideSpeed, 320// animationDuration: 300, 321// startAt: 0, 322// perview: 1, 323// gap: 0, 324// dragThreshold: false, 325// direction: "rtl" 326// }); 327// glide.on(['mount.after', 'run'], function () { 328// if ($(glide.selector).parent().find(".glide__slide.glide_custom_lazy").length > 0) { 329// const currentIndex = glide.index; 330// var currentSlide = $(glide.selector).parent().find(".glide__slide.glide_custom_lazy")[currentIndex]; 331// var source = $(currentSlide).attr("data-src"); 332// $(currentSlide).css("background-image", "url(" + source + ")"); 333// } 334// }); 335// glide.mount(); 336// }); 337// } 338// }); 339 340// // Carousel office location 341// $(function () { 342// $('#other-location').find('article').removeClass("col-sm-6").removeClass("col-md-4"); 343// $('#other-location').slick({
344// dots: false, 345// infinite: false, 346// speed: 300, 347// slidesToShow: 3, 348// slidesToScroll: 3, 349// appendArrows: $('.wrap-slick-slider'), 350// prevArrow: '<div class="left carousel-control" href="#"><img src="/images/arrow-slide-left.png" alt=""></div>', 351// nextArrow: '<div class="right carousel-control" href="#"><img src="/images/arrow-slide-right.png" alt=""></div>', 352// responsive: [ 353// { 354// breakpoint: 1025, 355// settings: { 356// slidesToShow: 2, 357// slidesToScroll: 2 358// } 359// }, 360// { 361// breakpoint: 768, 362// settings: { 363// slidesToShow: 1, 364// slidesToScroll: 1 365// } 366// } 367// ] 368// }); 369// }); 370 371// $(function () { 372// if ($('.banner-image-carousel-m.ransom-notes-carousel-m .glide').length > 0) { 373// $('.banner-image-carousel-m.ransom-notes-carousel-m .glide').each(function () { 374// var $this = $(this); 375 376// var automateSlides = $this.closest('.banner-image-module').find('.automate-slides').html(); 377// var slideSpeedString = $this.closest('.banner-image-module').find('.slide-speed').html(); 378 379// var slideSpeed = parseInt(slideSpeedString); 380 381// automateSlides = (automateSlides.toLowerCase() === 'true'); 382 383// if (automateSlides == true) { 384// if (isNaN(slideSpeed)) { 385// slideSpeed = 3000; 386// } else { 387// if (slideSpeed > 0) { 388// slideSpeed *= 1000; 389// } else { 390// slideSpeed = 3000; 391// } 392// } 393// } 394// else { 395// slideSpeed = 'false'; 396// slideSpeed = (slideSpeed.toLowerCase() === 'true'); 397// } 398// var glide = new Glide('.banner-image-carousel-m.ransom-notes-carousel-m .glide', { 399// type: 'slider', 400// rewind: automateSlides, 401// autoplay: slideSpeed, 402// animationDuration: 300, 403// startAt: 0, 404// perview: 1, 405// gap: 0 406// }); 407// glide.on(['mount.after', 'run'], function () { 408// if ($(glide.selector).parent().find(".glide__slide.glide_custom_lazy").length > 0) { 409// const currentIndex = glide.index; 410// var currentSlide = $(glide.selector).parent().find(".glide__slide.glide_custom_lazy")[currentIndex]; 411// var source = $(currentSlide).attr("data-src"); 412// $(currentSlide).css("background-image", "url(" + source + ")"); 413// } 414// }); 415// glide.mount(); 416// }); 417// } 418// }); 419 420 421//Banner slider with GlideJs for mobile 422$(function () { 423 if ($('.banner-image-carousel-m.glide.ltr').length > 0) { 424 $('.banner-image-carousel-m.glide.ltr').each(function () { 425 var $this = $(this); 426 427 var automateSlides = $this.closest('.banner-image-module').find('.automate-slides').html(); 428 var slideSpeedString = $this.closest('.banner-image-module').find('.slide-speed').html(); 429 430 var slideSpeed = parseInt(slideSpeedString); 431 432 automateSlides = (automateSlides.toLowerCase() === 'true'); 433 434 if (automateSlides == true) { 435 if (isNaN(slideSpeed)) { 436 slideSpeed = 3000; 437 } else { 438 if (slideSpeed > 0) { 439 slideSpeed *= 1000; 440 } else { 441 slideSpeed = 3000; 442 } 443 } 444 } 445 else { 446 slideSpeed = 'false'; 447 slideSpeed = (slideSpeed.toLowerCase() === 'true'); 448 } 449 var glide = new Glide(this, { 450 type: 'slider', 451 rewind: automateSlides, 452 autoplay: slideSpeed, 453 animationDuration: 300, 454 startAt: 0, 455 perview: 1, 456 gap: 0 457 }); 458 // mount: only active slide â never preload next (steals LCP bandwidth) 459 glide.on('mount.after', function () { 460 activateBannerSlideMedia($this, glide.index, false); 461 }); 462 // user/autoplay navigation: load active; preload next only after first move 463 glide.on(['run', 'run.after'], function () { 464 activateBannerSlideMedia($this, glide.index, glide.index > 0); 465 }); 466 glide.mount(); 467 }); 468 } 469}); 470 471//Banner slider with GlideJs for desktop 472$(function () { 473 if ($('.banner-image-carousel.glide.ltr').length > 0) { 474 $('.banner-image-carousel.glide.ltr').each(function () { 475 var $this = $(this); 476 477 var automateSlides = $this.closest('.banner-image-module').find('.automate-slides').html(); 478 var slideSpeedString = $this.closest('.banner-image-module').find('.slide-speed').html(); 479 480 var slideSpeed = parseInt(slideSpeedString); 481 482 automateSlides = (automateSlides.toLowerCase() === 'true'); 483 484 if (automateSlides == true) { 485 if (isNaN(slideSpeed)) { 486 slideSpeed = 3000; 487 } else { 488 if (slideSpeed > 0) { 489 slideSpeed *= 1000; 490 } else { 491 slideSpeed = 3000; 492 } 493 } 494 } 495 else {
496 slideSpeed = 'false'; 497 slideSpeed = (slideSpeed.toLowerCase() === 'true'); 498 } 499 var glide = new Glide(this, { 500 type: 'slider', 501 rewind: automateSlides, 502 autoplay: slideSpeed, 503 animationDuration: 300, 504 startAt: 0, 505 perview: 1, 506 gap: 0 507 }); 508 glide.on('mount.after', function () { 509 activateBannerSlideMedia($this, glide.index, false); 510 }); 511 glide.on(['run', 'run.after'], function () { 512 activateBannerSlideMedia($this, glide.index, glide.index > 0); 513 }); 514 glide.mount(); 515 }); 516 } 517}); 518 519function loadBannerSlideMedia($slide) { 520 if (!$slide || !$slide.length) { 521 return; 522 } 523 524 // Prefer <img> hero â do not also set CSS background (double download + wrong LCP) 525 // Desktop: img is direct child of article; Mobile: img is inside .carouselbg-mob 526 var $heroImg = $slide.children('img.img-responsive, img.object-fit_cover, img.glide-img-lazy').first(); 527 if (!$heroImg.length) { 528 $heroImg = $slide.find('.carouselbg-mob > img, .carouselbg-mob-special-header > img').first(); 529 } 530 if ($heroImg.length) { 531 if ($heroImg.hasClass('glide-img-lazy') || (!$heroImg.attr('src') && $heroImg.attr('data-src'))) { 532 var src = $heroImg.attr('data-src'); 533 if (src && !$heroImg.data('imgLoaded')) { 534 var srcset = $heroImg.attr('data-srcset'); 535 if (srcset) { 536 $heroImg.attr('srcset', srcset); 537 } 538 $heroImg.attr('src', src); 539 $heroImg.removeClass('glide-img-lazy'); 540 $heroImg.removeClass('glide-lazyload'); 541 $heroImg.data('imgLoaded', true); 542 } 543 } 544 } else if (!$slide.data('bgLoaded')) { 545 var bg = $slide.attr('data-src'); 546 var currentBg = $slide.css('background-image'); 547 if (bg && (!currentBg || currentBg === 'none')) { 548 $slide.css('background-image', 'url(' + bg + ')'); 549 $slide.data('bgLoaded', true); 550 } 551 } 552 553 // Decorative rate-star icons only (not full-bleed hero) 554 $slide.find('img.glide-lazyload').not('.carouselbg-mob img, .carouselbg-mob-special-header img').each(function () { 555 var $img = $(this); 556 var iconSrc = $img.attr('data-src'); 557 if (!iconSrc || $img.data('imgLoaded')) { 558 return; 559 } 560 $img.attr('src', iconSrc); 561 $img.removeClass('glide-lazyload'); 562 $img.data('imgLoaded', true); 563 }); 564} 565 566/** 567 * Load media for the active glide slide (and optionally the next one). 568 * Prefer .glide__slide--active so we still work if Glide index lags the class update. 569 */ 570function activateBannerSlideMedia($carousel, index, preloadNext) { 571 var $slides = $carousel.children('.glide__track').find('.glide__slides > .glide__slide'); 572 if (!$slides.length) { 573 $slides = $carousel.find('.glide__slides > .glide__slide'); 574 } 575 576 var $active = $carousel.find('.glide__slide--active').first(); 577 if ($active.length) { 578 loadBannerSlideMedia($active); 579 } 580 581 if (typeof index === 'number' && index >= 0) { 582 loadBannerSlideMedia($slides.eq(index)); 583 if (preloadNext && index + 1 < $slides.length) { 584 loadBannerSlideMedia($slides.eq(index + 1)); 585 } 586 } 587} 588 589// Failsafe: if a slide becomes active without going through Glide handlers, still load its media 590$(function () { 591 var pending = null; 592 function flushActiveBannerMedia() { 593 $('.banner-image-carousel .glide__slide--active, .banner-image-carousel-m .glide__slide--active').each(function () { 594 loadBannerSlideMedia($(this)); 595 }); 596 } 597 598 $(document).on('click', '.banner-image-module .glide__arrow, .banner-image-module .glide__bullet', function () { 599 clearTimeout(pending); 600 pending = setTimeout(flushActiveBannerMedia, 50); 601 });
602 603 // Do NOT preload the next slide on window.load â that image can become LCP (5s+) and steal bandwidth from slide 1. 604 // Next slide is loaded on first glide run / arrow click only. 605}); 606 607$('#banner-search-btn').on('click', function () { 608 var selectedLink = $('#search-selection option:selected').val(); 609 if (selectedLink != 'none') { 610 window.location.href = selectedLink; 611 } 612}) 613$('#banner-search-btn-mb').on('click', function () { 614 var selectedLinkMB = $('#search-selection-mb option:selected').val(); 615 if (selectedLinkMB != 'none') { 616 window.location.href = selectedLinkMB; 617 } 618})
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.