jQuery(document).ready(function($) { "use strict"; // Initializing scripts var amani_grid = '.blog-feed'; var amani_grid_item = '.grid-item'; function amani_init() { amani_magic_masonry(); // Instagram image width/height fix $('.header-instagram').imagesLoaded(function() { var header_instagram_width = $('.header-instagram li').width(); $('.header-instagram li').css('max-height', header_instagram_width); $('.header-instagram').addClass('visible'); }); $('.footer-instagram').imagesLoaded(function() { var footer_instagram_width = $('.footer-instagram li').width(); $('.footer-instagram li').css('max-height', footer_instagram_width); $('.footer-instagram').addClass('visible'); }); } /* BEGIN */ // Menu dividing to fist - last half var main_nav_length = Math.floor($('.main-nav div > ul > li').length / 2) + 1; $('.main-nav div > ul > li:nth-child(n + ' + main_nav_length + ')').addClass('last-half'); // Search form click $(document).on('click', '.search-trigger', function(e) { $('body').addClass('search-active'); setTimeout(function() { $('.search-wrap input').focus(); }, 300); }); $('.search-wrap').on('click', function(e) { var target = $(e.target); if($(target).is('input') === false) { $('body').removeClass('search-active'); } }); // Escape Key $(document).keyup(function(e) { if (e.keyCode == 27) { // escape key maps to keycode `27` $('body').removeClass('search-active'); $('body').removeClass('menu-active'); } }); // Responsive hamburger click $(document).on('click', '.responsive-menu-trigger', function() { if($('body').hasClass('menu-active')) { $('body').removeClass('menu-active'); } else { history.pushState({id: 'menu'}, '', ''); $('body').addClass('menu-active'); } }); window.addEventListener("popstate", function(e) { if(history.state.id == 'menu') { $('body').removeClass('menu-active'); } }); $('.responsive-wrap').on('click', function(e) { var target = $(e.target); if($(target).is('a') === false) { $('body').removeClass('menu-active'); } }); // Scrolltop click $(document).on('click', '.scrolltop', function() { $('html, body').animate({ scrollTop: 0 }, 300); }); // Wrap Calendar in Divs for better styling $('.widget_calendar td:not(:has(>a))').wrapInner('
'); // Responsive submenu click $(document).on('click', '.responsive-nav .menu-item-has-children > a', function(e) { e.preventDefault(); var curmenu = $(this).parent(); var submenu = $(this).parent().find('> ul'); if(submenu.is(':visible')) { submenu.hide(); curmenu.removeClass('active'); curmenu.parent().find('> li').show(); } else { submenu.show(); curmenu.addClass('active'); curmenu.parent().find('> li:not(.active)').hide(); } }); // Dropdown menu $('nav ul.menu li').hover(function() { var timeout = $(this).data('timeout'); var $currentUl = $(this).find('> ul'); if(timeout) clearTimeout(timeout); if($currentUl.hasClass('visible') === false && $currentUl.length > 0) { $(this).find('> ul').addClass('visible'); } }, function() { $(this).data('timeout', setTimeout($.proxy(function() { $(this).find('> ul').removeClass('visible'); }, this), 200)); }); // Infinite Scroll $.bktis = { containerSelector: '.blog-feed', postSelector: '.grid-item', paginationSelector: '.navigation', nextSelector: '.next', loadingHtml: '', show: function(elems) { elems.show(); }, nextPageUrl: null, init: function(options) { for (var key in options) { $.bktis[key] = options[key]; } $(function() { $.bktis.extractNextPageUrl($('body')); $(window).bind('scroll', $.bktis.scroll); $.bktis.scroll(); }); }, scroll: function() { $($.bktis.containerSelector).imagesLoaded(function() { if ($.bktis.nearBottom() && $.bktis.shouldLoadNextPage()) { $.bktis.loadNextPage(); } }); }, nearBottom: function() { var scrollTop = $(window).scrollTop(), windowHeight = $(window).height(), lastPostOffset = $($.bktis.containerSelector).find($.bktis.postSelector).last().offset(); if (!lastPostOffset) return; return (scrollTop > (lastPostOffset.top - windowHeight)); }, shouldLoadNextPage: function() { return !!$.bktis.nextPageUrl; }, loadNextPage: function() { var nextPageUrl = $.bktis.nextPageUrl, loading = $($.bktis.loadingHtml); $.bktis.nextPageUrl = null; loading.insertAfter($.bktis.containerSelector); $.get(nextPageUrl, function(html) { var dom = $(html), posts = dom.find($.bktis.containerSelector).find($.bktis.postSelector); $.bktis.show(posts.hide().appendTo($.bktis.containerSelector)); $.bktis.extractNextPageUrl(dom); $.bktis.scroll(); }); }, extractNextPageUrl: function(dom) { var pagination = dom.find($.bktis.paginationSelector); $.bktis.nextPageUrl = pagination.find($.bktis.nextSelector).attr('href'); pagination.remove(); } } if($('.theme-body').hasClass('infinite_scroll') == true) { $.bktis.init({ containerSelector: amani_grid, postSelector: amani_grid_item, paginationSelector: '.navigation', nextSelector: '.next', loadingHtml: '
', show: function(elems) { elems.show(); amani_init(); } }); } // Magic Masonry function amani_magic_masonry() { const grid = document.querySelector('.blog_layout-masonry' + ' ' + amani_grid); // checking if grid container exist if(typeof(grid) != 'undefined' && grid != null) { $(amani_grid).append("
"); $(amani_grid).imagesLoaded(function() { const rowHeight = parseInt($(grid).css("grid-auto-rows")); const rowGap = parseInt($(grid).css("grid-row-gap")); grid.style.gridAutoRows = "auto"; grid.style.alignItems = "self-start"; grid.querySelectorAll(amani_grid_item).forEach(item => { item.style.gridRowEnd = `span ${Math.ceil( (item.clientHeight + rowGap) / (rowHeight + rowGap) )}`; if($(item).hasClass('visible') == false) { $(item).addClass('visible'); } }); grid.removeAttribute("style"); $('.infinite-scroll-spinner').fadeOut('normal', function() { $(this).remove(); }); }); } else { $(amani_grid).imagesLoaded(function() { $(amani_grid_item).addClass('visible'); }); $('.infinite-scroll-spinner').fadeOut('normal', function() { $(this).remove(); }); } } // When images loaded we show items $('.featured-posts').imagesLoaded(function() { $('.featured-posts .grid-item').addClass('visible'); }); // Slideshow var amani_slideshow = (function() { function amani_slideshow(element, options) { var _ = this; _.settings = $.extend($.fn.amani_slideshow.defaults, options); _.el = element; _.$element = $(element); _.$photos = _.$element.children(); _.count = _.$photos.length; _.init(); } amani_slideshow.prototype.init = function() { var _ = this; if(_.$element.find('.slideshow-paginator').length < 1) { _.$element.append('