PageSourceSearch

https://www.servcorp.com.ph/jsv2/modules/min/bannerCarousel.min.js

js servcorp.com.ph collected 2026-09-26 18:54:02 UTC 23,883 bytes, 618 lines download raw bytes

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.