HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux WebLive 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wpmuhibbah_err/wp-content/themes/goodwish/assets/js/modules/events.js
(function($) {
    'use strict';

    var events = {};
    edgtf.modules.events = events;

    events.edgtfOnDocumentReady = edgtfOnDocumentReady;
    events.edgtfOnWindowLoad = edgtfOnWindowLoad;
    events.edgtfOnWindowResize = edgtfOnWindowResize;
    events.edgtfOnWindowScroll = edgtfOnWindowScroll;

    events.edgtfEventImagesSlider = edgtfEventImagesSlider;
    events.edgtfEventsRelatedProducts = edgtfEventsRelatedProducts;
    events.edgtfTitleFullWidthResize = edgtfTitleFullWidthResize;
    events.edgtfInitEventsLoadMore = edgtfInitEventsLoadMore;
    events.edgtfEventAppearFx = edgtfEventAppearFx;
    events.edgtfInitEventListCarousel = edgtfInitEventListCarousel;

    $(document).ready(edgtfOnDocumentReady);
    $(window).on('load', edgtfOnWindowLoad);
    $(window).resize(edgtfOnWindowResize);
    $(window).scroll(edgtfOnWindowScroll);
    
    /* 
        All functions to be called on $(document).ready() should be in this function
    */
    function edgtfOnDocumentReady() {
    	edgtfTitleFullWidthResize();
        edgtfEventImagesSlider();
        edgtfEventsRelatedProducts();
        edgtfInitEventsLoadMore();
        edgtfInitEventListCarousel();
    }

    /* 
        All functions to be called on $(window).load() should be in this function
    */
    function edgtfOnWindowLoad() {
    	edgtfInitFullWidthParallax();
        edgtfEventAppearFx();
    }

    /* 
        All functions to be called on $(window).resize() should be in this function
    */
    function edgtfOnWindowResize() {
    	edgtfTitleFullWidthResize();

    }

    /* 
        All functions to be called on $(window).scroll() should be in this function
    */
    function edgtfOnWindowScroll() {

    }

	/*
	**	Event List Full Width Title resizing
	*/
	function edgtfTitleFullWidthResize(){
		var title = $('.edgtf-event-list-full-width .edgtf-el-item-title');
		if (title.length){
			title.each(function(){
				var thisTitle = $(this);
				var fontSize;
				var coef1 = 1;
				var coef2 = 1;

				if (edgtf.windowWidth < 1300){
					coef1 = 0.8;
				}

				if (edgtf.windowWidth < 1200){
					coef1 = 0.75;
				}

				if (edgtf.windowWidth < 1000){
					coef1 = 0.7;
				}

				if (edgtf.windowWidth < 768){
					coef1 = 0.6;
					coef2 = 0.7;
				}

				if (edgtf.windowWidth < 600){
					coef1 = 0.5;
					coef2 = 0.6;
				}

				if (edgtf.windowWidth < 480){
					coef1 = 0.4;
					coef2 = 0.5;
				}

				if (typeof thisTitle.data('font-size') !== 'undefined' && thisTitle.data('font-size') !== false) {
					fontSize = parseInt(thisTitle.data('font-size'));

					if (fontSize > 70) {
						fontSize = Math.round(fontSize*coef1);
					}
					else if (fontSize > 35) {
						fontSize = Math.round(fontSize*coef2);
					}

					thisTitle.css('font-size',fontSize + 'px');
				}
			});
		}
	}

    function edgtfEventAppearFx() {
        var appearFxList = $('.edgtf-event-list-appear-fx');

        if (appearFxList.length && !edgtf.htmlEl.hasClass('touch')) {
            appearFxList.each(function(){
                var currentList = $(this),
                    eventItems = currentList.find('.edgtf-el-item'),
                    animateCycle = 2, // rewind delay
                    animateCycleCounter = 0;

                eventItems.appear(function(){
                    var eventItem = $(this);
                    animateCycleCounter ++;
                    if(animateCycleCounter == animateCycle) {
                        animateCycleCounter = 0;
                    }
                    setTimeout(function(){
                        eventItem.addClass('edgtf-appeared');
                    }, animateCycleCounter*200);
                },{accX: 0, accY: edgtfGlobalVars.vars.edgtfElementAppearAmount});
            });
        }
    }

    function edgtfEventsRelatedProducts(){
		var relatedProducts = $('.edgtf-event-related-slider');

		if (relatedProducts.length){

			var responsive = [
				{
					breakpoint: 769,
					settings: {
						slidesToShow: 2,
					}
				},
				{
					breakpoint: 481,
					settings: {
						slidesToShow: 1,
					}
				},
			];

			relatedProducts.slick({
				infinite: true,
				autoplay: true,
				slidesToShow : 3,
				centerMode: true,
				centerPadding: '15.1%',
				arrows: true,
				dots: false,
				adaptiveHeight: true,
				responsive: responsive,
                easing: 'easeInOutQuint',
                speed: 1000,
				prevArrow: '<span class="edgtf-slick-prev edgtf-prev-icon"><span class="arrow_left"></span></span>',
				nextArrow: '<span class="edgtf-slick-next edgtf-next-icon"><span class="arrow_right"></span></span>'
			});
		}
    }


    function edgtfEventImagesSlider(){
		var eventImagesSlider = $('.edgtf-event-images-slider');

		if (eventImagesSlider.length){

            var	element;

			eventImagesSlider.on('init', function(slick){
                eventImagesSlider.addClass('edgtf-appeared');

				element = eventImagesSlider.find('.slick-slide');

				element.each(function(){
					var thisElement = $(this),
						flag = 0,
						mousedownFlag = 0,
						moved = false;

					thisElement.on("mousedown", function(){
						flag = 0;
						mousedownFlag = 1;
						moved = false;
					});

					thisElement.on("mousemove", function(){
						if (mousedownFlag == 1){
							if (moved){
								flag = 1;
							}
							moved = true;
						}
					});

					thisElement.on("mouseleave", function(){
						flag = 0;
					});

					thisElement.on("mouseup", function(e){
						if(flag === 1){
							thisElement.find('a[data-rel^="prettyPhoto"]').off('click');
						}
						else{
							edgtf.modules.common.edgtfPrettyPhoto();
						}
						flag = 0;
						mousedownFlag = 0;
					});
				});

			});

			eventImagesSlider.slick({
				infinite: true,
				autoplay: true,
				slidesToShow : 1,
				centerMode: true,
				centerPadding: '16%',
				arrows: true,
				dots: false,
				adaptiveHeight: true,
                easing: 'easeInOutQuint',
                speed: 1000,
				prevArrow: '<span class="edgtf-slick-prev edgtf-prev-icon"><span class="arrow_left"></span></span>',
				nextArrow: '<span class="edgtf-slick-next edgtf-next-icon"><span class="arrow_right"></span></span>'
			});
		}
    }

	function edgtfInitFullWidthParallax(){
		var parallaxBackgroundItems = $('.edgtf-event-list-full-width.edgtf-event-list-parallax .edgtf-el-item-background');

		if(parallaxBackgroundItems.length){
			parallaxBackgroundItems.each(function() {

				var parallaxElement = $(this);
				var speed = 0.4;
				parallaxElement.parallax("50%", speed);
			});
		}
	}

    /**
     * Initializes events load more function
     */
    function edgtfInitEventsLoadMore(){
        var eventList = $('.edgtf-event-list-holder.edgtf-event-list-show-more');

        if(eventList.length){

            eventList.each(function(){
                
                var thisEventList = $(this);
                var thisEventListInner = thisEventList.find('.edgtf-event-list-holder-inner');
                var nextPage; 
                var maxNumPages;
                var loadMoreButton = thisEventList.find('.edgtf-el-list-load-more a');
                var buttonText = loadMoreButton.children(".edgtf-btn-text");
                
                if (typeof thisEventList.data('max-num-pages') !== 'undefined' && thisEventList.data('max-num-pages') !== false) {  
                    maxNumPages = thisEventList.data('max-num-pages');
                }

                if (thisEventList.hasClass('edgtf-event-list-load-button')) {

                    loadMoreButton.on('click', function (e) {
                        var loadMoreDatta = edgtfGetEventAjaxData(thisEventList);
                        nextPage = loadMoreDatta.nextPage;
                        e.preventDefault();
                        e.stopPropagation();
                        if (nextPage <= maxNumPages) {
                            var ajaxData = edgtfSetEventAjaxData(loadMoreDatta);
                            buttonText.text(edgtfGlobalVars.vars.edgtfLoadingMoreText);
                            $.ajax({
                                type: 'POST',
                                data: ajaxData,
                                url: edgtCoreAjaxUrl,
                                success: function (data) {
                                    nextPage++;
                                    thisEventList.data('next-page', nextPage);
                                    var response = $.parseJSON(data);
                                    var responseHtml = edgtfConvertHTML(response.html); //convert response html into jQuery collection that Mixitup can work with
                                    thisEventList.waitForImages(function () {
                                        thisEventListInner.append(responseHtml);
                                        edgtfTitleFullWidthResize();
                                        edgtfEventAppearFx();

                                        buttonText.text(edgtfGlobalVars.vars.edgtfLoadMoreText);

                                        if(nextPage > maxNumPages){
                                            loadMoreButton.hide();
                                        }
                                    });
                                }
                            });
                        }
                    });

                } else if (thisEventList.hasClass('edgtf-event-list-infinite-scroll')) {
                    loadMoreButton.appear(function(e) {
                        var loadMoreDatta = edgtfGetEventAjaxData(thisEventList);
                        nextPage = loadMoreDatta.nextPage;
                        e.preventDefault();
                        e.stopPropagation();
                        loadMoreButton.css('visibility', 'visible');
                        if(nextPage <= maxNumPages){
                            var ajaxData = edgtfSetEventAjaxData(loadMoreDatta);
                            $.ajax({
                                type: 'POST',
                                data: ajaxData,
                                url: edgtCoreAjaxUrl,
                                success: function (data) {
                                    nextPage++;
                                    thisEventList.data('next-page', nextPage);
                                    var response = $.parseJSON(data);
                                    var responseHtml = edgtfConvertHTML(response.html); //convert response html into jQuery collection that Mixitup can work with
                                    thisEventList.waitForImages(function(){
                                        thisEventListInner.append(responseHtml);
                                        loadMoreButton.css('visibility','hidden');
                                        edgtfTitleFullWidthResize();
                                        edgtfEventAppearFx();
                                    });
                                }
                            });
                        }
                        if(nextPage === maxNumPages){
                            setTimeout(function() {
                                loadMoreButton.fadeOut(400);
                            }, 400);
                        }

                    },{ one: false, accX: 0, accY: edgtfGlobalVars.vars.edgtfElementAppearAmount});
                }
                
            });
        }
    }
    
    function edgtfConvertHTML ( html ) {
        var newHtml = $.trim( html ),
                $html = $(newHtml ),
                $empty = $();

        $html.each(function ( index, value ) {
            if ( value.nodeType === 1) {
                $empty = $empty.add ( this );
            }
        });

        return $empty;
    }

    /**
     * Initializes events load more data params
     * @param event list container with defined data params
     * return array
     */
    function edgtfGetEventAjaxData(container){
        var returnValue = {};
        
        returnValue.type = '';
        returnValue.columns = '';
        returnValue.orderBy = '';
        returnValue.order = '';
        returnValue.eventStatus = '';
        returnValue.number = '';
        returnValue.category = '';
        returnValue.selectedProjectes = '';
        returnValue.showMore = '';
        returnValue.titleTag = '';
        returnValue.titleSize = '';
        returnValue.paddingTopBottom = '';
        returnValue.parallax = '';
        returnValue.appearFx = '';
        returnValue.nextPage = '';
        returnValue.maxNumPages = '';
        
        if (typeof container.data('type') !== 'undefined' && container.data('type') !== false) {
            returnValue.type = container.data('type');
        }
        if (typeof container.data('columns') !== 'undefined' && container.data('columns') !== false) {                    
            returnValue.columns = container.data('columns');
        }
        if (typeof container.data('order-by') !== 'undefined' && container.data('order-by') !== false) {                    
            returnValue.orderBy = container.data('order-by');
        }
        if (typeof container.data('order') !== 'undefined' && container.data('order') !== false) {                    
            returnValue.order = container.data('order');
        }
        if (typeof container.data('event-status') !== 'undefined' && container.data('event-status') !== false) {                    
            returnValue.eventStatus = container.data('event-status');
        }
        if (typeof container.data('number') !== 'undefined' && container.data('number') !== false) {                    
            returnValue.number = container.data('number');
        }
        if (typeof container.data('category') !== 'undefined' && container.data('category') !== false) {                    
            returnValue.category = container.data('category');
        }
        if (typeof container.data('selected-projects') !== 'undefined' && container.data('selected-projects') !== false) {                    
            returnValue.selectedProjectes = container.data('selected-projects');
        }
        if (typeof container.data('show-more') !== 'undefined' && container.data('show-more') !== false) {                    
            returnValue.showMore = container.data('show-more');
        }
        if (typeof container.data('title-tag') !== 'undefined' && container.data('title-tag') !== false) {                    
            returnValue.titleTag = container.data('title-tag');
        }
        if (typeof container.data('parallax') !== 'undefined' && container.data('parallax') !== false) {                    
            returnValue.parallax = container.data('parallax');
        }
        if (typeof container.data('appear-fx') !== 'undefined' && container.data('appear-fx') !== false) {                    
            returnValue.appearFx = container.data('appear-fx');
        }
        if (typeof container.data('title-size') !== 'undefined' && container.data('title-size') !== false) {                    
            returnValue.titleSize = container.data('title-size');
        }
        if (typeof container.data('padding-top-bottom') !== 'undefined' && container.data('padding-top-bottom') !== false) {                    
            returnValue.paddingTopBottom = container.data('padding-top-bottom');
        }
        if (typeof container.data('next-page') !== 'undefined' && container.data('next-page') !== false) {                    
            returnValue.nextPage = container.data('next-page');
        }
        if (typeof container.data('max-num-pages') !== 'undefined' && container.data('max-num-pages') !== false) {                    
            returnValue.maxNumPages = container.data('max-num-pages');
        }
        return returnValue;
    }
     /**
     * Sets events load more data params for ajax function
     * @param event list container with defined data params
     * return array
     */
    function edgtfSetEventAjaxData(container){
        var returnValue = {
            action: 'edgt_core_event_ajax_load_more',
            type: container.type,
            columns: container.columns,
            orderBy: container.orderBy,
            order: container.order,
            eventStatus: container.eventStatus,
            number: container.number,
            category: container.category,
            selectedProjectes: container.selectedProjectes,
            showMore: container.showMore,
            titleTag: container.titleTag,
            titleSize: container.titleSize,
            paddingTopBottom: container.paddingTopBottom,
            parallax: container.parallax,
            appearFx: container.appearFx,
            nextPage: container.nextPage
        };
        return returnValue;
    }

    /**
     * Initializes portfolio slider
     */
    
    function edgtfInitEventListCarousel(){
        var eventSlider = $('.edgtf-event-list-holder.edgtf-event-list-carousel');
        if(eventSlider.length){
            eventSlider.each(function(){
                var thisEventSlider = $(this);
                var sliderWrapper = thisEventSlider.children('.edgtf-event-list-holder-inner');

                //Responsive breakpoints
                var responsive = [
                    {
                        breakpoint: 1025,
                        settings: {
                            slidesToShow: 2,
                            slidesToScroll: 1,
                            infinite: true,
                        }
                    },
                    {
                        breakpoint: 601,
                        settings: {
                            slidesToShow: 1,
                            slidesToScroll: 1
                        }
                    }
                ];

                 sliderWrapper.on('init', function(slick){
                    var slides = sliderWrapper.find('.slick-slide');

                    var dragStart, clickable = false;

                    var handleDragStart = function(event) {
                        event = typeof event.originalEvent !== 'undefined' ? event.originalEvent : event;
                        event = event.type == 'touchstart' ? event.touches[0] : event;
                        dragStart = {
                            x: event.clientX,
                            y: event.clientY
                        };
                    };

                    var handleDragStop = function(event) {
                        event = typeof event.originalEvent !== 'undefined' ? event.originalEvent : event;
                        event = event.type == 'touchend' ? event.changedTouches[0] : event;
                        var dragEnd = {
                            x: event.clientX,
                            y: event.clientY
                        };
                        if (Math.abs(dragEnd.x - dragStart.x) < 10) {
                            clickable = true;
                        }
                    };

                    var handleClick = function(event) {
                        if (clickable) {
                            clickable = false;
                        }
                        else {
                            event.preventDefault();
                            event.stopImmediatePropagation();
                        }
                    };

                    slides.find('a')
                    .on('dragstart', function(event) {
                        event.stopImmediatePropagation();
                        event.preventDefault();
                    })
                    .on('click', handleClick)
                    .on('mousedown touchstart', handleDragStart)
                    .on('mouseup touchend', handleDragStop);
                });
    
                sliderWrapper.slick({
                    infinite: true,
                    autoplay: true,
                    autoplaySpeed: 3000,
                    arrows: false,
                    dots: true,
                    dotsClass: 'edgtf-slick-dots',
                    speed: 600,
                    easing:'easeOutCubic',
                    slidesToShow: 3,
                    prevArrow: '<span class="edgtf-slick-prev edgtf-prev-icon"><span class="arrow_carrot-left"></span></span>',
                    nextArrow: '<span class="edgtf-slick-next edgtf-next-icon"><span class="arrow_carrot-right"></span></span>',
                    responsive:responsive,
                    customPaging: function(slider, i) {
                        return '<span class="edgtf-slick-dot-inner"></span>';
                    }
                });
            });
        }
    }

})(jQuery);