//----------------------------------------------------/ // // POLO - HTML5 Template // Author: INSPIRO - Ardian Berisha // Version: v4.5 // Update: 20/01/2019 // //----------------------------------------------------/ //Global var var INSPIRO = {}, $ = jQuery.noConflict(); (function ($) { // USE STRICT "use strict"; //----------------------------------------------------/ // Predefined Global Variables //----------------------------------------------------/ var $window = $(window), //Theme $theme_color = '#2250fc', //Main $body = $('body'), $bodyInner = $('.body-inner'), $section = $('section'), //Header $topbar = $('#topbar'), $header = $('#header'), $headerCurrentClasses = $header.attr('class'), //Logo headerLogo = $('#logo').find('.logo'), headerLogoSrc = headerLogo.find('img').attr('src'), headerLogoSrcDark = headerLogo.attr('data-src-dark'), HeaderLogoSrcFixed = headerLogo.attr('data-src-fixed'), HeaderLogoSrcResponsive = headerLogo.attr('data-src-responsive'), //Main menu $mainmenu = $('#mainMenu'), $mainmenuitems = $mainmenu.find('li.dropdown > a'), $mainsubmenuitems = $mainmenu.find('li.dropdown-submenu > a, li.dropdown-submenu > span'), //sidebarOverlay sidebarOverlay = $('#side-panel'), $pageMenu = $('.page-menu'), /*Footer*/ $footer = $('#footer'), fullScreenPanel = $('#fullscreen-panel'), //Window size control $fullScreen = $('.fullscreen') || $('.section-fullscreen'), $halfScreen = $('.halfscreen'), //Slider $slider = $('#slider'), $inspiroSlider = $('.inspiro-slider'), $carousel = $('.carousel'), /*Grid Layout*/ $gridLayout = $(".grid-layout"), $gridFilter = $(".grid-filter"), windowWidth = $window.width(), $developmentMode = true; //Check header exist if ($header.length > 0) { var $headerOffsetTop = $header.offset().top; } //Window breakpoints $(window).breakpoints({ breakpoints: [{ "name": "xs", "width": 0 }, { "name": "sm", "width": 576 }, { "name": "md", "width": 768 }, { "name": "lg", "width": 992 }, { "name": "xl", "width": 1200 }] }); var currentBreakpoint = $(window).breakpoints("getBreakpoint"); $body.addClass('breakpoint-' + currentBreakpoint); $(window).bind("breakpoint-change", function (breakpoint) { $body.removeClass('breakpoint-' + breakpoint.from); $body.addClass('breakpoint-' + breakpoint.to); }); INSPIRO.core = { functions: function () { INSPIRO.core.scrollTop(); INSPIRO.core.screenSizeControl(); INSPIRO.core.rtlStatus(); INSPIRO.core.equalize(); }, scrollTop: function () { var $scrollTop = $('#scrollTop'); if ($scrollTop.length > 0) { var scrollOffset = $body.attr('data-offset') || 400; if ($window.scrollTop() > scrollOffset) { $scrollTop.css({ 'bottom': '26px', 'opacity': 1, 'z-index': 1 }); } else { $scrollTop.css({ 'bottom': '16px', 'opacity': 0 }); } $scrollTop.off('click').on('click', function () { $('body,html').stop(true).animate({ 'scrollTop': 0 }, 1000, 'easeInOutExpo'); return false; }); } }, //chkd screenSizeControl: function () { if ($fullScreen.length > 0) { $fullScreen.each(function () { var $elem = $(this), elemHeight = $window.height(); $(window).breakpoints("greaterEqualTo", "lg", function () { $elem.css('height', elemHeight); }); $(window).breakpoints("lessThan", "lg", function () { if($(".text-middle").length> 0) { var fullScreenContentHeight = $elem.find(".text-middle").height() + 100; console.log(fullScreenContentHeight); $elem.css({ 'height': fullScreenContentHeight, 'padding': '60px 15px 120px' }); }else { $elem.css('height', elemHeight); } }); }); } if ($halfScreen.length > 0) { $halfScreen.each(function () { var $elem = $(this), elemHeight = $window.height(); $elem.css('height', elemHeight / 1.5); }); } }, //chkd rtlStatus: function () { var $rtlStatusCheck = $("html").attr("dir"); var $rtlStatus = false; if ($rtlStatusCheck == "rtl") { $('head').append(''); $rtlStatus = true; } else { $rtlStatus = false; } }, equalize: function () { var $equalize = $('.equalize'); if ($equalize.length > 0) { $equalize.each(function () { var elem = $(this), selectorItem = elem.find(elem.attr('data-equalize-item')) || "> div", maxHeight = 0; selectorItem.each(function () { if ($(this).outerHeight(true) > maxHeight) { maxHeight = $(this).outerHeight(true); } }); selectorItem.height(maxHeight); }); } } }; INSPIRO.header = { functions: function () { INSPIRO.header.logoStatus(); INSPIRO.header.stickyHeader(); INSPIRO.header.topBar(); INSPIRO.header.search(); INSPIRO.header.mainMenu(); INSPIRO.header.pageMenu(); INSPIRO.header.sidebarOverlay(); INSPIRO.header.dotsMenu(); INSPIRO.header.onepageMenu(); }, logoStatus: function () { $(window).breakpoints("greaterEqualTo", "lg", function () { if ($header.hasClass('dark') && headerLogoSrcDark) { headerLogo.find('img').attr('src', headerLogoSrcDark); } else { headerLogo.find('img').attr('src', headerLogoSrc); } if (HeaderLogoSrcFixed && $header.hasClass('header-sticky')) { headerLogo.find('img').attr('src', HeaderLogoSrcFixed); } }); $(window).breakpoints("lessThan", "lg", function () { if ($header.hasClass('dark') && headerLogoSrcDark) { headerLogo.find('img').attr('src', headerLogoSrcDark); } if ($header.hasClass('dark') && $header.attr('data-transparent') == "true") { headerLogo.find('img').attr('src', headerLogoSrc); } if (HeaderLogoSrcResponsive) { headerLogo.find('img').attr('src', HeaderLogoSrcResponsive); } }); }, stickyHeader: function () { var elem = $(this), shrinkHeader = elem.attr('data-shrink') || 0, shrinkHeaderActive = elem.attr('data-sticky-active') || 200, scrollOnTop = $window.scrollTop(); if ($header.hasClass("header-modern")) { shrinkHeader = 300; } $(window).breakpoints("greaterEqualTo", "lg", function () { if (!$header.is(".header-disable-fixed, .header-always-fixed")) { if (scrollOnTop > $headerOffsetTop + shrinkHeader) { $header.addClass('header-sticky'); if (scrollOnTop > $headerOffsetTop + shrinkHeaderActive) { $header.addClass('sticky-active'); if ($header.hasClass('dark') && $header.attr('data-transparent') == "true" && !$body.hasClass('overlay-menu')) { $header.removeClass('dark'); } INSPIRO.header.logoStatus(); } } else { $header.removeClass().addClass($headerCurrentClasses); INSPIRO.header.logoStatus(); } } }); $(window).breakpoints("lessThan", "lg", function () { if ($header.attr('data-responsive-fixed') == "true") { if (scrollOnTop > $headerOffsetTop + shrinkHeader) { $header.addClass('header-sticky'); if (scrollOnTop > $headerOffsetTop + shrinkHeaderActive) { $header.addClass('sticky-active'); if ($header.hasClass('dark') && $header.attr('data-transparent') == "true" && !$body.hasClass('overlay-menu')) { $header.removeClass('dark'); } INSPIRO.header.logoStatus(); } } else { $header.removeClass().addClass($headerCurrentClasses); INSPIRO.header.logoStatus(); } } }); }, //chkd topBar: function () { if ($topbar.length > 0) { $("#topbar .topbar-dropdown .topbar-form").each(function (index, element) { if ($window.width() - ($(element).width() + $(element).offset().left) < 0) { $(element).addClass('dropdown-invert'); } }); } }, search: function () { var $search = $('#search'); if ($search.length > 0) { var searchBtn = $('#btn-search'), searchBtnClose = $('#btn-search-close'), searchInput = $search.find('.form-control'); function openSearch() { $body.addClass('search-open'); searchInput.focus(); } function closeSearch() { $body.removeClass('search-open'); searchInput.value = ''; } searchBtn.on('click touchend', function () { openSearch(); return false; }); searchBtnClose.on('click touchend', function () { closeSearch(); return false; }); document.addEventListener('keyup', function (ev) { if (ev.keyCode == 27) { closeSearch(); } }); } }, //chkd mainMenu: function () { if ($mainmenu.length > 0) { if ($body.is('.breakpoint-lg, .breakpoint-xl')) { $("body #mainMenu.menu-onclick nav > ul > li.dropdown > a, body .dropdown-submenu > a, body .dropdown-submenu > span").on('click touchend', function (e) { $(this).parent('li').siblings().removeClass('hover-active').removeClass('current'); $(this).parent('li').toggleClass('hover-active'); return false; }); } else { $("#mainMenu nav > ul > li.dropdown > a, .dropdown-submenu > a, .dropdown-submenu > span, .page-menu nav > ul > li.dropdown > a").on('click touchend', function (e) { $(this).parent('li').siblings().removeClass('hover-active'); $(this).parent('li').toggleClass('hover-active'); return false; }); } $("#mainMenu-trigger button").on('click touchend', function (e) { $body.toggleClass("mainMenu-open"); $(this).toggleClass("toggle-active"); if ($body.hasClass("mainMenu-open")) { $header.find("#mainMenu").css("max-height", $window.height() - $header.height()); } else { $header.find("#mainMenu").css("max-height", 0); } return false; }); $(window).breakpoints("greaterEqualTo", "lg", function () { /*invert menu fix*/ var $menuLastItem = $("nav > ul > li:last-child"), $menuLastItemUl = $("nav > ul > li:last-child > ul"), $menuLastInvert = $menuLastItemUl.width() - $menuLastItem.width(), $menuItems = $("nav > ul > li").find(".dropdown-menu"); $menuItems.css('display', 'block'); $('.dropdown:not(.mega-menu-item) ul ul').each(function (index, element) { if ($window.width() - ($(element).width() + $(element).offset().left) < 0) { $(element).addClass('menu-invert'); } }); if ($window.width() - ($menuLastItemUl.width() + $menuLastItem.offset().left) < 0) { $menuLastItemUl.addClass('menu-last'); } $menuItems.css('display', ''); }); } }, /*Page Menu*/ pageMenu: function () { if ($pageMenu.length > 0) { $pageMenu.each(function () { $("#pageMenu-trigger").on("click", function () { $pageMenu.toggleClass("page-menu-active"); $pageMenu.toggleClass("items-visible"); }); }); } }, sidebarOverlay: function () { if (sidebarOverlay.length > 0) { sidebarOverlay.css("opacity", 1); $("#close-panel").on("click", function () { $body.removeClass("side-panel-active side-panel-push"); $("#side-panel-trigger").removeClass("toggle-active"); }); var t = setTimeout(function () { INSPIRO.elements.gridLayoutRefresh(); }, 1000); } }, dotsMenu: function () { var $dotsMenu = $('#dotsMenu'), $dotsMenuItems = $dotsMenu.find("ul > li > a"); if ($dotsMenu.length > 0) { $dotsMenuItems.on('click', function () { $dotsMenuItems.parent("li").removeClass('current'); $(this).parent("li").addClass('current'); return false; }); $dotsMenuItems.parents("li").removeClass('current'); $dotsMenu.find('a[href="#' + INSPIRO.header.currentSection() + '"]').parent("li").addClass('current'); } }, onepageMenu: function () { if ($mainmenu.hasClass("menu-one-page")) { var $currentMenuItem = "current"; $(window).on("scroll", function () { var $currentSection = INSPIRO.header.currentSection(); $mainmenu.find("nav > ul > li > a").parents("li").removeClass($currentMenuItem); $mainmenu.find('nav > ul > li > a[href="#' + $currentSection + '"]').parent("li").addClass($currentMenuItem); }); } }, currentSection: function () { var elemCurrent = "body"; $section.each(function () { var elem = $(this), elemeId = elem.attr("id"); if ((elem.offset().top - $window.height() / 3 < $window.scrollTop()) && (elem.offset().top + elem.height() - $window.height() / 3 > $window.scrollTop())) { elemCurrent = elemeId; } }); return elemCurrent; } }; INSPIRO.slider = { functions: function () { INSPIRO.slider.inspiroSlider(); INSPIRO.slider.owlCarousel(); }, //chkd sliderScreenSizeControl: function (elem) { var headerHeight = $header.outerHeight(), topbarHeight = $topbar.outerHeight() || 0, windowHeight = $window.height(), screenHeightExtra = headerHeight + topbarHeight, $sliderClassOuter = ".owl-stage-outer", $sliderClassStage = ".owl-stage", $sliderClassSlide = ".slide", sliderTargetElements = [elem, elem.find($sliderClassOuter), elem.find($sliderClassStage), elem.find($sliderClassSlide)], sliderFullscreen = elem.hasClass('slider-fullscreen'), screenRatio = elem.hasClass('slider-fullscreen') ? 1 : 1.2, transparentHeader = $header.attr('data-transparent="true"') || $header.hasClass("header-modern"), customHeight = elem.attr("data-height"), responsiveHeightxs = elem.attr("data-height-xs") || 300; $(window).breakpoints("greaterEqualTo", "lg", function () { if (transparentHeader) { if (sliderFullscreen) { $.each(sliderTargetElements, function (index, divElem) { if ($topbar.length > 0) { } else {} divElem.css('height', $(window).height() + 'px'); }); } else { if (!$header.attr('data-transparent="true"')) { elem.find($sliderClassSlide).css('padding-top', screenHeightExtra + 'px'); } if (!customHeight) { $.each(sliderTargetElements, function (index, divElem) { divElem.css('height', $(window).height() / screenRatio + 'px'); }); } else { $.each(sliderTargetElements, function (index, divElem) { divElem.css('height', customHeight + 'px'); }); } } } else { if (sliderFullscreen) { $.each(sliderTargetElements, function (index, divElem) { divElem.css('height', $(window).height() + 'px'); }); } else { $.each(sliderTargetElements, function (index, divElem) { divElem.css('height', $(window).height() / screenRatio - screenHeightExtra + 'px'); }); } if (customHeight) { $.each(sliderTargetElements, function (index, divElem) { divElem.css('height', customHeight + 'px'); }); } } }); $(window).breakpoints("lessThan", "lg", function () { $.each(sliderTargetElements, function (index, divElem) { divElem.css('height', responsiveHeightxs + 'px'); }); }); }, inspiroSlider: function () { if ($inspiroSlider.length > 0) { //Check if owlCarousel plugin is loaded if (typeof $.fn.owlCarousel === 'undefined') { INSPIRO.elements.notification("Warning: jQuery owlCarousel plugin is missing in plugins.js file.", "warning") return true; } $inspiroSlider.each(function () { var elem = $(this), carouselNav = elem.attr('data-arrows'), carouselDots = elem.attr('data-dots'), carouselAutoPlay = elem.attr('data-autoplay'), carouselAutoplayTimeout = elem.attr('data-autoplay-timeout') || 5000, carouseAnimateIn = elem.attr('data-animate-in'), carouseAnimateOut = elem.attr('data-animate-out'), carouselLoop = elem.attr('data-loop'), carouselHoverPause = elem.attr('data-hover-pause'), carouselMargin = elem.attr('data-margin') || 0, carouselVideo = elem.attr('data-video'), carouselSmartSpeed = elem.attr('data-smart-speed') || 500, carouselDrag = elem.attr('data-drag') || true; elem.addClass("owl-carousel"); //Kenburns effect elem.find('.slide').each(function () { if ($(this).hasClass("kenburns")) { var elemChild = $(this), elemChildImage = elemChild.css('background-image').replace(/.*\s?url\([\'\"]?/, '').replace(/[\'\"]?\).*/, ''); elemChild.prepend('
'); } }); if (elem.find('.slide').length > 1) { elem.owlCarousel({ items: 1, nav: carouselNav == 'false' ? false : true, dots: carouselDots == 'false' ? false : true, navText: ['', ''], autoplay: carouselAutoPlay == 'false' ? false : false, autoplayTimeout: Number(carouselAutoplayTimeout), autoplayHoverPause: carouselHoverPause == 'false' ? false : true, loop: carouselLoop == 'false' ? false : true, margin: Number(carouselMargin), smartSpeed: Number(carouselSmartSpeed), video: carouselVideo == 'false' ? false : true, animateIn: carouseAnimateIn, animateOut: carouseAnimateOut, rtl: INSPIRO.core.rtlStatus(), mouseDrag: carouselDrag, touchDrag: carouselDrag, pullDrag: false, freeDrag: false, callbacks: true, onInitialize: function (event) { var t = setTimeout(function () { elem.find(".owl-item:not(.active) .slide > video").each(function () { this.pause(); }); elem.find(".owl-item.active .slide .kenburns-bg").addClass("kenburns-bg-animate"); elem.addClass("slider-loaded"); }, 100); }, onResize: function (event) { INSPIRO.slider.sliderScreenSizeControl(elem); } }); var $captions = elem.find('.slide-captions > *'); $captions.each(function () { var $captionElem = $(this); var animationDuration = "600ms"; if ($(this).attr("data-animation-duration")) { animationDuration = $(this).attr("data-animation-duration") + "ms"; } $(this).css("animation-duration", animationDuration); $captionElem.addClass('slide-caption-hide'); }); $captions.each(function (index) { var $captionElem = $(this), captionDelay = $captionElem.attr("data-caption-delay") || index * 80, captionAnimation = $captionElem.attr('data-caption-animation') || "fadeInUp"; var t = setTimeout(function () { $captionElem.removeClass('slide-caption-hide').addClass(captionAnimation); }, captionDelay); }); elem.on('changed.owl.carousel', function (property) { var current = property.item.index, currentSlide = $(property.target).find(".owl-item").eq(current), currentSlideCaptions = currentSlide.find(".slide-captions > *"), currentSlideDark = currentSlide.find(".slide").hasClass("slide-dark"), currentSlideKenburns = currentSlide.find(".slide").hasClass("kenburns"); if (currentSlideKenburns) { $(this).find(".kenburns-bg").addClass("kenburns-bg-animate"); } currentSlideCaptions.each(function (index) { var $captionElem = $(this), captionDelay = $captionElem.attr("data-caption-delay") || (index * 350 + 1000), captionAnimation = $captionElem.attr('data-caption-animation') || "fadeInUp"; var t = setTimeout(function () { $captionElem.removeClass('slide-caption-hide').addClass(captionAnimation); }, captionDelay); }); if ($window.width() > 992) { //Pause HTML5 Video if (currentSlide.find("video").length > 0) { var t = setTimeout(function () { currentSlide.find(".slide video").get(0).play(); }, 1000); } } }); elem.on('change.owl.carousel', function (property) { var current = property.item.index, currentSlide = $(property.target).find(".owl-item").eq(current), currentSlideCaptions = $(property.target).find(".owl-item:not(.active)").find(".slide-captions > *"), currentSlideKenburns = currentSlide.find(".slide").hasClass("kenburns"); currentSlideCaptions.each(function () { var $captionElem = $(this), captionAnimation = $captionElem.attr('data-caption-animation') || "fadeInUp"; $captionElem.removeClass(captionAnimation).addClass('slide-caption-hide'); }); elem.find(".slide video").each(function () { this.pause(); }); if (currentSlideKenburns) { $(this).find(".kenburns-bg").removeClass("kenburns-bg-animate"); } }); } else { elem.addClass("slider-loaded"); var t = setTimeout(function () { elem.find('.slide').find(".kenburns-bg").addClass("kenburns-bg-animate"); }, 200); } INSPIRO.slider.sliderScreenSizeControl(elem); }); } }, owlCarouselAjax: function () { //Check if owlCarousel plugin is loaded if (typeof $.fn.owlCarousel === 'undefined') { INSPIRO.elements.notification("Warning: jQuery owlCarousel plugin is missing in plugins.js file.", "warning") return true; } //Plugin Options var elem = $(".carousel"); elem.options = { nav: elem.attr('data-arrows'), dots: elem.attr('data-dots'), navText: ['', ''], itemElement: elem.attr('data-item') || "div", autoplay: elem.attr('data-autoplay'), autoplayTimeout: elem.attr('data-autoplay-timeout') || 5000, autoplayHoverPause: elem.attr('data-hoverpause'), autoWidth: elem.attr('data-auto-width'), loop: elem.attr('data-loop'), smartSpeed: 350, fluidSpeed: 260, rtl: INSPIRO.core.rtlStatus() }; //Initializing plugin and passing options elem.owlCarousel({ items: 1, nav: elem.options.nav == 'false' ? false : true, dots: elem.options.dots == 'true' ? true : false, navText: elem.options.navText, itemElement: elem.options.itemElement, autoplay: elem.options.autoPlay == 'true' ? true : false, autoplayTimeout: Number(elem.options.autoplayTimeout), autoplayHoverPause: elem.options.autoplayHoverPause == 'true' ? true : false, loop: elem.options.loop == 'false' ? false : true, smartSpeed: Number(elem.options.smartSpeed), fluidSpeed: Number(elem.options.fluidSpeed), rtl: elem.options.rtl, onInitialize: function (event) { elem.addClass("carousel-loaded owl-carousel"); }, }); }, owlCarousel: function () { if ($carousel.length > 0) { //Check if owlCarousel plugin is loaded if (typeof $.fn.owlCarousel === 'undefined') { INSPIRO.elements.notification("Warning: jQuery owlCarousel plugin is missing in plugins.js file.", "warning") return true; } $carousel.each(function () { var elem = $(this); //Plugin Options elem.options = { nav: elem.attr('data-arrows'), dots: elem.attr('data-dots'), navText: ['', ''], itemElement: elem.attr('data-item') || "div", autoplay: elem.attr('data-autoplay'), autoplayTimeout: elem.attr('data-autoplay-timeout') || 5000, autoplayHoverPause: elem.attr('data-hoverpause'), autoWidth: elem.attr('data-auto-width'), loop: elem.attr('data-loop'), margin: elem.attr('data-margin') || 20, items: elem.attr('data-items') || 4, itemsLg: elem.attr('data-items-lg'), itemsMd: elem.attr('data-items-md'), itemsSm: elem.attr('data-items-sm'), itemsXs: elem.attr('data-items-xs'), smartSpeed: 350, fluidSpeed: 260, video: elem.attr('data-video'), animateIn: elem.attr('data-animate-in'), animateOut: elem.attr('data-animate-out'), rtl: INSPIRO.core.rtlStatus() }; //Calculate min/max on responsive breakpoints elem.options.itemsLg = elem.options.itemsLg || Math.min(Number(elem.options.items), Number(4)); elem.options.itemsMd = elem.options.itemsMd || Math.min(Number(elem.options.itemsLg), Number(3)); elem.options.itemsSm = elem.options.itemsSm || Math.min(Number(elem.options.itemsMd), Number(2)); elem.options.itemsXs = elem.options.itemsXs || Math.min(Number(elem.options.itemsSm), Number(1)); //Plugin Responsive options elem.responsive = { 0: { items: Number(elem.options.itemsXs) }, 420: { items: Number(elem.options.itemsSm) }, 768: { items: Number(elem.options.itemsMd) }, 992: { items: Number(elem.options.itemsLg) }, 1200: { items: Number(elem.options.items) } }; //Initializing plugin and passing options elem.owlCarousel({ nav: elem.options.nav == 'false' ? false : true, dots: elem.options.dots == 'false' ? false : true, navText: elem.options.navText, itemElement: elem.options.itemElement, autoplay: elem.options.autoPlay == 'true' ? true : false, autoplayTimeout: elem.options.autoplayTimeout, autoplayHoverPause: elem.options.autoplayHoverPause == 'true' ? true : false, autoWidth: elem.options.autoWidth == 'true' ? true : false, loop: elem.options.loop == 'true' ? true : false, margin: Number(elem.options.margin), smartSpeed: Number(elem.options.smartSpeed), fluidSpeed: Number(elem.options.fluidSpeed), video: elem.options.video == 'true' ? true : false, animateIn: elem.options.animateIn, animateOut: elem.options.animateOut, rtl: elem.options.rtl, onInitialize: function (event) { elem.addClass("carousel-loaded owl-carousel"); }, responsive: elem.responsive }); }); } }, }; INSPIRO.elements = { functions: function () { INSPIRO.elements.naTo(); INSPIRO.elements.morphext(); INSPIRO.elements.buttons(); INSPIRO.elements.accordion(); INSPIRO.elements.animations(); INSPIRO.elements.parallax(); INSPIRO.elements.responsiveVideos(); INSPIRO.elements.counters(); INSPIRO.elements.countdownTimer(); INSPIRO.elements.progressBar(); INSPIRO.elements.pieChart(); INSPIRO.elements.maps(); INSPIRO.elements.gridLayout(); INSPIRO.elements.tooltip(); INSPIRO.elements.popover(); INSPIRO.elements.magnificPopup(); INSPIRO.elements.yTPlayer(); INSPIRO.elements.vimeoPlayer(); INSPIRO.elements.modal(); INSPIRO.elements.sidebarFixed(); INSPIRO.elements.clipboard(); INSPIRO.elements.bootstrapSwitch(); INSPIRO.elements.countdown(); INSPIRO.elements.other(); }, other: function (context) { if ($(".toggle-item").length > 0) { $(".toggle-item").each(function () { var elem = $(this), toggleItemClass = elem.attr('data-class'), toggleItemClassTarget = elem.attr('data-target'); elem.on("click", function () { if (toggleItemClass) { if (toggleItemClassTarget) { $(toggleItemClassTarget).toggleClass(toggleItemClass); } else { elem.toggleClass(toggleItemClass); } } elem.toggleClass("toggle-active"); return false; }); }); } /*Hover 3d Effect*/ if ($(".hover-3d").length > 0) { $(".hover-3d").each(function () { var $elem = $(this), selector = $elem.attr("data-selector") || ".portfolio-item-wrap", shine = $elem.attr("data-shine") || false, sensitivity = $elem.attr("data-sensitivity") || 16; $elem.hover3d({ selector: selector, shine: shine, sensitivity: Number(sensitivity) }); }); } /*Dropdown popup invert*/ var $pDropdown = $(".p-dropdown"); if ($pDropdown.length > 0) { $pDropdown.each(function () { var elem = $(this); if ($window.width() / 2 > elem.offset().left) { elem.addClass("p-dropdown-invert") } }); } }, naTo: function () { $('a.scroll-to, #dotsMenu > ul > li > a, .menu-one-page nav > ul > li > a').on('click', function () { var extraPaddingTop = 0, extraHeaderHeight = 0; if (windowWidth <= 991) { $header.find("#mainMenu").css("max-height", 0); $body.toggleClass("mainMenu-open"); $("#mainMenu-trigger button").toggleClass("toggle-active"); if ($header.attr('data-responsive-fixed') === true) { extraHeaderHeight = $header.height(); } } else { if ($header.length > 0) { extraHeaderHeight = $header.height(); } } if ($('.dashboard').length > 0) { extraPaddingTop = 30; } var $anchor = $(this); $('html, body').stop(true, false).animate({ scrollTop: ($($anchor.attr('href')).offset().top - (extraHeaderHeight + extraPaddingTop)) }, 1500, 'easeInOutExpo'); return false; }); }, morphext: function () { var $textRotator = $('.text-rotator'); if ($textRotator.length > 0) { //Check if Morphext plugin is loaded if (typeof $.fn.Morphext === 'undefined') { INSPIRO.elements.notification("Warning: jQuery Morphext plugin is missing in plugins.js file.", "warning") return true; } $textRotator.each(function () { var elem = $(this); //Plugin Options elem.options = { animation: elem.attr('data-animation') || "fadeIn", separator: elem.attr('data-separator') || ",", speed: elem.attr('data-speed') || 2000 } //Initializing Morphext plugin and passing options elem.Morphext({ animation: elem.options.animation, separator: elem.options.separator, speed: Number(elem.options.speed) }); }); } }, buttons: function () { //Button slide width if ($(".btn-slide[data-width]")) { $(".btn.btn-slide[data-width]").each(function () { var elem = $(this), elemWidth = elem.attr('data-width'), elemDefaultWidth; switch (true) { case elem.hasClass('btn-lg'): elemDefaultWidth = "60"; break; case elem.hasClass('btn-sm'): elemDefaultWidth = "36"; break; case elem.hasClass('btn-xs'): elemDefaultWidth = "28"; break; default: elemDefaultWidth = "48"; break; } elem.hover(function () { $(this).css("width", elemWidth + "px"); }, function () { $(this).css("width", elemDefaultWidth + "px"); }); }); } }, accordion: function () { var accordionType = "accordion", toogleType = "toggle", accordionItem = "ac-item", itemActive = "ac-active", itemTitle = "ac-title", itemContent = "ac-content", $accs = $("." + accordionItem); $accs.length && ($accs.each(function () { var $item = $(this); $item.hasClass(itemActive) ? $item.addClass(itemActive) : $item.find("." + itemContent).hide(); }), $("." + itemTitle).on("click", function (e) { var $link = $(this), $item = $link.parents("." + accordionItem), $acc = $item.parents("." + accordionType); $item.hasClass(itemActive) ? $acc.hasClass(toogleType) ? ($item.removeClass(itemActive), $link.next("." + itemContent).slideUp()) : ($acc.find("." + accordionItem).removeClass(itemActive), $acc.find("." + itemContent).slideUp()) : ($acc.hasClass(toogleType) || ($acc.find("." + accordionItem).removeClass(itemActive), $acc.find("." + itemContent).slideUp("fast")), $item.addClass(itemActive), $link.next("." + itemContent).slideToggle("fast")), e.preventDefault(); return false; })); }, animations: function () { var $animate = $("[data-animate]"); if ($animate.length > 0) { //Check if jQuery Waypoint plugin is loaded if (typeof Waypoint === 'undefined') { INSPIRO.elements.notification("Warning: jQuery Waypoint plugin is missing in plugins.js file.", "warning") return true; } $animate.each(function () { var elem = $(this); elem.addClass("animated"); //Plugin Options elem.options = { animation: elem.attr("data-animate") || "fadeIn", delay: elem.attr("data-animate-delay") || 200, direction: ~elem.attr("data-animate").indexOf("Out") ? "back" : "forward", offsetX: elem.attr("data-animate-offsetX") || 0, offsetY: elem.attr("data-animate-offsetY") || -100 } //Initializing jQuery Waypoint plugin and passing options from data animations attributes if (elem.options.direction == "forward") { new Waypoint({ element: elem, handler: function () { var t = setTimeout(function () { elem.addClass(elem.options.animation + " visible"); }, elem.options.delay); }, offset: '100%' }); } else { elem.addClass("visible"); elem.on("click", function () { elem.addClass(elem.options.animation); return false; }); } //Demo play if (elem.parents('.demo-play-animations').length) { elem.on("click", function () { elem.removeClass(elem.options.animation); var t = setTimeout(function () { elem.addClass(elem.options.animation); }, 50); return false; }); } }); } }, parallax: function () { var $parallax = $('[data-parallax-image]'); if ($parallax.length > 0) { //Check if scrolly plugin is loaded if (typeof $.fn.scrolly === 'undefined') { INSPIRO.elements.notification("Warning: jQuery scrolly plugin is missing in plugins.js file.", "warning") return true; } $parallax.each(function () { var $elem = $(this), elemImageSrc = $elem.attr("data-parallax-image"), elemImageVelocity = $elem.attr("data-velocity") || "-.090"; $elem.prepend(''); $(".parallax-container").lazy({ attribute: "data-lazy-background", afterLoad: function (element) { $elem.find(".parallax-container").addClass("img-loaded"); } }); if ($body.hasClass('breakpoint-lg') || $body.hasClass('breakpoint-xl')) { $elem.find(".parallax-container").scrolly({ bgParallax: true }); } else { $elem.find(".parallax-container").addClass("parallax-responsive"); } }); } }, responsiveVideos: function () { //Check if fitVids plugin is loaded if (typeof $.fn.fitVids === 'undefined') { INSPIRO.elements.notification("Warning: jQuery fitVids plugin is missing in plugins.js file.", "warning") return true; } //selecting elements var selectors = $("section, .content, .post-content, .video-js, .post-video, .video-wrap, .ajax-quick-view,#slider:not(.revslider-wrap)"); //Initializing jQuery fitVids plugin and pass selectors selectors.fitVids(); }, counters: function () { var $counter = $('.counter'); if ($counter.length > 0) { //Check if countTo plugin is loaded if (typeof $.fn.countTo === 'undefined') { INSPIRO.elements.notification("Warning: jQuery countTo plugin is missing in plugins.js file.", "warning") return true; } //Initializing countTo plugin $counter.each(function () { var $elem = $(this); new Waypoint({ element: $elem, handler: function () { $elem.find('span').countTo(); }, offset: '104%' }); }); } }, countdownTimer: function () { var $countdownTimer = $('.countdown'); if ($countdownTimer.length > 0) { //Check if countdown plugin is loaded if (typeof $.fn.countdown === 'undefined') { INSPIRO.elements.notification("Warning: jQuery countdown plugin is missing in plugins.js file.", "warning") return true; } var t = setTimeout(function () { $('[data-countdown]').each(function () { var $this = $(this), finalDate = $(this).attr('data-countdown'); $this.countdown(finalDate, function (event) { $this.html(event.strftime('