(function($) {
"use strict";
/* ---------------------------------------------------------------------------
* Global vars
* --------------------------------------------------------------------------- */
var scrollticker; // Scroll Timer | don't need to set this in every scroll
var rtl = $('body').hasClass('rtl');
var simple = $('body').hasClass('style-simple');
var top_bar_top = '61px';
var header_H = 0;
var mobile_init_W = (window.mfn.mobile_init) ? window.mfn.mobile_init : 1240;
var lightbox_attr = false;
/* ---------------------------------------------------------------------------
* Lightbox | Magnific Popup
* --------------------------------------------------------------------------- */
if (!window.mfn_lightbox.disable) {
if (!(window.mfn_lightbox.disableMobile && (window.innerWidth < 768))) {
lightbox_attr = {
title: window.mfn_lightbox.title ? window.mfn_lightbox.title : false,
};
}
}
/* ---------------------------------------------------------------------------
* Admin Bar & WooCommerce Store Notice
* --------------------------------------------------------------------------- */
function adminBarH() {
var height = 0;
// WP adminbar
if ($('body').hasClass('admin-bar')) {
height += $('#wpadminbar').innerHeight();
}
// WC demo store
if ($('body').hasClass('woocommerce-demo-store')) {
height += $('body > p.demo_store').innerHeight();
}
return height;
}
/* ---------------------------------------------------------------------------
* Header | Sticky
* --------------------------------------------------------------------------- */
function mfn_sticky() {
if ($('body').hasClass('sticky-header')) {
if (!($('body').hasClass('header-creative') && window.innerWidth >= 768)) {
var start_y = header_H;
var window_y = $(window).scrollTop();
if (window_y > start_y) {
if (!($('#Top_bar').hasClass('is-sticky'))) {
$('.header_placeholder').css('height', $('#Top_bar').height());
$('#Top_bar')
.addClass('is-sticky')
.css('top', -60)
.animate({
'top': adminBarH() + 'px'
}, 300);
// Header width
mfn_header();
}
} else {
if ($('#Top_bar').hasClass('is-sticky')) {
$('.header_placeholder').css('height', 0);
$('#Top_bar')
.removeClass('is-sticky')
.css('top', top_bar_top);
// Retina Logo - max height
sticky_logo();
// Header width
mfn_header();
}
}
mfn_mobile_sticky();
}
}
}
/* ---------------------------------------------------------------------------
* Header | Sticky | Retina Logo - max height
* --------------------------------------------------------------------------- */
function sticky_logo() {
// ! retina display
if (!window.devicePixelRatio > 1) {
return false;
}
var parent = $('#Top_bar #logo');
// ! retina logo set
if (!parent.hasClass('retina')) {
return false;
}
var el = $('img.logo-main', parent);
var height = el.data('height');
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 mfn_stickyH() {
if ($('body').hasClass('header-below')) {
// header below slider
header_H = $('.mfn-main-slider').innerHeight() + $('#Top_bar').innerHeight();
} else {
// default
header_H = $('#Top_bar').innerHeight() + $('#Action_bar').innerHeight();
}
}
/* ---------------------------------------------------------------------------
* Header | Sticky | Mobile
* --------------------------------------------------------------------------- */
function mfn_mobile_sticky() {
if ($('body').hasClass('mobile-sticky') && ($(window).width() < 768)) {
var windowH = $(window).height();
var offset = adminBarH() + $('#Top_bar .logo').height();
if ((!$('#Top_bar').hasClass('is-sticky')) && $('#Action_bar').is(':visible')) {
offset += $('#Action_bar').height();
}
var menuH = windowH - offset;
if (menuH < 176) {
menuH = 176;
}
$('#Top_bar #menu').css('max-height', menuH + 'px');
}
}
/* ---------------------------------------------------------------------------
* Header | Top bar left | Width
* --------------------------------------------------------------------------- */
function mfn_header() {
var rightW = $('.top_bar_right').innerWidth();
if (rightW && !$('body').hasClass('header-plain')) {
rightW += 10;
}
var parentW = $('#Top_bar .one').innerWidth();
var leftW = parentW - rightW;
$('.top_bar_left, .menu > li > ul.mfn-megamenu').css('width', leftW);
}
/* ---------------------------------------------------------------------------
* 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();
} else {
topBar.addClass('is-sticky');
stickyH = $('.sticky-header #Top_bar').innerHeight();
topBar.removeClass('is-sticky');
}
// FIX | responsive
if ($(window).width() < mobile_init_W) {
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 mfn_sidebar() {
if ($('.with_aside .four.columns').length) {
var maxH = $('#Content .sections_group').outerHeight();
$('.with_aside .four.columns .widget-area').each(function() {
$(this).css('min-height', 0);
if ($(this).height() > maxH) {
maxH = $(this).height();
}
});
$('.with_aside .four.columns .widget-area').css('min-height', maxH + 'px');
}
}
/* ---------------------------------------------------------------------------
* Section | Full Screen
* --------------------------------------------------------------------------- */
function mfn_sectionH() {
var windowH = $(window).height();
// FIX | next/prev section
var offset = 0;
if ($('.section.full-screen:not(.hide-desktop)').length > 1) {
offset = 5;
}
$('.section.full-screen').each(function() {
var section = $(this);
var wrapper = $('.section_wrapper', section);
section
.css('padding', 0)
.css('min-height', windowH + offset);
var padding = (windowH + offset - wrapper.height()) / 2;
if (padding < 50) padding = 50;
wrapper
.css('padding-top', padding + 10) // 20 = column margin-bottom / 2
.css('padding-bottom', padding - 10);
});
}
/* ---------------------------------------------------------------------------
* Equal Height | Wraps
* --------------------------------------------------------------------------- */
function mfn_equalH_wrap() {
$('.section.equal-height-wrap .section_wrapper').each(function() {
var maxH = 0;
$('> .wrap', $(this)).each(function() {
$(this).css('height', 'auto');
if ($(this).innerHeight() > maxH) {
maxH = $(this).innerHeight();
}
});
$('> .wrap', $(this)).css('height', maxH + 'px');
});
}
/* ---------------------------------------------------------------------------
* Equal Height | Items
* --------------------------------------------------------------------------- */
function mfn_equalH() {
$('.section.equal-height .mcb-wrap-inner').each(function() {
var maxH = 0;
$('> .column', $(this)).each(function() {
$(this).css('height', 'auto');
if ($(this).height() > maxH) {
maxH = $(this).height();
}
});
$('> .column', $(this)).css('height', maxH + 'px');
});
}
/* ---------------------------------------------------------------------------
* Into | Full Screen
* --------------------------------------------------------------------------- */
function mfn_introH() {
var windowH = $(window).height() - $('#Header_wrapper').height() - adminBarH();
$('#Intro.full-screen').each(function() {
var el = $(this);
var inner = $('.intro-inner', el);
el.css('padding', 0).css('min-height', windowH);
var padding = (windowH - inner.height()) / 2;
inner.css('padding-top', padding).css('padding-bottom', padding);
});
}
/* ---------------------------------------------------------------------------
* Footer | Sliding | Height
* --------------------------------------------------------------------------- */
function mfn_footer() {
// Fixed, Sliding
if ($('.footer-fixed #Footer, .footer-sliding #Footer').length) {
var footerH = $('#Footer').height() - 1;
$('#Content').css('margin-bottom', footerH + 'px');
}
// Stick to bottom
if ($('.footer-stick #Footer').length) {
var headerFooterH = $('#Header_wrapper').height() + $('#Footer').height();
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() {
// # window.location.hash
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 tabsHeaderH = $(hash).siblings('.ui-tabs-nav').innerHeight();
$('html, body').animate({
scrollTop: $(hash).offset().top - fixStickyHeaderH() - tabsHeaderH - adminBarH()
}, 500);
}
}
}
/* ---------------------------------------------------------------------------
* One Page | Scroll Active
* --------------------------------------------------------------------------- */
function onePageActive() {
if ($('body').hasClass('one-page')) {
var stickyH = $('.sticky-header #Top_bar').innerHeight();
var windowT = $(window).scrollTop();
var start = windowT + stickyH + adminBarH() + 1;
var first = false;
$('div[data-id]').each(function() {
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');
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')
.click();
}
}
/* ---------------------------------------------------------------------------
* Zoom Box | Vertical Align
* --------------------------------------------------------------------------- */
function zoomBoxVerticalAlign() {
$('.zoom_box').each(function() {
var el = $(this);
var elH = el.height();
var desc = el.find('.desc_wrap');
var descH = desc.height();
var padding = (elH - descH) / 2;
desc.css('padding-top', padding + 'px');
});
}
/* --------------------------------------------------------------------------------------------------------------------------
*
* $( document ).ready
*
* ----------------------------------------------------------------------------------------------------------------------- */
$(document).ready(function() {
/* ---------------------------------------------------------------------------
* Top Bar
* --------------------------------------------------------------------------- */
$('#Top_bar').removeClass('loading');
top_bar_top = parseInt($('#Top_bar').css('top'), 10);
if (top_bar_top < 0) top_bar_top = 61;
top_bar_top = top_bar_top + 'px';
/* ---------------------------------------------------------------------------
* Menu | Overlay
* --------------------------------------------------------------------------- */
$('.overlay-menu-toggle').click(function(e) {
e.preventDefault();
$(this).toggleClass('focus');
$('#Overlay').stop(true, true).fadeToggle(500);
var menuH = $('#Overlay nav').height() / 2;
$('#Overlay nav').css('margin-top', '-' + menuH + 'px');
});
/* ---------------------------------------------------------------------------
* 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);
});
/* ---------------------------------------------------------------------------
* Menu | Responsive | Side Slide
* --------------------------------------------------------------------------- */
function sideSlide() {
var slide = $('#Side_slide');
var overlay = $('#body_overlay');
var ss_mobile_init_W = mobile_init_W;
var pos = 'right';
var shift_slide = -slide.data('width');
var shift_body = shift_slide / 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 < ss_mobile_init_W)) {
constructor();
} else {
destructor();
}
};
// init ----------
var init = function() {
if (slide.hasClass('left')) {
pos = 'left';
}
// responsive off
if ($('body').hasClass('responsive-off')) {
ss_mobile_init_W = 0;
}
// header simple
if ($('body').hasClass('header-simple')) {
ss_mobile_init_W = 9999;
}
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': shift_body
}, 300);
} else {
slide.animate({
'right': 0
}, 300);
$('body').animate({
'left': shift_body
}, 300);
}
overlay.fadeIn(300);
// reset
reset(0);
};
// close ----------
var close = function() {
if (pos == 'left') {
slide.animate({
'left': shift_slide
}, 300);
$('body').animate({
'right': 0
}, 300);
} else {
slide.animate({
'right': shift_slide
}, 300);
$('body').animate({
'left': 0
}, 300);
}
overlay.fadeOut(300);
// 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');
});
// init, click, debouncedresize ----------
// init
init();
// 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();
});
// click | below search or languages menu
$(slide).on('click', function(e) {
if ($(e.target).is(slide)) {
reset(300);
}
});
// debouncedresize
$(window).on('debouncedresize', reload);
}
if ($('body').hasClass('mobile-side-slide')) {
sideSlide();
}
/* ---------------------------------------------------------------------------
* Gallery | WordPress Gallery
* --------------------------------------------------------------------------- */
// Content
$('.sections_group .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%');
// Link | Media File
if (el.hasClass('file')) {
$('.gallery-icon a', el).attr('rel', 'prettyphoto[' + id + ']');
}
// Masonry
if (el.hasClass('masonry')) {
el.isotope({
itemSelector: '.gallery-item',
layoutMode: 'masonry',
isOriginLeft: rtl ? false : true
});
}
});
// Widget
$('.widget_media_gallery .gallery').each(function() {
var el = $(this);
var id = el.attr('id');
// Link | 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 (lightbox_attr) {
compatibility();
set_type();
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';
}
// Visual Composer prettyPhoto
var data_rel = el.attr('data-rel');
if (data_rel) {
rel = data_rel.replace('prettyPhoto', 'lightbox');
el.removeAttr('data-rel');
}
el.removeClass('prettyphoto').attr('rel', rel);
});
};
// check if item is a part of gallery ----------
var is_gallery = function(rel) {
if (!rel) {
return false;
}
var reg_exp = /\[(?:.*)\]/;
var gallery = reg_exp.exec(rel);
if (gallery) {
gallery = gallery[0];
gallery = gallery.replace('[', '').replace(']', '');
return gallery;
}
return false;
};
// set array of names of galleries ----------
var set_gallery = function(gallery) {
if (galleries.indexOf(gallery) == -1) {
galleries.push(gallery);
return true;
}
return false;
};
// get file type by link ----------
var get_type = function(src) {
if (src.match(/youtube\.com\/watch/i) || src.match(/youtu\.be/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 set_type = function() {
$('a[rel^="lightbox"]').each(function() {
var el = $(this);
var href = el.attr('href');
var rel = el.attr('rel');
if (href) {
// gallery
var gallery = is_gallery(rel);
if (gallery) {
el.attr('data-type', 'gallery');
set_gallery(gallery);
return true;
}
el.attr('data-type', get_type(href));
// iframe paremeters
if (get_type(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').find('img').first();
if (lightbox_attr.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'
}
}
}
});
// 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
}
});
}
};
// reload ----------
var reload = function() {
$('a[rel^="lightbox"]').unbind('click');
constructor();
}
// Visual Composer prettyPhoto | unbind ----------
var unbindPretty = function() {
if (lightbox_attr) {
$('a[data-rel^="prettyPhoto"], a[rel^="lightbox"]').each(function() {
$(this).unbind('click.prettyphoto');
});
}
}
// init ----------
init();
// onload ----------
$(window).on('load', unbindPretty);
$(document).on('isotope:arrange', reload);
}
lightbox();
/* ---------------------------------------------------------------------------
* Menu | mfnMenu
* --------------------------------------------------------------------------- */
function mainMenu() {
var mm_mobile_init_W = mobile_init_W;
if ($('body').hasClass('header-simple') || $('#Header_creative.dropdown').length) {
mm_mobile_init_W = 9999;
}
$('#menu > ul.menu').mfnMenu({
addLast: true,
arrows: true,
mobileInit: mm_mobile_init_W,
responsive: window.mfn.responsive
});
$('#secondary-menu > ul.secondary-menu').mfnMenu({
mobileInit: mm_mobile_init_W,
responsive: window.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.find('a').click(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]').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();
var tabsHeaderH = $(hash).siblings('.ui-tabs-nav').innerHeight();
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';
var cHeaderEl = $(cHeader);
var cHeaderCurrnet;
function creativeHeader() {
$('.creative-menu-toggle').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").click(function(e) {
e.preventDefault();
$('#Top_bar .search_wrapper').fadeToggle()
.find('.field').focus();
});
/* ---------------------------------------------------------------------------
* WPML | Language switcher in the WP Menu
* --------------------------------------------------------------------------- */
function mfn_wpml() {
$('#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());
});
}
mfn_wpml();
/* ---------------------------------------------------------------------------
* 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')
.bind('touchstart', function() {
$(this).toggleClass('hover');
})
.bind('touchend', function() {
$(this).removeClass('hover');
});
/* ---------------------------------------------------------------------------
* Popup | Contact Form | Button
* --------------------------------------------------------------------------- */
$("#popup_contact > a.button").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
});
}
/* ---------------------------------------------------------------------------
* Black & White
* --------------------------------------------------------------------------- */
function mfn_greyscale() {
$('.greyscale .image_wrapper > a, .greyscale .image_wrapper_tiles, .greyscale.portfolio-photo a, .greyscale .client_wrapper .gs-wrapper').has('img').BlackAndWhite({
hoverEffect: false,
intensity: 1 // opacity: 0, 0.1, ... 1
});
}
mfn_greyscale();
/* ---------------------------------------------------------------------------
* Sliding Top
* --------------------------------------------------------------------------- */
$('.sliding-top-control').click(function(e) {
e.preventDefault();
$('#Sliding-top .widgets_wrapper').slideToggle();
$('#Sliding-top').toggleClass('active');
});
/* ---------------------------------------------------------------------------
* Alert
* --------------------------------------------------------------------------- */
$(this).on('click', '.alert .close', function(e) {
e.preventDefault();
$(this).closest('.alert').hide(300);
});
/* ---------------------------------------------------------------------------
* Button | mark buttons with icon & label
* --------------------------------------------------------------------------- */
$('a.button_js').each(function() {
var btn = $(this);
if (btn.find('.button_icon').length && btn.find('.button_label').length) {
btn.addClass('kill_the_icon');
}
});
/* ---------------------------------------------------------------------------
* 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 (window.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').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();
if ($('.lm_wrapper:eq(' + index + ')').hasClass('isotope')) {
// isotope
$('.lm_wrapper:eq(' + index + ')').append($(content)).isotope('reloadItems').isotope({
sortBy: 'original-order'
});
} 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 -------------------------------
mfn_greyscale();
mfn_jPlayer();
lightbox();
// isotope fix: second resize
$('.lm_wrapper.isotope').imagesLoaded().progress(function() {
$('.lm_wrapper.isotope').isotope('layout');
});
});
});
/* ---------------------------------------------------------------------------
* Filters | Blog & Portfolio
* --------------------------------------------------------------------------- */
$('.filters_buttons .open').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').click(function(e) {
e.preventDefault();
$('.filters_wrapper').hide(200);
});
/* ---------------------------------------------------------------------------
* Portfolio List | Next v / Prev ^ buttons
* --------------------------------------------------------------------------- */
$('.portfolio_next_js').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').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').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();
var tabsHeaderH = $(hash).siblings('.ui-tabs-nav').innerHeight();
var offset = headerFixedAbH + tabsHeaderH + adminBarH();
// animate scroll
if (hash && $(hash).length) {
$('html, body').animate({
scrollTop: $(hash).offset().top - offset - fixStickyHeaderH()
}, 500);
}
});
/* ---------------------------------------------------------------------------
* Tabs
* --------------------------------------------------------------------------- */
$('.jq-tabs').tabs();
/* ---------------------------------------------------------------------------
* 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 active_tab = el.attr('data-active-tab');
if (el.hasClass('open1st')) active_tab = 1;
if (active_tab) {
el.find('.question').eq(active_tab - 1)
.addClass("active")
.children(".answer")
.show();
}
}
});
$('.mfn-acc .question > .title').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').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 mfn_jPlayer() {
$('.mfn-jplayer').each(function() {
var m4v = $(this).attr('data-m4v');
var poster = $(this).attr('data-img');
var swfPath = $(this).attr('data-swf');
var 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'
});
});
}
mfn_jPlayer();
/* ---------------------------------------------------------------------------
* Love
* --------------------------------------------------------------------------- */
$('.mfn-love').click(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(window.mfn_ajax, post, function(data) {
el.find('.label').html(data);
});
return false;
});
/* ---------------------------------------------------------------------------
* Go to top
* --------------------------------------------------------------------------- */
$('#back_to_top').click(function() {
$('body,html').animate({
scrollTop: 0
}, 500);
return false;
});
/* ---------------------------------------------------------------------------
* Section | Next v / Prev ^ arrows
* --------------------------------------------------------------------------- */
$('.section .section-nav').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').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).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').bind('added_to_cart', function() {
$('.adding-to-cart')
.removeClass('adding-to-cart')
.addClass('added-to-cart');
});
}
addToCart();
/* ---------------------------------------------------------------------------
* Ajax | Complete
* --------------------------------------------------------------------------- */
$(document).ajaxComplete(function() {
setTimeout(function() {
$(window).trigger('resize');
}, 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').click(function(e) {
e.preventDefault();
var isoWrapper = $('.isotope');
var filters = $(this).closest('.isotope-filters');
var 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').click(function(e) {
e.preventDefault();
$('.isotope-filters .filters_wrapper').find('li').removeClass('current-cat');
isotopeFilter($(this), $('.isotope'));
});
/* --------------------------------------------------------------------------------------------------------------------------
*
* $( window ).resize | Debouncedresize
*
* ----------------------------------------------------------------------------------------------------------------------- */
$(window).bind('debouncedresize', function() {
// Isotope | Relayout
$('.masonry.isotope').isotope();
$('.masonry.gallery').isotope('layout');
// Sliding Footer | Height
mfn_footer();
// Header Width
mfn_header();
// Sidebar Height
mfn_sidebar();
// Full Screen Section
mfn_sectionH();
// Full Screen Intro
mfn_introH();
// Zoom Box | Vertical Align
zoomBoxVerticalAlign();
// Equal | Height
mfn_equalH_wrap();
mfn_equalH();
// Header Creative & Mobile Sticky
creativeHeaderFix();
});
/* --------------------------------------------------------------------------------------------------------------------------
*
* document.ready | Init
*
* ----------------------------------------------------------------------------------------------------------------------- */
mfnSliderBlog();
mfnSliderClients();
mfnSliderOffer();
mfnSliderOfferThumb();
mfnSliderShop();
sliderPortfolio();
sliderSlider();
sliderTestimonials();
// Sidebar | Height
mfn_sidebar();
// Sliding Footer | Height
mfn_footer();
// Header | Width
mfn_header();
// Full Screen Section
mfn_sectionH();
// Navigation | Hash
hashNav();
// Full Screen Intro
mfn_introH();
// Equal | Height
mfn_equalH_wrap();
mfn_equalH();
});
/* --------------------------------------------------------------------------------------------------------------------------
*
* $( window ).scroll
*
* ----------------------------------------------------------------------------------------------------------------------- */
$(window).scroll(function() {
// Header | Sticky
mfn_sticky();
// Back to top | Sticky
backToTopSticky();
// One Page | Scroll | Active Section
onePageActive();
});
/* --------------------------------------------------------------------------------------------------------------------------
*
* $( window ).load
*
* ----------------------------------------------------------------------------------------------------------------------- */
$(window).load(function() {
/* ---------------------------------------------------------------------------
* Retina Logo
* --------------------------------------------------------------------------- */
function retinaLogo() {
if (window.devicePixelRatio > 1) {
var el = '';
var src = '';
var height = '';
var parent = $('#Top_bar #logo');
var parentH = parent.data('height');
var maxH = {
sticky: {
init: 35,
no_padding: 60,
overflow: 110
},
mobile: {
mini: 50,
mini_no_padding: 60
},
mobile_sticky: {
init: 50,
no_padding: 60,
overflow: 80
}
};
$('#Top_bar #logo img').each(function(index) {
el = $(this);
src = el.data('retina');
height = el.height();
// 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.no_padding) {
height = maxH.sticky.no_padding;
}
} 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.mini_no_padding) {
height = maxH.mobile.mini_no_padding;
}
}
}
}
// mobile-sticky -----
if (el.hasClass('logo-mobile-sticky')) {
if ($('body').hasClass('logo-no-sticky-padding')) {
if (height > maxH.mobile_sticky.no_padding) {
height = maxH.mobile_sticky.no_padding;
}
} else if (height > maxH.mobile_sticky.init) {
height = maxH.mobile_sticky.init;
}
}
// SET
if (src) {
el.parent().addClass('retina');
el.attr('src', src).css('max-height', height + 'px');
}
});
}
}
retinaLogo();
/* ---------------------------------------------------------------------------
* 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
* --------------------------------------------------------------------------- */
$('.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,
trackColor: '#f8f8f8'
});
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();
/* --------------------------------------------------------------------------------------------------------------------------
*
* window.load | Init
*
* ----------------------------------------------------------------------------------------------------------------------- */
// Header | Sticky
mfn_stickyH();
mfn_sticky();
mfn_mobile_sticky();
// Full Screen Section
mfn_sectionH();
// Navigation | Hash
hashNav();
// Full Screen Intro
mfn_introH();
// FIX | Revolution Slider Width & Height OnLoad
$(window).trigger('resize');
// Sidebar | Height
setTimeout(function() {
mfn_sidebar();
}, 10);
});
/* --------------------------------------------------------------------------------------------------------------------------
*
* $( document ).mouseup
*
* ----------------------------------------------------------------------------------------------------------------------- */
$(document).mouseup(function(e) {
// Widget | Muffin Menu | Hover on click
if ($(".widget_mfn_menu ul.submenus-click").length) {
if ($(".widget_mfn_menu ul.submenus-click").has(e.target).length === 0) {
$('.widget_mfn_menu ul.submenus-click li').removeClass('hover');
}
}
});
/* --------------------------------------------------------------------------------------------------------------------------
*
* Sliders configuration
*
* ----------------------------------------------------------------------------------------------------------------------- */
// Slick Slider | Auto responsive -----------------------------------------
function slickAutoResponsive(slider, max, size) {
if (!max) max = 5;
if (!size) size = 380;
var width = slider.width();
var count = Math.ceil(width / size);
if (count < 1) count = 1;
if (count > max) count = max;
return count;
}
// --- Offer Thumb -----------------------------------------------------------------
function mfnSliderOfferThumb() {
var pager = function(el, i) {
var img = $(el.$slides[i]).children('.thumbnail').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: window.mfn_sliders.offer ? true : false,
autoplaySpeed: window.mfn_sliders.offer ? window.mfn_sliders.offer : 5000,
slidesToShow: 1,
slidesToScroll: 1
});
});
}
// --- 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: window.mfn_sliders.offer ? true : false,
autoplaySpeed: window.mfn_sliders.offer ? window.mfn_sliders.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);
});
});
}
// --- 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'),
appendDots: slider.siblings('.slider_pager'),
customPaging: pager,
rtl: rtl ? true : false,
autoplay: window.mfn_sliders.shop ? true : false,
autoplaySpeed: window.mfn_sliders.shop ? window.mfn_sliders.shop : 5000,
slidesToShow: slickAutoResponsive(slider, slidesToShow),
slidesToScroll: slickAutoResponsive(slider, slidesToShow)
});
// Bind | debouncedresize
$(window).bind('debouncedresize', function() {
slider.slick('slickSetOption', 'slidesToShow', slickAutoResponsive(slider, slidesToShow), false);
slider.slick('slickSetOption', 'slidesToScroll', slickAutoResponsive(slider, slidesToShow), true);
});
});
}
// --- 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'),
appendDots: slider.siblings('.slider_pager'),
customPaging: pager,
rtl: rtl ? true : false,
autoplay: window.mfn_sliders.blog ? true : false,
autoplaySpeed: window.mfn_sliders.blog ? window.mfn_sliders.blog : 5000,
slidesToShow: slickAutoResponsive(slider, slidesToShow),
slidesToScroll: slickAutoResponsive(slider, slidesToShow)
});
// Bind | debouncedresize
$(window).bind('debouncedresize', function() {
slider.slick('slickSetOption', 'slidesToShow', slickAutoResponsive(slider, slidesToShow), false);
slider.slick('slickSetOption', 'slidesToScroll', slickAutoResponsive(slider, slidesToShow), true);
});
});
}
// --- 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('.clients_slider_header'),
rtl: rtl ? true : false,
autoplay: window.mfn_sliders.clients ? true : false,
autoplaySpeed: window.mfn_sliders.clients ? window.mfn_sliders.clients : 5000,
slidesToShow: slickAutoResponsive(slider, 4),
slidesToScroll: slickAutoResponsive(slider, 4)
});
// Bind | debouncedresize
$(window).bind('debouncedresize', function() {
slider.slick('slickSetOption', 'slidesToShow', slickAutoResponsive(slider, 4), false);
slider.slick('slickSetOption', 'slidesToScroll', slickAutoResponsive(slider, 4), true);
});
});
}
// --- 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: window.mfn_sliders.portfolio ? true : false,
autoplaySpeed: window.mfn_sliders.portfolio ? window.mfn_sliders.portfolio : 5000,
slidesToShow: slickAutoResponsive(slider, 5, size),
slidesToScroll: slickAutoResponsive(slider, scroll, size)
});
// Bind | debouncedresize
$(window).bind('debouncedresize', function() {
slider.slick('slickSetOption', 'slidesToShow', slickAutoResponsive(slider, 5, size), false);
slider.slick('slickSetOption', 'slidesToScroll', slickAutoResponsive(slider, scroll, size), true);
});
});
}
// --- 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).bind('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: window.mfn_sliders.slider ? true : false,
autoplaySpeed: window.mfn_sliders.slider ? window.mfn_sliders.slider : 5000,
slidesToShow: count,
slidesToScroll: count
});
// Lightbox | disable on dragstart
var clickEvent = false;
slider.on('dragstart', '.slick-slide a[rel="lightbox"]', function(event) {
if (lightbox_attr) {
var events = $(this).data('events');
clickEvent = events.click[0];
$(this).addClass('unbind-click').unbind('click');
}
});
// Lightbox | enable after change
slider.on('afterChange', function(event, slick, currentSlide, nextSlide) {
if (lightbox_attr) {
$('a.unbind-click[rel="lightbox"]', slider).removeClass('unbind-click').bind('click', clickEvent);
}
});
});
}
// --- 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: window.mfn_sliders.testimonials ? true : false,
autoplaySpeed: window.mfn_sliders.testimonials ? window.mfn_sliders.testimonials : 5000,
slidesToShow: 1,
slidesToScroll: 1
});
});
}
})(jQuery);