HEX
Server: Apache
System: Linux webm005.cluster121.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: adventp (418412)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/adventp/www/wp-content/themes/brooklyn/js/ut-init.js
/* <![CDATA[ */
(function($){

    "use strict";

    $.fn.disableScroll = function() {

        window.oldScrollPos = $(window).scrollTop();

        $(window).on('scroll.scrolldisabler',function ( event ) {

            $(window).scrollTop( window.oldScrollPos );
            event.preventDefault();

        });
    };

    $.fn.enableScroll = function() {

        $(window).off('scroll.scrolldisabler');

    };

    $.fn.supposition = function(){

        var $w = $(window), /*do this once instead of every onBeforeShow call*/
            _offset = function(dir) {
                return window[dir === 'y' ? 'pageYOffset' : 'pageXOffset'] || document.documentElement && document.documentElement[dir==='y' ? 'scrollTop' : 'scrollLeft'] || document.body[dir==='y' ? 'scrollTop' : 'scrollLeft'];
            },
            onInit = function(){
                /* I haven't touched this bit - needs work as there are still z-index issues */
                var $topNav = $('li',this);
                var cZ=parseInt($topNav.css('z-index')) + $topNav.length;
                $topNav.each(function() {
                    $(this).css({zIndex:--cZ});
                });
            },
            onHide = function(){

                this.css({marginTop:'',marginLeft:''});
                // this.css({marginTop:''});

            },
            onBeforeShow = function(){

                this.each(function(){

                    var $u = $(this);

                    $u.css('display','block');

                    var menuWidth = $u.width(),
                        parentWidth = $u.parents('ul').width(),
                        totalRight = $w.width() + _offset('x'),
                        menuRight = $u.offset().left + menuWidth;

                    if( menuRight > totalRight ) {

                        $u.css('margin-left', ( $u.parents('ul').length === 1 ? totalRight - menuRight : -(menuWidth + parentWidth) ) + 'px');

                    }

                    var windowHeight = $w.height(),
                        offsetTop = $u.offset().top,
                        menuHeight = $u.height(),
                        baseline = windowHeight + _offset('y');

                    var expandUp = (offsetTop + menuHeight > baseline);

                    if (expandUp) {

                        $u.css('margin-top',baseline - (menuHeight + offsetTop));

                    }

                    // $u.css('display','none');

                });

            };

        return this.each(function() {
            var $this = $(this),
                o = $this.data('sf-options'); /* get this menu's options */

            /* if callbacks already set, store them */
            var _onInit = o.onInit,
                _onBeforeShow = o.onBeforeShow,
                _onHide = o.onHide;

            $.extend($this.data('sf-options'),{
                onInit: function() {
                    onInit.call(this); /* fire our Supposition callback */
                    _onInit.call(this); /* fire stored callbacks */
                },
                onBeforeShow: function() {
                    onBeforeShow.call(this); /* fire our Supposition callback */
                    _onBeforeShow.call(this); /* fire stored callbacks */
                },
                onHide: function() {
                    onHide.call(this); /* fire our Supposition callback */
                    _onHide.call(this); /* fire stored callbacks */
                }
            });
        });
    };

    $.fn.utvmenu = function(option) {

        var obj,
            item;

        var options = $.extend({
                speed: 200,
                autostart: true,
                autohide: 1
            },
            option);

        obj = $(this);

        item = obj.find("ul").parent("li").children("a");
        item.attr("data-option", "off");

        item.unbind('click').on("click", function() {

            var a = $(this);

            if( options.autohide ) {

                a.parent().parent().find("a[data-option='on']").parent("li").children("ul").slideUp(options.speed / 1.2,
                    function() {
                        $(this).parent("li").children("a").attr("data-option", "off");
                    }
                );

            }

            if (a.attr("data-option") === "off") {

                a.parent("li").children("ul").slideDown(options.speed,
                    function() {
                        a.attr("data-option", "on");
                    }
                );

            }

            if (a.attr("data-option") === "on") {
                a.attr("data-option", "off");
                a.parent("li").children("ul").slideUp(options.speed);
            }
        });
        if (options.autostart) {
            obj.find("a").each(function() {

                $(this).parent("li").parent("ul").slideDown(options.speed,
                    function() {
                        $(this).parent("li").children("a").attr("data-option", "on");
                    });
            });
        }

    };

    /* HongKong Parallax v1.2.0 modified by UnitedThemes */

    /**
     * Settings for the plugin
     * @type {Object}
     */
    var settings = {};

    /**
     * All elements
     */
    var $ELEMENTS = void 0;

    /**
     * General variables
     */
    var scrollPosition = 0;
    var ticking = false;
    var generalOffset = 0;


    // calculate the viewport size
    var winsize;
    var calcWinsize = function() { winsize = { width: window.innerWidth, height: window.innerHeight } };

    calcWinsize();
    window.addEventListener('resize', calcWinsize);

    const MathUtils = {
        // map number x from range [a, b] to [c, d]
        map: function(x, a, b, c, d) { return (x - a) * (d - c) / (b - a) + c },
        // linear interpolation
        lerp: function(a, b, n) { return (1 - n) * a + n * b },
        // Random float
        getRandomFloat: function(min, max) { return (Math.random() * (max - min) + min).toFixed(2) }
    };


    /**
     * Get the factor attribute for each and initial transforms
     * @return {void}
     */
    var _setupElements = function _setupElements() {
        for (var i = 0; i < $ELEMENTS.length; i++) {
            _setupElement($ELEMENTS[i]);
        }
    };

    /**
     * Setup each element
     * @param  {Node} element Element which should be used
     * @return {void}
     */
    var _setupElement = function _setupElement(element) {

        var $element = $(element);
        var factor = element.getAttribute('data-parallax-factor');
        var transformValues = void 0;
        var currentTransform = $element.css('transform');

        if( factor !== '' ) {

            factor = parseFloat(factor);

        } else {

            factor = settings.factor || 10;

        }

        element.factor = factor;

        element.rect = {
            top: $element.offset().top,
            left: $element.offset().left,
            width: $element.width(),
            height: $element.height()
        };
        element.initialOffset = element.rect.top;

        if (currentTransform !== 'none') {
            transformValues = _getValuesFromTransform(currentTransform);
        }

        element.transforms = transformValues;
    };

    /**
     * Check if an element is in the viewport
     * @param  {Object}  $element   Node-like jQuery element to check if in viewport
     * @param  {Number}  transformY Add this offset
     * @return {Boolean}            true if element is in the viewport
     */
    window._isElementInViewport = function _isElementInViewport($element) {

        var $window = $(window);
        var window_top = $window.scrollTop();
        var offset = $element.offset();
        var top = offset.top;

        if (top + $element.height() >= window_top && top - ($element.data('appear-top-offset') || 0) <= window_top + $window.height()) {

            return true;

        } else {

            return false;

        }

    };

    /**
     * Get the current css transform of a matrix
     * @param  {Array}  matrix Current matrix of CSS transforms
     * @return {Object}        transforms in CSS speak
     */
    var _getValuesFromTransform = function _getValuesFromTransform(matrix) {

        var values = matrix.split('(')[1];

        values = values.split(')')[0];
        values = values.split(',');

        var angle = Math.atan2(values[1], values[0]);
        var denom = Math.pow(values[0], 2) + Math.pow(values[1], 2);
        var scaleX = Math.sqrt(denom);
        var scaleY = (values[0] * values[3] - values[2] * values[1]) / scaleX;
        var skewX = Math.atan2(values[0] * values[2] + values[1] * values[3], denom);

        return {
            rotate: angle / (Math.PI / 180),
            scaleX: scaleX, // scaleX factor
            scaleY: scaleY, // scaleY factor
            skewX: skewX / (Math.PI / 180), // skewX angle degrees
            skewY: 0, // skewY angle degrees
            translateX: values[4], // translation point  x
            translateY: values[5] // translation point  y
        };
    };

    /**
     * Get the string which should be applied to the element's transform
     * @param  {Object} transforms Transforms which should be added
     * @param  {String} positionX  Add this offset horizontally
     * @param  {Number} positionY  Add this offset vertically
     * @return {String}            Transform string for element
     */
    var _getFullTransform = function _getFullTransform(transforms, positionX, positionY) {

        var transform = 'translate3d(' + positionX + ', ' + positionY + 'px, 0) ';

        if (!transforms) {
            return transform;
        }

        if (transforms.skewX || transforms.skewY) {
            // transform += 'skew(' + transforms.skewX.toFixed(2) + 'deg, ' + transforms.skewY + 'deg)';
        }

        if (transforms.scaleX || transforms.scaleY) {
            // transform += 'scale(' + transforms.scaleX + ', ' + transforms.scaleY + ')';
        }

        return transform;
    };

    /**
     * Animate the element to top or bottom
     * @param  {Node}   element   Node which should be animated
     * @param  {String} direction Top or bottom animation
     * @return {void}
     */
    var _animateElement = function _animateElement(element, direction) {

        var $element = $(element);
        var $parent = $(element.parentNode);

        var el_offset = $element.offset();
        var top = el_offset.top;

        var p_el_offset = $parent.offset();
        var p_top = p_el_offset.top;
        var p_bottom = p_el_offset.top + $parent.outerHeight();

        var offset = top - scrollPosition;
        var factor = element.factor;

        var $window = $(window);

        if ($element.data('parallax-remove-general-offset') === '') {
            offset += generalOffset;
        }

        if ($element.data('parallax-remove-initial-offset') === '') {
            offset -= element.initialOffset;
        }

        if (direction === 'bottom') {
            factor *= -1;
        }

        // var transformY = Math.floor(offset / factor);
        var transformY = offset / factor;
        var transformX = 0;
        var visible = _isElementInViewport($element);

        if (visible === false || !$element.hasClass("parallax-scroll-container-calculated") || site_settings.scrollDisabled) {
            return;
        }

        if( $element.hasClass('parallax-scroll-container-hide') && !$element.siblings('.mbYTP_wrapper').length ) {
            $element.removeClass('parallax-scroll-container-hide');
        }

        if( $element.data('parallax-position-x') ) {
            transformX = $element.data('parallax-position-x');
        }

        if( $element.data('parallax-scale') ) {

            TweenMax.set(element, {
                scale: MathUtils.map( p_el_offset.top - scrollPosition, winsize.height, -1 * $parent.outerHeight(), ( scrollPosition > p_bottom ? 1 - ( $element.data('parallax-scale') -1 ) : 1 ), $element.data('parallax-scale') )
            });

        } else if( $element.data('parallax-scale-move') ) {

            TweenMax.set(element, {
                x: transformX,
                y: transformY,
                scale: MathUtils.map( p_el_offset.top - scrollPosition, winsize.height, -1 * $parent.outerHeight(), ( scrollPosition > p_bottom ? 1 - ( $element.data('parallax-scale') -1 ) : 1 ), $element.data('parallax-scale-move') )
            });

        } else {

            TweenMax.set(element, {
                x: transformX,
                y: transformY
            });


        }

    };

    /**
     * Callback for rAF
     * @return {void}
     */
    var _callback = function _callback() {

        // Don't do anything if we've scrolled to the top
        if (scrollPosition <= 0) {

            ticking = false;
            //return;

        }

        for (var i = 0; i < $ELEMENTS.length; i++) {
            _animateElement($ELEMENTS[i], 'bottom');
        }

        // allow further rAFs to be called
        ticking = false;

    };


    /**
     * Update elements based on scroll, fires rAF
     * @return {void}
     */

    var update = function update() {

        scrollPosition = window.scrollY || window.pageYOffset;

        if (!settings.mobile && window.matchMedia && window.matchMedia(settings.mediaQuery).matches) {
            return false;
        }

        if (!ticking && window.requestAnimationFrame) {

            window.requestAnimationFrame(_callback);
            ticking = true;

        }

    };

    /**
     * Set the general offset of the page
     * @param  {Object} event  Event fired
     * @param  {Number} offset Offset to set
     * @return {void}
     */

    var _setOffset = function _setOffset(event, offset) {
        generalOffset = offset;
    };

    var initialize = function initialize() {
        if ($ELEMENTS.length > 0) {
            _setupElements();
        }
    };

    /**
     * Init as jQuery plugin
     */
    var constructor = function constructor() {

        /**
         * Events
         */

        $(document).on('hongkong:refresh', _callback).on('hongkong:offset', _setOffset);

        $.hongkong = function (options) {

            // Options
            settings = $.extend({
                factor: 4,
                mobile: false,
                mediaQuery: '(max-width: 42em)',
                threshold: 0,
                selector: '[data-parallax]',
                selectorBottom: '[data-parallax-bottom]', // Deprecated
                selectorTop: '[data-parallax-top]' // Deprecated
            }, options);

            // Set elements
            $ELEMENTS = $(settings.selector);

            if ($ELEMENTS.length > 0) {

                initialize();
                update(); // run update for correct positioning

                // listen for scroll events
                $(window).on('scroll', update);

            }

            $(window).on('resize load', initialize);

        };
    };

    constructor();

})(jQuery);

(function($){

    "use strict";

    // check if is in vc front end
    function inIframe() {

        var field = 'vc_editable';
        var url = window.location.href ;

        if( url.indexOf('?' + field + '=') !== -1 ) {

            return true;

        } else if( url.indexOf('&' + field + '=') !== -1 ) {


        } else {

            return false;

        }

    }

    $("html").addClass('js');

    /* Global Objects
    ================================================== */
    var waypoints_active = false;
    var $brooklyn_body   = $("body");
    var $brooklyn_header = $("#header-section");

    /* Global Variables
    ================================================== */
    var chrome = navigator.userAgent.indexOf('Chrome') > -1;

    function ut_update_current_scroll_offset() {

        site_settings.brooklyn_header_scroll_offset = $brooklyn_header.data("line-height");

        if( $brooklyn_header.hasClass('ut-header-fixed') ) {
            site_settings.brooklyn_header_scroll_offset = 0;
        }

        // extra mobile offsets
        if( !$brooklyn_header.hasClass('ut-header-fixed') ) {

            // update scroll offset tablet
            if( $(window).width() > 767 && $(window).width() <= 1024 ) {

                $brooklyn_header.css('transform', "translate3d(0,0,0)"); // reset header position
                site_settings.brooklyn_header_scroll_offset = 80;

            }

            // update scroll offset mobile
            if( $(window).width() <= 767 ) {

                $brooklyn_header.css('transform', "translate3d(0,0,0)"); // reset header position
                site_settings.brooklyn_header_scroll_offset = 60;

            }

        }

    }

    ut_update_current_scroll_offset();

    $(window).utresize(function(){

        ut_update_current_scroll_offset();

    });


    /* Helper Functions
    ================================================== */
    function ut_get_current_scroll() {

        return window.pageYOffset || document.documentElement.scrollTop;

    }

    /* Adjust Logo
    ================================================== */
    function adjust_logo( direction ) {

        if( $brooklyn_header.data('style') === 'style-9' && $brooklyn_header.data('scrolldepth') === 1 ) {

            if( direction === 'down' ) {

                $('.site-logo').css({
                    'height'        : $brooklyn_header.data('line-height'),
                    'line-height'   : $brooklyn_header.data('line-height') + 'px',
                    'margin-top'    : 80
                });

                $('.site-logo img').css({
                    'max-height'    : 80
                });

            } else {

                $('.site-logo').removeAttr("style");
                $('.site-logo img').removeAttr("style");

            }

        }

    }


    /* Header Variables
    ================================================== */
    var border_offset      = '';
    var header_height      = '';
    var hide_offset        = '';
    var new_offset         = '';
    var last_offset        = '';
    var scroll_up_offset   = '';
    var header_moved       = false;
    var scrolling          = false;

    function ut_header_variables() {

        border_offset 	 = $brooklyn_body.hasClass("ut-site-border-top") ? parseInt(site_settings.siteframe_size) : 0;
        header_height    = $brooklyn_header.data("total-height");
        hide_offset   	 = $brooklyn_header.data("line-height") - border_offset - header_height;
        new_offset    	 = 0;
        last_offset   	 = 0;
        scroll_up_offset = $brooklyn_body.hasClass("ut-site-border-top") ? border_offset : 0;

    }

    $(window).utresize(function(){

        // update logo
        if( $(window).width() < 1025 ) {

            adjust_logo('up');

        }

        // update waypoints since document offset might have changed
        $.waypoints("refresh");


    });

    /* Load Header Variables
    ================================================== */
    ut_header_variables();

    /* Sticky Columns
    ================================================== */
    $('.ut-stick-in-parent').ut_require_js({
        plugin: 'stickit',
        source: 'stickit',
        callback: function (element) {

            element.stickit({
                screenMinWidth: 1025,
                top:  parseInt( hide_offset + header_height + 40 )
            });

        }
    });

    /* Load Header Animations
    ================================================== */
    function ut_move_header() {

        if( $(window).width() <= 1025 ) {
            return;
        }

        scrolling = true;

        // scroll up
        if( ut_get_current_scroll() < last_offset ) {

            if( ut_get_current_scroll() <= scroll_up_offset ) {

                if( -ut_get_current_scroll() > hide_offset ) {

                    $('#ut-header-placeholder').height( header_height - ut_get_current_scroll() );

                    new_offset = -ut_get_current_scroll();
                    $brooklyn_header.css('transform', "translate3d(0,0,0)");

                    adjust_logo('up');
                    header_moved = false; // reset

                }

                if( $('#ut-header-placeholder').length && ut_get_current_scroll() === 0 ) {

                    site_settings.brooklyn_header_scroll_offset = Math.abs(hide_offset) + $brooklyn_header.data("line-height");

                }

            }

            // scroll down
        } else {

            if( ut_get_current_scroll() > 0 ) {

                if( !header_moved ) {

                    $('#ut-header-placeholder').height( $brooklyn_header.data("line-height") - border_offset );
                    $brooklyn_header.css('transform', "translate3d(0,"+ hide_offset +"px,0)");

                    adjust_logo('down');

                    if( $('#ut-header-placeholder').length ) {

                        site_settings.brooklyn_header_scroll_offset = $brooklyn_header.data("line-height");

                    }

                    header_moved = true;

                }

            }

        }

        last_offset = ut_get_current_scroll();

    }

    if( $brooklyn_header.hasClass('ut-header-floating') && !$brooklyn_body.hasClass('ut-header-hide-on-hero') ) {

        if( window.pageYOffset === 0 && $('#ut-header-placeholder').length ) {

            site_settings.brooklyn_header_scroll_offset = Math.abs(hide_offset) + $brooklyn_header.data("line-height");

        }

        $(window).scroll(function() {

            window.requestAnimationFrame(ut_move_header);

        });

        window.requestAnimationFrame(ut_move_header);

    }

    setInterval( function() {

        if( scrolling ) {

            scrolling = false;
            $.waypoints("refresh");

        }

    }, 200 );

    // Global Parallax Effect Container
    $('.parallax-scroll-container:not(.parallax-scroll-container-disabled)').each(function() {

        var $this            = $(this),
            window_height    = $(window).height(),
            container_height = $this.outerHeight();

        if( container_height < window_height ) {

            var new_container_height = ( 100 + ( 100 - container_height * 100 / window_height ) );

            $this.css( "height", new_container_height + "%" ).css( "margin-top", -( $this.outerHeight() - container_height ) / 2 + "px" ).addClass("parallax-scroll-container-calculated");

        }

        if( container_height >= window_height ) {

            $this.css( "height", "105%" ).css( "margin-top", -( $this.outerHeight() - container_height ) / 2 + "px" ).addClass("parallax-scroll-container-calculated");

        }

    });


    // Global Parallax Effect - options controlled by data attributes
    $.hongkong({
        mobile: true,
        selector: '.parallax-scroll-container:not(.parallax-scroll-container-disabled)'
    });


    $(window).on("load", function () {

        var monitor = '';

        function monitor_particle( id, $this ) {

            if( !$this.data('particlestate') ) {

                particlesJS( id, $this.data("effect-config") );
                $this.data('particlestate' ,true);

            }

            if( $this.data('particlestate') ) {

                // hide particles during process
                if( typeof pJSDom !== undefined ) {

                    $this.css('visibility', 'hidden');

                }

                clearTimeout( monitor );

                monitor = setTimeout( function () {

                    // restart
                    if( typeof pJSDom !== undefined ) {

                        pJSDom.forEach(function (item, index) {

                            pJSDom[index].pJS.fn.particlesRefresh();

                        });

                    }

                    $(".bklyn-overlay-effect").each(function(){

                        $(this).css('visibility', 'visible');

                    });

                }, 100 );

            }

        }

        /* Section and Row Overlay Effects
        ================================================== */
        $(".bklyn-overlay-effect[data-effect='particle']").ut_require_js({
            plugin: 'particlesJS',
            source: 'particlesJS',
            callback: function( element ) {

                element.each(function(){

                    var $this	= $(this),
                        id 		= $this.attr("id");

                    $this.data( 'particlestate', false );

                    new ResizeSensor( $this, function () {

                        monitor_particle( id, $this );

                    });

                    monitor_particle( id, $this );

                });

            }
        });

        $(".bklyn-overlay-effect[data-effect='aurora']").ut_require_js({
            plugin: 'auroraJS',
            source: 'auroraJS',
            callback: function( element ) {

                element.each(function(){

                    let $this	= $(this);

                    new window.UT_Aurora_Effect( this, function ( effect ) {

                        let draw = function() {
                            effect.draw();
                            requestAnimationFrame( draw );
                        };

                        requestAnimationFrame( draw );

                        new ResizeSensor( $this, function () {

                            effect.resize();

                        });


                    });

                });

            }
        });

        $(".bklyn-overlay-effect[data-effect='shift']").ut_require_js({
            plugin: 'shiftJS',
            source: 'shiftJS',
            callback: function( element ) {

                element.each(function(){

                    let $this	= $(this);

                    new window.UT_Shift_Effect( this, function ( effect ) {

                        let draw = function() {
                            effect.draw();
                            requestAnimationFrame( draw );
                        };

                        requestAnimationFrame( draw );

                        new ResizeSensor( $this, function () {

                            effect.resize();

                        });


                    });

                });

            }
        });

        $(".bklyn-overlay-effect[data-effect='swirl']").ut_require_js({
            plugin: 'swirlJS',
            source: 'swirlJS',
            callback: function( element ) {

                element.each(function(){

                    let $this	= $(this);

                    new window.UT_Swirl_Effect( this, function ( effect ) {

                        let draw = function() {
                            effect.draw();
                            requestAnimationFrame( draw );
                        };

                        requestAnimationFrame( draw );

                        new ResizeSensor( $this, function () {

                            effect.resize();

                        });

                    });

                });

            }
        });

        $(".bklyn-overlay-effect[data-effect='coalesce']").ut_require_js({
            plugin: 'coalesceJS',
            source: 'coalesceJS',
            callback: function( element ) {

                element.each(function(){

                    let $this	= $(this);

                    new window.UT_Coalesce_Effect( this, function ( effect ) {

                        let draw = function() {
                            effect.draw();
                            requestAnimationFrame( draw );
                        };

                        requestAnimationFrame( draw );

                        new ResizeSensor( $this, function () {

                            effect.resize();

                        });

                    });

                });

            }
        });

        $(".bklyn-overlay-effect[data-effect='pipeline']").ut_require_js({
            plugin: 'pipelineJS',
            source: 'pipelineJS',
            callback: function( element ) {

                element.each(function(){

                    let $this	= $(this);

                    new window.UT_Pipeline_Effect( this, function ( effect ) {

                        let draw = function() {
                            effect.draw();
                            requestAnimationFrame( draw );
                        };

                        requestAnimationFrame( draw );

                        new ResizeSensor( $this, function () {

                            effect.resize();

                        });

                    });

                });

            }
        });

        /* Scroll to Section if Hash exists on Page Load
        ================================================== */
        if( window.location.hash ) {

            setTimeout( function () {

                if (site_settings.navigation === 'default') {

                    // start scroll
                    window.UT_Scroll.scroll_to(window.location.hash, -site_settings.brooklyn_header_scroll_offset);

                } else if (site_settings.navigation === 'side') {

                    // start scroll
                    window.UT_Scroll.scroll_to(window.location.hash, 0);

                }

            }, 400 );

        }

    });

    $(document).ready(function(){

        /* Lazy Load
        ================================================== */
        var $imgs = $("img.utlazy");

        $imgs.lazyload({
            effect: 'fadeIn',
            effectspeed: '200',
            event : 'scroll',
            load : function() {
                $(this).show();
                $.waypoints("refresh");
            },
            failure_limit: Math.max($imgs.length - 1, 0)
        });


        /* Main Navigation & Mobile Navigation Classes
        ================================================== */
        $('.ut-horizontal-navigation ul.menu').find(".current-menu-ancestor").each(function() {

            $(this).find("a").first().addClass("active");

        }).end().find(".current_page_parent").each(function() {

            $(this).find("a").first().addClass("active");

        }).end().superfish({ autoArrows : true, delay: 15 }).supposition();


        /* Create Navigation More Menu
		================================================== */
        function ut_parse_navigation(item, $list, submenu, type) {

            if( submenu ){

                $.each(item, function (key, value) {

                    ut_parse_navigation(value, $list, false, "append");

                });

                return;

            }

            if( item) {

                var $li = $('<li />').addClass( item.classes );

                if( item.title ) {

                    var url = item.url.length ? item.url : '#';

                    if( typeof item.wpse_children !== "undefined" ) {

                        if( item.target.length ) {

                            $li.append( $('<a target="' + item.target + '" class="sf-with-ul" href="' + url + '">' + item.title + '</a>') );

                        } else {

                            $li.append( $('<a class="sf-with-ul" href="' + url + '">' + item.title + '</a>') );

                        }

                    } else {

                        if( item.target.length ) {

                            $li.append( $('<a target="' + item.target + '" href="' + url + '">' + item.title + '</a>') );

                        } else {

                            $li.append( $('<a href="' + url + '">' + item.title + '</a>') );

                        }

                    }

                }

                if( typeof item.wpse_children !== "undefined" ) {

                    // create new sublist
                    var $sublist = $("<ul/>").addClass('sub-menu');
                    ut_parse_navigation( item.wpse_children, $sublist, true, "append" );
                    $li.append( $sublist );

                }

                if( type === 'prepend' ) {

                    $list.prepend( $li );

                } else {

                    $list.append( $li );

                }

            }

        }


        /* Mobile Navigation
        ================================================== */
        $('#ut-mobile-menu').find(".current-menu-ancestor").each(function() {

            $(this).find("a").first().addClass("active");

        }).end().find(".current_page_parent").each(function() {

            $(this).find("a").first().addClass("active");

        });

        $('#ut-mobile-menu .sub-menu li:last-child').addClass('last');
        $('#ut-mobile-menu li:last-child').addClass('last');

        /* Mobile Navigation Variables
        ================================================== */
        var $header = $("#header-section"),
            $logo   = $(".site-logo:not(.ut-overlay-site-logo)").find("img"),
            logo    = $logo.data("original-logo"),
            logoalt = $logo.data("alternate-logo");

        function mobile_menu_dimensions() {

            var nav_new_width	= $(window).width(),
                nav_new_height  = $(window).outerHeight();

            $("#ut-mobile-nav").css( 'width', nav_new_width ).height( nav_new_height );
            $(".ut-scroll-pane-wrap").css( 'width',  nav_new_width - 20 ).height( nav_new_height );
            $(".ut-scroll-pane").css( 'width',  nav_new_width ).height( nav_new_height );
            $("#ut-mobile-menu").css( 'width',  nav_new_width - 40 );

        }

        $(window).utresize(function(){

            if( $(window).width() > 979 && site_settings.mobile_nav_open ) {

                $('#ut-open-mobile-menu').trigger("click");

            }

        });


        // toggle mobile menu
        function ut_open_mobile_menu() {

            // animate trigger
            $('#ut-open-mobile-menu').addClass("is-active");

            // set mobile dimensions
            mobile_menu_dimensions();

            // change skin
            $header.removeClass( $header.data('primary-skin') ).addClass( $header.data('secondary-skin') );
            $('body').addClass("ut-mobile-menu-open");

            // open mobile menu
            $("#ut-mobile-nav").delay(250).slideToggle(600);

            $logo.each( function(){

                $(this).attr("src" , logoalt );

            });

            site_settings.mobile_nav_open = true;

            // bind close
            $(this).one("click", ut_close_mega_menu);

        }

        // toggle mobile menu
        function ut_close_mega_menu() {

            // animate trigger
            $('#ut-open-mobile-menu').removeClass("is-active");

            $("#ut-mobile-nav").slideToggle(600, function() {

                if( site_settings.mobile_hero_passed === false || site_settings.mobile_hero_passed === '' ) {

                    $logo.each( function(){

                        $(this).attr("src" , logo );

                    });

                }

                // change skin
                $header.removeClass( $header.data('secondary-skin') ).addClass( $header.data('primary-skin') );
                $('body').removeClass("ut-mobile-menu-open");

                $(this).hide();


            });

            site_settings.mobile_nav_open = false;

            // re bind open
            $(this).one("click", ut_open_mobile_menu);

        }

        $(".ut-mm-trigger").one("click", ut_open_mobile_menu  );


        $('.ut-scroll-pane').on('touchstart', function(){

            // nothing to do here

        });

        // Collapse Mobile Menu
        if( $('#ut-mobile-menu').data('collapsed') ) {

            // hide sub menus first
            $('.ut-mobile-menu .sub-menu').hide();

            // add event listener
            $('.ut-mobile-menu .menu-item-has-children > a').on( 'click', function( event ) {

                var clicks = $(this).data('clicks');

                if( !clicks) {

                    $(this).siblings('.sub-menu').show();
                    $(this).data( "clicks", true );

                } else {

                    $(this).siblings('.sub-menu').hide();
                    $(this).data( "clicks", false );

                }

                event.stopImmediatePropagation();
                event.preventDefault();

            });

        }

        /* Tablet Slider
        ================================================== */
        $(".ut-tablet-nav li a").on( 'click', function(event) {

            var index = $(this).parent().index();

            /* remove selected state from previuos tabs link */
            $(".ut-tablet-nav li").removeClass("selected");

            /* add class selected to current link */
            $(this).parent().addClass("selected");

            /* hide all tabs images */
            $(".ut-tablet").children().hide().removeClass("show");

            /* show the selected tab image */
            $(".ut-tablet").children().eq(index).fadeIn("fast").addClass("show");

            event.preventDefault();

        });

        /*
         * United Scroll
		 */

        window.UT_Scroll = {

            // scrolling flag
            is_scrolling : false,

            // scroll effect
            scroll_effect : $('body').data("scrolleffect"),

            //scroll speed
            scroll_speed : $('body').data("scrollspeed"),

            init: function() {



            },
            scroll_to: function( target, offset ) {

                self.is_scrolling = true;

                $.scrollTo( target , this.scroll_speed, {
                    easing: this.scroll_effect ,
                    offset: offset,
                    axis  : 'y',
                    onAfter: function() {

                        self.is_scrolling = false;

                        if( typeof target === 'object' ) {

                            target = target.attr("id");

                        } else if( target.indexOf('#') > -1 ) {

                            target = target.substring(1);

                        }

                        UT_Scroll.update_navigation( target );


                    }
                });

            },
            check_navigation: function ( element ) {

                let ID = $(element).attr('id'),
                    $current = $('.ut-horizontal-navigation a[href*="#' + ID + '"]');

                // check for parent
                if( $current.closest('ul').hasClass('sub-menu') ) {

                    $current.closest('ul').parent().addClass('has-scroll-children');

                }

            },
            update_dots: function( section_ID ) {

                // scroll dots
                $('#ut-scroll-dots > div').removeClass('selected');

                // scroll dots
                $('#ut-scroll-dots > div[data-section="#' + section_ID + '"]').addClass('selected');

            },
            update_navigation: function( section_ID ) {

                if( self.is_scrolling || section_ID === 'main-content' ) {
                    return;
                }

                UT_Scroll.clean_navigation();

                if( site_settings.navigation === 'default' ) {

                    var $current = $('.ut-horizontal-navigation a[href*="#' + section_ID + '"]');

                    $current.addClass('selected');

                    // check for parent
                    if( $current.closest('ul').hasClass('sub-menu') ) {

                        $current.closest('ul').siblings('a').addClass('selected');

                    }

                } else if( site_settings.navigation === 'side' ) {

                    $('#bklyn-sidenav a[href*="#' + section_ID + '"]').addClass('selected');

                }

                // mobile
                $('#ut-mobile-menu a[href*="#' + section_ID + '"]').addClass('selected');

                // scroll dots
                $('#ut-scroll-dots > div[data-section="#' + section_ID + '"]').addClass('selected');

            },
            update_home: function() {

                if( self.is_scrolling ) {
                    return;
                }

                UT_Scroll.clean_navigation();

                if( site_settings.navigation === 'default' ) {

                    // remove superfish hover class from first level
                    $('.ut-horizontal-navigation > ul > li').removeClass('sfHover');

                    // selected class from previous active items and remove focus
                    $('.ut-horizontal-navigation a').removeClass('selected');

                    // update navigation home
                    $('.ut-home-link > a').addClass('selected');

                } else if( site_settings.navigation === 'side' ) {

                    $('#bklyn-sidenav a[href*="#top"]').addClass('selected');

                }

                // mobile
                $('#ut-mobile-menu .ut-home-link > a').addClass('selected');


            },
            clean_navigation: function() {

                if( site_settings.navigation === 'default' ) {

                    $('.ut-horizontal-navigation > ul > li').removeClass('sfHover');
                    $('.ut-horizontal-navigation a').removeClass('selected');

                } else if( site_settings.navigation === 'side' ) {

                    $('#bklyn-sidenav a').removeClass('selected');

                }

                // mobile nav
                $('#ut-mobile-menu a').removeClass('selected');

                // scroll dots
                $('#ut-scroll-dots > div').removeClass('selected');

            }

        };

        UT_Scroll.init();

        /* Scroll to top
		================================================== */
        $('.logo a[href*="#"], .ut-logo a[href*="#"]').on( 'click', function(event) {

            event.preventDefault();
            event.stopImmediatePropagation();

            UT_Scroll.scroll_to( $(this).attr('href'), -site_settings.brooklyn_header_scroll_offset );

        });


        $('.toTop').on( 'click', function(event) {

            event.preventDefault();
            event.stopImmediatePropagation();

            UT_Scroll.scroll_to( $(this).attr('href'), -site_settings.brooklyn_header_scroll_offset );

        });

        /* Scroll to Sections for Hero Buttons
        ================================================== */
        $('.hero-second-btn[href^="#"], .hero-btn[href^="#"], .hero-down-arrow a[href^="#"]').not(".ut-btn-disintegrate").not("#ut-hero-search-submit").on( 'click', function( event ) {

            event.stopImmediatePropagation();
            event.preventDefault();

            var target = $(this).attr('href');

            if( target === '#ut-to-first-section' ) {

                var target_offset = '';

                if( $brooklyn_body.hasClass('ut-hero-has-fancy-border') ) {

                    target_offset = site_settings.brooklyn_header_scroll_offset + $('#ut-hero .ut-fancy-border').outerHeight() - 1;

                } else {

                    target_offset = site_settings.brooklyn_header_scroll_offset;

                }

                UT_Scroll.scroll_to( $('.wrap'), -target_offset );

            } else {

                UT_Scroll.scroll_to( target, -site_settings.brooklyn_header_scroll_offset );

            }

        });

        $('#ut-hero-search-submit').on( 'click', function( event ) {

            event.stopImmediatePropagation();
            event.preventDefault();

            $("#searchform").submit();

        });


        $('.hero-slider-button[href^="#"]').on( 'click', function( event ) {

            event.stopImmediatePropagation();
            event.preventDefault();

            var target = $(this).attr('href');

            if( target === '#ut-to-first-section' ) {

                UT_Scroll.scroll_to( $('.wrap'), -site_settings.brooklyn_header_scroll_offset );

            } else {

                UT_Scroll.scroll_to( target, -site_settings.brooklyn_header_scroll_offset );

            }

        });

        $('.ut-fancy-image-wrap a[href^="#"]').on( 'click', function( event ) {

            event.stopImmediatePropagation();
            event.preventDefault();

            var target = $(this).attr('href');

            if( target === '#ut-to-first-section' ) {

                UT_Scroll.scroll_to( $('.wrap'), -site_settings.brooklyn_header_scroll_offset );

            } else {

                UT_Scroll.scroll_to( $(this).attr('href'), -site_settings.brooklyn_header_scroll_offset );

            }

        });


        /* Scroll to Section Class
		================================================== */
        $(document).on("click" , '.ut-scroll-to-section, .ut-scroll-to-section a' , function(event) {

            var href = $(this).attr('href');

            if( href === undefined ) {
                return;
            }

            // extract section hash
            var section = '#' + href.substring( href.indexOf('#')+1 );

            // start scroll
            UT_Scroll.scroll_to( section, -site_settings.brooklyn_header_scroll_offset );

            // activate navigation
            if( $('.ut-horizontal-navigation a[href*="' + section + '"]').length ) {

                UT_Scroll.update_navigation( section );

            }

            // activate navigation
            if( $('#bklyn-sidenav a[href*="' + section + '"]').length ) {

                UT_Scroll.update_navigation( section );

            }

            event.preventDefault();

        });

        /* Scroll to Sections / Main Menu
        ================================================== */
        $('.ut-horizontal-navigation a:not(.ut-header-search-trigger)').on( 'click', function(event) {

            if( this.hash && !$(this).hasClass('external') && $(this.hash).length ) {

                UT_Scroll.clean_navigation();
                $(this).addClass('selected');

                // start scroll
                UT_Scroll.scroll_to( this.hash, -site_settings.brooklyn_header_scroll_offset );

                event.stopImmediatePropagation();
                event.preventDefault();

            } else if( this.hash && $(this.hash).length && $(this).parent().hasClass('contact-us') ) {

                // start scroll
                UT_Scroll.scroll_to( this.hash, 0 );

                event.stopImmediatePropagation();
                event.preventDefault();

            }

            if( $(this).attr('href') === '#' ) {

                event.stopImmediatePropagation();
                event.preventDefault();

            }

        });

        /* Scroll to Sections / Footer Menu
		================================================== */
        $('.footer ul.menu a').on( 'click', function(event) {

            if( this.hash && $(this.hash).length ) {

                UT_Scroll.scroll_to( this.hash, -site_settings.brooklyn_header_scroll_offset );

                event.stopImmediatePropagation();
                event.preventDefault();

            }

        });

        var isIEMobile = isIEMobile();

        function isIEMobile() {
            var regExp = new RegExp("IEMobile", "i");
            return navigator.userAgent.match(regExp);
        }

        /* Scroll to Sections / Mobile Menu
		================================================== */
        $('#ut-mobile-menu a').on( 'click', function(event) {

            if( this.hash && !$(this).hasClass('external') && $(this.hash).length ) {

                if(!isIEMobile){

                    UT_Scroll.scroll_to( this.hash, -site_settings.brooklyn_header_scroll_offset );

                } else {

                    var thash = this.hash;

                    $('html, body').animate({ scrollTop: $( thash ).offset().top }, ut_scrollspeed );

                }

                event.stopImmediatePropagation();
                event.preventDefault();

            }

            /* close menu */
            $(".ut-mm-trigger").trigger("click");

            if( $(this).attr('href') === '#' ) {

                event.stopImmediatePropagation();
                event.preventDefault();

            }

        });

        /* Side Navigation
		================================================== */
        if( $("#bklyn-sidenav").length ) {

            $("#bklyn-sidenav").utvmenu({
                speed: 800,
                autostart: false,
                autohide: true
            });

            $('#bklyn-sidenav a').on( 'click', function(event) {

                if( this.hash && !$(this).hasClass('external') && $(this.hash).length ) {

                    UT_Scroll.scroll_to( this.hash, 0 );

                    event.stopImmediatePropagation();
                    event.preventDefault();

                } else if( this.hash && $(this).parent().hasClass('contact-us') ) {

                    UT_Scroll.scroll_to( this.hash, 0 );

                    event.stopImmediatePropagation();
                    event.preventDefault();

                }

                if( $(this).attr('href') === '#' ) {

                    event.stopImmediatePropagation();
                    event.preventDefault();

                }

            });

        }


        /* Waypoints
		================================================== */
        $('.vc_section').each(function() {

            if( !$('.ut-vc-offset-anchor-top', this ).length ) {

                let section_ID = $(this).attr('id');

                $(this).waypoint( function( direction ) {

                    if( !waypoints_active ) {
                        return false;
                    }

                    if( direction === 'down' ) {

                        UT_Scroll.update_dots( section_ID );

                    }

                });

            }

        });


        $('.ut-vc-offset-anchor-top').each(function() {

            UT_Scroll.check_navigation( this );

            $(this).waypoint( function( direction ) {

                if( !waypoints_active ) {
                    return;
                }

                let containerID = $(this).data('id');

                if( direction === 'down' && $('#navigation a[href*="#' + containerID + '"]').length ) {

                    UT_Scroll.update_navigation( containerID );

                } else if( direction === 'down' && !$('#navigation a[href*="#' + containerID + '"]').length ) {

                    UT_Scroll.update_home();

                }

            }, { offset: site_settings.brooklyn_header_scroll_offset + 'px' });

        });


        $('.ut-vc-offset-anchor-bottom').each(function() {

            $(this).waypoint( function( direction ) {

                if( !waypoints_active ) {
                    return;
                }

                let containerID = $(this).data('id');

                if( direction === 'up' && $('.ut-horizontal-navigation a[href*="#' + containerID + '"]').length ) {

                    UT_Scroll.update_navigation( containerID );

                } else if( direction === 'up' && containerID === 'section-without-id' ) {

                    UT_Scroll.update_home();

                }

                if( $('.ut-vc-offset-anchor-top', $(this).parent() ).length && direction === 'up' ) {

                    UT_Scroll.update_dots( $(this).siblings('.ut-vc-offset-anchor-top').data('id') );

                } else if( direction === 'up' && containerID === 'section-without-id' ) {

                    UT_Scroll.update_dots( $(this).parent().attr('id') );

                } else if( direction === 'up' && containerID ) {

                    UT_Scroll.update_dots( containerID );

                }

            }, { offset: site_settings.brooklyn_header_scroll_offset + 20 + 'px' });

        });


        /* reflect scrolling in navigation
        ================================================== */
        $('.ut-offset-anchor').each(function() {

            $(this).waypoint( function( direction ) {

                if( direction === 'down' && $(this).attr('id') !== 'to-main-content' ) {

                    var containerID = $(this).attr('id');

                    if( $(this).data('parent') ) {
                        containerID = $(this).data('parent');
                    }

                    if( site_settings.navigation === 'default' ) {

                        if( containerID == 'section-contact' ) {

                            /* update navigation */
                            $('.ut-horizontal-navigation a').removeClass('selected');
                            $('.ut-horizontal-navigation li.contact-us a').addClass('selected');

                        } else {

                            /* update navigation */
                            UT_Scroll.update_navigation( containerID );

                        }

                    } else if( site_settings.navigation === 'side' ) {

                        /* update navigation */
                        $('#bklyn-sidenav a').removeClass('selected');
                        $('#bklyn-sidenav a[href*="#'+containerID+'"]').addClass('selected');

                    }


                }

                if( direction === 'up' && $(this).attr('id') === 'to-main-content' ) {

                    if( site_settings.navigation === 'default' ) {

                        /* update navigation home */
                        $('.ut-horizontal-navigation a').removeClass('selected');
                        $('.ut-home-link > a').addClass('selected');

                    } else if( site_settings.navigation === 'side' ) {

                        /* update navigation home */
                        $('#bklyn-sidenav a').removeClass('selected');
                        $('.ut-home-link > a').addClass('selected');

                    }


                }

            } , { offset: site_settings.brooklyn_header_scroll_offset + 'px' });

        });

        $('.ut-scroll-up-waypoint').each(function() {

            $(this).waypoint( function( direction ) {

                if( direction === 'up' ) {

                    var containerID = $(this).data('section');

                    if( $(this).data('parent') ) {
                        containerID = $(this).data('parent');
                    }

                    UT_Scroll.update_navigation( containerID );

                }

            } , { offset: site_settings.brooklyn_header_scroll_offset + 10 + 'px' });

        });

        $('.vc_section:not(.ut-section-with-linking)').each(function() {

            var $this = $(this);

            $this.waypoint( function( direction ) {

                var containerID = $(this).attr('id');

                if( direction === 'down' && $('.ut-horizontal-navigation a[href*="#'+containerID+'"]').length ) {

                    UT_Scroll.update_navigation( containerID );

                } else if( direction === 'down' && !$('.ut-horizontal-navigation a[href*="#'+containerID+'"]').length && $('.ut-home-link > a').length ) {

                    UT_Scroll.update_home();

                }


            } , { offset: site_settings.brooklyn_header_scroll_offset + 1 + 'px' });

        });

        $(document).on("click" , '.bklyn-btn[href^="#"], .ut-btn[href^="#"], .cta-btn a[href^="#"], .ut-service-column-link[href^="#"], .ut-service-column-vertical-link[href^="#"], .ut-custom-link-module[href^="#"], .bklyn-big-icon-wrap a[href^="#"], .ut-animated-image-item a[href^="#"], .ut-custom-heading-module a[href^="#"], .ut-fancy-image-wrap a[href^="#"], .bklyn-fancy-list a[href^="#"], .ut-label-module[href^="#"], .ut-service-box-link[href^="#"]' , function(event) {

            if( this.hash && $(this.hash).length ) {

                event.stopImmediatePropagation();
                event.preventDefault();

                if( $(this).parent().hasClass("ut-btn-no-scroll-offset") ) {

                    UT_Scroll.scroll_to( $(this).attr('href'), 0 );

                } else {

                    UT_Scroll.scroll_to( $(this).attr('href'), -site_settings.brooklyn_header_scroll_offset );

                }

            } else if( this.hash === '' || $(this).attr('href') === '#' ) {

                event.preventDefault();

            }


        });


        /* Disintegrate Buttons
		================================================== */
        var $current_button    = '',
            button_with_scroll = false;

        function openInNewTab(url, target) {

            var win = window.open(url, target);
            win.focus();

        }

        $(".ut-btn-disintegrate").ut_require_js({
            plugin: 'Particles',
            source: 'buttonParticles',
            callback: function (element) {

                element.each(function( index, element ){

                    // current button
                    var $this     = $(element),
                        effect    = $this.data("particle-effect"),
                        color  	  = $this.data("particle-color"),
                        direction = $this.data("particle-direction");

                    var effect_defaults = site_settings.button_particle_effects[effect];

                    effect_defaults.color = color;
                    effect_defaults.direction = direction;
                    effect_defaults.complete = function() {

                        var target = $this.attr('href').replace(/^.*?(#|$)/,'');

                        // check if there is a section on the current page
                        if( target && $("#" + target ).length || target === 'ut-to-first-section' ) {

                            if( target === 'ut-to-first-section' ) {

                                UT_Scroll.scroll_to( $('.wrap'), -site_settings.brooklyn_header_scroll_offset );

                            } else {

                                UT_Scroll.scroll_to( '#' + target, -site_settings.brooklyn_header_scroll_offset );

                            }

                            // link is external
                        } else {

                            if( $this.hasClass("ut-lightbox") ) {

                                // @todo

                            } else {

                                if( $this.attr('href') !== '#' ) {

                                    target = $this.attr('target').length ? $this.attr('target') : '_self';
                                    openInNewTab($this.attr('href'), target);

                                }

                            }

                        }

                        if( $this.hasClass("ut-btn-integrate") ) {

                            $this.delay(3000).queue(function(){

                                $(this).data('particle-effect-storage').integrate({
                                    complete: function(){

                                        $this.removeClass("ut-particles-deactivate-transition");

                                        setTimeout ( function () {
                                            $this.parent().removeClass("ut-particles-deactivate-shadow");
                                        }, 400 );

                                    }
                                });
                                $(this).dequeue();

                            });

                        } else {

                            $this.removeClass("ut-particles-deactivate-transition");
                            $this.parent().removeClass("ut-particles-deactivate-shadow");

                        }

                    };

                    $this.data('particle-effect-storage', new Particles( $this[0], effect_defaults ) );

                });

                $(element).on( 'click', function( event ) {

                    // deactivate button default transition
                    $(this).parent().addClass("ut-particles-deactivate-shadow");
                    $(this).addClass("ut-particles-deactivate-transition");

                    // disintegrate button
                    $(this).data('particle-effect-storage').disintegrate();

                    // event.stopImmediatePropagation();
                    event.preventDefault();

                });

            }
        });


        /* Youtube WMODE
        ================================================== */
        $('iframe').each(function() {

            var url = $(this).attr("src");

            if ( url!==undefined ) {

                var youtube   = url.search("youtube"),
                    splitable = url.split("?");

                /* url has already vars */
                if( youtube > 0 && splitable[1] ) {
                    $(this).attr("src",url+"&wmode=transparent");
                }

                /* url has no vars */
                if( youtube > 0 && !splitable[1] ) {
                    $(this).attr("src",url+"?wmode=transparent");
                }

            }

        });

        /* LightGallery
		================================================== */
        $('.vc_media_grid').ut_require_js({
            plugin: 'lightGallery',
            source: 'lightGallery',
            callback : function ( element ) {

                element.lightGallery({
                    mode: site_settings.lg_mode,
                    selector: '.ut-vc-ajax-images-lightbox',
                    exThumbImage: 'data-exthumbimage',
                    hash: false
                });

            }
        });

        $(document).ajaxComplete(function() {

            $('.vc_media_grid').ut_require_js({
                plugin: 'lightGallery',
                source: 'lightGallery',
                callback : function ( element ) {

                    element.lightGallery({
                        mode: site_settings.lg_mode,
                        selector: '.ut-vc-ajax-images-lightbox',
                        exThumbImage: 'data-exthumbimage',
                        hash: false
                    });

                }

            });

        });

        $(".woocommerce-product-gallery__wrapper").ut_require_js({
            plugin: 'lightGallery',
            source: 'lightGallery',
            callback : function ( element ) {

                element.lightGallery({
                    mode: site_settings.lg_mode,
                    selector: "a",
                    iframeMaxWidth: "80%",
                    hash: false
                });

            }
        });

        // default lightbox
        $(".ut-lightbox").ut_require_js({
            plugin: 'lightGallery',
            source: 'lightGallery',
            callback : function ( element ) {

                element.lightGallery({
                    mode: site_settings.lg_mode,
                    selector: "this",
                    iframeMaxWidth: "80%",
                    hash: false
                });

            }
        });


        /* Member POPUP
        ================================================== */
        $('.ut-show-member-details').on( 'click', function(event) {

            event.preventDefault();

            /* show overlay */
            $('.ut-overlay').addClass('ut-overlay-show');

            /* execute animation to make member visible */
            $('#member_'+$(this).data('member')).addClass('ut-box-show').animate( {top: "15%" , opacity: 1 } , 1000 , 'easeInOutExpo' , function() {

                var offset  = $(this).offset().top,
                    id		= $(this).data("id");

                /* now append clone to body */
                $(this).clone().attr("id" , id).css({"position" : "absolute" , "top" : offset , "padding-top" : 0}).appendTo("body").addClass("member-clone");

                /* store current member ID */
                $(this).removeClass('ut-box-show').css({ "top" : "30%" , "opacity" : "0" });

            });

        });

        $(document).on("click" , '.ut-hide-member-details, body' , function(event) {

            if ( !$(event.target).is('.member-social, .member-social *, .ut-btn, .member-box a') ) {

                if( $('.ut-modal-box.member-clone').length ) {
                    event.preventDefault();
                }

                /* execute animation to make member invisible */
                $('.ut-modal-box.member-clone').animate({top: "0%" , opacity: 0 } , 600 , 'easeInOutExpo' ,function() {

                    $(this).remove();

                    /* hide overlay */
                    $('.ut-overlay').removeClass('ut-overlay-show');

                });

            }

        });

        $(document).on("click" , '.ut-overlay' , function(event) {

            event.preventDefault();

            /* execute animation to make member invisible */
            $('.ut-modal-box.member-clone').animate({top: "0%" , opacity: 0 } , 600 , 'easeInOutExpo' ,function() {

                $(this).remove();

                /* hide overlay */
                $('.ut-overlay').removeClass('ut-overlay-show');

            });

        });

        if( !$('html').hasClass('no-touchevents') ) {

            var touchmoved;

            $(document).on('touchend', '.member-photo', function() {

                var $this = $(this);

                if( touchmoved !== true ){

                    if( $this.hasClass('ut-touch-event') ) {

                        $this.toggleClass('cs-hover');

                    }

                }

            }).on('touchmove', function() {

                touchmoved = true;

            }).on('touchstart', function() {

                touchmoved = false;

            });

        }

        $('.nivoSlider').on( 'hover', function() {

            var $this = $(this);

            $this.find('.nivo-directionNav .nivo-prevNav').html('');
            $this.find('.nivo-directionNav .nivo-nextNav').html('');

        });

        /* Overlay Navigation
        ================================================== */
        var $brooklyn_overlay_navigation = $("#ut-overlay-menu"),
            $brooklyn_overlay_navigation_links = $("#ut-overlay-nav li a"),
            $brooklyn_open_overlay_menu  = $('#ut-open-overlay-menu');

        function ut_open_overlay_navigation() {

            // hide menu and other elements first
            $brooklyn_overlay_navigation_links.css("visibility","hidden");
            $(".ut-overlay-footer-icons-wrap","#ut-overlay-menu-footer").css("visibility","hidden");
            $(".ut-overlay-copyright","#ut-overlay-menu-footer").css("visibility","hidden");

            $brooklyn_overlay_navigation.addClass("ut-overlay-menu-visible");

            setTimeout( function(){

                $brooklyn_overlay_navigation_links.each(function( index ) {

                    var $this = $(this);

                    $this.delay( index * 75 ).queue( function() {

                        $this.css("visibility","visible").addClass("fadeInUp").dequeue();

                    });

                });

                setTimeout( function(){

                    $(".ut-overlay-footer-icons-wrap","#ut-overlay-menu-footer").css("visibility","visible").addClass("fadeIn");
                    $(".ut-overlay-copyright","#ut-overlay-menu-footer").css("visibility","visible").addClass("fadeIn");

                }, 75 * $brooklyn_overlay_navigation_links.length + 100 );

            }, 500 );

        }

        function ut_close_overlay_navigation() {

            $(".ut-overlay-menu", "#ut-overlay-nav").addClass("fadeOut");

            $(".ut-overlay-footer-icons-wrap","#ut-overlay-menu-footer").removeClass("fadeIn").addClass("fadeOut");
            $(".ut-overlay-copyright","#ut-overlay-menu-footer").removeClass("fadeIn").addClass("fadeOut");

            setTimeout( function(){

                $brooklyn_overlay_navigation.removeClass("ut-overlay-menu-visible");

                setTimeout( function(){

                    $brooklyn_overlay_navigation_links.removeClass("fadeInUp");
                    $(".ut-overlay-menu", "#ut-overlay-nav").removeClass("fadeOut");

                    $(".ut-overlay-copyright","#ut-overlay-menu-footer").removeClass("fadeOut").css("visibility","hidden");
                    $(".ut-overlay-footer-icons-wrap","#ut-overlay-menu-footer").removeClass("fadeOut").css("visibility","hidden");


                }, 500 );


            }, 400 );


        }

        $(document).on("click" , '#ut-open-overlay-menu' , function(event) {

            // burger position
            var position_offset = $("#ut-open-overlay-menu").offset();

            // logo position
            var logo_position_offset = $("#header-section .site-logo").offset();

            // overlay position
            var overlay_position_offset = $("#ut-overlay-menu").offset();

            if( !$(this).hasClass("is-active") ) {

                window.requestAnimationFrame( ut_open_overlay_navigation );

                $("#ut-open-overlay-menu").css({
                    "top" : position_offset.top - overlay_position_offset.top,
                    "left" : position_offset.left
                });

                if( $("#ut-overlay-menu .site-logo").length ) {

                    // fallback if regular header logo has been turned off
                    if(typeof(logo_position_offset) === "undefined") {

                        logo_position_offset = {
                            top : 40,
                            left: 40
                        };

                    }

                    $("#ut-overlay-menu .site-logo").css({
                        "top" : logo_position_offset.top - overlay_position_offset.top,
                        "left" : logo_position_offset.left
                    });

                    $("#header-section .site-logo").fadeOut();

                }

                $brooklyn_open_overlay_menu.prependTo("#ut-overlay-menu");

                $brooklyn_open_overlay_menu.dequeue().delay(100).queue(function(){
                    $brooklyn_open_overlay_menu.addClass("is-active");
                });

                // add custom event




            } else {

                window.requestAnimationFrame( ut_close_overlay_navigation );

                $brooklyn_open_overlay_menu.prependTo("#ut-hamburger-wrap-overlay");

                $("#ut-open-overlay-menu").removeAttr("style");

                if( $("#ut-overlay-menu .site-logo").length ) {

                    $("#header-section .site-logo").fadeIn();
                }

                $brooklyn_open_overlay_menu.dequeue().delay(100).queue(function(){
                    $brooklyn_open_overlay_menu.removeClass("is-active");
                });

                // add custom event




            }

            event.preventDefault();

        });

        $(document).on('touchmove', "#ut-overlay-menu", function(ev) {

            if(ev.type !== 'click') {

                ev.stopImmediatePropagation();
                ev.preventDefault();

            }

        });

        document.addEventListener('keyup', function(ev) {

            // escape key.
            if( ev.keyCode === 27 ) {

                if( $brooklyn_open_overlay_menu.hasClass("is-active") ) {

                    $brooklyn_open_overlay_menu.trigger("click");

                }

            }

        });

        $('#ut-overlay-menu a').on( 'click', function(event) {

            if( this.hash && !$(this).hasClass('external') && $(this.hash).length ) {

                UT_Scroll.scroll_to(  this.hash, -site_settings.brooklyn_header_scroll_offset );

                if( $brooklyn_open_overlay_menu.hasClass("is-active") ) {
                    $brooklyn_open_overlay_menu.trigger("click");
                }

                event.stopImmediatePropagation();
                event.preventDefault();

            } else if( this.hash && $(this.hash).length && $(this).parent().hasClass('contact-us') ) {

                UT_Scroll.scroll_to(  this.hash, 0 );

                if( $brooklyn_open_overlay_menu.hasClass("is-active") ) {
                    $brooklyn_open_overlay_menu.trigger("click");
                }

                event.stopImmediatePropagation();
                event.preventDefault();

            }

            if( $(this).attr('href') === '#' ) {

                event.stopImmediatePropagation();
                event.preventDefault();

            }


        });

        /* Header Overlay Search
        ================================================== */
        $('.ut-header-search-trigger, .ut-top-header-search-trigger', '#header-section').on( 'click', function(event) {

            $('#ut-header-search-close', '#ut-header-search').addClass('is-active');
            $('#ut-header-search').addClass('ut-show-header-search');
            $('#ut-header-searchform input').focus();

            event.preventDefault();

        });

        $('#ut-header-search-close', '#ut-header-search').on( 'click', function(event){

            $(this).removeClass('is-active');
            $('#ut-header-search').removeClass('ut-show-header-search');
            event.preventDefault();

        });

        document.addEventListener('keyup', function(ev) {

            // escape key.
            if( ev.keyCode === 27 ) {

                if( $('#ut-header-search').hasClass("ut-show-header-search") ) {

                    $('#ut-header-search').removeClass('ut-show-header-search');

                }

            }

        });

        /* Force Re Render of Section with fixed backgrounds
           Chrome flicker issue
		================================================== */
        if( window.devicePixelRatio > 1 || /chrom(e|ium)/.test(navigator.userAgent.toLowerCase()) ){

            $.fn.redraw = function() {
                return this.stop(true,true).hide(0, function() {
                    $(this).show();
                });
            };

            $('#main-content section').each(function() {

                if ( $(this).css('background-attachment') === 'fixed' ) {

                    $(this).addClass('ut-has-fixed-background');

                }

            });

            var $document = $(document);

            $document.scroll(function(){

                $document.find('.ut-has-fixed-background').redraw();

            });

        }

        /* United Themes Share
		================================================== */

        /* Twitter
		================================================== */
        var utsharetwitter = function() {
            window.open( 'http://twitter.com/intent/tweet?url='+encodeURIComponent(location.href),
                "Twitter",
                "width=650,height=350" );
            return false;
        };

        /* Facebook
		================================================== */
        var utsharefacebook = function(){
            window.open( 'https://www.facebook.com/sharer/sharer.php?u='+encodeURIComponent(location.href),
                'facebook',
                'width=650,height=350');
            return false;
        };

        /* Google Plus
		================================================== */
        var utsharegoogle = function(){
            window.open( 'https://plus.google.com/share?url='+encodeURIComponent(location.href),
                'googleWindow',
                'width=500,height=500');
            return false;
        };

        /* Linkedin
		================================================== */
        var utsharelinkedin = function(){
            window.open( 'http://www.linkedin.com/shareArticle?mini=true&url='+encodeURIComponent(location.href)+'$title='+$(".page-title").text(),
                'linkedinWindow',
                'width=650,height=450, resizable=1');
            return false;
        };

        /* Pinterest
		================================================== */
        var utsharepinterest = function(){
            window.open( 'http://pinterest.com/pin/create/bookmarklet/?media='+ $('.entry-content img').first().attr('src') + '&description='+jQuery('.page-title').text()+' '+encodeURIComponent(location.href),
                'pinterestWindow',
                'width=750,height=430, resizable=1');
            return false;
        };

        /* Xing
		================================================== */
        var utsharexing = function(){
            window.open( 'https://www.xing-share.com/app/user?op=share;sc_p=xing-share;url='+encodeURIComponent(location.href),
                'deliciousWindow',
                'width=550,height=550, resizable=1');
            return false;
        };

        /* Button Script
		================================================== */
        $(document).on("click", ".ut-share-link", function(event){

            var social = $(this).data("social");

            switch (social) {
                case "utsharetwitter"   : utsharetwitter(); break;
                case "utsharefacebook"  : utsharefacebook(); break;
                case "utsharegoogle"    : utsharegoogle(); break;
                case "utsharelinkedin"  : utsharelinkedin(); break;
                case "utsharepinterest" : utsharepinterest(); break;
                case "utsharexing"      : utsharexing(); break;
            }

            event.preventDefault();

        });

        /* Woocommerce
		================================================== */
        function update_mini_cart_fragments( data ) {

            if( typeof data.cart_contents_count !== "undefined" ) {

                $('.ut-header-cart-count').text( data.cart_contents_count );
                $('.ut-header-mini-cart-total-count').text( data.cart_contents_count );

            }

            if( typeof data.cart_contents_count !== "undefined" ) {

                $('.ut-header-mini-cart-total-price').html( data.cart_total );

            }

            if( typeof data.cart_empty !== "undefined" ) {

                $(".ut-header-mini-cart-overflow-container").each( function(){

                    $(this).html(data.cart_empty);

                });

            }

        }

        function set_mini_cart_height() {

            $(".ut-header-mini-cart-overflow-container").each( function(){

                var $this = $(this),
                    mini_cart_content_height = 0;

                $.each( $this.children().slice(0,3), function(){

                    mini_cart_content_height += $(this).outerHeight(true);

                });

                $this.closest('.ut-header-mini-cart-content').height( mini_cart_content_height );

            });

        }

        function initialize_mini_cart_simplebar() {

            $('.ut-header-mini-cart-content').each( function( index, element ){

                if( $(element).hasClass('ut-simplebar-initialized') ) {
                    return;
                }

                $(element).addClass('ut-simplebar-initialized');

                $(element).ut_require_js({
                    plugin: 'SimpleBar',
                    source: 'simplebar',
                    callback: function (element) {

                        new SimpleBar( element.get(0) );

                    }

                });

            });

        }

        function check_mini_cart_status() {

            $(".ut-header-mini-cart-overflow-container").each( function(){

                var $this = $(this);

                // cart empty
                if( $this.find('.ut-header-mini-cart-item-empty').length ) {

                    $this.closest('ul').addClass('ut-header-mini-cart-no-content');

                } else {

                    $this.closest('ul').removeClass('ut-header-mini-cart-no-content');

                }

            });

        }

        $(document).on("click" , '.ut-remove-header-cart-item' , function(event) {

            var $this = $(this);

            $this.parent().slideUp( function(){

                $.ajax({
                    type: "POST",
                    url: utShortcode.ajaxurl,
                    data: {
                        action : 'remove_item_from_cart',
                        cart_item_key : String( $this.data('cart-item-key') )
                    },
                    success: function( data ) {

                        // remove cart item from dom
                        $this.parent().remove();

                        // update cart fragments
                        update_mini_cart_fragments( data );

                        // check mini cart status
                        check_mini_cart_status();

                        // adjust cart height
                        set_mini_cart_height();

                    }
                });

            });

            event.preventDefault();

        });

        // set mini cart height
        set_mini_cart_height();

        // add simple scroll bar
        initialize_mini_cart_simplebar();

        $( document.body ).on( 'added_to_cart', function(){

            // check mini cart status
            check_mini_cart_status();

            // set mini cart height
            set_mini_cart_height();

        });

        // disable scroll when viewing cart
        $(".ut-header-mini-cart-content").on( 'mouseenter', function() {

            site_settings.scrollDisabled = true;
            $brooklyn_body.disableScroll();

        }).on( 'mouseleave', function() {

            site_settings.scrollDisabled = false;
            $brooklyn_body.enableScroll();

        });

        $(document).on("click" , '.quantity .decrease' , function(event) {

            var $button  = $(this),
                oldValue = $button.siblings('.qty').val(),
                newVal   = parseFloat( oldValue ) - 1;

            if( newVal >= 1 ) {

                $button.siblings('.qty').val(newVal).trigger('change');

            }

            event.preventDefault();


        });

        $(document).on("click" , '.quantity .increase' , function(event) {

            var $button  = $(this),
                oldValue = $button.siblings('.qty').val(),
                newVal   = parseFloat( oldValue ) + 1;

            $button.siblings('.qty').val(newVal).trigger('change');

            event.preventDefault();

        });


        /* Slider Revolution Hero Calculation
		================================================== */
        var $rev_slider_wrapper = false;

        function adjust_slider_revolution() {

            var hero_height = $(window).height();

            if( !$('body').hasClass('ut-header-display-on-hero') && !$('body').hasClass('ut-header-transparent-on-hero') && !$('body').hasClass('ut-header-hide-on-hero')   ) {

                hero_height -= $("#header-section").height();

            }

            if( $('body').hasClass('ut-site-border-top') ) {

                if( $(window).width() > 1024 ) {

                    hero_height -= site_settings.siteframe_top;

                } else {

                    hero_height -= 0;

                }

            }

            // Adjust Hero
            $('#ut-custom-hero').height( hero_height );

            // Add Class to Slider Revolution ( only once )
            if( !$rev_slider_wrapper.hasClass('ut-force-rev-slider-fullscreen') ) {

                $rev_slider_wrapper.parent().addClass('ut-force-rev-slider-fullscreen');
                $rev_slider_wrapper.addClass('ut-force-rev-slider-fullscreen');
                $rev_slider_wrapper.siblings('.tp-fullwidth-forcer').addClass('ut-force-rev-slider-fullscreen');

            } else {

                // $rev_slider_wrapper
                $rev_slider_wrapper.children('.rev_slider').revredraw();

            }

        }

        if( $('#ut-custom-hero').find('.rev_slider_wrapper').hasClass('fullscreen-container') ) {

            $rev_slider_wrapper = $('#ut-custom-hero').find('.rev_slider_wrapper');

            $rev_slider_wrapper.one('revolution.slide.onloaded', function( e ) {

                adjust_slider_revolution();

            });

        }

        $(window).utresize(function(){

            if( $rev_slider_wrapper ) {

                adjust_slider_revolution();

            }

        });



        $('.ut-portfolio-info-details a').on('click', function ( event ) {

            if( $(this).attr('href') === '#' ) {

                event.preventDefault();

            }

        });


        // Sticky Footer @todo
        $('#ut-custom-contact-section').appear();

        $(document.body).on('appear', '#ut-custom-contact-section', function() {

            /* var $this = $(this);

            if( $this.hasClass('sticky') ) {
                return;
            }


            var $placeholder = $('<div></div>');

            $placeholder.width( $this.width() ).height( $this.height() ).css({
                'display' : 'block',
                'flex'  : '2 0 auto'
            });

            $placeholder.insertBefore('footer');

            $this.addClass('sticky').insertBefore('footer'); */


        });

        $(document.body).on('disappear', '#ut-custom-contact-section', function() {



        });

        /* Custom Cursor
        ================================================== */
        $('#ut-hover-cursor').ut_require_js({
            plugin: 'UT_Animated_Cursor',
            source: 'customcursor',
            ieblock: true, // no IE support
            callback: function () {

                new window.UT_Animated_Cursor( document.getElementById("ut-hover-cursor") );

            }
        });


    });

    // UT Adaptive Images
    window.UT_Adaptive_Images = {

        image_observer: '',

        get_next_image_size: function( current ) {

            var base_sizes = [300, 500, 750, 1000, 1500, 2500];

            for( var i = 0; i < base_sizes.length; i++) {

                if( base_sizes[i] === parseInt(current) ) {

                    if( base_sizes[i+1] !== undefined ) {

                        return base_sizes[i+1];

                    } else {

                        return base_sizes[i];

                    }

                }

            }

        },

        get_responsive_image: function( element, parent ) {

            var images  = $(element).data('adaptive-images'),
                image_found = false;

            if( typeof images !== "undefined" ){

                var parent_width = parent ? $(element).parent().width() : $(element).outerWidth();
                var modern_media_query = window.matchMedia( "screen and (-webkit-min-device-pixel-ratio:2)");

                for( var key in images ) {

                    if( ( parent_width + 280 ) < key ) {

                        if( modern_media_query.matches ) {

                            var next = UT_Adaptive_Images.get_next_image_size(key);

                            // try to load larger image for retina image
                            if( images[next] !== undefined ) {

                                image_found = true;
                                return images[next];

                            }

                        }

                        image_found = true;
                        return images[key];

                    }

                }

                // no image fits the current container ( large container )
                if( !image_found ) {



                }

            }

            return false;

        },

        load_responsive_background_image: function( element ) {

            var image = UT_Adaptive_Images.get_responsive_image( element, false );

            if( image ) {

                element.style.backgroundImage = 'url(\'' + image + '\')';

            } else if (element.getAttribute('data-src')) { // default image

                element.style.backgroundImage = 'url(\'' + element.getAttribute('data-src') + '\')';

            }

        },

        load_responsive_image: function( element ) {

            var image = UT_Adaptive_Images.get_responsive_image( element, true );

            if( $(element).hasClass('ut-lazy-wait') ) {
                return false;
            }

            if( image ) {

                element.src = image;

            } else if (element.getAttribute('data-src')) { // default image

                element.src = element.getAttribute('data-src');

            }

        },

        init_observer: function( selector ) {

            this.image_observer = lozad( selector, {
                rootMargin: '100%',
                load: function( element ) {

                    UT_Adaptive_Images.load_responsive_image( element );

                },
                loaded: function(el) {

                    var $el = $(el);

                    $el.addClass("ut-image-loaded loaded");

                    if( $el.hasClass('ut-portfolio-featured-image') ) {

                        $el.closest(".ut-portfolio-item").addClass('ut-portfolio-featured-image-loaded');

                    }

                    if( $el.closest('.ut-image-gallery-image').length ) {

                        $el.closest(".ut-image-gallery-item").addClass("ut-image-loaded");

                        // optional box shadow
                        $el.siblings('.ut-box-shadow-lazy').addClass('ut-box-shadow-ready');

                    }

                    $el.delay(200).queue(function () {

                        $.force_appear();

                    });

                    // re-observe till lazy class has been removed
                    if( $el.hasClass('ut-lazy-wait') ) {

                        $el.data('loaded', false );
                        $el.attr('data-loaded', "false" );

                        UT_Adaptive_Images.image_observer.observe(el);

                    }

                }

            });

            this.image_observer.observe();

        },

        init_images: function( force ) {

            var images = document.querySelectorAll('.ut-adaptive-image');

            UT_Adaptive_Images.init_observer( images );

        }

    };

    UT_Adaptive_Images.init_images();

    var resize_timeout;

    $(window).on('resize orientationchange load', function(){

        clearTimeout( resize_timeout );

        resize_timeout = setTimeout(function(){

            $('.ut-adaptive-image').each(function (index, element ) {

                if( $(element).is(":visible") && $(element).parent().is(":visible") && $(element).parent().width() + $(element).parent().height() > 0  ) {

                    UT_Adaptive_Images.load_responsive_image( element );

                }

            });

        }, 250 );

    });

    /* check if we have video players available */
    if( $(".ut-selfvideo-player", '#ut-hero').length ) {

        $(".ut-selfvideo-player", '#ut-hero').each(function() {

            var $videoplayer = this,
                playervolume = $(this).attr("volume") / 100;

            /* set volume */
            $videoplayer.volume=playervolume;

            $('.ut-video-control', '#ut-hero').not('.youtube').on( 'click', function( event ) {

                if( $(this).hasClass("ut-unmute") ) {

                    $videoplayer.muted=false;
                    $(this).removeClass("ut-unmute").addClass("ut-mute");

                } else {

                    $videoplayer.muted=true;
                    $(this).removeClass("ut-mute").addClass("ut-unmute");

                }

                $(this).addClass("ut-player-assigned");

                event.preventDefault();

            });

        });

        $('.ut-video-control').not('.youtube').not('.ut-player-assigned').on( 'click', function( event ) {

            var player_id = $(this).data("for"),
                $videoplayer = $('#'+player_id)[0];

            if( $(this).hasClass("ut-unmute") ) {

                $videoplayer.muted=false;
                $(this).removeClass("ut-unmute").addClass("ut-mute");

            } else {

                $videoplayer.muted=true;
                $(this).removeClass("ut-mute").addClass("ut-unmute");

            }

            event.preventDefault();

        });

    }

    function isInViewport(element) {

        const rect = element.getBoundingClientRect();
        return (
            rect.top >= 0 &&
            rect.left >= 0 &&
            rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
            rect.right <= (window.innerWidth || document.documentElement.clientWidth)
        );

    }

    $(window).on("load", function () {

        var found = false;

        setTimeout( function () {

            if( !$('.ut-content-block-hero').length ) {
                return false;
            }

            $('.ut-vc-offset-anchor-top').each(function () {

                if( isInViewport(this) && !found ) {

                    if (site_settings.navigation === 'default') {

                        var $current = $('.ut-horizontal-navigation a[href*="#' + $(this).data('id') + '"]');

                        $current.addClass('selected');

                        // check for parent
                        if ($current.closest('ul').hasClass('sub-menu')) {

                            $current.closest('ul').siblings('a').addClass('selected');

                        }

                    } else if (site_settings.navigation === 'side') {

                        $('#bklyn-sidenav a[href*="#' + $(this).data('id') + '"]').addClass('selected');

                    }

                    found = true;
                    return true;

                }

            });

        }, 100 );

        waypoints_active = true;

    });

})(jQuery);
/* ]]> */