var $=jQuery.noConflict();

function check_if_in_view_OneWay() {
	var lazy_elements = jQuery('.lazy-background');
	var animation = jQuery('.animate');
	var svg = jQuery('.load_svg svg');
	var count = jQuery('.count_element');
	var section_animation = jQuery('.inside_transitions');
	var window_height = jQuery(window).height();
	var window_top_position = jQuery(window).scrollTop();
	var halfscreen =  window_height / 10;
	
	var window_bottom_position = window_top_position + window_height;

	jQuery.each(lazy_elements, function() {

		window_bottom_position = window_top_position + window_height + 300;

		var element = jQuery(this);
		var element_height = element.outerHeight();
		var element_top_position = element.offset().top;
		var element_bottom_position = (element_top_position + element_height);
		if ((element_bottom_position >= window_top_position) && (element_top_position <= window_bottom_position)) {
			var bg = element.attr('data-src');
			
			if(element.hasClass("lazy-img")){
				element.attr('src',bg);
			}else{
				element.css('background-image','url('+bg+')');
			}
            
		}else{

		}
	});

	jQuery.each(animation, function() {
		
		var window_bottom_position = window_top_position + window_height - 100;

		var element = jQuery(this);
		var element_height = element.outerHeight();
		var element_top_position = element.offset().top;
		var element_bottom_position = (element_top_position + element_height);
		if ((element_bottom_position >= window_top_position) && (element_top_position <= window_bottom_position)) {
            element.addClass('start');
		}else{

		}
	});

	jQuery.each(section_animation, function() {
		
		var window_bottom_position = window_top_position + window_height - 100;

		var element = jQuery(this);
		var element_height = element.outerHeight();
		var element_top_position = element.offset().top;
		var element_bottom_position = (element_top_position + element_height);
		if ((element_bottom_position >= window_top_position) && (element_top_position <= window_bottom_position)) {
            element.addClass('start_section_animation');
		}else{

		}
	});

	jQuery.each(svg, function() {
		
		var window_bottom_position = window_top_position + window_height - 200;

		var element = jQuery(this);
		var element_height = element.outerHeight();
		var element_top_position = element.offset().top;
		var element_bottom_position = (element_top_position + element_height);
		if ((element_bottom_position >= window_top_position) && (element_top_position <= window_bottom_position)) {
			element.css('opacity', '1').svgTracer({duration: '2s'}).svgTracer('play');
		}

	});

	jQuery.each(count, function() {
		
		var window_bottom_position = window_top_position + window_height - 200;

		var element = jQuery(this);
		var element_height = element.outerHeight();
		var element_top_position = element.offset().top;
		var element_bottom_position = (element_top_position + element_height);
		if ((element_bottom_position >= window_top_position) && (element_top_position <= window_bottom_position)) {
        
			if (element.hasClass("finished")) {

			}else{

				element.prop('Counter', 0).animate({
					Counter: element.text()
				}, {
					duration: 2000,
					easing: 'swing',
					step: function (now) {
						element.text(Math.ceil(now));
					}
				});

				element.addClass('finished');
				console.log('element in view');

			}

		}else{

		}
	});

}

//Make elements with same class the same height
function sameheight(elementclass){
	jQuery(elementclass).css('height','auto');
	el_height = 0;
	jQuery(elementclass).each(function(){
		if(jQuery(this).outerHeight() > el_height){
			el_height = jQuery(this).outerHeight();
		}
	});
	jQuery(elementclass).outerHeight(el_height);
}

function squareElement(el){
	jQuery(el).each(function(){
		var $width = jQuery(this).width();
		jQuery(this).outerHeight($width);
	});
}

//same column height
function sameHeightColumns(elementclass){
	jQuery(elementclass).each(function(){
		
		jQuery(this).children().css('height','auto');
		el_height = 0;
		
		jQuery(this).children().each(function(){
			
			if(jQuery(this).outerHeight() > el_height){
				el_height = jQuery(this).outerHeight();
			}
			
		});
		
		jQuery(this).children().outerHeight(el_height);
		
	});
}

//Add parent class
function parentClass() {
    jQuery('.parent_section_class').each(function() {
        jQuery(this).parents('section.elementor-section.elementor-top-section').last().addClass(jQuery(this).attr('section_class'));
    });
}

function validateEmail(email) {
    var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(String(email).toLowerCase());
}

//function to check if id is valid
function isCssIdValid (id) {
    re = /^#[A-Za-z0-9]+[\w\-\:\.]*$/;
    return re.test(id);
}

function addHTMLCustomElements(){
	jQuery('.top-menu-inner .menu .menu-item-has-children > span').each(function(){

		jQuery(this).append('<div style="display:none;" class="responsive_submenu_toggle"></div>');

	});
}

( function( $ ) {
  /**
   * @param $scope The Widget wrapper element as a jQuery element
   * @param $ The jQuery alias
   */
  // Make sure you run this code under Elementor.

  setTimeout(function(){
    if(jQuery('body').hasClass('elementor-editor-active')){

    }
  },1000);
  
  $( window ).on( 'elementor/frontend/init', function() {

      elementorFrontend.hooks.addAction( 'frontend/element_ready/topvideosection.default', function($scope, $){
        if(jQuery('body').hasClass('elementor-editor-active')){
          parentClass();
          check_if_in_view_OneWay();
        }
      });
  
      elementorFrontend.hooks.addAction( 'frontend/element_ready/companiescarousel.default', function($scope, $){
        if(jQuery('body').hasClass('elementor-editor-active')){
          parentClass();
          check_if_in_view_OneWay();
    
          $scope.find('.logo-carousel-wrapper ul').each(function(){
            jQuery(this).slick({
              speed: jQuery(this).attr('speed'),
              autoplay: true,
              autoplaySpeed: 0,
              cssEase: 'linear',
              slidesToShow: 5,
              slidesToScroll: 5,
              pauseOnHover:true,
              arrows: false,
              infinite: true,
              variableWidth: true
            });
          });

          /*
          $scope.find('.logo-carousel-wrapper ul').slick({
            speed: 20000,
            autoplay: true,
            autoplaySpeed: 0,
            cssEase: 'linear',
            slidesToShow: 5,
            slidesToScroll: 5,
            arrows: false,
            variableWidth: true
          });
          */
        }
  
      });
  
      elementorFrontend.hooks.addAction( 'frontend/element_ready/comparisoncharttext.default', function($scope, $){
        if(jQuery('body').hasClass('elementor-editor-active')){
          parentClass();
          check_if_in_view_OneWay();
        }
      });
  
      elementorFrontend.hooks.addAction( 'frontend/element_ready/bookcallsection.default', function($scope, $){
        if(jQuery('body').hasClass('elementor-editor-active')){
          parentClass();
          check_if_in_view_OneWay();
        }
      });
  
      elementorFrontend.hooks.addAction( 'frontend/element_ready/textandimagesection.default', function($scope, $){

        if(jQuery('body').hasClass('elementor-editor-active')){
          parentClass();
          check_if_in_view_OneWay();
    
          $scope.find('.image-gallery ul').on('init', function(event, slick) {
            var CurrentSlideDom = $(slick.$slides.get(1));
            var total_count = CurrentSlideDom.parents('.image-gallery').find('.slick-dots li').length;
            var current_item = CurrentSlideDom.parents('.image-gallery').find('.slick-dots li.slick-active').index() + 1;
        
            if(total_count < 10){
              total_count = '0' + total_count;
            }
        
            if(current_item < 10){
              current_item = '0' + current_item;
            }
        
            CurrentSlideDom.parents('section').find('.current-slide-count').html(current_item);
            CurrentSlideDom.parents('section').find('.total-slides-count').html(total_count);
        
          });
        
          $scope.find('.image-gallery ul').on('afterChange', function(event, slick, currentSlide) {
            var CurrentSlideDom = $(slick.$slides.get(currentSlide));
            var total_count = CurrentSlideDom.parents('.image-gallery').find('.slick-dots li').length;
            var current_item = CurrentSlideDom.parents('.image-gallery').find('.slick-dots li.slick-active').index() + 1;
        
            if(total_count < 10){
              total_count = '0' + total_count;
            }
        
            if(current_item < 10){
              current_item = '0' + current_item;
            }
        
            CurrentSlideDom.parents('section').find('.current-slide-count').html(current_item);
            CurrentSlideDom.parents('section').find('.total-slides-count').html(total_count);
        
          });
        
          $scope.find('.image-gallery ul').on('beforeChange', function(event, slick, currentSlide, nextSlide){
          
            var CurrentSlideDom = $(slick.$slides.get(1));
            CurrentSlideDom.parents('section').find('.loading-slides').addClass('slide');
            setTimeout(function(){
              CurrentSlideDom.parents('section').find('.loading-slides').removeClass('slide');
            },2000);
        
          });
        
          $scope.find('.image-gallery ul').slick({
            autoplay: true,
            slidesToShow: 1,
            slidesToScroll: 1,
            arrows: true,
            dots: true
          });
        }
  
      });
  
      elementorFrontend.hooks.addAction( 'frontend/element_ready/clienttestimonialssection.default', function($scope, $){

        if(jQuery('body').hasClass('elementor-editor-active')){
          parentClass();
          check_if_in_view_OneWay();
    
          $testimonial_slider = $scope.find('.testimonials-logos-list.withslider ul');
          $testimonial_slider.on('init', function(event, slick) {
            if(slick.$slides != null){
              var CurrentSlideDom = $(slick.$slides.get(1));
              var total_count = CurrentSlideDom.parents('.testimonials-logos-list.withslider').find('.slick-dots li').length;
              var current_item = CurrentSlideDom.parents('.testimonials-logos-list.withslider').find('.slick-dots li.slick-active').index() + 1;
              CurrentSlideDom.parents('section').find('.carousel-active-paging').html(current_item+'/'+total_count);
            }
          });
    
          $testimonial_slider.on('afterChange', function(event, slick, currentSlide) {
            if(slick.$slides != null){
              var CurrentSlideDom = $(slick.$slides.get(currentSlide));
              var total_count = CurrentSlideDom.parents('.testimonials-logos-list.withslider').find('.slick-dots li').length;
              var current_item = CurrentSlideDom.parents('.testimonials-logos-list.withslider').find('.slick-dots li.slick-active').index() + 1;
              CurrentSlideDom.parents('section').find('.carousel-active-paging').html(current_item+'/'+total_count);
            }
          });
    
          $testimonial_slider.slick({
            slidesToShow: 2,
            slidesToScroll:1,
            arrows: false,
            dots: true
          });
        }
        
      });
  
      elementorFrontend.hooks.addAction( 'frontend/element_ready/partnersuccessstories.default', function($scope, $){
  
        if(jQuery('body').hasClass('elementor-editor-active')){
          check_if_in_view_OneWay();
          parentClass();
    
          $scope.find('.success_stories_carousel .success_stories_list ul').on('init', function(event, slick) {
            var CurrentSlideDom = $(slick.$slides.get(1));
            var total_count = CurrentSlideDom.parents('.success_stories_list').find('.slick-dots li').length;
            var current_item = CurrentSlideDom.parents('.success_stories_list').find('.slick-dots li.slick-active').index() + 1;
            CurrentSlideDom.parents('section').find('.carousel-active-paging').html(current_item+'/'+total_count);
          });
        
          $scope.find('.success_stories_carousel .success_stories_list ul').on('afterChange', function(event, slick, currentSlide) {
            var CurrentSlideDom = $(slick.$slides.get(currentSlide));
            var total_count = CurrentSlideDom.parents('.success_stories_list').find('.slick-dots li').length;
            var current_item = CurrentSlideDom.parents('.success_stories_list').find('.slick-dots li.slick-active').index() + 1;
            CurrentSlideDom.parents('section').find('.carousel-active-paging').html(current_item+'/'+total_count);
          });
        
          $scope.find('.success_stories_carousel .success_stories_list ul').slick({
            autoplay: true,
            slidesToShow: 2,
            slidesToScroll: 1,
            arrows: false,
            dots: true
          });
        }
  
      });

      elementorFrontend.hooks.addAction( 'frontend/element_ready/partnersuccessstoriesredesign.default', function($scope, $){
  
        if(jQuery('body').hasClass('elementor-editor-active')){
          check_if_in_view_OneWay();
          parentClass();

          $scope.find('.success_stories_carousel_rd .success_stories_list_rd ul').each(function(){
            jQuery(this).slick({
              autoplay: true,
              autoplaySpeed: 7000,
              slidesToShow: 1,
              slidesToScroll: 1,
              slidesPerRow: 1,
              arrows: true,
              appendArrows: jQuery(this).parents('.success_stories_section_rd').find('.success-stories--pag'),
              prevArrow: '<span class="arrow--left--rd"></span>',
              nextArrow: '<span class="arrow--right--rd"></span>',
              dots: false,
              infinite: true,
            });
          });
          
        }
  
      });
  
      elementorFrontend.hooks.addAction( 'frontend/element_ready/discovertopsection.default', function($scope, $){
        if(jQuery('body').hasClass('elementor-editor-active')){
          sameheight('.discover_images_section .section-column');
          check_if_in_view_OneWay();
          parentClass();
        }
      });
  
      elementorFrontend.hooks.addAction( 'frontend/element_ready/coreprinciplessection.default', function($scope, $){
        if(jQuery('body').hasClass('elementor-editor-active')){
          check_if_in_view_OneWay();
          parentClass();
        }
      });
  
      elementorFrontend.hooks.addAction( 'frontend/element_ready/careerlistsection.default', function($scope, $){
        
        if(jQuery('body').hasClass('elementor-editor-active')){
          check_if_in_view_OneWay();
          parentClass();
          sameheight('.career_item h2');
          sameheight('.job-description');
        }
      });
  
      elementorFrontend.hooks.addAction( 'frontend/element_ready/peoplewidgetsection.default', function($scope, $){
  
        if(jQuery('body').hasClass('elementor-editor-active')){
          check_if_in_view_OneWay();
          parentClass();
          sameheight('.team-member.box_1_4.group_item_1 .member_description');
          sameheight('.team-member.box_1_4.group_item_2 .member_description');
          sameheight('.team-member.box_1_4.group_item_3 .member_description');
          sameheight('.team-member.box_1_4.group_item_4 .member_description');
          sameheight('.team-member.box_1_4.group_item_5 .member_description');
    
          sameheight('.team-member.box_1_3.group_item_1 .member_description');
          sameheight('.team-member.box_1_3.group_item_2 .member_description');
          sameheight('.team-member.box_1_3.group_item_3 .member_description');
          sameheight('.team-member.box_1_3.group_item_4 .member_description');
        }
  
      });

      elementorFrontend.hooks.addAction( 'frontend/element_ready/NewDeselectForm.default', function($scope, $){
  
        if(jQuery('body').hasClass('elementor-editor-active')){

          check_if_in_view_OneWay();
          /* DES-242 */
          if(jQuery('.content-area .deselect-general-form').length){

            jQuery('.content-area .deselect-general-form').each(function(){

              if(jQuery(this).find('.des-form-body').length){

                $form = jQuery(this).find('.des-form-body');
          
                let tgt = $form.attr('id');
                let portalId = $form.attr('portalid');
                let formId = $form.attr('formid');
                let region = $form.attr('region');
            
                if(tgt.length != null && portalId.length != null && formId.length != null){
            
                  hbspt.forms.create({
                    region: region,
                    portalId: portalId,
                    target: "#" + tgt,
                    formId: formId
                  });
            
                }

              }

            });

          }
          /* END DES-242 */
          
        }
  
      });

  } );
} )( jQuery );