/* UItoTop jQuery Plugin | Matt Varone | http://www.mattvarone.com/web-design/uitotop-jquery-plugin */ !function (n) { n.fn.UItoTop = function (o) { var e = { text: "To Top", min: 1500, inDelay: 600, outDelay: 400, containerID: "toTop", containerHoverID: "toTopHover", scrollSpeed: 1200, easingType: "linear" }, t = n.extend(e, o), i = "#" + t.containerID, a = "#" + t.containerHoverID; n("body").append('' + t.text + ""), n(i).hide().on("click.UItoTop", function () { return n("html, body").animate({scrollTop: 0}, t.scrollSpeed, t.easingType), n("#" + t.containerHoverID, this).stop().animate({opacity: 0}, t.inDelay, t.easingType), !1 }).hover(function () { n(a, this).stop().animate({opacity: 1}, 600, "linear") }, function () { n(a, this).stop().animate({opacity: 0}, 700, "linear") }), n(window).scroll(function () { var o = n(window).scrollTop(); "undefined" == typeof document.body.style.maxHeight && n(i).css({ position: "absolute", top: o + n(window).height() - 50 }), o > t.min ? n(i).fadeIn(t.inDelay) : n(i).fadeOut(t.Outdelay) }) } }(jQuery); /* jquery.stickup.min.js */ !function (t) { t.fn.stickUp = function (e) { function o() { l.on("scroll.stickUp", function () { i = t(this).scrollTop(), f = i > d ? "down" : "up", d = i, 0 != k.length ? correctionValue = k.outerHeight(!0) : correctionValue = 0, u = parseInt(n.scrollTop()), p + a - correctionValue < u ? (r.addClass("isStuck"), S.addClass("isStuck"), s.pseudo ? (r.css({ position: "fixed", top: correctionValue }), c.css({height: a})) : r.css({ position: "fixed", top: correctionValue })) : (r.removeClass("isStuck"), S.removeClass("isStuck"), s.pseudo ? (r.css({ position: "relative", top: 0 }), c.css({height: 0})) : r.css({position: "absolute", top: 0})) }).trigger("scroll.stickUp"), l.on("resize", function () { r.hasClass("isStuck") ? p != parseInt(c.offset().top) && (p = parseInt(c.offset().top)) : p != parseInt(r.offset().top) && (p = parseInt(r.offset().top)) }) } var s = { correctionSelector: ".correctionSelector", listenSelector: ".listenSelector", active: !1, pseudo: !0 }; t.extend(s, e); var c, i, r = t(this), n = t(window), l = t(document), p = 0, a = 0, u = 0, d = 0, f = "", k = t(s.correctionSelector), S = t(s.listenSelector); 0 != r.length && (p = parseInt(r.offset().top), parseInt(r.css("margin-top")), a = parseInt(r.outerHeight(!0)), s.pseudo && (t('
').insertAfter(r), (c = t(".pseudoStickyBlock")).css({ position: "relative", display: "block" })), s.active && o(), r.addClass("stuckMenu")) } }(jQuery); (function ($) { "use strict"; CherryJsCore.utilites.namespace('theme_script'); CherryJsCore.theme_script = { init: function () { // Document ready event check if (CherryJsCore.status.is_ready) { this.document_ready_render(); } else { CherryJsCore.variable.$document.on('ready', this.document_ready_render.bind(this)); } // Windows load event check if (CherryJsCore.status.on_load) { this.window_load_render(); } else { CherryJsCore.variable.$window.on('load', this.window_load_render.bind(this)); } }, document_ready_render: function () { this.responsiveMenuInit(this); // post-formats this.post_formats_custom_init(this); // widgets this.smart_slider_init(this); this.swiper_carousel_init(this); this.subscribe_init(this); this.playlist_slider_widget_init(this); this.news_smart_box_init(this); // menus this.navbar_init(this); this.main_menu(this, $('.main-navigation')); this.mega_menu(this); this.mobile_menu(this); this.vertical_menu_init(this); // plugins this.add_project_inline_style(this); this.single_team(this); // anchor-navigation this.anchor_navigation(this); this.anchor_scrolling_navigation(this); // misc this.to_top_init(this); this.header_search(this); this.big_image_class(this); this.ofi_init(this); this.create_mobile_menu_toggle(this); this.add_tabs_animation(this); this.marquee_init(this); this.parallax_init(this); this.section_fixed_init(this); //woo this.add_single_product_tabs_animation(this); }, window_load_render: function () { this.page_preloader_init(this); }, mobile_breakpoint: 600, anchor_navigation: function (self) { $('.page-template-landing div:not(.woocommerce-tabs) a[href*=#]:not([href=#])').on('click', function () { var $window = CherryJsCore.variable.$window, width = $window.outerWidth(true), $menuToggle = $('.main-menu-toggle[aria-controls="main-menu"]'); if (self.mobile_breakpoint > width) { $menuToggle.trigger('click.mobileMenuToggle'); } if (location.pathname.replace(/^\//, '') === this.pathname.replace(/^\//, '') || location.hostname === this.hostname) { var target = $(this.hash), targetLink = this.hash, $correctionSelector = ( self.mobile_breakpoint <= width ) ? $('#main-menu') : $('.mobile-panel'), menuHeight = $correctionSelector.outerHeight(true); target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); if (target.length) { $('html, body').animate({ scrollTop: target.offset().top - menuHeight }, 1000); return false; } } }); }, responsiveMenuInit: function (self) { var moreMenuContent = '···', imgurl, srcset, clotting = true; if (window.wapuula && window.wapuula.more_button_options && window.wapuula.more_button_options.more_button_type) { switch (window.wapuula.more_button_options.more_button_type) { case 'image': imgurl = window.wapuula.more_button_options.more_button_image_url; if (window.wapuula.more_button_options.retina_more_button_image_url) { srcset = ' srcset="' + window.wapuula.more_button_options.retina_more_button_image_url + ' 2x"'; } moreMenuContent = '' + moreMenuContent + ''; break; case 'icon': moreMenuContent = ''; break; case 'text': default: moreMenuContent = window.wapuula.more_button_options.more_button_text || moreMenuContent; break; } clotting = window.wapuula.more_button_options.menu_clotting; } $('.main-navigation').cherryResponsiveMenu({ moreMenuContent: moreMenuContent, clotting: clotting }); }, anchor_scrolling_navigation: function (self) { var $document = $(document), top = null, changed = false, currentHash = null, sections = null, timeout = null, interval = null, menuHeight = $('#main-menu').outerHeight(true), $sections = $('.tm_pb_anchor'); sections = getSections(); $(window).on('scroll.cherry_anchor_navigation', function () { var newTop = $document.scrollTop(); changed = newTop != top; if (changed) { top = newTop; } }); $(window).on('resize.cherry_anchor_navigation', function () { sections = getSections(); }); function getSections() { sections = $.map($sections, function (event) { var $event = $(event), position = $event.position(); return { top: position.top - menuHeight, bottom: position.top + $event.outerHeight(true) - menuHeight, hash: $event.attr('id') }; }); return sections; } function iteration() { var sectionsLength = sections.length, section, scrollTop; while (section = sections[--sectionsLength]) { if (section.top >= top || section.bottom <= top) { continue; } if (currentHash == section.hash) { break; } currentHash = section.hash; history.pushState(null, null, '#' + section.hash); } } timeout = setTimeout(function () { interval = setInterval(iteration, 250); }, 250); }, smart_slider_init: function (self) { $('.wapuula-smartslider').each(function () { var slider = $(this), sliderId = slider.data('id'), sliderWidth = slider.data('width'), sliderHeight = slider.data('height'), sliderOrientation = slider.data('orientation'), slideDistance = slider.data('slide-distance'), slideDuration = slider.data('slide-duration'), sliderFade = slider.data('slide-fade'), sliderNavigation = slider.data('navigation'), sliderFadeNavigation = slider.data('fade-navigation'), sliderPagination = slider.data('pagination'), sliderAutoplay = slider.data('autoplay'), sliderFullScreen = slider.data('fullscreen'), sliderShuffle = slider.data('shuffle'), sliderLoop = slider.data('loop'), sliderThumbnailsArrows = slider.data('thumbnails-arrows'), sliderThumbnailsPosition = slider.data('thumbnails-position'), sliderThumbnailsWidth = slider.data('thumbnails-width'), sliderThumbnailsHeight = slider.data('thumbnails-height'); if ($('.smart-slider__items', '#' + sliderId).length > 0) { $('#' + sliderId).sliderPro({ width: sliderWidth, height: sliderHeight, orientation: sliderOrientation, slideDistance: slideDistance, slideAnimationDuration: slideDuration, fade: sliderFade, arrows: sliderNavigation, fadeArrows: sliderFadeNavigation, buttons: sliderPagination, autoplay: sliderAutoplay, fullScreen: sliderFullScreen, shuffle: sliderShuffle, loop: sliderLoop, waitForLayers: false, thumbnailArrows: sliderThumbnailsArrows, thumbnailsPosition: sliderThumbnailsPosition, thumbnailWidth: sliderThumbnailsWidth, thumbnailHeight: sliderThumbnailsHeight, init: function () { $(this).resize(); }, sliderResize: function (event) { var thisSlider = $('#' + sliderId), slides = $('.sp-slide', thisSlider); slides.each(function () { if ($('.sp-title a', this).width() > $(this).width()) { $(this).addClass('text-wrapped'); } else { $(this).removeClass('text-wrapped'); } }); }, breakpoints: { 899: { height: parseFloat(sliderHeight) * 0.75 }, 599: { height: parseFloat(sliderHeight) * 0.5, thumbnailsPosition: ( 'top' === this.thumbnailsPosition ) ? 'top' : 'bottom', thumbnailHeight: parseFloat(sliderThumbnailsHeight) * 0.75, thumbnailWidth: parseFloat(sliderThumbnailsWidth) * 0.75 } } }); } });//each end }, swiper_carousel_init: function (self) { // Enable swiper carousels jQuery('.wapuula-carousel').each(function () { var swiper = null, uniqId = jQuery(this).data('uniq-id'), slidesPerView = parseFloat(jQuery(this).data('slides-per-view')), slidesPerGroup = parseFloat(jQuery(this).data('slides-per-group')), slidesPerColumn = parseFloat(jQuery(this).data('slides-per-column')), spaceBetweenSlides = parseFloat(jQuery(this).data('space-between-slides')), durationSpeed = parseFloat(jQuery(this).data('duration-speed')), swiperLoop = jQuery(this).data('swiper-loop'), freeMode = jQuery(this).data('free-mode'), grabCursor = jQuery(this).data('grab-cursor'), mouseWheel = jQuery(this).data('mouse-wheel'), breakpointsSettings = { 1199: { slidesPerView: Math.floor(slidesPerView * 0.75), spaceBetween: Math.floor(spaceBetweenSlides * 0.75) }, 899: { slidesPerView: Math.floor(slidesPerView * 0.5), spaceBetween: Math.floor(spaceBetweenSlides * 0.5) }, 599: { slidesPerView: ( 0 !== Math.floor(slidesPerView * 0.25) ) ? Math.floor(slidesPerView * 0.25) : 1 } }; if (1 == slidesPerView) { breakpointsSettings = {} } var swiper = new Swiper('#' + uniqId, { slidesPerView: slidesPerView, slidesPerGroup: slidesPerGroup, slidesPerColumn: slidesPerColumn, spaceBetween: spaceBetweenSlides, speed: durationSpeed, loop: swiperLoop, freeMode: freeMode, grabCursor: grabCursor, mousewheelControl: mouseWheel, paginationClickable: true, nextButton: '#' + uniqId + '-next', prevButton: '#' + uniqId + '-prev', pagination: '#' + uniqId + '-pagination', onInit: function () { $('#' + uniqId + '-next').css({'display': 'block'}); $('#' + uniqId + '-prev').css({'display': 'block'}); }, breakpoints: breakpointsSettings } ); }); }, post_formats_custom_init: function (self) { CherryJsCore.variable.$document.on('cherry-post-formats-custom-init', function (event) { if ('slider' !== event.object) { return; } var uniqId = '#' + event.item.attr('id'), settings = event.item.data('init'), swiper = new Swiper(uniqId, { pagination: uniqId + ' .swiper-pagination', paginationClickable: true, nextButton: uniqId + ' .swiper-button-next', prevButton: uniqId + ' .swiper-button-prev', spaceBetween: 0, loop: settings['loop'], onInit: function () { if (settings['arrows']) { $(uniqId + ' .swiper-button-next').css({'display': 'block'}); $(uniqId + ' .swiper-button-prev').css({'display': 'block'}); } if (settings['buttons']) { $(uniqId + ' .swiper-pagination').css({'display': 'block'}); } } }); event.item.data('initalized', true); }); }, navbar_init: function (self) { $(window).load(function () { var $layout = window.wapuula.labels.header_layout, $navbar = ( 'style-3' === $layout ) ? $('.header-nav-wrapper') : $('.header_wrap'); if (!$.isFunction(jQuery.fn.stickUp) || undefined === window.wapuula.stickUp || !$navbar.length) { return !1; } $navbar.stickUp({ correctionSelector: '#wpadminbar', listenSelector: '.listenSelector', pseudo: true, active: true }); CherryJsCore.variable.$document.trigger('scroll.stickUp'); }); function addClassWhileIsStuck() { var isStuckActive = 'stuck-active', siteHeader = $('.site-header'); if ($('.header_wrap').hasClass('isStuck') || $('.header-nav-wrapper').hasClass('isStuck')) { siteHeader.addClass(isStuckActive); } else { siteHeader.removeClass(isStuckActive); } } CherryJsCore.variable.$document.on('scroll.stickUp', addClassWhileIsStuck); }, subscribe_init: function (self) { CherryJsCore.variable.$document.on('click', '.subscribe-block__submit', function (event) { event.preventDefault(); var $this = $(this), form = $this.parents('form'), nonce = form.find('input[name="nonce"]').val(), mail_input = form.find('input[name="subscribe-mail"]'), mail = mail_input.val(), error = form.find('.subscribe-block__error'), success = form.find('.subscribe-block__success'), hidden = 'hidden'; if ('' === mail) { mail_input.addClass('error'); return !1; } if ($this.hasClass('processing')) { return !1; } $this.addClass('processing'); error.empty(); mail_input.removeClass('error'); if (!error.hasClass(hidden)) { error.addClass(hidden); } if (!success.hasClass(hidden)) { success.addClass(hidden); } $.ajax({ url: wapuula.ajaxurl, type: 'post', dataType: 'json', data: { action: 'wapuula_subscribe', mail: mail, nonce: nonce }, error: function () { $this.removeClass('processing'); } }).done(function (response) { $this.removeClass('processing'); if (true === response.success) { success.removeClass(hidden); mail_input.val(''); return 1; } error.removeClass(hidden).html(response.data.message); mail_input.addClass('error'); return !1; }); }); }, isMegaMenuEnabled: function () { if (undefined === window.wapuula.megaMenu) { return false; } if (true === window.wapuula.megaMenu.isActive && 'main' == window.wapuula.megaMenu.location) { return true; } return false; }, main_menu: function (self, $mainNavigation) { if (self.isMegaMenuEnabled()) { //return; } var transitionend = 'transitionend oTransitionEnd webkitTransitionEnd', moreMenuContent = '···', imgurl = '', srcset = '', hasimg = false, hasicon = false, hasprop = Object.prototype.hasOwnProperty, $menuToggle = $('.main-menu-toggle[aria-controls="main-menu"]', $mainNavigation), liWithChildren = 'li.menu-item-has-children, li.page_item_has_children', $body = $('body'), $parentNode, menuItem, subMenu, index = -1, $layout = window.wapuula.labels.header_layout; if (hasprop.call(window, 'wapuula') && hasprop.call(window.wapuula, 'more_button_options') && hasprop.call(window.wapuula.more_button_options, 'more_button_type')) { switch (window.wapuula.more_button_options.more_button_type) { case 'image': imgurl = window.wapuula.more_button_options.more_button_image_url; if (window.wapuula.more_button_options.retina_more_button_image_url) { srcset = ' srcset="' + window.wapuula.more_button_options.retina_more_button_image_url + ' 2x"'; } moreMenuContent = '' + moreMenuContent + ''; hasimg = true; break; case 'icon': moreMenuContent = ''; hasicon = true; break; case 'text': default: moreMenuContent = window.wapuula.more_button_options.more_button_text || moreMenuContent; hasimg = false; hasicon = false; break; } } function hideSubMenu(menuItem, $event) { var subMenus = menuItem.find('.sub-menu'), subMenu = menuItem.children('.sub-menu').first(); menuItem .removeData('index') .removeClass('menu-hover'); subMenus.addClass('in-transition'); subMenus .one(transitionend, function () { subMenus.removeClass('in-transition'); }); } function handleMenuItemHover($event) { if ($('html').hasClass('mobile-menu-active')) { return; } menuItem = $($event.target).parents('.menu-item'); subMenu = menuItem.children('.sub-menu').first(); var subMenus = menuItem.find('.sub-menu'); if (!menuItem.hasClass('menu-item-has-children')) { menuItem = $event.target.tagName === 'LI' ? $($event.target) : $($event.target).parents().filter('.menu-item'); } switch ($event.type) { case 'mouseenter': case 'mouseover': if (0 < subMenu.length) { var maxWidth = $body.outerWidth(true), subMenuOffset = subMenu.offset().left + subMenu.outerWidth(true); menuItem.addClass('menu-hover'); subMenus.addClass('in-transition'); if ($('body').hasClass('rtl')) { if (0 > subMenu.offset().left) { subMenu.addClass('inverse-side'); subMenu.find('.sub-menu').addClass('inverse-side'); } else if (maxWidth <= subMenuOffset) { subMenu.removeClass('inverse-side'); subMenu.find('.sub-menu').removeClass('inverse-side'); } } else { if (maxWidth <= subMenuOffset) { subMenu.addClass('inverse-side'); subMenu.find('.sub-menu').addClass('inverse-side'); } else if (0 > subMenu.offset().left) { subMenu.removeClass('inverse-side'); subMenu.find('.sub-menu').removeClass('inverse-side'); } } subMenus .one(transitionend, function () { subMenus.removeClass('in-transition'); }); } break; case 'mouseleave': case 'mouseout': hideSubMenu(menuItem, $event); break; } } CherryJsCore.variable.$window.on('orientationchange resize', function () { if ($('html').hasClass('mobile-menu-active')) { return; } $mainNavigation.find('.menu-item').removeClass('menu-hover'); $mainNavigation.find('.sub-menu.inverse-side').removeClass('inverse-side'); }); $(liWithChildren).hoverIntent({ over: function () { }, out: function () { }, timeout: 300, selector: '.menu-item' }); $mainNavigation.on('mouseenter mouseover mouseleave mouseout', '.menu-item', handleMenuItemHover); function doubleClickMenu($jqEvent) { $parentNode = $(this); if ($('html').hasClass('mobile-menu-active')) { return true; } var menuIndex = $parentNode.index(); if (menuIndex !== parseInt($parentNode.data('index'), 10)) { $jqEvent.preventDefault(); } $parentNode.data('index', menuIndex); } // Check if touch events supported if ('ontouchend' in window) { // Attach event listener for double click $(liWithChildren, $mainNavigation) .on('click', doubleClickMenu); // Reset index on touchend event CherryJsCore.variable.$document.on('touchend', function ($jqEvent) { if (!$('html').hasClass('mobile-menu-active')) { $parentNode = $($jqEvent.target).parents().filter('.menu-item:first'); if ($parentNode.hasClass('menu-hover') === false) { hideSubMenu($parentNode, $jqEvent); index = $parentNode.data('index'); if (index) { $parentNode.data('index', parseInt(index, 10) - 1); } } } }); } $menuToggle.on('click', function ($event) { $event.preventDefault(); $mainNavigation.toggleClass('toggled'); }); }, mobile_menu: function (self) { var $mainNavigation = $('.main-navigation'), $menuToggle = $('.main-menu-toggle[aria-controls="main-menu"]'); $mainNavigation .find('li.menu-item-has-children > a') .append(''); /** * Debounce the function call * * @param {number} threshold The delay. * @param {Function} callback The function. */ function debounce(threshold, callback) { var timeout; return function debounced($event) { function delayed() { callback.call(this, $event); timeout = null; } if (timeout) { clearTimeout(timeout); } timeout = setTimeout(delayed, threshold); }; } /** * Resize event handler. * * @param {jqEvent} jQuery event. */ function resizeHandler($event) { var $window = CherryJsCore.variable.$window, width = $window.outerWidth(true); if (self.mobile_breakpoint <= width) { $mainNavigation.removeClass('mobile-menu'); } else { $mainNavigation.addClass('mobile-menu'); } } /** * Toggle sub-menus. * * @param {jqEvent} $event jQuery event. */ function toggleSubMenuHandler($event) { $event.preventDefault(); $(this).toggleClass('active'); $(this).parents().filter('li:first').toggleClass('sub-menu-open'); } /** * Toggle menu. * * @param {jqEvent} $event jQuery event. */ function toggleMenuHandler($event) { var $toggle = $('.sub-menu-toggle'); if (!$event.isDefaultPrevented()) { $event.preventDefault(); } setTimeout(function () { if (!$mainNavigation.hasClass('animate')) { $mainNavigation.addClass('animate'); } $mainNavigation.toggleClass('show'); $('html').toggleClass('mobile-menu-active'); }, 10); $menuToggle.toggleClass('toggled'); $menuToggle.attr('aria-expanded', !$menuToggle.hasClass('toggled')); if ($toggle.hasClass('active')) { $toggle.removeClass('active'); $mainNavigation.find('.sub-menu-open').removeClass('sub-menu-open'); } } resizeHandler(); CherryJsCore.variable.$window.on('resize orientationchange', debounce(500, resizeHandler)); $('.sub-menu-toggle', $mainNavigation).on('click', toggleSubMenuHandler); $menuToggle.on('click.mobileMenuToggle', toggleMenuHandler); }, mega_menu: function (self) { /** * Mega-menu mobile SubMenu Toggled. */ function megaMenuSubMenuToggled() { $(this).toggleClass('active'); } // ADD to Mega-menu sub-menu toggle active class. $('.mega-menu-mobile-arrow').on('click', megaMenuSubMenuToggled); }, page_preloader_init: function (self) { if ($('.page-preloader-cover')[0]) { $('.page-preloader-cover').delay(500).fadeTo(500, 0, function () { $(this).remove(); }); } }, to_top_init: function (self) { if ($.isFunction(jQuery.fn.UItoTop) && undefined !== window.wapuula.toTop) { $().UItoTop({ text: wapuula.labels.totop_button, scrollSpeed: 600 }); } }, ofi_init: function (self) { if ($('body').hasClass('ie') && 'undefined' !== typeof objectFitImages) { objectFitImages(); } }, playlist_slider_widget_init: function (self) { $('.widget-playlist-slider .playlist-slider').each(function () { var $this = $(this), settings = $this.data('settings'), breakpoints = JSON.parse(settings.breakpoints); $this.sliderPro({ autoplay: false, width: settings['width'], height: parseInt(settings['height']), orientation: 'vertical', waitForLayers: false, touchSwipe: false, updateHash: false, arrows: settings['arrows'], buttons: settings['buttons'], thumbnailArrows: settings['thumbnailArrows'], thumbnailsPosition: settings['thumbnailsPosition'], thumbnailPointer: true, thumbnailWidth: settings['thumbnailWidth'], thumbnailHeight: settings['thumbnailHeight'], breakpoints: breakpoints, init: function () { $this.resize().fadeTo(0, 1); }, gotoSlideComplete: function (event) { var prevSlide = $('.sp-slide', $this).eq(event.previousIndex), iframe = prevSlide.find('iframe'), html5Video = prevSlide.find('video'); if (iframe[0]) { var iframeSrc = iframe.attr('src'); iframe.attr('src', iframeSrc); } else if (html5Video[0]) { html5Video[0].stop(); } } }); }); }, news_smart_box_init: function (self) { jQuery('.news-smart-box__instance').each(function () { var uniqId = $(this).data('uniq-id'), instanceSettings = $(this).data('instance-settings'), instance = $('#' + uniqId), $termItem = $('.news-smart-box__navigation-terms-list-item', instance), $currentTerm = $('.news-smart-box__navigation-title', instance), $listContainer = $('.news-smart-box__wrapper', instance), $ajaxPreloader = $('.nsb-spinner', instance), $termsList = $('.news-smart-box__navigation-terms-list', instance), $menuToggle = $('.menu-toggle', instance), ajaxGetNewInstance = null, ajaxGetNewInstanceSuccess = true, showNewItems = null; $termItem.each(function () { var slug = $(this).data('slug'); if ('category' === instanceSettings.terms_type) { if (slug === instanceSettings.current_category) { $(this).addClass('is-active'); } } else { if (slug === instanceSettings.current_tag) { $(this).addClass('is-active'); } } }); $menuToggle.on('click', function ($jqEvent) { $jqEvent.preventDefault(); $menuToggle.toggleClass('news-smart-box__navigation-toggle--open'); $termsList.toggleClass('news-smart-box__navigation-terms-list--open'); }); $termItem.on('click', function () { var slug = $(this).data('slug'), data = { action: 'new_smart_box_instance', nonce: wapuula.new_smart_box_nonce, value_slug: slug, instance_settings: instanceSettings }, currentTermName = $(this).text(), counter = 0; if (!$(this).hasClass('is-active')) { $termItem.removeClass('is-active'); $(this).addClass('is-active'); } $currentTerm.html(currentTermName); if (ajaxGetNewInstance !== null) { ajaxGetNewInstance.abort(); } ajaxGetNewInstance = $.ajax({ type: 'GET', url: wapuula.ajaxurl, data: data, cache: false, beforeSend: function () { ajaxGetNewInstanceSuccess = false; $ajaxPreloader.css({'display': 'block'}).fadeTo(300, 1); }, success: function (response) { ajaxGetNewInstanceSuccess = true; $ajaxPreloader.fadeTo(300, 0, function () { $(this).css({'display': 'none'}); }); $('.news-smart-box__listing', $listContainer).html(response); counter = 0; $('.news-smart-box__item-inner', $listContainer).addClass('animate-cycle-show'); $('.news-smart-box__item', $listContainer).each(function () { showItem($(this), 100 * parseInt(counter) + 200); counter++; }) } }); }); var showItem = function (itemList, delay) { var timeOutInterval = setTimeout(function () { $('.news-smart-box__item-inner', itemList).removeClass('animate-cycle-show'); }, delay); } }); }, header_search: function (self) { var $header = $('.site-header'), $searchToggle = $('.search-form__toggle, .search-form__close', $header), $headerSearch = $('.header-search', $header), $searchInput = $('.search-form__field', $headerSearch), searchHandler = function (event) { $header.toggleClass('search-active'); if ($header.hasClass('search-active')) { $searchInput.focus(); } }, removeActiveClass = function (event) { if ($(event.target).closest($searchToggle).length || $(event.target).closest($headerSearch).length) { return; } if ($header.hasClass('search-active')) { $header.removeClass('search-active'); } event.stopPropagation(); }; $searchToggle.on('click', searchHandler); CherryJsCore.variable.$document.on('click', removeActiveClass); }, vertical_menu_init: function (self) { var $mainNavigation = $('.main-navigation.vertical-menu'), $mainMenu = $('.mega-menu', $mainNavigation), $back = $('.back', $mainNavigation), $close = $('.close', $mainNavigation), currentTranslate = parseInt($mainMenu.css('transform')), isAnimate = false, offset = 375; resizeHandler(); CherryJsCore.variable.$window.on('resize', resizeHandler); function resizeHandler(event) { var $window = CherryJsCore.variable.$window, width = $window.outerWidth(true); if (600 > width) { $mainNavigation.removeClass('vertical-menu'); $('.vertical-menu-toggle').off('click.open', openHandler); $('.menu-item-has-children > a', $mainNavigation).off('click.active', clickHandler); $back.off('click.back', backHandler); $close.off('click.close', closeHandler); $mainMenu.removeClass('scroll'); $('.main-navigation .mega-menu').css('transform', 'translateX(0)'); } else { $mainNavigation.addClass('vertical-menu'); $('.vertical-menu-toggle').on('click.open', openHandler); $('.menu-item-has-children > a', $mainNavigation).on('click.active', clickHandler); $back.on('click.back', backHandler); $close.on('click.close', closeHandler); $mainMenu.addClass('scroll'); } } $('.menu-item-has-children', $mainNavigation).each(function () { var $li = $(this), $link = $('>a', $li), linkText = $link.html(), linkHref = $link[0].cloneNode(true), $subMenu = $('> .sub-menu', $li); $subMenu.prepend('
  • ' + linkText + '
  • '); }); function openHandler(event) { $(this).toggleClass('toggled'); if ($mainNavigation.hasClass('menu-open')) { closeHandler(); return false; } $mainNavigation.toggleClass('menu-open'); } function backHandler(event) { var currentTranslate = parseInt(($mainMenu.css('transform').replace(/,/g, "")).split(" ")[4]), translate = currentTranslate + offset, $active = $('.active', $mainMenu), $lastActive = $($active[$active.length - 1]); if (isAnimate) { return false; } if (currentTranslate < 0) { isAnimate = true; $mainMenu.css('transform', 'translateX(' + translate + 'px)'); if (translate >= 0) { translate = 0; $(this).addClass('hide'); $close.removeClass('hide'); } setTimeout(function () { $lastActive.removeClass('active'); $lastActive.siblings().toggleClass('hide'); $('>a', $lastActive).removeClass('hide'); $lastActive.parent().addClass('scroll'); isAnimate = false; }, 250); } return false; } function closeHandler(event) { if (!isAnimate) { $('.active', $mainMenu).removeClass('active'); $('.hide', $mainMenu).removeClass('hide'); $('.close.hide', $mainNavigation).removeClass('hide'); $back.addClass('hide'); $mainNavigation.removeClass('menu-open'); $mainMenu.css('transform', 'translateX(0)'); } $('.vertical-menu-toggle').removeClass('toggled'); return false; } function clickHandler(event) { var $_target = $(event.currentTarget), $mainMenu = $_target.closest('.mega-menu'), deep = $_target.parents('ul').length, translate = deep * offset; $mainMenu.css('transform', 'translateX(' + -translate + 'px)'); setTimeout(function () { $_target.parent().addClass('active'); $_target.parent().siblings().toggleClass('hide'); $_target.parents('.active').find('> a').addClass('hide'); $_target.siblings('ul').addClass('scroll'); $_target.parents('ul').removeClass('scroll'); }, 250); $back.removeClass('hide'); $close.addClass('hide'); return false; } }, big_image_class: function (self) { var $img = $('.entry-content p img'); $img.each(function () { var $this = $(this), $imgWidth = $this.attr('width'); if (1600 <= $imgWidth) { $this.addClass('size-big'); } }); }, add_project_inline_style: function (self) { var $projectGridContainer = $('.projects-container.grid-layout'), $projectJustifiedContainer = $('.projects-container.justified-layout'), $projectGridTermsContainer = $('.projects-terms-container.grid-layout'), $projectContainer = $('.projects-container'), addInlineStyle = function () { var $this = $(this), $projectsSettings = $this.data('settings'), $projectItemIndent = Math.ceil(+$projectsSettings['item-margin']); $this.css({ 'margin-left': -$projectItemIndent / 2 + 'px', 'margin-right': -$projectItemIndent / 2 + 'px' }); }, addTemplateClass = function () { var $this = $(this), $projectsSettings = $this.data('settings'), $projectsTemplate = $projectsSettings['template']; if ($projectsTemplate) { $this.addClass($projectsTemplate.replace('.', '-')); } }; $projectGridContainer.each(addInlineStyle); $projectJustifiedContainer.each(addInlineStyle); $projectGridTermsContainer.each(addInlineStyle); $projectContainer.each(addTemplateClass); }, single_team: function (self) { var avatar_style = function () { var $avatar = $('.single-team .template-single .team-cover-image + .team-photo .avatar'), $avatarWidth = $avatar.width(); $avatar.css({ 'marginTop': -$avatarWidth / 2 }); }; CherryJsCore.variable.$window.on('resize.singleTeam, load.singleTeam', avatar_style); }, create_mobile_menu_toggle: function (self) { var menuItems = document.querySelectorAll('.mega-menu > .mega-menu-item-has-children'), menu = document.querySelector('.mega-menu'); for (var i = 0; i < menuItems.length; i++) { var spanElement = document.createElement('span'); spanElement.className = 'menu-toggle'; menuItems[i].appendChild(spanElement); spanElement.addEventListener('click', function (spanElement) { return function () { spanElement.parentNode.classList.toggle('mega-toggle-on'); } }(spanElement)); } }, add_single_product_tabs_animation: function (self) { var tabStyle = document.querySelectorAll('.woocommerce-tabs.wc-tabs-wrapper'); if (tabStyle) { function createBack(tab) { var currentTab = tab, tabArrayStyle = null, singleTab = null, activeTab = null, activeHash = null, activeTabCurrent = null, divider; function tabClickHandler() { divider.style.left = this.offsetLeft + "px"; divider.style.width = this.getBoundingClientRect().width + "px"; divider.style.height = this.getBoundingClientRect().height + "px"; if (this === first) { divider.style.left = 0; } } tabArrayStyle = currentTab.querySelector('.tabs.wc-tabs'); singleTab = tabArrayStyle.querySelectorAll('.reviews_tab, .additional_information_tab, .description_tab'); activeTab = tabArrayStyle.querySelectorAll('.active'); activeTabCurrent = activeTab[0]; activeTab = tabArrayStyle.querySelectorAll('.active'); var posLeftActive = activeTabCurrent.offsetLeft, widthActive = activeTabCurrent.getBoundingClientRect().width, heightActive = activeTabCurrent.getBoundingClientRect().height; divider = document.createElement('span'); divider.className = 'active-background'; divider.style.left = 0; divider.style.top = 0; divider.style.width = widthActive + "px"; divider.style.height = heightActive + "px"; tabArrayStyle.appendChild(divider); var first = singleTab[0]; for (var j = 0; j < singleTab.length; j++) { if (first === singleTab[j]) { divider.style.left = 0; } singleTab[j].addEventListener('click', tabClickHandler); } } for (var i = 0; i < tabStyle.length; i++) { createBack(tabStyle[i]); } } }, add_tabs_animation: function (self) { var tabStyle = document.querySelectorAll('.vc_tta-style-modern.vc_tta-shape-rounded, .vc_tta-style-flat.vc_tta-shape-rounded'); if (tabStyle) { function createBack(tab) { var currentTab = tab, tabArrayStyle = null, singleTab = null, activeTab = null, activeHash = null, activeTabCurrent = null, divider; function tabClickHandler() { divider.style.left = this.offsetLeft + "px"; divider.style.top = this.offsetTop + "px"; divider.style.width = this.getBoundingClientRect().width + "px"; divider.style.height = this.getBoundingClientRect().height + "px"; } tabArrayStyle = currentTab.querySelector('.vc_tta-tabs-list'); singleTab = tabArrayStyle.querySelectorAll('.vc_tta-tab'); activeTab = tabArrayStyle.querySelectorAll('.vc_tta-tab.vc_active'); activeHash = window.location.hash; activeTabCurrent = activeTab[0]; if (activeHash && tabArrayStyle.querySelector('a[href="' + activeHash + '"]') != null) { activeTabCurrent = tabArrayStyle.querySelector('a[href="' + activeHash + '"]').parentNode; } var posLeftActive = activeTabCurrent.offsetLeft, posTopActive = activeTabCurrent.offsetTop, widthActive = activeTabCurrent.getBoundingClientRect().width, heightActive = activeTabCurrent.getBoundingClientRect().height; divider = document.createElement('span'); divider.className = 'active-background'; divider.style.left = posLeftActive + "px"; divider.style.top = posTopActive + "px"; divider.style.width = widthActive + "px"; divider.style.height = heightActive + "px"; tabArrayStyle.appendChild(divider); for (var j = 0; j < singleTab.length; j++) { singleTab[j].addEventListener('click', tabClickHandler); } } for (var i = 0; i < tabStyle.length; i++) { createBack(tabStyle[i]); } } }, marquee_init: function (self) { var marquee = $('.marquee'); marquee.each(function () { $(this).wrapInner(''); $('.marquee-inner', this).clone().appendTo(this); var inner = $('.marquee-inner', this); inner.stretch(); var resizeHandler = function () { inner.unwrap('.stretch--resizer'); inner.unwrap('.stretch--handle'); inner.stretch(); }; $(window).on('resize.marquee', resizeHandler); }); }, parallax_init: function (self) { (function () { var lastTime = 0; var vendors = ['ms', 'moz', 'webkit', 'o']; for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']; window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame']; } if (!window.requestAnimationFrame) window.requestAnimationFrame = function (callback, element) { var currTime = new Date().getTime(); var timeToCall = Math.max(0, 16 - (currTime - lastTime)); var id = window.setTimeout(function () { callback(currTime + timeToCall); }, timeToCall); lastTime = currTime + timeToCall; return id; }; if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function (id) { clearTimeout(id); }; }()); (function jlParallax() { var parInners = document.querySelectorAll('.parallax figure'); var layer, height, heightPar, src, boundingClientRect, y, windowHeight; var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); var depth = 0.1; windowHeight = window.innerHeight; function scrollParametrs() { boundingClientRect = layer.parentNode.getBoundingClientRect(); y = ( boundingClientRect.top - windowHeight / 2 + heightPar / 2) * depth; if (layer.parentNode.classList.contains('parallax-inverse')) { layer.style.setProperty('--ty', (-y) + 'px'); if (depth == 1) { // layer.style.position = 'static'; } } else { layer.style.setProperty('--ty', (y) + 'px'); } } for (var i = 0; i < parInners.length; i++) { layer = parInners[i]; heightPar = layer.parentNode.clientHeight; if (layer.hasAttribute('data-image')) { // Create bg image src = layer.getAttribute("data-image"); layer.style.setProperty("background-image", "url(" + src + ")"); } else if (layer.getElementsByClassName('jl-parallax-content')) { scrollParametrs(); } } if (!isMobile) { for (i = 0; i < parInners.length; i++) { layer = parInners[i]; if (layer.hasAttribute('data-image')) { // Parallax inner height heightPar = layer.parentNode.clientHeight; height = heightPar + ( windowHeight + heightPar ) * Math.abs(depth); layer.style.setProperty("height", height + "px"); scrollParametrs(); } } window.addEventListener("resize", function () { windowHeight = window.innerHeight; for (var i = 0; i < parInners.length; i++) { layer = parInners[i]; if (layer.hasAttribute('data-image')) { // Parallax inner height height = heightPar + ( windowHeight + heightPar ) * Math.abs(depth); layer.style.setProperty("height", height + "px"); scrollParametrs(); } } }); function parallaxScroll() { for (var i = 0; i < parInners.length; i++) { layer = parInners[i]; heightPar = layer.parentNode.clientHeight; scrollParametrs(); } } window.addEventListener('scroll', function () { window.requestAnimationFrame(parallaxScroll); }); } })(); }, section_fixed_init: function (self) { if( document.getElementsByClassName("fixed-section")[0] ) { var targetSection = document.getElementsByClassName("fixed-section")[0], targetRow = targetSection.getElementsByClassName("vc_row")[0], offsetTop, innerHeight, opacity, targetRowHeight, siteHeader = document.getElementsByClassName("site-header")[0], siteHeaderHeight = siteHeader.getBoundingClientRect().height; function addClassWhenScroll() { offsetTop = window.pageYOffset; innerHeight = targetSection.clientHeight; targetRowHeight = targetRow.clientHeight; opacity = ((innerHeight - (offsetTop * .8)) / innerHeight).toFixed(2); if(opacity < 0){ opacity=0; } targetRow.style.setProperty('--to', (opacity)); targetSection.style.height = targetRowHeight + 'px'; if(window.pageYOffset >= siteHeaderHeight ){ targetSection.classList.add('fixed-row'); } else{ targetSection.classList.remove('fixed-row'); } } addClassWhenScroll(); window.addEventListener("resize", function(){ addClassWhenScroll(); }); window.addEventListener('scroll', function() { addClassWhenScroll(); }); } } }; CherryJsCore.theme_script.init(); }(jQuery));