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.