/* globals jQuery, mfn */
/* jshint esversion: 6 */
(function($) {
"use strict";
var scrollTicker, lightboxAttr, sidebar,
rtl = $('body').hasClass('rtl'),
simple = $('body').hasClass('style-simple'),
topBarTop = '61px',
headerH = 0,
headerOffset = 0,
screen = 'desktop',
mobileInitW = mfn.mobileInit ? mfn.mobileInit : 1240;
/**
* Lightbox | Magnific Popup
*/
if ( ! mfn.lightbox.disable ) {
if ( ! ( mfn.lightbox.disableMobile && ( window.innerWidth < 768 ) ) ) {
lightboxAttr = {
title: mfn.lightbox.title ? mfn.lightbox.title : false,
};
}
}
/**
* Admin Bar & WooCommerce Store Notice
*/
function adminBarH() {
var height = 0;
// WP adminbar
if ($('body').hasClass('admin-bar')) {
var actionBarH = $('#wpadminbar').innerHeight() || 0;
height += actionBarH;
}
// WC demo store
if ($('body').hasClass('woocommerce-demo-store')) {
var demoStoreH = $('body > p.demo_store').innerHeight() || 0;
height += demoStoreH;
}
return height;
}
/**
* Header | Sticky
*/
function mfnSticky() {
if( ! $('body').hasClass('sticky-header') ){
return false;
}
if( $('body').hasClass('header-creative') && window.innerWidth >= 768 ){
return false;
}
var startY = headerH;
var windowY = $(window).scrollTop();
var topBarH = $('#Top_bar').height() || 0;
if ( windowY > startY ) {
if ( ! ( $('#Top_bar').hasClass('is-sticky') ) ) {
$('.header_placeholder').css('height', topBarH);
$('#Top_bar')
.addClass('is-sticky')
.css('top', -60)
.animate({
'top': adminBarH() + 'px'
}, 300);
headerWidth();
$(document).trigger('mfn:header:sticky:on');
}
} else {
if ($('#Top_bar').hasClass('is-sticky')) {
$('.header_placeholder').css('height', 0);
$('#Top_bar')
.removeClass('is-sticky')
.css('top', topBarTop);
stickyLogo();
headerWidth();
$(document).trigger('mfn:header:sticky:off');
}
}
}
/**
* Header | Sticky | Retina Logo - max height
*/
function stickyLogo() {
// ! retina display
if( window.devicePixelRatio <= 1 ){
return false;
}
var parent = $('#Top_bar #logo'),
el = $('img.logo-main', parent),
height = el.data('height');
// ! retina logo set
if ( ! parent.hasClass('retina')) {
return false;
}
if ( $('body').hasClass('logo-overflow') ) {
// do nothing
} else if ( height > parent.data('height') ) {
height = parent.data('height');
}
el.css('max-height', height + 'px');
}
/**
* Header | Sticky | Height
*/
function mfnStickyH() {
var topBarH = $('#Top_bar').innerHeight() || 0;
if ( $('body').hasClass('header-below') ) {
// header below slider
var sliderH = $('.mfn-main-slider').innerHeight() || 0;
headerH = topBarH + sliderH;
} else {
// default
var actionBarH = $('#Action_bar').innerHeight() || 0;
headerH = topBarH + actionBarH;
}
}
/**
* Header | Sticky | Mobile
*/
function mfnMobileSticky() {
if( ! $('body').hasClass('.mobile-sticky') ){
return false;
}
if( $(window).width() >= 768 ){
return false;
}
var menuH,
windowH = $(window).height() || 0,
logoH = $('#Top_bar .logo').height() || 0,
offset = adminBarH() + logoH;
if ( ( ! $('#Top_bar').hasClass('is-sticky')) && $('#Action_bar').is(':visible') ) {
offset += $('#Action_bar').height() || 0;
}
menuH = windowH - offset;
if (menuH < 176) {
menuH = 176;
}
$('#Top_bar #menu').css('max-height', menuH + 'px');
}
/**
* Header | Top bar left | Width
*/
function headerWidth() {
var rightW = $('.top_bar_right').outerWidth() || 0;
rightW = Math.ceil( rightW );
if( $('body').hasClass('header-modern') ){
rightW += 10;
}
var parentW = $('#Top_bar .one').width() || 0;
var leftW = parentW - rightW;
}
/**
* FIX | Header | Sticky | Height
*/
function fixStickyHeaderH() {
var stickyH = 0;
// FIX | sticky top bar height
var topBar = $('.sticky-header #Top_bar');
if (topBar.hasClass('is-sticky')) {
stickyH = $('.sticky-header #Top_bar').innerHeight() || 0;
} else {
topBar.addClass('is-sticky');
stickyH = $('.sticky-header #Top_bar').innerHeight() || 0;
topBar.removeClass('is-sticky');
}
// FIX | responsive
if ( $(window).width() < mobileInitW ) {
if ( $(window).width() < 768 ) {
// mobile
if (!$('body').hasClass('mobile-sticky')) {
stickyH = 0;
}
} else {
// tablet
if (!$('body').hasClass('tablet-sticky')) {
stickyH = 0;
}
}
} else {
// desktop
// FIX | header creative
if ($('body').hasClass('header-creative')) {
stickyH = 0;
}
}
return stickyH;
}
/**
* Sidebar | Height
*/
function mfnSidebar() {
if ($('.mcb-sidebar').length) {
var maxH = $('#Content .sections_group').outerHeight();
$('.mcb-sidebar').each(function() {
$(this).css('min-height', 0);
if ($(this).height() > maxH) {
maxH = $(this).height();
}
});
$('.mcb-sidebar').css('min-height', maxH + 'px');
if( sidebar ){
sidebar.stickySidebar('updateSticky');
}
}
}
/**
* Into | Full Screen
*/
function mfnIntroH() {
var windowH = $(window).height() || 0;
var headerWrapperH = $('#Header_wrapper').height() || 0;
windowH = windowH - headerWrapperH - adminBarH();
$('#Intro.full-screen').each(function() {
var el = $(this),
inner = $('.intro-inner', el),
innerH = inner.height() || 0;
el.css('padding', 0).css('min-height', windowH);
var padding = ( windowH - innerH ) / 2;
inner.css('padding-top', padding).css('padding-bottom', padding);
});
}
/**
* Footer | Sliding | Height
*/
function mfnFooter() {
var footerH = $('#Footer').height() || 0;
// Fixed, Sliding
if ($('.footer-fixed #Footer, .footer-sliding #Footer').length) {
footerH = footerH - 1;
$('#Content').css('margin-bottom', footerH + 'px');
}
// Stick to bottom
if ($('.footer-stick #Footer').length) {
var headerWrapperH = $('#Header_wrapper').height() || 0;
var headerFooterH = headerWrapperH + footerH;
var documentH = $(document).height() - adminBarH();
if ( ( documentH <= $(window).height() ) && ( headerFooterH <= $(window).height() ) ) {
$('#Footer').addClass('is-sticky');
} else {
$('#Footer').removeClass('is-sticky');
}
}
}
/**
* Back To Top | Sticky / Show on scroll
*/
function backToTopSticky() {
if ($('#back_to_top.sticky.scroll').length) {
var el = $('#back_to_top.sticky.scroll');
// Clear Timeout if one is pending
if (scrollTicker) {
window.clearTimeout(scrollTicker);
scrollTicker = null;
}
el.addClass('focus');
// Set Timeout
scrollTicker = window.setTimeout(function() {
el.removeClass('focus');
}, 1500); // Timeout in msec
}
}
/**
* # Hash smooth navigation
*/
function hashNav() {
var hash = window.location.hash;
if (hash) {
// FIX | Master Slider
if (hash.indexOf("&") > -1 || hash.indexOf("/") > -1) {
return false;
}
// Contact Form 7 in popup
if (hash.indexOf("wpcf7") > -1) {
cf7popup(hash);
}
if ($(hash).length) {
var offset = 0,
headerH = fixStickyHeaderH(),
tabH = $(hash).siblings('.ui-tabs-nav').innerHeight() || 0;
// header builder
if( $('body').hasClass('mhb') ){
var currentView = $('.mhb-view').filter(':visible');
headerH = currentView.height() || 0;
}
offset = headerH + adminBarH() + tabH;
$('html, body').animate({
scrollTop: $(hash).offset().top - offset
}, 500);
}
}
}
/**
* One Page | Scroll Active
*/
function onePageActive() {
if ($('body').hasClass('one-page')) {
var stickyH = $('.sticky-header #Top_bar').innerHeight() || 0;
var windowT = $(window).scrollTop();
var start = windowT + stickyH + adminBarH() + 1;
var first = false;
$('[data-id]:not(.elementor-element), section[data-id]').each(function() {
// FIX | elementor adds own data-id for each section
if( $(this).attr('data-id') && ( -1 == $(this).attr('data-id').indexOf('#') ) ){
return true;
}
if ($(this).visible(true)) {
if (!first) {
first = $(this);
} else if (($(this).offset().top < start) && ($(this).offset().top > first.offset().top)) {
first = $(this);
}
}
if (first) {
var newActive = first.attr('data-id');
var active = '[data-hash="' + newActive + '"]';
if (newActive) {
var menu = $('#menu, .mhb-menu');
menu.find('li').removeClass('current-menu-item current-menu-parent current-menu-ancestor current_page_item current_page_parent current_page_ancestor');
$(active, menu)
.closest('li').addClass('current-menu-item')
.closest('.menu > li').addClass('current-menu-item');
}
}
});
}
}
/**
* Contact Form 7 | Popup
*/
function cf7popup(hash) {
if (hash && $(hash).length) {
var id = $(hash).closest('.popup-content').attr('id');
$('a.popup-link[href="#' + id + '"]:not(.once)')
.addClass('once')
.trigger('click');
}
}
/**
* Sticky | Wrap
*/
var stickyWrap = {
headerH: 0,
// stickyWrap.init()
init: function(){
// calculate
stickyWrap.headerH = fixStickyHeaderH() + adminBarH();
// prepare dom
$('.mcb-wrap.sticky.sticky-'+screen+':not(.stickied)').each(function(){
var $wrap = $(this);
if( screen == 'desktop' && $wrap.hasClass('one') ) return;
if( screen == 'tablet' && $wrap.hasClass('tablet-one') ) return;
if( screen == 'mobile' && $wrap.hasClass('mobile-one') ) return;
var size = $wrap.attr('data-'+screen+'-col'),
padding = {
top : $wrap.css('padding-top'),
right : $wrap.css('padding-right'),
bottom : $wrap.css('padding-bottom'),
left : $wrap.css('padding-left'),
};
padding = Object.values(padding).join(' ');
$wrap.css('padding', padding);
$wrap.addClass('stickied').removeClass(size).addClass('one')
.wrap(function() {
return '
';
});
});
// initial scroll
stickyWrap.scroll();
},
// stickyWrap.scroll()
scroll: function(){
if( ! $('.mcb-wrap.sticky.sticky-'+screen).length ){
return;
}
var windowY = $(window).scrollTop();
$('.mcb-wrap.sticky.sticky-'+screen+'.stickied').each(function(){
var $wrap = $(this),
$rails = $wrap.closest('.wrap-sticky-rails'),
$section = $wrap.closest('.mcb-section-inner');
var width = $rails.width() || 0,
sectionT = $section.offset().top,
sectionH = $section.innerHeight(),
wrapH = $wrap.outerHeight();
var start = windowY + stickyWrap.headerH - sectionT,
limit = start + wrapH - sectionH;
$wrap.css( 'width', width )
.closest('.wrap-sticky-rails').css('min-height', sectionH + 'px');
if( limit > 0 ){
$wrap.removeClass('fixed').addClass('stick-bottom').css({
'top' : ''
});
} else {
$wrap.removeClass( 'stick-bottom' );
if( start > 0 ){
$wrap.addClass('fixed').css({
'top' : stickyWrap.headerH + 'px'
});
} else {
$wrap.removeClass('fixed').css({
'top' : ''
});
}
}
});
},
reset: function() {
if( $('.wrap-sticky-spacer').length ){
$('.wrap-sticky-spacer').each(function() {
$(this).find('.mcb-wrap.sticky').removeClass('stickied one fixed').addClass( $(this).find('.mcb-wrap.sticky').attr('data-'+screen+'-col') ).css({'top': '0', 'width': ''});
$(this).replaceWith( $(this).find('.mcb-wrap.sticky') );
});
stickyWrap.init();
}
}
};
/**
* $(document).ready
* Specify a function to execute when the DOM is fully loaded.
*/
$(document).ready(function() {
/**
* Header template
*/
if( $('.promo_bar_slider').length ){
promoBarSlider();
}
if( $('.mfn-header-tmpl .mfn-tmpl-burger').length ){
headerTemplate.burger();
}
if( $('.mfn-header-tmpl.mfn-header-body-offset-active').length ){
headerTemplate.bodyOffset();
}
headerTemplate.closeable();
if( $('.mfn-header-tmpl').hasClass('mfn-header-tmpl-fixed') ){
headerTemplate.start();
}
$('#Top_bar').removeClass('loading');
topBarTop = parseInt($('#Top_bar').css('top'), 10);
if (topBarTop < 0) topBarTop = 61;
topBarTop = topBarTop + 'px';
/**
* Sticky | Sidebar
*/
function sidebarSticky(){
var spacing = fixStickyHeaderH();
if( ! mfn.sidebarSticky ){
return false;
}
sidebar = $('.mcb-sidebar .widget-area').stickySidebar({
topSpacing: spacing
});
}
sidebarSticky();
if( $('.mfn-off-canvas-sidebar').length ){
offCanvasSidebar.init();
}
if( $(window).width() < 767 && !$('.mfn-off-canvas-sidebar').length ){
offCanvasSidebar.mobile();
screen = 'mobile';
}else if($(window).width() < 959){
screen = 'tablet';
}
$(window).on('debouncedresize', function() {
if( $(window).width() < 767 ){
screen = 'mobile';
}else if($(window).width() < 959){
screen = 'tablet';
}else if($(window).width() > 960){
screen = 'desktop';
}
stickyWrap.reset();
if( $(window).width() < 767 && !$('.mfn-off-canvas-sidebar').length ){
offCanvasSidebar.mobile();
}else{
$('html').removeClass('mfn-ofcs-opened');
}
});
/**
* Menu | Overlay
*/
$('.overlay-menu-toggle').on('click',function(e) {
e.preventDefault();
$(this).toggleClass('focus');
$('#Overlay').stop(true, true).fadeToggle(500);
var menuH = $('#Overlay nav').height() || 0;
menuH = menuH / 2;
$('#Overlay nav').css('margin-top', '-' + menuH + 'px');
});
$('#Overlay').on('click', '.menu-item > a', function() {
$('.overlay-menu-toggle').trigger('click');
});
$( '.header-overlay' ).on( 'keydown', function(event) {
if ( 27 == event.keyCode ) {
$('.overlay-menu-toggle.focus').trigger('click');
}
});
/**
* Menu | Responsive | button
*/
$('.responsive-menu-toggle').on('click', function(e) {
e.preventDefault();
var el = $(this);
var menu = $('#Top_bar #menu');
var menuWrap = menu.closest('.top_bar_left');
el.toggleClass('active');
// sticky menu button
if (el.hasClass('is-sticky') && el.hasClass('active') && (window.innerWidth < 768)) {
var top = 0;
if (menuWrap.length) {
top = menuWrap.offset().top - adminBarH();
}
$('body,html').animate({
scrollTop: top
}, 200);
}
menu.stop(true, true).slideToggle(200);
});
// close menu after link click
$('#Top_bar #menu').on('click', 'a', function(){
var $menuButton = $('.responsive-menu-toggle.active');
if( $menuButton.length ){
setTimeout(function(){
$menuButton.trigger('click');
},300);
}
});
/**
* Menu | Responsive | Side Slide
*/
function sideSlide() {
var slide = $('#Side_slide');
var overlay = $('#body_overlay');
var ssMobileInitW = mobileInitW;
var pos = 'right';
var shiftSlide = -slide.data('width');
var shiftBody = shiftSlide / 2;
// constructor
var constructor = function() {
if (!slide.hasClass('enabled')) {
$('nav#menu').detach().appendTo('#Side_slide .menu_wrapper');
slide.addClass('enabled');
}
};
// destructor
var destructor = function() {
if (slide.hasClass('enabled')) {
close();
$('nav#menu').detach().prependTo('#Top_bar .menu_wrapper');
slide.removeClass('enabled');
}
};
// reload
var reload = function() {
if ( window.innerWidth < ssMobileInitW ) {
constructor();
} else if( $('body').hasClass('header-shop') ) {
if ($('#Top_bar').hasClass('is-sticky')) {
$(document).trigger('mfn:header:sticky:on');
} else {
$(document).trigger('mfn:header:sticky:off');
}
} else {
destructor();
}
};
// init
var init = function() {
if (slide.hasClass('left')) {
pos = 'left';
}
// responsive off
if ($('body').hasClass('responsive-off')) {
ssMobileInitW = 0;
}
// header simple
if ($('body').hasClass('header-simple')) {
ssMobileInitW = 9999;
}
// header style: shop | top bar is sticky
if ($('#Top_bar').hasClass('is-sticky')) {
$(document).trigger('mfn:header:sticky:on');
}
reload();
};
// reset to default
var reset = function(time) {
$('.lang-active.active', slide).removeClass('active').children('i').attr('class', 'icon-down-open-mini');
$('.lang-wrapper', slide).fadeOut(0);
$('.icon.search.active', slide).removeClass('active');
$('.search-wrapper', slide).fadeOut(0);
$('.menu_wrapper, .social', slide).fadeIn(time);
};
// menu button
var button = function() {
// show
if (pos == 'left') {
slide.animate({
'left': 0
}, 300);
$('body').animate({
'right': shiftBody
}, 300);
} else {
slide.animate({
'right': 0
}, 300);
$('body').animate({
'left': shiftBody
}, 300);
}
overlay.fadeIn(300);
$('body').addClass('side-slide-is-open');
// reset
reset(0);
};
// close
var close = function() {
if (pos == 'left') {
slide.animate({
'left': shiftSlide
}, 300);
$('body').animate({
'right': 0
}, 300);
} else {
slide.animate({
'right': shiftSlide
}, 300);
$('body').animate({
'left': 0
}, 300);
}
overlay.fadeOut(300);
$('body').removeClass('side-slide-is-open');
// if page contains revolution slider, trigger resize
if ($('.rev_slider').length) {
setTimeout(function() {
$(window).trigger('resize');
}, 300);
}
};
// search
$('.icon.search', slide).on('click', function(e) {
e.preventDefault();
var el = $(this);
if (el.hasClass('active')) {
$('.search-wrapper', slide).fadeOut(0);
$('.menu_wrapper, .social', slide).fadeIn(300);
} else {
$('.search-wrapper', slide).fadeIn(300);
$('.menu_wrapper, .social', slide).fadeOut(0);
$('.lang-active.active', slide).removeClass('active').children('i').attr('class', 'icon-down-open-mini');
$('.lang-wrapper', slide).fadeOut(0);
}
el.toggleClass('active');
});
// search form submit
$('a.submit', slide).on('click', function(e) {
e.preventDefault();
$('#side-form').submit();
});
// lang menu
$('.lang-active', slide).on('click', function(e) {
e.preventDefault();
var el = $(this);
if (el.hasClass('active')) {
$('.lang-wrapper', slide).fadeOut(0);
$('.menu_wrapper, .social', slide).fadeIn(300);
el.children('i').attr('class', 'icon-down-open-mini');
} else {
$('.lang-wrapper', slide).fadeIn(300);
$('.menu_wrapper, .social', slide).fadeOut(0);
el.children('i').attr('class', 'icon-up-open-mini');
$('.icon.search.active', slide).removeClass('active');
$('.search-wrapper', slide).fadeOut(0);
}
el.toggleClass('active');
});
// bind ---
// click | menu button
$('.responsive-menu-toggle').off('click');
$('.responsive-menu-toggle').on('click', function(e) {
e.preventDefault();
button();
});
// click | close
overlay.on('click', function(e) {
close();
});
$('.close', slide).on('click', function(e) {
e.preventDefault();
close();
});
$(slide).on('click', '.menu_wrapper a, .action_button', function(e) {
if( $(this).hasClass('mega-menu-link') ){
return; // FIX: plugin maxmegamenu
}
setTimeout(function(){
close();
},500);
});
// click | below search or languages menu
$(slide).on('click', function(e) {
if ($(e.target).is(slide)) {
reset(300);
}
});
// debouncedresize
$(window).on('debouncedresize', reload);
// header style: shop | sticky
if( $('body').hasClass('header-shop') ){
$(document).on('mfn:header:sticky:on', function(){
if( window.innerWidth >= ssMobileInitW ){
$('#Top_bar .menu_wrapper').css('min-height', '70px');
constructor();
}
});
$(document).on('mfn:header:sticky:off', function(){
if( window.innerWidth >= ssMobileInitW ){
destructor();
}
});
}
// init
init();
}
if ($('body').hasClass('mobile-side-slide')) {
sideSlide();
}
/**
* Gallery | WordPress Gallery
*/
// WordPress <= 4.9 | content
$('.sections_group .gallery, .elementor-section .gallery').each(function() {
var el = $(this);
var id = el.attr('id');
$('> br', el).remove();
$('.gallery-icon > a', el)
.wrap('')
.prepend('')
.children('img')
.css('height', 'auto')
.css('width', '100%');
// lightbox | link to media file
if (el.hasClass('file')) {
$('.gallery-icon a', el)
.attr('rel', 'prettyphoto[' + id + ']')
.attr('data-elementor-lightbox-slideshow', id); // FIX: elementor lightbox gallery
}
// isotope for masonry layout
if (el.hasClass('masonry')) {
el.isotope({
itemSelector: '.gallery-item',
layoutMode: 'masonry',
isOriginLeft: rtl ? false : true
});
}
});
// WordPress >= 5.0 | content
$('.sections_group .wp-block-gallery').each(function(index) {
var el = $(this);
var link = $('.blocks-gallery-item a', el);
// lightbox | link to media file
if ((/\.(gif|jpg|jpeg|png)$/i).test(link.attr('href'))) {
link.attr('rel', 'prettyphoto[wp5-gallery-' + index + ']');
}
});
// widgets
$('.widget_media_gallery .gallery').each(function() {
var el = $(this);
var id = el.attr('id');
// lightbox | link to media file
$('.gallery-icon a', el).attr('rel', 'prettyphoto[widget-' + id + ']');
});
/**
* Lightbox | PrettyPhoto
*/
$('a[rel^="prettyphoto[portfolio]"]').each(function() {
var el = $(this);
var parent = el.closest('.column');
var index = $('.column').index(parent);
el.attr('rel', 'prettyphoto[portfolio-' + index + ']');
});
/**
* Lightbox | Magnific Popup
* with prettyPhoto backward compatibility
*/
function lightbox() {
var galleries = [];
// init
var init = function() {
if (lightboxAttr) {
compatibility();
setType();
constructor();
}
};
// backward compatibility for prettyPhoto
var compatibility = function() {
$('a[rel^="prettyphoto"], a.prettyphoto, a[rel^="prettyphoto"]').each(function() {
var el = $(this);
var rel = el.attr('rel');
if (rel) {
rel = rel.replace('prettyphoto', 'lightbox');
} else {
rel = 'lightbox';
}
el.removeClass('prettyphoto').attr('rel', rel);
});
};
// check if item is a part of gallery
var isGallery = function(rel) {
if (!rel) {
return false;
}
var regExp = /\[(?:.*)\]/;
var gallery = regExp.exec(rel);
if (gallery) {
gallery = gallery[0];
gallery = gallery.replace('[', '').replace(']', '');
return gallery;
}
return false;
};
// set array of names of galleries
var setGallery = function(gallery) {
if (galleries.indexOf(gallery) == -1) {
galleries.push(gallery);
return true;
}
return false;
};
// get file type by link
var getType = function(src) {
if (src.match(/youtube\.com\/watch/i) || src.match(/youtube\.com\/embed/i) || src.match(/youtu\.be/i)) {
return 'iframe';
} else if (src.match(/youtube-nocookie\.com/i)) {
return 'iframe';
} else if (src.match(/vimeo\.com/i)) {
return 'iframe';
} else if (src.match(/\biframe=true\b/i)) {
return 'ajax';
} else if (src.match(/\bajax=true\b/i)) {
return 'ajax';
} else if (src.substr(0, 1) == '#') {
return 'inline';
} else {
return 'image';
}
};
// set file type
var setType = function() {
$('a[rel^="lightbox"]').each(function() {
var el = $(this);
var href = el.attr('href');
var rel = el.attr('rel');
// FIX: WPBakery Page Builder duplicated lightbox
if ( el.closest('.wpb_column').length ){
// return true;
}
if (href) {
// gallery
var gallery = isGallery(rel);
if (gallery) {
el.attr('data-type', 'gallery');
setGallery(gallery);
return true;
}
el.attr('data-type', getType(href));
// iframe paremeters
if (getType(href) == 'iframe') {
el.attr('href', href.replace('&rel=0', ''));
}
}
});
};
// constructor
var constructor = function() {
var attr = {
autoFocusLast: false,
removalDelay: 160,
image: {
titleSrc: function(item) {
var img = item.el.closest('.image_wrapper, li').find('img').first();
if (lightboxAttr.title && img.length) {
return img.attr('alt');
} else {
return false;
}
}
}
};
// image
$('a[rel^="lightbox"][data-type="image"]').magnificPopup({
autoFocusLast: attr.autoFocusLast,
removalDelay: attr.removalDelay,
type: 'image',
image: attr.image
});
// iframe | video
$('a[rel^="lightbox"][data-type="iframe"]').magnificPopup({
autoFocusLast: attr.autoFocusLast,
removalDelay: attr.removalDelay,
type: 'iframe',
iframe: {
patterns: {
youtube: {
index: 'youtube.com/',
id: 'v=',
src: '//www.youtube.com/embed/%id%?autoplay=1&rel=0'
},
youtu_be: {
index: 'youtu.be/',
id: '/',
src: '//www.youtube.com/embed/%id%?autoplay=1&rel=0'
},
nocookie: {
index: 'youtube-nocookie.com/embed/',
id: '/',
src: '//www.youtube-nocookie.com/embed/%id%?autoplay=1&rel=0'
}
}
}
});
// inline
$('a[rel^="lightbox"][data-type="inline"]').magnificPopup({
autoFocusLast: attr.autoFocusLast,
type: 'inline',
midClick: true,
callbacks: {
open: function() {
$('.mfp-content').children().addClass('mfp-inline');
},
beforeClose: function() {
$('.mfp-content').children().removeClass('mfp-inline');
}
}
});
// gallery
for (var i = 0, len = galleries.length; i < len; i++) {
var gallery = '[' + galleries[i] + ']';
gallery = 'a[rel^="lightbox' + gallery + '"]:visible';
$(gallery).magnificPopup({
autoFocusLast: attr.autoFocusLast,
removalDelay: attr.removalDelay,
type: 'image',
image: attr.image,
gallery: {
enabled: true,
tCounter: '%curr% / %total%' // markup of counter
}
});
}
// FIX: elementor | disable in Elementor wrapper
$('.elementor a[rel^="lightbox"]:not(.popup-link)').off('click');
// FIX: WPBakery | disable if WPBakery lighbox is active
setTimeout(function(){
var $doc = $('body');
var $events = $._data($doc[0],"events");
if($events && $events.click){
for(var i=$events.click.length-1; i>=0; i--){
var handler = $events.click[i];
if( handler && handler.selector && handler.selector.indexOf('lightbox') !== -1 ){
$('.wpb_column a[rel^="lightbox"]:not(.popup-link)').off('click');
}
}
}
},0);
};
// reload
var reload = function() {
$('a[rel^="lightbox"]').off('click');
constructor();
};
// init
init();
// isotope:arrange
$(document).on('isotope:arrange', reload);
// ajaxComplete
$(document).ajaxComplete(function() {
reload();
});
}
lightbox();
/**
* Menu | mfnMenu
*/
function mainMenu() {
var mmMobileInitW = mobileInitW;
if ($('body').hasClass('header-simple') || $('#Header_creative.dropdown').length) {
mmMobileInitW = 9999;
}
$('#menu > ul.menu').mfnMenu({
addLast: true,
arrows: true,
mobileInit: mmMobileInitW,
responsive: mfn.responsive
});
$('#secondary-menu > ul.secondary-menu').mfnMenu({
mobileInit: mmMobileInitW,
responsive: mfn.responsive
});
}
mainMenu();
/**
* Menu | NOT One Page | .scroll item
* Works with .scroll class
* Since 4.8 replaced with: Page Options > One Page | function: onePageMenu()
*/
function onePageScroll() {
if (!$('body').hasClass('one-page')) {
var menu = $('#menu');
if (menu.find('li.scroll').length > 1) {
menu.find('li.current-menu-item:not(:first)').removeClass('current-menu-item currenet-menu-parent current-menu-ancestor current-page-ancestor current_page_item current_page_parent current_page_ancestor');
// menu item click
menu.on('click','a',function() {
$(this).closest('li').siblings('li').removeClass('current-menu-item currenet-menu-parent current-menu-ancestor current-page-ancestor current_page_item current_page_parent current_page_ancestor');
$(this).closest('li').addClass('current-menu-item');
});
}
}
}
onePageScroll();
/**
* Menu | One Page | Active on Scroll & Click
*/
function onePageMenu() {
if ($('body').hasClass('one-page')) {
var menu = $('#menu');
// add attr [data-hash] & [data-id]
$('a[href]', menu).each(function() {
var url = $(this).attr('href');
if (url && url.split('#')[1]) {
// data-hash
var hash = '#' + url.split('#')[1];
if (hash && $(hash).length) {
// check if element with specified ID exists
$(this).attr('data-hash', hash);
$(hash).attr('data-id', hash);
}
// Visual Composer
var vcHash = '#' + url.split('#')[1];
var vcClass = '.vc_row.' + url.split('#')[1];
if (vcClass && $(vcClass).length) {
// check if element with specified Class exists
$(this).attr('data-hash', vcHash);
$(vcClass).attr('data-id', vcHash);
}
}
});
// active
var hash;
var activeSelector = '.menu > li.current-menu-item, .menu > li.current-menu-parent, .menu > li.current-menu-ancestor, .menu > li.current-page-ancestor, .menu > li.current_page_item, .menu > li.current_page_parent, .menu > li.current_page_ancestor';
var activeClasses = 'current-menu-item current-menu-parent current-menu-ancestor current-page-ancestor current_page_item current_page_parent current_page_ancestor';
if ($(activeSelector, menu).length) {
// remove duplicated
$(activeSelector, menu)
.not(':first').removeClass(activeClasses);
// remove if 1st link to section & section is not visible
hash = $(activeSelector, menu).find('a[data-hash]').attr('data-hash');
if (hash) {
hash = '[data-id="' + hash + '"]';
if ($(hash).length && $(hash).visible(true)) {
// do nothing
} else {
$(activeSelector, menu).removeClass('current-menu-item current-menu-parent current-menu-ancestor current-page-ancestor current_page_item current_page_parent current_page_ancestor')
.closest('.menu > li').removeClass('current-menu-item current-menu-parent current-menu-ancestor current-page-ancestor current_page_item current_page_parent current_page_ancestor');
}
} else {
// do nothing
}
} else {
// add to first if none is active
var first = $('.menu:first-child > li:first-child', menu);
var firstA = first.children('a');
if (firstA.attr('data-hash')) {
hash = firstA.attr('data-hash');
hash = '[data-id="' + hash + '"]';
if ($(hash).length && ($(hash).offset().top == adminBarH())) {
first.addClass('current-menu-item');
}
}
}
// click
$('#menu a[data-hash]').on('click', function(e) {
e.preventDefault(); // only with: body.one-page
// active
menu.find('li').removeClass('current-menu-item');
$(this)
.closest('li').addClass('current-menu-item')
.closest('.menu > li').addClass('current-menu-item');
var hash = $(this).attr('data-hash');
hash = '[data-id="' + hash + '"]';
// mobile - sticky header - close menu
if ( window.innerWidth < 768 ) {
$('.responsive-menu-toggle').removeClass('active');
$('#Top_bar #menu').hide();
}
// offset
var headerFixedAbH = $('.header-fixed.ab-show #Action_bar').innerHeight() || 0;
var tabsHeaderH = $(hash).siblings('.ui-tabs-nav').innerHeight() || 0;
var offset = headerFixedAbH + tabsHeaderH + adminBarH();
// sticky height
var stickyH = fixStickyHeaderH();
// FIX | Header below | 1st section
if ($('body').hasClass('header-below') && $('#Content').length) {
if ($(hash).offset().top < ($('#Content').offset().top + 60)) {
stickyH = -1;
}
}
// animate scroll
$('html, body').animate({
scrollTop: $(hash).offset().top - offset - stickyH
}, 500);
});
}
}
onePageMenu();
/**
* Header | Creative
*/
var cHeader = 'body:not( .header-open ) #Header_creative',
cHeaderEl = $(cHeader),
cHeaderCurrnet;
function creativeHeader() {
$('.creative-menu-toggle').on('click', function(e) {
e.preventDefault();
cHeaderEl.addClass('active');
$('.creative-menu-toggle, .creative-social', cHeaderEl).fadeOut(500);
$('#Action_bar', cHeaderEl).fadeIn(500);
});
}
creativeHeader();
$(document).on('mouseenter', cHeader, function() {
cHeaderCurrnet = 1;
});
$(document).on('mouseleave', cHeader, function() {
cHeaderCurrnet = null;
setTimeout(function() {
if (!cHeaderCurrnet) {
cHeaderEl.removeClass('active');
$('.creative-menu-toggle, .creative-social', cHeaderEl).fadeIn(500);
$('#Action_bar', cHeaderEl).fadeOut(500);
}
}, 1000);
});
// Fix: Header Creative & Mobile Sticky | On Resize > 768 px
function creativeHeaderFix() {
if ( $('body').hasClass('header-creative') && window.innerWidth >= 768 ) {
if ($('#Top_bar').hasClass('is-sticky')) {
$('#Top_bar').removeClass('is-sticky');
}
}
}
/**
* Header | Search
*/
$("#search_button:not(.has-input), #Top_bar .icon_close").on('click', function(e) {
e.preventDefault();
/*$('#Top_bar .search_wrapper').fadeToggle().addClass('mfn-loaded')
.find('.field').focus();*/
const search = $('#Top_bar .search_wrapper')
if( search.css('display') === 'none' ){
search.fadeIn().find('.field').focus();
setTimeout(function(){ search.addClass('mfn-loaded') }, 300);
} else{
search.fadeOut().removeClass('mfn-loaded');
}
});
/**
* WPML | Language switcher in the WP Menu
*/
function mfnWPML() {
$('#menu .menu-item-language:not(.menu-item-language-current)').each(function() {
var el = $(this).children('a');
if (!el.children('span:not(.icl_lang_sel_bracket)').length) {
el.wrapInner('');
}
});
$('#menu span.icl_lang_sel_bracket').each(function() {
var el = $(this);
el.replaceWith(el.html());
});
}
mfnWPML();
/**
* Breadcrumbs | Remove last item link
*/
function breadcrumbsRemoveLastLink() {
var el = $('.breadcrumbs.no-link').find('li').last();
var text = el.text();
el.html(text);
}
breadcrumbsRemoveLastLink();
/**
* Downcount
*/
$('.downcount').each(function() {
var el = $(this);
el.downCount({
date: el.attr('data-date'),
offset: el.attr('data-offset')
});
});
/**
* Hover | on Touch | .tooltip, .hover_box
*/
$('.tooltip, .hover_box')
.on('touchstart', function() {
$(this).toggleClass('hover');
})
.on('touchend', function() {
$(this).removeClass('hover');
});
/**
* Popup | Contact Form | Button
*/
$("#popup_contact .footer_button").on('click', function(e) {
e.preventDefault();
$(this).parent().toggleClass('focus');
});
/**
* Scroll | niceScroll for Header Creative
*/
if ( ('#Header_creative.scroll').length && window.innerWidth >= 1240 ) {
$('#Header_creative.scroll').niceScroll({
autohidemode: false,
cursorborder: 0,
cursorborderradius: 5,
cursorcolor: '#222222',
cursorwidth: 0,
horizrailenabled: false,
mousescrollstep: 40,
scrollspeed: 60
});
}
/**
* Sliding Top
*/
$('.sliding-top-control').on('click', function(e) {
e.preventDefault();
$('#Sliding-top .widgets_wrapper').slideToggle();
$('#Sliding-top').toggleClass('active');
});
/**
* Alert
*/
$('body').on('click', '.alert .close', function(e) {
e.preventDefault();
$(this).closest('.alert').hide(300);
});
/**
* Navigation Arrows | Sticky
*/
$('.fixed-nav').appendTo('body');
/**
* Feature List
*/
$('.feature_list').each(function() {
var col = $(this).attr('data-col') ? $(this).attr('data-col') : 4;
$(this).find('li:nth-child(' + col + 'n):not(:last-child)').after('
');
});
/**
* IE Fixes
*/
function checkIE() {
// IE 9
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
if (msie > 0 && parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))) == 9) {
$("body").addClass("ie");
}
}
checkIE();
/**
* Parallax
*/
var ua = navigator.userAgent,
isMobileWebkit = /WebKit/.test(ua) && /Mobile/.test(ua);
if ( ! isMobileWebkit && window.innerWidth >= 768 ) {
if (mfn.parallax == 'stellar') {
// Stellar
$.stellar({
horizontalScrolling: false,
responsive: true
});
} else {
// Enllax
$(window).enllax();
}
} else {
$('div[data-enllax-ratio], div[data-stellar-ratio]').css('background-attachment', 'scroll');
}
/**
* Load More | Ajax
*/
$('.pager_load_more').on('click', function(e) {
e.preventDefault();
var el = $(this);
var pager = el.closest('.pager_lm');
var href = el.attr('href');
// index | for many items on the page
var index = $('.lm_wrapper').index(el.closest('.isotope_wrapper').find('.lm_wrapper'));
el.fadeOut(50);
pager.addClass('loading');
$.get( href, function( data ) {
// content
var content = $('.lm_wrapper:eq(' + index + ')', data).wrapInner('').html();
var $content = $(content);
if ($('.lm_wrapper:eq(' + index + ')').hasClass('isotope')) {
// isotope
$('.lm_wrapper:eq(' + index + ')').append( $content ).isotope('appended', $content);
} else {
// default
$content.hide().appendTo('.lm_wrapper:eq(' + index + ')').fadeIn(1000);
}
// next page link
href = $('.lm_wrapper:eq(' + index + ')', data).next().find('.pager_load_more').attr('href');
pager.removeClass('loading');
if (href) {
el.fadeIn();
el.attr('href', href);
}
// refresh some staff
mfnJPlayer();
lightbox();
// isotope fix: second resize
$('.lm_wrapper.isotope').imagesLoaded().progress(function() {
$('.lm_wrapper.isotope').isotope();
});
});
});
/**
* Filters | Blog & Portfolio
*/
$('.filters_buttons .open').on('click', function(e) {
e.preventDefault();
var type = $(this).closest('li').attr('class');
$('.filters_wrapper').show(200);
$('.filters_wrapper ul.' + type).show(200);
$('.filters_wrapper ul:not(.' + type + ')').hide();
});
$('.filters_wrapper .close a').on('click', function(e) {
e.preventDefault();
$('.filters_wrapper').hide(200);
});
/**
* Portfolio List | Next v / Prev ^ buttons
*/
$('.portfolio_next_js').on('click', function(e) {
e.preventDefault();
var item = $(this).closest('.portfolio-item').next();
if (item.length) {
$('html, body').animate({
scrollTop: item.offset().top - fixStickyHeaderH()
}, 500);
}
});
$('.portfolio_prev_js').on('click', function(e) {
e.preventDefault();
var item = $(this).closest('.portfolio-item').prev();
if (item.length) {
$('html, body').animate({
scrollTop: item.offset().top - fixStickyHeaderH()
}, 500);
}
});
/**
* Link | Smooth Scroll | .scroll
*/
$('.scroll > a, a.scroll').on('click', function(e) {
// prevent default if link directs to the current page
var urlL = location.href.replace(/\/#.*|#.*/, '');
var urlT = this.href.replace(/\/#.*|#.*/, '');
if (urlL == urlT) {
e.preventDefault();
}
var hash = this.hash;
// offset
var headerFixedAbH = $('.header-fixed.ab-show #Action_bar').innerHeight() || 0;
var tabsHeaderH = $(hash).siblings('.ui-tabs-nav').innerHeight() || 0;
var offset = headerFixedAbH + tabsHeaderH + adminBarH();
// table of contents
if( $(this).parents('.table_of_content').length ){
offset += 30;
}
// animate scroll
if (hash && $(hash).length) {
// do scroll
$('html, body').animate({
scrollTop: $(hash).offset().top - offset - fixStickyHeaderH()
}, 500);
}
});
/**
* Tabs
*/
$('.jq-tabs').tabs();
/**
* Fake tabs
*/
$('.fake-tabs > ul').on('click', 'a', function(e) {
e.preventDefault();
var $li = $(this).closest('li');
var tab = $li.data('tab');
if( $li.hasClass('active') ){
return;
}
$li.addClass('active')
.siblings().removeClass('active');
$('.tab-'+ tab ).addClass('active').attr('tabindex', 0)
.siblings('.tab').removeClass('active').attr('tabindex', -1);
$(window).trigger('resize');
});
/**
* Accordion & FAQ
*/
$('.mfn-acc').each(function() {
var el = $(this);
if (el.hasClass('openAll')) {
// show all
el.find('.question')
.addClass("active")
.children(".answer")
.show();
} else {
// show one
var activeTab = el.attr('data-active-tab');
if (el.hasClass('open1st')) activeTab = 1;
if (activeTab) {
el.find('.question').eq(activeTab - 1)
.addClass("active")
.children(".answer")
.show();
}
}
});
$('.mfn-acc .question > .title').on('click', function() {
if ($(this).parent().hasClass("active")) {
$(this).parent().removeClass("active").children(".answer").slideToggle(100);
} else {
if (!$(this).closest('.mfn-acc').hasClass('toggle')) {
$(this).parents(".mfn-acc").children().each(function() {
if ($(this).hasClass("active")) {
$(this).removeClass("active").children(".answer").slideToggle(100);
}
});
}
$(this).parent().addClass("active");
$(this).next(".answer").slideToggle(100);
}
setTimeout(function() {
$(window).trigger('resize');
}, 50);
});
// Visual Composer | Accordion | Sidebar height
$('.wpb_wrapper .vc_tta-panel-title').on('click', 'a', function() {
setTimeout(function() {
$(window).trigger('resize');
}, 50);
});
/**
* Helper
*/
$('.helper .link.toggle').on('click', function(e) {
e.preventDefault();
var el = $(this);
var id = el.attr('data-rel');
var parent = el.closest('.helper');
if (el.hasClass('active')) {
el.removeClass('active');
parent.find('.helper_content > .item-' + id).removeClass('active').slideUp(200);
} else {
parent.find('.links > .link.active').removeClass('active');
parent.find('.helper_content > .item.active').slideUp(200);
el.addClass('active');
parent.find('.helper_content > .item-' + id).addClass('active').slideDown(200);
}
setTimeout(function() {
$(window).trigger('resize');
}, 50);
});
/**
* HTML5 Video | jPlayer
*/
function mfnJPlayer() {
$('.mfn-jplayer').each(function() {
var m4v = $(this).attr('data-m4v'),
poster = $(this).attr('data-img'),
swfPath = $(this).attr('data-swf'),
cssSelectorAncestor = '#' + $(this).closest('.mfn-jcontainer').attr('id');
$(this).jPlayer({
ready: function() {
$(this).jPlayer('setMedia', {
m4v: m4v,
poster: poster
});
},
play: function() {
// To avoid both jPlayers playing together.
$(this).jPlayer('pauseOthers');
},
size: {
cssClass: 'jp-video-360p',
width: '100%',
height: '360px'
},
swfPath: swfPath,
supplied: 'm4v',
cssSelectorAncestor: cssSelectorAncestor,
wmode: 'opaque'
});
});
}
mfnJPlayer();
/**
* Love
*/
$('body').on('click', '.mfn-love', function() {
var el = $(this);
if (el.hasClass('loved')) {
return false;
}
el.addClass('loved');
var post = {
action: 'mfn_love',
post_id: el.attr('data-id')
};
$.post(mfn.ajax, post, function(data) {
el.find('.label').html(data);
});
return false;
});
/**
* Go to top
*/
$('#back_to_top').on('click', function() {
$('body,html').animate({
scrollTop: 0
}, 500);
return false;
});
/**
* Section | Next v / Prev ^ arrows
*/
$('.section .section-nav').on('click', function() {
var el = $(this);
var section = el.closest('.section');
if (el.hasClass('prev')) {
// Previous Section
if (section.prev().length) {
$('html, body').animate({
scrollTop: section.prev().offset().top
}, 500);
}
} else {
// Next Section
if (section.next().length) {
$('html, body').animate({
scrollTop: section.next().offset().top
}, 500);
}
}
});
/**
* Intro | Scroll v arrow
*/
$('#Intro .intro-next').on('click', function() {
var intro = $(this).closest('#Intro');
if (intro.next().length) {
$('html, body').animate({
scrollTop: intro.next().offset().top - fixStickyHeaderH() - adminBarH()
}, 500);
}
});
/**
* Widget | Muffin Menu | Hover on click
*/
$('.widget_mfn_menu ul.submenus-click').each(function() {
var el = $(this);
$('a', el).on('click', function(e) {
var li = $(this).closest('li');
if (li.hasClass('hover') || !li.hasClass('menu-item-has-children')) {
// link click
} else {
e.preventDefault();
li.siblings('li').removeClass('hover')
.find('li').removeClass('hover');
$(this).closest('li').addClass('hover');
}
});
});
/**
* WooCommerce | Add to cart
*/
function addToCart() {
$('body').on('click', '.add_to_cart_button', function() {
$(this)
.closest('.product')
.addClass('adding-to-cart')
.removeClass('added-to-cart');
});
$('body').on('added_to_cart', function() {
$('.adding-to-cart')
.removeClass('adding-to-cart')
.addClass('added-to-cart');
});
}
addToCart();
/**
* WooCommerce | Rating click
*/
$('.woocommerce-product-rating').on('click', function(){
var el;
if( $('.product_tabs_wrapper.fake-tabs').length ){
el = $('.product_tabs_wrapper.fake-tabs');
$('li[data-tab="reviews"] a', el).trigger('click');
} else if( $('.woocommerce-content .jq-tabs').length ){
el = $('.woocommerce-content .jq-tabs');
$('.ui-tabs-nav a[href="#tab-reviews"]', el).trigger('click');
} else {
el = $('.woocommerce-content .accordion');
$('#reviews').closest('.question:not(.active)').children('.title').trigger('click');
}
// offset
var actionBarH = $('.header-fixed.ab-show #Action_bar').innerHeight() || 0;
var offset = actionBarH + adminBarH();
// animate scroll
$('html, body').animate({
scrollTop: el.offset().top - offset - fixStickyHeaderH()
}, 500);
});
/**
* WooCommerce | Quantity change
*/
$('body').on('click', '.quantity-change', function(e){
e.preventDefault();
var $el = $(this),
$input = $(this).siblings('input');
var step = parseInt($input.attr('step')) || 1,
minAttr = $input.attr('min'),
min = typeof minAttr !== typeof undefined && minAttr !== false ? parseInt(minAttr) : 1,
max = parseInt($input.attr('max')) || 9999,
current = $input.val() ? parseInt($input.val()) : min,
val = 0;
if( $el.hasClass('plus') ){
val = current + step;
if( val > max ){
val = current;
}
} else {
val = current - step;
if( val < min ){
val = current;
}
}
$input.val(val).trigger('change');
});
/**
* Ajax | Complete
*/
$(document).ajaxComplete(function() {
setTimeout(function() {
$(window).trigger('resize');
mfnSidebar();
}, 100);
});
/**
* Isotope
*/
// Isotope | Fiters
function isotopeFilter(domEl, isoWrapper) {
var filter = domEl.attr('data-rel');
isoWrapper.isotope({
filter: filter
});
setTimeout(function() {
$(window).trigger('resize');
}, 50);
}
// Isotope | Fiters | Click ----------
$('.isotope-filters .filters_wrapper').find('li:not(.close) a').on('click', function(e) {
e.preventDefault();
var isoWrapper = $('.isotope'),
filters = $(this).closest('.isotope-filters'),
parent = filters.attr('data-parent');
if (parent) {
parent = filters.closest('.' + parent);
isoWrapper = parent.find('.isotope').first();
}
filters.find('li').removeClass('current-cat');
$(this).closest('li').addClass('current-cat');
isotopeFilter($(this), isoWrapper);
setTimeout(function() {
$(document).trigger('isotope:arrange');
}, 500);
});
// Isotope | Fiters | Reset
$('.isotope-filters .filters_buttons').find('li.reset a').on('click', function(e) {
e.preventDefault();
$('.isotope-filters .filters_wrapper').find('li').removeClass('current-cat');
isotopeFilter($(this), $('.isotope'));
});
/**
* $(window).on('debouncedresize')
* Specify a function to execute on window resize
*/
$(window).on('debouncedresize', function() {
if( $('.mfn-header-tmpl.mfn-header-body-offset-active').length ){
headerTemplate.bodyOffset();
}
if( $('.mfn-header-tmpl').hasClass('mfn-header-tmpl-fixed') ){
headerTemplate.start();
}
// isotope
$('.masonry.isotope, .masonry.gallery').isotope();
// sliding footer height
mfnFooter();
// header width
headerWidth();
// sidebar height
mfnSidebar();
// intro header
mfnIntroH();
// mobile sticky for header creative
creativeHeaderFix();
// sticky wrap
stickyWrap.init();
});
/**
* document.ready
* Initialize document ready functions
*/
mfnSliderBlog();
mfnSliderClients();
mfnSliderOffer();
mfnSliderOfferThumb();
mfnSliderShop();
sliderPortfolio();
sliderTestimonials();
// sliding footer height
mfnFooter();
// header width
headerWidth();
// sidebar height
mfnSidebar();
// intro header
mfnIntroH();
// hash navigation
hashNav();
// GDPR container display
gdpr();
// infinite scroll
infiniteScrollBlog();
infiniteScrollPortfolio();
// table of contents
tableContentAttachId();
});
/**
* $(window).on('scroll')
* The scroll event is sent to an element when the user scrolls to a different place in the element.
*/
$(window).on('scroll', function() {
// sticky header
mfnSticky();
mfnMobileSticky();
// sticky back to top
backToTopSticky();
// one page scroll active
onePageActive();
// sticky wrap
stickyWrap.scroll();
});
/**
* $(window).on('load')
* window.load
*/
$(window).on('load', function() {
// align divs heights
alignHeights();
/**
* Elementor plugin
* Disable built-in one page
*/
function elementorDisableOnePage(){
if( ! $('body').hasClass('one-page') ){
return false;
}
setTimeout(function(){
var doc=$(document),
$events=$("a[href*='#']").length ? $._data(doc[0],"events") : null;
if($events && $events.click){
for(var i=$events.click.length-1; i>=0; i--){
var handler=$events.click[i];
if(handler && handler.namespace != "mPS2id" && handler.selector === 'a[href*="#"]' ) doc.off("click",handler.handler);
}
}
}, 300);
}
elementorDisableOnePage();
/**
* Live search item
* z-index for live search item parents
*/
function liveSearchItemZindex(){
$('.column_livesearch').each(function(){
$(this).closest('.mcb-wrap').addClass('has-live-search-element')
.closest('.mcb-section').addClass('has-live-search-element');
});
}
liveSearchItemZindex();
/**
* Retina Logo
*/
function retinaLogo() {
// ! retina display
if( window.devicePixelRatio <= 1 ){
return false;
}
var el, src, height,
parent = $('#Top_bar #logo'),
parentH = parent.data('height');
var maxH = {
sticky: {
init: 35,
noPadding: 60,
overflow: 110
},
mobile: {
mini: 50,
miniNoPadding: 60
},
mobileSticky: {
init: 50,
noPadding: 60,
overflow: 80
}
};
$('#Top_bar #logo img').each(function(index) {
el = $(this);
src = el.data('retina');
height = el.height() || 0;
// main
if (el.hasClass('logo-main')) {
if ($('body').hasClass('logo-overflow')) {
// do nothing
} else if (height > parentH) {
height = parentH;
}
}
// sticky
if (el.hasClass('logo-sticky')) {
if ($('body').hasClass('logo-overflow')) {
if (height > maxH.sticky.overflow) {
height = maxH.sticky.overflow;
}
} else if ($('body').hasClass('logo-no-sticky-padding')) {
if (height > maxH.sticky.noPadding) {
height = maxH.sticky.noPadding;
}
} else if (height > maxH.sticky.init) {
height = maxH.sticky.init;
}
}
// mobile
if (el.hasClass('logo-mobile')) {
if ($('body').hasClass('mobile-header-mini')) {
if (parent.data('padding') > 0) {
if (height > maxH.mobile.mini) {
height = maxH.mobile.mini;
}
} else {
if (height > maxH.mobile.miniNoPadding) {
height = maxH.mobile.miniNoPadding;
}
}
}
}
// mobile-sticky
if (el.hasClass('logo-mobile-sticky')) {
if ($('body').hasClass('logo-no-sticky-padding')) {
if (height > maxH.mobileSticky.noPadding) {
height = maxH.mobileSticky.noPadding;
}
} else if (height > maxH.mobileSticky.init) {
height = maxH.mobileSticky.init;
}
}
// SET
if (src) {
el.parent().addClass('retina');
el.attr('src', src).css('max-height', height + 'px');
}
});
}
setTimeout(function() {
retinaLogo();
}, 0); // jQuery 3.5 window.load
/**
* Isotope
*/
// Portfolio - Isotope
$('.blog_wrapper .isotope:not( .masonry ), .portfolio_wrapper .isotope:not( .masonry-flat, .masonry-hover, .masonry-minimal )').isotope({
itemSelector: '.isotope-item',
layoutMode: 'fitRows',
isOriginLeft: rtl ? false : true
});
// Portfolio - Masonry Flat
$('.portfolio_wrapper .masonry-flat').isotope({
itemSelector: '.isotope-item',
percentPosition: true,
masonry: {
columnWidth: 1
},
isOriginLeft: rtl ? false : true
});
// Blog & Portfolio - Masonry
$('.isotope.masonry, .isotope.masonry-hover, .isotope.masonry-minimal').isotope({
itemSelector: '.isotope-item',
layoutMode: 'masonry',
isOriginLeft: rtl ? false : true
});
// Portfolio | Active Category
function portfolioActive() {
var el = $('.isotope-filters .filters_wrapper');
var active = el.attr('data-cat');
if (active) {
el.find('li.' + active).addClass('current-cat');
$('.isotope').isotope({
filter: '.category-' + active
});
}
}
portfolioActive();
/**
* Chart
*/
// visual builder
$('.sections_group .chart, .elementor-section .chart').waypoint({
offset: '100%',
triggerOnce: true,
handler: function(){
var el = $(this.element).length ? $(this.element) : $(this);
var lineW = simple ? 4 : 8;
el.easyPieChart({
animate: 1000,
lineCap: 'circle',
lineWidth: lineW,
size: 140,
scaleColor: false
});
if (typeof this.destroy !== 'undefined' && $.isFunction(this.destroy)) {
this.destroy();
}
}
});
/**
* Skills
*/
$('.bars_list').waypoint({
offset: '100%',
triggerOnce: true,
handler: function() {
var el = $(this.element).length ? $(this.element) : $(this);
el.addClass('hover');
if (typeof this.destroy !== 'undefined' && $.isFunction(this.destroy)) {
this.destroy();
}
}
});
/**
* Progress Icons
*/
$('.progress_icons').waypoint({
offset: '100%',
triggerOnce: true,
handler: function() {
var el = $(this.element).length ? $(this.element) : $(this);
var active = el.attr('data-active');
var color = el.attr('data-color');
var icon = el.find('.progress_icon');
var timeout = 200; // timeout in milliseconds
icon.each(function(i) {
if (i < active) {
var time = (i + 1) * timeout;
setTimeout(function() {
$(icon[i])
.addClass('themebg')
.css('background-color', color);
}, time);
}
});
if (typeof this.destroy !== 'undefined' && $.isFunction(this.destroy)) {
this.destroy();
}
}
});
/**
* Animate Math | Counter, Quick Fact, etc.
*/
$('.animate-math .number').waypoint({
offset: '100%',
triggerOnce: true,
handler: function() {
var el = $(this.element).length ? $(this.element) : $(this);
var duration = Math.floor((Math.random() * 1000) + 1000);
var to = el.attr('data-to');
$({
property: 0
}).animate({
property: to
}, {
duration: duration,
easing: 'linear',
step: function() {
el.text(Math.floor(this.property));
},
complete: function() {
el.text(this.property);
}
});
if (typeof this.destroy !== 'undefined' && $.isFunction(this.destroy)) {
this.destroy();
}
}
});
/**
* Before After | TwentyTwenty
*/
$('.before_after.twentytwenty-container').twentytwenty();
// Visual Composer prettyPhoto | off
if ( lightboxAttr ) {
$('a[data-rel^="prettyPhoto"]:not(.popup-link), a[rel^="lightbox"]:not(.popup-link)').each(function() {
$(this).off('click.prettyphoto');
});
}
/**
* Reload some functions on window.load
*/
// sticky header
mfnStickyH();
mfnSticky();
mfnMobileSticky();
// intro header
mfnIntroH();
// FIX | jQuery 3.5 window.load
setTimeout(function() {
// triger resize to recalculate some plugins stuff
$(window).trigger('resize');
// sidebar height
mfnSidebar();
// sliders
sliderSlider();
// hash navigation
hashNav();
// sticky wrap
stickyWrap.init();
// isotope
$('.isotope').isotope();
}, 0);
});
/**
* $(document).on('mouseup')
* Specify a function to execute when the DOM is fully loaded.
* Close some modals when click outside
*/
$(document).on('mouseup',function(e) {
// Widget | Muffin menu | Hover on click
if ($('.widget_mfn_menu ul.submenus-click').length && ($('.widget_mfn_menu ul.submenus-click').has(e.target).length === 0) ) {
$('.widget_mfn_menu ul.submenus-click li').removeClass('hover');
}
// Mobile menu | Classic
if ($('.menu_wrapper').length && ( $('.menu_wrapper').has(e.target).length === 0 )) {
if( $('.responsive-menu-toggle').hasClass('active') ){
$('.responsive-menu-toggle').trigger('click');
}
}
// Popup contact form
if ($('#popup_contact').length && ( $('#popup_contact').has(e.target).length === 0 )) {
if( $('#popup_contact').hasClass('focus') ){
$('#popup_contact .footer_button').trigger('click');
}
}
// Off canvas sidebar
if($('html').hasClass('mfn-ofcs-opened') && !$('.mfn-off-canvas-sidebar').is(e.target) && $('.mfn-off-canvas-sidebar').has(e.target).length === 0){
$('html').removeClass('mfn-ofcs-opened');
}
});
/**
* Sliders configuration
*/
// Slick Slider | Auto responsive
function slickAutoResponsive(slider, max, size) {
if (!max){
max = 5;
}
if (!size){
size = 380;
}
var width = slider.width() || 0,
count = Math.ceil(width / size);
if (count < 1) count = 1;
if (count > max) count = max;
return count;
}
// Slider | Offer Thumb
function mfnSliderOfferThumb() {
var pager = function(el, i) {
var img = $(el.$slides[i]).find('.thumbnail:first').html();
return '' + img + '';
};
$('.offer_thumb_ul').each(function() {
var slider = $(this);
slider.slick({
cssEase: 'ease-out',
arrows: false,
dots: true,
infinite: true,
touchThreshold: 10,
speed: 300,
adaptiveHeight: true,
appendDots: slider.siblings('.slider_pagination'),
customPaging: pager,
rtl: rtl ? true : false,
autoplay: mfn.slider.offer ? true : false,
autoplaySpeed: mfn.slider.offer ? mfn.slider.offer : 5000,
slidesToShow: 1,
slidesToScroll: 1
});
});
}
// Slider | Offer
function mfnSliderOffer() {
$('.offer_ul').each(function() {
var slider = $(this);
slider.slick({
cssEase: 'ease-out',
dots: false,
infinite: true,
touchThreshold: 10,
speed: 300,
prevArrow: '',
nextArrow: '',
adaptiveHeight: true,
//customPaging : pager,
rtl: rtl ? true : false,
autoplay: mfn.slider.offer ? true : false,
autoplaySpeed: mfn.slider.offer ? mfn.slider.offer : 5000,
slidesToShow: 1,
slidesToScroll: 1
});
// Pagination | Show (css)
slider.siblings('.slider_pagination').addClass('show');
// Pager | Set slide number after change
slider.on('afterChange', function(event, slick, currentSlide, nextSlide) {
slider.siblings('.slider_pagination').find('.current').text(currentSlide + 1);
});
});
}
// Slider | Shop
function mfnSliderShop() {
var pager = function(el, i) {
return '' + i + '';
};
$('.shop_slider_ul').each(function() {
var slider = $(this);
var slidesToShow = 4;
var count = slider.closest('.shop_slider').data('count');
if (slidesToShow > count) {
slidesToShow = count;
if (slidesToShow < 1) {
slidesToShow = 1;
}
}
slider.slick({
cssEase: 'ease-out',
dots: true,
infinite: true,
touchThreshold: 10,
speed: 300,
prevArrow: '',
nextArrow: '',
appendArrows: slider.siblings('.blog_slider_header').children('.slider_navigation'),
appendDots: slider.siblings('.slider_pager'),
customPaging: pager,
rtl: rtl ? true : false,
autoplay: mfn.slider.shop ? true : false,
autoplaySpeed: mfn.slider.shop ? mfn.slider.shop : 5000,
slidesToShow: slickAutoResponsive(slider, slidesToShow),
slidesToScroll: slickAutoResponsive(slider, slidesToShow)
});
// ON | debouncedresize
$(window).on('debouncedresize', function() {
slider.slick('slickSetOption', 'slidesToShow', slickAutoResponsive(slider, slidesToShow), false);
slider.slick('slickSetOption', 'slidesToScroll', slickAutoResponsive(slider, slidesToShow), true);
});
});
}
// Slider | Blog
function mfnSliderBlog() {
var pager = function(el, i) {
return '' + i + '';
};
$('.blog_slider_ul').each(function() {
var slider = $(this);
var slidesToShow = 4;
var count = slider.closest('.blog_slider').data('count');
if (slidesToShow > count) {
slidesToShow = count;
if (slidesToShow < 1) {
slidesToShow = 1;
}
}
slider.slick({
cssEase: 'ease-out',
dots: true,
infinite: true,
touchThreshold: 10,
speed: 300,
prevArrow: '',
nextArrow: '',
appendArrows: slider.siblings('.blog_slider_header').children('.slider_navigation'),
appendDots: slider.siblings('.slider_pager'),
customPaging: pager,
rtl: rtl ? true : false,
autoplay: mfn.slider.blog ? true : false,
autoplaySpeed: mfn.slider.blog ? mfn.slider.blog : 5000,
slidesToShow: slickAutoResponsive(slider, slidesToShow),
slidesToScroll: slickAutoResponsive(slider, slidesToShow)
});
// On | debouncedresize
$(window).on('debouncedresize', function() {
slider.slick('slickSetOption', 'slidesToShow', slickAutoResponsive(slider, slidesToShow), false);
slider.slick('slickSetOption', 'slidesToScroll', slickAutoResponsive(slider, slidesToShow), true);
});
});
}
// Slider | Clients
function mfnSliderClients() {
$('.clients_slider_ul').each(function() {
var slider = $(this);
slider.slick({
cssEase: 'ease-out',
dots: false,
infinite: true,
touchThreshold: 10,
speed: 300,
prevArrow: '',
nextArrow: '',
appendArrows: slider.siblings('.blog_slider_header').children('.slider_navigation'),
rtl: rtl ? true : false,
autoplay: mfn.slider.clients ? true : false,
autoplaySpeed: mfn.slider.clients ? mfn.slider.clients : 5000,
slidesToShow: slickAutoResponsive(slider, 4),
slidesToScroll: slickAutoResponsive(slider, 4)
});
// ON | debouncedresize
$(window).on('debouncedresize', function() {
slider.slick('slickSetOption', 'slidesToShow', slickAutoResponsive(slider, 4), false);
slider.slick('slickSetOption', 'slidesToScroll', slickAutoResponsive(slider, 4), true);
});
});
}
// Slider | Portfolio
function sliderPortfolio() {
$('.portfolio_slider_ul').each(function() {
var slider = $(this);
var size = 380;
var scroll = 5;
if (slider.closest('.portfolio_slider').data('size')) {
size = slider.closest('.portfolio_slider').data('size');
}
if (slider.closest('.portfolio_slider').data('size')) {
scroll = slider.closest('.portfolio_slider').data('scroll');
}
slider.slick({
cssEase: 'ease-out',
dots: false,
infinite: true,
touchThreshold: 10,
speed: 300,
prevArrow: '',
nextArrow: '',
rtl: rtl ? true : false,
autoplay: mfn.slider.portfolio ? true : false,
autoplaySpeed: mfn.slider.portfolio ? mfn.slider.portfolio : 5000,
slidesToShow: slickAutoResponsive(slider, 5, size),
slidesToScroll: slickAutoResponsive(slider, scroll, size)
});
// ON | debouncedresize
$(window).on('debouncedresize', function() {
slider.slick('slickSetOption', 'slidesToShow', slickAutoResponsive(slider, 5, size), false);
slider.slick('slickSetOption', 'slidesToScroll', slickAutoResponsive(slider, scroll, size), true);
});
});
}
// header promo bar | Slider
function promoBarSlider() {
$('.promo_bar_slider').slick({
slidesToShow: 1,
slidesToScroll: 1,
autoplay: true,
speed: 300,
autoplaySpeed: 4000,
vertical: true,
dots: false,
arrows: false,
infinite: true,
});
}
// Slider | Slider
function sliderSlider() {
var pager = function(el, i) {
return '' + i + '';
};
$('.content_slider_ul').each(function() {
var slider = $(this);
var count = 1;
var centerMode = false;
if (slider.closest('.content_slider').hasClass('carousel')) {
count = slickAutoResponsive(slider);
$(window).on('debouncedresize', function() {
slider.slick('slickSetOption', 'slidesToShow', slickAutoResponsive(slider), false);
slider.slick('slickSetOption', 'slidesToScroll', slickAutoResponsive(slider), true);
});
}
if (slider.closest('.content_slider').hasClass('center')) {
centerMode = true;
}
slider.slick({
cssEase: 'cubic-bezier(.4,0,.2,1)',
dots: true,
infinite: true,
touchThreshold: 10,
speed: 300,
centerMode: centerMode,
centerPadding: '20%',
prevArrow: '',
nextArrow: '',
adaptiveHeight: true,
appendDots: slider.siblings('.slider_pager'),
customPaging: pager,
rtl: rtl ? true : false,
autoplay: mfn.slider.slider ? true : false,
autoplaySpeed: mfn.slider.slider ? mfn.slider.slider : 5000,
slidesToShow: count,
slidesToScroll: count
});
// Lightbox | disable on dragstart
var clickEvent = false;
slider.on('dragstart', '.slick-slide a[rel="lightbox"]', function(event) {
if (lightboxAttr) {
var events = $._data(this,'events');
if( events && Object.prototype.hasOwnProperty.call(events, 'click') ){
clickEvent = events.click[0];
$(this).addClass('off-click').off('click');
}
}
});
// Lightbox | enable after change
slider.on('afterChange', function(event, slick, currentSlide, nextSlide) {
if (lightboxAttr) {
$('a.off-click[rel="lightbox"]', slider).removeClass('off-click').on('click', clickEvent);
}
});
});
}
// Slider | Testimonials
function sliderTestimonials() {
var pager = function(el, i) {
var img = $(el.$slides[i]).find('.single-photo-img').html();
return '' + img + '';
};
$('.testimonials_slider_ul').each(function() {
var slider = $(this);
slider.slick({
cssEase: 'ease-out',
dots: true,
infinite: true,
touchThreshold: 10,
speed: 300,
prevArrow: '',
nextArrow: '',
adaptiveHeight: true,
appendDots: slider.siblings('.slider_pager'),
customPaging: pager,
rtl: rtl ? true : false,
autoplay: mfn.slider.testimonials ? true : false,
autoplaySpeed: mfn.slider.testimonials ? mfn.slider.testimonials : 5000,
slidesToShow: 1,
slidesToScroll: 1
});
});
}
/**
* GDPR
*/
// GDPR | Close notice on click | BIND
$('.mfn-gdpr-button').on('click', function(){
var closeAnimation = $('.mfn-gdpr-button').attr('data-animation');
var barAligment = $('#mfn-gdpr').attr('data-aligment');
switch(true){
case 'none' === closeAnimation:
$('#mfn-gdpr').css('display', 'none');
break;
case 'fade' === closeAnimation:
$('#mfn-gdpr').fadeOut(300);
break;
case 'slide' === closeAnimation && 'top' === barAligment:
$('#mfn-gdpr').slideUp(300);
break;
default:
$('#mfn-gdpr').slideToggle(300);
break;
}
// wait for animation end, then remove clasa and set cookies
setTimeout(function(){
$('#mfn-gdpr').removeClass('show');
gdpr_set_cookie();
}, 300);
});
// GDPR | Set the cookie
function gdpr_set_cookie(){
if(navigator.cookieEnabled) {
var cookieDays = $('.mfn-gdpr-button').attr('data-cookiedays') || 365;
var cookieDate = new Date();
var cookieText = '';
cookieDate.setTime(cookieDate.getTime() + (cookieDays * 24 * 60 * 60 * 1000));
cookieText += "mfn-gdpr=1";
cookieText += "; expires=" + cookieDate.toUTCString() + ';';
cookieText += "; path=" + mfn.home_url + '/';
document.cookie = cookieText;
}
}
// GDPR | Display, if cookie not accepted
function gdpr(){
if (document.cookie !== "") {
var cookies = document.cookie.split(/; */);
for (var cookie of cookies) {
var [ cookieName ] = cookie.split("=");
if (cookieName === 'mfn-gdpr') {
return; // cookie exists
}
}
}
$('#mfn-gdpr').addClass('show'); //cookie does NOT exist
}
/*
* Infinite scroll functionality
*/
function infiniteScrollFunction(infiniteLoadContainer, infiniteLoadButton, scrollDirection){
// for proper check, if we need to fetch posts again.
var screenHeight = document.body.clientHeight;
if ( infiniteLoadContainer.attr('data-attr') === $(infiniteLoadButton).attr('href') ) {
return; // it means, that maximum length of pages is crossed
} else if (scrollDirection === 'down') {
// attach link for check, and click the load more button!
infiniteLoadContainer.attr('data-attr', $(infiniteLoadButton).attr('href'));
infiniteLoadButton.click();
// prevention, when height did not change enought, load again
setTimeout(function(){
var heightAfterLoadDifference = (document.body.clientHeight - screenHeight);
if( heightAfterLoadDifference < 249 ) {
infiniteScrollFunction(infiniteLoadContainer, infiniteLoadButton, scrollDirection);
}
}, 500);
}
}
function infiniteScrollBlog(){
var infiniteLoadContainer = $('.mfn-infinite-load-button');
var infiniteLoadButton = $('.mfn-infinite-load-button a');
$(infiniteLoadContainer).waypoint({
handler: function(direction) {
infiniteScrollFunction(infiniteLoadContainer, infiniteLoadButton, direction);
},
offset: function(){
//after each load, calc the offset of element to know when posts should be loaded
var offsetPosition = - ( ($(this)[0].element.scrollHeight) - (window.innerHeight / 1.2) );
return offsetPosition;
}
});
$('html, .column_blog').waypoint({
handler: function(direction) {
infiniteScrollFunction(infiniteLoadContainer, infiniteLoadButton, direction);
},
offset: 'bottom-in-view'
});
}
function infiniteScrollPortfolio(){
var infiniteLoadContainer = $('.mfn-infinite-load-button');
var infiniteLoadButton = $('.mfn-infinite-load-button a');
$(infiniteLoadContainer).waypoint({
handler: function(direction) {
infiniteScrollFunction(infiniteLoadContainer, infiniteLoadButton, direction);
},
offset: function(){
//after each load, calc the offset of element to know when posts should be loaded
var offsetPosition = - ( ($(this)[0].element.scrollHeight) - (window.innerHeight / 1.2) );
return offsetPosition;
}
});
$('html, .column_portfolio').waypoint({
handler: function(direction) {
infiniteScrollFunction(infiniteLoadContainer, infiniteLoadButton, direction);
},
offset: 'bottom-in-view'
});
}
/*
* Table of Contents
*/
function tableContentAttachId(){
const container = $('.table_of_content');
let tags;
let anchorNumber = 0;
let anchorDom = $('.table_of_content_wrapper').find('a');
if(tags = container.attr('data-tags')){
tags = tags.split(/[ ,]+/).join(','); //remove spaces, add commas
// muffin builder, gutenberg, elementor
let columns = $('.mfn-builder-content .column_column, .the_content_wrapper:not(.is-elementor), .elementor-widget:not(.elementor-widget-mfn_table_of_contents)');
$(columns).each( ( index, element ) => {
let headingsNoticed = $(element).find(tags); //look for headings
$(headingsNoticed).each( ( index, element ) => {
if( $(element).attr('id') ) { //replace toc_X with user assigned ID
const idSet = '#'+$(element).attr('id');
$(anchorDom[anchorNumber]).attr('href', idSet );
}else{
let id = $(anchorDom[anchorNumber]).attr('href');
$(element).attr('id', id.substr(1) );
}
anchorNumber++;
})
})
}
}
/**
* Off-canvas sidebar
*/
var offCanvasSidebar = {
init: function() {
$(document).on('click', '.mfn-off-canvas-switcher', function(e) {
e.preventDefault();
if( $('html').hasClass('mfn-ofcs-opened') ){
$('html').removeClass('mfn-ofcs-opened');
}else{
$('html').addClass('mfn-ofcs-opened');
}
});
},
mobile: function() {
if( $('.sidebar .widget-area').length && $('body').hasClass('ofcs-mobile') ){
if( !$('.mfn-off-canvas-sidebar').length ){
$('body').append('');
}
if( $('body').hasClass('woocommerce-shop') && !$('.mfn-woo-filters-wrapper .mfn-off-canvas-switcher').length ){
$('.mfn-woo-filters-wrapper').append('');
}
var $ofcs = $('.mfn-off-canvas-sidebar .mfn-off-canvas-content-wrapper .mfn-off-canvas-content');
$ofcs.empty();
$('.sidebar .widget-area').each(function() {
var $sdbr = $(this).clone(true);
$ofcs.append($sdbr);
//$(this).hide();
});
offCanvasSidebar.init();
}
}
}
function alignHeights(){
var i = 0;
if( !$('.mfn-align-heights').length ) return;
$('.mfn-align-heights').each(function() {
var max=0;
var newclass = 'mfn-align-cont-'+i;
$(this).addClass(newclass);
$("").appendTo("body");
$("."+newclass+" .mfn-align-me").each(function() {
if($(this).outerHeight() > max){max = $(this).outerHeight();}
});
$("").appendTo("body");
i++;
});
}
$(window).on('debouncedresize', alignHeights);
var headerTemplate = {
closeable: function() {
$('.closeable-active .close-closeable-section').on('click', function() {
$(this).closest('.closeable-active').addClass('closeable-hidden');
$('.mfn-header-tmpl').css({ 'position': 'fixed', 'top': '0px' })
headerTemplate.resetOffset();
headerTemplate.offset();
});
},
resetOffset: function() {
if( !$('.mfn-header-tmpl').hasClass('mfn-header-tmpl-default') ){
$('body').css({ 'padding-top': $('.mfn-header-tmpl').outerHeight() });
}
},
offset: function() {
headerOffset = 0;
$('.mfn-header-tmpl .hide-on-scroll').not('.closeable-hidden').each(function() {
headerOffset += $(this).outerHeight();
});
},
start: function() {
headerTemplate.offset();
headerTemplate.scroll();
},
scroll: function() {
$(window).scroll(function() {
if($(this).scrollTop() > headerOffset){
$('body').addClass('mfn-scrolled');
$('.hide-on-scroll').not('.closeable-hidden').length ? $('.mfn-header-tmpl').css({ 'position': 'fixed', 'top': '-'+headerOffset+'px' }) : null;
}else{
$('body').removeClass('mfn-scrolled');
$('.hide-on-scroll').not('.closeable-hidden').length ? $('.mfn-header-tmpl').css({ 'position': 'absolute', 'top': 0 }) : null;
}
});
},
bodyOffset: function() {
$('body').css({ 'padding-top' : $('.mfn-header-tmpl').outerHeight() });
},
burger: function() {
$('.mfn-header-tmpl .mfn-tmpl-burger').on('click', function(e) {
e.preventDefault();
if( $('#Side_slide').length ){
var $sideSlide = $('#Side_slide');
if($sideSlide.hasClass('left')){
$sideSlide.animate({'left': 0}, 300);
}else{
$sideSlide.animate({'right': 0}, 300);
}
$('#body_overlay').fadeIn(300);
}else{
$('body').toggleClass('mfn-menu-opened');
}
});
},
}
})(jQuery);