1/* 2 3Polo - Multipurpose HTML5 Template 4Version: 5.9.9 5Website: https://inspirothemes.com/themes/polo 6License: https://inspirothemes.com/themes/polo/license.html 7Inspiro Themes (https://inspirothemes.com) 8Author: INSPIRO - Ardian Berisha 9Copyright 2021 10 11*/ 12 13//INSPIRO Global var 14var INSPIRO = {}, 15 $ = jQuery.noConflict(); 16(function($) { 17 "use strict"; 18 // Predefined Global Variables 19 var $window = $(window), 20 $theme_color = "#2250fc", 21 //Main 22 $body = $("body"), 23 $bodyInner = $(".body-inner"), 24 $section = $("section"), 25 //Header 26 $topbar = $("#topbar"), 27 $header = $("#header"), 28 $headerCurrentClasses = $header.attr("class"), 29 //Logo 30 headerLogo = $("#logo"), 31 //Menu 32 $mainMenu = $("#mainMenu"), 33 $mainMenuTriggerBtn = $("#mainMenu-trigger a, #mainMenu-trigger button"), 34 //Slider 35 $slider = $("#slider"), 36 $inspiroSlider = $(".inspiro-slider"), 37 $carousel = $(".carousel"), 38 /*Grid Layout*/ 39 $gridLayout = $(".grid-layout"), 40 $gridFilter = $(".grid-filter, .page-grid-filter"), 41 windowWidth = $window.width(); 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 ( 51 navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/) 52 ) { 53 return true; 54 } else { 55 return false; 56 } 57 }, 58 }, 59 }; 60 //Settings 61 var Settings = { 62 isMobile: Events.browser.isMobile, 63 submenuLight: $header.hasClass("submenu-light") == true ? true : false, 64 headerHasDarkClass: $header.hasClass("dark") == true ? true : false, 65 headerDarkClassRemoved: false, 66 sliderDarkClass: false, 67 menuIsOpen: false, 68 menuOverlayOpened: false, 69 }; 70 //Window breakpoints 71 $(window).breakpoints({ 72 triggerOnInit: true, 73 breakpoints: [{ 74 name: "xs", 75 width: 0, 76 }, 77 { 78 name: "sm", 79 width: 576, 80 }, 81 { 82 name: "md", 83 width: 768, 84 }, 85 { 86 name: "lg", 87 width: 1025, 88 }, 89 { 90 name: "xl", 91 width: 1200, 92 }, 93 ], 94 }); 95 var currentBreakpoint = $(window).breakpoints("getBreakpoint"); 96 $body.addClass("breakpoint-" + currentBreakpoint); 97 $(window).bind("breakpoint-change", function(breakpoint) { 98 $body.removeClass("breakpoint-" + breakpoint.from); 99 $body.addClass("breakpoint-" + breakpoint.to); 100 }); 101 102 $(window).bind("breakpoint-change", function(event) { 103 $(window).breakpoints("greaterEqualTo", "lg", function() { 104 $body.addClass("b--desktop"); 105 $body.removeClass("b--responsive"); 106 }); 107 $(window).breakpoints("lessThan", "lg", function() { 108 $body.removeClass("b--desktop"); 109 $body.addClass("b--responsive"); 110 }); 111 }); 112 113 INSPIRO.core = { 114 functions: function() { 115 INSPIRO.core.scrollTop(); 116 INSPIRO.core.rtlStatus(); 117 INSPIRO.core.equalize(); 118 INSPIRO.core.customHeight(); 119 INSPIRO.core.darkTheme(); 120 }, 121 scrollTop: function() { 122 var $scrollTop = $("#scrollTop"); 123 if ($scrollTop.length > 0) { 124 var scrollOffset = $body.attr("data-offset") || 400; 125 if ($window.scrollTop() > scrollOffset) { 126 if ($body.hasClass("frame")) { 127 $scrollTop.css({ 128 bottom: "46px", 129 opacity: 1, 130 "z-index": 199, 131 }); 132 } else { 133 $scrollTop.css({ 134 bottom: "26px", 135 opacity: 1, 136 "z-index": 199, 137 }); 138 } 139 } else { 140 $scrollTop.css({ 141 bottom: "16px", 142 opacity: 0, 143 }); 144 } 145 $scrollTop.off("click").on("click", function() { 146 $("body,html").stop(true).animate({ 147 scrollTop: 0, 148 }, 149 1000, 150 "easeInOutExpo" 151 ); 152 return false; 153 }); 154 } 155 }, 156 rtlStatus: function() { 157 var $rtlStatusCheck = $("html").attr("dir"); 158 if ($rtlStatusCheck == "rtl") { 159 return true; 160 } 161 return false; 162 }, 163 equalize: function() { 164 var $equalize = $(".equalize"); 165 if ($equalize.length > 0) { 166 $equalize.each(function() { 167 var elem = $(this), 168 selectorItem = 169 elem.find(elem.attr("data-equalize-item")) || "> div", 170 maxHeight = 0; 171 selectorItem.each(function() { 172 if ($(this).outerHeight(true) > maxHeight) { 173 maxHeight = $(this).outerHeight(true); 174 } 175 }); 176 selectorItem.height(maxHeight); 177 }); 178 } 179 }, 180 customHeight: function(setHeight) { 181 var $customHeight = $(".custom-height"); 182 if ($customHeight.length > 0) { 183 $customHeight.each(function() { 184 var elem = $(this), 185 elemHeight = elem.attr("data-height") || 400, 186 elemHeightLg = elem.attr("data-height-lg") || elemHeight, 187 elemHeightMd = elem.attr("data-height-md") || elemHeightLg, 188 elemHeightSm = elem.attr("data-height-sm") || elemHeightMd, 189 elemHeightXs = elem.attr("data-height-xs") || elemHeightSm; 190 191 function customHeightBreakpoint(setHeight) { 192 if (setHeight) { 193 elem = setHeight; 194 } 195 switch ($(window).breakpoints("getBreakp
195oint")) { 196 case "xs": 197 elem.height(elemHeightXs); 198 break; 199 case "sm": 200 elem.height(elemHeightSm); 201 break; 202 case "md": 203 elem.height(elemHeightMd); 204 break; 205 case "lg": 206 elem.height(elemHeightLg); 207 break; 208 case "xl": 209 elem.height(elemHeight); 210 break; 211 } 212 } 213 customHeightBreakpoint(setHeight); 214 $(window).resize(function() { 215 setTimeout(function() { 216 customHeightBreakpoint(setHeight); 217 }, 100); 218 }); 219 }); 220 } 221 }, 222 darkTheme: function() { 223 var $darkElement = $("[data-dark-src]"), 224 $lightBtnTrigger = $("#light-mode"), 225 $darkBtnTrigger = $("#dark-mode"), 226 darkColorScheme = "darkColorScheme", 227 defaultDark = $body.hasClass("dark"); 228 229 if (typeof Cookies.get(darkColorScheme) !== "undefined") { 230 // $body.addClass("dark"); 231 } 232 233 $darkBtnTrigger.on("click", function(e) { 234 darkElemSrc(); 235 $body.addClass("dark"); 236 INSPIRO.elements.shapeDivider(); 237 Cookies.set(darkColorScheme, true, { 238 expires: Number(365), 239 }); 240 }); 241 242 $lightBtnTrigger.on("click", function(e) { 243 lightElemSrc(); 244 $body.removeClass("dark"); 245 INSPIRO.elements.shapeDivider(); 246 Cookies.remove(darkColorScheme); 247 }); 248 249 if ($body.hasClass("dark")) { 250 darkElemSrc(); 251 } 252 253 function darkElemSrc() { 254 $darkElement.each(function() { 255 var elem = $(this), 256 elemOriginalSrc = elem.attr("src"), 257 elemDarkSrc = elem.attr("data-dark-src"); 258 259 if (elemDarkSrc) { 260 elem.attr("data-original-src", elemOriginalSrc); 261 elem.attr("src", elemDarkSrc); 262 } 263 }); 264 } 265 266 function lightElemSrc() { 267 $darkElement.each(function() { 268 var elem = $(this), 269 elemLightSrc = elem.attr("data-original-src"); 270 271 if (elemLightSrc) { 272 elem.attr("src", elemLightSrc); 273 } 274 }); 275 } 276 }, 277 }; 278 INSPIRO.header = { 279 functions: function() { 280 INSPIRO.header.logoStatus(); 281 INSPIRO.header.stickyHeader(); 282 INSPIRO.header.topBar(); 283 INSPIRO.header.search(); 284 INSPIRO.header.mainMenu(); 285 INSPIRO.header.mainMenuResponsiveShow(); 286 INSPIRO.header.mainMenuOverlay(); 287 INSPIRO.header.pageMenu(); 288 INSPIRO.header.sidebarOverlay(); 289 INSPIRO.header.dotsMenu(); 290 INSPIRO.header.onepageMenu(); 291 }, 292 logoStatus: function(status) { 293 var headerLogoDefault = headerLogo.find($(".logo-default")), 294 headerLogoDark = headerLogo.find($(".logo-dark")), 295 headerLogoFixed = headerLogo.find(".logo-fixed"), 296 headerLogoResponsive = headerLogo.find(".logo-responsive"); 297 298 if ($header.hasClass("header-sticky") && headerLogoFixed.length > 0) { 299 headerLogoDefault.css("display", "none"); 300 headerLogoDark.css("display", "none"); 301 headerLogoResponsive.css("display", "none"); 302 headerLogoFixed.css("display", "block"); 303 } else { 304 headerLogoDefault.removeAttr("style"); 305 headerLogoDark.removeAttr("style"); 306 headerLogoResponsive.removeAttr("style"); 307 headerLogoFixed.removeAttr("style"); 308 } 309 $(window).breakpoints("lessThan", "lg", function() { 310 if (headerLogoResponsive.length > 0) { 311 headerLogoDefault.css("display", "none"); 312 headerLogoDark.css("display", "none"); 313 headerLogoFixed.css("display", "none"); 314 headerLogoResponsive.css("display", "block"); 315 } 316 }); 317 }, 318 stickyHeader: function() { 319 var shrinkHeader = $header.attr("data-shrink") || 0, 320 shrinkHeaderActive = $header.attr("data-sticky-active") || 200, 321 scrollOnTop = $window.scrollTop(); 322 if ($header.hasClass("header-modern")) { 323 shrinkHeader = 300; 324 } 325 326 $(window).breakpoints("greaterEqualTo", "lg", function() { 327 if (!$header.is(".header-disable-fixed")) { 328 if (scrollOnTop > $headerOffsetTop + shrinkHeader) { 329 $header.addClass("header-sticky"); 330 if (scrollOnTop > $headerOffsetTop + shrinkHeaderActive) { 331 $header.addClass("sticky-active"); 332 if (Settings.submenuLight && Settings.headerHasDarkClass) { 333 $header.removeClass("dark");
334 Settings.headerDarkClassRemoved = true; 335 } 336 INSPIRO.header.logoStatus(); 337 } 338 } else { 339 $header.removeClass().addClass($headerCurrentClasses); 340 if (Settings.sliderDarkClass && Settings.headerHasDarkClass) { 341 $header.removeClass("dark"); 342 Settings.headerDarkClassRemoved = true; 343 } 344 INSPIRO.header.logoStatus(); 345 } 346 } 347 }); 348 $(window).breakpoints("lessThan", "lg", function() { 349 if ($header.attr("data-responsive-fixed") == "true") { 350 if (scrollOnTop > $headerOffsetTop + shrinkHeader) { 351 $header.addClass("header-sticky"); 352 if (scrollOnTop > $headerOffsetTop + shrinkHeaderActive) { 353 $header.addClass("sticky-active"); 354 if (Settings.submenuLight) { 355 $header.removeClass("dark"); 356 Settings.headerDarkClassRemoved = true; 357 } 358 INSPIRO.header.logoStatus(); 359 } 360 } else { 361 $header.removeClass().addClass($headerCurrentClasses); 362 if ( 363 Settings.headerDarkClassRemoved == true && 364 $body.hasClass("mainMenu-open") 365 ) { 366 $header.removeClass("dark"); 367 } 368 INSPIRO.header.logoStatus(); 369 } 370 } 371 }); 372 }, 373 //chkd 374 topBar: function() { 375 if ($topbar.length > 0) { 376 $("#topbar .topbar-dropdown .topbar-form").each(function( 377 index, 378 element 379 ) { 380 if ( 381 $window.width() - ($(element).width() + $(element).offset().left) < 382 0 383 ) { 384 $(element).addClass("dropdown-invert"); 385 } 386 }); 387 } 388 }, 389 search: function() { 390 var $search = $("#search"); 391 if ($search.length > 0) { 392 var searchBtn = $("#btn-search"), 393 searchBtnClose = $("#btn-search-close"), 394 searchInput = $search.find(".form-control"); 395 396 function openSearch() { 397 $body.addClass("search-open"); 398 searchInput.focus(); 399 } 400 401 function closeSearch() { 402 $body.removeClass("search-open"); 403 searchInput.value = ""; 404 } 405 searchBtn.on("click", function() { 406 openSearch(); 407 return false; 408 }); 409 searchBtnClose.on("click", function() { 410 closeSearch(); 411 return false; 412 }); 413 document.addEventListener("keyup", function(ev) { 414 if (ev.keyCode == 27) { 415 closeSearch(); 416 } 417 }); 418 } 419 }, 420 mainMenu: function() { 421 if ($mainMenu.length > 0) { 422 $mainMenu 423 .find(".dropdown, .dropdown-submenu") 424 .prepend('<span class="dropdown-arrow"></span>'); 425 426 var $menuItemLinks = $( 427 '#mainMenu nav > ul > li.dropdown > a[href="#"], #mainMenu nav > ul > li.dropdown > .dropdown-arrow, .dropdown-submenu > a[href="#"], .dropdown-submenu > .dropdown-arrow, .dropdown-submenu > span, .page-menu nav > ul > li.dropdown > a' 428 ), 429 $triggerButton = $("#mainMenu-trigger a, #mainMenu-trigger button"), 430 processing = false, 431 triggerEvent; 432 433 $triggerButton.on("click", function(e) { 434 var elem = $(this); 435 e.preventDefault(); 436 $(window).breakpoints("lessThan", "lg", function() { 437 var openMenu = function() { 438 if (!processing) { 439 processing = true; 440 Settings.menuIsOpen = true; 441 if (Settings.submenuLight && Settings.headerHasDarkClass) { 442 $header.removeClass("dark");
443 Settings.headerDarkClassRemoved = true; 444 } else { 445 if ( 446 Settings.headerHasDarkClass && 447 Settings.headerDarkClassRemoved 448 ) { 449 $header.addClass("dark"); 450 } 451 } 452 elem.addClass("toggle-active"); 453 $body.addClass("mainMenu-open"); 454 INSPIRO.header.logoStatus(); 455 $mainMenu.animate({ 456 "min-height": $window.height(), 457 }, { 458 duration: 500, 459 easing: "easeInOutQuart", 460 start: function() { 461 setTimeout(function() { 462 $mainMenu.addClass("menu-animate"); 463 }, 300); 464 }, 465 complete: function() { 466 processing = false; 467 }, 468 }); 469 } 470 }; 471 var closeMenu = function() { 472 if (!processing) { 473 processing = true; 474 Settings.menuIsOpen = false; 475 INSPIRO.header.logoStatus(); 476 $mainMenu.animate({ 477 "min-height": 0, 478 }, { 479 start: function() { 480 $mainMenu.removeClass("menu-animate"); 481 }, 482 done: function() { 483 $body.removeClass("mainMenu-open"); 484 elem.removeClass("toggle-active"); 485 if ( 486 Settings.submenuLight && 487 Settings.headerHasDarkClass && 488 Settings.headerDarkClassRemoved && 489 !$header.hasClass("header-sticky") 490 ) { 491 $header.addClass("dark"); 492 } 493 if ( 494 Settings.sliderDarkClass && 495 Settings.headerHasDarkClass && 496 Settings.headerDarkClassRemoved 497 ) { 498 $header.removeClass("dark"); 499 Settings.headerDarkClassRemoved = true; 500 } 501 }, 502 duration: 500, 503 easing: "easeInOutQuart", 504 complete: function() { 505 processing = false; 506 }, 507 }); 508 } 509 }; 510 if (!Settings.menuIsOpen) { 511 triggerEvent = openMenu(); 512 } else { 513 triggerEvent = closeMenu(); 514 } 515 }); 516 }); 517 518 $menuItemLinks.on("click", function(e) { 519 $(this).parent("li").siblings().removeClass("hover-active"); 520 if ( 521 $body.hasClass("b--responsive") || 522 $mainMenu.hasClass("menu-onclick") 523 ) { 524 $(this).parent("li").toggleClass("hover-active"); 525 } 526 e.stopPropagation(); 527 e.preventDefault(); 528 }); 529 530 $body.on("click", function(e) { 531 $mainMenu.find(".hover-active").removeClass("hover-active"); 532 }); 533 534 $(window).on("resize", function() { 535 if ($body.hasClass("mainMenu-open")) { 536 if (Settings.menuIsOpen) { 537 $mainMenuTriggerBtn.trigger("click"); 538 $mainMenu.find(".hover-active").removeClass("hover-active"); 539 } 540 } 541 }); 542 543 /*invert menu fix*/ 544 $(window).breakpoints("greaterEqualTo", "lg", function() { 545 var $menuLastItem = $("nav > ul > li:last-child"), 546 $menuLastItemUl = $("nav > ul > li:last-child > ul"), 547 $menuLastInvert = $menuLastItemUl.width() - $menuLastItem.width(), 548 $menuItems = $("nav > ul > li").find(".dropdown-menu"); 549 550 $menuItems.css("display", "block"); 551 552 $(".dropdown:not(.mega-menu-item) ul ul").each(function( 553 index, 554 element 555 ) { 556 if ( 557 $window.width() - 558 ($(element).width() + $(element).offset().left) < 559 0 560 ) { 561 $(element).addClass("menu-invert"); 562 } 563 }); 564 565 if ($menuLastItemUl.length > 0) { 566 if ( 567 $window.width() - 568 ($menuLastItemUl.width() + $menuLastItem.offset().left) < 569 0 570 ) { 571 $menuLastItemUl.addClass("menu-last"); 572 } 573 } 574 $menuItems.css("display", ""); 575 }); 576 } 577 578 579 580 581 }, 582 mainMenuResponsiveShow: function() { 583 584 }, 585 mainMenuOverlay: function() {}, 586 pageMenu: function() { 587 var $pageMenu = $(".page-menu"); 588 589 if ($pageMenu.length > 0) { 590 $(window).breakpoints("greaterEqualTo", "lg", function() { 591 var shrinkPageMenu = 592 $pageMenu.attr("data-shrink") || $pageMenu.offset().top + 200; 593 594 if ($pageMenu.attr("data-sticky") == "true") { 595 $window.scroll(function() { 596 if ($window.scrollTop() > shrinkPageMenu) { 597 $pageMenu.addClass("sticky-active"); 598 $header.addClass("pageMenu-sticky"); 599 } else { 600 $pageMenu.removeClass("sticky-active"); 601 $header.removeClass("pageMenu-sticky"); 602 } 603 }); 604 } 605 }); 606 607 $pageMenu.each(function() { 608 $(this) 609 .find("#pageMenu-trigger") 610 .on("click", function() { 611 $pageMenu.toggleClass("page-menu-active"); 612 $pageMenu.toggleClass("items-visible"); 613 }); 614 }); 615 } 616 }, 617 sidebarOverlay: function() { 618 var sidebarOverlay = $("#side-panel"); 619 if (sidebarOverlay.length > 0) { 620 sidebarOverlay.css("opacity", 1); 621 $("#close-panel").on("click", function() { 622 $body.removeClass("side-panel-active");
623 $("#side-panel-trigger").removeClass("toggle-active"); 624 }); 625 } 626 627 var $sidepanel = $("#sidepanel"), 628 $sidepanelTrigger = $(".panel-trigger"), 629 sidepanelProcessing = false, 630 sidepanelEvent; 631 632 $sidepanelTrigger.on("click", function(e) { 633 e.preventDefault(); 634 var panelOpen = function() { 635 if (!sidepanelProcessing) { 636 sidepanelProcessing = true; 637 Settings.panelIsOpen = true; 638 $sidepanel.addClass("panel-open"); 639 sidepanelProcessing = false; 640 } 641 }; 642 var panelClose = function() { 643 if (!sidepanelProcessing) { 644 sidepanelProcessing = true; 645 Settings.panelIsOpen = false; 646 $sidepanel.removeClass("panel-open"); 647 sidepanelProcessing = false; 648 } 649 }; 650 if (!Settings.panelIsOpen) { 651 sidepanelEvent = panelOpen(); 652 } else { 653 sidepanelEvent = panelClose(); 654 } 655 }); 656 }, 657 dotsMenu: function() { 658 var $dotsMenu = $("#dotsMenu"), 659 $dotsMenuItems = $dotsMenu.find("ul > li > a"); 660 if ($dotsMenu.length > 0) { 661 $dotsMenuItems.on("click", function() { 662 $dotsMenuItems.parent("li").removeClass("current"); 663 $(this).parent("li").addClass("current"); 664 $("html, body").stop(true, false).animate({ scrollTop: $($(this).attr("href")).offset().top}, elem.options.speed, "easeInOutExpo"); 665 return false; 666 }); 667 $dotsMenuItems.parents("li").removeClass("current"); 668 $dotsMenu 669 .find('a[href="#' + INSPIRO.header.currentSection() + '"]') 670 .parent("li") 671 .addClass("current"); 672 } 673 }, 674 onepageMenu: function() { 675 if ($mainMenu.hasClass("menu-one-page")) { 676 var $currentMenuItem = "current"; 677 678 $(window).on("scroll", function() { 679 var $currentSection = INSPIRO.header.currentSection(); 680 $mainMenu 681 .find("nav > ul > li > a") 682 .parents("li") 683 .removeClass($currentMenuItem); 684 $mainMenu 685 .find('nav > ul > li > a[href="#' + $currentSection + '"]') 686 .parent("li") 687 .addClass($currentMenuItem); 688 }); 689 } 690 }, 691 currentSection: function() { 692 var elemCurrent = "body"; 693 $section.each(function() { 694 var elem = $(this), 695 elemeId = elem.attr("id"); 696 if ( 697 elem.offset().top - $window.height() / 3 < $window.scrollTop() && 698 elem.offset().top + elem.height() - $window.height() / 3 > 699 $window.scrollTop() 700 ) { 701 elemCurrent = elemeId; 702 } 703 }); 704 return elemCurrent; 705 }, 706 }; 707 INSPIRO.slider = { 708 functions: function() { 709 INSPIRO.slider.inspiroSlider(); 710 INSPIRO.slider.carousel(); 711 }, 712 inspiroSlider: function() { 713 if ($inspiroSlider.length > 0) { 714 //Check if flickity plugin is loaded 715 if (typeof $.fn.flickity === "undefined") { 716 INSPIRO.elements.notification( 717 "Warning", 718 "jQuery flickity slider plugin is missing in plugins.js file.", 719 "danger" 720 ); 721 return true; 722 } 723 var defaultAnimation = "animate__fadeInUp"; 724 725 function animate_captions($elem) { 726 var $captions = $elem; 727 $captions.each(function() { 728 var $captionElem = $(this), 729 animationDuration = "600ms"; 730 if ($(this).attr("data-animate-duration")) { 731 animationDuration = $(this).attr("data-animate-duration") + "ms"; 732 } 733 $captionElem.css({ 734 opacity: 0, 735 }); 736 $(this).css("animation-duration", animationDuration); 737 }); 738 $captions.each(function(index) { 739 var $captionElem = $(this), 740 captionDelay = 741 $captionElem.attr("data-caption-delay") || index * 350 + 1000, 742 captionAnimation = 743 $captionElem.attr("data-caption-animate") || defaultAnimation; 744 var t = setTimeout(function() { 745 $captionElem.css({ 746 opacity: 1, 747 }); 748 $captionElem.addClass(captionAnimation); 749 }, captionDelay); 750 }); 751 } 752 753 function hide_captions($elem) { 754 var $captions = $elem; 755 $captions.each(function(caption) { 756 var caption = $(this), 757 captionAnimation = 758 caption.attr("data-caption-animate") || defaultAnimation; 759 caption.removeClass(captionAnimation); 760 caption.removeAttr("style"); 761 }); 762 } 763 764 function start_kenburn(elem) { 765 var currentSlide = elem.find(".slide.is-selected"), 766 currentSlideKenburns = currentSlide.hasClass("kenburns"); 767 if (currentSlideKenburns) { 768 setTimeout(function() { 769 currentSlide.find(".kenburns-bg").addClass("kenburns-bg-animate"); 770 }, 500); 771 } 772 } 773 774 function stop_kenburn(elem) { 775 var notCurrentSlide = elem.find(".slide:not(.is-selected)"); 776 notCurrentSlide 777 .find(".kenburns-bg") 778 .removeClass("kenburns-bg-animate"); 779 } 780 781 function slide_dark(elem) { 782 var $sliderClassSlide = elem.find(".slide.is-selected"); 783 if ( 784 $sliderClassSlide.hasClass("slide-dark") && 785 Settings.headerHasDarkClass 786 ) { 787 $header.removeClass("dark"); 788 Settings.sliderDarkClass = true;
789 Settings.headerDarkClassRemoved = true; 790 } else { 791 Settings.sliderDarkClass = false; 792 if ( 793 Settings.headerDarkClassRemoved && 794 Settings.headerHasDarkClass && 795 !$body.hasClass("mainMenu-open") && 796 !$header.hasClass("sticky-active") 797 ) { 798 $header.addClass("dark"); 799 } 800 } 801 } 802 803 function sliderHeight(elem, state) { 804 var elem, 805 headerHeight = $header.outerHeight(), 806 topbarHeight = $topbar.outerHeight() || 0, 807 windowHeight = $window.height(), 808 sliderCurrentHeight = elem.height(), 809 screenHeightExtra = headerHeight + topbarHeight, 810 $sliderClassSlide = elem.find(".slide"), 811 sliderFullscreen = elem.hasClass("slider-fullscreen"), 812 screenRatio = elem.hasClass("slider-halfscreen") ? 1 : 1.2, 813 transparentHeader = $header.attr("data-transparent"), 814 customHeight = elem.attr("data-height"), 815 responsiveHeightXs = elem.attr("data-height-xs"), 816 containerFullscreen = elem.find(".container").first().outerHeight(), 817 contentCrop; 818 819 if (containerFullscreen >= windowHeight) { 820 contentCrop = true; 821 var sliderMinHeight = containerFullscreen; 822 elem.css("min-height", sliderMinHeight + 100); 823 $sliderClassSlide.css("min-height", sliderMinHeight + 100); 824 elem 825 .find(".flickity-viewport") 826 .css("min-height", sliderMinHeight + 100); 827 } 828 829 sliderElementsHeight("null"); 830 831 function sliderElementsHeight(height) { 832 if (height == "null") { 833 elem.css("height", ""); 834 $sliderClassSlide.css("height", ""); 835 elem.find(".flickity-viewport").css("height", ""); 836 } else { 837 elem.css("height", height); 838 $sliderClassSlide.css("height", height); 839 elem.find(".flickity-viewport").css("height", height); 840 } 841 } 842 if (customHeight) { 843 $(window).breakpoints("greaterEqualTo", "lg", function() { 844 sliderElementsHeight(customHeight + "px"); 845 }); 846 } 847 if (responsiveHeightXs) { 848 $(window).breakpoints("lessThan", "md", function() { 849 sliderElementsHeight(responsiveHeightXs + "px"); 850 }); 851 } 852 } 853 $inspiroSlider.each(function() { 854 var elem = $(this); 855 //Plugin Options 856 elem.options = { 857 cellSelector: elem.attr("data-item") || ".slide", 858 prevNextButtons: elem.data("arrows") == false ? false : true, 859 pageDots: elem.data("dots") == false ? false : true, 860 fade: elem.data("fade") == true ? true : false, 861 draggable: elem.data("drag") == true ? true : false, 862 freeScroll: elem.data("free-scroll") == true ? true : false, 863 wrapAround: elem.data("loop") == false ? false : true, 864 groupCells: elem.data("group-cells") == true ? true : false, 865 autoPlay: elem.attr("data-autoplay") || 7000, 866 pauseAutoPlayOnHover: elem.data("hoverpause") == true ? true : false, 867 adaptiveHeight: elem.data("adaptive-height") == false ? false : false, 868 asNavFor: elem.attr("data-navigation") || false, 869 selectedAttraction: elem.attr("data-attraction") || 0.07, 870 friction: elem.attr("data-friction") || 0.9, 871 initialIndex: elem.attr("data-initial-index") || 0, 872 accessibility: elem.data("accessibility") == true ? true : false, 873 setGallerySize: elem.data("gallery-size") == false ? false : false, 874 resize: elem.data("resize") == false ? false : false, 875 cellAlign: elem.attr("data-align") || "left", 876 playWholeVideo: elem.attr("data-play-whole-video") == false ? false : true, 877 }; 878 879 880 881 //Kenburns effect 882 elem.find(".slide").each(function() { 883 if ($(this).hasClass("kenburns")) { 884 var elemChild = $(this), 885 elemChildImage = elemChild 886 .css("background-image") 887 .replace(/.*\s?url\([\'\"]?/, "") 888 .replace(/[\'\"]?\).*/, ""); 889 890 if (elemChild.attr("data-bg-image")) { 891 elemChildImage = elemChild.attr("data-bg-image"); 892 } 893 elemChild.prepend( 894 '<div class="kenburns-bg" style="background-image:url(' + 895 elemChildImage + 896 ')"></div>' 897 ); 898 } 899 }); 900 elem.find(".slide video").each(function() { 901 this.pause(); 902 }); 903 $(window).breakpoints("lessThan", "lg", function() { 904 elem.options.draggable = true; 905 }); 906 907 if (elem.find(".slide").length <= 1) { 908 elem.options.prevNextButtons = false; 909 elem.options.pageDots = false; 910 elem.options.autoPlay = false; 911 elem.options.draggable = false; 912 } 913 914 if (!$.isNumeric(elem.options.autoPlay) && 915 elem.options.autoPlay != false 916 ) { 917 elem.options.autoPlay = Number(7000); 918 } 919 920 if (INSPIRO.core.rtlStatus() == true) { 921 elem.options.resize = true; 922 } 923 924 sliderHeight(elem); 925 926 var inspiroSliderData = elem.flickity({ 927 cellSelector: elem.options.cellSelector, 928 prevNextButtons: elem.options.prevNextButtons, 929 pageDots: elem.options.pageDots, 930 fade: elem.options.fade, 931 draggable: elem.options.draggable, 932 freeScroll: elem.options.freeScroll, 933 wrapAround: elem.options.wrapAround, 934 groupCells: elem.options.groupCells, 935 autoPlay: Number(elem.options.autoPlay), 936 pauseAutoPlayOnHover: elem.options.pauseAutoPlayOnHover, 937 adaptiveHeight: elem.options.adaptiveHeight, 938 asNavFor: elem.options.asNavFor, 939 selectedAttraction: Number(elem.options.selectedAttraction), 940 friction: elem.options.friction, 941 initialIndex: elem.options.initialIndex, 942 accessibility: elem.options.accessibility, 943 setGallerySize: elem.options.setGallerySize, 944 resize: elem.options.resize, 945 cellAlign: elem.options.cellAlign, 946 rightToLeft: INSPIRO.core.rtlStatus(), 947 on: { 948 ready: function(index) { 949 var $captions = elem.find( 950 ".slide.is-selected .slide-captions > *" 951 ); 952 slide_dark(elem); 953 sliderHeight(elem); 954 start_kenburn(elem); 955 animate_captions($captions); 956 setTimeout(function() { 957 elem 958 .find(".slide:not(.is-selected) video") 959 .each(function(i, video) { 960 video.pause(); 961 video.currentTime = 0; 962 }); 963 }, 700); 964 }, 965 }, 966 }); 967 968 var flkty = inspiroSliderData.data("flickity"); 969 970 function wrapAroundStop() { 971 if (flkty.player.state != 'playing') { 972 disableAutoplay() 973 return; 974 } 975 976 var isAtLast = flkty.selectedIndex == flkty.slides.length - 1; 977 if (isAtLast) { 978 disableAutoplay(); 979 } 980 } 981 982 function disableAutoplay() { 983 elem.flickity('stopPlayer'); 984 elem.off('select.flickity', wrapAroundStop); 985 } 986 987 inspiroSliderData.on("change.flickity", function() { 988 var $captions = elem.find(".slide.is-selected .slide-captions > *"); 989 hide_captions($captions); 990 setTimeout(function() { 991 stop_kenburn(elem); 992 }, 1000); 993 start_kenburn(elem); 994 animate_captions($captions); 995 elem.find(".slide video").each(function(i, video) { 996 video.currentTime = 0; 997 }); 998 }); 999 1000 inspiroSliderData.on("select.flickity", function() { 1001 // INSPIRO.elements.backgroundImage(); 1002 var $captions = elem.find(".slide.is-selected .slide-captions > *"); 1003 slide_dark(elem); 1004 sliderHeight(elem); 1005 start_kenburn(elem); 1006 animate_captions($captions); 1007 var video = flkty.selectedElement.querySelector("video"); 1008 if (video) { 1009 video.play(); 1010 flkty.options.autoPlay = Number(video.duration * 1000); 1011 } else { 1012 flkty.options.autoPlay = Number(elem.options.autoPlay); 1013 } 1014 1015 if (elem.options.wrapAround == false) { 1016 wrapAroundStop(); 1017 } 1018 1019 }); 1020 inspiroSliderData.on("dragStart.flickity", function() { 1021 var $captions = elem.find( 1022 ".slide:not(.is-selected) .slide-captions > *" 1023 ); 1024 hide_captions($captions); 1025 }); 1026 $(window).resize(function() { 1027 sliderHeight(elem); 1028 elem.flickity("reposition"); 1029 }); 1030 }); 1031 } 1032 }, 1033 carousel: function(elem) { 1034 if (elem) { 1035 $carousel = elem; 1036 } 1037 1038 if ($carousel.length > 0) { 1039 //Check if flickity plugin is loaded 1040 if (typeof $.fn.flickity === "undefined") { 1041 INSPIRO.elements.notification( 1042 "Warning", 1043 "jQuery flickity plugin is missing in plugins.js file.", 1044 "danger" 1045 ); 1046 return true; 1047 } 1048 $carousel.each(function() { 1049 var elem = $(this); 1050 //Plugin Options 1051 elem.options = { 1052 containerWidth: elem.width(), 1053 items: elem.attr("data-items") || 4, 1054 itemsLg: elem.attr("data-items-lg"), 1055 itemsMd: elem.attr("data-items-md"), 1056 itemsSm: elem.attr("data-items-sm"), 1057 itemsXs: elem.attr("data-items-xs"), 1058 margin: elem.attr("data-margin") || 10, 1059 cellSelector: elem.attr("data-item") || false, 1060 prevNextButtons: elem.data("arrows") == false ? false : true, 1061 pageDots: elem.data("dots") == false ? false : true, 1062 fade: elem.data("fade") == true ? true : false, 1063 draggable: elem.data("drag") == false ? false : true, 1064 freeScroll: elem.data("free-scroll") == true ? true : false, 1065 wrapAround: elem.data("loop") == false ? false : true, 1066 groupCells: elem.data("group-cells") == true ? true : false, 1067 autoPlay: elem.attr("data-autoplay") || 7000, 1068 pauseAutoPlayOnHover: elem.data("hover-pause") == false ? false : true, 1069 asNavFor: elem.attr("data-navigation") || false, 1070 lazyLoad: elem.data("lazy-load") == true ? true : false, 1071 initialIndex: elem.attr("data-initial-index") || 0, 1072 accessibility: elem.data("accessibility") == true ? true : false, 1073 adaptiveHeight: elem.data("adaptive-height") == true ? true : false, 1074 autoWidth: elem.data("auto-width") == true ? true : false, 1075 setGallerySize: elem.data("gallery-size") == false ? false : true, 1076 resize: elem.data("resize") == false ? false : true, 1077 cellAlign: elem.attr("data-align") || "left", 1078 contain: elem.data("contain") == false ? false : true, 1079 rightToLeft: INSPIRO.core.rtlStatus(), 1080 }; 1081 1082 //Calculate min/max on responsive breakpoints 1083 elem.options.itemsLg = 1084 elem.options.itemsLg || 1085 Math.min(Number(elem.options.items), Number(4)); 1086 elem.options.itemsMd = 1087 elem.options.itemsMd || 1088 Math.min(Number(elem.options.itemsLg), Number(3)); 1089 elem.options.itemsSm = 1090 elem.options.itemsSm || 1091 Math.min(Number(elem.options.itemsMd), Number(2)); 1092 elem.options.itemsXs = 1093 elem.options.itemsXs || 1094 Math.min(Number(elem.options.itemsSm), Number(1)); 1095 var setResponsiveColumns; 1096 1097 function getCarouselColumns() { 1098 switch ($(window).breakpoints("getBreakp
1098oint")) { 1099 case "xs": 1100 setResponsiveColumns = Number(elem.options.itemsXs); 1101 break; 1102 case "sm": 1103 setResponsiveColumns = Number(elem.options.itemsSm); 1104 break; 1105 case "md": 1106 setResponsiveColumns = Number(elem.options.itemsMd); 1107 break; 1108 case "lg": 1109 setResponsiveColumns = Number(elem.options.itemsLg); 1110 break; 1111 case "xl": 1112 setResponsiveColumns = Number(elem.options.items); 1113 break; 1114 } 1115 } 1116 getCarouselColumns(); 1117 var itemWidth; 1118 elem.find("> *").wrap('<div class="polo-carousel-item">'); 1119 if (elem.hasClass("custom-height")) { 1120 elem.options.setGallerySize = false; 1121 INSPIRO.core.customHeight(elem); 1122 INSPIRO.core.customHeight(elem.find(".polo-carousel-item")); 1123 var carouselCustomHeightStatus = true; 1124 } 1125 if (Number(elem.options.items) !== 1) { 1126 if (elem.options.autoWidth || carouselCustomHeightStatus) { 1127 elem.find(".polo-carousel-item").css({ 1128 "padding-right": elem.options.margin + "px", 1129 }); 1130 } else { 1131 itemWidth = 1132 (elem.options.containerWidth + Number(elem.options.margin)) / 1133 setResponsiveColumns; 1134 elem.find(".polo-carousel-item").css({ 1135 width: itemWidth, 1136 "padding-right": elem.options.margin + "px", 1137 }); 1138 } 1139 } else { 1140 elem.find(".polo-carousel-item").css({ 1141 width: "100%", 1142 "padding-right": "0 !important;", 1143 }); 1144 } 1145 if (elem.options.autoWidth || carouselCustomHeightStatus) { 1146 elem.options.cellAlign = "center"; 1147 } 1148 1149 if (elem.options.autoPlay == "false") { 1150 elem.options.autoPlay = false; 1151 } 1152 1153 if (!$.isNumeric(elem.options.autoPlay) && 1154 elem.options.autoPlay != false 1155 ) { 1156 elem.options.autoPlay = Number(7000); 1157 } 1158 1159 //Initializing plugin and passing the options 1160 var $carouselElem = $(elem); 1161 $carouselElem.imagesLoaded(function() { 1162 // init Isotope after all images have loaded 1163 $carouselElem.flickity({ 1164 cellSelector: elem.options.cellSelector, 1165 prevNextButtons: elem.options.prevNextButtons, 1166 pageDots: elem.options.pageDots, 1167 fade: elem.options.fade, 1168 draggable: elem.options.draggable, 1169 freeScroll: elem.options.freeScroll, 1170 wrapAround: elem.options.wrapAround, 1171 groupCells: elem.options.groupCells, 1172 autoPlay: Number(elem.options.autoPlay), 1173 pauseAutoPlayOnHover: elem.options.pauseAutoPlayOnHover, 1174 adaptiveHeight: elem.options.adaptiveHeight, 1175 asNavFor: elem.options.asNavFor, 1176 initialIndex: elem.options.initialIndex, 1177 accessibility: elem.options.accessibility, 1178 setGallerySize: elem.options.setGallerySize, 1179 resize: elem.options.resize, 1180 cellAlign: elem.options.cellAlign, 1181 rightToLeft: elem.options.rightToLeft, 1182 contain: elem.options.contain, 1183 }); 1184 elem.addClass("carousel-loaded"); 1185 }); 1186 if (elem.hasClass("custom-height")) { 1187 INSPIRO.core.customHeight(elem); 1188 } 1189 if (Number(elem.options.items) !== 1) { 1190 $(window).on("resize", function() { 1191 setTimeout(function() { 1192 getCarouselColumns(); 1193 itemWidth = 1194 (elem.width() + Number(elem.options.margin)) / 1195 setResponsiveColumns; 1196 if (elem.options.autoWidth || carouselCustomHeightStatus) { 1197 elem.find(".polo-carousel-item").css({ 1198 "padding-right": elem.options.margin + "px", 1199 }); 1200 } else { 1201 if (!elem.hasClass("custom-height")) { 1202 elem.find(".polo-carousel-item").css({ 1203 width: itemWidth, 1204 "padding-right": elem.options.margin + "px", 1205 }); 1206 } else { 1207 INSPIRO.core.customHeight(elem.find(".polo-carousel-item")); 1208 elem.find(".polo-carousel-item").css({ 1209 width: itemWidth, 1210 "padding-right": elem.options.margin + "px", 1211 }); 1212 } 1213 } 1214 elem.find(".flickity-slider").css({ 1215 "margin-right": 1216 -elem.options.margin / setRe
1216sponsiveColumns + "px", 1217 }); 1218 elem.flickity('resize'); 1219 elem.flickity("reposition"); 1220 }, 300); 1221 }); 1222 } 1223 }); 1224 } 1225 }, 1226 }; 1227 INSPIRO.elements = { 1228 functions: function() { 1229 INSPIRO.elements.shapeDivider(); 1230 INSPIRO.elements.naTo(); 1231 INSPIRO.elements.morphext(); 1232 INSPIRO.elements.buttons(); 1233 INSPIRO.elements.accordion(); 1234 INSPIRO.elements.animations(); 1235 INSPIRO.elements.parallax(); 1236 INSPIRO.elements.backgroundImage(); 1237 INSPIRO.elements.responsiveVideos(); 1238 INSPIRO.elements.countdownTimer(); 1239 INSPIRO.elements.progressBar(); 1240 INSPIRO.elements.pieChart(); 1241 INSPIRO.elements.maps(); 1242 INSPIRO.elements.gridLayout(); 1243 INSPIRO.elements.tooltip(); 1244 INSPIRO.elements.popover(); 1245 INSPIRO.elements.magnificPopup(); 1246 INSPIRO.elements.yTPlayer(); 1247 INSPIRO.elements.vimeoPlayer(); 1248 INSPIRO.elements.modal(); 1249 INSPIRO.elements.sidebarFixed(); 1250 INSPIRO.elements.clipboard(); 1251 INSPIRO.elements.bootstrapSwitch(); 1252 INSPIRO.elements.countdown(); 1253 INSPIRO.elements.other(); 1254 INSPIRO.elements.videoBackground(); 1255 INSPIRO.elements.forms(); 1256 INSPIRO.elements.formValidation(); 1257 INSPIRO.elements.formAjaxProcessing(); 1258 INSPIRO.elements.floatingDiv(); 1259 INSPIRO.elements.wizard(); 1260 INSPIRO.elements.counters(); 1261 }, 1262 forms: function() { 1263 //Show hide password 1264 var $showHidePassword = $(".show-hide-password"); 1265 if ($showHidePassword.length > 0) { 1266 $showHidePassword.each(function() { 1267 var elem = $(this), 1268 $iconEye = "icon-eye", 1269 $iconClosedEye = "icon-eye-off", 1270 elemShowHideIcon = elem.find(".input-group-text i"), 1271 elemInput = elem.children("input"); 1272 elem.find(".input-group-text i").css({ 1273 cursor: "pointer", 1274 }); 1275 elemShowHideIcon.on("click", function(event) { 1276 event.preventDefault(); 1277 if (elem.children("input").attr("type") == "text") { 1278 elemInput.attr("type", "password"); 1279 elemShowHideIcon.removeClass($iconEye); 1280 elemShowHideIcon.addClass($iconClosedEye); 1281 } else if (elem.children("input").attr("type") == "password") { 1282 elemInput.attr("type", "text"); 1283 elemShowHideIcon.addClass($iconEye); 1284 elemShowHideIcon.removeClass($iconClosedEye); 1285 } 1286 }); 1287 }); 1288 } 1289 1290 /* if($('#pwd-container').length > 0) { 1291 var pwdOptions = {}; 1292 pwdOptions.ui = { 1293 container: "#pwd-container", 1294 viewports: { 1295 progress: ".pwstrength_viewport_progress", 1296 verdict: ".pwstrength_viewport_verdict" 1297 } 1298 }; 1299 pwdOptions.common = { 1300 onLoad: function () { 1301 $('#messages').text('Start typing password'); 1302 }, 1303 zxcvbn: true, 1304 zxcvbnTerms: ['samurai', 'shogun', 'bushido', 'daisho', 'seppuku'], 1305 userInputs: ['#year', '#familyname'] 1306 }; 1307 $(':password').pwstrength(pwdOptions); 1308 } */ 1309 }, 1310 formValidation: function() { 1311 var forms = document.getElementsByClassName("needs-validation");
1312 var validation = Array.prototype.filter.call(forms, function(form) { 1313 form.addEventListener( 1314 "submit", 1315 function(event) { 1316 if (form.checkValidity() === false) { 1317 event.preventDefault(); 1318 event.stopPropagation(); 1319 } 1320 form.classList.add("was-validated"); 1321 }, 1322 false 1323 ); 1324 }); 1325 }, 1326 1327 formAjaxProcessing: function() { 1328 var $ajaxForm = $( 1329 ".widget-contact-form:not(.custom-js), .ajax-form:not(.custom-js)" 1330 ); 1331 if ($ajaxForm.length > 0) { 1332 $ajaxForm.each(function() { 1333 var elem = $(this), 1334 elemCustomRedirectPage = elem.attr("data-success-page"); 1335 var button = elem.find("button#form-submit"), 1336 buttonText = button.html(); 1337 1338 var validation = Array.prototype.filter.call(elem, function(form) { 1339 form.addEventListener( 1340 "submit", 1341 function(event) { 1342 if (form[0].checkValidity() === false) { 1343 event.preventDefault(); 1344 event.stopPropagation(); 1345 } 1346 form.classList.add("was-validated"); 1347 return false; 1348 }, 1349 false 1350 ); 1351 }); 1352 1353 elem.submit(function(event) { 1354 event.preventDefault(); 1355 var post_url = $(this).attr("action"); 1356 var request_method = $(this).attr("method"); 1357 1358 if (elem[0].checkValidity() === false) { 1359 event.stopPropagation(); 1360 elem.addClass("was-validated"); 1361 } else { 1362 $(elem).removeClass("was-validated"); 1363 button.html('<i class="icon-loader fa-spin"> </i> Sending...'); 1364 $.ajax({
1365 url: post_url, 1366 type: request_method, 1367 data: new FormData(this), 1368 cache: false, 1369 contentType: false, 1370 processData: false, 1371 success: function(text) { 1372 if (text.response == "success") { 1373 if (elem.find(".g-recaptcha").children("div").length > 0) { 1374 grecaptcha.reset(); 1375 } 1376 $(elem)[0].reset(); 1377 button.html(buttonText); 1378 if (elemCustomRedirectPage) { 1379 window.location.href = elemCustomRedirectPage; 1380 } else { 1381 $.notify({ 1382 message: text.message, 1383 }, { 1384 type: "success", 1385 delay: elem.attr("data-success-message-delay") || 20000, 1386 }); 1387 } 1388 } else { 1389 if (elem.find(".g-recaptcha").children("div").length > 0) { 1390 grecaptcha.reset(); 1391 } 1392 $.notify({ 1393 message: elem.attr("data-error-message") || text.message, 1394 }, { 1395 type: "danger", 1396 delay: elem.attr("data-error-message-delay") || 20000, 1397 }); 1398 var t = setTimeout(function() { 1399 button.html(buttonText); 1400 }, 1000); 1401 } 1402 }, 1403 }); 1404 } 1405 }); 1406 }); 1407 } 1408 }, 1409 wizard: function() { 1410 //Show hide password 1411 }, 1412 floatingDiv: function() { 1413 var $floatingDiv = $(".floating-div"); 1414 if ($floatingDiv.length > 0) { 1415 $floatingDiv.each(function() { 1416 var elem = $(this), 1417 elemAlign = elem.attr("data-placement") || "bottom", 1418 elemScrollOffset = elem.attr("data-offset") || 50, 1419 elemVisible = elem.attr("data-visibile") || "all", 1420 elemHeight = elem.outerHeight(), 1421 elemWidth = elem.outerWidth(); 1422 1423 /* if(elemVisible !== "all") { 1424 1425 }else { 1426 if ($body.hasClass("b--desktop")) { 1427 1428 } 1429 } */ 1430 $window.scroll(function() { 1431 var scrollOffset = $body.attr("data-offset") || 80; 1432 if ($window.scrollTop() > scrollOffset) { 1433 elem.css(elemAlign, "20px"); 1434 } else { 1435 elem.css(elemAlign, -elemHeight + "px"); 1436 } 1437 }); 1438 }); 1439 } 1440 }, 1441 other: function(context) { 1442 //Lazy Load 1443 var myLazyLoad = new LazyLoad({ 1444 elements_selector: ".lazy", 1445 class_loaded: "img-loaded", 1446 }); 1447 1448 if ($(".toggle-item").length > 0) { 1449 $(".toggle-item").each(function() { 1450 var elem = $(this), 1451 toggleItemClass = elem.attr("data-class"), 1452 toggleItemClassTarget = elem.attr("data-target"); 1453 elem.on("click", function() { 1454 if (toggleItemClass) { 1455 if (toggleItemClassTarget) { 1456 $(toggleItemClassTarget).toggleClass(toggleItemClass); 1457 } else { 1458 elem.toggleClass(toggleItemClass); 1459 } 1460 } 1461 elem.toggleClass("toggle-active"); 1462 return false; 1463 }); 1464 }); 1465 }
1466 /*Dropdown popup invert*/ 1467 var $pDropdown = $(".p-dropdown"); 1468 if ($pDropdown.length > 0) { 1469 $pDropdown.each(function() { 1470 var elem = $(this); 1471 1472 elem.find("> a").on("click", function() { 1473 elem.toggleClass("dropdown-active"); 1474 return false; 1475 }); 1476 1477 if ($window.width() / 2 > elem.offset().left) { 1478 elem.addClass("p-dropdown-invert"); 1479 } 1480 }); 1481 } 1482 1483 // Show/hide div 1484 var $showHide = $(".show-hide"); 1485 if ($showHide.length > 0) { 1486 $showHide.each(function() { 1487 var elem = $(this), 1488 elemHide = elem.attr("data-hide"), 1489 elemShow = elem.attr("data-show"); 1490 1491 elem.on("click", function() { 1492 $(elemHide).hide(); 1493 $(elemShow).show(); 1494 return false; 1495 }); 1496 }); 1497 } 1498 }, 1499 naTo: function() { 1500 1501 var elem = $("a.scroll-to, #dotsMenu > ul > li > a, .menu-one-page nav > ul > li > a:not([data-lightbox])");; 1502 1503 elem.on("click", function() { 1504 1505 //Plugin Options 1506 elem.options = { 1507 offsetTop: elem.attr("data-offset") || 30, 1508 headerHeight: elem.attr("data-header-height") || 0, 1509 speed: elem.attr("data-speed") || 1500, 1510 height: elem.height(), 1511 }; 1512 1513 1514 $(window).breakpoints("lessThan", "lg", function() { 1515 if (Settings.menuIsOpen) { 1516 $mainMenuTriggerBtn.trigger("click"); 1517 } 1518 if ($header.attr("data-responsive-fixed") === true) { 1519 elem.options.headerHeight = $header.height(); 1520 } 1521 }); 1522 $(window).breakpoints("greaterEqualTo", "lg", function() { 1523 if ($header.length > 0) { 1524 elem.options.headerHeight = $header.height(); 1525 } 1526 }); 1527 if ($(".dashboard").length > 0) { 1528 elem.options.offsetTop = 30; 1529 } 1530 1531 $("html, body").stop(true, false).animate({ scrollTop: $($(this).attr("href")).offset().top - (elem.options.headerHeight + elem.options.offsetTop), }, elem.options.speed, "easeInOutExpo"); 1532 return false; 1533 }); 1534 }, 1535 morphext: function() { 1536 var $textRotator = $(".text-rotator"); 1537 if ($textRotator.length > 0) { 1538 //Check if Morphext plugin is loaded 1539 if (typeof $.fn.Morphext === "undefined") { 1540 INSPIRO.elements.notification( 1541 "Warning", 1542 "jQuery Morphext plugin is missing in plugins.js file.", 1543 "danger" 1544 ); 1545 return true; 1546 } 1547 $textRotator.each(function() { 1548 var elem = $(this); 1549 //Plugin Options 1550 elem.options = { 1551 animate_prefix: "animate__", 1552 animation: elem.attr("data-animate") || "fadeIn", 1553 separator: elem.attr("data-separator") || ",", 1554 speed: elem.attr("data-speed") || 2000, 1555 height: elem.height(), 1556 }; 1557 elem.css({ 1558 "min-height": elem.options.height, 1559 }); 1560 //Initializing Morphext plugin and passing the options 1561 elem.Morphext({ 1562 animation: elem.options.animate_prefix + elem.options.animation, 1563 separator: elem.options.separator, 1564 speed: Number(elem.options.speed), 1565 }); 1566 }); 1567 } 1568 }, 1569 buttons: function() { 1570 //Button slide width 1571 if ($(".btn-slide[data-width]")) { 1572 $(".btn.btn-slide[data-width]").each(function() { 1573 var elem = $(this), 1574 elemWidth = elem.attr("data-width"), 1575 elemDefaultWidth; 1576 switch (true) { 1577 case elem.hasClass("btn-lg"): 1578 elemDefaultWidth = "60"; 1579 break; 1580 case elem.hasClass("btn-sm"): 1581 elemDefaultWidth = "36"; 1582 break; 1583 case elem.hasClass("btn-xs"): 1584 elemDefaultWidth = "28"; 1585 break; 1586 default: 1587 elemDefaultWidth = "48"; 1588 break; 1589 } 1590 elem.hover( 1591 function() { 1592 $(this).css("width", elemWidth + "px"); 1593 }, 1594 function() { 1595 $(this).css("width", elemDefaultWidth + "px"); 1596 } 1597 ); 1598 }); 1599 } 1600 }, 1601 accordion: function() { 1602 var accordionType = "accordion", 1603 toogleType = "toggle", 1604 accordionItem = "ac-item", 1605 itemActive = "ac-active", 1606 itemTitle = "ac-title", 1607 itemContent = "ac-content", 1608 $accs = $("." + accordionItem); 1609 $accs.length && 1610 ($accs.each(function() { 1611 var $item = $(this); 1612 $item.hasClass(itemActive) ? 1613 $item.addClass(itemActive) : 1614 $item.find("." + itemContent).hide(); 1615 }), 1616 $("." + itemTitle).on("click", function(e) { 1617 var $link = $(this), 1618 $item = $link.parents("." + accordionItem), 1619 $acc = $item.parents("." + accordionType); 1620 $item.hasClass(itemActive) ? 1621 $acc.hasClass(toogleType) ? 1622 ($item.removeClass(itemActive), 1623 $link.next("." + itemContent).slide
1623Up()) : 1624 ($acc.find("." + accordionItem).removeClass(itemActive), 1625 $acc.find("." + itemContent).slideUp()) : 1626 ($acc.hasClass(toogleType) || 1627 ($acc.find("." + accordionItem).removeClass(itemActive), 1628 $acc.find("." + itemContent).slideUp("fast")), 1629 $item.addClass(itemActive), 1630 $link.next("." + itemContent).slideToggle("fast")), 1631 e.preventDefault(); 1632 1633 if ($link.find(".custom-radio").length > 0) { 1634 $link 1635 .find(".custom-radio .custom-control-input") 1636 .prop("checked", true); 1637 return false; 1638 } 1639 return false; 1640 })); 1641 }, 1642 animations: function() { 1643 var $animate = $("[data-animate]"); 1644 if ($animate.length > 0) { 1645 //Check if jQuery Waypoint plugin is loaded 1646 if (typeof Waypoint === "undefined") { 1647 INSPIRO.elements.notification( 1648 "Warning", 1649 "jQuery Waypoint plugin is missing in plugins.js file.", 1650 "danger" 1651 ); 1652 return true; 1653 } 1654 $animate.each(function() { 1655 var elem = $(this); 1656 elem.addClass("animate__animated"); 1657 //Plugin Options 1658 elem.options = { 1659 animate_prefix: "animate__", 1660 animation: elem.attr("data-animate") || "fadeIn", 1661 delay: elem.attr("data-animate-delay") || 200, 1662 direction: ~elem.attr("data-animate").indexOf("Out") ? "back" : "forward", 1663 offsetX: elem.attr("data-animate-offsetX") || 0, 1664 offsetY: elem.attr("data-animate-offsetY") || -100, 1665 }; 1666 //Initializing jQuery Waypoint plugin and passing the options from data animations attributes 1667 if (elem.options.direction == "forward") { 1668 new Waypoint({ 1669 element: elem, 1670 handler: function() { 1671 var t = setTimeout(function() { 1672 elem.addClass(elem.options.animate_prefix + elem.options.animation + " visible"); 1673 }, elem.options.delay); 1674 this.destroy(); 1675 }, 1676 offset: "100%", 1677 }); 1678 } else { 1679 elem.addClass("visible"); 1680 elem.on("click", function() { 1681 elem.addClass(elem.options.animate_prefix + elem.options.animation); 1682 return false; 1683 }); 1684 } 1685 //Demo play 1686 if (elem.parents(".demo-play-animations").length) { 1687 elem.on("click", function() { 1688 elem.removeClass(elem.options.animate_prefix + elem.options.animation); 1689 var t = setTimeout(function() { 1690 elem.addClass(elem.options.animate_prefix + elem.options.animation); 1691 }, 50); 1692 return false; 1693 }); 1694 } 1695 }); 1696 } 1697 }, 1698 parallax: function() { 1699 var $parallax = $("[data-bg-parallax]"); 1700 if ($parallax.length > 0) { 1701 //Check if scrolly plugin is loaded 1702 if (typeof $.fn.scrolly === "undefined") { 1703 INSPIRO.elements.notification( 1704 "Warning", 1705 "jQuery scrolly plugin is missing in plugins.js file.", 1706 "danger" 1707 ); 1708 return true; 1709 } 1710 $parallax.each(function() { 1711 var $elem = $(this), 1712 elemImageSrc = $elem.attr("data-bg-parallax"), 1713 elemImageVelocity = $elem.attr("data-velocity") || "-.140"; 1714 $elem.prepend( 1715 '<div class="parallax-container" data-bg="' + 1716 elemImageSrc + 1717 '" data-velocity="' + 1718 elemImageVelocity + 1719 '" style="background: url(' + 1720 elemImageSrc + 1721 ')"></div>' 1722 ); 1723
1724 var parallaxLazy = new LazyLoad({ 1725 elements_selector: ".parallax-container", 1726 class_loaded: "img-loaded", 1727 }); 1728 1729 $elem.find(".parallax-container").scrolly({ 1730 bgParallax: true, 1731 }); 1732 }); 1733 } 1734 }, 1735 backgroundImage: function() { 1736 var $backgroundImage = $("[data-bg-image]"); 1737 1738 if ($backgroundImage.length > 0) { 1739 $backgroundImage.each(function() { 1740 var $elem = $(this), 1741 elemImageSrc = $elem.attr("data-bg-image"); 1742 $elem.addClass("lazy-bg"); 1743 $elem.attr("data-bg", elemImageSrc); 1744 }); 1745 1746 var laazybg = new LazyLoad({ 1747 elements_selector: ".lazy-bg", 1748 class_loaded: "bg-loaded", 1749 }); 1750 } 1751 }, 1752 shapeDivider: function() { 1753 var $shape_divider = $(".shape-divider"); 1754 $shape_divider.each(function() { 1755 var elem = $(this); 1756 elem.options = { 1757 style: elem.attr("data-style") || 1, 1758 color: elem.attr("data-color") || "#ffffff", 1759 opacity: elem.attr("data-opacity") || "1", 1760 zIndex: elem.attr("data-zIndex") || "0", 1761 height: elem.attr("data-height") || 210, 1762 prefix: "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MzAg", 1763 }; 1764 1765 if ($body.hasClass("dark") && elem.options.color === "#ffffff") { 1766 elem.options.color = "#181818"; 1767 } 1768 switch (elem.options.style) { 1769 case "1": 1770 elem.options.style = 1771 elem.options.prefix + 1772 "MTI1LjcyIj48dGl0bGU+QXNzZXQgMTc0PC90aXRsZT48cGF0aCBkPSJNMzk1LDk5LjM3Yy01Ny40MywxMC4xNy0xMjQuMjctOC4wNi0xNzYuOC0xMS43MnEzLjkzLjY0LDgsMS40MWM1MC44MSw2LDExMy4zLDI0LjA4LDE2OC43NiwxNC4yNkM0NjgsOTAuNDIsNTE5LjYsMTEuODgsNjMwLDguOVYwQzUwNS40Miw0LDQ2OCw4Ni40NywzOTUsOTkuMzdaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4zMDAwMDAwMDAwMDAwMDAwNCIvPjxwYXRoIGQ9Ik0yMjYuMjUsODlDMjczLjg4LDk4LDMzOC4xNCwxMTkuMjksMzk1LDEwOS4yM2M3Mi45My0xMi45MSwxMjYuNjEtNzcuNDYsMjM1LTczLjQ4VjguODZjLTExMC40LDMtMTYyLDgxLjUxLTIzNSw5NC40MkMzMzkuNTUsMTEzLjEsMjc3LjA2LDk1LjA3LDIyNi4yNSw4OVoiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjYzIi8+PHBhdGggZD0iTTYwLjgyLDEyMi44OCw2MiwxMjNhMzEuNDksMzEuNDksMCwwLDAsOS4zNC0uNjRBMTAxLjI2LDEwMS4yNiwwLDAsMSw2MC44MiwxMjIuODhaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTYwLjgyLDEyMi44OCw2MiwxMjNhMzEuNDksMzEuNDksMCwwLDAsOS4zNC0uNjRBMTAxLjI2LDEwMS4yNiwwLDAsMSw2MC44MiwxMjIuODhaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4zNTAwMDAwMDAwMDAwMDAwMyIvPjxwYXRoIGQ9Ik0zOTgsMTA3Ljg0Yy01Ni4xNSwxMC4wNy0xMTkuNTktMTEuMjYtMTY2LjYyLTIwLjItMi43MS0uNTItNS4zNS0xLTcuOTQtMS40MUExNTkuNTQsMTU5LjU0LDAsMCwwLDIwMiw4NHEtMy4wOS0uMDktNiwwYy0uNzEsMC0xLjM5LjA4LTIuMDkuMTItNTIuOCwyLjkzLTgwLjM0LDI4Ljc4LTExMi45MSwzNi42MmE3Mi42Myw3Mi42MywwLDAsMS05LjY2LDEuNjJBMzEuNDksMzEuNDksMCwwLDEsNjIsMTIzbC0xLjE4LS4xM0MzMS4zNywxMjIuODUsMCwxMTEuODIsMCwxMTEuODJ2MTMuOUg2MzBWMzQuMzZDNTIzLDMwLjM5LDQ3MCw5NC45NCwzOTgsMTA3Ljg0WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjxwYXRoIGQ9Ik0wLDEwMi4xNHYxMGM4MywzNCwxMjYuODMtMTQsMTkwLTI0bDEtNGMtNDQuNCw2LjI2LTQ1LDIyLTkzLDMxQzU0Ljc4LDEyMy4yNSwzMCwxMTMuMTQsMCwxMDIuMTRaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4zMDAwMDAwMDAwMDAwMDAwNCIvPjxwYXRoIGQ9Ik0wLDEwNC4xNHYxMGMyMiw5LDQxLjIzLDEwLjI2LDU4LjgsMTAsNDguNzgtLjc2LDg0Ljc2LTI2LjY1LDEzMS4yLTM0bDEtNGMtNDQuNCw2LjI2LTQ1LDIyLTkzLDMxQzU0Ljc4LDEyNS4yNSwzMCwxMTUuMTQsMCwxMDQuMTRaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4zMDAwMDAwMDAwMDAwMDAwNCIvPjwvc3ZnPg=="; 1773 break; 1774 case "2": 1775 elem.options.style = 1776 elem.options.prefix + 1777 "MTIwIj48dGl0bGU+QXNzZXQgMTY0PC90aXRsZT48cGF0aCBkPSJNNTY3LjY3LDMxLjE0Yy0yNi4yMiwxNy4zNi01MCwzNi41NS04MS44
1777LDUwQzQzNy41MiwxMDEuNDgsMzc1LjUyLDEwNi4yMSwzMTcsMTAzLjIzcy0xMTUuNDItMTMtMTczLjE1LTE5LjU2Qzk2LjQ3LDc4LjI1LDQ3LjE4LDc1LjE4LDAsODAuMDd2MzIuNDFINjMwVjBDNjA2LjQ0LDcuNTIsNTg1Ljg5LDE5LjA5LDU2Ny42NywzMS4xNFoiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjY0Ii8+PHBhdGggZD0iTTU2Ny42NywzOC42N2MtMjYuMjIsMTcuMzUtNTAsMzYuNTUtODEuOCw1MEM0MzcuNTIsMTA5LDM3NS41MiwxMTMuNzMsMzE3LDExMC43NXMtMTE1LjQyLTEzLTE3My4xNS0xOS41NkM5Ni40Nyw4NS43Nyw0Ny4xOCw4Mi43LDAsODcuNTlWMTIwSDYzMFY3LjUyQzYwNi40NCwxNSw1ODUuODksMjYuNjEsNTY3LjY3LDM4LjY3WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="; 1778 break; 1779 case "3": 1780 elem.options.style = 1781 elem.options.prefix + 1782 "NjAiPjx0aXRsZT5Bc3NldCAxNzI8L3RpdGxlPjxwYXRoIGQ9Ik0wLDAsNDAwLDUzLjIzLDYzMCwwVjYwSDBaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"; 1783 break; 1784 case "4": 1785 elem.options.style = 1786 elem.options.prefix + 1787 "ODAiPjx0aXRsZT40PC90aXRsZT48cGF0aCBkPSJNMjYxLjIsNjQuOUMzNjcuNiw1NC43LDQ5OS42LDM5LjcsNjMwLDE4LjVWMEM0OTcuOCwzMS40LDM2My43LDUyLDI2MS4yLDY0LjlaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4zMDAwMDAwMDAwMDAwMDAwNCIvPjxwYXRoIGQ9Ik0yNjEuMiw2NC45Yy00MSwzLjktNzguMiw3LjEtMTEwLDkuNiwxMy4yLS40LDI3LS45LDQxLjUtMS42QzMxNSw2Ny43LDQ3OC40LDU5LjQsNjMwLDM0LjhWMTguNUM0OT
1787kuMSwzOS44LDM2Ny4zLDU0LjgsMjYxLjIsNjQuOVoiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjYwMDAwMDAwMDAwMDAwMDEiLz48cGF0aCBkPSJNMTkyLjcsNzIuOWMtMTQuNS43LTI4LjMsMS4yLTQxLjUsMS42QzU5LjksNzcuNywwLDc3LjQsMCw3Ny40VjgwSDYzMFYzMy44QzQ3OC40LDU4LjQsMzE1LDY3LjcsMTkyLjcsNzIuOVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1788 break; 1789 case "5": 1790 elem.options.style = 1791 elem.options.prefix + 1792 "MTAwIj48dGl0bGU+QXNzZXQgMTczPC90aXRsZT48cGF0aCBkPSJNMCw1Ni44NGwxMDgsMzlMNDY4LDAsNjMwLDY4LjQyVjEwMEgwWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="; 1793 break; 1794 case "6": 1795 elem.options.style = 1796 elem.options.prefix + 1797 "MTIwIj48dGl0bGU+NjwvdGl0bGU+PHBhdGggZD0iTTYxNS41LDIuNWMtNDEuMyw1LjgtNzcuNCwxMi43LTExNiwxMy43LTIyLjIuNi00NC44LTMuMy02Ny4yLjQtNDguOCw4LjEtMTA3LjgsNDMuNS0xNTcuNyw2Mi42LTQyLjQsMTYuMi02OS45LDE2LTk4LjcsMy44LTIxLjEtOS00Mi4xLTIyLjktNjUuMi0zMy4xLTI5LjQtMTMtNjIuNC0yNC4yLTk4LjktMTIuM2wtMS4xLjNMMCw0MS42VjUzLjhsMTAuNy0zLjYsMS4xLS40YzQyLjEtMTMuNyw2My4xLTUuNiw5OC45LDUuNiwyMi43LDcsNDQuMSwyMCw2NS4yLDI4LjksMzAuOSwxMy4xLDU1LjgsMTMsOTguNy0xLDQ5LjktMTYuNCwxMDguOS01MS44LDE1Ny43LTU5LjksMjIuNC0zLjcsNDUuMi00LjUsNjcuMi0uNCwzNy44LDcuMiw3NC43LDcuMSwxMTYsMS4zLDUtLjcsOS44LTEuNSwxNC41LTIuNVYwQzYyNS4zLDEsNjIwLjUsMS45LDYxNS41LDIuNVoiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjM1MDAwMDAwMDAwMDAwMDAzIi8+PHBhdGggZD0iTTQ5OS41LDIzYy0yMi00LjEtNDQuOC0zLjMtNjcuMi40LTQ4LjgsOC4xLTEwNy44LDQzLjUtMTU3LjcsNTkuOS00Mi45LDE0LTY3LjgsMTQuMS05OC43LDEtMjEuMS04LjktNDIuNS0yMS45LTY1LjItMjguOUM3NC45LDQ0LjIsNTMuOSwzNi4xLDExLjgsNDkuOGwtMS4xLjRMMCw1My44VjYybDEwLjctMy42LDEuMS0uNGMzNi41LTExLjksNjguOC04LDk4LjksMS40LDIyLjcsNy4xLDQ0LjEsMTcuMyw2NS4yLDI2LjMsMjguOCwxMi4yLDU1LjcsMTIuOSw5OS4xLDIuOSw1Mi41LTEyLjEsMTA3LjEtNTEuNywxNTUuOS01OS44LDIyLjMtMy44
1797LDQ2LjYtMS44LDY4LjYsMi40LDM3LjgsNy4xLDc0LjcsMjIsMTE2LDE2LjMsNS0uNyw5LjgtMS42LDE0LjUtMi42VjIxLjhjLTQuNywxLTkuNSwxLjgtMTQuNSwyLjVDNTc0LjIsMzAuMSw1MzcuMywzMC4yLDQ5OS41LDIzWiIgc3R5bGU9ImZpbGw6I2ZmZjtvcGFjaXR5OjAuNSIvPjxwYXRoIGQ9Ik00OTkuNSwzMS4yYy0yMi00LjItNDYuMy02LjItNjguNi0yLjRDMzgyLjEsMzYuOSwzMjcuNSw3Ni41LDI3NSw4OC42Yy00My40LDEwLTcwLjMsOS4zLTk5LjEtMi45LTIxLjEtOS00Mi41LTE5LjItNjUuMi0yNi4zQzgwLjYsNTAsNDguMyw0Ni4xLDExLjgsNThsLTEuMS40TDAsNjJ2NThINjMwVjQ0LjljLTQuNywxLTkuNSwxLjktMTQuNSwyLjZDNTc0LjIsNTMuMiw1MzcuMywzOC4zLDQ5OS41LDMxLjJaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"; 1798 break; 1799 case "7": 1800 elem.options.style = 1801 elem.options.prefix + 1802 "MTIwIj48dGl0bGU+QXNzZXQgMTc0PC90aXRsZT48cGF0aCBkPSJNMCwwLDYzMCwxMjBIMFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1803 break; 1804 case "8": 1805 elem.options.style = 1806 elem.options.prefix + 1807 "MTIwIj48dGl0bGU+ODwvdGl0bGU+PHBhdGggZD0iTTQ1Ni43LDUzLjZDNDM5LjgsNDIuOSwzOTYuOSwxLjgsMzQzLjIsMzAuMWMtMzUuNywxOC43LTg0LDcxLjUtMTI3LjgsNzEuOS0zNi4xLjMtNTcuOC0yMC4yLTgxLjQtMzUuMS0xNy4zLTExLTM1LTIzLjUtNTMuNi0zMi4yQzU1LjYsMjMuMiwzMCwxMS44LjEsMjYuNGMtLjMuMSwwLDkzLjYsMCw5My42SDYzMFYzMS44Yy0zLjksMS4zLTEzLDE3LjMtNjUuMiwzMi44QzUzMy4zLDc2LjQsNDkyLjQsNzYuNCw0NTYuNyw1My42WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjxnIHN0eWxlPSJvcGFjaXR5OjAuMzgiPjxwYXRoIGQ9Ik02MTEsNjMuNmwtMiw0Mi44LTUyNy45LDUtODEtMS4xVjYxLjhhMTk0LjcsMTk0LjcsMCwwLDAsMjQuNyw5LjQsMTQ2LjgsMTQ2LjgsMCwwLDAsNDMuOSw2LjJDOTQuNiw3Ny4zLDEyMC41LDY1LDE0Niw1MC41YzE4LjctMTAuNiwzNy4xLTIyLjMsNTUuMi0zMS4zQzIxMy43LDEyLjksMjI2LDgsMjM4LjEsNS43YzI0LjMtNC42LDUxLjQtMy4yLDcyLjUsNy45bDM2LjcsMTkuNmMzNy4zLDE5LjksNzMuMSwzOC45LDEwNC4yLDUxLjdDNDY1LjQsOTAuNiw0NzguMyw5NS4yLDQ5MCw5OGMxMy4zLDMuMywyNS4xLDQuNSwzNSwyLjlhNzUuNSw3NS41LDAsMCwwLDkuMy0zLjdsNy40LTMuM2MxNS40LTcuMSwzOC44LTE5LjEsNTkuNi0zMy4yLDUuNS0zLjcuNi40LDUuNy0zLjRDNjE5LDQ4LjIsNjA4LjcsNjQuMiw2MTEsNjMuNloiIHN0eWxlPSJmaWxsOiNmZmYiLz48L2c+PHBhdGggZD0iTTU4MS44LDExLjRDNTUyLC4yLDUzMS41LDMuOSw1MDcuMiw4LjQsNDcyLjEsMTUsNDM0LjcsNDQuMSwzOTYuNiw2My4yYy0xNi4zLDguMS0zMi44LDE0LjQtNDkuMiwxNi4zLTE1LjgtNS40LTMyLTEyLjItNDcuNi0xOS4yLTM3LjktMTcuMS03Mi42LTM1LjctOTEuOS0zOS44bC02LjctMS4zYy0yMi4yLTQuMi00NS45LTUuOC02Ny45LTEuNy0xMC40LDItMjEsNS45LTMxLjgsMTFDNzYuNiw0MC4yLDUwLjksNTcuOSwyNC44LDcxLjJBMjEzLjYsMjEzLjYsMCwwLDEsLjEsODIuMXYzMC44bDgxLTEuNSwzMTIuMy01LjcsMS40LjNMNjMwLDExMS44di04MEM2MTMsMjYuNCw2MTkuMywyNS41LDU4MS44LDExLjRaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC40OSIvPjxnIHN0eWxlPSJvcGFjaXR5OjAuMzgiPjxwYXRoIGQ9Ik01NDUuNCw5N2wtMTEuMS4yTDQ5MCw5OCwuMSwxMDcuMVYwQzIxLjMtLjQsNDEuMyw0LjEsNjAuNCwxMC44YTQwMy43LDQwMy43LDAsMCwxLDQxLjEsMTcuN2MxMCw0LjksMTkuOSw5LjksMjkuNywxNC42LDUsMi4zLDkuOSw0LjksMTQuOCw3LjQsMjYuMSwxMy41LDUyLjcsMjgsOTIuOSwyNy44LDIwLjMtLjEsNDAuNy03LjcsNjAuOS0xOCwxNi04LjIsMzEuOS0xOCw0Ny41LTI3LjEsMjAuOS0xMi4xLDQxLjMtMjIuOSw2MC45LTI2LjZDNDMyLjUsMiw0ODEuMSw4LjYsNTA0LDE4czQ5LjYsMjMuNiw5Ny4zLDQyLjdDNjIwLjIsNjguNCw1NDUuNCw5Nyw1NDUuNCw5N1oiIHN0eWxlPSJmaWxsOiNmZmYiLz48L2c+PC9zdmc+"; 1808 break; 1809 case "9": 1810 elem.options.style = 1811 elem.options.prefix + 1812 "MTAwIj48dGl0bGU+QXNzZXQgMTgyPC90aXRsZT48cGF0aCBkPSJNMCw0NS42NVMxNTksMCwzMjIsMCw2MzAsNDUuNjUsNjMwLDQ1LjY1VjEwMEgwWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="; 1813 break; 1814 case "10": 1815 elem.options.style = 1816 elem.options.prefix + 1817 "MTIwIj48dGl0bGU+MTA8L3RpdGxlPjxwYXRoIGQ9Ik0wLDEwOC4xSDYzMFYwUzQ3NSwxMDQuNiwzMTQsMTA0LjYsMCwwLDAsMFoiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjIyIi8+PHBhdGggZD0iTTAsMTA2LjlINjMwVjE3LjhzLTE1NSw4Ny45LTMxNiw4Ny45UzAsMTksMCwxOVoiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjM2Ii8+PHBhdGggZD0iTTAsMTIwSDYzMFY0NS4xcy0xNTUsNjEuOC0zMTYsNjEuOFMwLDQ1LjEsMCw0NS4xWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="; 1818 break; 1819 case "11": 1820 elem.options.style = 1821 elem.options.prefix + 1822 "MTIwIj48dGl0bGU+MTE8L3RpdGxlPjxwYXRoIGQ9Ik01MTAuNywyLjljLTk4LjksMjEuOS0yMjIuMyw4NS41LTMyMiw4NS41QzgwLjEsODguNCwyNC4xLDU2LjEsMCwzNi40VjEyMEg2MzBWMTUuMkM2MDIuNCw2LjksNTUwLjEtNS44LDUxMC43LDIuOVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1823 break; 1824 case "12": 1825 elem.options.style = 1826 elem.options.prefix + 1827 "MTIwIj48dGl0bGU+MTI8L3RpdGxlPjxwYXRoIGQ9Ik02MzAsMzQuNWE1NCw1NCwwLDAsMS05LDIuM0M1NzguMyw0Ni4xLDU1Ni4xLDI0LDUxNy4yLDEyLjVjLTIyLjktNi43LTQ3LjktOS44LTcxLTMuOUMzOTUuOCwyMS43LDM0MC4zLDEwMiwyODUuMSwxMDIuNGMtNDUuNC4zLTcyLjYtMjYuNS0xMDIuMy00Ni4xLTIxLjgtMTQuNC00NC0zMC44LTY3LjQtNDIuMUM4NC4yLS45LDUwLjktNy4yLDEzLjIsMTEuOGwtMS4yLjZjLTMuNSwxLjktOC4yLDMuOS0xMiw1LjlWMTIwSDYzMFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1828 break; 1829 case "13": 1830 elem.options.style = 1831 elem.options.prefix + 1832 "OTAiPjx0aXRsZT4xMzwvdGl0bGU+PHBhdGggZD0iTTYzMCw5MEgxTDAsMFMxMzEsNzYuNiwzNjYsMzQuMmMxMjAtMjEuNywyNjQsNC41LDI2NCw0LjVaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4xNiIvPjxwYXRoIGQ9Ik0xLDkwSDYzMFYwUzQ4OSw3NC4zLDI1NCwzMS45QzEzNCwxMC4zLDAsMzMsMCwzM1oiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjIiLz48cGF0aCBkPSJNMCw5MEg2MzBWMTguMlM0NzUsNzcuNSwzMTQsNzcuNSwwLDE4LjIsMCwxOC4yWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="; 1833 break; 1834 case "14": 1835 elem.options.style = 1836 elem.options.prefix + 1837 "NjAiPjx0aXRsZT5Bc3NldCAxNzg8L3RpdGxlPjxwYXRoIGQ9Ik0wLDAsMTEzLDE5LDU4MiwyOS40Nyw2MzAsMFY2MEgwWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="; 1838 break; 1839 case "15": 1840 elem.options.style = 1841 elem.options.prefix + 1842 "ODAiPjx0aXRsZT5Bc3NldCAxNzc8L3RpdGxlPjxwYXRoIGQ9Ik0zMTUsMCw2MzAsODBIMFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1843 break; 1844 case "16": 1845 elem.options.style = 1846 elem.options.prefix + 1847 "ODAiPjx0aXRsZT4xNjwvdGl0bGU+PHBhdGggZD0iTTAsODBTMjA4LDAsMzE1LDAsNjMwLDgwLDYzMCw4MFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1848 break; 1849 case "17": 1850 elem.options.style = 1851 elem.options.prefix + 1852 "MTIwIj48dGl0bGU+MTc8L3RpdGxlPjxwYXRoIGQ9Ik0zMjAsMTZjODguNCwyLDMxMCwxMDQsMzEwLDEwNFM1NjkuNiw4Ny4zLDQ5OS41LDU2Yy0xOS43LTguOC00MC4xLTE3LjUtNjAuMi0yNS4zQzM5NS4yLDEzLjYsMzUyLjcuNywzMjQsMCwyMzUtMiwwLDEyMCwwLDEyMGwxNC4xLTUuNUM2Mi41LDkyLjgsMjQzLjMsMTQuMywzMjAsMTZaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4zMSIvPjxwYXRoIGQ9Ik0xNC4xLDExNC41QzY0LjksOTUsMjM5LjQsMzAuMywzMTUsMzJjODguNCwyLDMxNSw4OCwzMTUsODhTNDA4LjQsMTgsMzIwLDE2QzI0My4zLDE0LjMsNjIuNSw5Mi44LDE0LjEsMTE0LjVaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC40MyIvPjxwYXRoIGQ9Ik0xNC4xLDExNC41QzY0LjksOTUsMjM5LjQsMzAuMywzMTUsMzJjODguNCwyLDMxNSw4OCwzMTUsODhTNDA4LjQsMTgsMzIwLDE2QzI0My4zLDE0LjMsNjIuNSw5Mi44LDE0LjEsMTE0LjVaIiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6MC4zMSIvPjxwYXRoIGQ9Ik0zMTUsMzJDMjM5LjQsMzAuMyw2NC45LDk1LDE0LjEsMTE0LjVMMiwxMjB
1852INjMwUzQwMy40LDM0LDMxNSwzMloiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1853 break; 1854 case "18": 1855 elem.options.style = 1856 elem.options.prefix + 1857 "NDAiPjx0aXRsZT5Bc3NldCAxNzk8L3RpdGxlPjxwYXRoIGQ9Ik0wLDE4LjEsNTMsMS45LDEwMywyMGw1OS05LjUyLDU2LDE1LjIzLDcyLTcuNjEsNDYsNC43NiwzNC00Ljc2LDM2LDguNTcsNzYtMTksODUsMTUuMjRMNjMwLDBWMzcuMTRIMFoiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTowLjQ3MDAwMDAwMDAwMDAwMDAzIi8+PHBhdGggZD0iTTAsMjAsNTMsMy44MSwxMDMsMjEuOWw1OS05LjUyLDU2LDE1LjI0TDI5MCwyMGw0Niw0Ljc2TDM3MCwyMGwzNiw5LjUyLDc2LTE3LjE0LDg1LDE2LjE5LDYzLTE2LjE5VjQwSDBaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"; 1858 break; 1859 case "19": 1860 elem.options.style = 1861 elem.options.prefix + 1862 "ODAiPjx0aXRsZT4xOTwvdGl0bGU+PHBhdGggZD0iTTYzMCwzNi45YTM0LjYsMzQuNiwwLDAsMC0xNi41LTQuMmMtMTcuMiwwLTMxLjgsMTIuNy0zNi43LDMwLjNhMjEuMiwyMS4yLDAsMCwwLTkuMy0yLjIsMjEuOCwyMS44LDAsMCwwLTEzLjksNS4xLDM4LjcsMzguNywwLDAsMC00MC40LTQuOGMtNS4yLTcuNy0xMy40LTEyLjYtMjIuNy0xMi42YTI1LjcsMjUuNywwLDAsMC04LjcsMS41QzQ3Mi45LDI3LjgsNDUzLDEyLjQsNDMwLDEyLjRzLTQyLjcsMTUuMy01MS43LDM3LjJjLTcuMi0xMC45LTE4LjgtMTguMS0zMS44LTE4LjFhMzcsMzcsMCwwLDAtMjQsOS4yYy02LTEwLjMtMTYuMy0xNy0yOC0xNy0xMy44LDAtMjUuNiw5LjMtMzAuNywyMi43QTI2LjUsMjYuNSwwLDAsMCwyNDQsMzcuMmEyMiwyMiwwLDAsMC01LjguN2MtNC0xMS42LTE0LTE5LjktMjUuNy0xOS45YTI0LjcsMjQuNywwLDAsMC05LjQsMS45QzE4OS4yLDcuNCwxNzEuNiwwLDE1Mi41LDAsMTI0LjYsMCwxMDAsMTUuOCw4NS4zLDM5LjlBMjcuNiwyNy42LDAsMCwwLDYzLDI4LjJhMjMuOSwyMy45LDAsMCwwLTcuMSwxQzQ3LjIsMTMsMzEuNSwyLjMsMTMuNSwyLjNBNDMuMyw0My4zLDAsMCwwLDAsNC40VjgwSDYzMFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1863 break; 1864 case "20": 1865 elem.options.style = 1866 elem.options.prefix + 1867 "MTAwIj48dGl0bGU+QXNzZXQgMTgwPC90aXRsZT48cGF0aCBkPSJNNjMwLDYwLjgyVjEwMEgwVjk1Ljg4bDExLjkxLTYuNDlMODQsNDMuMzRsMzYuNDksMjQuNDVMMTYwLDQ2LDIzMi4wNSwwbDQ5LjA3LDMyLjg5LDM0LjA3LDI5LjU5LDY4LjI5LDI3Ljc1TDQyMyw2NWw0Mi4yLDI4LjI5LDE4LjM5LTE2LDQ5LjA3LTMyLjg5TDU5NCw4My42MSw2MjgsNjEuOVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="; 1868 break; 1869 } 1870 var decodeSvg = atob(elem.options.style); 1871 var wrapper = document.createElement("div"); 1872 wrapper.innerHTML = decodeSvg; 1873 var svg = wrapper.firstChild; 1874 var paths = svg.getElementsByTagName("path"); 1875 [].forEach.call(paths, function(path) { 1876 path.style.fill = elem.options.color; 1877 }); 1878 1879 svg.setAttribute("preserveAspectRatio", "none"); 1880 if ($body.hasClass("b--desktop")) { 1881 if (elem.options.height) { 1882 svg.setAttribute( 1883 "style", 1884 "height:" + Number(elem.options.height).toFixed() + "px" 1885 ); 1886 } else { 1887 svg.setAttribute( 1888 "style", 1889 "height:" + Number(svg.height.baseVal.value).toFixed() + "px" 1890 ); 1891 } 1892 } else { 1893 if (elem.options.height) { 1894 svg.setAttribute( 1895 "style", 1896 "height:" + Number(elem.options.height).toFixed() / 2 + "px" 1897 ); 1898 } else { 1899 svg.setAttribute( 1900 "style", 1901 "height:" + Number(svg.height.baseVal.value).toFixed() / 2 + "px" 1902 ); 1903 } 1904 } 1905 $(".shape-divider svg title").remove(); 1906 elem.css({ 1907 "z-index": elem.options.zIndex, 1908 opacity: elem.options.opacity, 1909 }); 1910 elem.append(svg); 1911 }); 1912 }, 1913 responsiveVideos: function() { 1914 //selecting elements 1915 /* var selectors = [ 1916 'iframe[src*="player.vimeo.com"]', 1917 'iframe[src*="youtube.com"]', 1918 'iframe[src*="youtube-nocookie.com"]', 1919 'iframe[src*="kickstarter.com"][src*="video.html"]', 1920 "object", 1921 "embed", 1922 ]; 1923 var videoContainers = $( 1924 "section, .content, .post-content, .video-js, .post-video, .video-wrap, .ajax-quick-view,#slider:not(.revslider-wrap)" 1925 ); 1926 var elem = videoContainers.find(selectors.join(",")); 1927 if (elem) { 1928 elem.each(function () { 1929 $(this).wrap( 1930 '<div class="embed-responsive embed-responsive-16by9"></div>' 1931 ); 1932 setTimeout(function(){ 1933 $(".embed-responsive-16by9").find($("iframe")).addClass("embed-responsive-item"); 1934 },500); 1935 }); 1936 } */ 1937 }, 1938 counters: function() { 1939 var $counter = $(".counter"); 1940 if ($counter.length > 0) { 1941 //Check if countTo plugin is loaded 1942 if (typeof $.fn.countTo === "undefined") { 1943 INSPIRO.elements.notification( 1944 "Warning", 1945 "jQuery countTo plugin is missing in plugins.js file.", 1946 "danger" 1947 ); 1948 return true; 1949 } 1950 //Initializing countTo plugin 1951 $counter.each(function() { 1952 var elem = $(this), 1953 prefix = elem.find("span").attr("data-prefix") || "", 1954 suffix = elem.find("span").attr("data-suffix") || ""; 1955 setTimeout(function() { 1956 new Waypoint({ 1957 element: elem, 1958 handler: function() { 1959 elem.find("span").countTo({ 1960 refreshInterval: 2, 1961 formatter: function(value, options) { 1962 return ( 1963 String(prefix) + 1964 value.toFixed(options.decimals) + 1965 String(suffix) 1966 ); 1967 }, 1968 }); 1969 this.destroy(); 1970 }, 1971 offset: "104%", 1972 }); 1973 }, 100); 1974 }); 1975 } 1976 }, 1977 countdownTimer: function() { 1978 var $countdownTimer = $(".countdown"); 1979 if ($countdownTimer.length > 0) { 1980 //Check if countdown plugin is loaded 1981 if (typeof $.fn.countdown === "undefined") { 1982 INSPIRO.elements.notification( 1983 "Warning", 1984 "jQuery countdown plugin is missing in plugins.js file.", 1985 "danger" 1986 ); 1987 return true; 1988 } 1989 $(".countdown").each(function(index, element) { 1990 var elem = $(element), 1991 finalDate = elem.attr("data-countdown"); 1992 1993 elem.countdown(finalDate, function(event) { 1994 elem.html( 1995 event.strftime( 1996 '<div class="countdown-container"><div class="countdown-box"><div class="number">%-D</div><span>Days</span></div>' + 1997 '<div class="countdown-box"><div class="number">%H</div><span>Hours</span></div>' + 1998 '<div class="countdown-box"><div class="number">%M</div><span>Minutes</span></div>' + 1999 '<div class="countdown-box"><div class="number">%S</div><span>Seconds</span></div></div>' 2000 ) 2001 ); 2002 }); 2003 }); 2004 } 2005 }, 2006 progressBar: function() { 2007 var $progressBar = $(".p-progress-bar") || $(".progress-bar"); 2008 if ($progressBar.length > 0) { 2009 $progressBar.each(function(i, elem) { 2010 var $elem = $(this), 2011 percent = $elem.attr("data-percent") || "100",
2012 delay = $elem.attr("data-delay") || "60", 2013 type = $elem.attr("data-type") || "%"; 2014 if (!$elem.hasClass("progress-animated")) { 2015 $elem.css({ 2016 width: "0%", 2017 }); 2018 } 2019 var progressBarRun = function() { 2020 $elem 2021 .animate({ 2022 width: percent + "%", 2023 }, 2024 "easeInOutCirc" 2025 ) 2026 .addClass("progress-animated"); 2027 $elem 2028 .delay(delay) 2029 .append( 2030 '<span class="progress-type">' + 2031 type + 2032 '</span><span class="progress-number animate__animated animate__fadeIn">' + 2033 percent + 2034 "</span>" 2035 ); 2036 }; 2037 if ( 2038 $body.hasClass("breakpoint-lg") || 2039 $body.hasClass("breakpoint-xl") 2040 ) { 2041 new Waypoint({ 2042 element: $(elem), 2043 handler: function() { 2044 var t = setTimeout(function() { 2045 progressBarRun(); 2046 }, delay); 2047 this.destroy(); 2048 }, 2049 offset: "100%", 2050 }); 2051 } else { 2052 progressBarRun(); 2053 } 2054 }); 2055 } 2056 }, 2057 pieChart: function() { 2058 var $pieChart = $(".pie-chart"); 2059 if ($pieChart.length > 0) { 2060 //Check if easyPieChart plugin is loaded 2061 if (typeof $.fn.easyPieChart === "undefined") { 2062 INSPIRO.elements.notification( 2063 "Warning", 2064 "jQuery easyPieChart plugin is missing in plugins.js file.", 2065 "danger" 2066 ); 2067 return true; 2068 } 2069 $pieChart.each(function() { 2070 var elem = $(this); 2071 //Plugin Options 2072 elem.options = { 2073 barColor: elem.attr("data-color") || $theme_color, 2074 trackColor: elem.attr("data-trackcolor") || "rgba(0,0,0,0.10)", 2075 scaleColor: elem.attr("data-scaleColor") || false, 2076 scaleLength: elem.attr("data-scaleLength") || 5, 2077 lineCap: elem.attr("data-lineCap") || "square", 2078 lineWidth: elem.attr("data-lineWidth") || 6, 2079 size: elem.attr("data-size") || 160, 2080 rotate: elem.attr("data-rotate") || 0, 2081 animate: elem.attr("data-animate") || 2600, 2082 elemEasing: elem.attr("data-easing") || "easeInOutExpo", 2083 }; 2084 elem.find("span, i").css({ 2085 width: elem.options.size + "px", 2086 height: elem.options.size + "px", 2087 "line-height": elem.options.size + "px", 2088 }); 2089 //Initializing jQuery easyPieChart plugin and passing the options 2090 2091 setTimeout(function() { 2092 new Waypoint({ 2093 element: elem, 2094 handler: function() { 2095 elem.easyPieChart({ 2096 barColor: elem.options.barColor, 2097 trackColor: elem.options.trackColor, 2098 scaleColor: elem.options.scaleColor, 2099 scaleLength: elem.options.scaleLength, 2100 lineCap: elem.options.lineCap, 2101 lineWidth: Number(elem.options.lineWidth), 2102 size: Number(elem.options.size), 2103 rotate: Number(elem.options.rotate), 2104 animate: Number(elem.options.animate), 2105 elemEasing: elem.options.elemEasing, 2106 onStep: function(from, to, percent) { 2107 elem.find("span.percent").text(Math.round(percent)); 2108 }, 2109 }); 2110 this.destroy(); 2111 }, 2112 offset: "100%", 2113 }); 2114 }, 200); 2115 }); 2116 } 2117 }, 2118 maps: function() { 2119 var $map = $(".map"); 2120 2121 if ($map.length > 0) { 2122 //Check if gMap plugin is loaded 2123 if (typeof $.fn.gmap3 === "undefined") { 2124 INSPIRO.elements.notification( 2125 "Warning", 2126 "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.", 2127 "danger" 2128 ); 2129 return true; 2130 } 2131 $map.each(function() { 2132 var elem = $(this); 2133 //Plugin Options 2134 elem.options = { 2135 latitude: elem.attr("data-latitude") || "-37.817240", 2136 longitude: elem.attr("data-longitude") || "144.955820", 2137 info: elem.attr("data-info"), 2138 maptype: elem.attr("data-type") || "ROADMAP", 2139 zoom: elem.attr("data-zoom") || 14, 2140 fullscreen: elem.data("fullscreen") == false ? false : true, 2141 icon: elem.attr("data-icon"), 2142 mapColor: elem.attr("data-style") || null, 2143 }; 2144 var mapsStyle; 2145 if (window.MAPS) { 2146 if (elem.options.mapColor) { 2147 mapsStyle = MAPS[elem.options.mapColor]; 2148 } else { 2149 mapsStyle = null; 2150 } 2151 } 2152 //Initialize google maps plugin and passing the options 2153 elem.gmap3({ 2154 center: [ 2155 Number(elem.options.latitude), 2156 Number(elem.options.longitude), 2157 ], 2158 zoom: Number(elem.options.zoom), 2159 mapTypeId: google.maps.MapTypeId[elem.options.maptype], 2160 scrollwheel: false, 2161 zoomControl: true, 2162 mapTypeControl: false, 2163 streetViewControl: true, 2164 fullscreenControl: elem.options.fullscreen, 2165 styles: mapsStyle, 2166 }); 2167 if (elem.options.icon) { 2168 elem.gmap3().marker({ 2169 position: [ 2170 Number(elem.options.latitude), 2171 Number(elem.options.longitude), 2172 ], 2173 icon: elem.options.icon, 2174 }); 2175 } else { 2176 elem 2177 .gmap3() 2178 .marker({ 2179 position: [ 2180 Number(elem.options.latitude), 2181 Number(elem.options.longitude), 2182 ], 2183 icon: " ", 2184 }) 2185 .overlay({ 2186 position: [ 2187 Number(elem.options.latitude), 2188 Number(elem.options.longitude), 2189 ], 2190 content: '<div class="animated-dot"></div>', 2191 }); 2192 } 2193 if (elem.options.info) { 2194 elem 2195 .gmap3() 2196 .infowindow({ 2197 position: [ 2198 Number(elem.options.latitude), 2199 Number(elem.options.longitude), 2200 ], 2201 content: elem.options.info, 2202 pixelOffset: new google.maps.Size(0, -10), 2203 }) 2204 .then(function(infowindow) { 2205 var map = this.get(0); 2206 var marker = this.get(1);
2207 marker.addListener("click", function() { 2208 infowindow.open(map); 2209 }); 2210 }); 2211 } 2212 }); 2213 } 2214 }, 2215 gridLayout: function() { 2216 if ($gridLayout.length > 0) { 2217 //Check if isotope plugin is loaded 2218 if (typeof $.fn.isotope === "undefined") { 2219 INSPIRO.elements.notification( 2220 "Warning", 2221 "jQuery isotope plugin is missing in plugins.js file.", 2222 "danger" 2223 ); 2224 return true; 2225 } 2226 2227 var isotopeRTL; 2228 2229 if (INSPIRO.core.rtlStatus() == true) { 2230 isotopeRTL = false; 2231 } else { 2232 isotopeRTL = true; 2233 } 2234 2235 $gridLayout.each(function() { 2236 var elem = $(this); 2237 elem.options = { 2238 itemSelector: elem.attr("data-item") || "portfolio-item", 2239 layoutMode: elem.attr("data-layout") || "masonry", 2240 filter: elem.attr("data-default-filter") || "*", 2241 stagger: elem.attr("data-stagger") || 0, 2242 autoHeight: elem.data("auto-height") == false ? false : true, 2243 gridMargin: elem.attr("data-margin") || 20, 2244 gridMarginXs: elem.attr("data-margin-xs"), 2245 transitionDuration: elem.attr("data-transition") || "0.45s", 2246 isOriginLeft: isotopeRTL, 2247 }; 2248 2249 $(window).breakpoints("lessThan", "lg", function() { 2250 elem.options.gridMargin = 2251 elem.options.gridMarginXs || elem.options.gridMargin; 2252 }); 2253 2254 elem.css( 2255 "margin", 2256 "0 -" + 2257 elem.options.gridMargin + 2258 "px -" + 2259 elem.options.gridMargin + 2260 "px 0" 2261 ); 2262 elem 2263 .find("." + elem.options.itemSelector) 2264 .css( 2265 "padding", 2266 "0 " + 2267 elem.options.gridMargin + 2268 "px " + 2269 elem.options.gridMargin + 2270 "px 0" 2271 ); 2272 2273 if (elem.attr("data-default-filter")) { 2274 var elemDefaultFilter = elem.options.filter; 2275 elem.options.filter = "." + elem.options.filter; 2276 } 2277 2278 elem.append('<div class="grid-loader"></div>'); 2279 var $isotopelayout = $(elem).imagesLoaded(function() { 2280 // init Isotope after all images have loaded 2281 $isotopelayout.isotope({ 2282 layoutMode: elem.options.layoutMode, 2283 transitionDuration: elem.options.transitionDuration, 2284 stagger: Number(elem.options.stagger), 2285 resize: true, 2286 itemSelector: "." + elem.options.itemSelector + ":not(.grid-loader)", 2287 isOriginLeft: elem.options.isOriginLeft, 2288 autoHeight: elem.options.autoHeight, 2289 masonry: { 2290 columnWidth: elem.find( 2291 "." + elem.options.itemSelector + ":not(.large-width)" 2292 )[0], 2293 }, 2294 filter: elem.options.filter, 2295 }); 2296 elem.remove(".grid-loader").addClass("grid-loaded"); 2297 }); 2298 2299 //Infinity Scroll 2300 if (elem.next().hasClass("infinite-scroll")) { 2301 INSPIRO.elements.gridLayoutInfinite( 2302 elem, 2303 elem.options.itemSelector, 2304 elem.options.gridMargin 2305 ); 2306 } 2307 if ($gridFilter.length > 0) { 2308 $gridFilter.each(function() { 2309 var elemFilter = $(this), 2310 $filterItem = elemFilter.find("a"), 2311 elemFilterLayout = elemFilter.attr("data-layout"), 2312 $filterItemActiveClass = "active"; 2313 $filterItem.on("click", function() { 2314 elemFilter.find("li").removeClass($filterItemActiveClass); 2315 $(this).parent("li").addClass($filterItemActiveClass); 2316 2317 var filterValue = $(this).attr("data-category"); 2318 $(elemFilterLayout) 2319 .isotope({ 2320 filter: filterValue, 2321 }) 2322 .on("layoutComplete", function() { 2323 $window.trigger("scroll"); 2324 INSPIRO.elements.naTo(); 2325 }); 2326 if ($(".grid-active-title").length > 0) { 2327 $(".grid-active-title").empty().append($(this).text()); 2328 } 2329 return false; 2330 }); 2331 if (elemDefaultFilter) { 2332 var filterDefaultValue = elemFilter.find( 2333 $('[data-category="' + elem.options.filter + '"]') 2334 ); 2335 elemFilter.find("li").removeClass($filterItemActiveClass); 2336 filterDefaultValue 2337 .parent("li") 2338 .addClass($filterItemActiveClass); 2339 } else { 2340 var filterDefaultValue = elemFilter.find( 2341 $('[data-category="*"]') 2342 ); 2343 filterDefaultValue 2344 .parent("li") 2345 .addClass($filterItemActiveClass); 2346 } 2347 }); 2348 } 2349 }); 2350 } 2351 }, 2352 gridLayoutInfinite: function(element, elementSelector, elemGridMargin) { 2353 //Check if infiniteScroll plugin is loaded 2354 if (typeof $.fn.infiniteScroll === "undefined") { 2355 INSPIRO.elements.notification( 2356 "Warning", 2357 "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>", 2358 "danger" 2359 ); 2360 return true; 2361 } 2362 var elem = element, 2363 gridItem = elementSelector, 2364 gridMargin = elemGridMargin, 2365 loadOnScroll = true, 2366 threshold = 500, 2367 prefilli = true, 2368 pathSelector,
2369 loadMoreElem = $("#showMore"), 2370 loadMoreBtn = $("#showMore a.btn"), 2371 loadMoreBtnText = $("#showMore a.btn").html(), 2372 loadMoreMessage = $( 2373 '<div class="infinite-scroll-message"><p class="animate__animated visible animate__fadeIn">No more posts to show</p></div>' 2374 ); 2375 2376 pathSelector = $(".infinite-scroll > a").attr("href"); 2377 2378 if (pathSelector.indexOf(".html") > -1) { 2379 pathSelector = pathSelector.replace(/(-\d+)/g, "-{{#}}"); 2380 } else { 2381 pathSelector = ".infinite-scroll > a"; 2382 } 2383 2384 if (loadMoreElem.length > 0) { 2385 loadOnScroll = false; 2386 threshold = false; 2387 prefilli = false; 2388 } 2389 2390 elem.infiniteScroll({ 2391 path: pathSelector, 2392 append: "." + gridItem, 2393 history: false, 2394 button: "#showMore a", 2395 scrollThreshold: threshold, 2396 loadOnScroll: loadOnScroll, 2397 prefill: prefilli, 2398 }); 2399 2400 elem.on("load.infiniteScroll", function(event, response, path, items) { 2401 var $items = $(response).find("." + gridItem); 2402 $items.imagesLoaded(function() { 2403 elem.append($items); 2404 elem.isotope("insert", $items); 2405 }); 2406 }); 2407 2408 elem.on("error.infiniteScroll", function(event, error, path) { 2409 loadMoreElem.addClass("animate__animated visible animate__fadeOut"); 2410 var t = setTimeout(function() { 2411 loadMoreElem.hide(); 2412 elem.after(loadMoreMessage); 2413 }, 500); 2414 var t = setTimeout(function() { 2415 $(".infinite-scroll-message").addClass("animate__animated visible animate__fadeOut"); 2416 }, 3000); 2417 }); 2418 elem.on("append.infiniteScroll", function(event, response, path, items) { 2419 INSPIRO.slider.carousel($(items).find(".carousel")); 2420 loadMoreBtn.html(loadMoreBtnText); 2421 element.css( 2422 "margin", 2423 "0 -" + gridMargin + "px -" + gridMargin + "px 0" 2424 ); 2425 element 2426 .find("." + gridItem) 2427 .css("padding", "0 " + gridMargin + "px " + gridMargin + "px 0"); 2428 }); 2429 }, 2430 2431 tooltip: function() { 2432 var $tooltip = $('[data-bs-toggle="tooltip"]'); 2433 if ($tooltip.length > 0) { 2434 //Check if tooltip plugin is loaded 2435 if (typeof $.fn.tooltip === "undefined") { 2436 INSPIRO.elements.notification( 2437 "Warning: jQuery tooltip plugin is missing in plugins.js file.", 2438 "warning" 2439 ); 2440 return true; 2441 } 2442 //Initialize Tooltip plugin function 2443 $tooltip.tooltip(); 2444 } 2445 }, 2446 popover: function() { 2447 var $popover = $('[data-toggle="popover"]'); 2448 if ($popover.length > 0) { 2449 //Check if popover plugin is loaded 2450 if (typeof $.fn.popover === "undefined") { 2451 INSPIRO.elements.notification( 2452 "Warning: jQuery popover plugin is missing in plugins.js file.", 2453 "warning" 2454 ); 2455 return true; 2456 } 2457 //Initialize Tooltip plugin function 2458 $popover.popover({ 2459 container: "body", 2460 html: true, 2461 }); 2462 } 2463 }, 2464 2465 magnificPopup: function() { 2466 var $lightbox = $("[data-lightbox]"); 2467 if ($lightbox.length > 0) { 2468 //Check if magnificPopup plugin is loaded 2469 if (typeof $.fn.magnificPopup === "undefined") { 2470 INSPIRO.elements.notification( 2471 "Warning", 2472 "jQuery magnificPopup plugin is missing in plugins.js file.", 2473 "danger" 2474 ); 2475 return true; 2476 } 2477 //Get lightbox data type 2478 var getType = { 2479 image: { 2480 type: "image", 2481 closeOnContentClick: true, 2482 removalDelay: 500, 2483 image: { 2484 verticalFit: true, 2485 }, 2486 callbacks: { 2487 beforeOpen: function() { 2488 this.st.image.markup = this.st.image.markup.replace( 2489 "mfp-figure", 2490 "mfp-figure mfp-with-anim" 2491 ); 2492 this.st.mainClass = "mfp-zoom-out"; 2493 }, 2494 }, 2495 }, 2496 gallery: { 2497 delegate: 'a[data-lightbox="gallery-image"], a[data-lightbox="image"]', 2498 type: "image", 2499 image: { 2500 verticalFit: true, 2501 }, 2502 gallery: { 2503 enabled: true, 2504 navigateByImgClick: true, 2505 preload: [0, 1], 2506 }, 2507 removalDelay: 500, 2508 callbacks: { 2509 beforeOpen: function() { 2510 this.st.image.markup = this.st.image.markup.replace( 2511 "mfp-figure", 2512 "mfp-figure mfp-with-anim" 2513 ); 2514 this.st.mainClass = "mfp-zoom-out"; 2515 }, 2516 }, 2517 }, 2518 iframe: { 2519 type: "iframe", 2520 removalDelay: 500, 2521 callbacks: { 2522 beforeOpen: function() { 2523 this.st.image.markup = this.st.image.markup.replace( 2524 "mfp-figure", 2525 "mfp-figure mfp-with-anim" 2526 ); 2527 this.st.mainClass = "mfp-zoom-out"; 2528 }, 2529 }, 2530 }, 2531 ajax: { 2532 type: "ajax", 2533 removalDelay: 500, 2534 callbacks: { 2535 ajaxContentAdded: function(mfpResponse) { 2536 // INSPIRO.elements.functions(); 2537 2538 //Reinitialize carousel function 2539 if ($(".mfp-content").find(".carousel").length > 0) { 2540 INSPIRO.slider.carousel($(".mfp-content").find(".carousel"));
2541 } 2542 }, 2543 }, 2544 }, 2545 inline: { 2546 type: "inline", 2547 removalDelay: 500, 2548 closeBtnInside: true, 2549 midClick: true, 2550 callbacks: { 2551 beforeOpen: function() { 2552 this.st.image.markup = this.st.image.markup.replace( 2553 "mfp-figure", 2554 "mfp-figure mfp-with-anim" 2555 ); 2556 this.st.mainClass = "mfp-zoom-out"; 2557 }, 2558 open: function() { 2559 if ($(this.content).find("video").length > 0) { 2560 $(this.content).find("video").get(0).play(); 2561 } 2562 }, 2563 close: function() { 2564 if ($(this.content).find("video").length > 0) { 2565 $(this.content).find("video").get(0).load(); 2566 } 2567 }, 2568 }, 2569 fixedContentPos: true, 2570 overflowY: "scroll", 2571 }, 2572 }; 2573 //Initializing jQuery magnificPopup plugin and passing the options 2574 $lightbox.each(function() { 2575 var elem = $(this), 2576 elemType = elem.attr("data-lightbox"); 2577 switch (elemType) { 2578 case "image": 2579 elem.magnificPopup(getType.image); 2580 break; 2581 case "gallery": 2582 elem.magnificPopup(getType.gallery); 2583 break; 2584 case "iframe": 2585 elem.magnificPopup(getType.iframe); 2586 break; 2587 case "ajax": 2588 elem.magnificPopup(getType.ajax); 2589 break; 2590 case "inline": 2591 elem.magnificPopup(getType.inline); 2592 break; 2593 } 2594 }); 2595 } 2596 }, 2597 yTPlayer: function() { 2598 var $ytPlayer = $(".youtube-background"); 2599 if ($ytPlayer.length > 0) { 2600 //Check if YTPlayer plugin is loaded 2601 if (typeof $.fn.YTPlayer === "undefined") { 2602 INSPIRO.elements.notification( 2603 "Warning", 2604 "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>", 2605 "danger", 2606 10000 2607 ); 2608 return true; 2609 } 2610 $ytPlayer.each(function() { 2611 var elem = $(this); 2612 //Plugin Options 2613 elem.options = { 2614 videoURL: elem.attr("data-youtube-url"), 2615 autoPlay: elem.data("youtube-autoplay") == false ? 0 : 1, 2616 mute: elem.data("youtube-mute") == false ? false : true, 2617 pauseOnScroll: elem.data("youtube-pauseOnScroll") == false ? false : true, 2618 loop: elem.data("youtube-loop") == false ? false : true, 2619 vol: elem.attr("data-youtube-volume") || 50, 2620 startAt: elem.attr("data-youtube-start") || 0, 2621 stopAt: elem.attr("data-youtube-stop") || 0, 2622 controls: elem.data("youtube-controls") == true ? 1 : 0, 2623 }; 2624 var regExp = /^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/; 2625 var match = elem.options.videoURL.match(regExp); 2626 if (match && match[2].length == 11) { 2627 elem.options.videoURL = match[2]; 2628 } else { 2629 elem.options.videoURL = elem.options.videoURL; 2630 } 2631 elem.YTPlayer({
2632 fitToBackground: true, 2633 videoId: elem.options.videoURL, 2634 repeat: elem.options.loop, 2635 playerVars: { 2636 start: elem.options.start, 2637 end: elem.options.end, 2638 autoplay: elem.options.autoPlay, 2639 modestbranding: elem.options.logo, 2640 controls: elem.options.controls, 2641 origin: window.location.origin, 2642 branding: 0, 2643 rel: 0, 2644 showinfo: 0, 2645 }, 2646 events: { 2647 onReady: onPlayerReady, 2648 }, 2649 }); 2650 2651 function onPlayerReady(event) { 2652 if (elem.options.vol) { 2653 event.target.setVolume(elem.options.vol); 2654 } 2655 if (elem.options.mute) { 2656 event.target.mute(); 2657 } 2658 if (elem.options.pauseOnScroll) { 2659 var waypoint = new Waypoint({ 2660 element: elem, 2661 handler: function(direction) { 2662 event.target.pauseVideo(); 2663 if (elem.options.autoPlay == true && direction == "up") { 2664 event.target.playVideo(); 2665 } 2666 }, 2667 }); 2668 } 2669 if (Settings.isMobile) { 2670 elem.on("click", function(ev) { 2671 event.target.playVideo(); 2672 ev.preventDefault(); 2673 }); 2674 } 2675 } 2676 }); 2677 } 2678 }, 2679 vimeoPlayer: function() { 2680 var $vmPlayer = $(".vimeo-background"); 2681 if ($vmPlayer.length > 0) { 2682 //Check if vimeo_player plugin is loaded 2683 if (typeof $.fn.vimeo_player === "undefined") { 2684 INSPIRO.elements.notification( 2685 "Warning", 2686 "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>", 2687 "danger", 2688 10000 2689 ); 2690 return true; 2691 } 2692 $vmPlayer.each(function() { 2693 var elem = $(this), 2694 elemVideo = elem.attr("data-vimeo-url") || null, 2695 elemMute = elem.attr("data-vimeo-mute") || false, 2696 elemRatio = elem.attr("data-vimeo-ratio") || "16/9", 2697 elemQuality = elem.attr("data-vimeo-quality") || "hd720", 2698 elemOpacity = elem.attr("data-vimeo-opacity") || 1, 2699 elemContainer = elem.attr("data-vimeo-container") || "self", 2700 elemOptimize = elem.attr("data-vimeo-optimize") || true, 2701 elemLoop = elem.attr("data-vimeo-loop") || true, 2702 elemVolume = elem.attr("data-vimeo-volume") || 70, 2703 elemStart = elem.attr("data-vimeo-start") || 0, 2704 elemStop = elem.attr("data-vimeo-stop") || 0, 2705 elemAutoPlay = elem.attr("data-vimeo-autoplay") || true, 2706 elemFullScreen = elem.attr("data-vimeo-fullscreen") || true, 2707 elemControls = elem.attr("data-vimeo-controls") || false, 2708 elemLogo = elem.attr("data-vimeo-logo") || false, 2709 elemAutoPause = elem.attr("data-vimeo-autopause") || false; 2710 elem.vimeo_player({ 2711 videoURL: elemVideo, 2712 mute: elemMute, 2713 ratio: elemRatio, 2714 quality: elemQuality, 2715 opacity: elemOpacity, 2716 containment: elemContainer, 2717 optimizeDisplay: elemOptimize, 2718 loop: elemLoop, 2719 vol: elemVolume, 2720 startAt: elemStart, 2721 stopAt: elemStop, 2722 autoPlay: elemAutoPlay, 2723 realfullscreen: elemFullScreen, 2724 showvmLogo: elemLogo, 2725 showControls: elemControls, 2726 }); 2727 }); 2728 } 2729 }, 2730 modal: function() { 2731 //Check if magnificPopup plugin is loaded 2732 if (typeof $.fn.magnificPopup === "undefined") { 2733 INSPIRO.elements.notification( 2734 "Warning", 2735 "jQuery magnificPopup plugin is missing in plugins.js file.", 2736 "danger" 2737 ); 2738 return true; 2739 } 2740 var $modal = $(".modal"), 2741 $modalStrip = $(".modal-strip"), 2742 $btnModal = $(".btn-modal"),
2743 modalShow = "modal-auto-open", 2744 modalShowClass = "modal-active", 2745 modalDecline = $(".modal-close"), 2746 cookieNotify = $(".cookie-notify"), 2747 cookieConfirm = cookieNotify.find(".modal-confirm, .mfp-close"); 2748 2749 /*Modal*/ 2750 if ($modal.length > 0) { 2751 $modal.each(function() { 2752 var elem = $(this), 2753 elemDelay = elem.attr("data-delay") || 3000, 2754 elemCookieExpire = elem.attr("data-cookie-expire") || 365, 2755 elemCookieName = 2756 elem.attr("data-cookie-name") || "cookieModalName2020_3", 2757 elemCookieEnabled = 2758 elem.data("cookie-enabled") == true ? true : false, 2759 elemModalDismissDelay = elem.attr("data-delay-dismiss"); 2760 /*Modal Auto Show*/ 2761 if (elem.hasClass(modalShow)) { 2762 var modalElem = $(this); 2763 var timeout = setTimeout(function() { 2764 modalElem.addClass(modalShowClass); 2765 }, elemDelay); 2766 } 2767 /*Modal Dissmis Button*/ 2768 elem.find(modalDecline).click(function() { 2769 elem.removeClass(modalShowClass); 2770 return false; 2771 }); 2772 /*Modal Auto Show*/ 2773 if (elem.hasClass(modalShow)) { 2774 if (elemCookieEnabled != true) { 2775 /*Cookie Notify*/ 2776 var t = setTimeout(function() { 2777 $.magnificPopup.open({ 2778 items: { 2779 src: elem, 2780 }, 2781 type: "inline", 2782 closeBtnInside: true, 2783 midClick: true, 2784 callbacks: { 2785 beforeOpen: function() { 2786 this.st.image.markup = this.st.image.markup.replace( 2787 "mfp-figure", 2788 "mfp-figure mfp-with-anim" 2789 ); 2790 this.st.mainClass = "mfp-zoom-out"; 2791 }, 2792 open: function() { 2793 if ($(this.content).find("video").length > 0) { 2794 $(this.content).find("video").get(0).play(); 2795 } 2796 }, 2797 close: function() { 2798 if ($(this.content).find("video").length > 0) { 2799 $(this.content).find("video").get(0).load(); 2800 } 2801 }, 2802 }, 2803 }, 2804 0 2805 ); 2806 }, elemDelay); 2807 } else { 2808 if (typeof Cookies.get(elemCookieName) == "undefined") { 2809 /*Cookie Notify*/ 2810 var t = setTimeout(function() { 2811 $.magnificPopup.open({ 2812 items: { 2813 src: elem, 2814 }, 2815 type: "inline", 2816 closeBtnInside: true, 2817 midClick: true, 2818 callbacks: { 2819 beforeOpen: function() { 2820 this.st.image.markup = this.st.image.markup.replace( 2821 "mfp-figure", 2822 "mfp-figure mfp-with-anim" 2823 ); 2824 this.st.mainClass = "mfp-zoom-out"; 2825 }, 2826 open: function() { 2827 if ($(this.content).find("video").length > 0) { 2828 $(this.content).find("video").get(0).play(); 2829 } 2830 cookieConfirm.click(function() { 2831 Cookies.set(elemCookieName, true, { 2832 expires: Number(elemCookieExpire), 2833 }); 2834 $.magnificPopup.close(); 2835 cookieNotify.removeClass(modalShowClass); 2836 return false; 2837 }); 2838 }, 2839 close: function() { 2840 if ($(this.content).find("video").length > 0) { 2841 $(this.content).find("video").get(0).load(); 2842 } 2843 2844 Cookies.set(elemCookieName, true, { 2845 expires: Number(elemCookieExpire), 2846 }); 2847 }, 2848 }, 2849 }, 2850 0 2851 ); 2852 }, elemDelay); 2853 } 2854 } 2855 } 2856 /*Modal Dissmis Button*/ 2857 elem.find(modalDecline).click(function() { 2858 $.magnificPopup.close(); 2859 return false; 2860 }); 2861 2862 if (elemModalDismissDelay) {} 2863 }); 2864 } 2865 /*Modal Strip*/ 2866 if ($modalStrip.length > 0) { 2867 $modalStrip.each(function() { 2868 var elem = $(this), 2869 elemDelay = elem.attr("data-delay") || 3000, 2870 elemCookieExpire = elem.attr("data-cookie-expire") || 365, 2871 elemCookieName = elem.attr("data-cookie-name") || "cookieName2013", 2872 elemCookieEnabled = 2873 elem.data("cookie-enabled") == true ? true : false, 2874 elemModalDismissDelay = elem.attr("data-delay-dismiss"); 2875 /*Modal Auto Show*/ 2876 if (elem.hasClass(modalShow)) { 2877 var modalElem = $(this); 2878 var timeout = setTimeout(function() { 2879 modalElem.addClass(modalShowClass); 2880 if (elemModalDismissDelay) { 2881 var t = setTimeout(function() { 2882 elem.removeClass(modalShowClass); 2883 }, elemModalDismissDelay); 2884 } 2885 }, elemDelay); 2886 } 2887 /*Modal Dissmis Button*/ 2888 elem.find(modalDecline).click(function() { 2889 elem.removeClass(modalShowClass); 2890 return false; 2891 }); 2892 /*Cookie Notify*/ 2893 if (elem.hasClass("cookie-notify")) { 2894 var timeout = setTimeout(function() { 2895 if (elemCookieEnabled != true) { 2896 cookieNotify.addClass(modalShowClass); 2897 } else { 2898 if (typeof Cookies.get(elemCookieName) == "undefined") { 2899 cookieNotify.addClass(modalShowClass); 2900 } 2901 } 2902 }, elemDelay); 2903 cookieConfirm.click(function() { 2904 Cookies.set(elemCookieName, true, { 2905 expires: Number(elemCookieExpire), 2906 }); 2907 $.magnificPopup.close(); 2908 cookieNotify.removeClass(modalShowClass); 2909 return false; 2910 }); 2911 } 2912 }); 2913 } 2914 /*Modal toggles*/ 2915 if ($btnModal.length > 0) { 2916 $btnModal.each(function() { 2917 var elem = $(this), 2918 modalTarget = elem.attr("data-modal"); 2919 elem.click(function() { 2920 $(modalTarget).toggleClass(modalShowClass, 1000); 2921 return false; 2922 }); 2923 }); 2924 } 2925 }, 2926 notification: function( 2927 $title, 2928 $message, 2929 $type, 2930 $element, 2931 $delay, 2932 $placement, 2933 $animateEnter, 2934 $animateExit, 2935 $backgroundImage, 2936 $timeout 2937 ) { 2938 var $element, 2939 $elementContainer, 2940 $animateEnter = "animate__" + $animateEnter || "animate__fadeInDown", 2941 $animateExit = "animate__" + $animateExit || "animate__fadeOutDown", 2942 $placement, 2943 $backgroundImage, 2944 $backgroundImageContainer, 2945 $timeout; 2946 2947 if ($placement) { 2948 $placement = $placement; 2949 } else { 2950 $placement = "top"; 2951 } 2952 2953 if ($element) { 2954 $elementContainer = "element-container"; 2955 ($animateEnter = "animate__fadeIn"), ($animateExit = "animate__fadeOut"); 2956 } else { 2957 $elementContainer = "col-11 col-md-4"; 2958 } 2959 2960 if ($backgroundImage) { 2961 $backgroundImageContainer = 2962 'style="background-image:url(' +
2963 $backgroundImage + 2964 '); background-repeat: no-repeat; background-position: 50% 20%; height:120px !important; width:430px !important; border:0px;" '; 2965 } 2966 2967 if (!$message) { 2968 $message = ""; 2969 } 2970 2971 $element = "body"; 2972 2973 var notify = function() { 2974 $.notify({ 2975 title: $title, 2976 message: $message, 2977 }, { 2978 element: $element, 2979 type: $type || "warning", 2980 delay: $delay || 10000, 2981 template: '<div data-notify="container" ' + 2982 $backgroundImageContainer + 2983 ' class="bootstrap-notify ' + 2984 $elementContainer + 2985 ' alert alert-{0}" role="alert">' + 2986 '<button type="button" aria-hidden="true" class="btn-close" data-notify="dismiss"></button>' + 2987 '<span data-notify="icon"></span> ' + 2988 '<span data-notify="title">{1}</span> ' + 2989 '<span data-notify="message">{2}</span>' + 2990 "</div>", 2991 mouse_over: true, 2992 allow_dismiss: true, 2993 placement: { 2994 from: $placement, 2995 }, 2996 animate: { 2997 enter: "animate__animated " + $animateEnter, 2998 exit: "animate__animated " + $animateExit, 2999 }, 3000 }); 3001 }; 3002 3003 if ($timeout) { 3004 setTimeout(function() { 3005 notify(); 3006 }, 2000); 3007 } else { 3008 notify(); 3009 } 3010 }, 3011 sidebarFixed: function() { 3012 if (INSPIRO.core.rtlStatus()) { 3013 return true; 3014 } 3015 var $sidebarFixed = $(".sticky-sidebar"); 3016 if ($sidebarFixed.length > 0) { 3017 //Check if theiaStickySidebar plugin is loaded 3018 if (typeof $.fn.theiaStickySidebar === "undefined") { 3019 INSPIRO.elements.notification( 3020 "Warning", 3021 "jQuery theiaStickySidebar plugin is missing in plugins.js file.", 3022 "danger" 3023 ); 3024 return true; 3025 } 3026 $sidebarFixed.each(function() { 3027 var elem = $(this); 3028 elem.options = { 3029 additionalMarginTop: elem.attr("data-margin-top") || 120, 3030 additionalMarginBottom: elem.attr("data-margin-bottom") || 50, 3031 }; 3032 //Initialize theiaStickySidebar plugin and passing the options 3033 elem.theiaStickySidebar({ 3034 additionalMarginTop: Number(elem.options.additionalMarginTop), 3035 additionalMarginBottom: Number(elem.options.additionalMarginBottom), 3036 disableOnResponsiveLayouts: true, 3037 }); 3038 }); 3039 } 3040 }, 3041 bootstrapSwitch: function() { 3042 var $bootstrapSwitch = $("[data-switch=true]"); 3043 if ($bootstrapSwitch.length > 0) { 3044 //Check if bootstrapSwitch plugin is loaded 3045 if (typeof $.fn.bootstrapSwitch === "undefined") { 3046 INSPIRO.elements.notification( 3047 "Warning", 3048 "jQuery bootstrapSwitch plugin is missing in plugins.js file.", 3049 "danger" 3050 ); 3051 return true; 3052 } 3053 //Initialize jQuery BootstrapSwitch plugin 3054 $bootstrapSwitch.bootstrapSwitch(); 3055 } 3056 }, 3057 clipboard: function() { 3058 var $clipboardTarget = $("[data-clipboard-target]"), 3059 $clipboardText = $("[data-clipboard-text]"); 3060 if ($clipboardTarget.length > 0) { 3061 //Check if ClipboardJS plugin is loaded 3062 if (typeof ClipboardJS === "undefined") { 3063 INSPIRO.elements.notification( 3064 "Warning", 3065 "jQuery ClipboardJS plugin is missing in plugins.js file.", 3066 "danger" 3067 ); 3068 return true; 3069 } 3070 if ($clipboardTarget) { 3071 new ClipboardJS("[data-clipboard-target]"); 3072 clipboardInit($clipboardTarget); 3073 } 3074 if ($clipboardText) { 3075 new ClipboardJS("[data-clipboard-text]"); 3076 clipboardInit($clipboardText); 3077 } 3078 3079 function clipboardInit(clipboardType) { 3080 clipboardType.each(function() { 3081 var elem = $(this), 3082 title = elem.attr("data-bs-original-title") || "Copy to clipboard", 3083 titleSuccess = 3084 elem.attr("data-bs-original-title-success") || "Copied!"; 3085 elem.tooltip({ 3086 placement: "top", 3087 title: title, 3088 }); 3089 elem 3090 .on("click", function() { 3091 elem.attr("data-bs-original-title", titleSuccess).tooltip("show"); 3092 }) 3093 .on("mouseleave", function() { 3094 elem.tooltip("hide").attr("data-bs-original-title", title); 3095 return false; 3096 }); 3097 }); 3098 } 3099 } 3100 }, 3101 countdown: function() { 3102 var $countdown = $(".p-countdown"); 3103 if ($countdown.length > 0) { 3104 $countdown.each(function() { 3105 var $elem = $(this), 3106 $elemCount = $elem.find(".p-countdown-count"), 3107 $elemShow = $elem.find(".p-countdown-show"), 3108 $elemSeconds = $elem.attr("data-delay") || 5; 3109 $elemCount.find(".count-number").html($elemSeconds); 3110 new Waypoint({ 3111 element: $elem, 3112 handler: function() { 3113 var interval = setInterval(function() { 3114 $elemSeconds--; 3115 if ($elemSeconds == 0) { 3116 clearInterval(interval); 3117 $elemCount.fadeOut("slow"); 3118 setTimeout(function() { 3119 $elemShow.fadeIn("show"); 3120 }, 1000); 3121 } else { 3122 $elemCount.find(".count-number").html($elemSeconds); 3123 } 3124 }, 1000); 3125 this.destroy(); 3126 }, 3127 offset: "100%", 3128 }); 3129 }); 3130 } 3131 },
3132 videoBackground: function() { 3133 var $videoBackground = $("[data-bg-video]"); 3134 if ($videoBackground.length > 0) { 3135 $videoBackground.each(function() { 3136 var elem = $(this); 3137 elem.options = { 3138 autoplay: elem.data("autoplay") == false ? false : true, 3139 controls: elem.attr("data-controls"), 3140 loop: elem.data("loop") == true ? true : false, 3141 muted: elem.data("muted") == false ? false : true, 3142 poster: elem.attr("data-poster") || "", 3143 preload: elem.attr("data-preload") || "auto", 3144 src: elem.attr("data-bg-video"), 3145 randomId: Math.random().toString(36).substr(2, 5), 3146 }; 3147 3148 if (elem.options.controls) { 3149 elem.options.controls = 3150 ' controls="' + elem.options.controls + '" '; 3151 } else { 3152 elem.options.controls = ""; 3153 } 3154 elem.prepend( 3155 '<div class="html5vid" id="video-' + 3156 elem.options.randomId + 3157 '">' + 3158 "<video playsinline " + 3159 elem.options.controls + 3160 ' loop="' + 3161 elem.options.loop + 3162 '" muted="' + 3163 elem.options.muted + 3164 '" poster="' + 3165 elem.options.poster + 3166 '" preload="' + 3167 elem.options.preload + 3168 '">' + 3169 '<source src="' + 3170 elem.options.src + 3171 '" type="video/mp4">' + 3172 "</video>" + 3173 "</div>" 3174 ); 3175 if (elem.options.autoplay) { 3176 setTimeout(function() { 3177 $("#video-" + elem.options.randomId).waypoint( 3178 function(direction) { 3179 if (direction === "down") { 3180 $("#video-" + elem.options.randomId) 3181 .find("video") 3182 .get(0) 3183 .play(); 3184 } else { 3185 $("#video-" + elem.options.randomId) 3186 .find("video") 3187 .get(0) 3188 .pause(); 3189 } 3190 }, { 3191 offset: "50%", 3192 } 3193 ); 3194 }, 100); 3195 } 3196 setTimeout(function() { 3197 $("#video-" + elem.options.randomId).addClass("video-loaded"); 3198 }, 300); 3199 }); 3200 } 3201 }, 3202 }; 3203 INSPIRO.widgets = { 3204 functions: function() { 3205 INSPIRO.widgets.twitter(); 3206 INSPIRO.widgets.flickr(); 3207 INSPIRO.widgets.instagram(); 3208 INSPIRO.widgets.subscribeForm(); 3209 }, 3210 twitter: function() { 3211 var $widget_twitter = $(".widget-tweeter") || $(".widget-twitter"); 3212 if ($widget_twitter.length > 0) { 3213 //Check if twittie plugin is loaded 3214 if (typeof $.fn.twittie === "undefined") { 3215 INSPIRO.elements.notification( 3216 "Warning", 3217 "jQuery twittie plugin is missing in plugins.js file.", 3218 "danger" 3219 ); 3220 return true; 3221 } 3222 var t = setTimeout(function() { 3223 $widget_twitter.each(function() { 3224 var elem = $(this), 3225 twitterUsername = elem.attr("data-username") || "ardianmusliu", 3226 twitterLimit = elem.attr("data-limit") || 2, 3227 twitterDateFormat = elem.attr("data-format") || "%b/%d/%Y", 3228 twitterLoadingText = 3229 elem.attr("data-loading-text") || "Loading...", 3230 twitterApiPAth = 3231 elem.attr("data-loader") || "include/twitter/tweet.php", 3232 twitterAvatar = elem.attr("data-avatar") || false; 3233 if (twitterAvatar == "true") { 3234 twitterAvatar = "{{avatar}}"; 3235 } else { 3236 twitterAvatar = ""; 3237 } 3238 elem.append('<div id="twitter-cnt"></div>'); 3239 elem.find("#twitter-cnt").twittie({ 3240 username: twitterUsername, 3241 count: twitterLimit, 3242 dateFormat: twitterDateFormat, 3243 template: twitterAvatar + "{{tweet}}<small>{{date}}</small>", 3244 apiPath: twitterApiPAth, 3245 loadingText: twitterLoadingText, 3246 }, 3247 function() { 3248 if (elem.parents(".grid-layout").length > 0) { 3249 elem.parents(".grid-layout").isotope("layout"); 3250 } 3251 } 3252 ); 3253 }); 3254 }, 2000); 3255 } 3256 }, 3257 flickr: function() { 3258 var $flickr_widget = $(".flickr-widget"); 3259 if ($flickr_widget.length > 0) { 3260 //Check if jflickrfeed plugin is loaded 3261 if (typeof $.fn.jflickrfeed === "undefined") { 3262 INSPIRO.elements.notification( 3263 "Warning", 3264 "jQuery jflickrfeed plugin is missing in plugins.js file.", 3265 "danger" 3266 ); 3267 return true; 3268 } 3269 $flickr_widget.each(function() { 3270 var elem = $(this); 3271 elem.options = { 3272 id: elem.attr("data-flickr-id") || "52617155@N08", 3273 limit: elem.attr("data-flickr-images") || "9", 3274 itemTemplate: '<a href="{{image}}" title="{{title}}"><img src="{{image_s}}" alt="{{title}}" /></a>', 3275 }; 3276 //Initializing jflickrfeed plugin and passing the options 3277 $flickr_widget.jflickrfeed({ 3278 limit: elem.options.limit, 3279 qstrings: { 3280 id: elem.options.id, 3281 }, 3282 itemTemplate: elem.options.itemTemplate, 3283 }, 3284 function() { 3285 var t = setTimeout(function() { 3286 elem.addClass("flickr-widget-loaded"); 3287 }, 1000); 3288 elem.magnificPopup({ 3289 delegate: "a", 3290 type: "image", 3291 gallery: { 3292 enabled: true, 3293 }, 3294 }, 3295 function() { 3296 if (elem.parents(".grid-layout").length > 0) { 3297 elem.parents(".grid-layout").isotope("layout"); 3298 } 3299 } 3300 ); 3301 } 3302 ); 3303 }); 3304 } 3305 }, 3306 instagram: function() { 3307 var $widget_instagram = $(".widget-instagram"); 3308 if ($widget_instagram.length > 0) { 3309 //Check if spectragram plugin is loaded 3310 if (typeof $.fn.spectragram === "undefined") { 3311 INSPIRO.elements.notification( 3312 "Warning", 3313 "jQuery spectragram plugin is missing in plugins.js file.", 3314 "danger" 3315 ); 3316 return true; 3317 } 3318 3319 $widget_instagram.each(function() { 3320 var elem = $(this), 3321 instagramLimit = elem.attr("data-limit") || 12, 3322 instagramColumns = elem.attr("data-col") || 3, 3323 instagramAccessToken = 3324 elem.attr("data-token") || 3325 "IGQVJYMjdIb3lOZAlBpTDZApY1lOakNVTk1xWVdW
3325Vk42Y0RWMFNDSUE4TDRad3M5d2JNZAUZAiLXBhY0ZAfWVZAYUEctMDF0R1QwZA2lTalRQWC1kMi1zd2pQc3U0V3lkMEE0Tk8wZAUlzQW55d3h3THFjRU94TgZDZD", 3326 instagramItems = "#instagram-cnt", 3327 instagramSize = elem.attr("data-size") || "small", //The size of the photos. 'small', 'medium' or 'big'. Default: 'medium' 3328 instagramGridColumns = "grid-" + instagramColumns; 3329 elem.append( 3330 '<div id="instagram-cnt" class="' + 3331 instagramGridColumns + 3332 '"></div>' 3333 ); 3334 3335 jQuery.fn.spectragram.accessData = { 3336 accessToken: instagramAccessToken, 3337 }; 3338 3339 elem.find($(instagramItems)).spectragram({ 3340 complete: myCallbackFunc(), 3341 max: instagramLimit, 3342 size: instagramSize, 3343 wrapEachWith: "", 3344 }); 3345 3346 function myCallbackFunc() { 3347 elem.addClass("widget-instagram-loaded"); 3348 /* setTimeout(function () { 3349 if (elem.parents(".grid-layout").length > 0) { 3350 elem.parents(".grid-layout").isotope("layout"); 3351 } 3352 }, 100); */ 3353 } 3354 }); 3355 } 3356 }, 3357 subscribeForm: function() { 3358 var $subscribeForm = $(".widget-subscribe-form"); 3359 if ($subscribeForm.length > 0) { 3360 $subscribeForm.each(function() { 3361 var elem = $(this), 3362 elemSuccessMessage = 3363 elem.attr("data-success-message") || 3364 "You have successfully subscribed to our mailing list."; 3365 var addonIcon = elem.find('button[type="submit"]'), 3366 addonIconText = addonIcon.html(); 3367 elem.submit(function(event) { 3368 event.preventDefault(); 3369 var post_url = $(this).attr("action"); 3370 var request_method = $(this).attr("method"); 3371 var form_data = $(this).serialize(); 3372 if (elem[0].checkValidity() === false) { 3373 event.stopPropagation(); 3374 elem.addClass("was-validated"); 3375 } else { 3376 $(elem).removeClass("was-validated"); 3377 addonIcon.html('<i class="icon-loader fa-spin"></i>'); 3378 $.ajax({
3379 url: post_url, 3380 type: request_method, 3381 data: form_data, 3382 dataType: "json", 3383 success: function(text) { 3384 if (text.response == "success") { 3385 $.notify({ 3386 message: elemSuccessMessage, 3387 }, { 3388 type: "success", 3389 }); 3390 $(elem)[0].reset(); 3391 $(elem).removeClass("was-validated"); 3392 addonIcon.html(addonIconText); 3393 } else { 3394 $.notify({ 3395 message: text.message, 3396 }, { 3397 type: "warning", 3398 }); 3399 $(elem)[0].reset(); 3400 $(elem).removeClass("was-validated"); 3401 addonIcon.html(addonIconText); 3402 } 3403 }, 3404 done: function() { 3405 addonIcon.html(addonIconText); 3406 }, 3407 }); 3408 } 3409 }); 3410 }); 3411 } 3412 }, 3413 }; 3414 //Load Functions on document ready 3415 $(document).ready(function() { 3416 INSPIRO.core.functions(); 3417 INSPIRO.header.functions(); 3418 INSPIRO.slider.functions(); 3419 INSPIRO.widgets.functions(); 3420 INSPIRO.elements.functions(); 3421 }); 3422 //Recall Functions on window scroll 3423 $window.on("scroll", function() { 3424 INSPIRO.header.stickyHeader(); 3425 INSPIRO.core.scrollTop(); 3426 INSPIRO.header.dotsMenu(); 3427 }); 3428 //Recall Functions on window resize 3429 $window.on("resize", function() { 3430 INSPIRO.header.logoStatus(); 3431 INSPIRO.header.stickyHeader(); 3432 INSPIRO.header.mainMenuResponsiveShow(); 3433 }); 3434})(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.