• File: main.js
  • Full Path: /home/chassiw/www/wp-content/plugins/indutri-themer/elementor/assets/main.js
  • File size: 17.69 KB
  • MIME-type: text/plain
  • Charset: utf-8
(function ($) {
   "use strict";

  var GaviasElements = {
    init: function(){     
      GaviasElements.initDebouncedresize();
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-testimonials.default', GaviasElements.elementTestimonial);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-posts.default', GaviasElements.elementPosts);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-portfolio.default', GaviasElements.elementPortfolio);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-give-forms.default', GaviasElements.elementGiveForms);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-teams.default', GaviasElements.elementTeams);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-information.default', GaviasElements.elementInformation);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-gallery.default', GaviasElements.elementGallery);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-events.default', GaviasElements.elementEvents);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-brand.default', GaviasElements.elementBrand);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-counter.default', GaviasElements.elementCounter);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-services.default', GaviasElements.elementServices);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-icon-box-group.default', GaviasElements.elementIconBoxGroup);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-testimonials-single.default', GaviasElements.elementTestimonialSingle);
      elementorFrontend.hooks.addAction('frontend/element_ready/wp-widget-custom-twitter-feeds-widget.default', GaviasElements.elementCustomTwitterFeeds);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-countdown.default', GaviasElements.elementCountDown);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-box-hover.default', GaviasElements.elementBoxHover);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-video-carousel.default', GaviasElements.elementVideoCarousel);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-content-horizontal.default', GaviasElements.elementContentHorizontal);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-campaign.default', GaviasElements.elementCampaign);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-locations_map.default', GaviasElements.elementLocationMap);
      elementorFrontend.hooks.addAction('frontend/element_ready/gva-user.default', GaviasElements.elementUser);
      elementorFrontend.hooks.addAction('frontend/element_ready/column', GaviasElements.elementColumn);
      elementorFrontend.hooks.addAction('frontend/element_ready/section', GaviasElements.elementRow);

    },

    initDebouncedresize: function(){
       var $event = $.event,
        $special, resizeTimeout;
        $special = $event.special.debouncedresize = {
          setup: function () {
            $(this).on("resize", $special.handler);
          },
          teardown: function () {
            $(this).off("resize", $special.handler);
          },
          handler: function (event, execAsap) {
            var context = this,
              args = arguments,
              dispatch = function () {
                event.type = "debouncedresize";
                $event.dispatch.apply(context, args);
              };

              if (resizeTimeout) {
                clearTimeout(resizeTimeout);
              }

            execAsap ? dispatch() : resizeTimeout = setTimeout(dispatch, $special.threshold);
          },
        threshold: 150
      };
    },


    elementColumn: function($scope){

      if( ($scope).hasClass('column-style-bg-overflow-right') ){
        
          var left = $scope.offset().left;

          var rwidth = $(window).width() - left + 10;
          // if( ($scope).width() > $(window).width()/2 + 10){
          //   rwidth = $(window).width() + 10;
          // }

          $scope.children('.elementor-column-wrap').append('<div class="bg-overfolow"></div>');
          $scope.children('.elementor-column-wrap').children('.bg-overfolow').css('width', rwidth);

          $(window).on("debouncedresize", function(event) {
            var left = $scope.offset().left;
          
            rwidth = $(window).width() - left + 10;
            // if( ($scope).width() > $(window).width()/2 + 10){
            //   rwidth = $(window).width() + 10;
            // }
            $scope.children('.elementor-column-wrap').children('.bg-overfolow').css('width', rwidth);
          });



      }

      if( ($scope).hasClass('column-style-bg-overflow-left') ){
        
        var right = $(window).width() - ($scope.offset().left + $scope.outerWidth());

        var lwidth = $(window).width() - right + 10;
        // if( ($scope).width() > $(window).width()/2 + 10){
        //   lwidth = $(window).width() + 10;
        // }

        $scope.children('.elementor-column-wrap').append('<div class="bg-overfolow"></div>');
        $scope.children('.elementor-column-wrap').children('.bg-overfolow').css('width', lwidth);
        $(window).on("debouncedresize", function(event) {
          lwidth = $(window).width() - right + 10;
          // if( ($scope).width() > $(window).width()/2 + 10){
          //   lwidth = $(window).width() + 10;
          // }
         $scope.children('.elementor-column-wrap').children('.bg-overfolow').css('width', lwidth);
        });
      }

    },

    elementRow: function($scope){
      $scope.append('<div class="arrow-style arrow-1"></div>');
      $scope.append('<div class="arrow-style arrow-2"></div>'); 
    },

    elementTestimonial: function($scope){
      var $carousel = $scope.find('.init-carousel-owl');
      GaviasElements.initCarousel($carousel);
    },

    elementCustomTwitterFeeds: function($scope){
      $scope.find('.ctf-tweets').owlCarousel({
          nav: false,
          autoplay: false,
          autoHeight: false,
          loop: true, 
          dots: true,
          mouseDrag: true,
          touchDrag: true,
          items: 1
        });
    },

    elementTestimonialSingle: function($scope){
      var $carousel = $scope.find('.init-carousel-owl');
      GaviasElements.initCarousel($carousel);
    },

    elementPosts: function($scope){
      var $carousel = $scope.find('.init-carousel-owl');
      GaviasElements.initCarousel($carousel);
    },

    elementServices: function($scope){
      var $carousel = $scope.find('.init-carousel-owl');
      GaviasElements.initCarousel($carousel);
    },

    elementPortfolio: function($scope){
      var $carousel = $scope.find('.init-carousel-owl');
      GaviasElements.initCarousel($carousel);
      if ( $.fn.isotope ) {
        if($('.isotope-items').length){
          $( '.isotope-items' ).each(function() {
            var $el = $( this ),
                $filter = $( '.portfolio-filter a'),
                $loop =  $( this );

            $loop.isotope();
            
            $(window).load(function() {
              $loop.isotope( 'layout' );
            });
          
            if ( $filter.length > 0 ) {
              $filter.on( 'click', function( e ) {
                e.preventDefault();
                var $a = $(this);
                $filter.removeClass( 'active' );
                $a.addClass( 'active' );
                $loop.isotope({ filter: $a.data( 'filter' ) });
              });
            };
          });
        }
      };

    },

    elementTeams: function($scope){
      var $carousel = $scope.find('.init-carousel-owl');
      GaviasElements.initCarousel($carousel);
    },

    elementInformation: function($scope){
      var $carousel = $scope.find('.init-carousel-owl');
      GaviasElements.initCarousel($carousel);
    },

    elementGallery: function($scope){
      var $carousel = $scope.find('.init-carousel-owl');
      GaviasElements.initCarousel($carousel);
    },

    elementEvents: function($scope){
      var $carousel = $scope.find('.init-carousel-owl');
      GaviasElements.initCarousel($carousel);
    },

    elementBrand: function($scope){
      var $carousel = $scope.find('.init-carousel-owl');
      GaviasElements.initCarousel($carousel);
    },

    elementCounter: function($scope){
      var $block = $scope.find('.milestone-block');
      $block.appear(function() {
        var $endNum = parseInt(jQuery(this).find('.milestone-number').text());
        jQuery(this).find('.milestone-number').countTo({
          from: 0,
          to: $endNum,
          speed: 4000,
          refreshInterval: 60,
          formatter: function (value, options) {
            value = value.toFixed(options.decimals);
            value = value.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
            return value;
          }
        });
      },{accX: 0, accY: 0});
    },
     elementIconBoxGroup: function($scope){
      var $carousel = $scope.find('.init-carousel-owl');
      GaviasElements.initCarousel($carousel);
    },
    elementCountDown: function($scope){
      $('[data-countdown="countdown"]').each(function(index, el) {
        var $this = $(this);
        var $date = $this.data('date').split("-");
        $this.gvaCountDown({
          TargetDate:$date[0]+"/"+$date[1]+"/"+$date[2]+" "+$date[3]+":"+$date[4]+":"+$date[5],
          DisplayFormat:"<div class=\"countdown-times\"><div class=\"day\">%%D%% <span class=\"label\">Days</span> </div><div class=\"hours\">%%H%% <span class=\"label\">Hours</span> </div><div class=\"minutes\">%%M%% <span class=\"label\">Minutes</span> </div><div class=\"seconds\">%%S%% <span class=\"label\">Seconds</span></div></div>",
          FinishMessage: "Expired"
        });
      });
    },

    elementBoxHover: function($scope){
      var $carousel = $scope.find('.init-carousel-owl');
      GaviasElements.initCarousel($carousel);
    },

    elementVideoCarousel: function($scope){
      var $carousel = $scope.find('.init-carousel-owl');
      GaviasElements.initCarousel($carousel);
    },

    elementGiveForms: function($scope){
      elementorFrontend.waypoint($scope.find('.give__progress-bar'), function () {
        var $progressbar = $(this);
        $progressbar.css('width', $progressbar.data('progress-max'));
      });
      var $carousel = $scope.find('.init-carousel-owl');
      GaviasElements.initCarousel($carousel);
    },

    elementContentHorizontal: function($scope){

      $('.content-hover-horizontal .content-item').on('click', function(){
        $(this).parent().find('.content-item').removeClass('active');
        $(this).addClass('active');
      });

      $('.gva-content-horizontal').each(function(){
        var col = parseInt($(this).attr('data-col'));
        $('.content-hover-horizontal .content-item .image').css('width', ( $('.content-hover-horizontal').width() / (  col  + 1 ) ) - 10 );
      });

      $(window).on("debouncedresize", function(event) {
        $('.gva-content-horizontal').each(function(){
          var col = parseInt($(this).attr('data-col'));
          $('.content-hover-horizontal .content-item .image').css('width', ( $('.content-hover-horizontal').width() / (  col  + 1 ) ) - 10 );
        });
      });
    },

    elementLocationMap: function($scope){
      var location_data = [];
      var i = 0;
      $('#locations_map_content .maker-item').each(function(){
        var location_item = [];
        location_item['id'] = $(this).data('id');
        var lat = $(this).data('lat');
        if(lat){
            lat = lat.split(",");
            location_item['latLng'] = [lat[0], lat[1]];
        }
        location_item['data'] = '';
        location_item['options'] = {};
        location_data[i] = location_item;
        i++;
      }); 

      $('#map_canvas_gva_01').gmap3({
        map:{
          options:{
            "draggable": true,
            "mapTypeControl": true,
            "mapTypeId": google.maps.MapTypeId.ROADMAP,
            "scrollwheel": false,
            "panControl": true,
            "rotateControl": false,
            "scaleControl": true,
            "streetViewControl": true,
            "zoomControl": true,
            "center": location_data[0]['latLng'],
            "zoom": 12,
           }
         },
         marker:{
           values: location_data,
           options:{
             draggable: false
           },
           events:{
             click: function(marker, event, context){
               var id = context.id;
               var content = $('div[data-id=' + id + '].maker-item .marker-hidden-content').html();
                 var map = $(this).gmap3("get"),
                   infowindow = $(this).gmap3({get:{name:"infowindow"}});
                 if (infowindow){
                   infowindow.open(map, marker);
                   infowindow.setContent(content);
                 } else {
                   $(this).gmap3({
                     infowindow:{
                       anchor:marker, 
                       options:{content: content}
                     }
                   });
                 }
             }
           }
         }
      });
        
      var map = $('#map_canvas_gva_01').gmap3("get");
      $(".location-item").on('click', function(){
        $('.location-item .location-item-inner').removeClass('active');
        $(this).find('.location-item-inner').first().addClass('active');
        var id = $(this).data('id');
        var marker = $('#map_canvas_gva_01').gmap3({ get: { id: id } });
        new google.maps.event.trigger(marker, 'click');
        map.setCenter(marker.getPosition());
      });
    },

    elementCampaign: function($scope){
      var $carousel = $scope.find('.init-carousel-owl');
      GaviasElements.initCarousel($carousel);
      
      $("[data-progress-animation]").each(function() {
        var $this = $(this);
        $this.appear(function() {
          var delay = ($this.attr("data-appear-animation-delay") ? $this.attr("data-appear-animation-delay") : 1);
          if(delay > 1) $this.css("animation-delay", delay + "ms");
          setTimeout(function() { $this.animate({width: $this.attr("data-progress-animation")}, 800);}, delay);
        }, {accX: 0, accY: -50});
      });
    },

    elementUser: function($scope){
     
      // $scope.find('.gva-user .login-account').on('click', function(){
      //   if($(this).hasClass('open')){
      //     $(this).removeClass('open');
      //   }else{
      //     $(this).addClass('open');
      //   }
      // });
    },

    initCarousel: function($target){
      if (!$target.length) { return; }
      var items = $target.data('items') ? $target.data('items') : 5;
      var items_lg = $target.data('items_lg') ? $target.data('items_lg') : 4;
      var items_md = $target.data('items_md') ? $target.data('items_md') : 3;
      var items_sm = $target.data('items_sm') ? $target.data('items_sm') : 2;
      var items_xs = $target.data('items_xs') ? $target.data('items_xs') : 1;
      var items_xx = $target.data('items_xx') ? $target.data('items_xx') : 1;
      var loop = $target.data('loop') ? $target.data('loop') : false;
      var speed = $target.data('speed') ? $target.data('speed') : 200;
      var auto_play = $target.data('auto_play') ? $target.data('auto_play') : false;
      var auto_play_speed = $target.data('auto_play_speed') ? $target.data('auto_play_speed') : false;
      var auto_play_timeout = $target.data('auto_play_timeout') ? $target.data('auto_play_timeout') : 1000;
      var auto_play_hover = $target.data('auto_play_hover') ? $target.data('auto_play_hover') : false;
      var navigation = $target.data('navigation') ? $target.data('navigation') : false;
      var pagination = $target.data('pagination') ? $target.data('pagination') : false;
      var mouse_drag = $target.data('mouse_drag') ? $target.data('mouse_drag') : false;
      var touch_drag = $target.data('touch_drag') ? $target.data('touch_drag') : false;
      var center = $target.hasClass('carousel-center') ? true : false;

      $target.owlCarousel({
        center: center,
        nav: navigation,
        autoplay: auto_play,// auto_play,
        autoplayTimeout: auto_play_timeout,
        autoplaySpeed: auto_play_speed,
        autoplayHoverPause: auto_play_hover,
        navText: [ '<span><i class="fas fa-chevron-left"></i></span>', '<span><i class="fas fa-chevron-right"></i></span>' ],
        autoHeight: false,
        loop: loop, 
        dots: pagination,
        rewind: true,
        smartSpeed: speed,
        mouseDrag: mouse_drag,
        touchDrag: touch_drag,
        merge:true,
        responsive : {
          0 : {
            items: 1,
            nav: false
          },
          320 : {
            items: items_xx,
            nav: false
          },
          640 : {
            items : items_xs,
            nav: false
          },
          768 : {
            items : items_sm,
          },
          992: {
            items : items_md
          },
          1200: {
            items: items_lg
          },
          1400: {
            items: items
          }
        }
      }); 

      $target.find('.owl-item.active').eq(1).addClass('center');
      $target.on('translated.owl.carousel', function(e){
        $target.find('.owl-item.center').removeClass('center');
        $target.find('.owl-stage .active').eq(1).addClass('center');
      });
    }
  };

  
  $(window).on('elementor/frontend/init', GaviasElements.init);   

}(jQuery));