HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux vmi1674223.contaboserver.net 5.4.0-182-generic #202-Ubuntu SMP Fri Apr 26 12:29:36 UTC 2024 x86_64
User: root (0)
PHP: 7.4.3-4ubuntu2.22
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/onlineshop/wp-content/themes/nautica/js/engo-apps.js
window.jQuery = window.$ = jQuery;
var $window = $(window);
var Engo_Apps = {
    start: function() {
        "use strict";
        this.engoMobiledetect();
        this.stickyHeader();
        this.offcanvasMenu.start();
        this.megaMenu.start();
        this.wowAnimate();
        this.slider.start();
        this.outTeam();
        this.faq();
        this.woocommerce.start();
        this.backToTop();
    },
    engoMobiledetect: function() {
        var engomobile;
        if (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {
            engomobile = true;
            $("html").addClass("mobile");
        }
        else {
            engomobile = false;
            $("html").addClass("no-mobile");
        }
        return engomobile;
    },
    stickyHeader: function() {
        "use strict";
        var self = this;
        if (($(window).width() >= 1024) && (self.engoMobiledetect() == false) && ($('.engoj-sticky-header').length > 0)) {
            var stickyelement = $('.engoj-sticky-header');
            if (stickyelement.hasClass('no-sticky')) return false;
            else {
                var engostickyonTop = stickyelement.offset().top;
                $(window).scroll(function () {
                    if ($(window).scrollTop() > engostickyonTop) {
                        stickyelement.addClass("stick");
                        stickyelement.css({position: 'fixed', top: '0px'});
                    } else {
                        stickyelement.css({position: 'relative', top: '0px'});
                        stickyelement.removeClass("stick");
                    }
                });
            }
        }


    },
    offcanvasMenu: {
        start: function() {
            var self = this;
            self.offcanvas_position();
            $window.on('scroll', function () {
                self.offcanvas_position();
            });
            $('[data-toggle="offcanvas"], .btn-offcanvas').click(function () {
                $(this).toggleClass('on');
                $('.row-offcanvas').toggleClass('active') ;
            });

            $("#main-menu-offcanvas .caret").click( function(){
                $(this).parent().siblings().removeClass('open');
                $(this).parent().toggleClass('open');
                return false;
            } );
            $('.showright').click( function(){
                $('.offcanvas-showright').toggleClass('active');
            } );
        },
        offcanvas_position: function () {
            var scroll_Top = $window.scrollTop();
            if (scroll_Top >= 1) {
                if($('[data-toggle="offcanvas"]').hasClass('on')) {
                    if(scroll_Top >= 40) {
                        $('[data-toggle="offcanvas"]').css({'position':'absolute','top':'4px'});
                    } else {
                        $('[data-toggle="offcanvas"]').removeAttr('style');
                    }
                } else {
                    $('[data-toggle="offcanvas"]').css({'position':'absolute','top':'4px'});
                }
            } else {
                $('[data-toggle="offcanvas"]').removeAttr('style');
            }
        }
    },
    megaMenu: {
        start: function(){
            this.horizontal();
            this.vertical();
            this.toogleCategory();
        },
        horizontal: function() {
          /** Mega menu - horizontal mega**/
              $(".engo-horizontal-megamenu ul.megamenu > li.dropdown").each(function () {
                  var dropdown        = $(this).children(".dropdown-menu");
                  var megamenu       = $(this).parent();

                  dropdown.css("right", "auto");

                  var widthElement = $(this).children("a").outerWidth()/2;
                  var arrowElement = $(this).find(".arrow").outerWidth();
                  var marginElement = 0;
                  var elementPadding = (dropdown.outerHeight() - dropdown.height)/2;
                  if($(this).hasClass('has-mega')) {
                      /** dropdown begin vs megamenu **/
                      var dropdown_begin_mega = $(this).offset().left - megamenu.offset().left;
                      if($(this).hasClass('aligned-fullwindown')) {
                          /** dropdown begin vs window **/
                          var dropdown_begin = $(this).offset().left;
                          dropdown.css({'left':-dropdown_begin,'width':$(window).width()});
                      } else if($(this).hasClass('aligned-fullwidth')) {
                          dropdown.css({'left':- dropdown_begin_mega,'width':megamenu.outerWidth()});
                      } else if($(this).hasClass('aligned-right')) {
                          var dropdown_end_right = (megamenu.offset().left + megamenu.outerWidth()) - ($(this).offset().left + $(this).outerWidth()) ;
                          dropdown.css({'right':-dropdown_end_right});
                      } else if($(this).hasClass('aligned-left')) {
                          dropdown.css({'left':-dropdown_begin_mega});
                      }  else if($(this).hasClass('aligned-right-window')) {
                          var window_end_right = - ($(window).width() - megamenu.offset().left - megamenu.outerWidth() );
                          dropdown.css({'right':window_end_right});
                      } else {
                          var end_right     = ($(window).width() - (dropdown.offset().left + dropdown.outerWidth()));
                          var end_right2    = ($(window).width() - (megamenu.offset().left + megamenu.outerWidth()));
                          if(end_right2 > end_right) {
                              $(dropdown).css({"right":"0", "left":"auto"});
                          }
                      }


                  } else {
                  }
                  $(this).find(".arrow").css({"margin-left": widthElement-arrowElement/2, "margin-top": -elementPadding});

                  $(this).hover(function(){
                      $("ul.megamenu > li").removeClass("active");
                      $(this).addClass("active");
                  },function () {
                      $(this).removeClass("active");
                  });
              });



        },
        vertical: function(){
        /** Mega menu - vertical mega**/
        $(".engo-vertical-megamenu ul.megamenu > li.dropdown").each(function () {
            var dropdown        = $(this).children(".dropdown-menu");
            var megamenu       = $("ul.megamenu");
            var this_toggle = $(this).parent().parent();
            var marginElement = 0;

            if($(this).hasClass('has-mega')) {
                if($(this).hasClass('aligned-fullwidth') || $(this).hasClass('aligned-fullwindown')) {
                    $(dropdown).attr("style","width:" + ($(window).width() - this_toggle.outerWidth())+"px !important; right:"+ -($(window).width() - this_toggle.outerWidth())+"px;");
                } else if($(this).hasClass('aligned-right') || $(this).hasClass('aligned-left')) {
                    $(dropdown).css({'right': - dropdown.outerWidth(true)});
                } else {
                    $(dropdown).css({'right': - dropdown.outerWidth(true)});
                }
            }else {
                $(dropdown).css({'right': - dropdown.outerWidth(true)});
            }

            var dropdownHeight = $(dropdown).outerHeight();
            var heightElement = $(this).children("a").outerHeight()/2;
            var arrowElement = $(this).find(".arrow").outerHeight();


            $(dropdown).css("top", -dropdownHeight/2 + heightElement);

            var end_bottom     = $(window).height() - (dropdown.outerHeight() + dropdown.offset().top);
            if(end_bottom <= 0) {
                if($(window).height() > dropdown.outerHeight()) {
                    $(dropdown).css("top", - ($(this).offset().top - ($(window).height() - dropdown.outerHeight())/2) );
                    marginElement = ($(window).height() - dropdown.outerHeight())/2;
                } else {
                    $(dropdown).css("top",- $(this).offset().top);
                }
            }

            $(this).find(".arrow").css("top", marginElement + dropdownHeight/2 - arrowElement/2);

            $(this).hover(function(){
                $("ul.megamenu > li").removeClass("active");
                $(this).addClass("active");
            },function () {
                $(this).removeClass("active");
            });

        });


        },
        verticalOffCanvas: function() {
            "use strict";
            /** toggle menu header v5 **/
                var self = this;
            var toggle_background = $(".engo-toggle-menu-position").attr("data-style");
            var screen_height = $(window).height();
            $("body").append("<div class='engo-menu-toggle-background'></div>");
            $(".engo-vertical-fixed-block").addClass(toggle_background);
            var ignore_close = false;
            var nav_collapse = $(".engo-vertical-fixed-block > nav > .navbar-collapse", "#engo-mainmenu");
            nav_collapse.attr('style', 'height:' + screen_height + 'px !important');
            var this_ul_mega = $(".engo-vertical-fixed-block > nav > .navbar-collapse > ul", "#engo-mainmenu");
            $("#search-box-v5").css({"top": this_ul_mega.offset().top + this_ul_mega.outerHeight()});

            $(".engo-toggle-menu-position").click(function () {
                    $(this).toggleClass("on");
                    $(".engo-menu-toggle-background").toggleClass("show " + toggle_background);
                    $(".navbar-collapse").toggleClass("open");
                    $("#search-box-v5").toggleClass("active");
            });
            $(".engo-menu-toggle-background").click(function(){
                $(".engo-toggle-menu-position").trigger("click");
            });

        },
        toogleCategory: function(){
            /** Vervical toggle menu **/
            $('.engo-toggle-dropdown-menu ul li.item-toggle-dropdown').each(function(){
                if ($(this).find('.item-toggle-menu').length > 0) {
                    $(this).append('<i class="closed toggle-button fa fa-caret-down"></i>');
                }
                $(this).find('.item-toggle-menu').slideUp('fast');
            });
            $( "body" ).on( "click", '.engo-toggle-dropdown-menu ul li.item-toggle-dropdown .closed', function(){
                $(this).parent().find('.item-toggle-menu').first().slideDown('fast');
                $(this).removeClass('closed').removeClass('fa-caret-down').addClass('opened').addClass('fa-caret-up');
            });
            $( "body" ).on( "click", '.engo-toggle-dropdown-menu ul li.item-toggle-dropdown .opened', function(){
                $(this).parent().find('.item-toggle-menu').first().slideUp('fast');
                $(this).removeClass('opened').removeClass('fa-caret-up').addClass('closed').addClass('fa-caret-down');
            });
        }
    },
    wowAnimate: function(){
        var wow = new WOW();
        wow.init();
    },
    animateElements: {
        start: function(){
            $window.on('scroll resize', this.check_if_in_view());
            $window.trigger('scroll');
        },
        check_if_in_view: function() {
            var $animation_elements_in = $('.animation-element.fade-in'),
                $animation_elements_left = $('.animation-element.fade-left'),
                $animation_elements_right = $('.animation-element.fade-right'),
                $animation_engoPullDown = $('.animation-element.engo-PullDown'),
                $animation_tinDownIn = $('.animation-element.tin-DownIn'),
                $animation_hover_in = $('.animation-hover-element.fade-in');
            var window_height = $window.height(),
                window_top_position = $window.scrollTop(),
                window_bottom_position = (window_top_position + window_height);

            $animation_hover_in.each(function() {
                var $element = $(this);
                $element.hover(
                    function(){
                        $element.addClass('animated fadeInUp');
                    },
                    function(){
                        $element.removeClass('animated fadeInUp');
                    });
            });

            $animation_tinDownIn.each(function() {
                var $element = $(this);
                var element_top_position = $element.offset().top;
                var element_bottom_position = (element_top_position + 100);

                //check to see if this current container is within viewport
                if ((element_bottom_position >= window_top_position+10) &&
                    (element_top_position <= window_bottom_position)) {
                    $element.addClass('animated tinDownIn');
                }
            });
            $animation_engoPullDown.each(function() {
                var $element = $(this);
                var element_top_position = $element.offset().top;
                var element_bottom_position = (element_top_position + 100);

                //check to see if this current container is within viewport
                if ((element_bottom_position >= window_top_position+10) &&
                    (element_top_position <= window_bottom_position)) {
                    $element.addClass('engoPullDown');
                }
            });

            $animation_elements_in.each(function() {
                var $element = $(this);
                /*console.log($element);*/
                var element_height = $element.outerHeight();
                var element_top_position = $element.offset().top;
                var element_bottom_position = (element_top_position + 100);

                //check to see if this current container is within viewport
                if ((element_bottom_position >= window_top_position+10) &&
                    (element_top_position <= window_bottom_position)) {
                    $element.addClass('animated fadeInUp');
                }
            });

            $animation_elements_left.each(function() {
                var $element = $(this);
                var element_height = $element.outerHeight();
                var element_top_position = $element.offset().top;
                var element_bottom_position = (element_top_position + element_height);

                //check to see if this current container is within viewport
                if ((element_bottom_position >= window_top_position+100) &&
                    (element_top_position <= window_bottom_position)) {
                    $element.addClass('animated fadeInLeft');
                }
            });

            $animation_elements_right.each(function() {
                var $element = $(this);
                var element_height = $element.outerHeight();
                var element_top_position = $element.offset().top;
                var element_bottom_position = (element_top_position + element_height);

                //check to see if this current container is within viewport
                if ((element_bottom_position >= window_top_position+100) &&
                    (element_top_position <= window_bottom_position)) {
                    $element.addClass('animated fadeInRight');
                }
            });
        }
    },
    slider: {
        start: function(){
            this.owl_fix_hide('add');
            this.owlCarousel();
            this.owl_fix_hide('remove');
        },
        owl_fix_hide: function (status) {
            /** Fix owlcarosel not init when display none in tab content **/
            if(status == 'add') {
                $(".tab-pane").addClass("show");
            }
            else{
                $(".tab-pane").removeClass("show");
            }
        },
        owlCarousel: function(){
            $(".owl-carousel-play .owl-carousel").each( function(){
                var config = {
                    navigation : false, // Show next and prev buttons
                    slideSpeed : 300,
                    paginationSpeed : 400,
                    responsiveClass:true,
                };
                var owl = $(this);
                if($(this).attr( 'data-pagination' ) == true) {
                    config.pagination = true;
                }
                if($(this).attr("data-autoPlay") == "true") {
                    config.autoplay = true;
                    if($(this).attr("data-time") > 0) {
                        config.autoplayTimeout = $(this).attr("data-time");
                    }
                }
                if($(this).attr("data-loop") == "true") {
                    config.loop = true;
                }
                if($(this).attr("data-navigation") == "true") {
                    config.dots = true;
                }
                if($(this).attr("data-next-prev") == "true") {
                    config.nav = true;
                }
                if ($(this).attr('data-slide')) {
                    config.items = $(this).attr('data-slide');
                }
                var responsive_config = {};
                if ($(this).attr('data-lg')) {
                    responsive_config.lg = $(this).attr('data-lg');
                }
                if ($(this).attr('data-md')) {
                    responsive_config.md = $(this).attr('data-md');
                }
                if ($(this).attr('data-sm')) {
                    responsive_config.sm = $(this).attr('data-sm');
                }
                if ($(this).attr('data-xs')) {
                    responsive_config.xs = $(this).attr('data-xs');
                }
                if ($(this).attr('data-xs')) {
                    responsive_config.mb = $(this).attr('data-xs');
                }


                var responsive = {
                    0:{
                        items:1
                    },
                    480:{
                        items:responsive_config.mb
                    },
                    640:{
                        items:responsive_config.xs
                    },
                    768:{
                        items:responsive_config.sm
                    },
                    1024:{
                        items:responsive_config.md
                    },
                    1200:{
                        items:responsive_config.lg
                    }
                };
                if($.isEmptyObject(responsive_config) == false) {
                    /*console.log(JSON.stringify(responsive_config));*/
                    config.responsive = responsive;
                }
                //console.log(JSON.stringify(config));
                owl.owlCarousel( config );
                $('.left',$(this).parent()).click(function(){
                    owl.trigger('prev.owl.carousel');
                    return false;
                });
                $('.right',$(this).parent()).click(function(){
                    owl.trigger('next.owl.carousel');
                    return false;
                });
            } );
        },
    },
    outTeam: function() {
        /** Out team v1 **/
        $(".team-v1").each(function(){
            var team_item = $(this);
            var team_avatar = team_item.find("img.img-responsive");
            var team_info = team_item.find(".team-info");
            var team_body = team_item.find(".team-body");
            var team_body_content = team_item.find(".team-body-content");

            $(team_item).css({'height':team_body.height() + team_body_content.height()});
            $(team_info).css({'width':team_avatar.width() - 20});
            $(this).hover(
                function() {
                    $(team_body).css({'margin-top':team_body_content.height()});
                },
                function() {
                    $(team_body).css({'margin-top':0});
                }
            );

        });
    },
    faq: function() {
        /** FAQ v1**/
        $(".engo-faq-v1").each(function(){
            $(".wpb_wrapper",$(this)).append("<div id='engo-faq-result'></div>");
            $(".vc_toggle_title h4").each(function(){
                $(this).click(function(){
                    $("#engo-faq-result").css({'opacity':0});
                    var parent = $(this).parent().parent();
                    var html_faq = $(".vc_toggle_content",parent).html();

                    if($(parent).hasClass('vc_toggle_title_active')) {
                        $(parent).removeClass("vc_toggle_title_active");
                    } else {
                        $(".vc_toggle").removeClass("vc_toggle_title_active");

                        $(parent).addClass('vc_toggle_title_active');
                        setTimeout(function(){
                            $("#engo-faq-result").html(html_faq).css({'opacity':1});
                        }, 200);

                    }
                });
            });

        });
    },
    woocommerce: {
        start: function () {
            this.bind();
            this.quantity();
        },
        bind: function() {
            //$(document).off( 'click', '.add_to_cart_button' );
            $(document).on('click',".variation_add_to_cart_button", this.addToCartActions);
        },
        quantity: function(){
            var form_cart = $( 'form .quantity' );
            $(form_cart ).each(function(){
                var this_prod = $(form_cart).attr("data-product");
                var this_add_to_cart_btn = $(".add_to_cart_button[data-product_id='"+this_prod+"']");
                $(this).prepend( '<span class="minus"><i class="fa fa-minus-square-o"></i></span>' );
                $(this).append( '<span class="plus"><i class="fa fa-plus-square-o"></i></span>' );
                var minus = $(this).find( $( '.minus' ) );
                var plus  = $(this).find( $( '.plus' ) );
                var min_order = parseInt($(this).find( '.qty' ).attr('min'));
                var max_order = parseInt($(this).find( '.qty' ).attr('max'));

                minus.on( 'click', function(){
                    var qty = $( this ).parent().find( '.qty' );
                    if ( qty.val() <= min_order ) {
                        qty.val(1);
                        this_add_to_cart_btn.attr("data-quantity",1);
                    } else {
                        qty.val( ( parseInt( qty.val() ) - 1 ) );
                        this_add_to_cart_btn.attr("data-quantity",( parseInt( qty.val() ) ));
                    }
                });
                plus.on( 'click', function(){
                    var qty = $( this ).parent().find( '.qty' );
                    if ( qty.val() >= max_order ) {
                        qty.val( max_order );
                        this_add_to_cart_btn.attr("data-quantity",max_order);
                    } else {
                        qty.val( ( parseInt( qty.val() ) + 1 ) );
                        this_add_to_cart_btn.attr("data-quantity",( parseInt( qty.val() ) ));
                    }
                });
            });
        },
        addToCartActions: function(e) {
            e.preventDefault();
            var $thisbutton = $( this );

            /** Remove old Class **/
            $thisbutton.removeClass('error');
            $( '.ajaxerrors' ).remove();
            $('form.cart').find(".engo-addToCart-error").remove();

            $variation_form = $( this ).closest( '.variations_form' );
            var var_id = $variation_form.find( 'input[name=variation_id]' ).val();

            var product_id = $variation_form.find( 'input[name=product_id]' ).val();
            var quantity = $variation_form.find( 'input[name=quantity]' ).val();


            var item = {},
                check = true;

            variations = $variation_form.find( 'select[name^=attribute]' );

            /* Updated code to work with radio button */
            if ( !variations.length) {
                variations = $variation_form.find( '[name^=attribute]:checked' );
            }

            /* Backup Code for getting input variable */
            if ( !variations.length) {
                variations = $variation_form.find( 'input[name^=attribute]' );
            }

            variations.each( function() {
                var $this = $( this ),
                    attributeName = $this.attr( 'name' ),
                    attributevalue = $this.val(),
                    index,
                    attributeTaxName;
                    $this.removeClass( 'error' );

                if ( attributevalue.length === 0 ) {
                    index = attributeName.lastIndexOf( '_' );
                    attributeTaxName = attributeName.substring( index + 1 );

                    //$this.addClass( 'required error' ).before( '<div class="ajaxerrors"><p>Please select ' + attributeTaxName + '</p></div>' );
                    $this.addClass( 'required error' ).before( '<div class="ajaxerrors"><p>' + wc_add_to_cart_variation_params.i18n_make_a_selection_text + '</p></div>' );
                    check = false;
                } else {
                    item[attributeName] = attributevalue;
                }
            } );

            if ( !check ) {
                return false;
            }


            if ( $thisbutton.is( '.product-type-variable .single_add_to_cart_button' ) ) {
                $thisbutton.removeClass('added').addClass('loading');
                var data = {
                    action: 'engo_add_to_cart_variable',
                    product_id: product_id,
                    quantity: quantity,
                    variation_id: var_id,
                    variation: item
                };

                // Trigger event
                $( 'body' ).trigger( 'adding_to_cart', [ $thisbutton, data ] );

                // Ajax action
                $.post( wc_add_to_cart_params.ajax_url, data, function( response ) {
                    if ( ! response )
                        return;

                    var this_page = window.location.toString();
                    this_page = this_page.replace( 'add-to-cart', 'added-to-cart' );

                    if ( response.error && response.product_url ) {
                        //window.location = response.product_url;
                        $('form.cart').append('<p class="engo-addToCart-error">'+ response.messages.error[0]+'</p>');
                        $thisbutton.removeClass('loading').addClass('error');
                        return;
                    }

                    $thisbutton.removeClass( 'loading' ).removeClass('error');

                    var fragments = response.fragments;
                    var cart_hash = response.cart_hash;

                    // Block fragments class
                    if ( fragments ) {
                        $.each( fragments, function( key ) {
                            $( key ).addClass( 'updating' );
                        });
                    }

                    // Block widgets and fragments
                    $( '.shop_table.cart, .updating, .cart_totals' ).fadeTo( '400', '0.6' ).block({
                        message: null,
                        overlayCSS: {
                            opacity: 0.6
                        }
                    });

                    // Changes button classes
                    $thisbutton.addClass('added');

                    // View cart text
                    if ( ! wc_add_to_cart_params.is_cart && $thisbutton.parent().find( '.added_to_cart' ).size() === 0 ) {
                        $thisbutton.after( ' <a href="' + wc_add_to_cart_params.cart_url + '" class="added_to_cart wc-forward" title="' + wc_add_to_cart_params.i18n_view_cart + '">' + wc_add_to_cart_params.i18n_view_cart + '</a>' );
                    }

                    // Replace fragments
                    if ( fragments ) {
                        $.each( fragments, function( key, value ) {
                            $( key ).replaceWith( value );
                        });
                    }

                    // Unblock
                    $( '.widget_shopping_cart, .updating' ).stop( true ).css( 'opacity', '1' ).unblock();

                    // Cart page elements
                    $( '.shop_table.cart' ).load( this_page + ' .shop_table.cart:eq(0) > *', function() {

                        $( '.shop_table.cart' ).stop( true ).css( 'opacity', '1' ).unblock();
                        $( document.body ).trigger( 'cart_page_refreshed' );
                    });

                    $( '.cart_totals' ).load( this_page + ' .cart_totals:eq(0) > *', function() {
                        $( '.cart_totals' ).stop( true ).css( 'opacity', '1' ).unblock();
                    });

                    // Trigger event so themes can refresh other areas
                    $( document.body ).trigger( 'added_to_cart', [ fragments, cart_hash, $thisbutton ] );
                });

                return false;

            } else {
                return true;
            }
        }
    },
    backToTop: function(){
        if ($('#back-to-top').length) {
            var scrollTrigger = 100, // px
                backToTop = function () {
                    var scrollTop = $(window).scrollTop();
                    if (scrollTop > scrollTrigger) {
                        $('#back-to-top').addClass('show');
                    } else {
                        $('#back-to-top').removeClass('show');
                    }
                };
            backToTop();
            $(window).on('scroll', function () {
                backToTop();
            });
            $('#back-to-top').on('click', function (e) {
                e.preventDefault();
                $('html,body').animate({
                    scrollTop: 0
                }, 700);
            });
        }
    }
}
Engo_Apps.start();