// source --> https://3mon.sk/wp-content/themes/Neuros/js/theme.js?ver=7.1.3 
"use strict";

function initFloatPlaceholderInput(selector) {
    if(selector) {
        jQuery(selector).each(function() {
            if(!jQuery(this).parent('.input-floating-wrap').length) {
                jQuery(this).wrap('<span class="input-floating-wrap"></span>');
                let placeholder = jQuery(this).attr('placeholder');
                if(!placeholder) {
                    placeholder = 'Select';
                }
                if(jQuery(this).prop("tagName").toLowerCase() == 'select' && jQuery(this).closest('.form-row').length) {
                    placeholder = jQuery(this).attr('data-placeholder');
                }
                jQuery(this).after('<span class="floating-placeholder">' + placeholder + '</span>');
            }
        });
    } else {
            const inputs = [
            '.wpforms-form input[placeholder]:not([placeholder=""])',
            '.wpforms-form textarea[placeholder]:not([placeholder=""])',
            '.woocommerce input[placeholder]:not([placeholder=""]):not(.qty):not(.woocommerce-Input[type="password"]):not(.search-form-field)',
            '.woocommerce textarea[placeholder]:not([placeholder=""])',
            '.post-comments-wrapper input[placeholder]:not([placeholder=""])',
            '.post-comments-wrapper textarea[placeholder]:not([placeholder=""])',
            '.mc4wp-form input[placeholder]:not([placeholder=""])',
            '.mc4wp-form textarea[placeholder]:not([placeholder=""])',
            '.neuros-no-result-search-form input[placeholder]:not([placeholder=""])',
            '.wp-block-search .wp-block-search__input[placeholder]:not([placeholder=""])',
            '.wpforms-form select:has(option.placeholder)',
            '.woocommerce form .form-row select'
        ];
        const $inputs = jQuery(inputs.join(', '));
        $inputs.each(function() {
            if(!jQuery(this).parent('.input-floating-wrap').length) {
                jQuery(this).wrap('<span class="input-floating-wrap"></span>');
                let placeholder = jQuery(this).attr('placeholder');
                if(!placeholder) {
                    placeholder = 'Select';
                }
                if(jQuery(this).prop("tagName").toLowerCase() == 'select' && jQuery(this).closest('.form-row').length) {
                    placeholder = jQuery(this).attr('data-placeholder');
                }
                jQuery(this).after('<span class="floating-placeholder">' + placeholder + '</span>');
            }
        });
    }    
}

function side_panel_open() {
    jQuery('.dropdown-trigger').on('click', function() {
        jQuery('.slide-sidebar-wrapper, .body-overlay').addClass('active');
        jQuery('.dropdown-trigger-item', this).addClass('active');
    });
    jQuery('.slide-sidebar-close, .body-overlay').on('click', function() {
        jQuery('.slide-sidebar-wrapper, .body-overlay').removeClass('active');
        jQuery('.dropdown-trigger .dropdown-trigger-item').removeClass('active');
    });
}

function extra_panel_open() {
    jQuery('.extra-trigger').on('click', function() {
        jQuery('.slide-extra-wrapper, .body-overlay').addClass('active');
    });
    jQuery('.slide-extra-close, .body-overlay').on('click', function() {
        jQuery('.slide-extra-wrapper, .body-overlay').removeClass('active');
    });
}

function search_panel_open() {
    jQuery('.search-trigger').on('click', function() {
        jQuery('.site-search, .body-overlay').addClass('active');
        jQuery('.site-search .search-form .search-form-field').focus();
    });
    jQuery('.site-search-close, .body-overlay').on('click', function() {
        jQuery('.site-search, .body-overlay, .mobile-header-menu-container').removeClass('active');
    });
}

function switch_form_columns() {
    jQuery('.tab-columns-switcher').on('click', function() {
        jQuery('.tab-column', jQuery(this).parents('.tab-columns')).toggleClass('hidden');
    });
}

function sticky_menu_active (once){
    if ( jQuery('.sticky-header').length ) {
        jQuery('.sticky-header').each(function(){
            const obj = jQuery(this);
            const header = obj.next('.sticky-header-on');
            const el_offset = header.offset().top + header.innerHeight();

            if(once) {
                const st = jQuery(window).scrollTop();
                if(st <= el_offset) {
                    obj.removeClass('sticky-active');                   
                } 
                else {
                    obj.addClass('sticky-active');
                } 
            }
            
            jQuery(window).scroll(function() {
                const st = jQuery(this).scrollTop();
                if(st <= el_offset) {
                    obj.removeClass('sticky-active');                   
                } 
                else {
                    obj.addClass('sticky-active');
                } 
            });
        });
    }
}

function menu_text_animate() {
    jQuery('.header .main-menu > li > a').wrapInner('<span class="text-active"></span>');
    jQuery('.header .main-menu > li > a > span.text-active').each(function() {
        jQuery(this).clone().removeClass('text-active').appendTo(jQuery(this).parent());
    });
}

function mobile_menu_open() {
    jQuery('.menu-trigger').on('click', function() {
        jQuery('.mobile-header-menu-container, .body-overlay').addClass('active');
    });
    jQuery('.menu-close, .body-overlay').on('click', function() {
        jQuery('.mobile-header-menu-container, .body-overlay').removeClass('active');
    });
}

function compact_menu_open() {
    jQuery('.compact-menu-trigger').on('click', function() {
        jQuery('.alter-menu-wrapper, .body-overlay').addClass('active');
    });
    jQuery('.alter-menu-close, .body-overlay').on('click', function() {
        jQuery('.alter-menu-wrapper, .body-overlay').removeClass('active');
    });
}

function simple_sidebar_open() {
    jQuery('.simple-sidebar-trigger').on('click', function() {
        if (jQuery(window).width() < 992) {
            jQuery('.simple-sidebar, .body-overlay').addClass('active');
        }
    });
    jQuery('.shop-hidden-sidebar-close, .body-overlay').on('click', function() {
        jQuery('.simple-sidebar, .body-overlay').removeClass('active');
    });
}

function widget_list_hierarchy_init (){
    widget_archives_hierarchy_controller ( '.widget .wp-block-page-list li', 'ul.wp-block-navigation__submenu-container', 'parent-archive', 'widget-archive-trigger' );
    widget_archives_hierarchy_controller ( '.widget ul li', 'ul.children', 'parent-archive', 'widget-archive-trigger' );
    widget_archives_hierarchy_controller ( '.widget_nav_menu .menu li', 'ul.sub-menu', 'parent-archive', 'widget-menu-trigger' );
    widget_archives_hierarchy_controller ( '.widget_neuros_nav_menu_widget .menu li', 'ul.sub-menu', 'parent-archive', 'widget-menu-trigger' );
}

function widget_archives_hierarchy_controller ( list_item_selector, sublist_item_selector, parent_class, trigger_class ){
    jQuery( list_item_selector ).has( sublist_item_selector ).each( function (){
        jQuery( this ).addClass( parent_class );
        jQuery(this).append( "<span class='" + trigger_class + "'></span>" );
    });
    jQuery( list_item_selector + ">" + sublist_item_selector ).css( "display", "none" );
    jQuery( list_item_selector + ">.item-wrapper>" + sublist_item_selector ).css( "display", "none" );
    jQuery( document ).on( "click", list_item_selector + " ." + trigger_class, function (){
        var el = jQuery(this);
        var sublist = el.siblings( sublist_item_selector );
        var sublist_alt = el.siblings('.item-wrapper').children( sublist_item_selector );
        if ( !sublist.length && !sublist_alt.length ) return;
        sublist = sublist.first();
        sublist_alt = sublist_alt.first();
        if( !el.hasClass('active') ){
            var currentParents = el.parents('.menu-item');
            el.parents().siblings('.menu-item').find("." + trigger_class).removeClass('active');
            el.parents().siblings('.menu-item').find('.sub-menu').slideUp(300);
        }
        el.toggleClass('active');
        sublist.slideToggle( 300 );
        sublist_alt.slideToggle( 300 );
    });
}

function fix_responsive_iframe () {
    jQuery('.video-embed > div').each(function() {
        jQuery(this).unwrap('.video-embed');
    });
}

function elements_slider_init () {
    jQuery('.elementor-element .owl-carousel').each( function() {
        let slider              =  jQuery(this),
            slider_options      = slider.data('slider-options'),
            itemsMobile         = 1,
            itemsTablet         = 1,
            itemsDesktop        = 1,
            dotsContainer       = slider_options['dotsContainer'],
            dotsContainerMobile = '',
            navContainer       = slider_options['navContainer'],
            navContainerMobile = '';

        slider_options['rtl'] = !!theme.rtl;
        if ( slider_options['dotsContainerMobile'] ) {
            dotsContainerMobile = slider_options['dotsContainerMobile'];
        } else {
            dotsContainerMobile = slider_options['dotsContainer'];
        }
        if ( slider_options['navContainerMobile'] ) {
            navContainerMobile = slider_options['navContainerMobile'];
        } else {
            navContainerMobile = slider_options['navContainer'];
        }
        if ( !slider_options['navText'] ) {
            slider_options['navText'] = ['', ''];
        }

        switch (slider_options['items']) {
            case 2:
                itemsMobile     = 1;
                itemsTablet     = 2;
                itemsDesktop    = 2;
                break;
            case 3:
                itemsMobile     = 1;
                itemsTablet     = 2;
                itemsDesktop    = 3;
                break;
            case 4:
                itemsMobile     = 1;
                itemsTablet     = 2;
                itemsDesktop    = 4;
                break;
            case 5:
                itemsMobile     = 1;
                itemsTablet     = 2;
                itemsDesktop    = 5;
                break;
            case 6:
                itemsMobile     = 1;
                itemsTablet     = 3;
                itemsDesktop    = 6;
                break;
            default:
                break;
        }
        
        slider_options['responsive'] = {
            0:  {
                items: itemsMobile,
                dotsContainer: dotsContainerMobile,
                navContainer: navContainerMobile ? navContainerMobile : false
            },
            576:  {
                items: slider_options['items'] > 5 ? 2 : itemsTablet,
                dotsContainer: dotsContainerMobile
            },
            768:  {
                items: itemsTablet,
                dotsContainer: dotsContainerMobile
            },
            992:  {
                items: itemsDesktop,
                dotsContainer: dotsContainer
            }
        };

        if((slider.hasClass('project-listing-wrapper') || slider.hasClass('service-slider-listing')) && slider_options['items'] > 3) {
            slider_options['responsive'][992] = {
                items: 3,
                dotsContainer: dotsContainer
            };
            slider_options['responsive'][1440] = {
                items: itemsDesktop,
                dotsContainer: dotsContainer
            };
        }
        
        if(slider.hasClass('content-slider')) {
            slider_options = {
                ...slider_options,
                onInitialized: function() {
                    const counters = slider.find('.elementor-counter-number');
                    if(counters.length) {
                        counters.each(function() {
                            jQuery(this).numerator( {
                                duration: jQuery(this).data('duration'),
                                delimiter: jQuery(this).data('delimiter'),
                                toValue: jQuery(this).data('toValue'),
                                fromValue: jQuery(this).data('fromValue')
                            } );
                        });
                    }                    
                }
            };
        }

        slider.owlCarousel(slider_options);
    });
}

// Isotope init
function isotope_init() {
    if ( jQuery('.isotope').length > 0 ) {
        jQuery('.isotope-trigger').isotope({
            itemSelector:   '.isotope-item',
            gutter:         0,
            layoutMode: 'masonry',
            masonry: {
                columnWidth: '.grid-sizer'
            }
        });
        jQuery('.gallery-filter-control-list').on( 'click', '.gallery-filter-control-item', function() {
            var filterValue = jQuery(this).addClass('active').attr('data-filter');
            jQuery(this).siblings().removeClass('active')
            jQuery(this).closest('.isotope-filter').find('.isotope-trigger').isotope({ filter: filterValue });
        });
    }
}

function help_item_acardeon() {
    jQuery('.help-item').each( function() {
        jQuery('.help-item-title', this).on('click', function() {
            jQuery(this).siblings('.help-item-content').slideToggle(300).parents('.help-item').toggleClass('active');
        });
    });
}

function custom_video_play_button() {
    jQuery('.mejs-overlay-button').each(function () {
        jQuery(this).html('<svg aria-hidden="true" class="progress" width="70" height="70" viewbox="0 0 70 70"><path class="progress__circle" d="m35,2.5c17.955803,0 32.5,14.544199 32.5,32.5c0,17.955803 -14.544197,32.5 -32.5,32.5c-17.955803,0 -32.5,-14.544197 -32.5,-32.5c0,-17.955801 14.544197,-32.5 32.5,-32.5z" /><path class="progress__path" d="m35,2.5c17.955803,0 32.5,14.544199 32.5,32.5c0,17.955803 -14.544197,32.5 -32.5,32.5c-17.955803,0 -32.5,-14.544197 -32.5,-32.5c0,-17.955801 14.544197,-32.5 32.5,-32.5z" pathLength="1" /></svg>');
    });
}

function background_image_parallax(object, multiplier){
    if ( object.length > 0 ) {
        multiplier = typeof multiplier !== 'undefined' ? multiplier : 0.5;
        multiplier = 1 - multiplier;
        var doc = jQuery(document);
        if (jQuery(window).width() >= 992) {
            var from_top = doc.scrollTop() - object.offset().top,
                bg_css = (multiplier * from_top) + 'px';
            object.css({
                'background-position-y': bg_css
            });
        } else {
            object.css({
                'background-position-y': ''
            });
        }
        jQuery(window).scroll(function () {
            if (jQuery(window).width() >= 992) {
                var from_top = doc.scrollTop() - object.offset().top,
                    bg_css = (multiplier * from_top) + 'px';
                object.css({
                    'background-position-y': bg_css
                });
            } else {
                object.css({
                    'background-position-y': ''
                });
            }
        });
    }
}

// Init WPForms submit button

function initWPFormsSubmitButton() {
    jQuery('.wpforms-submit').html(jQuery('.wpforms-submit').html() + '<span class="icon-button-arrow left"></span><span class="icon-button-arrow right"></span><span class="button-inner"></span>');
    jQuery('.wpforms-page-button').html(jQuery('.wpforms-page-button').html() + '<span class="icon-button-arrow left"></span><span class="icon-button-arrow right"></span><span class="button-inner"></span>');
    jQuery('.mc4wp-form-fields button').html(jQuery('.mc4wp-form-fields button').html() + '<span class="icon-button-arrow left"></span><span class="icon-button-arrow right"></span><span class="button-inner"></span>');
}

// Scroll To  Top
function scroll_to_top_init() {
    var scrollTop = jQuery(window).scrollTop();
    if (scrollTop > 600) {
        jQuery('.footer-scroll-top').addClass('show');
    } else {
        jQuery('.footer-scroll-top').removeClass('show');
    }
}

function footer_scroll_top() {
    jQuery('.footer-scroll-top button', '.body-container').on('click', function() {
        jQuery('html, body').animate({
            scrollTop: 0
        }, 500);
    });
}

// Mobile Menu
function mobile_menu(){
    jQuery('.mobile-header-menu-container .main-menu, .extra-menu').find('.menu-item').each(function(i, el){
        if( jQuery(el).find('.sub-menu').length != 0 && jQuery(el).find('.sub-menu-trigger').length == 0 ){
            jQuery(el).append('<span class="sub-menu-trigger"></span>');
        }
    });

    jQuery('.sub-menu-trigger').off();
    jQuery('.sub-menu-trigger').on('click', function() {
        if( jQuery(this).parent().hasClass('active') ){
            jQuery(this).prev().slideUp();
            jQuery(this).parent().removeClass('active');
        } else {
            var currentParents = jQuery(this).parents('.menu-item');
            jQuery('.sub-menu-trigger').parent().not(currentParents).removeClass('active');
            jQuery('.sub-menu-trigger').parent().not(currentParents).find('.sub-menu').slideUp(300);

            jQuery(this).prev().slideDown();
            jQuery(this).parent().addClass('active');
        }
    });
}

// Alter Menu
function alter_menu(){
   jQuery('.alter-menu-wrapper .main-menu').find('.menu-item').each(function(i, el){
        if( jQuery(el).find('.sub-menu').length != 0 && jQuery(el).find('.sub-menu-trigger').length == 0 ){
            jQuery(el).append('<span class="sub-menu-trigger"></span>');
        }
     });

   jQuery('.sub-menu-trigger').off();
   jQuery('.sub-menu-trigger').on('click', function() {
        if( jQuery(this).parent().hasClass('active') ){
            jQuery(this).prev().slideUp();
            jQuery(this).parent().removeClass('active');
        } else {
	        var currentParents = jQuery(this).parents('.menu-item');
	        jQuery('.sub-menu-trigger').parent().not(currentParents).removeClass('active');
	        jQuery('.sub-menu-trigger').parent().not(currentParents).find('.sub-menu').slideUp(300);

	        jQuery(this).prev().slideDown();
	        jQuery(this).parent().addClass('active');
        }
   });
   jQuery('.alter-menu-wrapper .main-menu a').on('click', function() {
        jQuery('.site-search, .body-overlay, .alter-menu-wrapper').removeClass('active');
   });
}

// ---------------------- //
// --- Document Ready --- //
// ---------------------- //
jQuery(document).ready(function () {

    side_panel_open();
    extra_panel_open();
    search_panel_open();

    switch_form_columns();
    sticky_menu_active(true);

    mobile_menu_open();
    compact_menu_open();
    simple_sidebar_open();

    help_item_acardeon();

    scroll_to_top_init();
    footer_scroll_top();

    // Parallax
    background_image_parallax(jQuery('[data-parallax="scroll"]'), 0.7);    

    initFloatPlaceholderInput();

    
    mobile_menu();    
    alter_menu();

    menu_text_animate();

    initWPFormsSubmitButton();    

    // Custom Video Play Button
    setTimeout(custom_video_play_button, 800);
    
    widget_list_hierarchy_init();
    setTimeout(fix_responsive_iframe, 800);
    setTimeout(elements_slider_init, 500);
    setTimeout(isotope_init, 500);
});

// --------------------- //
// --- Window Resize --- //
// --------------------- //
jQuery(window).on('resize', function () {
    sticky_menu_active();
    mobile_menu_open();
    compact_menu_open();
    background_image_parallax(jQuery('[data-parallax="scroll"]'), 0.7);
});

// --------------------- //
// --- Window Scroll --- //
// --------------------- //
jQuery(window).on('scroll', function () {
    scroll_to_top_init();
});

(function ($){

    // Page Preloader
    var loader;
    $.fn.start_loader = start_loader;
    $.fn.stop_loader = stop_loader;

    $( document ).ready(function (){
        page_loader_controller ();
        
	    // AJAX Pagination for Elementor Post Listing
	    $('.elementor-widget').on('click', '.content-pagination a', function(e){
	        e.preventDefault();
	        var paged           = null;
	        var id              = $(this).parents('.elementor-widget').attr('data-id');
	        if ( $(this).hasClass('prev') ) {
	            paged = parseInt($(this).siblings('.current').text()) - 1;
	        } else if ( $(this).hasClass('next') ) {
	            paged = parseInt($(this).siblings('.current').text()) + 1;
	        } else {
	            paged = parseInt($(this).text());
	        }
	        var filter_term     = $('.filter-control-list .dot.active', $(this).parents('.archive-listing').siblings('.filter-control-wrapper')).attr('data-value');
	        var filter_taxonomy = $('.filter-control-list', $(this).parents('.archive-listing').siblings('.filter-control-wrapper')).attr('data-taxonomy');

	        genre_get_posts(paged, id, filter_term, filter_taxonomy);
	    });

	    // AJAX Filter for Elementor Post Listing
	    $('.elementor-widget').on('click', '.filter-control-list .filter-control-item', function(e){
	        e.preventDefault();
	        var paged           = 1;
	        var id              = $(this).parents('.elementor-widget').attr('data-id');
	        var filter_term     = $(this).attr('data-value');
	        var filter_taxonomy = $(this).parents('.filter-control-list').attr('data-taxonomy');
	        if ( filter_term === 'all' ) {
	            filter_term = null;
	        }

	        $(this).addClass('active').siblings('.filter-control-item').removeClass('active');

	        genre_get_posts(paged, id, filter_term, filter_taxonomy);
	    });
    });

    function page_loader_controller (){
        var page_loader, interval, timeLaps ;
        page_loader = $( '.page-loader' );
        timeLaps = 0;
        interval = setInterval( function (){
            var page_loaded = check_if_page_loaded ();
            timeLaps ++;
            if ( page_loaded ||  timeLaps == 12) {
                clearInterval ( interval );
                page_loader.stop_loader ();
            }
        }, 10);
    }

    function check_if_page_loaded (){
        var keys, key, i, r;
        if ( window.modules_state == undefined ) return false;
        r = true;
        keys = Object.keys( window.modules_state );
        for ( i = 0; i < keys.length; i++ ){
            key = keys[i];
            if ( !window.modules_state[key] ){
                r = false;
                break;
            }
        }
        return r;
    }

    function start_loader (){
        var loader_container;
        loader = jQuery( this );
        if ( !loader.length ) return;
        loader_container = loader[0].parentNode;
        if ( loader_container != null ){
            loader_container.style.opacity = 1;
            setTimeout( function (){
                loader_container.style.display = "block";
            }, 10);
        }
    }

    function stop_loader (){
        var loader_container;
        loader = jQuery( this );
        if ( !loader.length ) return;
        loader_container = loader[0].parentNode;
        if ( loader_container != null ){
            setTimeout( function (){
                loader_container.style.opacity = 0;
                setTimeout( function (){
                    loader_container.style.display = "none";
                }, 300);
            }, 300);
        }
    }    

    // Main AJAX function
    function genre_get_posts(paged = 1, id = null, filter_term = null, filter_taxonomy = null) {
        var ajax_url    = ajax_params.ajax_url;
        var args        = $('.archive-listing', '.elementor-element-' + id).attr('data-ajax');
        var widget      = $('.archive-listing', '.elementor-element-' + id).attr('data-widget');
        var classes     = $('.archive-listing-wrapper', '.elementor-element-' + id).attr('class');

        $.ajax({
            type:       'POST',
            url:        ajax_url,
            data:       {
                action:             'pagination',
                args:               args,
                widget:             widget,
                paged:              paged,
                classes:            classes,
                id:                 id,
                filter_term:        filter_term,
                filter_taxonomy:    filter_taxonomy
            },
            beforeSend: function (){
                var height = $('.archive-listing', '.elementor-element-' + id).outerHeight();
                $('.archive-listing', '.elementor-element-' + id).height(height).addClass('loading');
            },
            success:    function(data){
                $('.archive-listing', '.elementor-element-' + id).html(data);
                if ($(window.wp.mediaelement).length > 0) {
                    $(window.wp.mediaelement.initialize);
                }
                setTimeout(function() {
                    $('.archive-listing', '.elementor-element-' + id).removeAttr('style').removeClass('loading');
                }, 500);
                setTimeout(elements_slider_init, 300);
                setTimeout(fix_responsive_iframe, 600);
                setTimeout(custom_video_play_button, 800);
                setTimeout(isotope_init, 500);
                jQuery('body').trigger('genre_get_posts_success', [classes, id]);
            },
            error:      function(){
                $('.archive-listing', '.elementor-element-' + id).html('<p class="error">AJAX ERROR</p>');
            }
        });
    }


}(jQuery));
// source --> https://3mon.sk/wp-content/plugins/neuros-plugin/js/elementor-widgets.js?ver=7.1.3 
'use strict';

function animateHeading($scope) {
    if( $scope.data('settings') && $scope.data('settings')._animation && $scope.data('settings')._animation == 'neuros_heading_animation') {
        $scope.find('.neuros-heading-content').html($scope.find('.neuros-heading-content').html().replace(/(^|<\/?[^>]+>|\s+)([^\s<]+)/g, '$1<span class="word">$2</span>'));
        // $scope.find('.neuros-heading-content').contents().each(function() {
        //     if(this.nodeType === 3) {
        //         jQuery(this).wrap('<span></span>');
        //     }
        // });
        $scope.find('.neuros-heading-content .word').contents().each(function() {
            if(this.nodeType === 3) {
                jQuery(this).parent().html(jQuery(this).text().replace(/\S/g, '<span class="letter">$&</span>'));
            }
        });
        $scope.find('.neuros-heading-content .letter').each(function(index) {
            jQuery(this).css('animation-delay', index / 50 + 's');
        });
    }
}

function initModernProjects($el) {
    $el.find('.project-modern-listing .project-item-wrapper').first().addClass('active');
    $el.find('.project-modern-listing .project-item-modern-header').on('click', function() {
        var $projectItem = jQuery(this).closest('.project-item-wrapper');
        $projectItem.addClass('active');
        $projectItem.find('.project-item-modern-content').slideDown(400);
        $projectItem.siblings().removeClass('active');
        $projectItem.siblings().find('.project-item-modern-content').slideUp(400);
    });
}

function playProjectsSliderAudio($el) {
    $el.find('.project-listing-wrapper.project-slider-listing.content-type-audio').on('click', '.play-audio', function() {
        jQuery(this).closest('.owl-item').siblings().find('.project-audio-wrapper audio').each(function() {
            jQuery(this)[0].pause();
            jQuery(this)[0].currentTime = 0;
            jQuery(this).siblings('.play-audio').removeClass('active');
        });
        var audioElement = jQuery(this).siblings('audio')[0];
        if(audioElement.paused) {
            jQuery(this).addClass('active');
            audioElement.play();
        } else {
            audioElement.pause();
            audioElement.currentTime = 0;
            jQuery(this).removeClass('active');
        }
    });
}

function playListingAudio($el) {
    $el.find('.neuros-audio-listing').on('click', '.audio-item', function() {
        jQuery(this).closest('.audio-item-wrapper').siblings().find('.audio-item').each(function() {
            jQuery(this).removeClass('active');
            jQuery(this).find('audio')[0].pause();
            jQuery(this).find('audio')[0].currentTime = 0;
        });
        var audioElement = jQuery(this).find('audio')[0];
        if(audioElement.paused) {
            jQuery(this).addClass('active');
            audioElement.play();
        } else {
            audioElement.pause();
            audioElement.currentTime = 0;
            jQuery(this).removeClass('active');
        }
    });
}

function handleProjectsExcerptHeight() {
    jQuery('.project-listing-wrapper.project-slider-listing:not(.content-type-audio) .project-item').each(function() {
        const item = jQuery(this);
        const excerpt = jQuery(this).find('.post-excerpt-wrapper');
        excerpt.hide();
        item.on('mouseenter', function() {
            excerpt.delay(300).slideDown(300);
        });
        item.on('mouseleave', function() {
            excerpt.slideUp(300);
        });
   });
}

function initCardsProjects($scope) {
    jQuery('.body-container').css({
        overflow: 'visible'
    });
    const { ScrollObserver, valueAtPercentage } = aat;
    const cardsContainer = $scope.find('.project-cards-listing');
    const cards = $scope.find('.project-cards-listing .project-item-wrapper');
    cards.each(function(index) {
        if (index === cards.length - 1) {
            return;
        }
        const card = jQuery(this);                
        const toScale = 1 - (cards.length - 1 - index) * 0.05;
        const nextCard = cards[index + 1];
        const cardInner = card.find('.project-item');
        ScrollObserver.Element(nextCard, {
          offsetTop: 0,
          offsetBottom: window.innerHeight - card.height()
        }).onScroll(({ percentageY }) => {
            const scale = valueAtPercentage({
                from: 1,
                to: toScale,
                percentage: percentageY
            });
            cardInner.css('scale', scale);
            const filter = `brightness(${valueAtPercentage({
                from: 1,
                to: 0.6,
                percentage: percentageY
            })})`;
            cardInner.css('filter', filter);
            // jQuery(nextCard).css('padding-top', ((index + 1) * 20) + 'px');
        });
    });
}

function initMovingList($scope) {
    gsap.defaults({overwrite: "auto"});
    gsap.registerPlugin(ScrollTrigger);
    gsap.config({nullTargetWarn: false});
    $scope.find('.neuros-moving-list-widget').each(function(index) {
        const movingList = jQuery(this).find('.moving-list');
        // Calculate the x and xEnd values and divide them by 2
        const [x, xEnd] = (index % 2) ? 
        [(jQuery(this)[0].offsetWidth - movingList[0].scrollWidth) / 3, 5 / 2] : 
        [5 / 2, (jQuery(this)[0].offsetWidth - movingList[0].scrollWidth) / 3];
        gsap.fromTo(movingList[0], { x }, {
            x: xEnd,
            scrollTrigger: {
                trigger: jQuery(this)[0],
                scrub: 0.5, // Adjust this value to control the speed
            }
        });
    });
}

function initServicesButton($scope) {
    const items = $scope.find('.service-item');
    items.each(function() {
        const item = jQuery(this);
        item.on('mouseenter', function() {
            item.find('.button-container').slideDown(300);
        });
        item.on('mouseleave', function() {
            item.find('.button-container').slideUp(300);
        });
    });
}

jQuery(window).on('elementor/frontend/init', function () {
    elementorFrontend.hooks.addAction('frontend/element_ready/neuros_audio_listing.default', function ($scope) {
        playListingAudio($scope);
    });
    elementorFrontend.hooks.addAction('frontend/element_ready/neuros_blog_listing.default', function () {
        if ( jQuery('body').hasClass('elementor-editor-active') ) {
            setTimeout(elements_slider_init, 300);
            setTimeout(fix_responsive_iframe, 600);
            setTimeout(custom_video_play_button, 800);
        }
    });
    elementorFrontend.hooks.addAction('frontend/element_ready/neuros_gallery.default', function ($scope) {
        if ( jQuery('body').hasClass('elementor-editor-active') ) {
            setTimeout(elements_slider_init, 300);
            setTimeout(isotope_init, 2500);
        }
        if(jQuery('.cursor_drag', $scope).length > 0 && jQuery(window).width() >= 992) {
            const $slider = $scope.find('.gallery-wrapper');
            const cursor = jQuery('.cursor_drag', $scope);
            function showCustomCursor(event) {
                cursor.css('left', event.clientX-5).css('top', event.clientY-5);
            }
            $slider.mousemove(showCustomCursor);

            $slider.mouseleave(function(e) {
                if(!jQuery('body').hasClass('elementor-editor-active')) {
                    jQuery('.owl-stage', $scope).css({cursor: 'auto'});
                    jQuery('.gallery-item-link', $scope).css({cursor: 'auto'});
                    cursor.removeClass('active');
                    setTimeout(function() {
                        if(!cursor.hasClass('active')) {
                            cursor.hide();
                        }
                    }, 300); 
                }    
            });

            $slider.mouseenter(function(e) {
                if(!jQuery('body').hasClass('elementor-editor-active')) {
                    jQuery('.owl-stage', $scope).css({cursor: 'none'});
                    jQuery('.gallery-item-link', $scope).css({cursor: 'none'});
                    cursor.show();
                    setTimeout(function() {
                        cursor.addClass('active');
                    }, 10);  
                } 
            });
        }

    });    
    elementorFrontend.hooks.addAction('frontend/element_ready/neuros_projects_listing.default', function ($scope) {
        animateHeading($scope);
        if ( jQuery('body').hasClass('elementor-editor-active') ) {
            setTimeout(elements_slider_init, 500);
            setTimeout(isotope_init, 2500);
        }
        setTimeout(handleProjectsExcerptHeight, 500);
        if ( $scope.find('.project-modern-listing').length > 0 ) {
            var scopeID = $scope.attr('data-id');
            initModernProjects($scope);         
            jQuery('body').on('genre_get_posts_success', function(e, classes, id) {
                if(classes.indexOf('project-modern-listing') !== -1 && id === scopeID) {
                    initModernProjects($scope);
                }
            });
        }
        if ( $scope.find('.content-type-audio').length > 0 ) {
            playProjectsSliderAudio($scope);
        }
        if( $scope.find('.project-cards-listing').length > 0 ) {
            initCardsProjects($scope);
            var scopeID = $scope.attr('data-id');
            jQuery('body').on('genre_get_posts_success', function(e, classes, id) {
                if(classes.indexOf('project-cards-listing') !== -1 && id === scopeID) {
                    initCardsProjects($scope);
                }
            });
        }
    });
    elementorFrontend.hooks.addAction('frontend/element_ready/neuros_services_listing.default', function ($scope) {
        if ( jQuery('body').hasClass('elementor-editor-active') ) {
            setTimeout(elements_slider_init, 500);
        }
        animateHeading($scope);
        initServicesButton($scope);
        var scopeID = $scope.attr('data-id');
        jQuery('body').on('genre_get_posts_success', function(e, classes, id) {
            if(classes.indexOf('service-grid-listing') !== -1 && id === scopeID) {
                initServicesButton($scope);
            }
        });
    });
    elementorFrontend.hooks.addAction('frontend/element_ready/neuros_testimonial_carousel.default', function () {
        if ( jQuery('body').hasClass('elementor-editor-active') ) {
            setTimeout(elements_slider_init, 500);
        }
    });
    elementorFrontend.hooks.addAction('frontend/element_ready/neuros_image_carousel.default', function ($scope) {
        animateHeading($scope);
        if ( jQuery('body').hasClass('elementor-editor-active') ) {
            setTimeout(elements_slider_init, 500);
        }
    });
    elementorFrontend.hooks.addAction('frontend/element_ready/neuros_content_slider.default', function () {
        if ( jQuery('body').hasClass('elementor-editor-active') ) {
            setTimeout(elements_slider_init, 500);
        }
    });
    elementorFrontend.hooks.addAction('frontend/element_ready/neuros_wpforms.default', function () {
        if ( jQuery('body').hasClass('elementor-editor-active') ) {
            initFloatPlaceholderInput();
            initWPFormsSubmitButton();
        }
    });
    elementorFrontend.hooks.addAction('frontend/element_ready/neuros_mailchimp.default', function () {
        if ( jQuery('body').hasClass('elementor-editor-active') ) {
            initFloatPlaceholderInput();
            initWPFormsSubmitButton();
        }
    });
    elementorFrontend.hooks.addAction('frontend/element_ready/section.default', function () {
        if ( jQuery('body').hasClass('elementor-editor-active') ) {
            background_image_parallax(jQuery('[data-parallax="scroll"]'), 0.7);
        }
    });
    elementorFrontend.hooks.addAction('frontend/element_ready/neuros_heading.default', function ($scope) {
        animateHeading($scope);
    });
    elementorFrontend.hooks.addAction('frontend/element_ready/neuros_step_carousel.default', function ($scope) {
        animateHeading($scope);
        if ( jQuery('body').hasClass('elementor-editor-active') ) {
            setTimeout(elements_slider_init, 500);
        }
    });
    elementorFrontend.hooks.addAction('frontend/element_ready/image.default', function ($scope) {
        if ( jQuery(window).width() >= 1025 ) {
            const cursor = jQuery('.hovered-text', $scope);

            function showCustomCursor(event) {
                cursor.css('left', event.clientX).css('top', event.clientY);
            }
            if ( cursor.length > 0 ) {
                $scope.mousemove(showCustomCursor);

                $scope.mouseleave(function (e) {
                    if (!jQuery('body').hasClass('elementor-editor-active')) {
                        jQuery('a', $scope).css({cursor: 'auto'});
                        $scope.css({cursor: 'auto'});
                        cursor.removeClass('active');
                    }
                });

                $scope.mouseenter(function (e) {
                    if (!jQuery('body').hasClass('elementor-editor-active')) {
                        jQuery('a', $scope).css({cursor: 'none'});
                        $scope.css({cursor: 'none'});
                        cursor.addClass('active');
                    }
                });
            }
        }
        if ( $scope.hasClass('elementor-image-scroll-animation-on') ) {
        	const { ScrollObserver, valueAtPercentage } = aat;
		    const image = $scope.find('img');
		    image.each(function(index) {
		        ScrollObserver.Element(jQuery(this)[0], {
		          offsetTop: 250,
		          offsetBottom: 0
		        }).onScroll(({ percentageY }) => {
		            const transform = `perspective(1200px) rotateX(${valueAtPercentage({
		                from: 15,
		                to: 0,
		                percentage: percentageY
		            })}deg)`;
		            jQuery(this).css('transform', transform);
		        });
		    });
        }
    });
    elementorFrontend.hooks.addAction("frontend/element_ready/neuros_tabs.default", function (e) {
        let d = e.find(".neuros_tabs_titles_container"),
            s = e.find(".neuros_tabs_content_container");
        jQuery(d).find(".neuros_tab_title_item").first().addClass("active");
        if( jQuery('body').hasClass('elementor-editor-active') ) {
            return;
        }
        var tab_content_first_class = jQuery(d).find(".neuros_tab_title_item").first().attr("data-id");        
        jQuery(d).find(".neuros_tab_title_item").each(function() {
            let e = jQuery(this).attr("data-id");
            if(e) {
                jQuery('.elementor #' + e).removeClass("active").addClass("hidden");
            }            
        });
        if(tab_content_first_class) {
            jQuery('.elementor #' + tab_content_first_class).addClass("active").removeClass("hidden");
        }        
        jQuery(s).find(".neuros_tab_content_item").first().addClass("active");
        e.find(".neuros_tab_title_item a").on("click", function () {
            let e = jQuery(this).parent().attr("data-id");
            if(!jQuery(this).parent().is(".active")) {
                d.find(".active").removeClass("active");
                s.find(".active").removeClass("active");
                if(e) {
                    var all_ids = [];
                    jQuery(d).find(".neuros_tab_title_item").each(function() {
                        let e = jQuery(this).attr("data-id");
                        if(e) {
                            all_ids.push('.elementor #' + e);
                            var swiper = jQuery('.elementor #' + e).find('.swiper-container');
                            if(swiper.length) {
                                setTimeout(function(){ 
                                    window.dispatchEvent(new Event('resize')); 
                                }, 500);
                            }
                        }
                    });
                    var all_ids_str = all_ids.join();
                    jQuery(all_ids_str).removeClass("active").addClass("hidden");
                }
                jQuery(this).parent().addClass("active"); 
                if(e) {
                    jQuery('.elementor #' + e).addClass("active").removeClass("hidden"); 
                    s.find("#" + e).addClass("active");
                }
            }
        });
    });

    elementorFrontend.hooks.addAction("frontend/element_ready/neuros_moving_list.default", function (e) {
        initMovingList(e);
    });

    elementorFrontend.hooks.addAction('frontend/element_ready/neuros_case_study_listing.default', function () {
        if ( jQuery('body').hasClass('elementor-editor-active') ) {
            setTimeout(elements_slider_init, 500);
            setTimeout(isotope_init, 500);
        }
    });
});