// source --> https://centroasesores.com/wp-content/themes/cleanfin/js/core.js?ver=6.9.4 
"use strict";

/*----  Functions  ----*/

jQuery.fn.pbmit_is_bound = function(type) {
    if (this.data('events') !== undefined) {
        if (this.data('events')[type] === undefined || this.data('events')[type].length === 0) {
            return false;
        }
        return (-1 !== $.inArray(fn, this.data('events')[type]));
    } else {
        return false;
    }
};

var pbmit_sticky_header = function() {
    if (jQuery('.pbmit-header-sticky-yes').length > 0) {
        var header_html = jQuery('#masthead .pbmit-main-header-area').html();
        jQuery('.pbmit-sticky-header').append(header_html);

        jQuery('.pbmit-sticky-header .main-navigation ul, .pbmit-sticky-header .main-navigation ul li, .pbmit-sticky-header .main-navigation ul li a').removeAttr('id');

        jQuery('.pbmit-sticky-header h1').each(function() {
            var thisele = jQuery(this);
            var thisele_class = jQuery(this).attr('class');
            thisele.replaceWith('<span class="' + thisele_class + '">' + jQuery(thisele).html() + '</span>');
        });

        // For infostak header
        if (jQuery('.pbmit-main-header-area').hasClass('pbmit-infostack-header')) { // check if infostack header
            // for header style 2
            jQuery(".pbmit-sticky-header .pbmit-header-content").insertAfter(".pbmit-sticky-header .site-branding");
            jQuery('.pbmit-sticky-header .pbmit-header-info, .pbmit-sticky-header .pbmit-mobile-search, .pbmit-sticky-header .nav-menu-toggle').remove();
        }

    }
}

var pbmit_sticky_header_class = function() {
    // Add sticky class
    if (jQuery('#wpadminbar').length > 0) {
        jQuery('#masthead').addClass('pbmit-adminbar-exists');
    }

    var offset_px = 300;
    if (jQuery('.pbmit-main-header-area').length > 0) {
        offset_px = jQuery('.pbmit-main-header-area').height() + offset_px;
    }

    // apply on document ready
    if (jQuery(window).scrollTop() > offset_px) {
        jQuery('#masthead').addClass('pbmit-fixed-header');
        jQuery('.pbmit-sticky-header .mega-menu.max-mega-menu.mega-menu-horizontal').attr("id", "mega-menu-pbminfotech-top");

    } else {
        jQuery('#masthead').removeClass('pbmit-fixed-header');
    }

    jQuery(window).scroll(function() {
        if (jQuery(window).scrollTop() > offset_px) {
            jQuery('#masthead').addClass('pbmit-fixed-header');
            jQuery('.pbmit-sticky-header .mega-menu.max-mega-menu.mega-menu-horizontal').attr("id", "mega-menu-pbminfotech-top");
        } else {
            jQuery('#masthead').removeClass('pbmit-fixed-header');
        }
    });

}

var pbmit_menu_span = function() {
	jQuery('.pbmit-max-mega-menu-override #page #site-navigation .mega-menu-wrap>ul>li.mega-menu-item .mega-sub-menu a, .pbmit-navbar ul ul a').each(function(i, v) {
		jQuery(v).contents().eq(0).wrap('<span class="pbmit-span-wrapper"/>');
	});
}

var pbmit_toggleSidebar = function() {
    jQuery('#menu-toggle').on('click', function() {
        jQuery("body:not(.mega-menu-pbminfotech-top) .pbmit-navbar > div, body:not(.mega-menu-pbminfotech-top)").toggleClass("active");
    })
    if (jQuery('.pbmit-navbar > div > .closepanel').length == 0) {
        jQuery('.pbmit-navbar > div').append('<span class="closepanel"><i class="pbmit-base-icon-close-circular-button-symbol"></i></span>');

        jQuery('.pbmit-navbar > div > .closepanel, .mega-menu-pbminfotech-top .nav-menu-toggle').on('click', function() {
            jQuery(".pbmit-navbar > div, body, .mega-menu-wrap").toggleClass("active");
        });
        return false;
    }
}

/* ====================================== */
/* Cart page qty update
/* ====================================== */
function pbmit_wc_cart_page_qty_update(){
	jQuery( document ).ajaxComplete(function() {
		if( jQuery('.product-quantity .quantity input.input-text.qty').length > 0 && jQuery('.pbmit-cart-wrapper .pbmit-cart-details span.pbmit-cart-count').length > 0 ){
			var total_qty = 0;
			jQuery('.product-quantity .quantity input.input-text.qty').each( function(){
				total_qty = total_qty + parseInt(jQuery(this).val());
				jQuery('.pbmit-cart-wrapper .pbmit-cart-details span.pbmit-cart-count').text(total_qty);
			});
			jQuery('.pbmit-cart-wrapper span.woocommerce-Price-amount').html(jQuery('.cart_totals .woocommerce-Price-amount > bdi').html());
		}
	});
}

var pbmit_preloader = function() {
    jQuery(".pbmit-preloader").fadeOut('600');
}

var pbmit_sorting = function() {
    jQuery('.pbmit-sortable-yes').each(function() {
        var boxes = jQuery('.pbmit-element-posts-wrapper', this);
        var links = jQuery('.pbmit-sortable-list a', this);
        boxes.isotope({
            animationEngine: 'best-available',
			layoutMode: 'fitRows',
			horizontalOrder: true
        });
        links.on('click', function(e) {
			console.log('clickedd');
            var selector = jQuery(this).data('sortby');
            if (selector != '*') {
                var selector = '.' + selector;
            }
			console.log(selector);
            boxes.isotope({
				animationEngineString : 'best-available',
                filter: selector,
                itemSelector: '.pbmit-ele',
				layoutMode: 'fitRows',
				horizontalOrder: true
            });
            links.removeClass('pbmit-selected');
            jQuery(this).addClass('pbmit-selected');
            e.preventDefault();
        });
    });
}

var pbmit_back_to_top = function() {
	if( jQuery('.pbmit-progress-wrap path').length > 0 ){
		var progressPath = document.querySelector('.pbmit-progress-wrap path');
		var pathLength = progressPath.getTotalLength();
		progressPath.style.transition = progressPath.style.WebkitTransition = 'none';
		progressPath.style.strokeDasharray = pathLength + ' ' + pathLength;
		progressPath.style.strokeDashoffset = pathLength;
		progressPath.getBoundingClientRect();
		progressPath.style.transition = progressPath.style.WebkitTransition = 'stroke-dashoffset 10ms linear';
		var updateProgress = function() {
			var scroll = jQuery(window).scrollTop();
			var height = jQuery(document).height() - jQuery(window).height();
			var progress = pathLength - (scroll * pathLength / height);
			progressPath.style.strokeDashoffset = progress;
		}
		updateProgress();
		jQuery(window).scroll(updateProgress);
		var offset = 50;
		var duration = 550;
		jQuery(window).on('scroll', function() {
			if (jQuery(this).scrollTop() > offset) {
				jQuery('.pbmit-progress-wrap').addClass('active-progress');
			} else {
				jQuery('.pbmit-progress-wrap').removeClass('active-progress');
			}
		});
		jQuery('.pbmit-progress-wrap').on('click', function(event) {
			event.preventDefault();
			jQuery('html, body').animate({ scrollTop: 0 }, duration);
			return false;
		})
	}
}

var pbmit_navbar = function() {
    if (!jQuery('ul#pbmit-top-menu > li > a[href="#"]').pbmit_is_bound('click')) {
        jQuery('ul#pbmit-top-menu > li > a[href="#"]').on( 'click', function() { return false; });
    }
    jQuery('.pbmit-navbar > div > ul li:has(ul)').append("<span class='sub-menu-toggle'><i class='pbmit-base-icon-angle-right'></i></span>");
    jQuery('.pbmit-navbar li').hover(function() {
        if (jQuery(this).children("ul").length == 1) {
            var parent = jQuery(this);
            var child_menu = jQuery(this).children("ul");
            if (jQuery(parent).offset().left + jQuery(parent).width() + jQuery(child_menu).width() > jQuery(window).width()) {
                jQuery(child_menu).addClass('pbmit-nav-left');
            } else {
                jQuery(child_menu).removeClass('pbmit-nav-left');
            }
        }
    });
    jQuery(".nav-menu-toggle").on("click tap", function() {

    });
    jQuery('.sub-menu-toggle').on('click', function() {
        if (jQuery(this).siblings('.sub-menu, .children').hasClass('show')) {
            jQuery(this).siblings('.sub-menu, .children').removeClass('show');
            jQuery('i', jQuery(this)).removeClass('pbmit-base-icon-up-open-big').addClass('pbmit-base-icon-angle-right');
        } else {
            jQuery(this).siblings('.sub-menu, .children').addClass('show');
            jQuery('i', jQuery(this)).removeClass('pbmit-base-icon-angle-right').addClass('pbmit-base-icon-up-open-big');
        }
        return false;
    });
    jQuery('.nav-menu-toggle').on('click', function() {
        jQuery('.pbmit-navbar ul.menu > li > a').on('click', function() {
            if (jQuery(this).attr('href') == '#' && jQuery(this).siblings('ul.sub-menu, ul.children').length > 0) {
                jQuery(this).siblings('.sub-menu-toggle').trigger('click');
                return false;
            }
        });
    })
}

var pbmit_lightbox = function() {
    var i_type = 'image';
    jQuery('a.pbmit-lightbox, a.pbmit-lightbox-video, .pbmit-lightbox-video a, .pbmit-lightbox a').each(function() {
        if (jQuery(this).hasClass('pbmit-lightbox-video') || jQuery(this).closest('.elementor-element').hasClass('pbmit-lightbox-video')) {
            i_type = 'iframe';
        } else {
            i_type = 'image';
        }
        if (jQuery(this).closest('.pbmit-ele-portfolio').length == 0) {
            jQuery(this).magnificPopup({ type: i_type });
        }
    });
}

var pbmit_video_popup = function() {
    jQuery('.pbmit-popup').on('click', function(event) {
        event.preventDefault();
        var href = jQuery(this).attr('href');
        var title = jQuery(this).attr('title');
        window.open(href, title, "width=600,height=500");
    });
}

var pbmit_testimonial = function() {
    jQuery('.pbmit-testimonial-active').each(function() {
        var ele_parent = jQuery(this).closest('.pbmit-element-posts-wrapper');
        jQuery('.pbminfotech-ele.pbminfotech-ele-testimonial', ele_parent).on('mouseover', function() {
            jQuery('.pbminfotech-ele.pbminfotech-ele-testimonial', ele_parent).removeClass('pbmit-testimonial-active');
            jQuery(this).addClass('pbmit-testimonial-active');
        });
    });
}

var pbmit_search_btn = function() {
    jQuery(function() {
        jQuery('.pbmit-header-search-btn').on("click", function(event) {
            event.preventDefault();
            jQuery(".pbmit-header-search-form-wrapper").addClass("open");
            jQuery('.pbmit-header-search-form-wrapper input[type="search"]').focus();
        });
        jQuery(".pbmit-search-close").on("click keyup", function(event) {
            jQuery(".pbmit-header-search-form-wrapper").removeClass("open");
        });
    });
}

var pbmit_gallery = function() {
    jQuery("div.pbmit-gallery").each(function() {
        jQuery(this).lightSlider({ item: 1, auto: true, loop: true, controls: false, speed: 1500, pause: 5500 });
    });
}

var pbmit_center_logo_header_class = function() {
    if (jQuery('#masthead.pbmit-header-style-5 ul#pbmit-top-menu').length > 0) {
        var has_class = jQuery('#masthead.pbmit-header-style-5 ul#pbmit-top-menu > li').hasClass('pbmit-logo-append');
        if (has_class == false) {
            var total_li = jQuery('#masthead.pbmit-header-style-5 ul#pbmit-top-menu > li').length;
            var li = Math.floor(total_li / 2);
            jQuery('#masthead.pbmit-header-style-5 ul#pbmit-top-menu > li:nth-child(' + li + ')').addClass('pbmit-logo-append');
        }
    }
}

var pbmit_selectwrap = function() {
    jQuery('select').select2({
        dropdownParent: jQuery('#page')
    });
}

/* ====================================== */
/* Circle Progress bar
/* ====================================== */
var pbmit_circle_progressbar = function() {

    jQuery('.pbmit-circle-outer').each(function() {

        var this_circle = jQuery(this);

        // Circle settings
        var emptyFill_val = "rgba(0, 0, 0, 0)";
        var thickness_val = 10;
        var fill_val = this_circle.data('fill');
        var size_val = 110;

        if (typeof this_circle.data('emptyfill') !== 'undefined' && this_circle.data('emptyfill') != '') {
            emptyFill_val = this_circle.data('emptyfill');
        }
        if (typeof this_circle.data('thickness') !== 'undefined' && this_circle.data('thickness') != '') {
            thickness_val = this_circle.data('thickness');
        }
        if (typeof this_circle.data('size') !== 'undefined' && this_circle.data('size') != '') {
            size_val = this_circle.data('size');
        }
        if (typeof this_circle.data('filltype') !== 'undefined' && this_circle.data('filltype') == 'gradient') {
            fill_val = { gradient: [this_circle.data('gradient1'), this_circle.data('gradient2')], gradientAngle: Math.PI / 4 };
        }

        if (typeof jQuery.fn.circleProgress == "function") {
            var digit = this_circle.data('digit');
            var before = this_circle.data('before');
            var after = this_circle.data('after');
            var digit = Number(digit);
            var short_digit = (digit / 100);

            jQuery('.pbmit-circle', this_circle).circleProgress({
                value: 0,
                size: size_val,
                startAngle: -Math.PI / 4 * 2,
                thickness: thickness_val,
                emptyFill: emptyFill_val,
                fill: fill_val
            }).on('circle-animation-progress', function(event, progress, stepValue) { // Rotate number when animating
                this_circle.find('.pbmit-circle-number').html(before + Math.round(stepValue * 100) + after);
            });
        }

        this_circle.waypoint(function(direction) {
            if (!this_circle.hasClass('completed')) {
                // Re draw when view
                if (typeof jQuery.fn.circleProgress == "function") {
                    jQuery('.pbmit-circle', this_circle).circleProgress({ value: short_digit });
                };
                this_circle.addClass('completed');
            }
        }, { offset: '85%' });

    });
}

var pbmit_icon_box_hover_effect = function() {
    jQuery(".pbmit-icon-box-hover-effect .pbmit-element-posts-wrapper .pbmit-ele-miconheading").eq(0).addClass('pbmit-ihbox-hover-active');
    jQuery(".pbmit-icon-box-hover-effect .pbmit-element-posts-wrapper .pbmit-ele-miconheading").mouseover(function() {
        var main_row = jQuery(this).closest('.pbmit-icon-box-hover-effect');
        jQuery('.pbmit-ele-miconheading', main_row).removeClass('pbmit-ihbox-hover-active');
        jQuery(this).addClass('pbmit-ihbox-hover-active');
    });

}

var pbmit_service_hover_effect = function() {
    jQuery(".pbmit-service-hover-effect .pbmit-service-style-4:nth-child(2), .pbmit-service-hover-effect .pbmit-element-service-style-3 .pbmit-element-posts-wrapper .swiper-hover-slide-nav ul li:nth-child(1)").addClass('pbmit-service-hover-active');
    jQuery(".pbmit-service-hover-effect .pbmit-service-style-4, .pbmit-service-hover-effect .pbmit-element-service-style-3 .pbmit-element-posts-wrapper .swiper-hover-slide-nav ul li").mouseover(function() {
        var main_row = jQuery(this).closest('.pbmit-service-hover-effect');
        jQuery('.pbmit-service-style-4, .pbmit-element-service-style-3 .pbmit-element-posts-wrapper .swiper-hover-slide-nav ul li', main_row).removeClass('pbmit-service-hover-active');
        jQuery(this).addClass('pbmit-service-hover-active');
    }).mouseout(function() {
        var main_row = jQuery(this).closest('.pbmit-service-hover-effect');
        jQuery('.pbmit-service-style-4, .pbmit-element-service-style-3 .pbmit-element-posts-wrapper .swiper-hover-slide-nav ul li', main_row).removeClass('pbmit-service-hover-active');
        jQuery('.pbmit-service-style-4:nth-child(2), .pbmit-element-service-style-3 .pbmit-element-posts-wrapper .swiper-hover-slide-nav ul li:nth-child(1)', main_row).addClass('pbmit-service-hover-active');
    });
}

var pbmit_carousel = function() {

    if (typeof Swiper !== 'undefined') {		 
        var x = 1;
        jQuery(".pbmit-element-viewtype-carousel").each(function() {
            var carouselElement = jQuery(this);
            var columns 		= jQuery(this).data('columns');
            var loop 			= jQuery(this).data('loop');
            var autoplay 		= jQuery(this).data('autoplay');
            var autoplayspeed 	= jQuery(this).data('autoplayspeed');
            var val_nav 		= jQuery(this).data('nav');
            var val_dots 		= jQuery(this).data('dots');
            var val_center 		= jQuery(this).data('center');
            var loopSlide 		= null;
            var sl_speed 		= 300;
			var val_margin		= jQuery(this).data('margin');

            jQuery('.pbmit-ele', carouselElement).each(function(){
				jQuery(this).css('display', 'block');
			});

			if( val_margin == 'default' || val_margin == '' ){
				val_margin = 30;
			} else {
				val_margin = parseInt(val_margin.replace( 'px', '' ));
			}

			jQuery(carouselElement).addClass('pbmit-element-viewtype-carousel-' + x);

            jQuery('.pbmit-element-timeline-style-1 .swiper-slide:even').addClass('pbmit-slide-even');

            if (val_dots == true) {
                jQuery('.pbmit-element-inner', carouselElement).append('<div class="swiper-pagination swiper-pagination-' + x + '"></div>');
            }
            if (val_nav == true) {
              
				if( jQuery('.pbmit-element-posts-wrapper .swiper-button-prev', carouselElement).length == 0 ){
					jQuery('.pbmit-element-posts-wrapper', carouselElement).append('<div class="swiper-button-prev swiper-button-prev-' + x + '"></div>');
				}
				if( jQuery('.pbmit-element-posts-wrapper .swiper-button-next', carouselElement).length == 0 ){
					jQuery('.pbmit-element-posts-wrapper', carouselElement).append('<div class="swiper-button-next swiper-button-next-' + x + '"></div>');
				}
			}
			
			if (val_nav == 'above') {
				if( jQuery('.pbmit-ele-header-area .pbmit-carousel-nav-arrow-header', carouselElement).length == 0 ){
					jQuery('.pbmit-ele-header-area', carouselElement).addClass('container').append('<div class="pbmit-carousel-nav-arrow-header"></div>');
				}
				if( jQuery('.pbmit-carousel-nav-arrow-header .swiper-button-prev', carouselElement).length == 0 ){
					jQuery('.pbmit-carousel-nav-arrow-header', carouselElement).append('<div class="swiper-button-prev swiper-button-prev-' + x + '"></div>');
				}
				if( jQuery('.pbmit-carousel-nav-arrow-header .swiper-button-next', carouselElement).length == 0 ){
					jQuery('.pbmit-carousel-nav-arrow-header', carouselElement).append('<div class="swiper-button-next swiper-button-next-' + x + '"></div>');
				}
			}
            if( jQuery('.pbmit-ele-group-wrapper', carouselElement).length > 0 ){
                jQuery('.pbmit-ele-group-wrapper', carouselElement).addClass('swiper-slide');
            } else {
                jQuery('.pbmit-ele', carouselElement).addClass('swiper-slide');
            }

            jQuery('.pbmit-element-posts-wrapper', carouselElement).removeClass('row').removeClass('multi-columns-row');

            jQuery('.pbmit-ele', carouselElement).removeClass(function(index, className) {
                return (className.match(/(^|\s)col-md-\S+/g) || []).join(' ');
            }).removeClass(function(index, className) {
                return (className.match(/(^|\s)col-lg-\S+/g) || []).join(' ');
            });

            if (columns == '1') {
                var responsive_items = [ /* 1199 : */ '1', /* 991 : */ '1', /* 767 : */ '1', /* 575 : */ '1', /* 0 : */ '1'];
            } else if (columns == '2') {
                var responsive_items = [ /* 1199 : */ '2', /* 991 : */ '2', /* 767 : */ '2', /* 575 : */ '2', /* 0 : */ '1'];
            } else if (columns == '3') {
                var responsive_items = [ /* 1199 : */ '3', /* 991 : */ '2', /* 767 : */ '2', /* 575 : */ '2', /* 0 : */ '1'];
            } else if (columns == '4') {
                var responsive_items = [ /* 1199 : */ '4', /* 991 : */ '4', /* 767 : */ '3', /* 575 : */ '2', /* 0 : */ '1'];
            } else if (columns == '5') {
                var responsive_items = [ /* 1199 : */ '5', /* 991 : */ '4', /* 767 : */ '3', /* 575 : */ '2', /* 0 : */ '1'];
            } else if (columns == '6') {
                var responsive_items = [ /* 1199 : */ '6', /* 991 : */ '4', /* 767 : */ '3', /* 575 : */ '2', /* 0 : */ '1'];
            } else {
                var responsive_items = [ /* 1199 : */ '3', /* 991 : */ '3', /* 767 : */ '3', /* 575 : */ '2', /* 0 : */ '1'];
            }

			var autoplay_val =  { delay: autoplayspeed };
			if (autoplay == false) {
				autoplay_val = false;
			}

            var navigation_val = false;
            if (val_nav == true || val_nav == 'above') {
                navigation_val = {
                    nextEl: '.swiper-button-next-' + x,
                    prevEl: '.swiper-button-prev-' + x,
                };
            }

            var pagination_val = false;
            if (val_dots == true) {
                pagination_val = {
                    el: '.swiper-pagination-' + x,
                    clickable: true,
                };
            }

			// show last box as half
			if (jQuery(this).closest('.elementor-element').hasClass('pbmit-slider-partial-over') && columns == '2') { // to set swiper that will show last box as half
				responsive_items = [ /* 1199 : */ '1.5', /* 991 : */ '1', /* 767 : */ '1', /* 575 : */ '1', /* 0 : */ '1'];
			}
			if (jQuery('.pbmit-col-stretched-yes .pbmit-element-viewtype-carousel-' + x).hasClass('pbmit-element-service-style-1')) {
				responsive_items = [ /* 1199 : */ '3.2', /* 991 : */ '3.0', /* 767 : */ '2.0', /* 575 : */ '1.0', /* 0 : */ '1.0'];
			}
			if (jQuery('.pbmit-col-stretched-yes .pbmit-element-viewtype-carousel-' + x).hasClass('pbmit-element-service-style-2')) {
				responsive_items = [ /* 1199 : */ '2.7', /* 991 : */ '3.0', /* 767 : */ '2.0', /* 575 : */ '1.0', /* 0 : */ '1.0'];
			}
			if (jQuery('.pbmit-col-stretched-yes .pbmit-element-viewtype-carousel-' + x).hasClass('pbmit-element-client-style-1')) {
				responsive_items = [ /* 1199 : */ '5.7', /* 991 : */ '3.0', /* 767 : */ '2.0', /* 575 : */ '1.0', /* 0 : */ '1.0'];
			}

      		var swiper_options = {
				createElements	: true,
                loop			: loop,
                autoplay		: autoplay_val,
                navigation		: navigation_val,
                pagination		: pagination_val,
                slidesPerView	: columns,
                spaceBetween	: val_margin,
                centeredSlides	: val_center,
                breakpoints		: {
                    1199: {
                        slidesPerView: responsive_items[0],
                    },
                    991: {
                        slidesPerView: responsive_items[1],
                    },
                    767: {
                        slidesPerView: responsive_items[2],
                    },
                    575: {
                        slidesPerView: responsive_items[3],
                    },
                    0: {
                        slidesPerView: responsive_items[4],
                    }
                },
			}

			var swiper = new Swiper('.pbmit-element-viewtype-carousel-' + x + ' .pbmit-element-posts-wrapper', swiper_options );	

            if (jQuery('.pbmit-element-viewtype-carousel-' + x).hasClass('pbmit-element-testimonial-style-1')) {
                var pbmit_var = jQuery('.pbmit-element-viewtype-carousel-' + x);
                pbmit_var.find('.swiper-button-next').attr('data-cursor-text', '<i class="pbmit-base-icon-arrow-right"></i>');
                pbmit_var.find('.swiper-button-prev').attr('data-cursor-text', '<i class="pbmit-base-icon-arrow-left"></i>');
            }

            // increase number for multiple carousel
            x = x + 1;

        });
    }
}

/* ====================================== */
/* Marquee
/* ====================================== */

var pbmit_marquee = function() {
    if (typeof Swiper !== 'undefined') {
        var x = 1;

        jQuery(".pbminfotech-element-marquee-effect").each(function() {
            var carouselElement = jQuery(this).find('.pbmit-marquee-effect-section');

            var reverse_direction = jQuery(this).data('reverse');

            jQuery(carouselElement).addClass('pbmit-marquee-effect-section-' + x);

            if( jQuery('.pbmit-ele-group-wrapper', carouselElement).length > 0 ){
                jQuery('.pbmit-ele-group-wrapper', carouselElement).addClass('swiper-slide');
            } else {
                jQuery('.pbmit-ele', carouselElement).addClass('swiper-slide');
            }

            jQuery('.pbmit-element-posts-wrapper', carouselElement).removeClass('row').removeClass('multi-columns-row');

            jQuery('.pbmit-ele', carouselElement).removeClass(function(index, className) {
                return (className.match(/(^|\s)col-md-\S+/g) || []).join(' ');
            }).removeClass(function(index, className) {
                return (className.match(/(^|\s)col-lg-\S+/g) || []).join(' ');
            });

            if (!reverse_direction) reverse_direction = false;

            var swiper = new Swiper('.pbmit-marquee-effect-section-' + x + ' .pbmit-marquee-container', {
                spaceBetween: 0,
                centeredSlides: true,
                speed: 12000,
                autoplay: {
                    delay: 1,
                    disableOnInteraction: true,
                    reverseDirection: reverse_direction,
                },
                loop: true,
                slidesPerView: 'auto',
                allowTouchMove: false,
                disableOnInteraction: true,
            });

            // var swiper = new Swiper('.pbmit-marquee-effect-section-' + x + ' .pbmit-marquee-container.pbmit-tag-bottom', {
            //     spaceBetween: 0,
            //     centeredSlides: true,
            //     speed: 15000,
            //     autoplay: {
            //         delay: 1,
            //         reverseDirection: true
            //     },
            //     loop: true,
            //     slidesPerView: 'auto',
            //     allowTouchMove: false,
            //     disableOnInteraction: true
            // });
            // increase number for multiple carousel
            x = x + 1;
        });
    }
}

/* ====================================== */
/* Menu item count
/* ====================================== */
var pbmit_menu_count = function() {
    if (jQuery('ul#pbmit-top-menu > li').length > 0 || jQuery('div#pbmit-top-menu > ul > li').length > 0) {
        if (jQuery('ul#pbmit-top-menu > li').length > 0) {
            var total_li = jQuery('ul#pbmit-top-menu > li').length;
        }
        if (jQuery('div#pbmit-top-menu > ul > li').length > 0) {
            var total_li = jQuery('div#pbmit-top-menu > ul > li').length;
        }
        if (total_li > 6) {
            jQuery('#site-navigation').addClass('pbmit-bigger-menu');
        }
    }
}

/* ====================================== */
/* Animate on scroll : Number rotator
/* ====================================== */
var pbmit_number_rotate = function() {
    jQuery(".pbmit-number-rotate").each(function() {
        var self = jQuery(this);
        var delay = (self.data("appear-animation-delay") ? self.data("appear-animation-delay") : 0);
        var animation = self.data("appear-animation");

		self.html('0');
		self.waypoint(function(direction) {
			if (!self.hasClass('completed')) {
				var from = self.data('from');
				var to = self.data('to');
				var interval = self.data('interval');
				self.numinate({
					format: '%counter%',
					from: from,
					to: to,
					runningInterval: 2000,
					stepUnit: interval,
					onComplete: function(elem) {
						self.addClass('completed');
					}
				});
			}
		}, { offset: '85%' });
    });
};

/* ====================================== */
/* Image size correction
/* ====================================== */
var pbmit_img_size_correction = function() {
    setTimeout(function() {
        jQuery("img").each(function() {
            var thisimg = jQuery(this);
            var p_width = jQuery(this).parent().width();
            var width = jQuery(this).attr('width');
            var height = jQuery(this).attr('height');
            if ((typeof width !== typeof undefined && width !== false) && (typeof height !== typeof undefined && height !== false)) {
                var ratio = height / width;
                jQuery(this).data('pbmit-ratio', ratio);
                var real_width = jQuery(this).width();
                var new_height = Math.round(real_width * ratio);
            }
        });
    }, 100);
};

/* ====================================== */
/* Tabs
/* ====================================== */

var pbmit_tabs_element = function() {
	var tab_number = '';
	jQuery('.pbmit-tab-link').on('click', function(){
		if( !jQuery(this).hasClass('pbmit-tab-li-active') ){
			var parent = jQuery(this).closest('ul.pbmit-tabs-heading');
			jQuery( 'li', parent).each(function(){
				jQuery(this).removeClass('pbmit-tab-li-active')
			});
			jQuery(this).addClass('pbmit-tab-li-active');
			tab_number = jQuery( this ).data('pbmit-tab');
			jQuery(this).parent().parent().find('.pbmit-tab-content').removeClass('pbmit-tab-active');
			jQuery(this).parent().parent().find('.pbmit-tab-content-'+tab_number).addClass('pbmit-tab-active');
		}
	});
	jQuery('.pbmit-tab-content-title').on('click', function(){
		tab_number = jQuery( this ).data('pbmit-tab');
		jQuery( this ).closest('.pbmit-tabs').find('li.pbmit-tab-link[data-pbmit-tab="'+tab_number+'"]',  ).trigger('click');
	});
};

var pbmit_infinite_scroll = function(relayout='') {
	if (jQuery('.pbmit-element-viewtype-masonry').length > 0) {
		jQuery('.pbmit-element-viewtype-masonry').each(function() {

			var main_ele = jQuery(this);
			var style = jQuery(this).data('style');
			var cpt = jQuery(this).data('cpt');
			var columns = jQuery(this).data('columns');
			var show = jQuery(this).data('show');
			var totalpagination = jQuery(this).data('totalpagination');

			// init Masonry
			let $grid = jQuery('.pbmit-element-posts-wrapper', main_ele).masonry({
				itemSelector: 'none', // select none at first
				columnWidth: '.pbmit-ele',
				gutter: 0,
				percentPosition: true,
				stagger: 30,
				// nicer reveal transition
				visibleStyle: { transform: 'translateY(0)', opacity: 1 },
				hiddenStyle: { transform: 'translateY(100px)', opacity: 0 },
				horizontalOrder: true
			});

			// get Masonry instance
			let msnry = $grid.data('masonry');

			// initial items reveal
			$grid.imagesLoaded(function() {
				$grid.removeClass('are-images-unloaded');
				$grid.masonry('option', { itemSelector: '.pbmit-ele' });
				let $items = $grid.find('.pbmit-ele');
				$grid.masonry('appended', $items);
			});

			// Infinite scroll
			if (jQuery(main_ele).hasClass('pbmit-infinite-scroll-yes')) {

				var infinitre_scroll_data = jQuery('.pbmit-infinite-scroll-data', main_ele).html();
				if (infinitre_scroll_data != '') {
					var url_attributes = '';
					jQuery.each(jQuery.parseJSON(infinitre_scroll_data), function(key, value) {
						url_attributes = url_attributes + '&' + key + '=' + value;
					});
				}

				if (jQuery(main_ele).hasClass('pbmit-infinite-scroll-button-yes')) { // infinite scroll with button

					var x = 2;

					$grid.infiniteScroll({
						// options
						path: pbmit_js_variables.ajaxurl + '?action=pbmit_infinite_scroll&page_no={{#}}&nonce=' + pbmit_js_variables.ajaxnonce + url_attributes,
						checkLastPage: false,
						button: '.pbmit-ajax-load-more-btn > a',
						scrollThreshold: false,
						status: '.pbmit-infinite-loader', // disable loading on scroll
						append: '.pbmit-ele',
						history: false,
						visibleStyle: { transform: 'translateY(0)', opacity: 1 },
						outlayer: msnry,
					});
					$grid.on('load.infiniteScroll', function(event, body, path, items, response) {
						jQuery(items).each(function() {
							jQuery(this).addClass('pbmit-infinite-scroll-animation');
						});

						if (x >= totalpagination) {
							jQuery('.pbmit-ajax-load-more-btn > a', main_ele).hide();
							jQuery('.pbmit-infinite-loader', main_ele).addClass('pbmit-infinite-loader-hide');
							jQuery('.pbmit-infinite-scroll-last', main_ele).show();
						}
						x++;
					});
                    
                    $grid.on( 'append.infiniteScroll', function( event, body, path, items, response ) {
						pbmit_set_tooltip();
					});
				} else { // infinite scroll without button

					// hide load more button
					var x = 2;
					if (x >= totalpagination) { jQuery('.pbmit-ajax-load-more-btn > a', main_ele).hide(); } // hide button on page load if lower post found

					$grid.infiniteScroll({
						path: pbmit_js_variables.ajaxurl + '?action=pbmit_infinite_scroll&page_no={{#}}&nonce=' + pbmit_js_variables.ajaxnonce + url_attributes,
						append: '.pbmit-ele',
						outlayer: msnry,
						status: '.pbmit-infinite-loader',
						history: false,
						scrollThreshold: -200,
					});

					$grid.on('load.infiniteScroll', function(event, body, path, response) {

						// hide the "all content loaded" message
						var data_show = $grid.closest('.pbminfotech-element').data('show');
						if (data_show == -1) { data_show = 9999; }
						var total_ele = jQuery('.pbmit-ele', $grid).length;

						if (x >= totalpagination) {
							jQuery('.pbmit-infinite-loader', main_ele).addClass('pbmit-infinite-loader-hide');
							if (data_show < total_ele) {
								jQuery('.pbmit-infinite-scroll-last', main_ele).show();
							}
						}
						x++;
					});

                    $grid.on( 'append.infiniteScroll', function( event, body, path, items, response ) {
						pbmit_set_tooltip();
					});
				}

			}

			setTimeout(function() { $grid.masonry(); }, 700);

		});

	}
}

var pbmit_search_results = function() {
    if (jQuery('.pbmit-search-results-main-wrapper').length > 0 && jQuery('.pbmit-search-result-tab-links').length > 0) {
        jQuery('.pbmit-search-results-main-wrapper').skeletabs();
    }
}

// steps animation
var pbmit_stepanimation = function() {
    var i = 0;

    function animateSteps(m) {
        jQuery('#stepsAnimation').find('.step').each(function(index) {
            jQuery(this).removeClass('step-animate');
        })
        jQuery('#stepsAnimation .multi-columns-row').find('.step').eq(m).addClass('step-animate');
    }
    var intervalId = window.setInterval(function() {
        i = i + 1;
        if (i > 3) {
            i = 0
        }
        animateSteps(i);
    }, 3000);
    animateSteps(i);
    jQuery('#stepsAnimation').find('.step').each(function(index) {
        jQuery(this).addClass('step-' + (index + 1));
    });
}

var pbmit_progressbar = function() {
    jQuery('.pbmit-progressbar').each(function() {
        var $progressbar_ele = jQuery(this);
        jQuery(this).waypoint(function(direction) {
            var $progressbar = jQuery('.elementor-progress-bar', $progressbar_ele);
            if (!$progressbar.hasClass('completed')) {
                $progressbar.css('width', $progressbar.data('max') + '%').addClass('completed');
            }
        }, { offset: '99%' });
    });
}

var pbmit_hover_slide = function() {
	if (typeof Swiper !== 'undefined') {
		var pbmit_hover = new Swiper(".pbmit-hover-image", {
			fadeEffect: { crossFade: true },
			virtualTranslate: true,
			autoplay: 2500,
			speed: 1000,
			autoplayDisableOnInteraction: true,
			slidersPerView: 1,
			effect: "fade"
		});		
	}
	jQuery('.pbmit-main-hover-slider li').hover(function(e) {
		e.preventDefault();
		var myindex = jQuery(this).index();
		pbmit_hover.slideTo(myindex, 500, false);
	});
}

/* ====================================== */
/* Comment form validator
/* ====================================== */
var pbmit_validate = function() {
	jQuery("#commentform").submit(function(event) {
		var error = false;
		jQuery('.pbmit-form-error').hide();
		if (jQuery("#author").length > 0 && !jQuery("#author").val()) { // empty author
			jQuery('.comment-form-author .pbmit-form-error').show();
			error = true;
		}
		if (jQuery("#comment").length > 0 && !jQuery("#comment").val()) { // empty comment
			jQuery('.comment-form-comment .pbmit-form-error').show();
			error = true;
		}
		if (jQuery("#email").length > 0) {
			if (!jQuery("#email").val()) { // empty email
				jQuery('.comment-form-email .pbmit-form-error.pbmit-empty-email').show();
				error = true;
			} else {
				var valid_email = (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(jQuery("#email").val()));
				if (valid_email != true) {
					jQuery('.comment-form-email .pbmit-form-error.pbmit-invalid-email').show();
					error = true;
				}
			}
		}
		if (error == true) {
			event.preventDefault();
			return false;
		} else {
			return true;
		}
	});
}

var pbmit_image_correction = function() {
	jQuery('.entry-content img,.pbmit-entry-content img').each(function() {
		var ele_this	= jQuery(this);
		var ele_width	= jQuery(this).attr("width");
		var ele_height	= jQuery(this).attr("height");
		var ele_url		= jQuery(this).attr("src");
		if ( ( typeof ele_width === 'undefined' || ele_width === false ) || ( typeof ele_height === 'undefined' || ele_height === false ) ) {
			jQuery("<img/>").attr('src', ele_url).on('load', function() {
				ele_this.attr( 'width', this.width );
				ele_this.attr( 'height', this.height );
			});
		}
	});
}

var pbmit_footer_position = function() {
	if( !jQuery('body').hasClass('elementor-editor-active') ){
		jQuery('footer#colophon').css({
			'position': '',
			'width': '',
			'bottom': ''
		});
		jQuery('body, #page').height( '' );
		if( jQuery(window).height() > jQuery('body').height() ){
			var window_height = jQuery(window).height();
			if( jQuery('#wpadminbar').length > 0 ){
				var adminbar = jQuery('#wpadminbar').height();
				window_height = window_height - adminbar;
			}
			jQuery('body, #page').height( window_height );
			jQuery('footer#colophon').css({
				'position': 'absolute',
				'width': '100%',
				'bottom': '0'
			});
		}
	}
}

/*----  Events  ----*/

// On resize
jQuery(window).resize(function() {
    /* Image size correction */
    pbmit_img_size_correction();
	pbmit_footer_position();
});

// on ready
jQuery(document).ready(function() {
	pbmit_menu_span();
    pbmit_validate();
    pbmit_search_results();
    pbmit_stepanimation();
    pbmit_toggleSidebar();
    pbmit_tabs_element();
    pbmit_sorting();
    pbmit_back_to_top();
    pbmit_sticky_header();
    pbmit_navbar();
    pbmit_lightbox();
    pbmit_video_popup();
    pbmit_service_hover_effect();
    pbmit_testimonial();
    pbmit_search_btn();
    pbmit_center_logo_header_class();
    pbmit_selectwrap();
    pbmit_menu_count();
    setTimeout(function() { pbmit_carousel(); }, 500);
    pbmit_img_size_correction();
    pbmit_number_rotate();
    pbmit_sticky_header_class();
    pbmit_icon_box_hover_effect();
    pbmit_progressbar();
    pbmit_marquee();
	pbmit_hover_slide();
	pbmit_image_correction();
	pbmit_footer_position();
    // Update cart total on cart page
	pbmit_wc_cart_page_qty_update();
});

// on load
jQuery(window).load(function() {
    pbmit_preloader();
    pbmit_sorting();
    pbmit_gallery();
    pbmit_circle_progressbar();
    pbmit_infinite_scroll();
});
// source --> https://centroasesores.com/wp-content/themes/cleanfin/js/elementor.js?ver=6.9.4 
"use strict";

/* ====================================== */
/* Reset and rearrange Stretched Column
/* ====================================== */
var pbmit_rearrange_stretched_col = function(model_id) {
	if (jQuery('body').hasClass('elementor-editor-active')) {
		jQuery('*[data-id="' + model_id + '"]').each(function() {
			jQuery('.pbmit-stretched-div', this).remove();
			jQuery('.elementor-widget-wrap', this).removeAttr('style');
			setTimeout(function() { pbmit_stretched_col(); }, 50);
		});
	}
}

/* ====================================== */
/* Stretched Column
/* ====================================== */
var pbmit_stretched_col = function() {

	jQuery('.elementor-section.elementor-top-section').each(function() {
		if (jQuery(this).hasClass('pbmit-col-stretched-left') || jQuery(this).hasClass('pbmit-col-stretched-right') || jQuery(this).hasClass('pbmit-col-stretched-both')) {
			jQuery(this).addClass('pbmit-col-stretched-yes').removeClass('pbmit-col-stretched-no');
		} else {
			jQuery(this).addClass('pbmit-col-stretched-no').removeClass('pbmit-col-stretched-yes');
		}
	});

	// remove all stretched related changes in each column
	jQuery('.elementor-section.elementor-top-section').each(function() {
		var ThisSection = jQuery(this);
		var ThisColumn = '';
		jQuery('.elementor-column.elementor-top-column', ThisSection).each(function() {
			ThisColumn = jQuery(this);
			jQuery('.pbmit-stretched-div', ThisColumn).remove();
			ThisColumn.removeClass('pbmit-col-stretched-yes pbmit-col-stretched-left pbmit-col-stretched-right pbmit-col-stretched-content-yes');
		});
	});

	// reset - Remove all inline css
	jQuery('.elementor-section.elementor-top-section').each(function() {
		jQuery('.elementor-column.elementor-top-column', jQuery(this)).each(function() {
			if (jQuery(this).children('.elementor-column-wrap').length > 0) {
				jQuery(this).children('.elementor-column-wrap').removeAttr('style');
			} else {
				jQuery(this).children('.elementor-widget-wrap').removeAttr('style');
			}
		});
	});

	jQuery('.elementor-section.elementor-top-section.pbmit-col-stretched-yes').each(function() {

		var ThisSection = jQuery(this);
		var ThisColumn = '';
		var ColWrapper = '';
		var StretchedEle = '';
		var StretchedInnerEle = '';

		if (ThisSection.hasClass('pbmit-col-stretched-left') || ThisSection.hasClass('pbmit-col-stretched-both')) {
			ThisColumn = jQuery('.elementor-column.elementor-top-column', ThisSection).first();

			if (jQuery('.pbmit-stretched-div', ThisColumn).length == 0) {

				if (ThisColumn.children('.elementor-column-wrap').length > 0) {
					ColWrapper = ThisColumn.children('.elementor-column-wrap');
				} else {
					ColWrapper = ThisColumn.children('.elementor-widget-wrap');
				}

				ColWrapper.prepend('<div class="pbmit-stretched-div"></div>');

				// Stretched Element
				StretchedEle = ColWrapper.children('.pbmit-stretched-div');

				// RTL
				if (jQuery('body').hasClass('rtl')) {
					StretchedEle.addClass('pbmit-stretched-right pbmit-stretched-for-rtl');
					ThisColumn.addClass('pbmit-col-stretched-yes pbmit-col-stretched-right pbmit-col-stretched-for-rtl');
				} else {
					StretchedEle.addClass('pbmit-stretched-left');
					ThisColumn.addClass('pbmit-col-stretched-yes pbmit-col-stretched-left');
				}

				// specially for Skew view only
				if (ThisColumn.hasClass('pbmit-skew-yes')) {
					StretchedEle.prepend('<div class="pbmit-stretched-inner-div"></div>');
					StretchedInnerEle = StretchedEle.children('.pbmit-stretched-inner-div');
					StretchedInnerEle.css('position', 'absolute');
					StretchedInnerEle.css('width', '100%');
					StretchedInnerEle.css('height', '100%');
				}

				if (ThisSection.hasClass('pbmit-left-col-stretched-content-yes')) {
					ThisColumn.addClass('pbmit-col-stretched-content-yes');
				} else {
					ThisColumn.removeClass('pbmit-col-stretched-content-yes');
				}

				// background move to stretched div
				ColWrapper.removeAttr('style');
				var bgImage = ColWrapper.css('background-image');
				if (bgImage != 'none' && bgImage != '') {
					// specially for Skew view only
					if (ThisColumn.hasClass('pbmit-skew-yes')) {
						StretchedInnerEle.css('background-image', bgImage);
					} else {
						StretchedEle.css('background-image', bgImage);
					}
					ColWrapper.css('background-image', 'none');
				}

				// border radious
				ColWrapper.css('border-top-left-radius', '');
				ColWrapper.css('border-top-right-radius', '');
				ColWrapper.css('border-bottom-left-radius', '');
				ColWrapper.css('border-bottom-right-radius', '');
				var radius_t_left = ColWrapper.css('border-top-left-radius');
				var radius_t_right = ColWrapper.css('border-top-right-radius');
				var radius_b_left = ColWrapper.css('border-bottom-left-radius');
				var radius_b_right = ColWrapper.css('border-bottom-right-radius');
				if (radius_t_left != '0' && radius_t_left != '') {
					StretchedEle.css('border-top-left-radius', radius_t_left);
					ColWrapper.css('border-top-left-radius', '0');
				}
				if (radius_t_right != '0' && radius_t_right != '') {
					StretchedEle.css('border-top-right-radius', radius_t_right);
					ColWrapper.css('border-top-right-radius', '0');
				}
				if (radius_b_left != '0' && radius_b_left != '') {
					StretchedEle.css('border-bottom-left-radius', radius_b_left);
					ColWrapper.css('border-bottom-left-radius', '0');
				}
				if (radius_b_right != '0' && radius_b_right != '') {
					StretchedEle.css('border-bottom-right-radius', radius_b_right);
					ColWrapper.css('border-bottom-right-radius', '0');
				}

				// Background Color
				var bgColor = ColWrapper.css('background-color');

				if (bgColor && bgColor != '') {

					if (bgColor.indexOf('rgba') != -1) { // check if RGB or RGBA

						var bgColorArray = bgColor.split(',');
						var colors = [];
						jQuery(bgColorArray).each(function(x, y) {
							y = y.replace('rgba', '');
							y = y.replace('(', '');
							y = y.replace(')', '');
							y = y.trim();
							colors.push(y);
						});

						bgColor = 'rgb(';
						var loopx = 1;
						var opacity = 'n'
						jQuery.each(colors, function(index, value) {
							if (loopx == 1) {
								bgColor += value;
							} else if (loopx == 2 || loopx == 3) {
								bgColor += ',' + value;
							} else if (loopx == 4 && (value == '0' || value == 0)) {
								opacity = 'y';
							}
							loopx = loopx + 1;
						});
						bgColor += ')';

						if (opacity == 'y') {
							bgColor = 'transparent';
						}

					}

					// specially for Skew view only
					if (ThisColumn.hasClass('pbmit-skew-yes')) {
						StretchedInnerEle.css('background-color', bgColor);
					} else {
						StretchedEle.css('background-color', bgColor);
					}

					ColWrapper.css('background-color', 'transparent');
				}

				// Background Position
				var bgPosition = ColWrapper.css('background-position');
				if (bgPosition != '') {
					if (ThisColumn.hasClass('pbmit-skew-yes')) {
						StretchedInnerEle.css('background-position', bgPosition);
					} else {
						StretchedEle.css('background-position', bgPosition);
					}
				}

				// Background Repeat
				var bgRepeat = ColWrapper.css('background-repeat');
				if (bgRepeat != '') {
					if (ThisColumn.hasClass('pbmit-skew-yes')) {
						StretchedInnerEle.css('background-repeat', bgRepeat);
					} else {
						StretchedEle.css('background-repeat', bgRepeat);
					}
				}

				// Background Size
				var bgSize = ColWrapper.css('background-size');
				if (bgSize != '') {
					if (ThisColumn.hasClass('pbmit-skew-yes')) {
						StretchedInnerEle.css('background-size', bgSize);
					} else {
						StretchedEle.css('background-size', bgSize);
					}
				}

				pbmit_stretched_col_calc();

			}

		}

		if (ThisSection.hasClass('pbmit-col-stretched-right') || ThisSection.hasClass('pbmit-col-stretched-both')) {
			ThisColumn = jQuery('.elementor-column.elementor-top-column', ThisSection).last();

			if (jQuery('.pbmit-stretched-div', ThisColumn).length == 0) {

				if (ThisColumn.children('.elementor-column-wrap').length > 0) {
					ColWrapper = ThisColumn.children('.elementor-column-wrap');
				} else {
					ColWrapper = ThisColumn.children('.elementor-widget-wrap');
				}

				ColWrapper.prepend('<div class="pbmit-stretched-div"></div>');

				// Stretched Element
				StretchedEle = ColWrapper.children('.pbmit-stretched-div');

				// RTL
				if (jQuery('body').hasClass('rtl')) {
					StretchedEle.addClass('pbmit-stretched-left pbmit-stretched-for-rtl');
					ThisColumn.addClass('pbmit-col-stretched-yes pbmit-col-stretched-left pbmit-col-stretched-for-rtl');
				} else {
					StretchedEle.addClass('pbmit-stretched-right');
					ThisColumn.addClass('pbmit-col-stretched-yes pbmit-col-stretched-right');
				}

				// specially for Skew view only
				if (ThisColumn.hasClass('pbmit-skew-yes')) {
					StretchedEle.prepend('<div class="pbmit-stretched-inner-div"></div>');
					StretchedInnerEle = StretchedEle.children('.pbmit-stretched-inner-div');
					StretchedInnerEle.css('position', 'absolute');
					StretchedInnerEle.css('width', '100%');
					StretchedInnerEle.css('height', '100%');
				}

				if (ThisSection.hasClass('pbmit-right-col-stretched-content-yes')) {
					ThisColumn.addClass('pbmit-col-stretched-content-yes');
				} else {
					ThisColumn.removeClass('pbmit-col-stretched-content-yes');
				}

				// background move to stretched div
				ColWrapper.removeAttr('style');
				var bgImage = ColWrapper.css('background-image');
				if (bgImage != 'none' && bgImage != '') {
					// specially for Skew view only
					if (ThisColumn.hasClass('pbmit-skew-yes')) {
						StretchedInnerEle.css('background-image', bgImage);
					} else {
						StretchedEle.css('background-image', bgImage);
					}
					ColWrapper.css('background-image', 'none');
				}

				// border radious
				ColWrapper.css('border-top-left-radius', '');
				ColWrapper.css('border-top-right-radius', '');
				ColWrapper.css('border-bottom-left-radius', '');
				ColWrapper.css('border-bottom-right-radius', '');
				var radius_t_left = ColWrapper.css('border-top-left-radius');
				var radius_t_right = ColWrapper.css('border-top-right-radius');
				var radius_b_left = ColWrapper.css('border-bottom-left-radius');
				var radius_b_right = ColWrapper.css('border-bottom-right-radius');
				if (radius_t_left != '0' && radius_t_left != '') {
					StretchedEle.css('border-top-left-radius', radius_t_left);
					ColWrapper.css('border-top-left-radius', '0');
				}
				if (radius_t_right != '0' && radius_t_right != '') {
					StretchedEle.css('border-top-right-radius', radius_t_right);
					ColWrapper.css('border-top-right-radius', '0');
				}
				if (radius_b_left != '0' && radius_b_left != '') {
					StretchedEle.css('border-bottom-left-radius', radius_b_left);
					ColWrapper.css('border-bottom-left-radius', '0');
				}
				if (radius_b_right != '0' && radius_b_right != '') {
					StretchedEle.css('border-bottom-right-radius', radius_b_right);
					ColWrapper.css('border-bottom-right-radius', '0');
				}

				// Background Color
				var bgColor = ColWrapper.css('background-color');
				if (bgColor && bgColor != '') {
					if (bgColor.indexOf('rgba') != -1) { // check if RGB or RGBA
						var bgColorArray = bgColor.split(',');

						var colors = [];
						jQuery(bgColorArray).each(function(x, y) {
							y = y.replace('rgba', '');
							y = y.replace('(', '');
							y = y.replace(')', '');
							y = y.trim();
							colors.push(y);
						});

						bgColor = 'rgb(';
						var loopx = 1;
						var opacity = 'n'
						jQuery.each(colors, function(index, value) {
							if (loopx == 1) {
								bgColor += value;
							} else if (loopx == 2 || loopx == 3) {
								bgColor += ',' + value;
							} else if (loopx == 4 && (value == '0' || value == 0)) {
								opacity = 'y';
							}
							loopx = loopx + 1;
						});
						bgColor += ')';

						if (opacity == 'y') {
							bgColor = 'transparent';
						}

					}

					// specially for Skew view only
					if (ThisColumn.hasClass('pbmit-skew-yes')) {
						StretchedInnerEle.css('background-color', bgColor);
					} else {
						StretchedEle.css('background-color', bgColor);
					}
					ColWrapper.css('background-color', 'transparent');
				}

				// Background Position
				var bgPosition = ColWrapper.css('background-position');
				if (bgPosition != '') {
					if (ThisColumn.hasClass('pbmit-skew-yes')) {
						StretchedInnerEle.css('background-position', bgPosition);
					} else {
						StretchedEle.css('background-position', bgPosition);
					}
				}

				// Background Repeat
				var bgRepeat = ColWrapper.css('background-repeat');
				if (bgRepeat != '') {
					if (ThisColumn.hasClass('pbmit-skew-yes')) {
						StretchedInnerEle.css('background-repeat', bgRepeat);
					} else {
						StretchedEle.css('background-repeat', bgRepeat);
					}
				}

				// Background Size
				var bgSize = ColWrapper.css('background-size');
				if (bgSize != '') {
					if (ThisColumn.hasClass('pbmit-skew-yes')) {
						StretchedInnerEle.css('background-size', bgSize);
					} else {
						StretchedEle.css('background-size', bgSize);
					}
				}

				pbmit_stretched_col_calc();

			}
		}

	});

};

var pbmit_stretched_col_calc = function() {

	// padding left or right
	if (jQuery('.elementor-section.elementor-top-section > .elementor-container .elementor-column.elementor-top-column.pbmit-col-stretched-yes').length > 0) {

		// Returns width of browser viewport
		var window_width = jQuery(window).width();

		// Returns width of HTML document
		var document_width = jQuery(document).width();

		jQuery('.elementor-section.elementor-top-section > .elementor-container .elementor-column.elementor-top-column.pbmit-col-stretched-yes').each(function() {

			if (jQuery(this).closest('.elementor-section.elementor-top-section').hasClass('pbmit-col-stretched-both') && (jQuery(this).hasClass('elementor-col-100') || jQuery(this).attr('data-col') == '100')) {
				// Do nothing
			} else {

				var this_ele = jQuery(this);
				var curr_width = jQuery(this).closest('.elementor-container').width();
				var extra_width = ((window_width - curr_width) / 2);
				var parent_width = '';

				if (this_ele.hasClass('pbmit-skew-yes')) {
					extra_width = extra_width + 100;
				}

				var position = 'left';
				if (jQuery(this).hasClass('pbmit-col-stretched-right')) {
					position = 'right';
				}

				// set width to 100% if parent is 100%
				parent_width = jQuery(this).width();
				if (parent_width == '100%') {
					jQuery(this).children('.elementor-widget-wrap').css('width', '100%');
					jQuery(this).children('.elementor-column-wrap').css('width', '100%');
				} else {
					jQuery(this).children('.elementor-widget-wrap').css('width', '');
					jQuery(this).children('.elementor-column-wrap').css('width', '');
				}

				jQuery('.pbmit-stretched-div', jQuery(this)).css('margin-' + position, '-' + extra_width + 'px');

				// stretched column content too
				if (jQuery(this).hasClass('pbmit-col-stretched-content-yes')) {
					jQuery('.pbmit-stretched-div', jQuery(this)).css('margin-' + position, "");
					var stretched_width = jQuery(this).width() + extra_width ;
					if (jQuery(this).children('.elementor-column-wrap').length > 0) {
						jQuery(this).children('.elementor-column-wrap').css('margin-' + position, '-' + extra_width + 'px');
						jQuery(this).children('.elementor-column-wrap').css('width', stretched_width + 'px');
					} else {
						jQuery(this).children('.elementor-widget-wrap').css('margin-' + position, '-' + extra_width + 'px');
						jQuery(this).children('.elementor-widget-wrap').css('width', stretched_width + 'px');
					}
				} else {
					if (jQuery(this).children('.elementor-column-wrap').length > 0) {
						jQuery(this).children('.elementor-column-wrap').css('margin-' + position, '');
						jQuery(this).children('.elementor-column-wrap').css('width', '');
					} else {
						jQuery(this).children('.elementor-widget-wrap').css('margin-' + position, '');
						jQuery(this).children('.elementor-widget-wrap').css('width', '');
					}
				}
			}

		});

	}

}

/* ============================================== */
/* BG Image yes class in each Section and Column
/* ============================================== */
var pbmit_bgimage_class = function() {
	jQuery('.elementor-section.elementor-top-section').each(function() {

		if (jQuery(this).css('background-image') != '' && jQuery(this).css('background-image') != 'none') {
			jQuery(this).addClass('pbmit-bgimage-yes').removeClass('pbmit-bgimage-no');
		} else {
			jQuery(this).addClass('pbmit-bgimage-no').removeClass('pbmit-bgimage-yes');
		}
	});
	jQuery('.elementor-column.elementor-top-column').each(function() {

		if (jQuery(this).children('.elementor-column-wrap').length > 0) {

			if (jQuery(this).children('.elementor-column-wrap').children('.pbmit-stretched-div').length > 0) {

				if (jQuery(this).children('.elementor-column-wrap').children('.pbmit-stretched-div').css('background-image') == 'none' || jQuery(this).children('.elementor-column-wrap').children('.pbmit-stretched-div').css('background-image') == '') {
					jQuery(this).addClass('pbmit-bgimage-no').removeClass('pbmit-bgimage-yes');
				} else {
					jQuery(this).addClass('pbmit-bgimage-yes').removeClass('pbmit-bgimage-no');
				}

			} else {

				if (jQuery(this).children('.elementor-column-wrap').css('background-image') == 'none' || jQuery(this).children('.elementor-column-wrap').css('background-image') == '') {
					jQuery(this).addClass('pbmit-bgimage-no').removeClass('pbmit-bgimage-yes');
				} else {
					jQuery(this).addClass('pbmit-bgimage-yes').removeClass('pbmit-bgimage-no');
				}

			}

		} else {

			if (jQuery(this).children('.elementor-widget-wrap').children('.pbmit-stretched-div').length > 0) {

				if (jQuery(this).children('.elementor-widget-wrap').children('.pbmit-stretched-div').css('background-image') == 'none' || jQuery(this).children('.elementor-widget-wrap').children('.pbmit-stretched-div').css('background-image') == '') {
					jQuery(this).addClass('pbmit-bgimage-no').removeClass('pbmit-bgimage-yes');
				} else {
					jQuery(this).addClass('pbmit-bgimage-yes').removeClass('pbmit-bgimage-no');
				}

			} else {

				if (jQuery(this).children('.elementor-widget-wrap').css('background-image') == 'none' || jQuery(this).children('.elementor-widget-wrap').css('background-image') == '') {
					jQuery(this).addClass('pbmit-bgimage-no').removeClass('pbmit-bgimage-yes');
				} else {
					jQuery(this).addClass('pbmit-bgimage-yes').removeClass('pbmit-bgimage-no');
				}

			}

		}
	});
};

/* ============================================== */
/* BG Color yes class in each Section and Column
/* ============================================== */
var pbmit_bgcolor_class = function() {
	jQuery('.elementor-section.elementor-top-section').each(function() {
		if (jQuery(this).css('background-color') != '' && jQuery(this).css('background-color') != 'transparent') {
			jQuery(this).addClass('pbmit-bgcolor-yes');
		}
	});
	jQuery('.elementor-column.elementor-top-column').each(function() {
		if (jQuery(this).children('.pbmit-stretched-div').length) {
			if (jQuery(this).children('.pbmit-stretched-div').css('background-color') != '' && jQuery(this).children('.pbmit-stretched-div').css('background-color') != 'transparent') {
				jQuery(this).addClass('pbmit-bgcolor-yes').removeClass('pbmit-bgcolor-no');
			} else {
				jQuery(this).addClass('pbmit-bgcolor-no').removeClass('pbmit-bgcolor-yes');
			}
		} else {

			if (jQuery(this).children('.elementor-column-wrap').length > 0) {

				if (jQuery(this).children('.elementor-column-wrap').css('background-color') == 'transparent' || jQuery(this).children('.elementor-column-wrap').css('background-color') == '') {
					jQuery(this).addClass('pbmit-bgcolor-no').removeClass('pbmit-bgcolor-yes');
				} else {
					jQuery(this).addClass('pbmit-bgcolor-yes').removeClass('pbmit-bgcolor-no');
				}

			} else {

				if (jQuery(this).children('.elementor-widget-wrap').css('background-color') == 'transparent' || jQuery(this).children('.elementor-widget-wrap').css('background-color') == '') {
					jQuery(this).addClass('pbmit-bgcolor-no').removeClass('pbmit-bgcolor-yes');
				} else {
					jQuery(this).addClass('pbmit-bgcolor-yes').removeClass('pbmit-bgcolor-no');
				}

			}

		}
	});
};

var pbmit_accordion_active_class = function() {
	var parentAccordion = '';
	jQuery('.elementor-tab-title.elementor-active', this).each(function() {
		jQuery(this).parent().addClass('pbmit-active-accordion');
	});
	jQuery('.elementor-tab-title').on('click',function() {
		parentAccordion = jQuery(this).closest('.elementor-accordion');
		jQuery('.elementor-accordion-item', parentAccordion).removeClass('pbmit-active-accordion');
		jQuery(this).parent().addClass('pbmit-active-accordion');
	});

}

/*----  Events  ----*/

// On resize
jQuery(window).resize(function() {
	setTimeout(function() {
		pbmit_stretched_col_calc();
	}, 100);
});

// on ready
jQuery(document).ready(function() {
	pbmit_stretched_col();
	pbmit_stretched_col_calc();
	pbmit_bgimage_class();
	pbmit_bgcolor_class();
	setTimeout(function() {
		pbmit_stretched_col_calc();
	}, 100);
});

// on load
jQuery(window).load(function(){
	pbmit_accordion_active_class();
});