/** FOXIZ MAN SCRIPT */ var FOXIZ_MAIN_SCRIPT = (function (Module, $) { 'use strict'; Module.initParams = function () { this.themeSettings = foxizParams || {}; this.ajaxData = {}; this.siteAccessFlag = false; this._document = $(document); this._body = $('body'); this._window = $(window); this.html = $('html, body'); this.outerHTML = $('html'); this.iOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent); this.wPoint = {}; this.sticky = {}; this.eSticky = {}; this.YTPlayers = {}; this.articleData = []; this.readIndicatorPercent = 0; this.isProgress = false; this.readIndicator = $('#reading-progress'); if (typeof foxizCoreParams !== 'undefined') { this.ajaxURL = foxizCoreParams.ajaxurl || ''; } else { this.ajaxURL = ''; } if (typeof FOXIZ_CORE_SCRIPT !== 'undefined') { this.personailizeUID = FOXIZ_CORE_SCRIPT.personailizeUID; } } Module.init = function () { this.initParams(); this.syncLayoutLike(); this.topSpacing(); this.siteAccessDetector(); this.headerDropdown(); this.mobileCollapse(); this.initSubMenuPos(); this.privacyTrigger(); this.popupNewsletter(); this.documentClick(); this.backTop(); this.readIndicatorInit(); this.fontResizer(); this.breakingNews(); this.sliders(); this.carousels(); this.liveSearch(); this.personalizeBlocks(); this.personalizeCategories(); this.likeToggle(); this.singleInfiniteLoadNext(); this.loginPopup(); this.loadYoutubeIframe(); this.browserResize(); this.footerSlideUp(); this.cartNotification(); this.newsNotification(); this.tocToggle(); this.delayLoad(); this.showPostComment(); this.replyReview(); this.paginationNextPrev(); this.paginationLoadMore(); this.paginationInfinite(); this.productQuantity(); this.readingCollect(); this.neededReloadFuncs(); } Module.neededReloadFuncs = function () { this.hoverTipsy(); this.scrollToComment(); this.usersRating(); this.singleGallery(); this.floatingVideo(); this.videoPreview(); this.floatingVideoRemove(); this.scrollTableContent(); this.singleScrollRefresh(); this.playerAutoPlay(); this.hoverEffects(); this.highlightShares(); this.galleryLightbox(); this.singleFeaturedLightbox(); } Module.reInitAll = function () { this._window.trigger('load'); this.syncLayoutLike(); if (typeof FOXIZ_PERSONALIZE !== 'undefined') { FOXIZ_PERSONALIZE.syncPersonalizeLayout(); } if (typeof RB_REACTION !== 'undefined') { RB_REACTION.syncReactLayout(); } this.neededReloadFuncs(); Waypoint.refreshAll(); } /** sync layout & reload features */ Module.reloadBlockFunc = function () { this._window.trigger('load'); if (typeof FOXIZ_PERSONALIZE !== 'undefined') { FOXIZ_PERSONALIZE.syncLayoutBookmarks(); } this.syncLayoutLike(); this.videoPreview(); this.hoverTipsy(); Waypoint.refreshAll(); } Module.initElementor = function () { if ('undefined' !== typeof initDarkMode && !FOXIZ_MAIN_SCRIPT.editorDarkModeInit) { FOXIZ_MAIN_SCRIPT.editorDarkModeInit = true; initDarkMode(); } FOXIZ_MAIN_SCRIPT.breakingNews(); FOXIZ_MAIN_SCRIPT.carousels(); FOXIZ_MAIN_SCRIPT.sliders(); } Module.isRTL = function () { return this._body.hasClass('rtl'); } Module.animationFrame = function (callback) { var func = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || this.animationFrameFallback func.call(window, callback) } Module.animationFrameFallback = function (callback) { window.setTimeout(callback, 1000 / 60) } Module.SetTTLStorage = function (id, value, ttl) { var data = {value: value, ttl: Date.now() + ttl * 3600000} localStorage.setItem(id, JSON.stringify(data)); } Module.getTTLStorage = function (id) { var data = localStorage.getItem(id); if (!data) { return null; } data = JSON.parse(data); if (Date.now() > data.ttl) { localStorage.removeItem(data); return null; } return data.value; } Module.setStorage = function (key, data) { localStorage.setItem(key, JSON.stringify(data)); } Module.getStorage = function (key, defaultValue) { const data = localStorage.getItem(key); if (data === null) { return defaultValue; } return JSON.parse(data); } Module.deleteStorage = function (key) { localStorage.removeItem(key); } /** on load */ Module.delayLoad = function () { var self = this; setTimeout(function () { self.stickyNavBar(); self.stickyHeaderBuilder(); }, 100) } /** resize */ Module.browserResize = function () { var self = this; self._window.on('resize', function () { self.topSpacing(); self.calcSubMenuPos(); }) } /* ================================ HEADERS ================================ */ Module.hoverTipsy = function () { if (typeof $.fn.rbTipsy === 'undefined') { return false; } this._body.find('[data-copy]').rbTipsy({ title: 'data-copy', fade: true, opacity: 1, trigger: 'hover', gravity: 's' }); if (window.innerWidth > 1024) { this._body.find('#site-header [data-title]').rbTipsy({ title: 'data-title', fade: true, opacity: 1, trigger: 'hover', gravity: 'n' }); this._body.find('.site-wrap [data-title]').rbTipsy({ title: 'data-title', fade: true, opacity: 1, trigger: 'hover', gravity: 's' }); } } /** font resizer */ Module.fontResizer = function () { var self = this; let size; if (navigator.cookieEnabled) { size = sessionStorage.getItem('rubyResizerStep'); } if (!size) { size = 1; } self._body.on('click', '.font-resizer-trigger', function (e) { e.preventDefault(); e.stopPropagation(); size++; if (3 < size) { size = 1; self._body.removeClass('medium-entry-size big-entry-size') } else { if (2 == size) { self._body.addClass('medium-entry-size').removeClass('big-entry-size'); } else { self._body.addClass('big-entry-size').removeClass('medium-entry-size') } } if (navigator.cookieEnabled) { sessionStorage.setItem('rubyResizerStep', size); } }); } /** hover */ Module.hoverEffects = function () { var selectors = $('.effect-fadeout'); if (selectors.length > 0) { selectors.off('mouseenter mouseleave').on('mouseenter', function (e) { e.stopPropagation(); var target = $(this); if (!target.hasClass('activated')) { target.addClass('activated'); } }).on('mouseleave', function () { $(this).removeClass('activated'); }); } } Module.videoPreview = function () { var playPromise; $('.preview-trigger').on('mouseenter', function () { var target = $(this); var wrap = target.find('.preview-video'); if (!wrap.hasClass('video-added')) { var video = ''; wrap.append(video).addClass('video-added'); } target.addClass('show-preview'); wrap.css('z-index', 3); var el = target.find('video')[0]; if (el) { playPromise = el.play(); } }).on('mouseleave', function () { var target = $(this); target.find('.preview-video').css('z-index', 1); var el = target.find('video')[0]; if (el && playPromise !== undefined) { playPromise.then(_ => { el.pause(); }).catch(); } }); } Module.playerAutoPlay = function () { var self = this; var items = $('.is-autoplay'); var nonResIframe = $('.entry-content > iframe'); if (items != null && items.length > 0) { items.each(function () { var el = $(this); if (!el.hasClass('is-loaded')) { self.wPoint['iframe'] = new Waypoint({ element: el, handler: function () { var iframe = el.find('iframe'); self.initAutoPlay(iframe); el.addClass('is-loaded'); this.destroy(); }, offset: '60%' }); } }) } if (nonResIframe != null && nonResIframe.length > 0) { nonResIframe.each(function () { var el = $(this); if (!el.hasClass('is-loaded')) { var iURL = el.attr('src'); if (iURL.indexOf('youtube.com') > 0 || iURL.indexOf('youtu.be') > 0 || iURL.indexOf('vimeo.com') > 0) { el.wrap('
'); } } }) } } Module.initAutoPlay = function (item) { if (item.length > 0 && undefined !== item[0]) { var src = item[0].src; if (src.indexOf('?') > -1) { item[0].src += "&autoplay=1"; } else { item[0].src += "?autoplay=1"; } } } Module.tocToggle = function () { this._document.on('click', '.ruby-toc-toggle', function (e) { e.preventDefault(); e.stopPropagation(); var target = $(this); var content = target.parents('.ruby-table-contents').find('.inner'); target.toggleClass('activate'); content.toggle('250'); }) } /** Header JS functions */ Module.headerDropdown = function () { var self = this; $('.more-trigger').on('click', function (e) { /** re calc menu */ self.calcSubMenuPos(); e.preventDefault(); e.stopPropagation(); var target = $(this); var holder = target.parents('.header-wrap').find('.more-section-outer'); if (!holder.hasClass('dropdown-activated')) { self._body.find('.dropdown-activated').removeClass('dropdown-activated'); holder.addClass('dropdown-activated'); } else { holder.removeClass('dropdown-activated'); } if (target.hasClass('search-btn')) { setTimeout(function () { holder.find('input[type="text"]').focus() }, 50); } return false; }); /** search trigger */ $('.search-trigger').on('click', function (e) { e.preventDefault(); e.stopPropagation(); var holder = $(this).parent('.header-dropdown-outer'); if (!holder.hasClass('dropdown-activated')) { self._body.find('.dropdown-activated').removeClass('dropdown-activated'); holder.addClass('dropdown-activated'); setTimeout(function () { holder.find('input[type="text"]').focus() }, 50); } else { holder.removeClass('dropdown-activated'); } return false; }); /** header dropdown */ $('.dropdown-trigger').on('click', function (e) { e.preventDefault(); e.stopPropagation(); var holder = $(this).parent('.header-dropdown-outer'); if (!holder.hasClass('dropdown-activated')) { self._body.find('.dropdown-activated').removeClass('dropdown-activated'); holder.addClass('dropdown-activated'); } else { holder.removeClass('dropdown-activated'); } }); } Module.topSpacing = function () { var self = this; if (self._body.hasClass('top-spacing')) { var height = $('.top-site-ad').outerHeight(); $('.site-outer').css('margin-top', height); } } /** outside click */ Module.documentClick = function () { var self = this; var wrapper = $('.more-section-outer, .header-dropdown-outer, .mobile-collapse, .mfp-wrap'); var inlineSearchForm = $('.is-form-layout'); document.addEventListener('click', function (e) { if (!wrapper.is(e.target) && wrapper.has(e.target).length === 0) { wrapper.removeClass('dropdown-activated'); self.outerHTML.removeClass('collapse-activated'); } if (!inlineSearchForm.is(e.target) && inlineSearchForm.has(e.target).length === 0) { inlineSearchForm.find('.live-search-response').fadeOut(500); } }); } /** calc mega menu position */ Module.initSubMenuPos = function () { var self = this; var trigger = false; /** add delay to ensure image loaded */ setTimeout(function () { self.calcSubMenuPos(); }, 1000); /** re calc when hovering */ $('.menu-has-child-mega').on('mouseenter', function () { if (!trigger) { self.calcSubMenuPos(); } trigger = true; }) } Module.calcSubMenuPos = function () { if (window.outerWidth < 1024) { return false; } var self = this; var megaParents = $('.menu-has-child-mega'); var headerWrapper = $('#site-header'); /** for mega wide */ if (megaParents.length > 0) { megaParents.each(function () { var item = $(this); item.find('.mega-dropdown').css({ 'width': self._body.width(), 'left': -item.offset().left, }); item.addClass('mega-menu-loaded') }) } /** sub-menu left right direction */ if (headerWrapper.length > 0) { var headerLeftOffset = headerWrapper.offset().left; var headerWidth = headerWrapper.width(); var headerRightOffset = headerLeftOffset + headerWidth; var flexDropdown = $('.flex-dropdown'); /** sub menu direction */ var subElements = $('ul.sub-menu'); if (subElements.length > 0) { subElements.each(function () { var item = $(this); var itemLeftOffset = item.offset().left; var itemRightOffset = itemLeftOffset + item.width() + 100; if (itemRightOffset > headerRightOffset) { item.addClass('left-direction'); } }) } /** calc dropdown flex width */ if (flexDropdown.length > 0) { flexDropdown.each(function () { var item = $(this); var parentItem = item.parent(); if (parentItem.hasClass('is-child-wide') || item.hasClass('mega-has-left')) { return; } var itemWidth = item.width(); var itemHalfWidth = itemWidth / 2; var parentItemOffset = parentItem.offset().left; var parentHalfWidth = parentItem.width() / 2; var parentItemCenterOffset = parentItemOffset + parentHalfWidth; var rightSpacing = headerRightOffset - parentItemCenterOffset; var leftSpacing = parentItemCenterOffset - headerLeftOffset; if (itemWidth >= headerWidth) { item.css({ 'width': headerWidth - 2, 'left': -parentItemOffset }); } else if (itemHalfWidth > rightSpacing) { item.css({ 'right': -rightSpacing + parentHalfWidth + 1, 'left': 'auto', }); } else if (itemHalfWidth > leftSpacing) { item.css({ 'left': -leftSpacing + parentHalfWidth + 1, 'right': 'auto', }); } else { item.css({ 'right': 'auto', 'left': -itemHalfWidth + parentHalfWidth, }); } }); } } } /** * * @returns {boolean} */ Module.stickyNavBar = function () { var self = this; /** turn off sticky on editor mode */ if (self._body.hasClass('elementor-editor-active')) { return false; } self.sticky.section = $('#sticky-holder'); self.sticky.outer = $('#navbar-outer'); if ((!self._body.hasClass('is-mstick') && !self._body.hasClass('yes-tstick')) || self.sticky.outer.length < 1 || self.sticky.section.length < 1) { return false; } self.sticky.smartSticky = !!self._body.hasClass('is-smart-sticky'); self.sticky.isSticky = false; self.sticky.lastScroll = 0; if (self._body.hasClass('yes-tstick')) { self.sticky.isTitleSticky = true; } else { self.sticky.isTitleSticky = 0; } self.sticky.additionalOffset = 200; if (window.innerWidth > 1024) { if (self.sticky.isTitleSticky) { self.sticky.additionalOffset = 450; } else { self.sticky.additionalOffset = 0; } } if (self._body.hasClass('admin-bar')) { self.sticky.adminBarSpacing = 32; } else { self.sticky.adminBarSpacing = 0; } self.sticky.topOffset = self.sticky.section.offset().top; self.sticky.stickySectionHeight = self.sticky.section.outerHeight(); self.sticky.outer.css('min-height', self.sticky.outer.outerHeight()); self.sticky.activatePos = self.sticky.topOffset + 1 + self.sticky.stickySectionHeight + self.sticky.additionalOffset; self.sticky.deactivePos = self.sticky.topOffset - self.sticky.adminBarSpacing + self.sticky.additionalOffset; if (window.addEventListener) { if (self.sticky.smartSticky) { window.addEventListener('scroll', function () { self.animationFrame(self.initSmartStickyNavBar.bind(self)); }, false); } else { window.addEventListener('scroll', function () { self.animationFrame(self.initStickyNavBar.bind(self)); }, false); } } self._window.on('unstickMenu', function () { self.sticky.outer.css('min-height', self.sticky.outer.outerHeight()); self.sticky.stickySectionHeight = self.sticky.section.outerHeight(); self.sticky.topOffset = self.sticky.section.offset().top; self.sticky.activatePos = self.sticky.topOffset + 1 + self.sticky.stickySectionHeight + self.sticky.additionalOffset; self.sticky.deactivePos = self.sticky.topOffset - self.sticky.adminBarSpacing + self.sticky.additionalOffset; }); } Module.initStickyNavBar = function () { var self = this; var scroll = self._window.scrollTop(); if (!self.sticky.isSticky && scroll > self.sticky.activatePos) { self.sticky.isSticky = true; self._body.addClass('stick-animated sticky-on'); self.sticky.stickAnimatedTimeout = setTimeout(function () { self._body.removeClass('stick-animated'); }, 200); } else if (self.sticky.isSticky && scroll <= self.sticky.deactivePos) { self.sticky.isSticky = false; self._body.removeClass('sticky-on stick-animated'); self._window.trigger('unstickMenu'); } } Module.initSmartStickyNavBar = function () { var self = this; var scroll = self._window.scrollTop(); if (!self.sticky.isSticky && scroll > self.sticky.activatePos && scroll < self.sticky.lastScroll) { self.sticky.isSticky = true; self._body.addClass('stick-animated sticky-on'); self.sticky.stickAnimatedTimeout = setTimeout(function () { self._body.removeClass('stick-animated'); }, 200); } else if (self.sticky.isSticky && (scroll <= self.sticky.deactivePos || scroll > self.sticky.lastScroll)) { self.sticky.isSticky = false; self._body.removeClass('sticky-on stick-animated'); if (scroll <= self.sticky.deactivePos) { self._window.trigger('unstickESection'); } } self.sticky.lastScroll = scroll; } /** header sticky template */ Module.stickyHeaderBuilder = function () { var self = this; /** turn off sticky on editor mode */ if (self._body.hasClass('elementor-editor-active')) { return false; } var stickySection = $('.header-template .e-section-sticky').first(); var hasTitleSticky = $('body.single-post #s-title-sticky').first(); if (stickySection.length < 1) { return false; } if (hasTitleSticky.length > 0) { self._body.addClass('yes-tstick'); self.eSticky.isTitleSticky = true; } else { self.eSticky.isTitleSticky = 0; } self.eSticky.additionalOffset = 200; if (window.innerWidth > 1024) { if (self.eSticky.isTitleSticky) { self.eSticky.additionalOffset = 450; } else { self.eSticky.additionalOffset = 0; } } self.eSticky.smartSticky = !!stickySection.hasClass('is-smart-sticky'); /** mobile sticky for header template */ if (window.innerWidth <= 1024) { var mobileHeader = $('#header-template-holder'); stickySection.removeClass('e-section-sticky'); mobileHeader.addClass('e-section-sticky'); stickySection = mobileHeader; } self.eSticky.section = stickySection; self.eSticky.outer = stickySection.parent(); self.eSticky.adminBarSpacing = 0; self.eSticky.isSticky = false; self.eSticky.lastScroll = 0; self.eSticky.stickySectionHeight = stickySection.outerHeight(); self.eSticky.topOffset = stickySection.offset().top; /** set min height */ if (self._body.hasClass('admin-bar')) { self.eSticky.adminBarSpacing = 32; } self.eSticky.outer.css('min-height', self.eSticky.outer.outerHeight()); self.eSticky.activatePos = self.eSticky.topOffset + 1 + self.eSticky.stickySectionHeight + self.eSticky.additionalOffset; self.eSticky.deactivePos = self.eSticky.topOffset - self.eSticky.adminBarSpacing + self.eSticky.additionalOffset; if (window.addEventListener) { if (self.eSticky.smartSticky) { window.addEventListener('scroll', function () { self.animationFrame(self.initSmartStickyESection.bind(self)); }, false); } else { window.addEventListener('scroll', function () { self.animationFrame(self.initStickyESection.bind(self)); }, false); } } /** re-calc height values */ self._window.on('unstickESection', function () { self.eSticky.outer.css('min-height', self.eSticky.outer.outerHeight()); self.eSticky.stickySectionHeight = self.eSticky.section.outerHeight(); self.eSticky.topOffset = self.eSticky.section.offset().top; self.eSticky.activatePos = self.eSticky.topOffset + 1 + self.eSticky.stickySectionHeight + self.eSticky.additionalOffset; self.eSticky.deactivePos = self.eSticky.topOffset - self.eSticky.adminBarSpacing + self.eSticky.additionalOffset; }); } Module.initStickyESection = function () { var self = this; var scroll = self._window.scrollTop(); if (!self.eSticky.isSticky && scroll > self.eSticky.activatePos) { self.eSticky.isSticky = true; self._body.addClass('stick-animated sticky-on'); self.eSticky.stickAnimatedTimeout = setTimeout(function () { self._body.removeClass('stick-animated'); }, 200); } else if (self.eSticky.isSticky && scroll <= self.eSticky.deactivePos) { self.eSticky.isSticky = false; self._body.removeClass('sticky-on stick-animated'); self._window.trigger('unstickESection'); } } Module.initSmartStickyESection = function () { var self = this; var scroll = self._window.scrollTop(); if (!self.eSticky.isSticky && scroll > self.eSticky.activatePos && scroll < self.eSticky.lastScroll) { self.eSticky.isSticky = true; self._body.addClass('stick-animated sticky-on'); self.eSticky.stickAnimatedTimeout = setTimeout(function () { self._body.removeClass('stick-animated'); }, 200); } else if (self.eSticky.isSticky && (scroll <= self.eSticky.deactivePos || scroll > self.eSticky.lastScroll)) { self.eSticky.isSticky = false; self._body.removeClass('sticky-on stick-animated'); if (scroll <= self.eSticky.deactivePos) { self._window.trigger('unstickESection'); } } self.eSticky.lastScroll = scroll; } /** mobileCollapse */ Module.mobileCollapse = function () { var self = this; $('.mobile-menu-trigger').on('click', function (e) { e.preventDefault(); e.stopPropagation(); var target = $(this); if (target.hasClass('mobile-search-icon')) { setTimeout(function () { self.outerHTML.find('.mobile-search-form input[type="text"]').focus() }, 50); } if (!self.outerHTML.hasClass('collapse-activated')) { self.outerHTML.addClass('collapse-activated'); } else { self.outerHTML.removeClass('collapse-activated'); } }); } /** * privacy trigger */ Module.privacyTrigger = function () { $('#privacy-trigger').on('click', function (e) { e.preventDefault(); e.stopPropagation(); localStorage.setItem('RubyPrivacyAllowed', '1'); $('#rb-privacy').slideUp(250, function () { $(this).remove(); }); return false; }); } /** back top */ Module.backTop = function () { if (this._body.hasClass('is-backtop')) { $().UItoTop({ text: '', }); } } /** login popup */ Module.loginPopup = function () { const form = $('#rb-user-popup-form'); if (form.length < 1) { return false; } this._document.on('click', '.login-toggle', (e) => { e.preventDefault(); e.stopPropagation(); $.magnificPopup.open({ type: 'inline', preloader: false, removalDelay: 400, showCloseBtn: true, closeBtnInside: true, closeOnBgClick: true, items: { src: form, type: 'inline' }, mainClass: 'popup-animation', closeMarkup: '', fixedBgPos: true, fixedContentPos: true }); }); }; /** * newsletter */ Module.popupNewsletter = function () { var self = this; var target = $('#rb-popup-newsletter'); if (target.length > 0) { var display = target.data('display'); self.newsletterExpired = target.data('expired'); self.newsletterDisplayOffset = target.data('offset'); var delay = target.data('delay'); var oldExpired = localStorage.getItem('RubyNewsletterExpired'); if (!oldExpired || self.newsletterExpired != oldExpired) { localStorage.setItem('RubyNewsletterExpired', self.newsletterExpired); localStorage.removeItem('RubyNewsletter'); } if (!self.getTTLStorage('RubyNewsletter')) { if (!display || 'scroll' == display) { if (window.addEventListener) { window.addEventListener('scroll', function () { self.animationFrame(self.scrollPopupNewsletter.bind(self)); }, false); } } else { setTimeout(function () { self.popupNewsletterInit(); }, delay); } } } } Module.scrollPopupNewsletter = function () { var self = this; if (!self.newsletterPopupFlag && self._window.scrollTop() > self.newsletterDisplayOffset) { self.newsletterPopupFlag = true; self.popupNewsletterInit(); } } Module.popupNewsletterInit = function () { var self = this; if (self.siteAccessFlag) { return; } $.magnificPopup.open({ type: 'inline', preloader: false, closeBtnInside: true, removalDelay: 300, showCloseBtn: true, closeOnBgClick: false, disableOn: 1024, items: { src: '#rb-popup-newsletter', type: 'inline' }, mainClass: 'popup-animation', fixedBgPos: true, fixedContentPos: true, closeMarkup: '', callbacks: { close: function () { if (self.siteAccessFlag) { return; } self.SetTTLStorage('RubyNewsletter', 1, self.newsletterExpired * 24); } } }); } /** footer slide up */ Module.footerSlideUp = function () { var target = $('#footer-slideup'); if (target.length > 0) { var self = this; self.footerSlideUpExpired = target.data('expired'); var delay = target.data('delay'); var oldExpired = localStorage.getItem('footerSlideUpExpired'); if (!oldExpired || self.footerSlideUpExpired != oldExpired) { localStorage.setItem('footerSlideUpExpired', self.footerSlideUpExpired); localStorage.removeItem('footerSlideUp'); } if (!self.getTTLStorage('footerSlideUp')) { setTimeout(function () { self.footerSlideUpInit(); }, delay); } /** show hide toggle */ setTimeout(function () { self.footerSlideUpToggle(); }, delay); } } Module.footerSlideUpToggle = function () { var self = this; $('.slideup-toggle').off('click').on('click', function (e) { e.preventDefault(); e.stopPropagation(); self.footerSlideUpInit(); return false; }); } Module.footerSlideUpInit = function () { if (this._body.hasClass('yes-f-slideup')) { this._body.removeClass('yes-f-slideup'); this.SetTTLStorage('footerSlideUp', 1, this.footerSlideUpExpired * 24); } else { this._body.addClass('yes-f-slideup'); localStorage.removeItem('footerSlideUp'); } } /** youtube iframe */ Module.loadYoutubeIframe = function () { var self = this; var blockPlaylist = $('.yt-playlist'); if (blockPlaylist.length > 0) { var tag = document.createElement('script'); tag.src = "//www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); } window.onYouTubeIframeAPIReady = function () { $('.yt-playlist').each(function () { var target = $(this); var iframe = target.find('.yt-player'); var videoID = target.data('id'); var blockID = target.data('block'); self.YTPlayers[blockID] = new YT.Player(iframe.get(0), { height: '540', width: '960', videoId: videoID, events: { 'onReady': self.videoPlayToggle, 'onStateChange': self.videoPlayToggle } }); }); $('.plist-item').on('click', function (e) { e.preventDefault(); e.stopPropagation(); var wrapper = $(this).parents('.yt-playlist'); var currentBlockID = wrapper.data('block'); var videoID = $(this).data('id'); var title = $(this).text(); var meta = $(this).data('index'); Object.keys(self.YTPlayers).forEach(function (id) { self.YTPlayers[id].pauseVideo(); }); self.YTPlayers[currentBlockID].loadVideoById({ 'videoId': videoID }); wrapper.find('.yt-trigger').addClass('is-playing'); wrapper.find('.play-title').hide().text(title).fadeIn(250); wrapper.find('.video-index').text(meta); }); } } Module.videoPlayToggle = function () { var players = FOXIZ_MAIN_SCRIPT.YTPlayers; $('.yt-trigger').on('click', function (e) { e.preventDefault(); e.stopPropagation(); var target = $(this); var currentBlockID = target.parents('.yt-playlist').data('block'); var currentState = players[currentBlockID].getPlayerState(); if (-1 == currentState || 0 == currentState || 2 == currentState || 5 == currentState) { players[currentBlockID].playVideo(); target.addClass('is-playing'); } else { players[currentBlockID].pauseVideo(); target.removeClass('is-playing'); } }) } /** Comment scripts */ Module.showPostComment = function () { var self = this; this._document.on('click', '.smeta-sec .meta-comment', function (e) { e.stopPropagation(); let commentBtn = $('.show-post-comment'); if (commentBtn.length > 0) { self.html.animate({scrollTop: commentBtn.offset().top}, 300); commentBtn.trigger('click'); } }); this._document.on('click', '.show-post-comment', function (e) { e.preventDefault(); e.stopPropagation(); var wrap = $(this).parent(); $(this).fadeOut(250, function () { $(this).remove(); wrap.find('.is-invisible').removeClass('is-invisible'); wrap.next('.comment-holder').removeClass('is-hidden'); }) }); } /** table scroll */ Module.scrollTableContent = function () { var self = this; $('.anchor-link').on('click', function (e) { e.stopPropagation(); /** support special language */ var target = $(this).data('index'); self.html.animate({ scrollTop: $('.' + target).offset().top - 150 }, 400); }); } /** scroll to comment */ Module.scrollToComment = function () { var commentBtn = $('.show-post-comment'); var self = this; if (commentBtn.length > 0) { var hash = window.location.hash; if ('#respond' == hash || '#comment' == hash.substring(0, 8)) { commentBtn.trigger('click'); self.html.animate({scrollTop: commentBtn.offset().top}, 300); } } } Module.replyReview = function () { this._document.on('click', '.comment-reply-link', function () { const target = $(this); const wrapper = target.parents('.rb-reviews-area'); const cancelLink = $('#cancel-comment-reply-link'); if (wrapper.length > 0) { wrapper.find('.rb-form-rating').addClass('is-hidden'); cancelLink.on('click', function () { wrapper.find('.rb-form-rating').removeClass('is-hidden'); }); } }); } /** user rating */ Module.usersRating = function () { var self = this; var reviewsForm = self._body.find('.rb-reviews-form'); if (reviewsForm.length > 0) { reviewsForm.each(function () { var reviewForm = $(this); if (!reviewForm.hasClass('is-loaded')) { reviewForm.addClass('is-loaded'); var ratingForm = reviewForm.find('.rb-form-rating'); var selection = reviewForm.find('.rb-rating-selection'); var text = reviewForm.find('.rating-alert').html(); var ratingValue = null; selection.val(''); selection.hide(); selection.before( '' ); ratingForm.on('click', 'a.star', function (e) { e.preventDefault(); e.stopPropagation(); var star = $(this); ratingValue = star.data('rating'); star.siblings('a').removeClass('active'); star.addClass('active'); ratingForm.addClass('selected'); }); reviewForm.on('click', '#respond #submit', function () { selection.val(ratingValue); if (!selection.val()) { window.alert(text); return false; } }); } }); } } /** * * @returns {boolean} */ Module.readIndicatorInit = function () { var self = this; if (!self._body.hasClass('single-post') || self.readIndicator.length < 1) { return false; } var content = $('.entry-content'); if (content.length < 1) { return false; } content = content.eq(0); self.indicatorTop = content.offset().top; self.indicatorHeight = content.outerHeight(true) - self._window.height(); if (window.addEventListener) { window.addEventListener('scroll', function () { self.animationFrame(self.readIndicatorCalc.bind(self)); }, false); } } Module.readIndicatorCalc = function () { var self = this; var scroll = self._window.scrollTop(); self.readIndicatorPercent = ((scroll - self.indicatorTop) / self.indicatorHeight) * 100; if (self.readIndicatorPercent <= 130) { self.readIndicator.css('width', self.readIndicatorPercent + '%'); } } /** breaking news */ Module.breakingNews = function () { var self = this; var breakingNews = $('.breaking-news-slider'); if (breakingNews.length < 1) { return false; } breakingNews.each(function () { var el = $(this); var params = { slidesPerView: 1, loop: true, } if (el.data('play')) { params.autoplay = { delay: self.themeSettings.sliderSpeed, pauseOnMouseEnter: true, stopOnLastSlide: true, disableOnInteraction: true, } if (el.data('speed')) { params.autoplay.delay = el.data('speed'); } } if ('undefined' !== typeof self.isElementorEditor) { delete params.autoplay; } params.navigation = { nextEl: el.find('.breaking-news-next')[0], prevEl: el.find('.breaking-news-prev')[0] } new RBSwiper(this, params); }); } /** overlay slider */ Module.sliders = function () { var self = this; var sliders = $('.post-slider'); if (sliders.length < 1) { return false; } sliders.each(function () { var slider = $(this); var params = { grabCursor: true, allowTouchMove: true, effect: self.themeSettings.sliderEffect, loop: true, } if (slider.data('play')) { params.autoplay = { delay: self.themeSettings.sliderSpeed, pauseOnMouseEnter: true, stopOnLastSlide: true, disableOnInteraction: true, } if (slider.data('speed')) { params.autoplay.delay = slider.data('speed'); } } if ('undefined' !== typeof self.isElementorEditor) { delete params.autoplay; } params.pagination = { el: slider.find('.slider-pagination')[0], clickable: true, }; params.navigation = { nextEl: slider.find('.slider-next')[0], prevEl: slider.find('.slider-prev')[0] } new RBSwiper(this, params); }); } /** carousel blocks */ Module.carousels = function () { var self = this; var carousels = $('.post-carousel'); if (carousels.length < 1) { return false; } carousels.each(function () { var carousel = $(this); var params = { grabCursor: true, allowTouchMove: true, freeMode: false, loop: true } params.slidesPerView = carousel.data('mcol'); params.spaceBetween = carousel.data('mgap'); params.centeredSlides = carousel.data('centered'); params.navigation = { nextEl: carousel.find('.slider-next')[0], prevEl: carousel.find('.slider-prev')[0] } if (carousel.find('.slider-pagination')[0]) { params.pagination = { el: carousel.find('.slider-pagination')[0], type: 'bullets', clickable: true, }; } if (carousel.data('play')) { params.autoplay = { delay: self.themeSettings.sliderSpeed, pauseOnMouseEnter: true, stopOnLastSlide: true, disableOnInteraction: true, } if (carousel.data('speed')) { params.autoplay.delay = carousel.data('speed'); } } if ('undefined' !== typeof self.isElementorEditor) { delete params.autoplay; } if (carousel.data('fmode')) { params.freeMode = true; } params.breakpoints = { 768: { slidesPerView: carousel.data('tcol'), spaceBetween: carousel.data('tgap') }, 1025: { slidesPerView: carousel.data('col'), spaceBetween: carousel.data('gap') }, 1500: { slidesPerView: carousel.data('wcol'), spaceBetween: carousel.data('gap') } }; params.on = { afterInit: function (swiper) { var wrap = $(swiper.$wrapperEl); $(swiper.$wrapperEl).find('.p-box').css('height', wrap.height()); }, resize: function (swiper) { var wrap = $(swiper.$wrapperEl); $(swiper.$wrapperEl).find('.p-box').css('height', wrap.height()); }, }; new RBSwiper(this, params); }); } /* ================================ SINGLE GALLERY ================================ */ Module.singleGallery = function () { var self = this; var gallerySections = self._body.find('.featured-gallery-wrap'); if (!gallerySections.length) { return; } gallerySections.each(function () { var section = $(this); if (!section.hasClass('is-loaded')) { var index = section.data('gallery'); var sliderEl = section.find('.gallery-slider').attr('id'); var sliderNavEl = section.find('.gallery-slider-nav').attr('id'); var carouselEl = section.find('.gallery-carousel').attr('id'); var coverflowEL = section.find('.gallery-coverflow').attr('id'); if ('undefined' !== typeof sliderEl && 'undefined' !== typeof sliderNavEl) { var galleryNav = new RBSwiper('#' + sliderNavEl, { spaceBetween: 15, slidesPerView: 6, freeMode: self.themeSettings.sliderFMode, grabCursor: true, loop: true, watchSlidesVisibility: true, watchSlidesProgress: true, on: { init: function () { $(this.$wrapperEl).removeClass('pre-load'); }, }, }); var gallerySlider = new RBSwiper('#' + sliderEl, { spaceBetween: 0, grabCursor: true, loop: true, pagination: { el: '.swiper-pagination-' + index, type: 'progressbar', clickable: true, }, on: { init: function () { section.addClass('is-loaded'); }, }, thumbs: { swiper: galleryNav } }); gallerySlider.on('slideChange', function () { if (this.activeIndex) { $(this.$el).next().find('.current-slider-count').fadeOut(0).html(this.activeIndex).fadeIn(250); } }); } if ('undefined' !== typeof carouselEl) { new RBSwiper('#' + carouselEl, { spaceBetween: 20, slidesPerView: 'auto', freeMode: self.themeSettings.sliderFMode, loop: false, grabCursor: true, scrollbar: { el: '.swiper-scrollbar-' + index, hide: true, }, on: { init: function () { $(this.$wrapperEl).removeClass('pre-load'); section.addClass('is-loaded'); }, }, }); } if ('undefined' !== typeof coverflowEL) { new RBSwiper('#' + coverflowEL, { effect: "coverflow", grabCursor: true, centeredSlides: true, slidesPerView: 1.2, coverflowEffect: { rotate: 50, stretch: 0, depth: 250, modifier: 1, slideShadows: true, }, breakpoints: { 768: { slidesPerView: 3 } }, on: { init: function () { $(this.$wrapperEl).removeClass('pre-load'); section.addClass('is-loaded'); }, }, pagination: { el: '.swiper-pagination-' + index, clickable: true, }, }); } } }); } Module.highlightShares = function () { var self = this; if (!self.themeSettings.highlightShares || (window.matchMedia && window.matchMedia('(pointer: coarse)').matches)) { return; } var extra = []; var config = { selectableElements: ['.is-highlight-shares'], twitterUsername: self.themeSettings.twitterName, }; if (self.themeSettings.highlightShareFacebook) { config.facebook = true; } if (self.themeSettings.highlightShareTwitter) { config.twitter = true; } if (self.themeSettings.highlightShareReddit) { extra.push({ icon: '', url: 'https://reddit.com/submit?url=PAGE_URL&title=TEXT_SELECTION' }); } Sharect.config(config).appendCustomShareButtons(extra).init(); } /** * * @returns {boolean} */ Module.floatingVideo = function () { var self = this; var floating = $('.floating-video').not('.is-loaded'); if (floating.length < 1 || window.outerWidth < 1025) { return false; } self.wPoint['Floating'] = new Waypoint({ element: floating, offset: -floating.height(), handler: function (direction) { self._body.find('.floating-video').addClass('is-loaded').removeClass('floating-activated'); self._body.find('.floating-close').remove(); if ('down' == direction) { this.element.addClass(' floating-activated'); this.element.find('.float-holder').prepend(''); } } }); } Module.floatingVideoRemove = function () { var self = this; self._body.on('click', '.floating-close', function (e) { e.preventDefault(); e.stopPropagation(); self._body.find('.floating-video').removeClass('floating-activated'); self.wPoint['Floating'].destroy(); }) } Module.siteAccessDetector = function () { var self = this; var checktag = $('#rb-checktag'); var placebo = $('.rb-adbanner'); if (checktag.length === 0) { return false; } setTimeout(function () { if (placebo.height() < 1) { self.siteAccessFlag = true; $.magnificPopup.close(); setTimeout(function () { $.magnificPopup.open({ type: 'inline', preloader: false, showCloseBtn: false, closeBtnInside: false, enableEscapeKey: false, removalDelay: 999999, closeOnBgClick: false, items: { src: '#rb-site-access', type: 'inline' }, mainClass: 'popup-animation site-access-popup', fixedBgPos: true, fixedContentPos: true, }); }, 310); window.addEventListener('contextmenu', event => event.preventDefault()); } }, 1500); } Module.galleryLightbox = function () { $('.gallery-popup-link').on('click', function (e) { e.preventDefault(); e.stopPropagation(); var target = $(this); var data = []; var galleryID = target.data('gallery'); var slideIndex = target.data('index'); var galleries = $(galleryID).find('.gallery-el'); galleries.each(function () { data.push({ title: $(this).find('.image-title').html(), rbgallery: $(this).html() }); }); $.magnificPopup.open({ type: 'inline', mainClass: 'rb-gallery-popup popup-animation', closeMarkup: '', closeOnBgClick: false, removalDelay: 500, showCloseBtn: true, fixedBgPos: true, fixedContentPos: true, preloader: false, gallery: { enabled: true, preload: [0, 2], arrowMarkup: '', tCounter: '%curr% / %total%' }, callbacks: { open: function () { $.magnificPopup.instance.goTo(slideIndex); }, close: function () { $.magnificPopup.instance.popupsCache = {}; }, buildControls: function () { if (this.arrowLeft && this.arrowRight) { this.contentContainer.find('.gallery-popup-nav').append(this.arrowLeft.add(this.arrowRight)); } } }, inline: { markup: '