PageSourceSearch

https://www.arabianadventuresmice.com/Assets/scripts/main.js

js arabianadventuresmice.com collected 2026-10-08 13:27:20 UTC 35,148 bytes, 1,091 lines download raw bytes

1'use strict';
2
3// global Variables
4var mobileWidth = 767;
5var tabletPWidth = 991;
6
7// page init
8jQuery(function () {
9    autocomplete();
10    searchOpener();
11    stickyMenu();
12    initLayout();
13    gallerySwiper();
14    info();
15    testimonials();
16    video();
17    vimeoVideo();
18    clearPlaceholder();
19    scrollTop();
20    keywords();
21    destinations();
22    activities();
23    generals();
24    mediaTypes();
25    GroupLoadMore();
26    ResourceLoadMore();
27    caseStudyAccordion();
28    downloadHiResImage();
29    inputSymbols();
30    modalInfoClone();
31    loadMoreNews();
32    homeNewsSlider();
33
34    $('#mce-success-response').bind('DOMSubtreeModified', function () {
35        $('#thankyou').show()
36    });
37
38    function downloadHiResImage() {
39        var $modal = $('#download-modal');
40
41        if(!$modal.length) {
42            return;
43        }
44
45        var
46            body = document.body,
47            anchor = document.createElement('a'),
48            downloadAttrSupported = ('download' in anchor),
49            imageUrl, download;
50
51        anchor.style.display = 'none';
52
53        if(downloadAttrSupported) {
54            download = function (url) {
55                anchor.download = getFileName(url);
56                anchor.href = url;
57                body.appendChild(anchor);
58                anchor.click();
59                body.removeChild(anchor);
60            }
61        }
62        else if (window.navigator.msSaveBlob) {
63
64            download = function (url) {
65                anchor.href = url;
66                $.get(anchor.href).done(function (resp) {
67                    var blob = new Blob([resp]);
68                    window.navigator.msSaveBlob(blob, getFileName(url));
69                });
70            }
71        }
72        else {
73            return;
74        }
75
76        $modal
77            .on('shown.bs.modal', onModalShown)
78            .on('click', '.btn-success', onAcceptClick);
79
80        function onModalShown(e) {
81            imageUrl = e.relatedTarget.getAttribute('data-image');
82        }
83
84        function onAcceptClick() {
85            download(imageUrl);
86        }
87
88        function getFileName(url) {
89            var urlPaths = url.split('/');
90            return urlPaths[urlPaths.length - 1];
91        }
92    }
93
94    MobNav({
95        menu: '.header-container',
96        opener: '.mobile-nav-opener',
97        activeClass: 'menu-opened',
98        overlayClass: 'page-overlay',
99        swipe: 'swiperight',
100        onOpen: function () {
101            $('body').on('touchmove.mobNav', function (e) {
102                e.preventDefault();
103            });
104        },
105        onClose: function () {
106            $('body').off('.mobNav');
107        }
108    });
109    stickyNav();
110    topNavHeight();
111    browserDetect();
112    pageNav();
113    clientAreaDots();
114
115    function keywords() {
116
117        if(window._) {
118            $("#KeyWordSearch").keydown(_.debounce(function () {
119
120                /// third character fire
121                //if ($("#KeyWordSearch").val().length > 2 || $("#KeyWordSearch").val().length == 0) {
122
123                if($("#hdnPageType").val() == "R") {
124                    clientArenaGroupResourceSeacrh();
125                }
126                else {
127                    clientArenaGroupSeacrh();
128                }
129                //}
130            }, 500));
131        }
132    }
133
134    function clientAreaDots() {
135        if($(".clientAreaDots").length > 0) {
136            $(".clientAreaDots").dotdotdot({});
137        }
138    }
139
140    function destinations() {
141        $("input[type='checkbox'][name='destinations[]']").click(function () {
142            clientArenaGroupSeacrh();
143        })
144    }
145
146    function activities() {
147        $("input[type='checkbox'][name='activities[]']").click(function () {
148            clientArenaGroupSeacrh();
149        })
150    }
151
152    function clientArenaGroupSeacrh() {
153        var destinations = getDestinations();
154        var activities = getActivities();
155
156        // Reset paging attributes
157        showGroupLoadMore(1);
158        setGroupPageIndex(1);
159
160        $.ajax({
161            type: "Get",
162            url: "/umbraco/Surface/ClientArena/GetGroupsByKeyWord/",
163            dataType: "text",
164            contentType: "application/json; charset=utf-8",
165            data: {
166                "Query": ($("#KeyWordSearch").val().length > 2) ? $("#KeyWordSearch").val() : '',
167                "Destinations": destinations,
168                "Activities": activities,
169                "PageIndex": 1
170            },
171            success: function (resultData) {
172                $("#ClientGroups").html(resultData);
173                IsGroupLoadMoreVisible();
174            }
175        });
176
177        return false;
178    }
179
180    function getDestinations() {
181        var destinations = "";
182
183        $("input[type='checkbox'][name='destinations[]']:checked").each(function () {
184            if(destinations == "") {
185                destinations = this.value;
186            }
187            else {
188                destinations = destinations + "," + this.value;
189            }
190        });
191
192        return destinations;
193    }
194
195    function getActivities() {
196        var activities = "";
197
198        $("input[type='checkbox'][name='activities[]']:checked").each(function () {
199            if(activities == "") {
200                activities = this.value;
201            }
202            else {
203                activities = activities + "," + this.value;
204            }
205        });
206
207        return activities;
208    }
209
210    function GroupLoadMore() {
211
212        $("#GroupLoadMore").click(function () {
213            var destinations = getDestinations();
214            var activities = getActivities();
215            var pageIndex = eval($("#hdnPageIndex").val()) + 1
216            $.ajax({
217                type: "Get",
218                url: "/umbraco/Surface/ClientArena/GetGroupsByKeyWord/",
219                dataType: "text",
220                contentType: "application/json; charset=utf-8",
221                data: {
222                    "Query": ($("#KeyWordSearch").val().length > 2) ? $("#KeyWordSearch").val() : '',
223                    "Destinations": destinations,
224                    "Activities": activities,
225                    "PageIndex": pageIndex
226                },
227                success: function (resultData) {
228                    if(resultData.trim() != "") {
229                        $(resultData).appendTo($("#ClientGroups"));
230                        setGroupPageIndex(pageIndex)
231                        IsGroupLoadMoreVisible();
232                    }
233                    else {
234                        hideGroupLoadMore();
235                    }
236                }
237            });
238        });
239
240        return false;
241    }
242
243    function IsGroupLoadMoreVisible() {
244        if($("#hdnLoadmore").val() == "Y") {
245            showGroupLoadMore();
246        }
247        else {
248            hideGroupLoadMore();
249        }
250
251        $("#hdnLoadmore").remove();
252    }
253
254    function hideGroupLoadMore() {
255        $("#GroupLoadMore").hide();
256    }
257
258    function showGroupLoadMore() {
259        $("#GroupLoadMore").show();
260    }
261
262    function setGroupPageIndex(pageIndex) {
263        $("#hdnPageIndex").val(pageIndex)
264    }
265
266    function generals() {
267        $("input[type='checkbox'][name='general[]']").click(function () {
268            clientArenaGroupResourceSeacrh();
269        })
270    }
271
272    function mediaTypes() {
273        $("input[type='checkbox'][name='mediatypes[]']").click(function () {
274            clientArenaGroupResourceSeacrh();
275        })
276    }
277
278    function clientArenaGroupResourceSeacrh() {
279        var generals = getGenerals();
280        var mediaTypes = getMediaTypes();
281
282        // Reset paging attributes
283        setResourcePageIndex(1);
284        showResourceLoadMore();
285
286        $.ajax({
287            type: "Get",
288            url: "/umbraco/Surface/ClientArena/GetGroupResourcesByKeyWord/",
289            dataType: "text",
290            contentType: "application/json; charset=utf-8",
291            data: {
292                "Query": ($("#KeyWordSearch").val().length > 2) ? $("#KeyWordSearch").val() : '',
293                "Generals": generals,
294                "MediaType": mediaTypes,
295                "GroupId": $("#hdnGroupId").val(),
296                "PageIndex": 1
297            },
298            success: function (resultData) {
299                $("#GroupResources").html(resultData);
300                IsGroupResourceLoadMoreVisible();
301                if(resultData.trim() == "") {
302                    hideResourceLoadMore();
303                }
304            }
305        });
306
307        return false;
308    }
309
310    function getGenerals() {
311        var generals = "";
312
313        $("input[type='checkbox'][name='general[]']:checked").each(function () {
314            if(generals == "") {
315                generals = this.value;
316            }
317            else {
318                generals = generals + "," + this.value;
319            }
320        });
321
322        return generals;
323    }
324
325    function getMediaTypes() {
326        var mediaTypes = "";
327
328        $("input[type='checkbox'][name='mediatypes[]']:checked").each(function () {
329            if(mediaTypes == "") {
330                mediaTypes = this.value;
331            }
332            else {
333                mediaTypes = mediaTypes + "," + this.value;
334            }
335        });
336
337        return mediaTypes;
338    }
339
340    function inputSymbols() {
341        $(document).ready(function(){
342            $(".input-text").keypress(function(event){
343                var inputValue = event.which;
344                // allow letters and whitespaces only.
345                if(!(inputValue >= 65 && inputValue <= 123) && (inputValue != 32 && inputValue != 0)) {
346                    event.preventDefault();
347                }
348            });
349        });
350    }
351
352    function ResourceLoadMore() {
353        $("#ResourceLoadMore").click(function () {
354            var generals = getGenerals();
355            var mediaTypes = getMediaTypes();
356            var pageIndex = eval($("#hdnPageIndex").val()) + 1
357
358            $.ajax({
359                type: "Get",
360                url: "/umbraco/Surface/ClientArena/GetGroupResourcesByKeyWord/",
361                dataType: "text",
362                contentType: "application/json; charset=utf-8",
363                data: {
364                    "Query": ($("#KeyWordSearch").val().length > 2) ? $("#KeyWordSearch").val() : '',
365                    "Generals": generals,
366                    "MediaType": mediaTypes,
367                    "GroupId": $("#hdnGroupId").val(),
368                    "PageIndex": pageIndex
369                },
370                success: function (resultData) {
371                    if(resultData.trim() != "") {
372                        $(resultData).appendTo($("#GroupResources"));
373                        setResourcePageIndex(pageIndex);
374                        IsGroupResourceLoadMoreVisible();
375                    }
376                    else {
377                        hideResourceLoadMore();
378                    }
379
380                }
381            });
382
383            return false;
384        });
385    }
386
387    function IsGroupResourceLoadMoreVisible() {
388        if($("#hdnLoadmore").val() == "Y") {
389            showResourceLoadMore();
390        }
391        else {
392            hideResourceLoadMore();
393        }
394
395        $("#hdnLoadmore").remove();
396    }
397
398    function hideResourceLoadMore() {
399        $("#ResourceLoadMore").hide();
400    }
401
402    function showResourceLoadMore() {
403        $("#ResourceLoadMore").show();
404    }
405
406    function setResourcePageIndex(pageIndex) {
407        $("#hdnPageIndex").val(pageIndex)
408    }
409
410    function pageNav() {
411        'use strict';
412
413        var
414            $win = $(window),
415            $html = $('html, body'),
416            $holder = $('.top-navigation-holder'),
417            $items = $('.page-nav-list li'),
418            $btns = $('.page-nav-list a'),
419            animDuration = 500,
420            scrollId = null;
421
422        var $ids = $btns.map(function (i, elem) {
423                return elem.getAttribute('href');
424            }),
425            $sections = $ids.map(function (i, id) {
426                var section = null;
427
428                if(id && id[0] === '#' && id.length > 1) {
429                    section = $(id)[0];
430                }
431
432                return section;
433            });
434
435        $btns.each(function (i, elem) {
436            $(elem).data('$scrollToElem', $sections.eq(i));
437        });
438
439        $sections.each(function (i, elem) {
440            $(elem).data('$navItem', $btns.eq(i).parent());
441        });
442
443        // sort by top coord
444        Array.prototype.sort.call($sections, function (a, b) {
445            return $(a).offset().top - $(b).offset().top;
446        });
447
448        init();
449
450        function init() {
451            checkScroll();
452
453            $btns.on('click', onClick);
454            $win.on('scroll resize orientationchange', onScroll);
455            $win.on('load', onLoad);
456        }
457
458        function scrollTo($elem) {
459            $html.stop().animate({
460                scrollTop: $elem.offset().top - $holder.outerHeight()
461            }, animDuration);
462        }
463
464        function setActive($elem) {
465            $items.removeClass('active');
466            $elem.addClass('active');
467        }
468
469        function checkScroll() {
470            var $s = $sections.filter(function (i, elem) {
471                    var
472                        $elem = $(elem),
473                        elemOffset = $elem.offset(),
474                        elemTop = elemOffset.top,
475                        elemBottom = elemTop + $elem.outerHeight(),
476                        winTop = $win.scrollTop(),
477                        winBottom = winTop + $win.height(),
478                        holderHeight = $holder.outerHeight();
479
480                    elemTop = elemTop - holderHeight - 2;
481
482                    return elemTop >= winTop && elemTop < winBottom - 150 ||
483                        elemTop < winTop && elemBottom > winTop;
484                }),
485                $last = $s.last();
486
487            if($last.length) {
488                setActive($last.data('$navItem'));
489            }
490            else {
491                $items.removeClass('active');
492            }
493        }
494
495        //////////////
496        // HANDLERS //
497        //////////////
498
499        function onClick(e) {
500            e.preventDefault();
501
502            var
503                $elem = $(this),
504                $scrollToElem = $elem.data('$scrollToElem');
505
506            if($scrollToElem && $scrollToElem.length) {
507                scrollTo($scrollToElem);
508            }
509
510            setActive($elem.parent());
511        }
512
513        function onScroll(e) {
514            clearTimeout(scrollId);
515            scrollId = setTimeout(checkScroll, 150);
516        }
517
518        function onLoad() {
519            checkScroll();
520        }
521    }
522
523    function autocomplete() {
524
525
526        $('#autocomplete')
527            .autocomplete({
528                appendTo: '.search-content',
529                deferRequestBy: 300,
530                noSuggestionNotice: 'No results found',
531                paramName: 'text',
532                //serviceUrl: '/autocomplete/autocomplete.json',
533                //serviceUrl: '/umbraco/Surface/Contactus/Contactus',
534                serviceUrl: '/umbraco/Surface/SearchSite/GetSearch?languageCode=en',
535                showNoSuggestionNotice: true,
536                minChars: 3,
537                noCache:false,
538                onSelect: function (suggestion) {
539                    var lang = $(this).parent('.search-input-holder').data("lang");
540                    window.location = suggestion.url.replace(/zh/g, lang);
541                },
542                onSearchStart: function () {
543                    $(this).parent('.search-input-holder').addClass('loading');
544                    $('.search-block').removeClass('stick-to-top');
545                },
546                onSearchComplete: function (query, suggestions) {
547                    $(this).parent('.search-input-holder').removeClass('loading');
548
549                    if(suggestions.length > 5) {
550                        $(this).parents('.search-block').addClass('stick-to-top');
551                    }
552                }
553            })
554            .on('keyup', function () {
555                if(this.value === '') {
556                    $('.search-block').removeClass('stick-to-top');
557                }
558            });
559    }
560
561    function info() {
562        $('.info-container').each(function () {
563            var container = this.querySelector('.swiper-container');
564
565            new Swiper(container, {
566                slidesPerView: 3,
567                followFinger: false,
568                resistance: false,
569                nextButton: '.swiper-button-next',
570                prevButton: '.swiper-button-prev',
571
572                breakpoints: {
573                    767: {
574                        slidesPerView: 1,
575                        followFinger: true,
576                        resistance: true
577                    }
578                }
579            });
580        });
581    }
582
583    function testimonials() {
584        $('.testimonials-container').each(function () {
585            var
586                container = this.querySelector('.swiper-container'),
587                prev = this.querySelector('.swiper-button-prev'),
588                next = this.querySelector('.swiper-button-next');
589
590            new Swiper(container, {
591                slidesPerView: 1,
592                nextButton: next,
593                prevButton: prev,
594                spaceBetween: 100
595            });
596        });
597    }
598    
599    function homeNewsSlider() {
600       
601        $('.js-news-slider').each(function () {
602            var
603                container = this.querySelector('.swiper-container'),
604                prev = this.querySelector('.swiper-button-prev'),
605                next = this.querySelector('.swiper-button-next');
606
607            new Swiper(container, {
608                slidesPerView: 'auto',
609                nextButton: next,
610                prevButton: prev,
611                spaceBetween: 4,
612
613                breakpoints: {
614                    768: {
615                        slidesPerView: 2,
616                    },
617                    767: {
618                        slidesPerView: 1,
619                    }
620                }
621            });
622        });
623    }
624
625    function video() {
626        $('.video').each(function () {
627            var
628                $elem = $(this),
629                $poster = $elem.find('.video__poster'),
630                $play = $elem.find('.video__play'),
631                $player = $elem.find('.video__player'),
632                videoId = $elem.attr('data-video');
633
634            $play.on('click', play);
635
636            function play(e) {
637                e && e.preventDefault();
638
639                new YT.Player($player[0], {
640                    videoId: videoId,
641                    height: '100%',
642                    width: '100%',
643                    playerVars: {
644                        'wmode': 'opaque'
645                    },
646                    events: {
647                        onReady: function onPlayerReady(e) {
648                            e.target.playVideo();
649                        }
650                    }
651                });
652
653                $poster.remove();
654                $play.remove();
655            }
656        });
657    }
658
659    function vimeoVideo() {
660
661        $('.vimeo-video').each(function () {
662            var
663                $elem = $(this),
664                $poster = $elem.find('.video__poster'),
665                $play = $elem.find('.video__play'),
666                $player = $elem.find('.video__player'),
667                videoId = $elem.attr('data-video');
668
669            $play.on('click', play);
670
671            function play(e) {
672                e && e.preventDefault();
673
674                var iframe = '<iframe class="vimeo-video__player" src="' + videoId + '?title=0&byline=0&portrait=0&autoplay=1" width="100%" height="620px" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'
675
676                $player.html(iframe);
677
678                $poster.remove();
679                $play.remove();
680            }
681        });
682
683    }
684
685    function gallerySwiper() {
686        Array.prototype.forEach.call(document.querySelectorAll('.gallery'), function (item) {
687            var galleryTop = new Swiper(item.querySelector('.gallery-top'), {
688                nextButton: item.querySelector('.swiper-gallery-top-holder .swiper-button-next'),
689                prevButton: item.querySelector('.swiper-gallery-top-holder .swiper-button-prev'),
690                loop: true,
691                loopedSlides: 12,
692                spaceBetween: 10,
693                longSwipes: false,
694                followFinger: false,
695                breakpoints: {
696                    767: {
697                        slidesPerView: 1,
698                        spaceBetweenSlides: 0
699                    }
700                }
701            });
702
703            var galleryThumbs = new Swiper(item.querySelector('.gallery-thumbs'), {
704                nextButton: item.querySelector('.swiper-gallery-thumbs-holder .swiper-button-next'),
705                prevButton: item.querySelector('.swiper-gallery-thumbs-holder .swiper-button-prev'),
706                centeredSlides: true,
707                loop: true,
708                loopedSlides: 12,
709                slidesPerView: 6,
710                slideToClickedSlide: true,
711                spaceBetween: 32,
712                followFinger: false,
713                touchRatio: 0.01,
714                longSwipes: false
715            });
716
717            galleryTop.params.control = galleryThumbs;
718            galleryThumbs.params.control = galleryTop;
719        });
720    }
721
722    function stickyNav() {
723        $('.top-navigation').each(function (index, elem) {
724            var
725                item = document.querySelector('.hero'),
726                headroom = initHeadroom();
727
728            updateOffset();
729
730            function initHeadroom() {
731                return new Headroom(elem, {
732                    offset: getOffset(),
733                    tolerance: 5,
734                    classes: {}
735                }).init();
736            }
737
738            function updateOffset() {
739                headroom.offset = getOffset();
740                headroom.update();
741            }
742
743            function getOffset() {
744                return item.getBoundingClientRect().bottom + window.pageYOffset;
745            }
746
747            $(window).on('resize orientationchange', updateOffset);
748        });
749    }
750
751    function topNavHeight() {
752        var resize = [],
753            item = document.querySelector('.top-navigation'),
754            holder = document.querySelector('.top-navigation-holder');
755
756        heightCalc();
757        resize.push(heightCalc);
758
759        function heightCalc() {
760            var cHeight = $(item).innerHeight();
761            $(holder).css({
762                height: cHeight
763            });
764        }
765
766        $(window).on('resize orientationchange', function () {
767            resize.forEach(function (fn) {
768                fn();
769            });
770        });
771    };
772
773    function stickyMenu() {
774        var headroom = new Headroom(document.querySelector(".header .container > .mobile-nav-opener"), {
775            "offset": 0,
776            "tolerance": 5,
777            "classes": {}
778        });
779        headroom.init();
780    }
781
782    function searchOpener() {
783        var $btn = $('.search-btn'),
784            $inputContainer = $('.search-block'),
785            $input = $('input', $inputContainer);
786        $(".search-btn").click(function () {
787            $('body').addClass('search-active');
788            $input.focus();
789        });
790        $(".search-close").click(function () {
791            $('body').removeClass('search-active');
792        });
793        $btn.click(function () {
794            $input.focus();
795        });
796    }
797
798    function initLayout() {
799        ResponsiveHelper.addRange({
800            '..991': {
801                on: function () {
802                    $('.navigation ul').slideAccordion({
803                        opener: 'li',
804                        slide: '.sub-menu',
805                    });
806                    $('.aside-filters').slideAccordion({
807                        opener: '.check-filter-button',
808                        slide: '.check-filter',
809                        allowClickWhenExpanded: false,
810                    });
811                },
812                off: function () {
813                    $('.navigation ul').data('slideAccordion').destroy();
814                    if($('.aside-filters').data('slideAccordion')) {
815                        $('.aside-filters').data('slideAccordion').destroy();
816                    }
817                }
818            },
819            '..767': {
820                on: function () {
821                    $('.footer-logos').each(function () {
822                        var container = this.querySelector('.swiper-container');
823                        new Swiper(container, {
824                            slidesPerView: 2.5,
825                            spaceBetween: '20',
826                            autoplay: 2500,
827                            autoplayDisableOnInteraction: false
828                        });
829                    });
830                },
831            },
832            '768..': {
833                on: function () {
834                    $('.news-carousel').each(function () {
835                        var container = this.querySelector('.swiper-container');
836                        new Swiper(container, {
837                            slidesPerView: 4,
838                            nextButton: '.swiper-button-next',
839                            prevButton: '.swiper-button-prev',
840                            loop: true,
841                            breakpoints: {
842                                991: {
843                                    slidesPerView: 3,
844                                }
845                            }
846                        });
847                    });
848                },
849
850                off: function() {
851
852                }
853            }
854        });
855    };
856
857    function caseStudyAccordion() {
858        function pageNavAccordion() {
859            if($(".page-nav-holder").length > 0) {
860                var windowWidth = $(window).width();
861                var containerWidth = $(".container").width();
862                var ArrowsWrap = $(".left-right-arrows").outerWidth() + 10;
863                var totalLiWidth = 0;
864
865                $(".page-nav-list li").each(function () {
866                    totalLiWidth = totalLiWidth + $(this).outerWidth();
867                })
868
869                if(totalLiWidth > (containerWidth - ArrowsWrap) || windowWidth <= 767) {
870                    $('.page-nav-holder').slideAccordion({
871                        opener: '.page-nav-btn',
872                        slide: '.page-nav-list'
873                    });
874                }
875                else {
876                    if($('.page-nav-holder').data('slideAccordion')) {
877                        $('.page-nav-holder').data('slideAccordion').destroy();
878                        $('.page-nav-holder .page-nav').removeClass("accordion-item");
879                    }
880                }
881
882                $(".page-nav-holder").on("click", ".page-nav.accordion-item.active-item li a", function () {
883                    $(".page-nav.accordion-item").removeClass("active-item");
884                    $(".page-nav-list").css("display", "none");
885                })
886            }
887        }
888
889        $(document).on('click', function (e) {
890            if($(".accordion-item").length > 0) {
891                if(e.target.className != "page-nav-btn") {
892                    if($(e.target).closest(".accordion-item").length === 0) {
893                        $(".page-nav.accordion-item").removeClass("active-item");
894                        $(".page-nav-list").slideUp();
895                    }
896                }
897            }
898        });
899
900        //initiliazing on page load
901        pageNavAccordion();
902        $(window).on(' orientationchange', pageNavAccordion);
903    }
904
905    function scrollTop() {
906        $(".scroll-down-btn").click(function () {
907
908            $('html, body').animate({
909                scrollTop: window.innerHeight /*$(".discover-wrap").offset().top*/
910            }, 500);
911        })
912    }
913
914    function clearPlaceholder() {
915        var $controls = $('[type=text], [type=password], [type=email], [type=search], textarea');
916
917        $controls.on('focus', function () {
918            var $control = $(this);
919
920            if($control.attr('placeholder') != null) {
921                var txt = $control.attr('placeholder');
922
923                $control
924                    .attr('data-placeholder', txt)
925                    .removeAttr('placeholder');
926            }
927        });
928
929        $controls.on('blur', function () {
930            var $control = $(this);
931
932            if($control.val() === '' && $control.attr('data-placeholder') != null) {
933                var txt = $control.attr('data-placeholder');
934
935                $control
936                    .attr('placeholder', txt)
937                    .removeAttr('data-placeholder');
938            }
939        });
940    }
941
942    function browserDetect() {
943        /*
944         * Browser Detect script
945         */
946        var BrowserDetect = (function () {
947            // script settings
948            var options = {
949                osVersion: false,
950                minorBrowserVersion: true
951            };
952
953            // browser data
954            var browserData = {
955                browsers: {
956                    chrome: uaMatch(/Chrome\/([0-9\.]*)/),
957                    firefox: uaMatch(/Firefox\/([0-9\.]*)/),
958                    safari: uaMatch(/Version\/([0-9\.]*).*Safari/),
959                    opera: uaMatch(/Opera\/.*Version\/([0-9\.]*)/, /Opera\/([0-9\.]*)/),
960                    msie: uaMatch(/MSIE ([0-9\.]*)/, /Trident.*rv:([0-9\.]*)/)
961                },
962                engines: {
963                    webkit: uaContains('AppleWebKit'),
964                    trident: uaMatch(/(MSIE|Trident)/),
965                    gecko: uaContains('Gecko'),
966                    presto: uaContains('Presto')
967                },
968                platforms: {
969                    win: uaMatch(/Windows NT ([0-9\.]*)/),
970                    mac: uaMatch(/Mac OS X ([0-9_\.]*)/),
971                    linux: uaContains('X11', 'Linux')
972                }
973            };
974
975            // perform detection
976            var ua = navigator.userAgent;
977            var detectData = {
978                platform: detectItem(browserData.platforms),
979                browser: detectItem(browserData.browsers),
980                engine: detectItem(browserData.engines)
981            };
982
983            // private functions
984            function uaMatch(regExp, altReg) {
985                return function () {
986                    var result = regExp.exec(ua) || altReg && altReg.exec(ua);
987                    return result && result[1];
988                };
989            }
990
991            function uaContains(word) {
992                var args = Array.prototype.slice.apply(arguments);
993                return function () {
994                    for(var i = 0; i < args.length; i++) {
995                        if(ua.indexOf(args[i]) < 0) {
996                            return;
997                        }
998                    }
999                    return true;
1000                };
1001            }
1002
1003            function detectItem(items) {
1004                var detectedItem = null,
1005                    itemName, detectValue;
1006                for(itemName in items) {
1007                    if(items.hasOwnProperty(itemName)) {
1008                        detectValue = items[itemName]();
1009                        if(detectValue) {
1010                            return {
1011                                name: itemName,
1012                                value: detectValue
1013                            };
1014                        }
1015                    }
1016                }
1017            }
1018
1019            // add classes to root element
1020            (function () {
1021                // helper functions
1022                var addClass = function (cls) {
1023                    var html = document.documentElement;
1024                    html.className += (html.className ? ' ' : '') + cls;
1025                };
1026                var getVersion = function (ver) {
1027                    return typeof ver === 'string' ? ver.replace(/\./g, '_') : 'unknown';
1028                };
1029
1030                // add classes
1031                if(detectData.platform) {
1032                    addClass(detectData.platform.name);
1033                    if(options.osVersion) {
1034                        addClass(detectData.platform.name + '-' + getVersion(detectData.platform.value));
1035                    }
1036                }
1037                if(detectData.engine) {
1038                    addClass(detectData.engine.name);
1039                }
1040                if(detectData.browser) {
1041                    addClass(detectData.browser.name);
1042                    addClass(detectData.browser.name + '-' + parseInt(detectData.browser.value, 10));
1043                    if(options.minorBrowserVersion) {
1044                        addClass(detectData.browser.name + '-' + getVersion(detectData.browser.value));
1045                    }
1046                }
1047            }());
1048
1049            // export detection information
1050            return detectData;
1051        }());
1052    }
1053
1054    function modalInfoClone() {
1055        var $modal = $('#infoModal'),
1056            $modalInfoContainer = $($modal).find('.representatives-detail');
1057
1058        $('.representatives-info-btn').click(function(){
1059            $(this).parents('.representatives-detail-item').clone().appendTo($modalInfoContainer);
1060        });
1061        $($modal).on('hide.bs.modal', function (e) {
1062            $($modalInfoContainer).empty();
1063        });
1064    }
1065    function loadMoreNews() {
1066        $('.newsLoadMore').click(function(){
1067            $(this).hide().parents('.news-carousel').find('.swiper-slide').css({
1068                'display': 'block',
1069            })
1070        })
1071    }
1072});
1073
1074$(function() {
1075    var container = $('.footer-logos .swiper-container');
1076    var swiper = new Swiper(container, {
1077        slidesPerView: 'auto',
1078        spaceBetween: '20',
1079        loop: false,
1080        autoplay: 2500,
1081        autoplayDisableOnInteraction: false,
1082        breakpoints: {
1083
1084            320: {
1085                slidesPerView: 'auto',
1086                spaceBetween: 10
1087            }
1088        }
1089
1090    });
1091});

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.