/**
* Tropicana Theme Custom Functionality
*
*/
( function( $ ) {
var sliderParagraphMargin = parseFloat( tropicana.sliderParagraphMargin );
var sliderButtonMargin = parseFloat( tropicana.sliderButtonMargin );
var headerImageParagraphMargin = parseFloat( tropicana.headerImageParagraphMargin );
var headerImageButtonMargin = parseFloat( tropicana.headerImageButtonMargin );
var mobile_menu_breakpoint = parseInt( tropicana.mobile_menu_breakpoint );
var solidify_breakpoint = parseInt( tropicana.solidify_breakpoint );
var sliderTransitionSpeed = parseInt( tropicana.sliderTransitionSpeed );
var siteHeaderHeight = 0;
var $header = $( '.site-header' );
var $branding = $('.site-header .branding');
var $title = $( '.site-header .title' );
var $main_navigation;
var $main_navigation_selector;
if ( $( '.main-navigation' ).length ) {
$main_navigation = $( '.main-navigation' );
$main_navigation_selector = '.main-navigation';
} else if ( $( '.main-navigation-mega-menu' ).length ) {
$main_navigation = $( '.main-navigation-mega-menu' );
$main_navigation_selector = '.main-navigation-mega-menu';
}
//var $description = $( '.site-header .description' );
//var site_branding_padding_top = parseInt( tropicana.site_branding_padding_top );
//var site_branding_padding_bottom = parseInt( tropicana.site_branding_padding_bottom );
var solidify = false;
$( document ).ready( function() {
var scrollbar_width = tropicana_get_scrollbar_width();
$('body:not(.mobile-device) .slider-container.default .slider .slide').css( 'width', 'calc(100vw - ' + scrollbar_width + 'px)' ).css( 'max-width', 'calc(100vw - ' + scrollbar_width + 'px)' );
tropicana_image_has_loaded();
$('.hiddenUntilLoadedImageContainer img, img.hideUntilLoaded').one("load", function() {
}).each(function() {
if (this.complete) {
$(this).trigger( 'load' );
}
});
// Stop the WooCommerce product review form submitting when fields are empty
$('#commentform').removeAttr('novalidate');
// Themify Product Filter
$( document ).on( 'wpf_ajax_success', function() {
tropicana_image_has_loaded();
} );
// Jetpack infinite scroll
$( document.body ).on( 'post-load', function () {
tropicana_image_has_loaded();
} );
// Add button to sub-menu parent to show nested pages on the mobile menu
$( $main_navigation_selector + ' li.page_item_has_children, ' + $main_navigation_selector + ' li.menu-item-has-children' ).prepend( '' );
// Add a hover class to navigation menu items when focused
$( $main_navigation_selector + ' a' ).on( 'focus blur', function() {
$( this ).parents( 'li' ).toggleClass( 'hover' );
});
// Sub-menu toggle button
$( $main_navigation_selector + ' a[href="#"], .menu-dropdown-btn' ).bind( 'click', function(e) {
e.preventDefault();
$(this).parent().toggleClass( 'open-page-item' );
$(this).parent().find('.otb-fa:first').toggleClass('otb-fa-angle-right').toggleClass('otb-fa-angle-down');
});
var focused_mobile_menu_item;
// Remove all hover classes from menu items when anything on the page is clicked
$( document ).bind( 'click', function(e) {
if ( e.target != focused_mobile_menu_item ) {
$( 'body.mobile-device ' + $main_navigation_selector + ' li.menu-item-has-children' ).removeClass('hover');
}
focused_mobile_menu_item = null;
});
$( 'body.mobile-device ' + $main_navigation_selector + ' li.menu-item-has-children > a' ).bind( 'click', function(e) {
e.preventDefault();
menu_item = $(this).parent();
// If a menu item with a submenu is clicked that doesn't have a # for a URL show the submenu
if ( menu_item.find('a').attr('href') != '#' && !menu_item.hasClass('hover') ) {
focused_mobile_menu_item = e.target;
menu_item.addClass('hover');
// If the submenu is already displaying then go to it's URL
} else if ( menu_item.hasClass('hover') ) {
window.location.href = menu_item.find('a').attr('href');
}
});
// Set the vertical position of the side-aligned social links - a third of the users screen height
$('.side-aligned-social-links').css('top', function() {
return screen.height / 3;
});
tropicana_toggle_header_element_opacity();
tropicana_calculate_site_header_height();
tropicana_set_slider_height();
tropicana_set_slider_elements_spacing();
tropicana_set_header_image_elements_spacing();
// Wrap the SiteOrigin Layout Slider widget navigation controls in a container div for styling purposes
$('.sow-slide-nav.sow-slide-nav-next, .sow-slide-nav.sow-slide-nav-prev').wrapAll('
ul > li > a, ' + $main_navigation_selector + '.rollover-underline ul.menu > li > a, ' + $main_navigation_selector + '.rollover-overline .menu > ul > li > a, ' + $main_navigation_selector + '.rollover-overline ul.menu > li > a').append('');
// Once the header image has loaded remove the loading class and set the height to auto
if ( $(".header-image img").length > 0 ) {
var img = $('
');
img.attr("src", $(".header-image img").attr("src") );
img.on('load', function() {
$('.header-image .overlay .opacity.per-line h1').wrapInner('');
$('.header-image .overlay .opacity.per-line h2').wrapInner('');
$('.header-image .overlay .opacity.per-line h3').wrapInner('');
$('.header-image .overlay .opacity.per-line p:not(.no-background)').wrapInner('');
initFittext();
initFitbutton();
tropicana_pad_text_overlay_container();
$('.site-header').removeClass('forced-solid');
$('.header-image').removeClass('loading');
$('.header-image').css('height', 'auto');
});
}
// Mobile menu toggle button
$( '.header-menu-button' ).on( 'click', function(e) {
$( 'body' ).toggleClass( 'show-main-menu' );
$( $main_navigation_selector + ' #main-menu' ).addClass( 'animate' );
if ( $( 'body' ).hasClass( 'show-main-menu' ) ) {
$( this ).attr( 'aria-expanded', 'true' );
} else {
$( this ).attr( 'aria-expanded', 'false' );
}
});
$( '.main-menu-close' ).on( 'click', function(e) {
$( '.header-menu-button' ).click();
$( $main_navigation_selector + ' #main-menu' ).addClass( 'animate' );
});
$main_navigation.on( 'transitionend webkittransitionend', function() {
$( $main_navigation_selector + ' #main-menu' ).removeClass( 'animate' );
});
// Show / Hide navigation search slidedown
$(".search-button").on( 'click', function(e) {
e.preventDefault();
if ( !$(".search-slidedown").hasClass('open') ) {
$(".search-slidedown").addClass('open');
$(".search-slidedown").css('visibility', 'visible');
$(".search-slidedown").animate( { opacity: 1 }, 150 );
$(".search-slidedown .search-field").focus();
} else {
$(".search-slidedown").removeClass('open');
$(".search-slidedown").animate( { opacity: 0 }, 150, function() {
$(".search-slidedown").css('visibility', 'hidden');
});
}
});
// Show border on focus of sidebar search widget - can't be achieved with CSS alone due to the required HTML structure
$( '.widget-area .widget_search .search-field' ).on( 'focus', function() {
$( '.widget-area .widget_search' ).toggleClass('focused');
}).on( 'blur', function() {
$( '.widget-area .widget_search' ).toggleClass('focused');
});
// Show border on focus of sidebar product search widget - can't be achieved with CSS alone due to the required HTML structure
$( '.widget-area .widget_product_search .search-field' ).on( 'focus', function() {
$( '.widget-area .widget_product_search' ).toggleClass('focused');
}).on( 'blur', function() {
$( '.widget-area .widget_product_search' ).toggleClass('focused');
});
// Custom click functionality required because of replacing the search widget button with a link
$(".search-submit").bind('click', function(event) {
var form = $(this).parents("form");
// Don't search if no keywords have been entered
if ( form.find(".search-field").val() == "") {
event.preventDefault();
} else {
form.submit();
}
});
});
$(window).resize(function () {
clearTimeout( window.resizedFinished );
// Use setTimeout to stop the code from running before the window has finished resizing
window.resizedFinished = setTimeout(function() {
initFittext();
initFitbutton();
tropicana_scale_slider_controls();
tropicana_set_slider_controls_visibility();
tropicana_toggle_header_element_opacity();
//tropicana_calculate_site_header_height();
tropicana_pad_text_overlay_container();
tropicana_set_search_block_position();
tropicana_set_slider_elements_spacing();
tropicana_set_header_image_elements_spacing();
tropicana_constrain_text_overlay_opacity();
//tropicana_set_left_right_opacity_heights();
}, 0);
}).resize();
$(window).on('load', function() {
tropicana_home_slider();
tropicana_set_search_block_position();
});
$(window).scroll(function(e) {
animateInitialPageScroll = false;
var scrollTop = parseInt( $(window).scrollTop() ) + 28;
});
function tropicana_scale_slider_controls() {
// Slider control buttons
var sliderControlButtons = $('.slider-container.default .prev, .slider-container.default .next');
var maxsliderControlButtonSize = 49;
var minsliderControlButtonSize = 26;
// Slider control arrows
var sliderControlArrows = $('.slider-container.default .prev .otb-fa, .slider-container.default .next .otb-fa, .slider-container.default .prev .fa, .slider-container.default .next .fa');
var maxsliderControlArrowSize;
var sliderControlArrowLineHeight;
if ( sliderControlButtons.hasClass('large') ) {
var maxsliderControlArrowSize = 75;
var minsliderControlArrowSize = 40;
var maxsliderControlArrowLineHeight = 75;
var minsliderControlArrowLineHeight = 40;
var compressor = 1;
} else if ( sliderControlButtons.hasClass('round-solid') ) {
var maxsliderControlArrowSize = 55;
var minsliderControlArrowSize = 30;
var maxsliderControlArrowLineHeight = 55;
var minsliderControlArrowLineHeight = 30;
var compressor = 2;
} else {
var maxsliderControlArrowSize = 37;
var minsliderControlArrowSize = 26;
var maxsliderControlArrowLineHeight = 45;
var minsliderControlArrowLineHeight = 18;
var compressor = 2.5;
}
var sliderTextOverlay = $('.slider-container.default .slider .slide .overlay-container .overlay');
var sliderControlButtonHeight = Math.max(Math.min( sliderTextOverlay.width() / (compressor*10), maxsliderControlButtonSize), minsliderControlButtonSize);
sliderControlButtons.css({
'height': sliderControlButtonHeight,
'width': sliderControlButtonHeight
});
if ( sliderControlButtons.hasClass('square') ) {
sliderControlArrowLineHeight = sliderControlButtonHeight * (91.8367346938776 / 100);
} else if ( sliderControlButtons.hasClass('square-solid') ) {
sliderControlArrowLineHeight = sliderControlButtonHeight * (91.8367346938776 / 100);
} else if ( sliderControlButtons.hasClass('round') ) {
sliderControlArrowLineHeight = sliderControlButtonHeight * (87 / 100);
} else if ( sliderControlButtons.hasClass('large') ) {
sliderControlArrowLineHeight = sliderControlButtonHeight * (94 / 100);
}
sliderControlArrows.css({
'font-size': Math.max(Math.min( sliderTextOverlay.width() / (compressor*10), maxsliderControlArrowSize), minsliderControlArrowSize),
'line-height': sliderControlArrowLineHeight + 'px'
});
}
function tropicana_constrain_text_overlay_opacity() {
var sliderTextOverlay = $('.slider-container.default .slider .slide .overlay-container .overlay');
var sliderTextOverlayOpacity = $('.slider-container.default .slider .slide .overlay-container .overlay .opacity');
var headerImageTextOverlay = $('.header-image .overlay-container .overlay');
var headerImageTextOverlayOpacity = $('.header-image .overlay-container .overlay .opacity');
if ( !$('.slider-container.default').hasClass('loading') && sliderTextOverlayOpacity.length > 0 && sliderTextOverlayOpacity.outerHeight() >= sliderTextOverlay.height() ) {
sliderTextOverlayOpacity.addClass('constrained');
} else {
sliderTextOverlayOpacity.removeClass('constrained');
}
if ( !$('.header-image').hasClass('loading') && headerImageTextOverlayOpacity.length > 0 && headerImageTextOverlayOpacity.outerHeight() >= headerImageTextOverlay.height() ) {
headerImageTextOverlayOpacity.addClass('constrained');
} else {
headerImageTextOverlayOpacity.removeClass('constrained');
}
}
function tropicana_set_slider_controls_visibility() {
var sliderContainer = $('.slider-container.default');
var controlsContainer = $( '.slider-container.default .controls-container' );
var textOverlayOpacity = $( '.slider-container.default .slider .slide .overlay-container .overlay .opacity' );
if ( !sliderContainer.hasClass('loading') && controlsContainer.length > 0 && textOverlayOpacity.length > 0 && textOverlayOpacity.css('display') != 'none' ) {
var prevButton = $( '.slider-container.default .controls-container .controls .prev' );
var nextButton = $( '.slider-container.default .controls-container .controls .next' );
var prevButtonLeftOffset = 0;
var nextButtonLeftOffset = 0;
var textOverlayOpacityLeftOffset = textOverlayOpacity.offset().left - sliderContainer.offset().left;
var textOverlayOpacityRightOffset = controlsContainer.width() - ( textOverlayOpacityLeftOffset + textOverlayOpacity.outerWidth() );
if ( prevButton.css('left').indexOf('px') > -1 ) {
prevButtonLeftOffset = parseFloat( prevButton.css('left').replace('px', '') );
} else if ( prevButton.css('left').indexOf('%') > -1 ) {
prevButtonLeftOffset = ( parseFloat( prevButton.css('left').replace('%', '') ) * controlsContainer.width() ) / 100;
}
if ( nextButton.css('right').indexOf('px') > -1 ) {
nextButtonLeftOffset = parseFloat( nextButton.css('left').replace('px', '') );
} else if ( nextButton.css('right').indexOf('%') > -1 ) {
nextButtonLeftOffset = ( parseFloat( nextButton.css('left').replace('%', '') ) * controlsContainer.width() ) / 100;
}
if (
textOverlayOpacityLeftOffset - ( prevButtonLeftOffset + prevButton.outerWidth() ) <= 10 ||
nextButtonLeftOffset - textOverlayOpacityRightOffset <= 10
) {
controlsContainer.css('display', 'none');
} else {
controlsContainer.css('display', 'block');
}
}
}
// Initalise OTBFitText
function initFittext() {
$('.slider-container.default .slider .slide .overlay-container .overlay .opacity h1, .slider-container.default .slider .slide .overlay-container .overlay .opacity h2, .slider-container.default .slider .slide .overlay-container .overlay .opacity h3').OTBFitText(2, { minFontSize: '17px', maxFontSize: '48px' });
$('.slider-container.default .slider .slide .overlay-container .overlay .opacity').OTBFitText(3, { minFontSize: '13px', maxFontSize: '24px' });
$('.header-image .overlay-container .overlay .opacity h1, .header-image .overlay-container .overlay .opacity h2, .header-image .overlay-container .overlay .opacity h3').OTBFitText(2, { minFontSize: '17px', maxFontSize: '48px' });
$('.header-image .overlay-container .overlay .opacity').OTBFitText(2.5, { minFontSize: '13px', maxFontSize: '24px' });
}
// Initalise fitbutton
function initFitbutton() {
$('.slider-container.default .slider .slide .overlay-container .overlay .opacity').fitButton(2.5, { minFontSize: '10px', maxFontSize: '15px', minHorizontalPadding: '10px', maxHorizontalPadding: '29px', minVerticalPadding: '12px', maxVerticalPadding: '20px' });
$('.header-image .overlay-container .overlay .opacity').fitButton(2.5, { minFontSize: '10px', maxFontSize: '15px', minHorizontalPadding: '10px', maxHorizontalPadding: '29px', minVerticalPadding: '12px', maxVerticalPadding: '20px' });
}
function tropicana_set_search_block_position() {
if ( $('.search-button').length > 0 ) {
$('.search-slidedown .search-block').css('left', ( $('.search-button').position().left + parseInt( $('.search-button').css('padding-left').replace('px', '') ) ) - ( $('.search-slidedown .search-block').width() - $('.search-button').width() ) );
}
}
function tropicana_calculate_site_header_height() {
// This might need to be looked at
siteHeaderHeight = $('.site-top-bar').outerHeight(true) + $('.site-logo-area').outerHeight(true) + $main_navigation.outerHeight(true);
}
function tropicana_toggle_header_element_opacity() {
if ( !($('body').hasClass('mobile-device') && $('.site-header').hasClass('mobile-sticky-disabled')) ) {
if ( tropicana_get_viewport().width <= solidify_breakpoint ) {
if ( $('.site-header').hasClass('transparent') ) {
$('.site-header').data('opacity', 'transparent');
$('.site-header').removeClass('transparent');
} else if ( $('.site-header').hasClass('translucent') ) {
$('.site-header').data('opacity', 'translucent');
$('.site-header').removeClass('translucent');
}
if ( $('.site-header').hasClass('floated') ) {
$('.site-header').addClass('mustBeFloated').removeClass('floated');
}
if ( ( $('.site-header').data('opacity') == 'transparent' || $('.site-header').data('opacity') == 'translucent' ) && solidify ) {
$('.site-header').addClass('fauxSolid');
}
if ( $main_navigation.hasClass('transparent') ) {
$main_navigation.data('opacity', 'transparent');
$main_navigation.removeClass('transparent');
} else if ( $main_navigation.hasClass('translucent') ) {
$main_navigation.data('opacity', 'translucent');
$main_navigation.removeClass('translucent');
}
if ( $main_navigation.hasClass('floated') ) {
$main_navigation.addClass('mustBeFloated').removeClass('floated');
}
if ( ( $main_navigation.data('opacity') == 'transparent' || $main_navigation.data('opacity') == 'translucent' ) && solidify ) {
$main_navigation.addClass('fauxSolid');
}
} else {
if ( !$('.site-header').hasClass('fauxSolid') && !$('.site-header').hasClass('floated') ) {
$('.site-header').addClass( $('.site-header').data('opacity' ) );
}
if ( $('.site-header').hasClass('mustBeFloated') ) {
$('.site-header').addClass( 'floated' );
$('.site-header').removeClass('fauxSolid mustBeFloated');
}
if ( !$main_navigation.hasClass('fauxSolid') && !$main_navigation.hasClass('floated') ) {
$main_navigation.addClass( $main_navigation.data('opacity' ) );
}
if ( $main_navigation.hasClass('mustBeFloated') ) {
$main_navigation.addClass( 'floated' );
$main_navigation.removeClass('fauxSolid mustBeFloated');
}
}
}
}
function tropicana_set_slider_height() {
// Set the height of the slider to the height of the first slide's image
var firstSlide = $(".slider-container.default .slider .slide:eq(0)");
var headerImage = $(".header-image img");
if ( firstSlide.length > 0 ) {
var firstSlideImage = firstSlide.find('img').first();
if ( firstSlideImage.length > 0) {
if ( firstSlideImage.attr('height') > 0 ) {
// The height needs to be dynamically calculated with responsive in mind ie. the height of the image will obviously grow
var firstSlideImageWidth = firstSlideImage.attr('width');
var firstSlideImageHeight = firstSlideImage.attr('height');
var sliderWidth = $('.slider-container').width();
var widthPercentage;
var widthRatio;
widthRatio = sliderWidth / firstSlideImageWidth;
$('.slider-container.loading').css('height', Math.round( widthRatio * firstSlideImageHeight ) + parseInt( $('.slider-container').css('paddingTop').replace('px', '') ) );
}
}
} else if ( headerImage.length > 0 ) {
if ( headerImage.attr('height') > 0 ) {
// The height needs to be dynamically calculated with responsive in mind ie. the height of the image will obviously grow
var headerImageWidth = headerImage.attr('width');
var headerImageHeight = headerImage.attr('height');
var headerImageContainerWidth = $('.header-image').width();
var widthPercentage;
var widthRatio;
widthRatio = headerImageContainerWidth / headerImageWidth;
$('.header-image.loading').css('height', Math.round( widthRatio * headerImageHeight ) + parseInt( $('.header-image').css('paddingTop').replace('px', '') ) );
}
}
}
function tropicana_set_slider_elements_spacing() {
// Remove the bottom border of a button nested inside a paragraph if it's the last element on a slide
$('.slider-container.default .slider .slide .overlay .opacity p:last-child > a.button, .slider-container.default .slider .slide .overlay .opacity p:last-child > button').addClass('no-bottom-margin');
$('.slider-container.default .slider .slide .overlay .opacity.per-line p:last-child > a.button, .slider-container.default .slider .slide .overlay .opacity.per-line p:last-child > button').parent().addClass('no-background');
if ( tropicana_get_viewport().width <= 960 ) {
$('.slider-container.default .opacity a.button:hidden, .slider-container.default .opacity button:hidden').parent('p').css('display', 'none');
$('.slider-container.default .slide').each( function() {
$(this).find('.opacity *:visible:first').css('margin-top', 0);
$(this).find('.opacity *:visible:last').css('margin-bottom', 0);
});
} else {
$('.slider-container.default .opacity p').css({ 'margin-top' : sliderParagraphMargin + 'em', 'margin-bottom' : sliderParagraphMargin + 'em' });
$('.slider-container.default .opacity a.button, .slider-container.default .opacity button').css({ 'margin-top' : sliderButtonMargin + 'em', 'margin-bottom' : sliderButtonMargin + 'em' });
$('.slider-container.default .opacity a.button:hidden, .slider-container.default .opacity button:hidden').parent('p').css('display', 'block');
}
}
function tropicana_set_header_image_elements_spacing() {
// Remove the bottom border of a button nested inside a paragraph if it's the last element on the header image
$('.header-image .overlay .opacity p:last-child > a.button, .header-image .overlay .opacity p:last-child > button').addClass('no-bottom-margin');
$('.header-image .overlay .opacity.per-line p:last-child > a.button, .header-image .overlay .opacity.per-line p:last-child > button').parent().addClass('no-background');
if ( tropicana_get_viewport().width <= 960 ) {
$('.header-image .opacity a.button:hidden, .header-image .opacity button:hidden').parent('p').css('display', 'none');
$('.header-image').find('.opacity *:visible:first').css('margin-top', 0);
$('.header-image').find('.opacity *:visible:last').css('margin-bottom', 0);
} else {
$('.header-image .opacity p').css({ 'margin-top' : headerImageParagraphMargin + 'em', 'margin-bottom' : headerImageParagraphMargin + 'em' });
$('.header-image .opacity a.button, .header-image .opacity button').css({ 'margin-top' : headerImageButtonMargin + 'em', 'margin-bottom' : headerImageButtonMargin + 'em' });
$('.header-image .opacity a.button:hidden, .header-image .opacity button:hidden').parent('p').css('display', 'block');
}
}
function tropicana_pad_text_overlay_container() {
var textOverlayOffset;
var sliderControlsOffset = 0;
var main_navigation_parent_item;
if ( $( $main_navigation_selector + ' .menu > li').length > 0 ) {
main_navigation_parent_item = $( $main_navigation_selector + ' .menu > li');
} else {
main_navigation_parent_item = $( $main_navigation_selector + ' .menu > ul > li');
}
if ( $('.site-header').hasClass('translucent') || $('.site-header').hasClass('transparent') || $('.site-header').hasClass('floated') || $('.site-header').hasClass('mustBeFloated') ) {
textOverlayOffset = $('.site-header .site-logo-area').outerHeight(true);
sliderControlsOffset = $('.site-header .site-logo-area').outerHeight(true);
// Only include the height of the navigation menu if it's positioned below the site logo container
// NB: THIS NEEDS TO BE RETHOUGHT BECAUSE IF THE LOGO COMES DOWN LOWER THAN THE NAV THE PADDING SHOULD BE BASED ON THE LOGO
// ALSO IN THE EVENT THAT THE NAVIGATION MENU IS POSITIONED BELOW THE SITE LOGO AND IS TRANSPARENT IT SHOULD NOT COUNT THE ENTIRE NAVGATION HEIGHT
//if ( $('.site-header.left-aligned ' + $main_navigation_selector + '.inline').length > 0 ) {
if ( !$main_navigation.hasClass('below-header-media') ) {
// Reduce the offset if the rollover style of the navigation menu is an underline and the navigation menu is inline or transparent
if ( ( $('.site-header.transparent ' + $main_navigation_selector + '.inline').length > 0 || $('.site-header.floated ' + $main_navigation_selector + '.inline').length > 0 || $( $main_navigation_selector + '.transparent').length > 0 ) && ( $( $main_navigation_selector + '.rollover-underline').length > 0 || $( $main_navigation_selector + '.rollover-overline').length > 0 ) ) {
if ( !$main_navigation.hasClass('inline') ) {
textOverlayOffset = textOverlayOffset + parseInt( $main_navigation.height() );
sliderControlsOffset = sliderControlsOffset + parseInt( $main_navigation.height() );
}
textOverlayOffset = textOverlayOffset - main_navigation_parent_item.css('paddingBottom').replace('px', '');
sliderControlsOffset = sliderControlsOffset - main_navigation_parent_item.css('paddingBottom').replace('px', '');
if ( $( $main_navigation_selector + ' .menu .indicator' ).length > 0 ) {
textOverlayOffset -= ( parseInt( $( $main_navigation_selector + ' .menu .indicator' ).css('marginBottom').replace('px', '') ) ) ;
sliderControlsOffset += $( $main_navigation_selector + ' .menu .indicator' ).height();
}
} else {
textOverlayOffset += $main_navigation.outerHeight(true);
sliderControlsOffset += $main_navigation.outerHeight(true);
}
}
} else if ( ( $( $main_navigation_selector + '.translucent').length > 0 || $( $main_navigation_selector + '.transparent').length > 0 ) && !$main_navigation.hasClass('below-header-media') ) {
textOverlayOffset = $main_navigation.outerHeight(true);
sliderControlsOffset = $main_navigation.outerHeight(true);
// Reduce the offset if the rollover style of the navigation menu is an underline and the navigation menu is inline or transparent
if ( $( $main_navigation_selector + '.transparent').length > 0 && ( $( $main_navigation_selector + '.rollover-underline').length > 0 || $( $main_navigation_selector + '.rollover-overline').length > 0 ) ) {
textOverlayOffset = textOverlayOffset - main_navigation_parent_item.css('paddingBottom').replace('px', '');
sliderControlsOffset = sliderControlsOffset - main_navigation_parent_item.css('paddingBottom').replace('px', '');
if ( $( $main_navigation_selector + ' .menu .indicator' ).length > 0 ) {
textOverlayOffset -= ( parseInt( $( $main_navigation_selector + ' .menu .indicator' ).css('marginBottom').replace('px', '') ) ) ;
sliderControlsOffset += $( $main_navigation_selector + ' .menu .indicator' ).height();
textOverlayOffset -= ( parseInt( $( $main_navigation_selector + ' .menu .indicator' ).css('marginBottom').replace('px', '') ) ) ;
sliderControlsOffset += $( $main_navigation_selector + ' .menu .indicator' ).height();
}
}
}
if ( textOverlayOffset ) {
// If the default slider is being used and there's a text overlay then set the top padding
if ( $('.slider-container.default .slider .slide .overlay-container').length > 0 ) {
$('.slider-container .slider .slide .overlay-container').css('paddingTop', textOverlayOffset);
$('.slider-container .controls-container').css('marginTop', sliderControlsOffset);
// If there's a header image text overlay then set the top padding
} else if ( $('.header-image .overlay-container').length > 0 ) {
// You need to include the height of the top bar as the overlay container has an absolute position and doesn't obey the padding set in tropicana_set_top_bar_offset
$('.header-image .overlay-container').css('paddingTop', textOverlayOffset);
}
}
}
function tropicana_get_viewport() {
var e = window;
var a = 'inner';
if ( !('innerWidth' in window ) ) {
a = 'client';
e = document.documentElement || document.body;
}
return {
width: e[ a + 'Width' ],
height: e[ a + 'Height' ]
};
}
function tropicana_get_scrollbar_width() {
// Creating invisible container
const outer = document.createElement('div');
outer.style.visibility = 'hidden';
outer.style.overflow = 'scroll'; // forcing scrollbar to appear
outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps
document.body.appendChild(outer);
// Creating inner element and placing it in the container
const inner = document.createElement('div');
outer.appendChild(inner);
// Calculating difference between container's full width and the child width
const scrollbarWidth = (outer.offsetWidth - inner.offsetWidth);
// Removing temporary elements from the DOM
outer.parentNode.removeChild(outer);
return scrollbarWidth;
}
function tropicana_image_has_loaded() {
var container;
$('.hiddenUntilLoadedImageContainer img').on('load',function(){
container = $(this).parents('.hiddenUntilLoadedImageContainer');
container.removeClass('loading');
(function(container){
setTimeout(function() {
container.addClass('transition');
}, 50);
})(container);
});
$('img.hideUntilLoaded').on('load', function(){
container = $(this).parents('.featured-image-container');
container.removeClass('loading');
(function(container){
setTimeout(function() {
container.addClass('transition');
}, 50);
})(container);
});
}
function tropicana_home_slider() {
if ( $('.slider').length ) {
$(".slider").carouFredSel({
responsive: true,
circular: true,
infinite: false,
width: 1200,
height: 'variable',
items: {
visible: 1,
width: 1200,
height: 'variable'
},
onCreate: function(items) {
$('.slider-container.default .slider .slide .overlay-container .overlay .opacity.per-line h1').wrapInner('');
$('.slider-container.default .slider .slide .overlay-container .overlay .opacity.per-line h2').wrapInner('');
$('.slider-container.default .slider .slide .overlay-container .overlay .opacity.per-line h3').wrapInner('');
$('.slider-container.default .slider .slide .overlay-container .overlay .opacity.per-line p:not(.no-background)').wrapInner('');
initFittext();
initFitbutton();
tropicana_pad_text_overlay_container();
$('.site-header').removeClass('forced-solid');
$('.slider-container').css('height', 'auto');
$('.slider-container').removeClass('loading');
tropicana_set_slider_controls_visibility();
tropicana_constrain_text_overlay_opacity();
},
scroll: {
fx: 'uncover-fade',
duration: sliderTransitionSpeed
},
auto: false,
pagination: '.slider-container.default .pagination',
prev: '.slider-container.default .prev',
next: '.slider-container.default .next',
swipe: {
onTouch: true
}
});
}
}
} )( jQuery );