function preload_images( images, complete_callback ) { if ( onepress_js_settings.hero_disable_preload ) { if ( complete_callback ) { complete_callback(); } } else { var id = '_img_loading_'+( new Date().getTime() ); jQuery( 'body').append( '
' ); jQuery.each( images, function( index, src ){ var img = jQuery( '' ); img.attr( 'alt', '' ); img.attr( 'class', 'image__preload' ); img.css( 'display', 'none' ); img.attr( 'src', src ); jQuery( '#'+id ).append( img ); } ); jQuery( '#'+id ).imagesLoaded( function() { if ( complete_callback ) { complete_callback(); } setTimeout( function(){ jQuery( '#'+id ).remove(); }, 5000 ); }); } } function _to_number( string ) { if ( typeof string === 'number' ) { return string; } var n = string.match(/\d+$/); if ( n ) { return parseFloat( n[0] ); } else { return 0; } } function _to_bool( v ) { if ( typeof v === 'boolean' ){ return v; } if ( typeof v === 'number' ){ return v === 0 ? false : true; } if ( typeof v === 'string' ) { if ( v === 'true' || v === '1' ) { return true; } else { return false; } } return false; } /** * skip-link-focus-fix.js * * Helps with accessibility for keyboard only users. * * Learn more: https://github.com/Automattic/OnePress/pull/136 */ ( function() { var is_webkit = navigator.userAgent.toLowerCase().indexOf( 'webkit' ) > -1, is_opera = navigator.userAgent.toLowerCase().indexOf( 'opera' ) > -1, is_ie = navigator.userAgent.toLowerCase().indexOf( 'msie' ) > -1; if ( ( is_webkit || is_opera || is_ie ) && document.getElementById && window.addEventListener ) { window.addEventListener( 'hashchange', function() { var id = location.hash.substring( 1 ), element; if ( ! ( /^[A-z0-9_-]+$/.test( id ) ) ) { return; } element = document.getElementById( id ); if ( element ) { if ( ! ( /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) ) { element.tabIndex = -1; } element.focus(); } }, false ); } })(); /** * Sticky header when scroll. */ jQuery( document ).ready( function( $ ) { var $window = $(window); var $document = $(document); var isMobile = { Android: function() { return navigator.userAgent.match(/Android/i); }, BlackBerry: function() { return navigator.userAgent.match(/BlackBerry/i); }, iOS: function() { return navigator.userAgent.match(/iPhone|iPad|iPod/i); }, Opera: function() { return navigator.userAgent.match(/Opera Mini/i); }, Windows: function() { return navigator.userAgent.match(/IEMobile/i); }, any: function() { return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows()); } }; var getAdminBarHeight = function(){ var h = 0; if ( $( '#wpadminbar' ).length ) { if ( $( '#wpadminbar' ).css('position') == 'fixed' ) { h = $( '#wpadminbar' ).height(); } } return h; }; var stickyHeaders = (function() { var $stickies; var lastScrollTop = 0; var setData = function( stickies, addWrap ){ var top = 0; if ( typeof addWrap === "undefined" ) { addWrap = true; } $stickies = stickies.each(function() { var $thisSticky = $(this); var p = $thisSticky.parent(); if ( ! p.hasClass('followWrap')) { if ( addWrap ) { $thisSticky.wrap('
'); } } $thisSticky.parent().removeAttr('style'); $thisSticky.parent().height($thisSticky.height()); }); }; var load = function(stickies) { if (typeof stickies === "object" && stickies instanceof jQuery && stickies.length > 0) { setData( stickies ); $window.scroll( function(){ _whenScrolling(); } ); $window.resize( function(){ setData( stickies, false ); stickies.each( function(){ $( this ).removeClass("fixed").removeAttr("style"); } ); _whenScrolling(); } ); $document.on( 'hero_ready', function(){ $( '.followWrap' ).removeAttr('style'); setTimeout( function(){ $( '.followWrap' ).removeAttr('style'); setData( stickies, false ); _whenScrolling(); }, 500 ); } ); } }; var _whenScrolling = function() { var top = 0; top = getAdminBarHeight(); var scrollTop = $window.scrollTop(); $stickies.each(function(i) { var $thisSticky = $(this), $stickyPosition = $thisSticky.parent().offset().top; if ( scrollTop === 0 ) { $thisSticky.addClass('no-scroll'); } if ( $stickyPosition - top <= scrollTop ) { if ( scrollTop > 0 ) { $thisSticky.removeClass( 'no-scroll' ); } $thisSticky.addClass("header-fixed"); $thisSticky.css("top", top ); } else { $thisSticky.removeClass("header-fixed").removeAttr("style").addClass('no-scroll'); } }); }; return { load: load }; })(); stickyHeaders.load($("#masthead.is-sticky")); // When Header Panel rendered by customizer $document.on( 'header_view_changed', function(){ stickyHeaders.load($("#masthead.is-sticky")); } ); /* * Nav Menu & element actions * * Smooth scroll for navigation and other elements */ var mobile_max_width = 1140; // Media max width for mobile var main_navigation = jQuery('.main-navigation .onepress-menu'); var stite_header = $( '.site-header' ); // Initialise Menu Toggle $document.on('click', '#nav-toggle', function(event){ event.preventDefault(); jQuery('#nav-toggle').toggleClass('nav-is-visible'); main_navigation.toggleClass("onepress-menu-mobile"); jQuery('.header-widget').toggleClass("header-widget-mobile"); if ( main_navigation.hasClass( 'onepress-menu-mobile' ) && $( window).width() <= mobile_max_width ) { var h = $( window).height( ) - stite_header.height(); main_navigation.css( { height: h, overflow: 'auto', }); } else { main_navigation.removeAttr( 'style' ); } }); $( window).resize( function(){ if ( main_navigation.hasClass( 'onepress-menu-mobile' ) && $( window).width() <= mobile_max_width ) { var h = $( window).height( ) - stite_header.height(); main_navigation.css( { height: h, overflow: 'auto', }); } else { main_navigation.removeAttr( 'style' ); } } ); jQuery('.onepress-menu li.menu-item-has-children, .onepress-menu li.page_item_has_children').each( function() { jQuery(this).prepend(''); }); $document.on('click','.nav-toggle-subarrow, .nav-toggle-subarrow .nav-toggle-subarrow', function () { jQuery(this).parent().toggleClass("nav-toggle-dropdown"); } ); // Get the header height and wpadminbar height if enable. var h; window.current_nav_item = false; if ( onepress_js_settings.onepress_disable_sticky_header != '1' ) { h = jQuery('#wpadminbar').height() + jQuery('.site-header').height(); } else { h = jQuery('#wpadminbar').height(); } // Navigation click to section. jQuery('.home #site-navigation li a[href*="#"]').on('click', function(event){ event.preventDefault(); // if in mobile mod if ( jQuery( '.onepress-menu' ).hasClass( 'onepress-menu-mobile' ) ) { jQuery( '#nav-toggle' ).trigger( 'click' ); } smoothScroll( jQuery( this.hash ) ); }); function setNavActive( currentNode ){ if ( currentNode ) { currentNode = currentNode.replace('#', ''); if (currentNode) jQuery('#site-navigation li').removeClass('onepress-current-item'); if (currentNode) { jQuery('#site-navigation li').find('a[href$="#' + currentNode + '"]').parent().addClass('onepress-current-item'); } } } function inViewPort( $element, offset_top ){ if ( ! offset_top ) { offset_top = 0 } var view_port_top = jQuery( window ).scrollTop(); if ( $('#wpadminbar' ).length > 0 ) { view_port_top -= $('#wpadminbar' ).outerHeight() - 1; offset_top += $('#wpadminbar' ).outerHeight() - 1; } var view_port_h = $( 'body' ).outerHeight(); var el_top = $element.offset().top; var eh_h = $element.height(); var el_bot = el_top + eh_h; var view_port_bot = view_port_top + view_port_h; var all_height = $( 'body' )[0].scrollHeight; var max_top = all_height - view_port_h; var in_view_port = false; // If scroll maximum if ( view_port_top >= max_top ) { if ( ( el_top < view_port_top && el_top > view_port_bot ) || ( el_top > view_port_top && el_bot < view_port_top ) ) { in_view_port = true; } } else { if ( el_top <= view_port_top + offset_top ) { //if ( eh_bot > view_port_top && eh_bot < view_port_bot ) { if ( el_bot > view_port_top ) { in_view_port = true; } } } return in_view_port; } // Add active class to menu when scroll to active section. var _scroll_top = $window.scrollTop(); jQuery( window ).scroll(function() { var currentNode = null; if ( ! window.current_nav_item ) { var current_top = $window.scrollTop(); if ( onepress_js_settings.onepress_disable_sticky_header != '1' ) { h = jQuery('#wpadminbar').height() + jQuery('.site-header').height(); } else { h = jQuery('#wpadminbar').height(); } if( _scroll_top < current_top ) { jQuery('section').each( function ( index ) { var section = jQuery( this ); var currentId = section.attr('id') || ''; var in_vp = inViewPort( section , h + 10) ; if ( in_vp ) { currentNode = currentId; } }); } else { var ns = jQuery('section').length; for ( var i = ns - 1; i >= 0; i-- ) { var section = jQuery('section').eq( i ); var currentId = section.attr('id') || ''; var in_vp = inViewPort( section , h + 10) ; if ( in_vp ) { currentNode = currentId; } } } _scroll_top = current_top; } else { currentNode = window.current_nav_item.replace('#', ''); } setNavActive( currentNode ); }); // Move to the right section on page load. jQuery(window).load(function(){ var urlCurrent = location.hash; if ( jQuery( urlCurrent ).length > 0 ) { smoothScroll( urlCurrent ); } }); // Other scroll to elements jQuery('.hero-slideshow-wrapper a[href*="#"]:not([href="#"]), .parallax-content a[href*="#"]:not([href="#"]), .back-to-top').on('click', function(event){ event.preventDefault(); smoothScroll( jQuery( this.hash ) ); }); // Smooth scroll animation function smoothScroll( element ) { if ( element.length <= 0 ) { return false; } jQuery("html, body").animate({ scrollTop: ( jQuery( element ).offset().top - h) + "px" }, { duration: 800, easing: "swing", complete: function(){ window.current_nav_item = false; } }); } if ( onepress_js_settings.is_home ) { // custom-logo-link jQuery( '.site-branding .site-brand-inner').on( 'click', function( e ){ e.preventDefault(); jQuery("html, body").animate({ scrollTop: "0px" }, { duration: 300, easing: "swing" }); } ); } if ( isMobile.any() ) { jQuery( 'body' ).addClass( 'body-mobile' ).removeClass( 'body-desktop' ); } else { jQuery( 'body' ).addClass( 'body-desktop') .removeClass( 'body-mobile' ); } /** * Reveal Animations When Scrolling */ if ( onepress_js_settings.onepress_disable_animation != '1' ) { var wow = new WOW( { offset: 50, mobile: false, live: false } ); wow.init(); } var text_rotator = function(){ /** * Text rotator */ jQuery(".js-rotating").Morphext({ // The [in] animation type. Refer to Animate.css for a list of available animations. animation: onepress_js_settings.hero_animation, // An array of phrases to rotate are created based on this separator. Change it if you wish to separate the phrases differently (e.g. So Simple | Very Doge | Much Wow | Such Cool). separator: "|", // The delay between the changing of each phrase in milliseconds. speed: parseInt( onepress_js_settings.hero_speed ), complete: function () { // Called after the entrance animation is executed. } }); }; text_rotator(); $document.on( 'header_view_changed', function(){ text_rotator(); } ); /** * Responsive Videos */ jQuery('.site-content').fitVids(); /** * Video lightbox */ if ($.fn.lightGallery ) { $(".videolightbox-popup").lightGallery({}); } // Counter Up $('.counter').counterUp({ delay: 10, time: 1000 }); /** * Center vertical align for navigation. */ if ( onepress_js_settings.onepress_vertical_align_menu == '1' ) { var header_height = jQuery('.site-header').height(); jQuery('.site-header .onepress-menu').css( 'line-height', header_height + "px" ); } /** * Section: Hero Full Screen Slideshow */ function hero_full_screen( no_trigger ){ if ( $( '.hero-slideshow-fullscreen').length > 0 ) { var wh = $window.height(); var top = getAdminBarHeight(); var $header = jQuery( '#masthead'); var is_transparent = $header.hasClass('is-t'); var headerH; if ( is_transparent ) { headerH = 0; } else { headerH = $header.height(); } headerH += top; jQuery('.hero-slideshow-fullscreen').css('height', ( wh - headerH + 1) + 'px'); if ( typeof no_trigger === "undefined" || ! no_trigger ) { $document.trigger( 'hero_ready' ); } } } $window.on('resize', function (){ hero_full_screen(); }); hero_full_screen(); $document.on( 'header_view_changed', function(){ hero_full_screen(); } ); $document.on( 'hero_ready', function(){ hero_full_screen( true ); } ); /** * Hero sliders */ var heroSliders = function(){ if( $( '#parallax-hero').length <= 0 ) { jQuery('.hero-slideshow-wrapper').each(function () { var hero = $(this); if (hero.hasClass('video-hero')) { return; } var images = hero.data('images') || false; if (typeof images == 'string') { images = jQuery.parseJSON(images); } if (images) { preload_images(images, function () { hero.backstretch(images, { fade: _to_number(onepress_js_settings.hero_fade), duration: _to_number(onepress_js_settings.hero_duration) }); // hero.addClass('loaded'); hero.removeClass('loading'); setTimeout(function () { hero.find('.slider-spinner').remove(); }, 600); }); } else { hero.addClass('loaded'); hero.removeClass('loading'); hero.find('.slider-spinner').remove(); } }); } }; heroSliders(); $document.on( 'header_view_changed', function(){ heroSliders(); } ); $('.section-parallax, .parallax-hero').bind('inview', function ( event, visible ) { if ( visible == true ) { } else { } }); var lastScrollTop = 0; // Parallax effect function parrallaxHeight() { $('.section-parallax ').each( function( ){ var $el = $( this ); $('.parallax-bg', $el ).height( '' ); var w = $el.width(); var h = $el.height(); if ( h <= 0 ) { h = 500; } h = h * 1.5; $('.parallax-bg', $el).height(h); } ); } function parallaxPosition( direction ){ var scrollTop = $( window ).scrollTop(); //var top = $( window ).scrollTop(); var wh = $( window).height(); var ww = $( window).width(); $('.section-parallax, .parallax-hero').each( function( ){ var $el = $( this ); var pl = $( '.parallax-bg', $el ); var w = $el.width(); var h = $el.height(); var img = $( 'img', pl ); if ( img.length ) { var imageNaturalWidth = img.prop('naturalWidth'); var imageNaturalHeight = img.prop('naturalHeight'); var containerHeight = h > 0 ? h : 500; var imgHeight = img.height(); var parallaxDist = imgHeight - containerHeight; var top = $el.offset().top; var windowHeight = window.innerHeight; var windowBottom = scrollTop + windowHeight; var percentScrolled = (windowBottom - top) / (containerHeight + windowHeight); var parallaxTop = parallaxDist * percentScrolled; var l; var max_width = imageNaturalWidth; if ( imageNaturalWidth > w ){ } else { max_width = ww; } if( max_width > ww*2 && imageNaturalHeight > containerHeight * 2) { max_width = max_width - ww; } l = (max_width - ww ) / 2; if ( l < 0 ) { l = 0; } img.css( { top: '-' + ( parallaxTop ) + 'px', left: '-' + ( l ) + 'px', //maxWidth: ww+'px' maxWidth: max_width+'px' }); } else { //var sh = $el.height(); var r = .3; if ( wh > w ) { r = .3; } else { r = .6; } $( '.parallax-bg', $el ).addClass( 'no-img' ); var is_inview = $el.data( 'inview' ); if ( is_inview ) { var offsetTop = $el.offset().top; var diff, bgTop; diff = scrollTop - offsetTop; bgTop = diff * r; $( '.parallax-bg', $el ) .css( 'background-position', '50% '+( bgTop )+'px' ); } } } ); } $(window).scroll(function(e){ var top = $( window ).scrollTop(); var direction = ''; if ( top > lastScrollTop ){ direction = 'down'; } else { direction = 'up'; } lastScrollTop = top ; parallaxPosition( ); }); parallaxPosition(); $(window).resize( function(){ parallaxPosition( ); } ); // Parallax hero $('.parallax-hero').each(function () { var hero = $(this); hero.addClass('loading'); var bg = true; if ( hero.find('img').length > 0) { bg = false; } $('.parallax-bg', hero).imagesLoaded({background: bg }, function () { hero.find('.hero-slideshow-wrapper').addClass('loaded'); hero.removeClass('loading'); setTimeout(function () { hero.find('.hero-slideshow-wrapper').find('.slider-spinner').remove(); }, 600); }).fail(function (instance) { hero.removeClass('loading'); hero.find('.hero-slideshow-wrapper').addClass('loaded'); hero.find('.hero-slideshow-wrapper').find('.slider-spinner').remove(); }); }); $('.section-parallax').each(function () { var hero = $(this); var bg = true; if ( hero.find('img').length > 0) { bg = false; } $('.parallax-bg', hero ).imagesLoaded({background: bg}, function () { }).fail(function (instance) { }); }); // Trigger when site load setTimeout( function(){ $(window).trigger('scroll'); }, 500 ); /** * Gallery */ function onepress_gallery_init( $context ){ // justified if ( $.fn.justifiedGallery ) { $( '.gallery-justified', $context).imagesLoaded( function(){ $( '.gallery-justified', $context).each( function(){ var margin = $( this).attr( 'data-spacing' ) || 20; var row_height = $( this).attr( 'data-row-height' ) || 120; margin = _to_number( margin ); row_height = _to_number( row_height ); $( this ).justifiedGallery({ rowHeight: row_height, margins: margin, selector: 'a, div:not(.spinner), .inner' }); } ); } ); } var is_rtl = onepress_js_settings.is_rtl; // Slider if ( $.fn.owlCarousel ) { $( '.gallery-slider', $context ).owlCarousel({ items: 1, itemsCustom: false, itemsDesktop: 1, itemsDesktopSmall: 1, itemsTablet: 1, itemsTabletSmall: false, itemsMobile: 1, singleItem: true, itemsScaleUp: false, slideSpeed : 200, paginationSpeed : 800, rewindSpeed : 1000, autoPlay : 4000, stopOnHover : true, nav : true, navText : ["", ""], autoHeight : true, rtl: ( is_rtl == 0 ) ? false : true, dots : false }); $('.gallery-carousel', $context).each( function(){ var n = $( this ).attr( 'data-col' ) || 5; n = _to_number( n ); if( n <= 0 ) { n = 5; } $( this ).owlCarousel({ items: n, responsive:{ 0:{ items: 2 }, 768:{ items: ( n > 2) ? 2 : n }, 979:{ items: ( n > 3) ? 3 : n }, 1199:{ items: n } }, rtl: ( is_rtl == 0 ) ? false : true, navSpeed : 800, autoplaySpeed : 4000, autoplayHoverPause : true, nav : true, navText : ["", ""], dots : false }); } ); } function isotope_init (){ if ( $.fn.isotope ) { $(".gallery-masonry", $context ).each(function () { var m = $(this); var gutter = m.attr('data-gutter') || 10; var columns = m.attr('data-col') || 5; gutter = _to_number(gutter); columns = _to_number(columns); var w = $(window).width(); if ( w <= 940 ) { columns = columns > 2 ? columns - 1 : columns; } if ( w <= 720 ) { columns = columns > 3 ? 3 : columns; } if ( w <= 576 ) { columns = columns > 2 ? 2 : columns; } //gutter = gutter / 2; // m.parent().css({'margin-left': -gutter, 'margin-right': -gutter}); m.find('.g-item').css({'width': ( 100 / columns ) + '%', 'float': 'left', 'padding': 0}); // m.find('.g-item .inner').css({'padding': gutter / 2}); m.isotope({ // options itemSelector: '.g-item', percentPosition: true, masonry: { columnWidth: '.inner' } }); }); } } $( ".gallery-masonry", $context ).imagesLoaded( function() { isotope_init(); }); $( window ).resize( function(){ isotope_init(); } ); if ( $.fn.lightGallery ) { $('.enable-lightbox', $context).lightGallery({ mode: 'lg-fade', selector: 'a', //cssEasing : 'cubic-bezier(0.25, 0, 0.25, 1)' }); } } onepress_gallery_init( $( '.gallery-content' ) ); if ( 'undefined' !== typeof wp && wp.customize && wp.customize.selectiveRefresh ) { wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function( placement ) { if ( placement.partial.id == 'section-gallery' ) { onepress_gallery_init( placement.container.find( '.gallery-content' ) ); // Trigger resize to make other sections work. $( window ).resize(); } } ); } });