1//----------------------------------------------------/ 2// 3// POLO - HTML5 Template 4// Author: INSPIRO - Ardian Berisha 5// Version: v5.4 6// Update: December 15 2019 7// 8//----------------------------------------------------/ 9//INSPIRO Global var 10var INSPIRO = {}, 11 $ = jQuery.noConflict(); 12(function ($) { 13 "use strict"; 14 // Predefined Global Variables 15 var $window = $(window), 16 $theme_color = '#2250fc', 17 //Main 18 $body = $('body'), 19 $bodyInner = $('.body-inner'), 20 $section = $('section'), 21 //Header 22 $topbar = $('#topbar'), 23 $header = $('#header'), 24 $headerCurrentClasses = $header.attr('class'), 25 //Logo 26 headerLogo = $('#logo'), 27 //Menu 28 $mainMenu = $('#mainMenu'), 29 $pageMenu = $('.page-menu'), 30 //Slider 31 $slider = $('#slider'), 32 $inspiroSlider = $('.inspiro-slider'), 33 $carousel = $('.carousel'), 34 /*Grid Layout*/ 35 $gridLayout = $(".grid-layout"), 36 $gridFilter = $(".grid-filter"), 37 windowWidth = $window.width(); 38 if ($gridFilter.length > 0) { 39 $gridFilter = $gridFilter; 40 } else { 41 $gridFilter = $(".page-grid-filter"); 42 } 43 //Check if header exist 44 if ($header.length > 0) { 45 var $headerOffsetTop = $header.offset().top; 46 } 47 var Events = { 48 browser: { 49 isMobile: function () { 50 if (navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/)) { 51 return true; 52 } else { 53 return false; 54 } 55 } 56 } 57 }
58 //Settings 59 var Settings = { 60 isMobile: Events.browser.isMobile, 61 submenuLight: $header.hasClass('submenu-light') == true ? true : false, 62 menuIsOpen: false, 63 menuOverlayOpened: false 64 } 65 //Window breakpoints 66 $(window).breakpoints({ 67 breakpoints: [{ 68 "name": "xs", 69 "width": 0 70 }, { 71 "name": "sm", 72 "width": 576 73 }, { 74 "name": "md", 75 "width": 768 76 }, { 77 "name": "lg", 78 "width": 992 79 }, { 80 "name": "xl", 81 "width": 1200 82 }] 83 }); 84 var currentBreakpoint = $(window).breakpoints("getBreakpoint"); 85 $body.addClass('breakpoint-' + currentBreakpoint); 86 $(window).bind("breakpoint-change", function (breakpoint) { 87 $body.removeClass('breakpoint-' + breakpoint.from); 88 $body.addClass('breakpoint-' + breakpoint.to); 89 }); 90 $(window).breakpoints("greaterEqualTo", "lg", function () { 91 $body.addClass('b--desktop'); 92 $body.removeClass('b--responsive'); 93 }); 94 $(window).breakpoints("lessThan", "lg", function () { 95 $body.removeClass('b--desktop'); 96 $body.addClass('b--responsive'); 97 }); 98 INSPIRO.core = { 99 functions: function () { 100 INSPIRO.core.scrollTop(); 101 INSPIRO.core.rtlStatus(); 102 INSPIRO.core.rtlStatusActivate(); 103 INSPIRO.core.equalize(); 104 INSPIRO.core.customHeight(); 105 }, 106 scrollTop: function () { 107 var $scrollTop = $('#scrollTop'); 108 if ($scrollTop.length > 0) { 109 var scrollOffset = $body.attr('data-offset') || 400; 110 if ($window.scrollTop() > scrollOffset) { 111 if ($body.hasClass("frame")) { 112 $scrollTop.css({ 113 'bottom': '46px', 114 'opacity': 1, 115 'z-index': 199 116 }); 117 } else { 118 $scrollTop.css({ 119 'bottom': '26px', 120 'opacity': 1, 121 'z-index': 199 122 }); 123 } 124 } else { 125 $scrollTop.css({ 126 'bottom': '16px', 127 'opacity': 0 128 }); 129 } 130 $scrollTop.off('click').on('click', function () { 131 $('body,html').stop(true).animate({ 132 'scrollTop': 0 133 }, 1000, 'easeInOutExpo'); 134 return false; 135 }); 136 } 137 }, 138 rtlStatus: function () { 139 var $rtlStatusCheck = $("html").attr("dir"); 140 if ($rtlStatusCheck == "rtl") { 141 return true; 142 } 143 return false; 144 }, 145 rtlStatusActivate: function () { 146 147 if (INSPIRO.core.rtlStatus() == true) { 148 $('head').append('<link rel="stylesheet" type="text/css" href="css/rtl.css">'); 149 } 150 }, 151 equalize: function () { 152 var $equalize = $('.equalize'); 153 if ($equalize.length > 0) { 154 $equalize.each(function () { 155 var elem = $(this), 156 selectorItem = elem.find(elem.attr('data-equalize-item')) || "> div", 157 maxHeight = 0; 158 selectorItem.each(function () { 159 if ($(this).outerHeight(true) > maxHeight) { 160 maxHeight = $(this).outerHeight(true); 161 } 162 }); 163 selectorItem.height(maxHeight); 164 }); 165 } 166 }, 167 customHeight: function (setHeight) { 168 var $customHeight = $('.custom-height'); 169 if ($customHeight.length > 0) { 170 $customHeight.each(function () { 171 var elem = $(this), 172 elemHeight = elem.attr('data-height') || 400, 173 elemHeightLg = elem.attr('data-height-lg') || elemHeight, 174 elemHeightMd = elem.attr('data-height-md') || elemHeightLg, 175 elemHeightSm = elem.attr('data-height-sm') || elemHeightMd, 176 elemHeightXs = elem.attr('data-height-xs') || elemHeightSm;
177 178 function customHeightBreakpoint(setHeight) { 179 if (setHeight) { 180 elem = setHeight; 181 } 182 switch ($(window).breakpoints("getBreakpoint")) { 183 case "xs": 184 elem.height(elemHeightXs); 185 break; 186 case "sm": 187 elem.height(elemHeightSm); 188 break; 189 case "md": 190 elem.height(elemHeightMd); 191 break; 192 case "lg": 193 elem.height(elemHeightLg); 194 break; 195 case "xl": 196 elem.height(elemHeight); 197 break; 198 } 199 } 200 customHeightBreakpoint(setHeight); 201 $(window).resize(function () { 202 setTimeout(function () { 203 customHeightBreakpoint(setHeight); 204 }, 100); 205 }); 206 }); 207 } 208 } 209 }; 210 INSPIRO.header = { 211 functions: function () { 212 INSPIRO.header.logoStatus(); 213 INSPIRO.header.stickyHeader(); 214 INSPIRO.header.topBar(); 215 INSPIRO.header.search(); 216 INSPIRO.header.mainMenu(); 217 INSPIRO.header.mainMenuOverlay(); 218 INSPIRO.header.pageMenu(); 219 INSPIRO.header.sidebarOverlay(); 220 INSPIRO.header.dotsMenu(); 221 INSPIRO.header.onepageMenu(); 222 }, 223 logoStatus: function (status) { 224 var headerLogoDefault = headerLogo.find($('.logo-default')), 225 headerLogoDark = headerLogo.find($('.logo-dark')), 226 headerLogoFixed = headerLogo.find('.logo-fixed'), 227 headerLogoResponsive = headerLogo.find('.logo-responsive'); 228 229 if ($header.hasClass("header-sticky") && headerLogoFixed.length > 0) { 230 headerLogoDefault.css("display", "none"); 231 headerLogoDark.css("display", "none"); 232 headerLogoResponsive.css("display", "none"); 233 headerLogoFixed.css("display", "block"); 234 } else { 235 headerLogoDefault.removeAttr("style") 236 headerLogoDark.removeAttr("style"); 237 headerLogoResponsive.removeAttr("style"); 238 headerLogoFixed.removeAttr("style"); 239 } 240 $(window).breakpoints("lessThan", "lg", function () { 241 if (headerLogoResponsive.length > 0) { 242 headerLogoDefault.css("display", "none"); 243 headerLogoDark.css("display", "none"); 244 headerLogoFixed.css("display", "none"); 245 headerLogoResponsive.css("display", "block"); 246 } 247 }); 248 }, 249 stickyHeader: function () { 250 251 var elem = $(this), 252 shrinkHeader = elem.attr('data-shrink') || 0, 253 shrinkHeaderActive = elem.attr('data-sticky-active') || 200, 254 scrollOnTop = $window.scrollTop(), 255 darkClassRemoved; 256 257 if ($header.hasClass("header-modern")) { 258 shrinkHeader = 300; 259 } 260 261 $(window).breakpoints("greaterEqualTo", "lg", function () { 262 263 if (!$header.is(".header-disable-fixed")) { 264 if (scrollOnTop > $headerOffsetTop + shrinkHeader) { 265 $header.addClass('header-sticky'); 266 if (scrollOnTop > $headerOffsetTop + shrinkHeaderActive) { 267 $header.addClass('sticky-active'); 268 if (Settings.submenuLight) { 269 $header.removeClass('dark'); 270 darkClassRemoved = true; 271 } 272 INSPIRO.header.logoStatus(); 273 } 274 } else { 275 $header.removeClass().addClass($headerCurrentClasses); 276 INSPIRO.header.logoStatus(); 277 } 278 } 279 }); 280 281 282 $(window).breakpoints("lessThan", "lg", function () { 283 284 if ($header.attr('data-responsive-fixed') == "true") { 285 if (scrollOnTop > $headerOffsetTop + shrinkHeader) { 286 $header.addClass('header-sticky'); 287 if (scrollOnTop > $headerOffsetTop + shrinkHeaderActive) { 288 $header.addClass('sticky-active'); 289 if (Settings.submenuLight) { 290 $header.removeClass('dark'); 291 darkClassRemoved = true; 292 } 293 INSPIRO.header.logoStatus(); 294 } 295 } else { 296 $header.removeClass().addClass($headerCurrentClasses); 297 INSPIRO.header.logoStatus(); 298 } 299 } 300 301 }); 302 303 }, 304 //chkd 305 topBar: function () { 306 if ($topbar.length > 0) {
307 $("#topbar .topbar-dropdown .topbar-form").each(function (index, element) { 308 if ($window.width() - ($(element).width() + $(element).offset().left) < 0) { 309 $(element).addClass('dropdown-invert'); 310 } 311 }); 312 } 313 }, 314 search: function () { 315 var $search = $('#search'); 316 if ($search.length > 0) { 317 var searchBtn = $('#btn-search'), 318 searchBtnClose = $('#btn-search-close'), 319 searchInput = $search.find('.form-control'); 320 321 function openSearch() { 322 $body.addClass('search-open'); 323 searchInput.focus(); 324 } 325 326 function closeSearch() { 327 $body.removeClass('search-open'); 328 searchInput.value = ''; 329 } 330 searchBtn.on('click', function () { 331 openSearch(); 332 return false; 333 }); 334 searchBtnClose.on('click', function () { 335 closeSearch(); 336 return false; 337 }); 338 document.addEventListener('keyup', function (ev) { 339 if (ev.keyCode == 27) { 340 closeSearch(); 341 } 342 }); 343 } 344 }, 345 mainMenu: function () { 346 if ($mainMenu.length > 0) { 347 var $menuItemLinks = $("#mainMenu nav > ul > li.dropdown > a, .dropdown-submenu > a, .dropdown-submenu > span, .page-menu nav > ul > li.dropdown > a"), 348 $triggerButton = $("#mainMenu-trigger a, #mainMenu-trigger button"), 349 darkClassRemoved, 350 processing = false, 351 triggerEvent; 352 $triggerButton.on('click', function (e) { 353 var elem = $(this); 354 e.preventDefault(); 355 $(window).breakpoints("lessThan", "lg", function () { 356 var openMenu = function () { 357 if (!processing) { 358 processing = true; 359 Settings.menuIsOpen = true; 360 if (Settings.submenuLight) { 361 $header.removeClass('dark'); 362 darkClassRemoved = true; 363 } 364 elem.addClass('toggle-active'); 365 $body.addClass('mainMenu-open'); 366 INSPIRO.header.logoStatus(); 367 $mainMenu.animate({ 368 'min-height': $window.height() 369 }, { 370 duration: 500, 371 easing: "easeInOutQuart", 372 start: function () { 373 setTimeout(function () { 374 $mainMenu.addClass('menu-animate'); 375 }, 300); 376 }, 377 complete: function () { 378 processing = false; 379 } 380 }); 381 } 382 }; 383 var closeMenu = function () { 384 if (!processing) { 385 processing = true; 386 Settings.menuIsOpen = false; 387 INSPIRO.header.logoStatus(); 388 $mainMenu.animate({ 389 'min-height': 0 390 }, { 391 start: function () { 392 $mainMenu.removeClass('menu-animate'); 393 }, 394 done: function () { 395 $body.removeClass('mainMenu-open'); 396 elem.removeClass('toggle-active'); 397 if (Settings.submenuLight && darkClassRemoved) { 398 $header.addClass('dark'); 399 } 400 }, 401 duration: 500, 402 easing: "easeInOutQuart", 403 complete: function () { 404 processing = false;
405 } 406 }); 407 } 408 }; 409 if (!Settings.menuIsOpen) { 410 triggerEvent = openMenu(); 411 } else { 412 triggerEvent = closeMenu(); 413 } 414 }); 415 }); 416 $menuItemLinks.on('click', function (e) { 417 $(this).parent('li').siblings().removeClass('hover-active'); 418 $(this).parent('li').toggleClass('hover-active'); 419 e.stopPropagation(); 420 e.preventDefault(); 421 }); 422 $body.on('click', function (e) { 423 $mainMenu.find('.hover-active').removeClass('hover-active'); 424 }); 425 /*invert menu fix*/ 426 $(window).breakpoints("greaterEqualTo", "lg", function () { 427 var $menuLastItem = $("nav > ul > li:last-child"), 428 $menuLastItemUl = $("nav > ul > li:last-child > ul"), 429 $menuLastInvert = $menuLastItemUl.width() - $menuLastItem.width(), 430 $menuItems = $("nav > ul > li").find(".dropdown-menu"); 431 $menuItems.css('display', 'block'); 432 $('.dropdown:not(.mega-menu-item) ul ul').each(function (index, element) { 433 if ($window.width() - ($(element).width() + $(element).offset().left) < 0) { 434 $(element).addClass('menu-invert'); 435 } 436 }); 437 if ($window.width() - ($menuLastItemUl.width() + $menuLastItem.offset().left) < 0) { 438 $menuLastItemUl.addClass('menu-last'); 439 } 440 $menuItems.css('display', ''); 441 }); 442 } 443 }, 444 mainMenuOverlay: function () {}, 445 /*Page Menu*/ 446 pageMenu: function () { 447 if ($pageMenu.length > 0) { 448 $pageMenu.each(function () { 449 $(this).find("#pageMenu-trigger").on("click", function () { 450 $pageMenu.toggleClass("page-menu-active"); 451 $pageMenu.toggleClass("items-visible"); 452 }); 453 }); 454 } 455 }, 456 sidebarOverlay: function () { 457 var sidebarOverlay = $('#side-panel'); 458 if (sidebarOverlay.length > 0) { 459 sidebarOverlay.css("opacity", 1); 460 $("#close-panel").on("click", function () { 461 $body.removeClass("side-panel-active"); 462 $("#side-panel-trigger").removeClass("toggle-active"); 463 }); 464 var t = setTimeout(function () { 465 INSPIRO.elements.gridLayoutRefresh(); 466 }, 1000); 467 } 468 }, 469 dotsMenu: function () { 470 var $dotsMenu = $('#dotsMenu'), 471 $dotsMenuItems = $dotsMenu.find("ul > li > a"); 472 if ($dotsMenu.length > 0) { 473 $dotsMenuItems.on('click', function () { 474 $dotsMenuItems.parent("li").removeClass('current'); 475 $(this).parent("li").addClass('current'); 476 return false; 477 }); 478 $dotsMenuItems.parents("li").removeClass('current'); 479 $dotsMenu.find('a[href="#' + INSPIRO.header.currentSection() + '"]').parent("li").addClass('current'); 480 } 481 }, 482 onepageMenu: function () { 483 if ($mainMenu.hasClass("menu-one-page")) { 484 var $currentMenuItem = "current"; 485 $(window).on("scroll", function () { 486 var $currentSection = INSPIRO.header.currentSection(); 487 $mainMenu.find("nav > ul > li > a").parents("li").removeClass($currentMenuItem); 488 $mainMenu.find('nav > ul > li > a[href="#' + $currentSection + '"]').parent("li").addClass($currentMenuItem); 489 }); 490 } 491 }, 492 currentSection: function () { 493 var elemCurrent = "body"; 494 $section.each(function () { 495 var elem = $(this), 496 elemeId = elem.attr("id"); 497 if ((elem.offset().top - $window.height() / 3 < $window.scrollTop()) && (elem.offset().top + elem.height() - $window.height() / 3 > $window.scrollTop())) { 498 elemCurrent = elemeId; 499 } 500 }); 501 return elemCurrent; 502 } 503 }; 504 INSPIRO.slider = { 505 functions: function () { 506 INSPIRO.slider.inspiroSlider(); 507 INSPIRO.slider.carousel(); 508 }, 509 inspiroSlider: function () { 510 if ($inspiroSlider.length > 0) { 511 //Check if flickity plugin is loaded 512 if (typeof $.fn.flickity === 'undefined') { 513 INSPIRO.elements.notification("Warning", "jQuery flickity slider plugin is missing in plugins.js file.", "danger") 514 return true; 515 } 516 var defaultAnimation = "fadeInUp"; 517 518 function animate_captions($elem) { 519 var $captions = $elem; 520 $captions.each(function () { 521 var $captionElem = $(this), 522 animationDuration = "600ms"; 523 if ($(this).attr("data-animate-duration")) { 524 animationDuration = $(this).attr("data-animate-duration") + "ms"; 525 } 526 $captionElem.css({ 527 opacity: 0 528 }); 529 $(this).css("animation-duration", animationDuration); 530 }); 531 $captions.each(function (index) { 532 var $captionElem = $(this), 533 captionDelay = $captionElem.attr("data-caption-delay") || (index * 350 + 1000), 534 captionAnimation = $captionElem.attr('data-caption-animate') || defaultAnimation; 535 var t = setTimeout(function () { 536 $captionElem.css({ 537 opacity: 1 538 }); 539 $captionElem.addClass(captionAnimation); 540 }, captionDelay); 541 }); 542 } 543 544 function hide_captions($elem) { 545 var $captions = $elem; 546 $captions.each(function (caption) { 547 var caption = $(this), 548 captionAnimation = caption.attr('data-caption-animate') || defaultAnimation; 549 caption.removeClass(captionAnimation); 550 caption.removeAttr('style'); 551 }); 552 } 553 554 function start_kenburn(elem) { 555 var currentSlide = elem.find('.slide.is-selected'), 556 currentSlideKenburns = currentSlide.hasClass("kenburns"); 557 if (currentSlideKenburns) { 558 setTimeout(function () { 559 currentSlide.find(".kenburns-bg").addClass("kenburns-bg-animate"); 560 }, 1500); 561 } 562 } 563 564 function stop_kenburn(elem) { 565 var notCurrentSlide = elem.find('.slide:not(.is-selected)'); 566 notCurrentSlide.find(".kenburns-bg").removeClass("kenburns-bg-animate"); 567 } 568 569 function slide_dark(elem) { 570 var $sliderClassSlide = elem.find(".slide.is-selected"); 571 if ($sliderClassSlide.hasClass("slide-dark")) { 572 $header.removeClass('dark').addClass("dark-removed"); 573 } else { 574 if(!$header.hasClass("sticky-active") && $header.hasClass("dark-removed")) { 575 $header.addClass('dark').removeClass("dark-removed"); 576 } 577 } 578 } 579 580 function sliderHeight(elem, state) { 581 var elem, 582 headerHeight = $header.outerHeight(), 583 topbarHeight = $topbar.outerHeight() || 0, 584 windowHeight = $window.height(), 585 sliderCurrentHeight = elem.height(), 586 screenHeightExtra = headerHeight + topbarHeight, 587 $sliderClassSlide = elem.find(".slide"), 588 sliderFullscreen = elem.hasClass('slider-fullscreen'), 589 screenRatio = elem.hasClass('slider-halfscreen') ? 1 : 1.2, 590 transparentHeader = $header.attr('data-transparent'), 591 customHeight = elem.attr("data-height"), 592 responsiveHeightXs = elem.attr("data-height-xs"), 593 containerFullscreen = elem.find(".container").first().outerHeight(), 594 contentCrop; 595 if (containerFullscreen >= windowHeight) { 596 contentCrop = true; 597 var sliderMinHeight = containerFullscreen; 598 elem.css('min-height', sliderMinHeight + 100); 599 $sliderClassSlide.css('min-height', sliderMinHeight + 100); 600 elem.find('.flickity-viewport').css('min-height', sliderMinHeight + 100); 601 } 602 sliderElementsHeight('null'); 603 604 function sliderElementsHeight(height) { 605 if (height == 'null') { 606 elem.css('height', ''); 607 $sliderClassSlide.css('height', ''); 608 elem.find('.flickity-viewport').css('height', ''); 609 } else { 610 elem.css('height', height); 611 $sliderClassSlide.css('height', height); 612 elem.find('.flickity-viewport').css('height', height); 613 } 614 } 615 if (customHeight) { 616 $(window).breakpoints("greaterEqualTo", "lg", function () { 617 sliderElementsHeight(customHeight + "px"); 618 }); 619 } 620 } 621 $inspiroSlider.each(function () { 622 var elem = $(this); 623 //Plugin Options 624 elem.options = { 625 cellSelector: elem.attr('data-item') || false, 626 prevNextButtons: elem.data('arrows') == false ? false : true, 627 pageDots: elem.data('dots') == true ? true : true, 628 fade: elem.data('fade') == true ? true : false, 629 draggable: elem.data('drag') == true ? true : false, 630 freeScroll: elem.data('free-scroll') == true ? true : false, 631 wrapAround: elem.data('loop') == false ? false : true, 632 groupCells: elem.data('group-cells') == true ? true : false, 633 autoPlay: elem.attr('data-autoplay') || 8000, 634 pauseAutoPlayOnHover: elem.data('hoverpause')
634== false ? false : true, 635 adaptiveHeight: elem.data('adaptive-height') == false ? false : false, 636 asNavFor: elem.attr('data-navigation') || false, 637 selectedAttraction: elem.attr('data-attraction') || .07, 638 friction: elem.attr('data-friction') || .9, 639 initialIndex: elem.attr('data-initial-index') || 0, 640 accessibility: elem.data('accessibility') == true ? true : false, 641 setGallerySize: elem.data('gallery-size') == false ? false : false, 642 resize: elem.data('resize') == false ? false : false, 643 cellAlign: elem.attr('data-align') || 'left', 644 }; 645 //Kenburns effect 646 elem.find('.slide').each(function () { 647 if ($(this).hasClass("kenburns")) { 648 var elemChild = $(this), 649 elemChildImage = elemChild.css('background-image').replace(/.*\s?url\([\'\"]?/, '').replace(/[\'\"]?\).*/, ''); 650 651 if (elemChild.attr('data-bg-image')) { 652 elemChildImage = elemChild.attr('data-bg-image'); 653 } 654 elemChild.prepend('<div class="kenburns-bg" style="background-image:url(' + elemChildImage + ')"></div>'); 655 } 656 }); 657 elem.find(".slide video").each(function () { 658 this.pause(); 659 }); 660 if (elem.find('.slide').length <= 1) { 661 elem.options.prevNextButtons = false; 662 elem.options.pageDots = false; 663 } 664 elem.flickity({ 665 cellSelector: elem.options.cellSelector, 666 prevNextButtons: elem.options.prevNextButtons, 667 pageDots: elem.options.pageDots, 668 fade: elem.options.fade, 669 draggable: elem.options.draggable, 670 freeScroll: elem.options.freeScroll, 671 wrapAround: elem.options.wrapAround, 672 groupCells: elem.options.groupCells, 673 autoPlay: elem.options.autoPlay, 674 pauseAutoPlayOnHover: elem.options.pauseAutoPlayOnHover, 675 adaptiveHeight: elem.options.adaptiveHeight, 676 asNavFor: elem.options.asNavFor, 677 selectedAttraction: Number(elem.options.selectedAttraction), 678 friction: elem.options.friction, 679 initialIndex: elem.options.initialIndex, 680 accessibility: elem.options.accessibility, 681 setGallerySize: elem.options.setGallerySize, 682 resize: elem.options.resize, 683 cellAlign: elem.options.cellAlign, 684 rightToLeft: INSPIRO.core.rtlStatus(), 685 on: { 686 ready: function () { 687 var $captions = elem.find('.slide.is-selected .slide-captions > *'); 688 sliderHeight(elem); 689 start_kenburn(elem); 690 animate_captions($captions); 691 }, 692 change: function (index) { 693 var $captions = elem.find('.slide.is-selected .slide-captions > *'); 694 hide_captions($captions); 695 setTimeout(function () { 696 stop_kenburn(elem); 697 }, 500); 698 elem.find(".slide:not(.is-selected) video").each(function () { 699 this.pause(); 700 this.currentTime = 0; 701 }); 702 slide_dark(elem); 703 start_kenburn(elem); 704 animate_captions($captions); 705 }, 706 select: function (index) { 707 var flkty = this; 708 if ($(flkty.selectedElement).find('video')) { 709 $(flkty.selectedElement).find('video').each(function (i, video) { 710 video.play(); 711 elem.flickity('pausePlayer'); 712 setTimeout(function () { 713 elem.flickity('next'); 714 }, Number(Math.round(video.duration) - 1) * 1000); 715 }); 716 } 717 } 718 } 719 }); 720 $(window).resize(function () { 721 sliderHeight(elem); 722 elem.flickity('reposition'); 723 }); 724 }); 725 } 726 }, 727 carouselAjax: function () { 728 //Check if flickity plugin is loaded 729 if (typeof $.fn.flickity === 'undefined') { 730 INSPIRO.elements.notification("Warning", "jQuery flickity plugin is missing in plugins.js file.", "danger") 731 return true; 732 } 733 //Plugin Options 734 var elem = $(".carousel"); 735 //Initializing plugin and passing the options 736 elem.flickity({ 737 adaptiveHeight: false, 738 wrapAround: true, 739 cellAlign: 'left', 740 resize: false, 741 on: { 742 ready: function () { 743 elem.addClass("carousel-loaded"); 744 }, 745 } 746 }); 747 }, 748 carousel: function (elem) { 749 if (elem) { 750 $carousel = elem; 751 } 752 753 if ($carousel.length > 0) { 754 //Check if flickity plugin is loaded 755 if (typeof $.fn.flickity === 'undefined') { 756 INSPIRO.elements.notification("Warning", "jQuery flickity plugin is missing in plugins.js file.", "danger") 757 return true; 758 } 759 $carousel.each(function () { 760 var elem = $(this); 761 //Plugin Options 762 elem.options = { 763 containerWidth: elem.width(), 764 items: elem.attr('data-items') || 4, 765 itemsLg: elem.attr('data-items-lg'), 766 itemsMd: elem.attr('data-items-md'), 767 itemsSm: elem.attr('data-items-sm'), 768 itemsXs: elem.attr('data-items-xs'), 769 margin: elem.attr('data-margin') || 10, 770 cellSelector: elem.attr('data-item') || false, 771 prevNextButtons: elem.data('arrows') == false ? false : true, 772 pageDots: elem.data('dots') == false ? false : true, 773 fade: elem.data('fade') == true ? true : false, 774 draggable: elem.data('drag') == false ? false : true, 775 freeScroll: elem.data('free-scroll') == true ? true : false, 776 wrapAround: elem.data('loop') == false ? false : true, 777 groupCells: elem.data('group-cells') == true ? true : false, 778 autoPlay: elem.attr('data-autoplay') || 5000, 779 pauseAutoPlayOnHover: elem.data('hoverpause')
779== false ? false : true, 780 asNavFor: elem.attr('data-navigation') || false, 781 lazyLoad: elem.data('lazy-load') == true ? true : false, 782 initialIndex: elem.attr('data-initial-index') || 0, 783 accessibility: elem.data('accessibility') == true ? true : false, 784 adaptiveHeight: elem.data('adaptive-height') == true ? true : false, 785 autoWidth: elem.data('auto-width') == true ? true : false, 786 setGallerySize: elem.data('gallery-size') == false ? false : true, 787 resize: elem.data('resize') == false ? false : true, 788 cellAlign: elem.attr('data-align') || 'left', 789 rightToLeft: INSPIRO.core.rtlStatus(), 790 }; 791 //Calculate min/max on responsive breakpoints 792 elem.options.itemsLg = elem.options.itemsLg || Math.min(Number(elem.options.items), Number(4)); 793 elem.options.itemsMd = elem.options.itemsMd || Math.min(Number(elem.options.itemsLg), Number(3)); 794 elem.options.itemsSm = elem.options.itemsSm || Math.min(Number(elem.options.itemsMd), Number(2)); 795 elem.options.itemsXs = elem.options.itemsXs || Math.min(Number(elem.options.itemsSm), Number(1)); 796 var setResponsiveColumns; 797 798 function getCarouselColumns() { 799 switch ($(window).breakpoints("getBreakpoint")) { 800 case "xs": 801 setResponsiveColumns = Number(elem.options.itemsXs); 802 break; 803 case "sm": 804 setResponsiveColumns = Number(elem.options.itemsSm); 805 break; 806 case "md": 807 setResponsiveColumns = Number(elem.options.itemsMd); 808 break; 809 case "lg": 810 setResponsiveColumns = Number(elem.options.itemsLg); 811 break; 812 case "xl": 813 setResponsiveColumns = Number(elem.options.items); 814 break; 815 } 816 } 817 getCarouselColumns(); 818 var itemWidth; 819 elem.find("> *").wrap('<div class="polo-carousel-item">'); 820 if (elem.hasClass("custom-height")) { 821 elem.options.setGallerySize = false; 822 INSPIRO.core.customHeight(elem); 823 INSPIRO.core.customHeight(elem.find(".polo-carousel-item")); 824 var carouselCustomHeightStatus = true; 825 } 826 if (Number(elem.options.items) !== 1) { 827 if (elem.options.autoWidth || carouselCustomHeightStatus) { 828 elem.find(".polo-carousel-item").css({ 829 'padding-right': elem.options.margin + 'px' 830 }); 831 } else { 832 itemWidth = ((elem.options.containerWidth + Number(elem.options.margin)) / setResponsiveColumns); 833 elem.find(".polo-carousel-item").css({ 834 'width': itemWidth, 835 'padding-right': elem.options.margin + 'px' 836 }); 837 } 838 } else { 839 elem.find(".polo-carousel-item").css({ 840 'width': '100%', 841 'padding-right': '0 !important;', 842 }); 843 } 844 if (elem.options.autoWidth || carouselCustomHeightStatus) { 845 elem.options.cellAlign = 'center'; 846 } 847 848 if (elem.options.autoPlay == "false") { 849 elem.options.autoPlay = false 850 } 851 //Initializing plugin and passing the options 852 elem.flickity({ 853 cellSelector: elem.options.cellSelector, 854 prevNextButtons: elem.options.prevNextButtons, 855 pageDots: elem.options.pageDots, 856 fade: elem.options.fade, 857 draggable: elem.options.draggable, 858 freeScroll: elem.options.freeScroll, 859 wrapAround: elem.options.wrapAround, 860 groupCells: elem.options.groupCells, 861 autoPlay: elem.options.autoPlay, 862 pauseAutoPlayOnHover: elem.options.pauseAutoPlayOnHover, 863 adaptiveHeight: elem.options.adaptiveHeight, 864 asNavFor: elem.options.asNavFor, 865 // selectedAttraction: elem.options.selectedAttraction, 866 // friction: elem.options.friction, 867 initialIndex: elem.options.initialIndex, 868 accessibility: elem.options.accessibility, 869 setGallerySize: elem.options.setGallerySize, 870 resize: elem.options.resize, 871 cellAlign: elem.options.cellAlign, 872 rightToLeft: elem.options.rightToLeft, 873 contain: true, 874 // lazyLoad: elem.options.lazyLoad, 875 on: { 876 ready: function () { 877 elem.addClass("carousel-loaded"); 878 }, 879 } 880 }); 881 if (elem.hasClass("custom-height")) { 882 INSPIRO.core.customHeight(elem); 883 } 884 if (Number(elem.options.items) !== 1) { 885 $(window).on('resize', function () { 886 setTimeout(function () { 887 getCarouselColumns(); 888 itemWidth = ((elem.width() + Number(elem.options.margin)) / setRe
888sponsiveColumns); 889 if (elem.options.autoWidth || carouselCustomHeightStatus) { 890 elem.find(".polo-carousel-item").css({ 891 'padding-right': elem.options.margin + 'px' 892 }); 893 } else { 894 if (!elem.hasClass("custom-height")) { 895 elem.find(".polo-carousel-item").css({ 896 'width': itemWidth, 897 'padding-right': elem.options.margin + 'px' 898 }); 899 } else { 900 INSPIRO.core.customHeight(elem.find(".polo-carousel-item")); 901 elem.find(".polo-carousel-item").css({ 902 'width': itemWidth, 903 'padding-right': elem.options.margin + 'px' 904 }); 905 } 906 } 907 elem.find(".flickity-slider").css({ 908 'margin-right': -elem.options.margin / (setResponsiveColumns) + 'px' 909 }); 910 elem.flickity('reposition'); 911 }, 100); 912 }); 913 } 914 }); 915 } 916 }, 917 }; 918 INSPIRO.elements = { 919 functions: function () { 920 INSPIRO.elements.naTo(); 921 INSPIRO.elements.morphext(); 922 INSPIRO.elements.buttons(); 923 INSPIRO.elements.accordion(); 924 INSPIRO.elements.animations(); 925 INSPIRO.elements.parallax(); 926 INSPIRO.elements.backgroundImage(); 927 INSPIRO.elements.shapeDivider(); 928 INSPIRO.elements.responsiveVideos(); 929 INSPIRO.elements.counters(); 930 INSPIRO.elements.countdownTimer(); 931 INSPIRO.elements.progressBar(); 932 INSPIRO.elements.pieChart(); 933 INSPIRO.elements.maps(); 934 INSPIRO.elements.gridLayout(); 935 INSPIRO.elements.tooltip(); 936 INSPIRO.elements.popover(); 937 INSPIRO.elements.magnificPopup(); 938 INSPIRO.elements.yTPlayer(); 939 INSPIRO.elements.vimeoPlayer(); 940 INSPIRO.elements.modal(); 941 INSPIRO.elements.sidebarFixed(); 942 INSPIRO.elements.clipboard(); 943 INSPIRO.elements.bootstrapSwitch(); 944 INSPIRO.elements.countdown(); 945 INSPIRO.elements.other(); 946 INSPIRO.elements.videoBackground(); 947 INSPIRO.elements.forms(); 948 INSPIRO.elements.formValidation(); 949 INSPIRO.elements.formAjaxProcessing(); 950 INSPIRO.elements.wizard(); 951 }, 952 forms: function () { 953 //Show hide password 954 var $showHidePassword = $('.show-hide-password'); 955 if ($showHidePassword.length > 0) { 956 $showHidePassword.each(function () { 957 var elem = $(this), 958 $iconEye = 'icon-eye11', 959 $iconClosedEye = 'icon-eye-off', 960 elemShowHideIcon = elem.find('.input-group-append i'), 961 elemInput = elem.children('input'); 962 elem.find('.input-group-append i').css({ 963 'cursor': 'pointer' 964 }); 965 elemShowHideIcon.on('click', function (event) { 966 event.preventDefault(); 967 if (elem.children('input').attr("type") == "text") { 968 elemInput.attr('type', 'password'); 969 elemShowHideIcon.removeClass($iconEye); 970 elemShowHideIcon.addClass($iconClosedEye); 971 } else if (elem.children('input').attr("type") == "password") { 972 elemInput.attr('type', 'text'); 973 elemShowHideIcon.addClass($iconEye); 974 elemShowHideIcon.removeClass($iconClosedEye); 975 } 976 }); 977 }) 978 } 979 }, 980 formValidation: function () { 981 var forms = document.getElementsByClassName('needs-validation');
982 var validation = Array.prototype.filter.call(forms, function (form) { 983 form.addEventListener('submit', function (event) { 984 if (form.checkValidity() === false) { 985 event.preventDefault(); 986 event.stopPropagation(); 987 } 988 form.classList.add('was-validated'); 989 }, false); 990 }); 991 }, 992 formAjaxProcessing: function () { 993 var $ajaxForm = $(".widget-contact-form, .ajax-form"); 994 if ($ajaxForm.length > 0) { 995 $ajaxForm.each(function () { 996 var elem = $(this), 997 elemSuccessMessage = elem.attr('data-success-message') || "We have <strong>successfully</strong> received your Message and will get Back to you as soon as possible.", 998 elemCustomRedirectPage = elem.attr('data-success-page'); 999 var button = elem.find('button#form-submit'), 1000 buttonText = button.html(); 1001 var validation = Array.prototype.filter.call(elem, function (form) { 1002 form.addEventListener('submit', function (event) { 1003 if (form[0].checkValidity() === false) { 1004 event.preventDefault(); 1005 event.stopPropagation(); 1006 } 1007 form.classList.add('was-validated'); 1008 return false; 1009 }, false); 1010 }); 1011 elem.submit(function (event) { 1012 event.preventDefault(); 1013 var post_url = $(this).attr("action"); 1014 var request_method = $(this).attr("method"); 1015 var form_data = $(this).serialize(); 1016 if (elem[0].checkValidity() === false) { 1017 event.stopPropagation(); 1018 elem.addClass('was-validated'); 1019 } else { 1020 $(elem).removeClass("was-validated"); 1021 button.html('<i class="icon-loader fa-spin"> </i> Sending...'); 1022 $.ajax({ 1023 url: post_url, 1024 type: request_method, 1025 data: form_data, 1026 success: function (text) { 1027 if (text.response == 'success') { 1028 if (elem.find('.g-recaptcha').children('div').length > 0) { 1029 grecaptcha.reset(); 1030 } 1031 $(elem)[0].reset(); 1032 button.html(buttonText); 1033 if (elemCustomRedirectPage) { 1034 window.location.href = elemCustomRedirectPage; 1035 } else { 1036 $.notify({ 1037 message: elemSuccessMessage 1038 }, { 1039 type: 'success' 1040 }); 1041 } 1042 } else { 1043 $.notify({ 1044 message: elem.attr('data-error-message') || text.message 1045 }, { 1046 type: 'danger' 1047 }); 1048 var t = setTimeout(function () { 1049 button.html(buttonText); 1050 }, 1000); 1051 } 1052 } 1053 }); 1054 } 1055 }); 1056 }); 1057 } 1058 }, 1059 wizard: function () { 1060 //Show hide password 1061 }, 1062 other: function (context) { 1063 //Lazy Load 1064 $(function () { 1065 $('.lazy').Lazy({ 1066 afterLoad: function(element) { 1067 element.addClass("img-loaded") 1068 }, 1069 }); 1070 }); 1071 if ($(".toggle-item").length > 0) { 1072 $(".toggle-item").each(function () { 1073 var elem = $(this), 1074 toggleItemClass = elem.attr('data-class'),
1075 toggleItemClassTarget = elem.attr('data-target'); 1076 elem.on("click", function () { 1077 if (toggleItemClass) { 1078 if (toggleItemClassTarget) { 1079 $(toggleItemClassTarget).toggleClass(toggleItemClass); 1080 } else { 1081 elem.toggleClass(toggleItemClass); 1082 } 1083 } 1084 elem.toggleClass("toggle-active"); 1085 return false; 1086 }); 1087 }); 1088 } 1089 /*Dropdown popup invert*/ 1090 var $pDropdown = $(".p-dropdown"); 1091 if ($pDropdown.length > 0) { 1092 $pDropdown.each(function () { 1093 var elem = $(this); 1094 if ($window.width() / 2 > elem.offset().left) { 1095 elem.addClass("p-dropdown-invert") 1096 } 1097 }); 1098 } 1099 }, 1100 naTo: function () { 1101 $('a.scroll-to, #dotsMenu > ul > li > a, .menu-one-page nav > ul > li > a').on('click', function () { 1102 var extraPaddingTop = 0, 1103 extraHeaderHeight = 0; 1104 if (windowWidth <= 991) { 1105 $header.find("#mainMenu").css("max-height", 0); 1106 $body.toggleClass("mainMenu-open"); 1107 $("#mainMenu-trigger button").toggleClass("toggle-active"); 1108 if ($header.attr('data-responsive-fixed') === true) { 1109 extraHeaderHeight = $header.height(); 1110 } 1111 } else { 1112 if ($header.length > 0) { 1113 extraHeaderHeight = $header.height(); 1114 } 1115 } 1116 if ($('.dashboard').length > 0) { 1117 extraPaddingTop = 30; 1118 } 1119 var $anchor = $(this); 1120 $('html, body').stop(true, false).animate({ 1121 scrollTop: ($($anchor.attr('href')).offset().top - (extraHeaderHeight + extraPaddingTop)) 1122 }, 1500, 'easeInOutExpo'); 1123 return false; 1124 }); 1125 }, 1126 morphext: function () { 1127 var $textRotator = $('.text-rotator'); 1128 if ($textRotator.length > 0) { 1129 //Check if Morphext plugin is loaded 1130 if (typeof $.fn.Morphext === 'undefined') { 1131 INSPIRO.elements.notification("Warning", "jQuery Morphext plugin is missing in plugins.js file.", "danger") 1132 return true; 1133 } 1134 $textRotator.each(function () { 1135 var elem = $(this); 1136 //Plugin Options 1137 elem.options = { 1138 animation: elem.attr('data-animation') || "fadeIn", 1139 separator: elem.attr('data-separator') || ",", 1140 speed: elem.attr('data-speed') || 2000, 1141 height: elem.height() 1142 } 1143 elem.css({ 1144 'min-height': elem.options.height 1145 }); 1146 //Initializing Morphext plugin and passing the options 1147 elem.Morphext({ 1148 animation: elem.options.animation, 1149 separator: elem.options.separator, 1150 speed: Number(elem.options.speed) 1151 }); 1152 }); 1153 } 1154 }, 1155 buttons: function () { 1156 //Button slide width 1157 if ($(".btn-slide[data-width]")) { 1158 $(".btn.btn-slide[data-width]").each(function () { 1159 var elem = $(this), 1160 elemWidth = elem.attr('data-width'), 1161 elemDefaultWidth; 1162 switch (true) { 1163 case elem.hasClass('btn-lg'): 1164 elemDefaultWidth = "60"; 1165 break; 1166 case elem.hasClass('btn-sm'): 1167 elemDefaultWidth = "36"; 1168 break; 1169 case elem.hasClass('btn-xs'): 1170 elemDefaultWidth = "28"; 1171 break; 1172 default: 1173 elemDefaultWidth = "48"; 1174 break; 1175 } 1176 elem.hover(function () { 1177 $(this).css("width", elemWidth + "px"); 1178 }, function () { 1179 $(this).css("width", elemDefaultWidth + "px"); 1180 }); 1181 }); 1182 } 1183 }, 1184 accordion: function () { 1185 var accordionType = "accordion", 1186 toogleType = "toggle", 1187 accordionItem = "ac-item", 1188 itemActive = "ac-active", 1189 itemTitle = "ac-title", 1190 itemContent = "ac-content", 1191 $accs = $("." + accordionItem); 1192 $accs.length && ($accs.each(function () { 1193 var $item = $(this); 1194 $item.hasClass(itemActive) ? $item.addClass(itemActive) : $item.find("." + itemContent).hide(); 1195 }), $("." + itemTitle).on("click", function (e) { 1196 var $link = $(this), 1197 $item = $link.parents("." + accordionItem), 1198 $acc = $item.parents("." + accordionType); 1199 $item.hasClass(itemActive) ? $acc.hasClass(toogleType) ? ($item.removeClass(itemActive), $link.next("." + itemContent).slide
1199Up()) : ($acc.find("." + accordionItem).removeClass(itemActive), $acc.find("." + itemContent).slideUp()) : ($acc.hasClass(toogleType) || ($acc.find("." + accordionItem).removeClass(itemActive), $acc.find("." + itemContent).slideUp("fast")), $item.addClass(itemActive), $link.next("." + itemContent).slideToggle("fast")), e.preventDefault(); 1200 return false; 1201 })); 1202 }, 1203 animations: function () { 1204 var $animate = $("[data-animate]"); 1205 if ($animate.length > 0) { 1206 //Check if jQuery Waypoint plugin is loaded 1207 if (typeof Waypoint === 'undefined') { 1208 INSPIRO.elements.notification("Warning", "jQuery Waypoint plugin is missing in plugins.js file.", "danger") 1209 return true; 1210 } 1211 $animate.each(function () { 1212 var elem = $(this); 1213 elem.addClass("animated"); 1214 //Plugin Options 1215 elem.options = { 1216 animation: elem.attr("data-animate") || "fadeIn", 1217 delay: elem.attr("data-animate-delay") || 200, 1218 direction: ~elem.attr("data-animate").indexOf("Out") ? "back" : "forward", 1219 offsetX: elem.attr("data-animate-offsetX") || 0, 1220 offsetY: elem.attr("data-animate-offsetY") || -100 1221 } 1222 //Initializing jQuery Waypoint plugin and passing the options from data animations attributes 1223 if (elem.options.direction == "forward") { 1224 new Waypoint({ 1225 element: elem, 1226 handler: function () { 1227 var t = setTimeout(function () { 1228 elem.addClass(elem.options.animation + " visible"); 1229 }, elem.options.delay); 1230 this.destroy(); 1231 }, 1232 offset: '100%' 1233 }); 1234 } else { 1235 elem.addClass("visible"); 1236 elem.on("click", function () { 1237 elem.addClass(elem.options.animation); 1238 return false; 1239 }); 1240 } 1241 //Demo play 1242 if (elem.parents('.demo-play-animations').length) { 1243 elem.on("click", function () { 1244 elem.removeClass(elem.options.animation); 1245 var t = setTimeout(function () { 1246 elem.addClass(elem.options.animation); 1247 }, 50); 1248 return false; 1249 }); 1250 } 1251 }); 1252 } 1253 }, 1254 parallax: function () { 1255 var $parallax = $('[data-bg-parallax]'); 1256 if ($parallax.length > 0) { 1257 //Check if scrolly plugin is loaded 1258 if (typeof $.fn.scrolly === 'undefined') { 1259 INSPIRO.elements.notification("Warning", "jQuery scrolly plugin is missing in plugins.js file.", "danger") 1260 return true; 1261 } 1262 $parallax.each(function () { 1263 var $elem = $(this), 1264 elemImageSrc = $elem.attr("data-bg-parallax"), 1265 elemImageVelocity = $elem.attr("data-velocity") || "-.140"; 1266 $elem.prepend('<div class="parallax-container" data-lazy-background="' + elemImageSrc + '" data-velocity="' + elemImageVelocity + '" style="background: url(' + elemImageSrc + ')"></div>'); 1267 $(".parallax-container").lazy({ 1268 attribute: "data-lazy-background", 1269 afterLoad: function (element) { 1270 $elem.find(".parallax-container").addClass("img-loaded"); 1271 } 1272 }); 1273 if ($body.hasClass('breakpoint-lg') || $body.hasClass('breakpoint-xl')) { 1274 $elem.find(".parallax-container").scrolly({ 1275 bgParallax: true 1276 }); 1277 } else { 1278 $elem.find(".parallax-container").addClass("parallax-responsive"); 1279 } 1280 }); 1281 } 1282 }, 1283 backgroundImage: function () { 1284 var $backgroundImage = $('[data-bg-image]'); 1285 if ($backgroundImage.length > 0) { 1286 $backgroundImage.each(function () { 1287 var $elem = $(this), 1288 elemImageSrc = $elem.attr("data-bg-image"); 1289 $elem.attr('data-lazy-background', elemImageSrc); 1290 $elem.lazy({ 1291 attribute: "data-lazy-background", 1292 afterLoad: function (element) { 1293 $elem.addClass("bg-loaded"); 1294 } 1295 }); 1296 }); 1297 } 1298 }, 1299 shapeDivider: function () { 1300 var $shape_divider = $(".shape-divider"); 1301 $shape_divider.each(function () { 1302 var elem = $(this); 1303 elem.options = { 1304 style: elem.attr('data-style') || 1, 1305 color: elem.attr('data-color') || '#ffffff', 1306 opacity: elem.attr('data-opacity') || '1', 1307 zIndex: elem.attr('data-zIndex') || '0', 1308 height: elem.attr('data-height') || 210, 1309 prefix: "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MzAg" 1310 } 1311 switch (elem.options.style) { 1312 case '1': 1313 elem.options.style = elem.options.prefix + "MTI1LjcyIj48dGl0bGU+QXNzZXQgMTc0PC90aXRsZT48cGF0aCBkPSJNMzk1LDk5LjM3Yy01Ny40MywxMC4xNy0xMjQuMjctOC4wNi0xNzYuOC0xMS43MnEzLjkzLjY0LDgsMS40MWM1MC44MSw2LDExMy4zLDI0LjA4LDE2OC43NiwxNC4yNkM0NjgsOTAuNDIsNTE5LjYsMTEuODgsNjMwLDguOVYwQzUwNS40Miw0LDQ2OCw4Ni40NywzOTUsOTkuMzdaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4zMDAwMDAwMDAwMDAwMDAwNCIvPjxwYXRoIGQ9Ik0yMjYuMjUsODlDMjczLjg4LDk4LDMzOC4xNCwxMTkuMjksMzk1LDEwOS4yM2M3Mi45My0xMi45MSwxMjYuNjEtNzcuNDYsMjM1LTczLjQ4VjguODZjLTExMC40LDMtMTYyLDgxLjUxLTIzNSw5NC40MkMzMzkuNTUsMTEzLjEsMjc3LjA2LDk1LjA3LDIyNi4yNSw4OVoiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjYzIi8+PHBhdGggZD0iTTYwLjgyLDEyMi44OCw2MiwxMjNhMzEuNDksMzEuNDksMCwwLDAsOS4zNC0uNjRBMTAxLjI2LDEwMS4yNiwwLDAsMSw2MC44MiwxMjIuODhaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTYwLjgyLDEyMi44OCw2MiwxMjNhMzEuNDksMzEuNDksMCwwLDAsOS4zNC0uNjRBMTAxLjI2LDEwMS4yNiwwLDAsMSw2MC44MiwxMjIuODhaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4zNTAwMDAwMDAwMDAwMDAwMyIvPjxwYXRoIGQ9Ik0zOTgsMTA3Ljg0Yy01Ni4xNSwxMC4wNy0xMTkuNTktMTEuMjYtMTY2LjYyLTIwLjItMi43MS0uNTItNS4zNS0xLTcuOTQtMS40MUExNTkuNTQsMTU5LjU0LDAsMCwwLDIwMiw4NHEtMy4wOS0uMDktNiwwYy0uNzEsMC0xLjM5LjA4LTIuMDkuMTItNTIuOCwyLjkzLTgwLjM0LDI4Ljc4LTExMi45MSwzNi42MmE3Mi42Myw3Mi42MywwLDAsMS05LjY2LDEuNjJBMzEuNDksMzEuNDksMCwwLDEsNjIsMTIzbC0xLjE4LS4xM0MzMS4zNywxMjIuODUsMCwxMTEuODIsMCwxMTEuODJ2MTMuOUg2MzBWMzQuMzZDNTIzLDMwLjM5LDQ3MCw5NC45NCwzOTgsMTA3Ljg0WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjxwYXRoIGQ9Ik0wLDEwMi4xNHYxMGM4MywzNCwxMjYuODMtMTQsMTkwLTI0bDEtNGMtNDQuNCw2LjI2LTQ1LDIyLTkzLDMxQzU0Ljc4LDEyMy4yNSwzMCwxMTMuMTQsMCwxMDIuMTRaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4zMDAwMDAwMDAwMDAwMDAwNCIvPjxwYXRoIGQ9Ik0wLDEwNC4xNHYxMGMyMiw5LDQxLjIzLDEwLjI2LDU4LjgsMTAsNDguNzgtLjc2LDg0Ljc2LTI2LjY1LDEzMS4yLTM0bDEtNGMtNDQuNCw2LjI2LTQ1LDIyLTkzLDMxQzU0Ljc4LDEyNS4yNSwzMCwxMTUuMTQsMCwxMDQuMTRaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4zMDAwMDAwMDAwMDAwMDAwNCIvPjwvc3ZnPg=="; 1314 break; 1315 case '2': 1316 elem.options.style = elem.options.prefix + "MTIwIj48dGl0bGU+QXNzZXQgMTY0PC90aXRsZT48cGF0aCBkPSJNNTY3LjY3LDMxLjE0Yy0yNi4yMiwxNy4zNi01MCwzNi41NS04MS44
1316LDUwQzQzNy41MiwxMDEuNDgsMzc1LjUyLDEwNi4yMSwzMTcsMTAzLjIzcy0xMTUuNDItMTMtMTczLjE1LTE5LjU2Qzk2LjQ3LDc4LjI1LDQ3LjE4LDc1LjE4LDAsODAuMDd2MzIuNDFINjMwVjBDNjA2LjQ0LDcuNTIsNTg1Ljg5LDE5LjA5LDU2Ny42NywzMS4xNFoiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjY0Ii8+PHBhdGggZD0iTTU2Ny42NywzOC42N2MtMjYuMjIsMTcuMzUtNTAsMzYuNTUtODEuOCw1MEM0MzcuNTIsMTA5LDM3NS41MiwxMTMuNzMsMzE3LDExMC43NXMtMTE1LjQyLTEzLTE3My4xNS0xOS41NkM5Ni40Nyw4NS43Nyw0Ny4xOCw4Mi43LDAsODcuNTlWMTIwSDYzMFY3LjUyQzYwNi40NCwxNSw1ODUuODksMjYuNjEsNTY3LjY3LDM4LjY3WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="; 1317 break; 1318 case '3': 1319 elem.options.style = elem.options.prefix + "NjAiPjx0aXRsZT5Bc3NldCAxNzI8L3RpdGxlPjxwYXRoIGQ9Ik0wLDAsNDAwLDUzLjIzLDYzMCwwVjYwSDBaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"; 1320 break; 1321 case '4': 1322 elem.options.style = elem.options.prefix + "ODAiPjx0aXRsZT40PC90aXRsZT48cGF0aCBkPSJNMjYxLjIsNjQuOUMzNjcuNiw1NC43LDQ5OS42LDM5LjcsNjMwLDE4LjVWMEM0OTcuOCwzMS40LDM2My43LDUyLDI2MS4yLDY0LjlaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4zMDAwMDAwMDAwMDAwMDAwNCIvPjxwYXRoIGQ9Ik0yNjEuMiw2NC45Yy00MSwzLjktNzguMiw3LjEtMTEwLDkuNiwxMy4yLS40LDI3LS45LDQxLjUtMS42QzMxNSw2Ny43LDQ3OC40LDU5LjQsNjMwLDM0LjhWMTguNUM0OT
1322kuMSwzOS44LDM2Ny4zLDU0LjgsMjYxLjIsNjQuOVoiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjYwMDAwMDAwMDAwMDAwMDEiLz48cGF0aCBkPSJNMTkyLjcsNzIuOWMtMTQuNS43LTI4LjMsMS4yLTQxLjUsMS42QzU5LjksNzcuNywwLDc3LjQsMCw3Ny40VjgwSDYzMFYzMy44QzQ3OC40LDU4LjQsMzE1LDY3LjcsMTkyLjcsNzIuOVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1323 break; 1324 case '5': 1325 elem.options.style = elem.options.prefix + "MTAwIj48dGl0bGU+QXNzZXQgMTczPC90aXRsZT48cGF0aCBkPSJNMCw1Ni44NGwxMDgsMzlMNDY4LDAsNjMwLDY4LjQyVjEwMEgwWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="; 1326 break; 1327 case '6': 1328 elem.options.style = elem.options.prefix + "MTIwIj48dGl0bGU+NjwvdGl0bGU+PHBhdGggZD0iTTYxNS41LDIuNWMtNDEuMyw1LjgtNzcuNCwxMi43LTExNiwxMy43LTIyLjIuNi00NC44LTMuMy02Ny4yLjQtNDguOCw4LjEtMTA3LjgsNDMuNS0xNTcuNyw2Mi42LTQyLjQsMTYuMi02OS45LDE2LTk4LjcsMy44LTIxLjEtOS00Mi4xLTIyLjktNjUuMi0zMy4xLTI5LjQtMTMtNjIuNC0yNC4yLTk4LjktMTIuM2wtMS4xLjNMMCw0MS42VjUzLjhsMTAuNy0zLjYsMS4xLS40YzQyLjEtMTMuNyw2My4xLTUuNiw5OC45LDUuNiwyMi43LDcsNDQuMSwyMCw2NS4yLDI4LjksMzAuOSwxMy4xLDU1LjgsMTMsOTguNy0xLDQ5LjktMTYuNCwxMDguOS01MS44LDE1Ny43LTU5LjksMjIuNC0zLjcsNDUuMi00LjUsNjcuMi0uNCwzNy44LDcuMiw3NC43LDcuMSwxMTYsMS4zLDUtLjcsOS44LTEuNSwxNC41LTIuNVYwQzYyNS4zLDEsNjIwLjUsMS45LDYxNS41LDIuNVoiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjM1MDAwMDAwMDAwMDAwMDAzIi8+PHBhdGggZD0iTTQ5OS41LDIzYy0yMi00LjEtNDQuOC0zLjMtNjcuMi40LTQ4LjgsOC4xLTEwNy44LDQzLjUtMTU3LjcsNTkuOS00Mi45LDE0LTY3LjgsMTQuMS05OC43LDEtMjEuMS04LjktNDIuNS0yMS45LTY1LjItMjguOUM3NC45LDQ0LjIsNTMuOSwzNi4xLDExLjgsNDkuOGwtMS4xLjRMMCw1My44VjYybDEwLjctMy42LDEuMS0uNGMzNi41LTExLjksNjguOC04LDk4LjksMS40LDIyLjcsNy4xLDQ0LjEsMTcuMyw2NS4yLDI2LjMsMjguOCwxMi4yLDU1LjcsMTIuOSw5OS4xLDIuOSw1Mi41LTEyLjEsMTA3LjEtNTEuNywxNTUuOS01OS44LDIyLjMtMy44
1328LDQ2LjYtMS44LDY4LjYsMi40LDM3LjgsNy4xLDc0LjcsMjIsMTE2LDE2LjMsNS0uNyw5LjgtMS42LDE0LjUtMi42VjIxLjhjLTQuNywxLTkuNSwxLjgtMTQuNSwyLjVDNTc0LjIsMzAuMSw1MzcuMywzMC4yLDQ5OS41LDIzWiIgc3R5bGU9ImZpbGw6I2ZmZjtvcGFjaXR5OjAuNSIvPjxwYXRoIGQ9Ik00OTkuNSwzMS4yYy0yMi00LjItNDYuMy02LjItNjguNi0yLjRDMzgyLjEsMzYuOSwzMjcuNSw3Ni41LDI3NSw4OC42Yy00My40LDEwLTcwLjMsOS4zLTk5LjEtMi45LTIxLjEtOS00Mi41LTE5LjItNjUuMi0yNi4zQzgwLjYsNTAsNDguMyw0Ni4xLDExLjgsNThsLTEuMS40TDAsNjJ2NThINjMwVjQ0LjljLTQuNywxLTkuNSwxLjktMTQuNSwyLjZDNTc0LjIsNTMuMiw1MzcuMywzOC4zLDQ5OS41LDMxLjJaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"; 1329 break; 1330 case '7': 1331 elem.options.style = elem.options.prefix + "MTIwIj48dGl0bGU+QXNzZXQgMTc0PC90aXRsZT48cGF0aCBkPSJNMCwwLDYzMCwxMjBIMFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1332 break; 1333 case '8': 1334 elem.options.style = elem.options.prefix + "MTIwIj48dGl0bGU+ODwvdGl0bGU+PHBhdGggZD0iTTQ1Ni43LDUzLjZDNDM5LjgsNDIuOSwzOTYuOSwxLjgsMzQzLjIsMzAuMWMtMzUuNywxOC43LTg0LDcxLjUtMTI3LjgsNzEuOS0zNi4xLjMtNTcuOC0yMC4yLTgxLjQtMzUuMS0xNy4zLTExLTM1LTIzLjUtNTMuNi0zMi4yQzU1LjYsMjMuMiwzMCwxMS44LjEsMjYuNGMtLjMuMSwwLDkzLjYsMCw5My42SDYzMFYzMS44Yy0zLjksMS4zLTEzLDE3LjMtNjUuMiwzMi44QzUzMy4zLDc2LjQsNDkyLjQsNzYuNCw0NTYuNyw1My42WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjxnIHN0eWxlPSJvcGFjaXR5OjAuMzgiPjxwYXRoIGQ9Ik02MTEsNjMuNmwtMiw0Mi44LTUyNy45LDUtODEtMS4xVjYxLjhhMTk0LjcsMTk0LjcsMCwwLDAsMjQuNyw5LjQsMTQ2LjgsMTQ2LjgsMCwwLDAsNDMuOSw2LjJDOTQuNiw3Ny4zLDEyMC41LDY1LDE0Niw1MC41YzE4LjctMTAuNiwzNy4xLTIyLjMsNTUuMi0zMS4zQzIxMy43LDEyLjksMjI2LDgsMjM4LjEsNS43YzI0LjMtNC42LDUxLjQtMy4yLDcyLjUsNy45bDM2LjcsMTkuNmMzNy4zLDE5LjksNzMuMSwzOC45LDEwNC4yLDUxLjdDNDY1LjQsOTAuNiw0NzguMyw5NS4yLDQ5MCw5OGMxMy4zLDMuMywyNS4xLDQuNSwzNSwyLjlhNzUuNSw3NS41LDAsMCwwLDkuMy0zLjdsNy40LTMuM2MxNS40LTcuMSwzOC44LTE5LjEsNTkuNi0zMy4yLDUuNS0zLjcuNi40LDUuNy0zLjRDNjE5LDQ4LjIsNjA4LjcsNjQuMiw2MTEsNjMuNloiIHN0eWxlPSJmaWxsOiNmZmYiLz48L2c+PHBhdGggZD0iTTU4MS44LDExLjRDNTUyLC4yLDUzMS41LDMuOSw1MDcuMiw4LjQsNDcyLjEsMTUsNDM0LjcsNDQuMSwzOTYuNiw2My4yYy0xNi4zLDguMS0zMi44LDE0LjQtNDkuMiwxNi4zLTE1LjgtNS40LTMyLTEyLjItNDcuNi0xOS4yLTM3LjktMTcuMS03Mi42LTM1LjctOTEuOS0zOS44bC02LjctMS4zYy0yMi4yLTQuMi00NS45LTUuOC02Ny45LTEuNy0xMC40LDItMjEsNS45LTMxLjgsMTFDNzYuNiw0MC4yLDUwLjksNTcuOSwyNC44LDcxLjJBMjEzLjYsMjEzLjYsMCwwLDEsLjEsODIuMXYzMC44bDgxLTEuNSwzMTIuMy01LjcsMS40LjNMNjMwLDExMS44di04MEM2MTMsMjYuNCw2MTkuMywyNS41LDU4MS44LDExLjRaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC40OSIvPjxnIHN0eWxlPSJvcGFjaXR5OjAuMzgiPjxwYXRoIGQ9Ik01NDUuNCw5N2wtMTEuMS4yTDQ5MCw5OCwuMSwxMDcuMVYwQzIxLjMtLjQsNDEuMyw0LjEsNjAuNCwxMC44YTQwMy43LDQwMy43LDAsMCwxLDQxLjEsMTcuN2MxMCw0LjksMTkuOSw5LjksMjkuNywxNC42LDUsMi4zLDkuOSw0LjksMTQuOCw3LjQsMjYuMSwxMy41LDUyLjcsMjgsOTIuOSwyNy44LDIwLjMtLjEsNDAuNy03LjcsNjAuOS0xOCwxNi04LjIsMzEuOS0xOCw0Ny41LTI3LjEsMjAuOS0xMi4xLDQxLjMtMjIuOSw2MC45LTI2LjZDNDMyLjUsMiw0ODEuMSw4LjYsNTA0LDE4czQ5LjYsMjMuNiw5Ny4zLDQyLjdDNjIwLjIsNjguNCw1NDUuNCw5Nyw1NDUuNCw5N1oiIHN0eWxlPSJmaWxsOiNmZmYiLz48L2c+PC9zdmc+"; 1335 break; 1336 case '9': 1337 elem.options.style = elem.options.prefix + "MTAwIj48dGl0bGU+QXNzZXQgMTgyPC90aXRsZT48cGF0aCBkPSJNMCw0NS42NVMxNTksMCwzMjIsMCw2MzAsNDUuNjUsNjMwLDQ1LjY1VjEwMEgwWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="; 1338 break; 1339 case '10': 1340 elem.options.style = elem.options.prefix + "MTIwIj48dGl0bGU+MTA8L3RpdGxlPjxwYXRoIGQ9Ik0wLDEwOC4xSDYzMFYwUzQ3NSwxMDQuNiwzMTQsMTA0LjYsMCwwLDAsMFoiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjIyIi8+PHBhdGggZD0iTTAsMTA2LjlINjMwVjE3LjhzLTE1NSw4Ny45LTMxNiw4Ny45UzAsMTksMCwxOVoiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjM2Ii8+PHBhdGggZD0iTTAsMTIwSDYzMFY0NS4xcy0xNTUsNjEuOC0zMTYsNjEuOFMwLDQ1LjEsMCw0NS4xWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="; 1341 break; 1342 case '11': 1343 elem.options.style = elem.options.prefix + "MTIwIj48dGl0bGU+MTE8L3RpdGxlPjxwYXRoIGQ9Ik01MTAuNywyLjljLTk4LjksMjEuOS0yMjIuMyw4NS41LTMyMiw4NS41QzgwLjEsODguNCwyNC4xLDU2LjEsMCwzNi40VjEyMEg2MzBWMTUuMkM2MDIuNCw2LjksNTUwLjEtNS44LDUxMC43LDIuOVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1344 break; 1345 case '12': 1346 elem.options.style = elem.options.prefix + "MTIwIj48dGl0bGU+MTI8L3RpdGxlPjxwYXRoIGQ9Ik02MzAsMzQuNWE1NCw1NCwwLDAsMS05LDIuM0M1NzguMyw0Ni4xLDU1Ni4xLDI0LDUxNy4yLDEyLjVjLTIyLjktNi43LTQ3LjktOS44LTcxLTMuOUMzOTUuOCwyMS43LDM0MC4zLDEwMiwyODUuMSwxMDIuNGMtNDUuNC4zLTcyLjYtMjYuNS0xMDIuMy00Ni4xLTIxLjgtMTQuNC00NC0zMC44LTY3LjQtNDIuMUM4NC4yLS45LDUwLjktNy4yLDEzLjIsMTEuOGwtMS4yLjZjLTMuNSwxLjktOC4yLDMuOS0xMiw1LjlWMTIwSDYzMFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1347 break; 1348 case '13': 1349 elem.options.style = elem.options.prefix + "OTAiPjx0aXRsZT4xMzwvdGl0bGU+PHBhdGggZD0iTTYzMCw5MEgxTDAsMFMxMzEsNzYuNiwzNjYsMzQuMmMxMjAtMjEuNywyNjQsNC41LDI2NCw0LjVaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4xNiIvPjxwYXRoIGQ9Ik0xLDkwSDYzMFYwUzQ4OSw3NC4zLDI1NCwzMS45QzEzNCwxMC4zLDAsMzMsMCwzM1oiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjIiLz48cGF0aCBkPSJNMCw5MEg2MzBWMTguMlM0NzUsNzcuNSwzMTQsNzcuNSwwLDE4LjIsMCwxOC4yWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="; 1350 break; 1351 case '14': 1352 elem.options.style = elem.options.prefix + "NjAiPjx0aXRsZT5Bc3NldCAxNzg8L3RpdGxlPjxwYXRoIGQ9Ik0wLDAsMTEzLDE5LDU4MiwyOS40Nyw2MzAsMFY2MEgwWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="; 1353 break; 1354 case '15': 1355 elem.options.style = elem.options.prefix + "ODAiPjx0aXRsZT5Bc3NldCAxNzc8L3RpdGxlPjxwYXRoIGQ9Ik0zMTUsMCw2MzAsODBIMFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1356 break; 1357 case '16': 1358 elem.options.style = elem.options.prefix + "ODAiPjx0aXRsZT4xNjwvdGl0bGU+PHBhdGggZD0iTTAsODBTMjA4LDAsMzE1LDAsNjMwLDgwLDYzMCw4MFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1359 break; 1360 case '17': 1361 elem.options.style = elem.options.prefix + "MTIwIj48dGl0bGU+MTc8L3RpdGxlPjxwYXRoIGQ9Ik0zMjAsMTZjODguNCwyLDMxMCwxMDQsMzEwLDEwNFM1NjkuNiw4Ny4zLDQ5OS41LDU2Yy0xOS43LTguOC00MC4xLTE3LjUtNjAuMi0yNS4zQzM5NS4yLDEzLjYsMzUyLjcuNywzMjQsMCwyMzUtMiwwLDEyMCwwLDEyMGwxNC4xLTUuNUM2Mi41LDkyLjgsMjQzLjMsMTQuMywzMjAsMTZaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4zMSIvPjxwYXRoIGQ9Ik0xNC4xLDExNC41QzY0LjksOTUsMjM5LjQsMzAuMywzMTUsMzJjODguNCwyLDMxNSw4OCwzMTUsODhTNDA4LjQsMTgsMzIwLDE2QzI0My4zLDE0LjMsNjIuNSw5Mi44LDE0LjEsMTE0LjVaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC40MyIvPjxwYXRoIGQ9Ik0xNC4xLDExNC41QzY0LjksOTUsMjM5LjQsMzAuMywzMTUsMzJjODguNCwyLDMxNSw4OCwzMTUsODhTNDA4LjQsMTgsMzIwLDE2QzI0My4zLDE0LjMsNjIuNSw5Mi44LDE0LjEsMTE0LjVaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4zMSIvPjxwYXRoIGQ9Ik0zMTUsMzJDMjM5LjQsMzAuMyw2NC45LDk1LDE0LjEsMTE0LjVMMiwxMjB
1361INjMwUzQwMy40LDM0LDMxNSwzMloiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1362 break; 1363 case '18': 1364 elem.options.style = elem.options.prefix + "NDAiPjx0aXRsZT5Bc3NldCAxNzk8L3RpdGxlPjxwYXRoIGQ9Ik0wLDE4LjEsNTMsMS45LDEwMywyMGw1OS05LjUyLDU2LDE1LjIzLDcyLTcuNjEsNDYsNC43NiwzNC00Ljc2LDM2LDguNTcsNzYtMTksODUsMTUuMjRMNjMwLDBWMzcuMTRIMFoiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjQ3MDAwMDAwMDAwMDAwMDAzIi8+PHBhdGggZD0iTTAsMjAsNTMsMy44MSwxMDMsMjEuOWw1OS05LjUyLDU2LDE1LjI0TDI5MCwyMGw0Niw0Ljc2TDM3MCwyMGwzNiw5LjUyLDc2LTE3LjE0LDg1LDE2LjE5LDYzLTE2LjE5VjQwSDBaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"; 1365 break; 1366 case '19': 1367 elem.options.style = elem.options.prefix + "ODAiPjx0aXRsZT4xOTwvdGl0bGU+PHBhdGggZD0iTTYzMCwzNi45YTM0LjYsMzQuNiwwLDAsMC0xNi41LTQuMmMtMTcuMiwwLTMxLjgsMTIuNy0zNi43LDMwLjNhMjEuMiwyMS4yLDAsMCwwLTkuMy0yLjIsMjEuOCwyMS44LDAsMCwwLTEzLjksNS4xLDM4LjcsMzguNywwLDAsMC00MC40LTQuOGMtNS4yLTcuNy0xMy40LTEyLjYtMjIuNy0xMi42YTI1LjcsMjUuNywwLDAsMC04LjcsMS41QzQ3Mi45LDI3LjgsNDUzLDEyLjQsNDMwLDEyLjRzLTQyLjcsMTUuMy01MS43LDM3LjJjLTcuMi0xMC45LTE4LjgtMTguMS0zMS44LTE4LjFhMzcsMzcsMCwwLDAtMjQsOS4yYy02LTEwLjMtMTYuMy0xNy0yOC0xNy0xMy44LDAtMjUuNiw5LjMtMzAuNywyMi43QTI2LjUsMjYuNSwwLDAsMCwyNDQsMzcuMmEyMiwyMiwwLDAsMC01LjguN2MtNC0xMS42LTE0LTE5LjktMjUuNy0xOS45YTI0LjcsMjQuNywwLDAsMC05LjQsMS45QzE4OS4yLDcuNCwxNzEuNiwwLDE1Mi41LDAsMTI0LjYsMCwxMDAsMTUuOCw4NS4zLDM5LjlBMjcuNiwyNy42LDAsMCwwLDYzLDI4LjJhMjMuOSwyMy45LDAsMCwwLTcuMSwxQzQ3LjIsMTMsMzEuNSwyLjMsMTMuNSwyLjNBNDMuMyw0My4zLDAsMCwwLDAsNC40VjgwSDYzMFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1368 break; 1369 case '20': 1370 elem.options.style = elem.options.prefix + "MTAwIj48dGl0bGU+QXNzZXQgMTgwPC90aXRsZT48cGF0aCBkPSJNNjMwLDYwLjgyVjEwMEgwVjk1Ljg4bDExLjkxLTYuNDlMODQsNDMuMzRsMzYuNDksMjQuNDVMMTYwLDQ2LDIzMi4wNSwwbDQ5LjA3LDMyLjg5LDM0LjA3LDI5LjU5LDY4LjI5LDI3Ljc1TDQyMyw2NWw0Mi4yLDI4LjI5LDE4LjM5LTE2LDQ5LjA3LTMyLjg5TDU5NCw4My42MSw2MjgsNjEuOVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1371 break; 1372 } 1373 var decodeSvg = atob(elem.options.style); 1374 var wrapper = document.createElement('div'); 1375 wrapper.innerHTML = decodeSvg; 1376 var svg = wrapper.firstChild; 1377 var paths = svg.getElementsByTagName('path'); 1378 [].forEach.call(paths, function (path) { 1379 path.style.fill = elem.options.color; 1380 }); 1381 if ($body.hasClass("b--desktop")) { 1382 svg.setAttribute("preserveAspectRatio", "none"); 1383 if (elem.options.height) { 1384 svg.setAttribute("style", "height:" + elem.options.height + "px"); 1385 } else { 1386 svg.setAttribute("style", "height:" + svg.height.baseVal.value + "px"); 1387 } 1388 } else { 1389 svg.setAttribute("preserveAspectRatio", "xMidYMid meet"); 1390 } 1391 $(".shape-divider svg title").remove(); 1392 elem.css({ 1393 'z-index': elem.options.zIndex, 1394 'opacity': elem.options.opacity 1395 }); 1396 elem.append(svg); 1397 }); 1398 }, 1399 responsiveVideos: function () { 1400 //selecting elements 1401 var selectors = [ 1402 'iframe[src*="player.vimeo.com"]', 1403 'iframe[src*="youtube.com"]', 1404 'iframe[src*="youtube-nocookie.com"]', 1405 'iframe[src*="kickstarter.com"][src*="video.html"]', 1406 'object', 1407 'embed' 1408 ]; 1409 var videoContainers = $("section, .content, .post-content, .video-js, .post-video, .video-wrap, .ajax-quick-view,#slider:not(.revslider-wrap)"); 1410 var elem = videoContainers.find(selectors.join(',')); 1411 if (elem) { 1412 elem.each(function () { 1413 $(this).wrap('<div class="embed-responsive embed-responsive-16by9"></div>'); 1414 }); 1415 } 1416 }, 1417 counters: function () { 1418 var $counter = $('.counter'); 1419 if ($counter.length > 0) { 1420 //Check if countTo plugin is loaded 1421 if (typeof $.fn.countTo === 'undefined') { 1422 INSPIRO.elements.notification("Warning", "jQuery countTo plugin is missing in plugins.js file.", "danger") 1423 return true; 1424 } 1425 //Initializing countTo plugin 1426 $counter.each(function () { 1427 var elem = $(this), 1428 prefix = elem.find("span").attr("data-prefix") || "", 1429 suffix = elem.find("span").attr("data-suffix") || ""; 1430 1431 new Waypoint({ 1432 element: elem, 1433 handler: function () { 1434 elem.find('span').countTo({ 1435 refreshInterval: 2, 1436 formatter: function (value, options) { 1437 return String(prefix) + value.toFixed(options.decimals) + String(suffix); 1438 }, 1439 }); 1440 this.destroy(); 1441 }, 1442 offset: '104%' 1443 }); 1444 }); 1445 } 1446 }, 1447 countdownTimer: function () { 1448 var $countdownTimer = $('.countdown'); 1449 if ($countdownTimer.length > 0) { 1450 //Check if countdown plugin is loaded 1451 if (typeof $.fn.countdown === 'undefined') { 1452 INSPIRO.elements.notification("Warning", "jQuery countdown plugin is missing in plugins.js file.", "danger") 1453 return true; 1454 } 1455 $('[data-countdown]').each(function () { 1456 var $this = $(this), 1457 finalDate = $(this).attr('data-countdown'); 1458 $this.countdown(finalDate, function (event) { 1459 $this.html(event.strftime('<div class="countdown-container"><div class="countdown-box"><div class="number">%-D</div><span>Day%!d</span></div>' + '<div class="countdown-box"><div class="number">%H</div><span>Hours</span></div>' + '<div class="countdown-box"><div class="number">%M</div><span>Minutes</span></div>' + '<div class="countdown-box"><div class="number">%S</div><span>Seconds</span></div></div>')); 1460 }); 1461 }); 1462 1463 } 1464 }, 1465 progressBar: function () { 1466 var $progressBar = $('.p-progress-bar') || $('.progress-bar'); 1467 if ($progressBar.length > 0) { 1468 $progressBar.each(function (i, elem) { 1469 var $elem = $(this), 1470 percent = $elem.attr('data-percent') || "100",
1471 delay = $elem.attr('data-delay') || "60", 1472 type = $elem.attr('data-type') || "%"; 1473 if (!$elem.hasClass('progress-animated')) { 1474 $elem.css({ 1475 'width': '0%' 1476 }); 1477 } 1478 var progressBarRun = function () { 1479 $elem.animate({ 1480 'width': percent + '%' 1481 }, 'easeInOutCirc').addClass('progress-animated'); 1482 $elem.delay(delay).append('<span class="progress-type">' + type + '</span><span class="progress-number animated fadeIn">' + percent + '</span>'); 1483 }; 1484 if ($body.hasClass('breakpoint-lg') || $body.hasClass('breakpoint-xl')) { 1485 new Waypoint({ 1486 element: $(elem), 1487 handler: function () { 1488 var t = setTimeout(function () { 1489 progressBarRun(); 1490 }, delay); 1491 this.destroy(); 1492 }, 1493 offset: '100%' 1494 }); 1495 } else { 1496 progressBarRun(); 1497 } 1498 }); 1499 } 1500 }, 1501 pieChart: function () { 1502 var $pieChart = $('.pie-chart'); 1503 if ($pieChart.length > 0) { 1504 //Check if easyPieChart plugin is loaded 1505 if (typeof $.fn.easyPieChart === 'undefined') { 1506 INSPIRO.elements.notification("Warning", "jQuery easyPieChart plugin is missing in plugins.js file.", "danger") 1507 return true; 1508 } 1509 $pieChart.each(function () { 1510 var elem = $(this); 1511 //Plugin Options 1512 elem.options = { 1513 barColor: elem.attr('data-color') || $theme_color, 1514 trackColor: elem.attr('data-trackcolor') || "rgba(0,0,0,0.10)", 1515 scaleColor: elem.attr('data-scaleColor') || false, 1516 scaleLength: elem.attr('data-scaleLength') || 5, 1517 lineCap: elem.attr('data-lineCap') || 'square', 1518 lineWidth: elem.attr('data-lineWidth') || 6, 1519 size: elem.attr('data-size') || 160, 1520 rotate: elem.attr('data-rotate') || 0, 1521 animate: elem.attr('data-animate') || 2600, 1522 elemEasing: elem.attr('data-easing') || 'easeInOutExpo' 1523 } 1524 elem.find('span, i').css({ 1525 'width': elem.options.size + 'px', 1526 'height': elem.options.size + 'px', 1527 'line-height': elem.options.size + 'px' 1528 }); 1529 //Initializing jQuery easyPieChart plugin and passing the options 1530 new Waypoint({ 1531 element: elem, 1532 handler: function () { 1533 elem.easyPieChart({ 1534 barColor: elem.options.barColor, 1535 trackColor: elem.options.trackColor, 1536 scaleColor: elem.options.scaleColor, 1537 scaleLength: elem.options.scaleLength, 1538 lineCap: elem.options.lineCap, 1539 lineWidth: Number(elem.options.lineWidth), 1540 size: Number(elem.options.size), 1541 rotate: Number(elem.options.rotate), 1542 animate: Number(elem.options.animate), 1543 elemEasing: elem.options.elemEasing, 1544 onStep: function (from, to, percent) { 1545 elem.find('span.percent').text(Math.round(percent)); 1546 }, 1547 }); 1548 this.destroy(); 1549 }, 1550 offset: '100%' 1551 }); 1552 }); 1553 } 1554 }, 1555 maps: function () { 1556 var $map = $('.map'); 1557 1558 if ($map.length > 0) { 1559 //Check if gMap plugin is loaded 1560 if (typeof $.fn.gmap3 === 'undefined') { 1561 INSPIRO.elements.notification("Warning", "jQuery gmap3 plugin is missing, please go to this <a href='//support.inspirothemes.com/help-center/articles/8/14/65/google-maps'>help article</a> and follow instructions on how to configure google maps.", "danger") 1562 return true; 1563 } 1564 $map.each(function () { 1565 var elem = $(this); 1566 //Plugin Options 1567 elem.options = { 1568 latitude: elem.attr('data-latitude') || "-37.817240", 1569 longitude: elem.attr('data-longitude') || "144.955820", 1570 info: elem.attr('data-info'), 1571 maptype: elem.attr('data-type') || "ROADMAP", 1572 zoom: elem.attr('data-zoom') || 14, 1573 icon: elem.attr('data-icon'), 1574 mapColor: elem.attr('data-style') || null, 1575 } 1576 var mapsStyle; 1577 if (window.MAPS) { 1578 if (elem.options.mapColor) { 1579 mapsStyle = MAPS[elem.options.mapColor]; 1580 } else { 1581 mapsStyle = null 1582 } 1583 } 1584 //Initialize google maps plugin and passing the options 1585 elem.gmap3({ 1586 center: [Number(elem.options.latitude), Number(elem.options.longitude)], 1587 zoom: Number(elem.options.zoom), 1588 mapTypeId: google.maps.MapTypeId[elem.options.maptype], 1589 scrollwheel: false, 1590 zoomControl: true, 1591 mapTypeControl: false, 1592 streetViewControl: true, 1593 fullscreenControl: true, 1594 styles: mapsStyle 1595 }) 1596 if (elem.options.icon) { 1597 elem.gmap3().marker({ 1598 position: [Number(elem.options.latitude), Number(elem.options.longitude)], 1599 icon: elem.options.icon 1600 }); 1601 } else { 1602 elem.gmap3().marker({ 1603 position: [Number(elem.options.latitude), Number(elem.options.longitude)], 1604 icon: ' ', 1605 }).overlay({ 1606 position: [Number(elem.options.latitude), Number(elem.options.longitude)], 1607 content: '<div class="animated-dot"></div>', 1608 }); 1609 } 1610 if (elem.options.info) { 1611 elem.gmap3().infowindow({ 1612 position: [Number(elem.options.latitude), Number(elem.options.longitude)], 1613 content: elem.options.info, 1614 pixelOffset: new google.maps.Size(0, -10) 1615 }).then(function (infowindow) { 1616 var map = this.get(0); 1617 var marker = this.get(1); 1618 marker.addListener('click', function () { 1619 infowindow.open(map); 1620 }); 1621 }); 1622 } 1623 }); 1624 } 1625 }, 1626 gridLayout: function () { 1627 if ($gridLayout.length > 0) { 1628 //Check if isotope plugin is loaded 1629 if (typeof $.fn.isotope === 'undefined') { 1630 INSPIRO.elements.notification("Warning", "jQuery isotope plugin is missing in plugins.js file.", "danger") 1631 return true; 1632 } 1633 1634 var isotopeRTL; 1635 if(INSPIRO.core.rtlStatus()) { 1636 isotopeRTL = false;
1637 }else { 1638 isotopeRTL = true; 1639 } 1640 1641 $gridLayout.each(function () { 1642 var elem = $(this); 1643 elem.options = { 1644 itemSelector: elem.attr('data-item') || "portfolio-item", 1645 layoutMode: elem.attr('data-layout') || "masonry", 1646 filter: elem.attr("data-default-filter") || "*", 1647 stagger: elem.attr('data-stagger') || 0, 1648 autoHeight: elem.data('auto-height') == false ? false : true, 1649 gridMargin: elem.attr('data-margin') || 20, 1650 gridMarginXs: elem.attr('data-margin-xs'), 1651 transitionDuration: elem.attr("data-transition") || "0.45s", 1652 isOriginLeft: isotopeRTL 1653 } 1654 1655 console.log(); 1656 1657 $(window).breakpoints("lessThan", "lg", function () { 1658 elem.options.gridMargin = elem.options.gridMarginXs || elem.options.gridMargin; 1659 }); 1660 1661 elem.css("margin", "0 -" + elem.options.gridMargin + "px -" + elem.options.gridMargin + "px 0"); 1662 elem.find('.' + elem.options.itemSelector).css("padding", "0 " + elem.options.gridMargin + "px " + elem.options.gridMargin + "px 0"); 1663 if (elem.attr("data-default-filter")) { 1664 var elemDefaultFilter = elem.options.filter; 1665 elem.options.filter = "." + elem.options.filter; 1666 } 1667 elem.append('<div class="grid-loader"></div>'); 1668 elem.imagesLoaded().always(function () { 1669 elem.isotope({ 1670 layoutMode: elem.options.layoutMode, 1671 transitionDuration: elem.options.transitionDuration, 1672 stagger: Number(elem.options.stagger), 1673 itemSelector: "." + elem.options.itemSelector + ':not(.grid-loader)', 1674 isOriginLeft: elem.options.isOriginLeft, 1675 autoHeight: elem.options.autoHeight, 1676 masonry: { 1677 columnWidth: elem.find('.' + elem.options.itemSelector + ':not(.large-width)')[0], 1678 }, 1679 filter: elem.options.filter 1680 }).isotope('layout'); 1681 elem.on('layoutComplete', function (event, laidOutItems) { 1682 elem.remove(".grid-loader").addClass('grid-loaded'); 1683 }); 1684 }); 1685 $(window).on('resize', function () { 1686 var t = setTimeout(function () { 1687 INSPIRO.elements.gridLayoutRefresh(); 1688 }, 200); 1689 }); 1690 //Infinity Scroll 1691 if (elem.next().hasClass("infinite-scroll")) { 1692 INSPIRO.elements.gridLayoutInfinite(elem, elem.options.itemSelector, elem.options.gridMargin); 1693 } 1694 if ($gridFilter.length > 0) { 1695 $gridFilter.each(function () { 1696 var elemFilter = $(this), 1697 $filterItem = elemFilter.find('a'), 1698 elemFilterLayout = elemFilter.attr('data-layout'), 1699 $filterItemActiveClass = "active"; 1700 $filterItem.on('click', function () { 1701 elemFilter.find('li').removeClass($filterItemActiveClass); 1702 $(this).parent('li').addClass($filterItemActiveClass); 1703 var filterValue = $(this).attr('data-category'); 1704 $(elemFilterLayout).isotope({ 1705 filter: filterValue 1706 }).on('layoutComplete', function () { 1707 $window.trigger("scroll"); 1708 }); 1709 if ($(".grid-active-title").length > 0) { 1710 $(".grid-active-title").empty().append($(this).text()) 1711 } 1712 return false;
1713 }); 1714 if (elemDefaultFilter) { 1715 var filterDefaultValue = elemFilter.find($('[data-category="' + elem.options.filter + '"]')); 1716 elemFilter.find('li').removeClass($filterItemActiveClass); 1717 filterDefaultValue.parent('li').addClass($filterItemActiveClass); 1718 } else { 1719 var filterDefaultValue = elemFilter.find($('[data-category="*"]')); 1720 filterDefaultValue.parent('li').addClass($filterItemActiveClass); 1721 } 1722 }); 1723 } 1724 }); 1725 } 1726 }, 1727 gridLayoutRefresh: function (elem) { 1728 if (!elem) { 1729 elem = $gridLayout; 1730 } 1731 if (elem.length > 0) { 1732 elem.each(function () { 1733 var elem = $(this); 1734 var t = setTimeout(function () { 1735 elem.isotope('layout'); 1736 }, 300); 1737 }); 1738 } 1739 }, 1740 gridLayoutInfinite: function (element, elementSelector, elemGridMargin) { 1741 1742 //Check if infiniteScroll plugin is loaded 1743 if (typeof $.fn.infiniteScroll === 'undefined') { 1744 INSPIRO.elements.notification("Warning", "jQuery infiniteScroll plugin is missing, please add this code line <b> <script src="plugins/metafizzy/infinite-scroll.min.js"></script></b>, before <b>plugins.js</b>", "danger"); 1745 return true; 1746 } 1747 var elem = element, 1748 gridItem = elementSelector, 1749 gridMargin = elemGridMargin, 1750 loadOnScroll = true, 1751 threshold = 500, 1752 prefilli = true, 1753 loadMoreElem = $("#showMore"), 1754 loadMoreBtn = $("#showMore a.btn"), 1755 loadMoreBtnText = $("#showMore a.btn").html(), 1756 loadMoreMessage = $('<div class="infinite-scroll-message"><p class="animated visible fadeIn">No more posts to show</p></div>'); 1757 1758 var pathSelector = $('.infinite-scroll > a').attr('href'); 1759 if (pathSelector.indexOf(".html") > -1) { 1760 var pathSelector = pathSelector.replace(/(\d+)/g, '{{#}}'); 1761 } 1762 1763 if (loadMoreElem.length > 0) { 1764 loadOnScroll = false; 1765 threshold = false; 1766 prefilli = false; 1767 } 1768 elem.infiniteScroll({ 1769 path: pathSelector, 1770 append: '.' + gridItem, 1771 history: false, 1772 button: '#showMore a', 1773 scrollThreshold: threshold, 1774 loadOnScroll: loadOnScroll, 1775 prefill: prefilli, 1776 }); 1777 1778 elem.on('load.infiniteScroll', function (event, response, path, items) { 1779 var $items = $(response).find('.' + gridItem); 1780 $items.imagesLoaded(function () { 1781 elem.append($items); 1782 elem.isotope('insert', $items); 1783 }); 1784 }); 1785 1786 elem.on('error.infiniteScroll', function (event, error, path) { 1787 loadMoreElem.addClass("animated visible fadeOut"); 1788 var t = setTimeout(function () { 1789 loadMoreElem.hide(); 1790 elem.after(loadMoreMessage); 1791 }, 500); 1792 var t = setTimeout(function () { 1793 $(".infinite-scroll-message").addClass("animated visible fadeOut"); 1794 }, 3000); 1795 }) 1796 elem.on('append.infiniteScroll', function (event, response, path, items) { 1797 INSPIRO.slider.carousel($(items).find('.carousel')); 1798 loadMoreBtn.html(loadMoreBtnText); 1799 element.css("margin", "0 -" + gridMargin + "px -" + gridMargin + "px 0"); 1800 element.find('.' + gridItem).css("padding", "0 " + gridMargin + "px " + gridMargin + "px 0"); 1801 }); 1802 }, 1803 1804 tooltip: function () { 1805 1806 var $tooltip = $('[data-toggle="tooltip"]'); 1807 if ($tooltip.length > 0) { 1808 1809 //Check if tooltip plugin is loaded 1810 if (typeof $.fn.tooltip === 'undefined') { 1811 INSPIRO.elements.notification("Warning: jQuery tooltip plugin is missing in plugins.js file.", "warning") 1812 return true; 1813 } 1814 //Initialize Tooltip plugin function 1815 $tooltip.tooltip(); 1816 } 1817 }, 1818 popover: function () { 1819 1820 var $popover = $('[data-toggle="popover"]'); 1821 1822 if ($popover.length > 0) { 1823 1824 //Check if popover plugin is loaded 1825 if (typeof $.fn.popover === 'undefined') { 1826 INSPIRO.elements.notification("Warning: jQuery popover plugin is missing in plugins.js file.", "warning") 1827 return true; 1828 } 1829 //Initialize Tooltip plugin function 1830 $popover.popover({ 1831 container: 'body', 1832 html: true 1833 }); 1834 } 1835 }, 1836 1837 magnificPopup: function () { 1838 var $lightbox = $('[data-lightbox]'); 1839 if ($lightbox.length > 0) { 1840 //Check if magnificPopup plugin is loaded 1841 if (typeof $.fn.magnificPopup === 'undefined') { 1842 INSPIRO.elements.notification("Warning", "jQuery magnificPopup plugin is missing in plugins.js file.", "danger") 1843 return true; 1844 } 1845 //Get lightbox data type 1846 var getType = { 1847 image: { 1848 type: 'image', 1849 closeOnContentClick: true, 1850 removalDelay: 500, 1851 image: { 1852 verticalFit: true 1853 }, 1854 callbacks: { 1855 beforeOpen: function () { 1856 this.st.image.markup = this.st.image.markup.replace('mfp-figure', 'mfp-figure mfp-with-anim'); 1857 this.st.mainClass = "mfp-zoom-out"; 1858 } 1859 } 1860 }, 1861 gallery: { 1862 delegate: 'a[data-lightbox="gallery-image"], a[data-lightbox="image"]', 1863 type: 'image', 1864 image: { 1865 verticalFit: true 1866 }, 1867 gallery: { 1868 enabled: true, 1869 navigateByImgClick: true, 1870 preload: [0, 1] 1871 }, 1872 removalDelay: 500, 1873 callbacks: { 1874 beforeOpen: function () { 1875 this.st.image.markup = this.st.image.markup.replace('mfp-figure', 'mfp-figure mfp-with-anim'); 1876 this.st.mainClass = "mfp-zoom-out"; 1877 } 1878 }, 1879 }, 1880 iframe: { 1881 type: 'iframe', 1882 removalDelay: 500, 1883 callbacks: { 1884 beforeOpen: function () { 1885 this.st.image.markup = this.st.image.markup.replace('mfp-figure', 'mfp-figure mfp-with-anim'); 1886 this.st.mainClass = "mfp-zoom-out"; 1887 } 1888 } 1889 }, 1890 ajax: { 1891 type: 'ajax', 1892 removalDelay: 500, 1893 callbacks: { 1894 ajaxContentAdded: function (mfpResponse) { 1895 INSPIRO.slider.carouselAjax(); 1896 INSPIRO.elements.responsiveVideos(); 1897 INSPIRO.elements.buttons(); 1898 } 1899 } 1900 }, 1901 inline: { 1902 type: 'inline', 1903 removalDelay: 500, 1904 callbacks: { 1905 beforeOpen: function () { 1906 this.st.image.markup = this.st.image.markup.replace('mfp-figure', 'mfp-figure mfp-with-anim'); 1907 this.st.mainClass = "mfp-zoom-out"; 1908 } 1909 }, 1910 closeBtnInside: false, 1911 fixedContentPos: true, 1912 overflowY: 'scroll', 1913 } 1914 } 1915 //Initializing jQuery magnificPopup plugin and passing the options 1916 $lightbox.each(function () { 1917 var elem = $(this), 1918 elemType = elem.attr('data-lightbox'); 1919 switch (elemType) { 1920 case 'image': 1921 elem.magnificPopup(getType.image); 1922 break; 1923 case 'gallery': 1924 elem.magnificPopup(getType.gallery); 1925 break; 1926 case 'iframe': 1927 elem.magnificPopup(getType.iframe); 1928 break; 1929 case 'ajax': 1930 elem.magnificPopup(getType.ajax); 1931 break; 1932 case 'inline': 1933 elem.magnificPopup(getType.inline); 1934 break; 1935 } 1936 }); 1937 } 1938 }, 1939 yTPlayer: function () { 1940 var $ytPlayer = $('.youtube-background'); 1941 if ($ytPlayer.length > 0) { 1942 //Check if YTPlayer plugin is loaded 1943 if (typeof $.fn.YTPlayer === 'undefined') { 1944 INSPIRO.elements.notification("Warning", "jQuery YTPlayer plugin is missing, please add this code line <b> <script src="plugins/youtube-player/jquery.mb.YTPlayer.min.js"></script></b>, before <b><--Template functions--></b>", "danger", 10000) 1945 return true; 1946 } 1947 $ytPlayer.each(function () { 1948 var elem = $(this); 1949 //Plugin Options 1950 elem.options = { 1951 videoURL: elem.attr('data-youtube-url'), 1952 autoPlay: elem.data('youtube-autoplay') == false ? 0 : 1, 1953 mute: elem.data('youtube-mute') == false ? false : true, 1954 pauseOnScroll: elem.data('youtube-pauseOnScroll') == false ? false : true, 1955 loop: elem.data('youtube-loop') == false ? false : true, 1956 vol: elem.attr('data-youtube-volume') || 50,
1957 startAt: elem.attr('data-youtube-start') || 0, 1958 stopAt: elem.attr('data-youtube-stop') || 0, 1959 controls: elem.data('youtube-controls') == true ? 1 : 0, 1960 } 1961 var regExp = /^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/; 1962 var match = elem.options.videoURL.match(regExp); 1963 if (match && match[2].length == 11) { 1964 elem.options.videoURL = match[2]; 1965 } else { 1966 elem.options.videoURL = elem.options.videoURL; 1967 } 1968 elem.YTPlayer({ 1969 fitToBackground: true, 1970 videoId: elem.options.videoURL, 1971 repeat: elem.options.loop, 1972 playerVars: { 1973 start: elem.options.start, 1974 end: elem.options.end, 1975 autoplay: elem.options.autoPlay, 1976 modestbranding: elem.options.logo, 1977 controls: elem.options.controls, 1978 origin: window.location.origin, 1979 branding: 0, 1980 rel: 0, 1981 showinfo: 0, 1982 }, 1983 events: { 1984 'onReady': onPlayerReady, 1985 } 1986 }); 1987 1988 function onPlayerReady(event) { 1989 if (elem.options.vol) { 1990 event.target.setVolume(elem.options.vol); 1991 } 1992 if (elem.options.mute) { 1993 event.target.mute(); 1994 } 1995 if (elem.options.pauseOnScroll) { 1996 var waypoint = new Waypoint({ 1997 element: elem, 1998 handler: function (direction) { 1999 event.target.pauseVideo(); 2000 if (elem.options.autoPlay == true && direction == 'up') { 2001 event.target.playVideo(); 2002 } 2003 } 2004 }); 2005 } 2006 } 2007 }); 2008 } 2009 }, 2010 vimeoPlayer: function () { 2011 var $vmPlayer = $('.vimeo-background'); 2012 if ($vmPlayer.length > 0) { 2013 //Check if vimeo_player plugin is loaded 2014 if (typeof $.fn.vimeo_player === 'undefined') { 2015 INSPIRO.elements.notification("Warning", "jQuery vimeo_player plugin is missing, please add this code line <b> <script src="plugins/vimeo-player/jquery.mb.vimeo_player.min.js"></script></b>, before <b><--Template functions--></b>", "danger", 10000) 2016 return true; 2017 } 2018 $vmPlayer.each(function () { 2019 var elem = $(this), 2020 elemVideo = elem.attr('data-vimeo-url') || null, 2021 elemMute = elem.attr('data-vimeo-mute') || false, 2022 elemRatio = elem.attr('data-vimeo-ratio') || '16/9', 2023 elemQuality = elem.attr('data-vimeo-quality') || 'hd720', 2024 elemOpacity = elem.attr('data-vimeo-opacity') || 1, 2025 elemContainer = elem.attr('data-vimeo-container') || 'self', 2026 elemOptimize = elem.attr('data-vimeo-optimize') || true, 2027 elemLoop = elem.attr('data-vimeo-loop') || true, 2028 elemVolume = elem.attr('data-vimeo-volume') || 70, 2029 elemStart = elem.attr('data-vimeo-start') || 0, 2030 elemStop = elem.attr('data-vimeo-stop') || 0, 2031 elemAutoPlay = elem.attr('data-vimeo-autoplay') || true, 2032 elemFullScreen = elem.attr('data-vimeo-fullscreen') || true, 2033 elemControls = elem.attr('data-vimeo-controls') || false, 2034 elemLogo = elem.attr('data-vimeo-logo') || false, 2035 elemAutoPause = elem.attr('data-vimeo-autopause') || false; 2036 elem.vimeo_player({ 2037 videoURL: elemVideo, 2038 mute: elemMute, 2039 ratio: elemRatio, 2040 quality: elemQuality, 2041 opacity: elemOpacity, 2042 containment: elemContainer, 2043 optimizeDisplay: elemOptimize, 2044 loop: elemLoop, 2045 vol: elemVolume, 2046 startAt: elemStart, 2047 stopAt: elemStop, 2048 autoPlay: elemAutoPlay, 2049 realfullscreen: elemFullScreen, 2050 showvmLogo: elemLogo, 2051 showControls: elemControls 2052 }); 2053 }); 2054 } 2055 }, 2056 modal: function () { 2057 //Check if magnificPopup plugin is loaded 2058 if (typeof $.fn.magnificPopup === 'undefined') { 2059 INSPIRO.elements.notification("Warning", "jQuery magnificPopup plugin is missing in plugins.js file.", "danger") 2060 return true; 2061 } 2062 var $modal = $(".modal"), 2063 $modalStrip = $(".modal-strip"), 2064 $btnModal = $(".btn-modal"),
2065 modalShow = "modal-auto-open", 2066 modalShowClass = "modal-active", 2067 modalDecline = $(".modal-close"), 2068 cookieNotify = $(".cookie-notify"), 2069 cookieConfirm = cookieNotify.find(".modal-confirm, .mfp-close"); 2070 /*Modal*/ 2071 if ($modal.length > 0) { 2072 $modal.each(function () { 2073 var elem = $(this), 2074 elemDelay = elem.attr("data-delay") || 3000, 2075 elemCookieExpire = elem.attr("data-cookie-expire") || 365, 2076 elemCookieName = elem.attr("data-cookie-name") || "cookieModalName2020_3", 2077 elemCookieEnabled = elem.data("cookie-enabled") == true ? true : false, 2078 elemModalDismissDelay = elem.attr("data-delay-dismiss"); 2079 /*Modal Auto Show*/ 2080 if (elem.hasClass(modalShow)) { 2081 var modalElem = $(this); 2082 var timeout = setTimeout(function () { 2083 modalElem.addClass(modalShowClass); 2084 }, elemDelay); 2085 } 2086 /*Modal Dissmis Button*/ 2087 elem.find(modalDecline).click(function () { 2088 elem.removeClass(modalShowClass); 2089 return false; 2090 }); 2091 /*Modal Auto Show*/ 2092 if (elem.hasClass(modalShow)) { 2093 if (elemCookieEnabled != true) { 2094 /*Cookie Notify*/ 2095 var t = setTimeout(function () { 2096 $.magnificPopup.open({ 2097 items: { 2098 src: elem 2099 }, 2100 type: 'inline', 2101 closeBtnInside: true, 2102 callbacks: { 2103 beforeOpen: function () { 2104 this.st.image.markup = this.st.image.markup.replace('mfp-figure', 'mfp-figure mfp-with-anim'); 2105 this.st.mainClass = "mfp-zoom-out"; 2106 }, 2107 open: function () { 2108 if (elem.find("video").length > 0) { 2109 elem.find("video").get(0).play(); 2110 } 2111 }, 2112 } 2113 }, 0); 2114 }, elemDelay); 2115 } else { 2116 if (typeof Cookies.get(elemCookieName) == 'undefined') { 2117 /*Cookie Notify*/ 2118 var t = setTimeout(function () { 2119 $.magnificPopup.open({ 2120 items: { 2121 src: elem 2122 }, 2123 type: 'inline', 2124 closeBtnInside: true, 2125 callbacks: { 2126 beforeOpen: function () { 2127 this.st.image.markup = this.st.image.markup.replace('mfp-figure', 'mfp-figure mfp-with-anim'); 2128 this.st.mainClass = "mfp-zoom-out"; 2129 }, 2130 open: function () { 2131 if (elem.find("video").length > 0) { 2132 elem.find("video").get(0).play(); 2133 } 2134 }, 2135 close: function () { 2136 Cookies.set(elemCookieName, true, { 2137 expires: Number(elemCookieExpire) 2138 }); 2139 } 2140 } 2141 }, 0); 2142 }, elemDelay); 2143 } 2144 } 2145 } 2146 /*Modal Dissmis Button*/ 2147 elem.find(modalDecline).click(function () { 2148 $.magnificPopup.close(); 2149 return false;
2150 }); 2151 2152 if(elemModalDismissDelay) { 2153 2154 } 2155 }); 2156 } 2157 /*Modal Strip*/ 2158 if ($modalStrip.length > 0) { 2159 $modalStrip.each(function () { 2160 var elem = $(this), 2161 elemDelay = elem.attr("data-delay") || 3000, 2162 elemCookieExpire = elem.attr("data-cookie-expire") || 365, 2163 elemCookieName = elem.attr("data-cookie-name") || "cookieName2013", 2164 elemCookieEnabled = elem.data("cookie-enabled") == true ? true : false, 2165 elemModalDismissDelay = elem.attr("data-delay-dismiss"); 2166 /*Modal Auto Show*/ 2167 if (elem.hasClass(modalShow)) { 2168 var modalElem = $(this); 2169 var timeout = setTimeout(function () { 2170 modalElem.addClass(modalShowClass); 2171 if(elemModalDismissDelay) { 2172 var t = setTimeout(function () { 2173 elem.removeClass(modalShowClass); 2174 }, elemModalDismissDelay); 2175 } 2176 2177 }, elemDelay); 2178 } 2179 /*Modal Dissmis Button*/ 2180 elem.find(modalDecline).click(function () { 2181 elem.removeClass(modalShowClass); 2182 return false; 2183 }); 2184 /*Cookie Notify*/ 2185 if (elem.hasClass("cookie-notify")) { 2186 var timeout = setTimeout(function () { 2187 if (elemCookieEnabled != true) { 2188 cookieNotify.addClass(modalShowClass); 2189 } else { 2190 if (typeof Cookies.get(elemCookieName) == 'undefined') { 2191 cookieNotify.addClass(modalShowClass); 2192 } 2193 } 2194 }, elemDelay); 2195 cookieConfirm.click(function () { 2196 Cookies.set(elemCookieName, true, { 2197 expires: Number(elemCookieExpire) 2198 }); 2199 $.magnificPopup.close(); 2200 cookieNotify.removeClass(modalShowClass); 2201 return false; 2202 }); 2203 } 2204 }); 2205 } 2206 2207 /*Modal toggles*/ 2208 if ($btnModal.length > 0) { 2209 $btnModal.each(function () { 2210 var elem = $(this), 2211 modalTarget = elem.attr("data-modal"); 2212 elem.click(function () { 2213 $(modalTarget).toggleClass(modalShowClass, 1000); 2214 return false; 2215 }); 2216 }); 2217 } 2218 }, 2219 notification: function ($title, $message, $type, $element, $delay, $placement, $animateEnter, $animateExit) { 2220 2221 var $element, 2222 $elementContainer, 2223 $animateEnter = $animateEnter || "fadeInDown", 2224 $animateExit = $animateExit || "fadeOutDown", 2225 $placement; 2226 if($placement) { 2227 $placement = $placement; 2228 }else { 2229 $placement = "top"; 2230 } 2231 2232 if ($element) { 2233 $elementContainer = "element-container"; 2234 $animateEnter = "fadeIn", 2235 $animateExit = "fadeOut"; 2236 } else { 2237 2238 $elementContainer = "col-11 col-lg-3"; 2239 } 2240 2241 if (!$message) { 2242 $message = ""; 2243 } 2244 2245 $element = 'body'; 2246 2247 $.notify({ 2248 title: $title, 2249 message: $message 2250 }, { 2251 element: $element, 2252 type: $type || 'warning', 2253 delay: $delay || 10000, 2254 template: '<div data-notify="container" class="bootstrap-notify ' + $elementContainer + ' alert alert-{0}" role="alert">
2254' + 2255 '<button type="button" aria-hidden="true" class="close" data-notify="dismiss">Ã</button>' + 2256 '<span data-notify="icon"></span> ' + 2257 '<span data-notify="title">{1}</span> ' + 2258 '<span data-notify="message">{2}</span>' + 2259 '</div>', 2260 mouse_over: true, 2261 allow_dismiss: true, 2262 placement: { 2263 from: $placement 2264 }, 2265 animate: { 2266 enter: 'animated ' + $animateEnter, 2267 exit: 'animated ' + $animateExit 2268 } 2269 }); 2270 }, 2271 sidebarFixed: function () { 2272 if(INSPIRO.core.rtlStatus()) { 2273 return true; 2274 } 2275 var $sidebarFixed = $('.sticky-sidebar'); 2276 if ($sidebarFixed.length > 0) { 2277 //Check if theiaStickySidebar plugin is loaded 2278 if (typeof $.fn.theiaStickySidebar === 'undefined') { 2279 INSPIRO.elements.notification("Warning", "jQuery theiaStickySidebar plugin is missing in plugins.js file.", "danger") 2280 return true; 2281 } 2282 $sidebarFixed.each(function () { 2283 var elem = $(this); 2284 elem.options = { 2285 additionalMarginTop: elem.attr('data-margin-top') || 120, 2286 additionalMarginBottom: elem.attr('data-margin-bottom') || 50 2287 } 2288 //Initialize theiaStickySidebar plugin and passing the options 2289 elem.theiaStickySidebar({ 2290 additionalMarginTop: Number(elem.options.additionalMarginTop), 2291 additionalMarginBottom: Number(elem.options.additionalMarginBottom), 2292 disableOnResponsiveLayouts: true 2293 }); 2294 }); 2295 } 2296 }, 2297 bootstrapSwitch: function () { 2298 var $bootstrapSwitch = $('[data-switch=true]'); 2299 if ($bootstrapSwitch.length > 0) { 2300 //Check if bootstrapSwitch plugin is loaded 2301 if (typeof $.fn.bootstrapSwitch === 'undefined') { 2302 INSPIRO.elements.notification("Warning", "jQuery bootstrapSwitch plugin is missing in plugins.js file.", "danger") 2303 return true; 2304 } 2305 //Initialize jQuery BootstrapSwitch plugin 2306 $bootstrapSwitch.bootstrapSwitch(); 2307 } 2308 }, 2309 clipboard: function () { 2310 var $clipboardTarget = $('[data-clipboard-target]'), 2311 $clipboardText = $('[data-clipboard-text]'); 2312 if ($clipboardTarget.length > 0) { 2313 //Check if ClipboardJS plugin is loaded 2314 if (typeof ClipboardJS === 'undefined') { 2315 INSPIRO.elements.notification("Warning", "jQuery ClipboardJS plugin is missing in plugins.js file.", "danger") 2316 return true; 2317 } 2318 if ($clipboardTarget) { 2319 new ClipboardJS('[data-clipboard-target]'); 2320 clipboardInit($clipboardTarget); 2321 } 2322 if ($clipboardText) { 2323 new ClipboardJS('[data-clipboard-text]'); 2324 clipboardInit($clipboardText); 2325 } 2326 2327 function clipboardInit(clipboardType) { 2328 clipboardType.each(function () { 2329 var elem = $(this), 2330 title = elem.attr('data-original-title') || "Copy to clipboard", 2331 titleSuccess = elem.attr('data-original-title-success') || "Copied!"; 2332 elem.tooltip({ 2333 placement: 'top', 2334 title: title 2335 }); 2336 elem.on('click', function () { 2337 elem.attr('data-original-title', titleSuccess).tooltip('show'); 2338 }).on('mouseleave', function () { 2339 elem.tooltip('hide').attr('data-original-title', title); 2340 return false;
2341 }); 2342 }); 2343 } 2344 } 2345 }, 2346 countdown: function () { 2347 var $countdown = $(".p-countdown"); 2348 if ($countdown.length > 0) { 2349 $countdown.each(function () { 2350 var $elem = $(this), 2351 $elemCount = $elem.find(".p-countdown-count"), 2352 $elemShow = $elem.find(".p-countdown-show"), 2353 $elemSeconds = $elem.attr("data-delay") || 5; 2354 $elemCount.find('.count-number').html($elemSeconds); 2355 new Waypoint({ 2356 element: $elem, 2357 handler: function () { 2358 var interval = setInterval(function () { 2359 $elemSeconds--; 2360 if ($elemSeconds == 0) { 2361 clearInterval(interval); 2362 $elemCount.fadeOut("slow"); 2363 setTimeout(function () { 2364 $elemShow.fadeIn('show'); 2365 }, 1000); 2366 } else { 2367 $elemCount.find('.count-number').html($elemSeconds); 2368 } 2369 }, 1000); 2370 this.destroy(); 2371 }, 2372 offset: '100%' 2373 }); 2374 }); 2375 } 2376 }, 2377 videoBackground: function () { 2378 var $videoBackground = $('[data-bg-video], [data-vide-bg]'); 2379 if ($videoBackground.length > 0) { 2380 $videoBackground.each(function () { 2381 var elem = $(this); 2382 elem.options = { 2383 autoplay: elem.attr("data-video-autoplay") || true, 2384 controls: elem.attr("data-video-controls"), 2385 loop: elem.attr("data-video-loop") || true, 2386 muted: elem.attr("data-video-muted") || true, 2387 poster: elem.attr('data-video-poster') || "", 2388 preload: elem.attr('data-video-preload') || "auto", 2389 src: elem.attr('data-bg-video'), 2390 randomId: Math.random().toString(36).substr(2, 5) 2391 }; 2392 if (elem.options.controls) { 2393 elem.options.controls = ' controls="' + elem.options.controls + '" '; 2394 } else { 2395 elem.options.controls = ""; 2396 } 2397 elem.prepend('<div class="html5vid" id="video-' + elem.options.randomId + '">' + 2398 '<video playsinline ' + elem.options.controls + ' loop="' + elem.options.loop + '" muted="' + elem.options.muted + '" poster="' + elem.options.poster + '" preload="' + elem.options.preload + '">' + 2399 '<source src="' + elem.options.src + '" type="video/mp4">' + 2400 '</video>' + 2401 '</div>'); 2402 if (elem.options.autoplay) { 2403 setTimeout(function () { 2404 $("#video-" + elem.options.randomId).find("video").get(0).play(); 2405 }, 100); 2406 } 2407 setTimeout(function () { 2408 $("#video-" + elem.options.randomId).addClass("video-loaded"); 2409 }, 300); 2410 }); 2411 } 2412 } 2413 }; 2414 INSPIRO.widgets = { 2415 functions: function () { 2416 INSPIRO.widgets.twitter(); 2417 INSPIRO.widgets.flickr(); 2418 INSPIRO.widgets.instagram(); 2419 INSPIRO.widgets.instagramComplete(); 2420 INSPIRO.widgets.subscribeForm(); 2421 }, 2422 twitter: function () { 2423 var $widget_twitter = $('.widget-tweeter') || $('.widget-twitter'); 2424 if ($widget_twitter.length > 0) { 2425 //Check if twittie plugin is loaded 2426 if (typeof $.fn.twittie === 'undefined') { 2427 INSPIRO.elements.notification("Warning", "jQuery twittie plugin is missing in plugins.js file.", "danger") 2428 return true; 2429 } 2430 var t = setTimeout(function () { 2431 $widget_twitter.each(function () { 2432 var $elem = $(this), 2433 twitterUsername = $elem.attr('data-username') || "ardianmusliu", 2434 twitterLimit = $elem.attr('data-limit') || 2, 2435 twitterDateFormat = $elem.attr('data-format') || '%b/%d/%Y', 2436 twitterLoadingText = $elem.attr('data-loading-text') || 'Loading...', 2437 twitterApiPAth = $elem.attr('data-loader') || "include/twitter/tweet.php", 2438 twitterAvatar = $elem.attr('data-avatar') || false; 2439 if (twitterAvatar == 'true') { 2440 twitterAvatar = "{{avatar}}"; 2441 } else { 2442 twitterAvatar = ""; 2443 }
2444 $elem.append('<div id="twitter-cnt"></div>') 2445 $elem.find('#twitter-cnt').twittie({ 2446 'username': twitterUsername, 2447 'count': twitterLimit, 2448 'dateFormat': twitterDateFormat, 2449 'template': twitterAvatar + '{{tweet}}<small>{{date}}</small>', 2450 'apiPath': twitterApiPAth, 2451 'loadingText': twitterLoadingText 2452 }); 2453 if ($elem.closest('.grid-item').length) { 2454 INSPIRO.elements.gridLayoutRefresh(); 2455 } 2456 }); 2457 }, 2000); 2458 } 2459 }, 2460 flickr: function () { 2461 var $flickr_widget = $('.flickr-widget'); 2462 if ($flickr_widget.length > 0) { 2463 //Check if jflickrfeed plugin is loaded 2464 if (typeof $.fn.jflickrfeed === 'undefined') { 2465 INSPIRO.elements.notification("Warning", "jQuery jflickrfeed plugin is missing in plugins.js file.", "danger") 2466 return true; 2467 } 2468 $flickr_widget.each(function () { 2469 var elem = $(this); 2470 elem.options = { 2471 id: elem.attr('data-flickr-id') || "52617155@N08", 2472 limit: elem.attr('data-flickr-images') || "9", 2473 itemTemplate: '<a href="{{image}}" title="{{title}}"><img src="{{image_s}}" alt="{{title}}" /></a>' 2474 } 2475 //Initializing jflickrfeed plugin and passing the options 2476 $flickr_widget.jflickrfeed({ 2477 limit: elem.options.limit, 2478 qstrings: { 2479 id: elem.options.id 2480 }, 2481 itemTemplate: elem.options.itemTemplate 2482 }, function () { 2483 var t = setTimeout(function () { 2484 elem.addClass('flickr-widget-loaded'); 2485 }, 1000); 2486 elem.magnificPopup({ 2487 delegate: 'a', 2488 type: 'image', 2489 gallery: { 2490 enabled: true 2491 } 2492 }); 2493 }); 2494 }); 2495 } 2496 }, 2497 instagram: function () { 2498 var $widget_instagram = $('.widget-instagram'); 2499 if ($widget_instagram.length > 0) { 2500 //Check if spectragram plugin is loaded 2501 if (typeof $.fn.spectragram === 'undefined') { 2502 INSPIRO.elements.notification("Warning", "jQuery spectragram plugin is missing in plugins.js file.", "danger") 2503 return true; 2504 } 2505 $widget_instagram.each(function () { 2506 var elem = $(this), 2507 instagramLimit = elem.attr('data-limit') || 12, 2508 instagramColumns = elem.attr('data-col') || 3, 2509 instagramAccessToken = elem.attr('data-token') || '5783726529.226c7d2.68a168eec1264759b9f91c1fc2c6ce56', 2510 instagramItems = "#instagram-cnt", 2511 instagramSize = elem.attr('data-size') || 'small', //The size of the photos. 'small', 'medium' or 'big'. Default: 'medium' 2512 instagramGridColumns = "grid-" + instagramColumns; 2513 elem.append('<div id="instagram-cnt" class="' + instagramGridColumns + '"></div>'); 2514 jQuery.fn.spectragram.accessData = { 2515 accessToken: instagramAccessToken 2516 }; 2517 elem.find($(instagramItems)).spectragram('getUserFeed', { 2518 size: instagramSize, 2519 max: instagramLimit, 2520 wrapEachWith: '', 2521 complete: spectragramComplete 2522 }); 2523 var t = setTimeout(function () { 2524 elem.addClass('widget-instagram-loaded'); 2525 }, 300); 2526 var spectragramComplete = function () { 2527 if ($gridLayout) { 2528 var t = setTimeout(function () { 2529 INSPIRO.elements.gridLayoutRefresh(); 2530 }, 300); 2531 } 2532 }; 2533 }); 2534 } 2535 }, 2536 instagramComplete: function () { 2537 if ($gridLayout) { 2538 var t = setTimeout(function () { 2539 INSPIRO.elements.gridLayoutRefresh(); 2540 }, 300); 2541 } 2542 }, 2543 subscribeForm: function () { 2544 var $subscribeForm = $(".widget-subscribe-form"); 2545 if ($subscribeForm.length > 0) { 2546 $subscribeForm.each(function () { 2547 var elem = $(this), 2548 elemSuccessMessage = elem.attr('success-message') || "You have successfully subscribed to our mailing list."; 2549 var addonIcon = elem.find('#widget-subscribe-submit-button'), 2550 addonIconText = addonIcon.html(); 2551 elem.submit(function (event) { 2552 event.preventDefault(); 2553 var post_url = $(this).attr("action"); 2554 var request_method = $(this).attr("method"); 2555 var form_data = $(this).serialize(); 2556 if (elem[0].checkValidity() === false) { 2557 event.stopPropagation(); 2558 elem.addClass('was-validated'); 2559 } else { 2560 $(elem).removeClass("was-validated"); 2561 addonIcon.html('<i class="icon-loader fa-spin"></i>'); 2562 $.ajax({ 2563 url: post_url, 2564 type: request_method, 2565 data: form_data, 2566 dataType: 'json', 2567 success: function (text) { 2568 if (text.response == 'success') { 2569 $.notify({ 2570 message: elemSuccessMessage 2571 }, { 2572 type: 'success' 2573 }); 2574 $(elem)[0].reset(); 2575 $(elem).removeClass("was-validated"); 2576 addonIcon.html(addonIconText); 2577 } else { 2578 $.notify({ 2579 message: text.message 2580 }, { 2581 type: 'warning' 2582 }); 2583 $(elem)[0].reset(); 2584 $(elem).removeClass("was-validated"); 2585 addonIcon.html(addonIconText); 2586 } 2587 }, 2588 done: function () { 2589 addonIcon.html(addonIconText); 2590 } 2591 }); 2592 } 2593 }); 2594 }); 2595 } 2596 } 2597 }; 2598 //Load Functions on document ready 2599 $(document).ready(function () { 2600 INSPIRO.core.functions(); 2601 INSPIRO.header.functions(); 2602 INSPIRO.slider.functions(); 2603 INSPIRO.widgets.functions(); 2604 INSPIRO.elements.functions(); 2605 }); 2606 //Recall Functions on window scroll 2607 $window.on('scroll', function () { 2608 INSPIRO.header.stickyHeader(); 2609 INSPIRO.core.scrollTop(); 2610 INSPIRO.header.dotsMenu(); 2611 }); 2612 //Recall Functions on window resize 2613 $window.on('resize', function () { 2614 INSPIRO.header.logoStatus(); 2615 INSPIRO.header.stickyHeader(); 2616 2617 }); 2618})(jQuery);
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.