PageSourceSearch

https://healgraceministries.org/wp-content/plugins/the-post-grid-pro/assets/js/rttpg-el.js?ver=7.7.10

js healgraceministries.org collected 2026-10-08 10:38:38 UTC 73,795 bytes, 1,641 lines download raw bytes

1(function ($) {
2    'use strict';
3
4    window.tpgFixLazyLoad = function () {
5        $('.tpg-el-main-wrapper').each(function () {
6            // jetpack Lazy load
7            $(this).find('img.jetpack-lazy-image:not(.jetpack-lazy-image--handled)').each(function () {
8                $(this).addClass('jetpack-lazy-image--handled').removeAttr('srcset').removeAttr('data-lazy-src').attr('data-lazy-loaded', 1);
9            });
10            //
11            $(this).find('img.lazyload').each(function () {
12                var src = $(this).attr('data-src') || '';
13                if (src) {
14                    $(this).attr('src', src).removeClass('lazyload').addClass('lazyloaded');
15                }
16            });
17        });
18    };
19
20    //Custom scroll animation
21    window.rtAnimations = function () {
22        const animatedElements = document.querySelectorAll('.animate');
23
24        // Define specific options based on animation types
25        const animationOptions = {
26            'flip-left': {threshold: 0.2, rootMargin: '0px 0px -20% 0px'},
27            'flip-right': {threshold: 0.2, rootMargin: '0px 0px -20% 0px'},
28            'scale-up': {threshold: 0.2},
29            'fade-in': {threshold: 0.2},
30            'fade-in-up': {threshold: 0.2},
31            'slide-up': {threshold: 0.2}
32        };
33
34        animatedElements.forEach(element => {
35            // Determine animation type by checking the class name
36            const animationType = Array.from(element.classList).find(className => animationOptions[className]);
37
38            // Use default options if no specific options are found for the animation type
39            const options = animationOptions[animationType] || {threshold: 0.2};
40
41            // Set up the IntersectionObserver with conditional rootMargin
42            const observer = new IntersectionObserver((entries, observer) => {
43                entries.forEach(entry => {
44                    if (entry.isIntersecting) {
45                        entry.target.classList.add('show');
46                        observer.unobserve(entry.target); // Stop observing once animated
47                    }
48                });
49            }, {
50                threshold: options.threshold,
51                rootMargin: options.rootMargin || '0px' // Only apply rootMargin if specified in options
52            });
53
54            observer.observe(element);
55        });
56    }
57
58    window.tpgTermsQuery = [];
59
60    window.initTpg = function () {
61
62        $('.tpg-el-main-wrapper').each(function () {
63            var container = $(this),
64                str = $(this).attr("data-layout"),
65                id = $.trim(container.attr('id')),
66                scID = $.trim(container.attr("data-sc-id")),
67                containerOffsetTop = container.offset().top,
68                el_load_count = 0;
69
70
71            //Get Elementor data
72            var el_settings = container.data("el-settings"),
73                el_query = container.data("el-query"),
74                el_authors = el_query ? (el_query.hasOwnProperty('author__in') ? el_query.author__in : null) : null,
75                el_path = container.data("el-path");
76
77            $('.filter-left-wrapper.swiper').each(function () {
78                var filter_slider = $(this).get(0);
79                var slider_per_item = $(this).data('per-page');
80                var slider_per_item_mobile = $(this).data('per-page-mobile');
81                var slider_per_item_tablet = $(this).data('per-page-tablet');
82                if (typeof Swiper == 'undefined') {
83                    return;
84                }
85                var filterSwiper = new Swiper('.swiper', {
86
87                    spaceBetween: 0,
88                    navigation: {
89                        nextEl: '.swiper-button-next',
90                        prevEl: '.swiper-button-prev'
91                    },
92                    breakpoints: {
93                        0: {
94                            slidesPerView: slider_per_item_mobile || 'auto'
95                        },
96                        768: {
97                            slidesPerView: slider_per_item_tablet || 'auto'
98                        },
99                        1024: {
100                            slidesPerView: slider_per_item || 'auto'
101                        }
102
103                    }
104                });
105            })
106
107            //Get TPG Elementor block data
108
109            var $default_order_by = $('.rt-order-by-action .order-by-default', container),
110                $default_order = $('.rt-sort-order-action .rt-sort-order-action-arrow', container),
111                $taxonomy_filter = $('.rt-filter-item-wrap.rt-tax-filter', 
111container),
112                author_filter = $('.rt-filter-item-wrap.rt-author-filter', container),
113                $pagination_wrap = $('.rt-pagination-wrap', container),
114                $loadmore = $('.rt-loadmore-action', container),
115                $infinite = $('.rt-infinite-action', container),
116                $page_prev_next = $('.rt-cb-page-prev-next', container),
117                $page_numbers = $('.rt-page-numbers', container),
118                html_loading = '<div class="rt-loading-overlay"></div><div class="rt-loading rt-ball-clip-rotate"><div></div></div>',
119                preLoader = container.find('.tpg-pre-loader'),
120                loader = container.find(".rt-content-loader"),
121                filter_container = $(".rt-layout-filter-container", container),
122                contentLoader = container.children(".rt-row.rt-content-loader"),
123                search_wrap = container.find(".rt-search-filter-wrap"),
124                tpg_order = '',
125                tpg_order_by = '',
126                tpg_taxonomy = '',
127                tpg_author = '',
128                tpg_term = '',
129                tpg_search = '',
130                tpg_paged = 1,
131                temp_total_pages = parseInt($pagination_wrap.attr('data-total-pages'), 10),
132                tpg_total_pages = typeof (temp_total_pages) != 'undefined' && temp_total_pages != '' ? temp_total_pages : 1,
133                temp_posts_per_page = parseInt($pagination_wrap.attr('data-posts-per-page'), 10),
134                pagination_type = $pagination_wrap.attr('data-type'),
135                tpg_posta_per_page = typeof (temp_posts_per_page) != 'undefined' && temp_posts_per_page != '' ? temp_posts_per_page : 3,
136                infinite_status = 0,
137                paramsRequest = {},
138                mIsotopWrap = '',
139                IsotopeWrap = '',
140                isMasonary = $('.rt-row.rt-content-loader.tpg-masonry', container),
141                isIsotop = $(".rt-tpg-isotope", container),
142                IsoButton = $(".rt-tpg-isotope-buttons", container),
143                IsoDropdownFilter = $("select.isotope-dropdown-filter", container),
144                isCarousel = $('.rt-swiper-holder', container),
145                placeholder_loading = function () {
146                    if (loader.find('.rt-loading-overlay').length == 0) {
147                        loader.addClass('tpg-pre-loader');
148                        loader.append(html_loading);
149                    }
150                },
151                remove_placeholder_loading = function () {
152                    loader.find('.rt-loading-overlay, .rt-loading').remove();
153                    loader.removeClass('tpg-pre-loader');
154                    $loadmore.removeClass('rt-lm-loading');
155                    $page_numbers.removeClass('rt-lm-loading');
156                    $infinite.removeClass('rt-active-elm');
157                    search_wrap.find('input').prop("disabled", false);
158                },
159                check_query = function (queryArgs = null, targetEl = null) {
160                    if ($taxonomy_filter.length > 0) {
161                        tpg_taxonomy = $taxonomy_filter.attr('data-taxonomy');
162                        var term;
163                        if ($taxonomy_filter.hasClass('rt-filter-button-wrap')) {
164                            if (targetEl) {
165                                term = targetEl.attr('data-term');
166                            } else {
167                                term = $("> .sub-button-group .rt-filter-button-item.selected", filter_container).attr('data-term');
168                            }
169                            if (term === undefined) {
170                                term = $taxonomy_filter.find('.rt-filter-button-item.selected').attr('data-term');
171                            }
172
173                        } else {
174                            if (targetEl) {
175                                term = targetEl.attr('data-term');
176                            } else {
177                                term = $(".rt-filter-wrap > .sub-dropdown-wrap.rt-filter-dropdown-wrap .term-default", filter_container).attr('data-term');
178                                if (term === undefined) {
179                                    term = $(".parent-dropdown-wrap.rt-filter-dropdown-wrap .term-default", filter_container).attr('data-term');
180                                }
181                            }
182                        }
183
184                        if (typeof (term) != 'undefined' && term != '') {
185                            tpg_term = term;
186                        }
187                    }
188                    if (author_filter.length > 0) {
189                        var author = '';
190                        if (author_filter.hasClass('rt-filter-button-wrap')) {
191                            author = author_filter.find('.rt-filter-button-item.selected').attr('data-author') || '';
192                        } else {
193                            author = $(".rt-filter-dropdown-default.term-default", author_filter).attr('data-term') || '';
194                        }
195                        if (author && author !== '') {
196                            tpg_author = author;
197                        }
198                    }
199
200                    if ($default_order_by.length > 0) {
201                        var order_by_param = $default_order_by.attr('data-order-by');
202                        if (typeof (order_by_param) != 'undefined' && order_by_param != '' && (order_by_param.toLowerCase())) {
203                            tpg_order_by = order_by_param;
204                        }
205                    }
206
207                    if ($default_order.length > 0) {
208                        var order_param = $default_order.attr('data-sort-order');
209                        if (typeof (order_param) != 'undefined' && order_param != '' && (order_param == 'DESC' || order_param == 'ASC')) {
210                            tpg_order = order_param;
211                        }
212                    }
213                    if (search_wrap.length > 0) {
214                        tpg_search = $.trim(search_wrap.find('input').val());
215                    }
216                    var archive = container.data('archive') || '',
217                        archive_value = container.data('archive-value') || '';
218
219                    paramsRequest = {
220                        'scID': scID,
221                        'order': tpg_order,
222                        'order_by': tpg_order_by,
223                        'taxonomy': tpg_taxonomy,
224                        'author': tpg_author,
225                        'term': tpg_term,
226                        'paged': tpg_paged,
227                        'action': 'tpgElLayoutAjaxAction',
228                        'search': tpg_search,
229                        'archive': archive,
230                        'archive_value': archive_value,
231                        'rttpg_nonce': rttpg.nonce,
232                        'el_settings': el_settings,
233                        'el_query': el_query,
234                        'el_path': el_path
235                    };
236
237                    if (null !== queryArgs && queryArgs.hasOwnProperty('key')) {
238                        paramsRequest.el_is_click = queryArgs.key;
239
240                        if ('taxonomy' === queryArgs.key) {
241                            var elQueryRef = jQuery.parseJSON(container.attr("data-el-query"));
242                            var existingTaxQueryRef = elQueryRef.tax_query; //tax query from the main query builder it's a constant
243
244                            if ('yes' === el_settings.multiple_taxonomy) {
245
246                                if (tpgTermsQuery && tpgTermsQuery.length === 0) {
247                                    tpgTermsQuery = existingTaxQueryRef;
248                                }
249
250                                if ('all' == queryArgs.value) {
251                                    Object.keys(tpgTermsQuery).forEac
251h(key => {
252                                        if (tpgTermsQuery[key].taxonomy === queryArgs.tax) {
253                                            // Modify the terms as needed
254                                            tpgTermsQuery[key].terms = existingTaxQueryRef[key].terms
255                                        }
256                                    });
257                                } else {
258                                    Object.keys(tpgTermsQuery).forEach(key => {
259                                        if (tpgTermsQuery[key].taxonomy === queryArgs.tax) {
260                                            // Modify the terms as needed
261                                            tpgTermsQuery[key].terms = queryArgs.value
262                                        }
263                                    });
264                                }
265
266                                paramsRequest.el_query.tax_query = tpgTermsQuery;
267                            } else {
268                                if (tpg_term === 'all') {
269                                    paramsRequest.el_query.tax_query = elQueryRef.tax_query;
270                                } else {
271                                    paramsRequest.el_query.tax_query = [
272                                        {
273                                            "taxonomy": queryArgs.tax,
274                                            "field": "term_id",
275                                            "terms": [queryArgs.value]
276                                        }
277                                    ];
278                                }
279                            }
280                        }
281
282                        if ('author' === queryArgs.key) {
283
284                            if (queryArgs.value !== 'all') {
285                                paramsRequest.el_query.author__in = [queryArgs.value];
286                            } else {
287                                if (el_authors !== null) {
288                                    paramsRequest.el_query.author__in = [el_authors];
289                                } else {
290                                    delete paramsRequest.el_query.author__in;
291                                }
292                            }
293                        }
294
295                        if ('orderby' === queryArgs.key) {
296                            paramsRequest.el_query.orderby = queryArgs.value;
297                        }
298
299                        if ('order' === queryArgs.key) {
300                            paramsRequest.el_query.order = queryArgs.value;
301                        }
302
303                        if ('search' === queryArgs.key) {
304                            paramsRequest.el_query.s = queryArgs.value;
305                        }
306
307                    }
308
309                },
310
311                infinite_scroll = function () {
312                    if (infinite_status == 1 || $infinite.hasClass('rt-hidden-elm') || $pagination_wrap.length == 0) {
313                        return;
314                    }
315                    var ajaxVisible = $pagination_wrap.offset().top,
316                        ajaxScrollTop = $(window).scrollTop() + $(window).height();
317
318                    if (ajaxVisible <= (ajaxScrollTop) && (ajaxVisible + $(window).height()) > ajaxScrollTop) {
319                        infinite_status = 1; //stop inifite scroll
320                        tpg_paged = tpg_paged + 1;
321                        $infinite.addClass('rt-active-elm');
322                        var queryArgs = {
323                            'key': 'load_on_scroll',
324                            'value': tpg_paged
325                        };
326                        ajax_action(true, true, tpg_paged, queryArgs);
327                    }
328                },
329
330                generateData = function (number) {
331                    var result = [];
332                    for (var i = 1; i < number + 1; i++) {
333                        result.push(i);
334                    }
335                    return result;
336                },
337
338                change_icon = function (fontawesome, flaticon) {
339                    if (rttpg.iconFont === 'fontawesome') {
340                        fontawesome = (fontawesome === 'fab fa-twitter' ? 'fab fa-x-twitter' : fontawesome);
341                        return fontawesome;
342                    } else {
343                        flaticon = (flaticon === 'twitter' ? 'twitter-x' : flaticon);
344                        return 'flaticon-' + flaticon;
345                    }
346                },
347
348                createPagination = function () {
349                    if ($page_numbers.length > 0) {
350
351                        $page_numbers.pagination({
352                            dataSource: generateData(tpg_total_pages * parseFloat(tpg_posta_per_page)),
353                            pageSize: parseFloat(tpg_posta_per_page),
354                            autoHidePrevious: true,
355                            autoHideNext: true,
356                            prevText: '<i class="' + change_icon("fa fa-angle-double-left", "left-arrow") + '" aria-hidden="true"></i>',
357                            nextText: '<i class="' + change_icon("fa fa-angle-double-right", "right-arrow") + '" aria-hidden="true"></i>'
358                        });
359                        $page_numbers.addHook('beforePaging', function (pagination) {
360                            infinite_status = 1;
361                            tpg_paged = pagination;
362                            $page_numbers.addClass('rt-lm-loading');
363                            $page_numbers.pagination('disable');
364                            var queryArgs = {
365                                'key': 'ajax_pagination',
366                                'value': pagination
367                            };
368
369                            ajax_action(true, false, pagination, queryArgs);
370
371                        });
372                        if (tpg_total_pages <= 1) {
373                            $page_numbers.addClass('rt-hidden-elm');
374                        } else {
375                            $page_numbers.removeClass('rt-hidden-elm');
376                        }
377                    }
378                },
379
380                load_gallery_image_popup = function () {
381                    container.each(function () {
382                        var self = $(this);
383                        if ($.fn.magnificPopup) {
384                            self.magnificPopup({
385                                delegate: 'a.tpg-zoom',
386                                type: 'image',
387                                gallery: {
388                                    enabled: true
389                                },
390                                mainClass: 'mfp-fade'
391                            });
392                        }
393                    });
394                },
395
396                ajax_action = function (page_request = false, append = false, step = null, queryArgs = null, self = null) {
397
398                    if (!page_request) {
399                        tpg_paged = 1;
400                    }
401
402                    check_query(queryArgs, self);
403
404                    if (page_request === true && tpg_total_pages > 1 && paramsRequest.paged > tpg_total_pages) {
405                        remove_placeholder_loading();
406                        return;
407                    }
408
409                    if (null !== queryArgs && 'taxonomy' === queryArgs.key) {
410                        //Post offset for ajax pagination:
411                        paramsRequest.el_query.offset = 0;
412                    }
413
414                    if (null !== queryArgs && 'ajax_pagination' === queryArgs.key) {
415                        //Post offset for ajax pagination:
416                        if (el_settings.pagination_type === 'pagination_ajax') {
417                            paramsRequest.el_query.offset = parseInt(el_settings.posts_per_page) * (step - 1);
418                        }
419                    }
420
421                    if (null !== queryArgs && 'load_on_scroll' === queryArgs.key) {
422                        //Post offset for ajax pagination:
423                        if (el_settings.pagination_type === 'load_on_scroll') {
424                            paramsRequest.el_query.offset = parseInt(el_settings.posts_per_page) * (step - 1);
425                        }
426                    }
427
428                    if (null !== queryArgs && 'search' === queryArgs.key) {
429                        //Post offset for ajax pagination:
430                        paramsRequest.el_query.offset = 0;
431                    }
432
433                    if (null !== queryArgs && ('load_more' === queryArgs.key || 'pagination' === queryArgs.key)) {
434                        el_load_count += 1;
435                        if ('load_more' === el_settings.pagination_type || 'load_on_scroll' === el_settings.pagination_type) {
436                            paramsRequest.el_query.offset = paramsRequest.el_query.posts_per_page * el_load_count;
437                        }
438                    }
439
440                    $.ajax({
441                        url: rttpg.ajaxurl,
442                        type: 'POST',
443                        data: paramsRequest,
444                        cache: false,
445                        beforeSend: function () {
446                            placeholder_loading();
447                        },
448                        success: function (data) {
449                            if (!data.error) {
450                                tpg_paged = data.paged;
451
452                                tpg_total_pages = data.total_pages;
453                                if (data.paged >= tpg_total_pages) {
454                                    if ($loadmore.length) {
455                                        $loadmore.addClass('rt-hidden-elm');
456                                    }
457                                    if ($infinite.length) {
458                                        infinite_status = 1;
459                                        $infinite.addClass('rt-hidden-elm');
460                                    }
461                                    if ($page_prev_next.length) {
462                                        if (!page_request) {
463                                            $page_prev_next.addClass('rt-hidden-elm');
464                                        } else {
465                                            $page_prev_next.find('.rt-cb-prev-btn').removeClass('rt-disabled');
466                                            $page_prev_next.find('.rt-cb-next-btn').addClass('rt-disabled');
467                                        }
468                                    }
469                                } else {
470                                    if ($loadmore.length) {
471                                        $loadmore.removeClass('rt-hidden-elm');
472                                    }
473                                    if ($infinite.length) {
474                                        infinite_status = 0;
475                                        $infinite.removeClass('rt-hidden-elm');
476                                    }
477                                    if ($page_prev_next.length) {
478                                        if (!page_request) {
479                                            $page_prev_next.removeClass('rt-hidden-elm');
480                                        } else {
481                                            if (data.paged == 1) {
482                                                $page_prev_next.find('.rt-cb-prev-btn').addClass('rt-disabled');
483                                                $page_prev_next.find('.rt-cb-next-btn').removeClass('rt-disabled');
484                                            } else {
485                                                $page_prev_next.find('.rt-cb-prev-btn').removeClass('rt-disabled');
486                                                $page_prev_next.find('.rt-cb-next-btn').removeClass('rt-disabled');
487                                            }
488                                        }
489                                    }
490                                }
491
492                                if (data.data) {
493
494                                    paramsRequest.el_query.offset = data.el_query.offset;
495
496                                    if (append) {
497                                        if (isIsotop.length) {
498                                            IsotopeWrap.append(data.data)
499                                                .isotope('appended', data.data)
500                                                .isotope('reloadItems')
501                                                .isotope('updateSortData')
502                                                .isotope();
503                                            container.trigger('tpg_item_before_load');
504                                            tpgFixLazyLoad();
505                                            IsotopeWrap.imagesLoaded(function () {
506                                                preFunction();
507                                                IsotopeWrap.isotope();
508                                                container.trigger('tpg_item_after_load');
509                                            });
510                                            if (IsoButton.attr('data-count')) {
511                                                isoFilterCounter(container, IsotopeWrap);
512                                            }
513                                        } else if (isMasonary.length) {
514                                            container.trigger('tpg_item_before_load');
515                                            tpgFixLazyLoad();
516                                            mIsotopWrap.append(data.data).isotope('appended', data.data).isotope('updateSortData').isotope('reloadItems');
517                                            mIsotopWrap.imagesLoaded(function () {
518                                                mIsotopWrap.isotope();
519                                                container.trigger('tpg_item_after_load');
520                                            });
521                                        } else {
522                                            contentLoader.append(data.data);
523                                            container.trigger('tpg_item_before_load');
524                                            container.trigger('tpg_item_after_load');
525                                        }
526                                    } else {
527                                        if (isMasonary.length) {
528                                            mIsotopWrap.html(data.data).isotope('appended', data.data).isotope('reloadItems');
529                                            container.trigger('tpg_item_before_load');
530                                            tpgFixLazyLoad();
531                                            mIsotopWrap.imagesLoaded(function () {
532                                                mIsotopWrap.isotope();
533                                                container.trigger('tpg_item_after_load');
534                                            });
535                                        } else {
536                                            contentLoader.html(data.data);
537                                            container.trigger('tpg_item_before_load');
538                                            container.trigger('tpg_item_after_load');
539                                        }
540
541                                        if (queryArgs.hasOwnProperty('key') && 'ajax_pagination' === queryArgs.key) {
542                                            $('html, body').animate({scrollTop: containerOffsetTop - 130}, 800);
543                                        }
544                                    }
545                                }
546
547                                contentLoader.imagesLoaded(function () {
548                                    preFunction();
549                                    remove_placeholder_loading();
550                                });
551                                if (!page_request) {
552                                    createPagination();
553                                    load_gallery_image_popup();
554                                }
555                            } else {
556                                remove_placeholder_loading();
557                            }
558
559                        },
560                        error: function (error) {
561                            remove_placeholder_loading();
562          
562              }
563                    });
564                    if ($('.paginationjs-pages .paginationjs-page', $page_numbers).length > 0) {
565                        $page_numbers.pagination('enable');
566                    }
567                },
568
569                subTax = function (self) {
570                    var subList = $(".rt-filter-sub-tax", self).clone();
571
572                    var filterWrapData = self.parents('.rt-filter-button-wrap'),
573                        filterData = filterWrapData.data('filter');
574
575                    subList.on('click', '.rt-filter-button-item', function () {
576                        $(this).parents('.rt-filter-sub-tax').find('.rt-filter-button-item').removeClass('selected');
577                        $(this).addClass('selected');
578
579                        var queryArgs = {
580                            'key': filterData,
581                            'value': $(this).data('term'),
582                            'offset': 0
583                        };
584
585                        if (filterData == 'taxonomy') {
586                            queryArgs.tax = filterWrapData.data('taxonomy');
587                        }
588
589                        ajax_action(false, false, null, queryArgs);
590                        // ajax_action();
591                    });
592                    if (subList !== undefined) {
593                        filter_container.append(subList);
594                    }
595                };
596
597            switch (pagination_type) {
598                case 'load_more':
599                    $loadmore.on('click', function () {
600                        $(this).addClass('rt-lm-loading');
601                        tpg_paged = tpg_paged + 1;
602                        var queryArgs = {
603                            'key': 'load_more',
604                            'value': tpg_paged
605                        };
606                        ajax_action(true, true, null, queryArgs);
607                    });
608                    break;
609                case 'pagination_ajax':
610                    createPagination();
611                    load_gallery_image_popup();
612                    break;
613                case 'pagination':
614                    break;
615                case 'load_on_scroll':
616                    $(window).on('scroll load', function () {
617                        infinite_scroll();
618                    });
619                    break;
620                case 'page_prev_next':
621                    if (tpg_paged == 1) {
622                        $page_prev_next.find('.rt-cb-prev-btn').addClass('rt-disabled');
623                    }
624                    if (tpg_paged == tpg_total_pages) {
625                        $page_prev_next.find('.rt-cb-next-btn').addClass('rt-disabled');
626                    }
627                    if (tpg_total_pages == 1) {
628                        $page_prev_next.addClass('rt-hidden-elm');
629                    }
630                    break;
631            }
632
633            if (str) {
634                var qsRegex,
635                    buttonFilter;
636                if (preLoader.find('.rt-loading-overlay').length == 0) {
637                    preLoader.append(html_loading);
638                }
639                if (isCarousel.length) {
640                    isCarousel.imagesLoaded(function () {
641
642                        if (typeof Swiper == 'undefined') {
643                            return;
644                        }
645                        var sliderWrapper = container.find('.rt-swiper-holder');
646                        var sliderLayout = container.data('layout');
647
648                        container.removeClass('loading');
649                        setTimeout(function () {
650                            sliderWrapper.parents('.slider-main-wrapper').animate({opacity: "1"});
651                        }, 100)
652
653                        var rtSwiperSlider = sliderWrapper.get(0),
654                            sliderItem = sliderWrapper,
655                            prevButton = sliderWrapper.parent().children().find(".swiper-button-prev").get(0),
656                            nextButton = sliderWrapper.parent().children().find(".swiper-button-next").get(0),
657                            dotPagination = sliderWrapper.parent().find(".swiper-pagination").get(0),
658                            dItem = parseInt(container.attr('data-desktop-col'), 10),
659                            tItem = parseInt(container.attr('data-tab-col'), 10),
660                            mItem = parseInt(container.attr('data-mobile-col'), 10),
661                            options = sliderItem.data('rtowl-options'),
662                            rtSwiperData = {
663                                slidesPerView: dItem ? dItem : 3,
664                                spaceBetween: 0,
665                                grabCursor: options.grabCursor,
666                                allowTouchMove: options.grabCursor,
667                                loop: options.loop,
668                                speed: options.speed,
669                                autoHeight: options.autoHeight,
670                                lazy: options.lazyLoad,
671                                observer: true,
672                                observeParents: true,
673                                breakpoints: {
674                                    0: {
675                                        slidesPerView: mItem ? mItem : 1,
676                                        slidesPerGroup: options.slider_per_group ? (mItem ? mItem : 1) : 1
677                                    },
678                                    768: {
679                                        slidesPerView: tItem ? tItem : 2,
680                                        slidesPerGroup: options.slider_per_group ? (tItem ? tItem : 2) : 1
681                                    },
682                                    992: {
683                                        slidesPerView: dItem ? dItem : 3,
684                                        slidesPerGroup: options.slider_per_group ? (dItem ? dItem : 3) : 1
685                                    }
686                                }
687                            };
688
689
690                        if (options.nav) {
691                            Object.assign(rtSwiperData, {
692                                navigation: {
693                                    nextEl: nextButton,
694                                    prevEl: prevButton
695                                },
696                            });
697                        }
698
699
700                        if (options.dots) {
701                            Object.assign(rtSwiperData, {
702                                pagination: {
703                                    el: dotPagination,
704                                    clickable: true,
705                                    dynamicBullets: options.dynamic_dots
706                                }
707                            });
708                        }
709
710
711                        // Slider Thumbnail Enable
712                        if (sliderLayout === 'slider-layout11' || sliderLayout === 'slider-layout12') {
713                            rtSwiperData = {
714                                slidesPerView: 1,
715                                centeredSlides: true,
716                                loop: options.loop,
717                                lazy: options.lazyLoad,
718                                loopedSlides: 10,
719                                speed: options.speed,
720                                grabCursor: options.grabCursor,
721                                allowTouchMove: options.grabCursor,
722                                slidesPerGroup: 1
723                            }
724                            var slider_thumb = container.find('.swiper-thumb-wrapper').get(0);
725
726                            var rtSwiperThumbData = {
727                                loopedSlides: 10,
728                                slidesPerView: 3,
729                                spaceBetween: 20,
730                                centeredSlides: true,
731                                loop: options.loop,
732                                slideToClickedSlide: true,
733                                speed: options.speed,
734                                breakpoints: {
735                                    0: {
736                                        slidesPerView: 3,
737                                        slidesPerGroup: 1
738                                    },
739                                    768: {
740                                        slidesPerView: 2,
741                                        centeredSlides: false,
742                                        slidesPerGroup: 1
743                                    },
744                                    992: {
745                                        slidesPerView: 3,
746                                        centeredSlides: true,
747                                        slidesPerGroup: 1
748                                    }
749                                }
750                            }
751
752                            if (sliderLayout === 'slider-layout11') {
753                                Object.assign(rtSwiperThumbData, {
754                                    slidesPerView: 3,
755                                    direction: "vertical",
756                                    pagination: {
757                                        el: ".swiper-thumb-pagination",
758                                        type: "progressbar"
759                                    },
760                                    breakpoints: {
761                                        0: {
762                                            direction: "horizontal",
763                                            centeredSlides: true,
764                                            slidesPerGroup: 1
765                                        },
766                                        768: {
767                                            direction: "vertical",
768                                            centeredSlides: true,
769                                            slidesPerGroup: 1
770                                        }
771                                    }
772                                });
773                            }
774
775                            var swiperThumb = new Swiper(slider_thumb, rtSwiperThumbData);
776                        }
777                        //End Slider Thumbnail Enable
778
779                        //Main Slider Start
780                        if (options.autoPlay) {
781                            Object.assign(rtSwiperData, {
782                                autoplay: {
783                                    delay: options.autoPlayTimeOut,
784                                    disableOnInteraction: false,
785                                    pauseOnMouseEnter: true
786                                }
787                            });
788                        }
789
790                        var swiper = new Swiper(rtSwiperSlider, rtSwiperData);
791
792                        if (sliderLayout === 'slider-layout11' || sliderLayout === 'slider-layout12') {
793                            swiper.controller.control = swiperThumb;
794                            swiperThumb.controller.control = swiper;
795                        }
796
797                        if (options.autoPlay && options.stopOnHover) {
798                            container.hover(function () {
799                                swiper.autoplay.stop();
800                            }, function () {
801                                swiper.autoplay.start();
802                            });
803                        }
804                        remove_placeholder_loading();
805                    });
806
807                } else if (isIsotop.length) {
808                    var IsoURL = IsoButton.attr('data-url'),
809                        IsoCount = IsoButton.attr('data-count');
810                    if (!buttonFilter) {
811                        if (IsoButton.length) {
812                            buttonFilter = IsoButton.find('button.selected').data('filter');
813                        } else if (IsoDropdownFilter.length) {
814                            buttonFilter = IsoDropdownFilter.val();
815                        }
816                    }
817                    container.trigger('tpg_item_before_load');
818                    tpgFixLazyLoad();
819                    IsotopeWrap = isIsotop.imagesLoaded(function () {
820                        preFunction();
821                        IsotopeWrap.isotope({
822                            itemSelector: '.isotope-item',
823                            masonry: {columnWidth: '.isotope-item'},
824                            layoutMode: gridStyle === 'even' ? 'fitRows' : 'masonry',
825                            filter: function () {
826                                var $this = $(this);
827                                var searchResult = qsRegex ? $this.text().match(qsRegex) : true;
828                                var buttonResult = buttonFilter ? $this.is(buttonFilter) : true;
829                                return searchResult && buttonResult;
830                            }
831                        });
832                        setTimeout(function () {
833                            IsotopeWrap.isotope();
834                            container.trigger('tpg_item_after_load');
835                            remove_placeholder_loading();
836                        }, 100);
837                    });
838                    // use value of search field to filter
839                    var $quicksearch = container.find('.iso-search-input').keyup(debounce(function () {
840                        qsRegex = new RegExp($quicksearch.val(), 'gi');
841                        IsotopeWrap.isotope();
842                    }));
843
844                    IsoButton.on('click touchstart', 'button', function (e) {
845                        e.preventDefault();
846                        buttonFilter = $(this).attr('data-filter');
847                        if (IsoURL) {
848                            location.hash = "filter=" + encodeURIComponent(buttonFilter);
849                        } else {
850                            IsotopeWrap.isotope();
851                            $(this).parent().find('.selected').removeClass('selected');
852                            $(this).addClass('selected');
853                        }
854                    });
855                    if (IsoURL) {
856                        windowHashChange(IsotopeWrap, IsoButton);
857                        $(window).on("hashchange", function () {
858                            windowHashChange(IsotopeWrap, IsoButton);
859                        });
860                    }
861                    if (IsoCount) {
862                        isoFilterCounter(container, IsotopeWrap);
863                    }
864                    IsoDropdownFilter.on('change', function (e) {
865                        e.preventDefault();
866                        buttonFilter = $(this).val();
867                        IsotopeWrap.isotope();
868                    });
869                } else if (container.find('.rt-row.rt-content-loader.tpg-masonry').length) {
870
871                    var masonryTarget = $('.rt-row.rt-content-loader.tpg-masonry', container);
872
873                    container.trigger('tpg_item_before_load');
874                    tpgFixLazyLoad();
875                    mIsotopWrap = masonryTarget.imagesLoaded(function () {
876                        preFunction();
877                        mIsotopWrap.isotope({
878                            itemSelector: '.masonry-grid-item',
879                            masonry: {columnWidth: '.masonry-grid-item'}
880                        });
881                        container.trigger('tpg_item_after_load');
882                        remove_placeholder_loading();
883                    });
884                }
885            }
886
887            function rtSearcFunctionality(currentItem) {
888                var filterWrapData = currentItem.parents('.rt-filter-item-wrap'),
889                    filterData = filterWrapData.data('filter');
890                search_wrap.find('input').prop("disabled", true);
891                var $inputVal = search_wrap.find('input').val();
892                var queryArgs = {
893                    'key': 'search',
894                    'value': $inputVal
895                };
896
897                ajax_action(false, false, null, queryArgs);
898            }
899
900            $('#' + id).on('click', '.rt-search-filter-wrap .rt-action', function (e) {
901                var selfItem = $(this);
902                rtSearcFunctionality(selfItem);
903                setTimeout(function(){
904                    selfItem.prev().focus()
905                }, 500);
906            });
907            $('#' + id).on('keypress', '.rt-search-filter-wrap .rt-search-input', function (e) {
908                if (e.which == 13) {
909                    var selfItem = $(this);
910                    rtSearcFunctionality(selfItem)
911                    setTimeout(function(){
912                        selfItem.focus()
913                    }, 500);
914                }
915            });
916            $('#' + id).on('click', '.rt-filter-dropdown-wrap', function (event) {
917                var self = $(this);
918                self.toggleClass('active-dropdown');
919            });// Dropdown click
920
921            //taxonomy filter click
922
923            $('#' + id).on('click', '.term-dropdown-item', function (event) {
924                $loadmore.addClass('rt-lm-loading');
925                var $this_item = $(this),
926                    dropDownWrap = $this_item.parents('.rt-filter-dropdown-wrap'),
927                    filterWrapData = $this_item.parents('.rt-filter-item-wrap'),
928                    filterData = filterWrapData.data('filter'),
929                    dropDown = $this_item.parent('.rt-filter-dropdown'),
930                    default_target = dropDownWrap.find('>.rt-filter-dropdown-default'),
931                    subTerms = $(".sub-dropdown-wrap", $this_item).clone();
932
933                dropDownWrap.removeClass('active-dropdown');
934                dropDownWrap.toggleClass('active-dropdown');
935                default_target.attr('data-term', $this_item.attr('data-term'));
936                default_target.find('>.rt-text').html($this_item.find('>.rt-text').html());
937                dropDown.find('.rt-filter-dropdown-item').removeClass('selected');
938                $this_item.addClass('selected');
939                if (dropDownWrap.data('taxonomy')) {
940                    $this_item.parents('.rt-filter-wrap').find('>.sub-dropdown-wrap').remove();
941                }
942
943                if (subTerms.length && 'yes' !== el_settings.multiple_taxonomy) {
944                    subTerms.insertAfter(dropDownWrap);
945                }
946                var queryArgs = {
947                    'key': filterData,
948                    'value': $(this).data('term')
949                };
950                if (filterData == 'taxonomy') {
951                    queryArgs.tax = filterWrapData.data('taxonomy');
952                }
953                ajax_action(false, false, null, queryArgs, $this_item);
954            });//term
955
956            //Filter
957            $taxonomy_filter.on('click', '.rt-filter-button-item', function () {
958                var self = $(this),
959                    filterWrapData = self.parents('.rt-filter-button-wrap'),
960                    filterData = filterWrapData.data('filter');
961                self.parents('.rt-filter-button-wrap').find('.rt-filter-button-item').removeClass('selected');
962                self.addClass('selected');
963                $("> .rt-filter-sub-tax", filter_container).remove();
964                subTax(self);
965                var queryArgs = {
966                    'key': filterData,
967                    'value': $(this).data('term'),
968                    'offset': 0
969                };
970                if (filterData == 'taxonomy') {
971                    queryArgs.tax = filterWrapData.data('taxonomy');
972                }
973                ajax_action(false, false, null, queryArgs, self);
974            });
975
976            //Filter Order By
977            $('#' + id).on('click', '.order-by-dropdown-item', function (event) {
978                $loadmore.addClass('rt-lm-loading');
979                var $this_item = $(this),
980                    old_param = $default_order_by.attr('data-order-by'),
981                    filterWrapData = $this_item.parents('.rt-filter-item-wrap'),
982                    filterData = filterWrapData.data('filter'),
983                    old_text = $default_order_by.find('.rt-text-order-by').html(),
984                    orderByQueyr = $this_item.data('order-by');
985
986                filterWrapData.find('.order-by-dropdown .selected').removeClass('selected')
987                $this_item.addClass('selected');
988
989                $this_item.parents('.rt-order-by-action').removeClass('active-dropdown');
990                $this_item.parents('.rt-order-by-action').toggleClass('active-dropdown');
991                $default_order_by.attr('data-order-by', $this_item.attr('data-order-by'));
992                $default_order_by.find('.rt-text-order-by').html($this_item.html());
993                // $this_item.attr('data-order-by', old_param);
994                // $this_item.html(old_text);
995
996                var queryArgs = {
997                    'key': filterData,
998                    'value': $this_item.data('order-by')
999                };
1000
1001                ajax_action(false, false, null, queryArgs);
1002            });
1003            //Order By
1004
1005            //Filter Sort Order
1006            $('#' + id).on('click', '.rt-sort-order-action', function (event) {
1007                $loadmore.addClass('rt-lm-loading');
1008                var $this_item = $(this),
1009                    filterData = $this_item.data('filter'),
1010                    $sort_order_elm = $('.rt-sort-order-action-arrow', $this_item),
1011                    sort_order_param = $sort_order_elm.attr('data-sort-order');
1012                if (typeof (sort_order_param) != 'undefined' && sort_order_param.toLowerCase() == 'desc') {
1013                    $default_order.attr('data-sort-order', 'ASC');
1014                } else {
1015                    $default_order.attr('data-sort-order', 'DESC');
1016                }
1017                var queryArgs = {
1018                    'key': filterData,
1019                    'value': sort_order_param == "DESC" ? "ASC" : "DESC"
1020                };
1021
1022                ajax_action(false, false, null, queryArgs);
1023            });//Sort Order
1024
1025            //Filter Author
1026            author_filter.on('click', '.rt-filter-button-item', function () {
1027                var self = $(this);
1028                self.parents('.rt-filter-button-wrap').find('.rt-filter-button-item').removeClass('selected');
1029                self.addClass('selected');
1030                var queryArgs = {
1031                    'key': 'author',
1032                    'value': $(this).data('term')
1033                };
1034                ajax_action(false, false, null, queryArgs);
1035            });
1036
1037            $page_prev_next.on('click', '.rt-cb-prev-btn', function (event) {
1038                if (tpg_paged <= 1) {
1039                    return;
1040                }
1041                tpg_paged = tpg_paged - 1;
1042                ajax_action(true, false);
1043            });
1044
1045            $page_prev_next.on('click', '.rt-cb-next-btn', function (event) {
1046                if (tpg_paged >= tpg_total_pages) {
1047                    return;
1048                }
1049                tpg_paged = tpg_paged + 1;
1050                ajax_action(true, false);
1051            });
1052
1053            load_gallery_image_popup();
1054
1055            container.trigger("tpg_loaded");
1056        });
1057    };
1058
1059    // initTpg();
1060    setTimeout(initTpg, 500);
1061
1062    $(window).on('load resize', function () {
1063        setTimeout(function () {
1064            //tpgPostElementDynamicHeight();
1065            tpgBottomScriptLoader();
1066        }, 400);
1067
1068        var win = $(this);
1069        if (win.width() >= 992) {
1070            overlayIconResizeTpg();
1071            mdPopUpResize();
1072            rtAlertPosition();
1073        }
1074    });
1075
1076    function tpgPostElementDynamicHeight() {
1077        // $('.tomove').appendTo('#menu-item');
1078        $('.post-meta-tags').each(function () {
1079            var pMeta = $(this).get(0);
1080            $(this).attr('style', '--tpg-meta-height:' + pMeta.scrollHeight + 'px');
1081        });
1082
1083        $('.tpg-el-excerpt').each(function () {
1084            var pExcerpt = $(this).get(0);
1085            $(this).attr('style', '--tpg-excerpt-height:' + pExcerpt.scrollHeight + 'px');
1086        });
1087
1088        $('.rt-tpg-social-share').each(function () {
1089            var pShare = $(this).get(0);
1090            $(this).attr('style', '--tpg-share-height:' + pShare.scrollHeight + 'px');
1091        });
1092        $('.post-footer').each(function () {
1093            var pFooter = $(this).get(0);
1094            $(this).attr('style', '--tpg-footer-height:' + pFooter.scrollHeight + 'px');
1095        });
1096    }
1097
1098    function tpgBottomScriptLoader() {
1099        $(".bottom-script-loader").fadeOut(500, function () {
1100            // fadeOut complete. Remove the loading div
1101            $(".bottom-script-loader").remove(); //makes page more lightweight
1102        });
1103    }
1104
1105    $(document).on({
1106        mouseenter: function () {
1107            if ($('.rt-tpg-container').length < 1) {
1108                return;
1109            }
1110            var $this = $(this);
1111            var $parent = $(this).parents('.tpg-el-main-wrapper');
1112
1113            var id = $parent.attr('id').replace("rt-tpg-container-", "");
1114            var $title = $this.attr('title');
1115            $tooltip = '<div class="rt-tooltip" id="rt-tooltip-' 
1115+ id + '">' +
1116                '<div class="rt-tooltip-content">' + $title + '</div>' +
1117                '<div class="rt-tooltip-bottom"></div>' +
1118                '</div>';
1119            $('body').append($tooltip);
1120            var $tooltip = $('body > .rt-tooltip');
1121            var tHeight = $tooltip.outerHeight();
1122            var tBottomHeight = $tooltip.find('.rt-tooltip-bottom').outerHeight();
1123            var tWidth = $tooltip.outerWidth();
1124            var tHolderWidth = $this.outerWidth();
1125            var top = $this.offset().top - (tHeight + tBottomHeight) + 14;
1126            var left = $this.offset().left;
1127            $tooltip.css('top', top + 'px');
1128            $tooltip.css('left', left + 'px');
1129            $tooltip.css('opacity', 1);
1130            $tooltip.show();
1131            if (tWidth <= tHolderWidth) {
1132                var itemLeft = (tHolderWidth - tWidth) / 2;
1133                left = left + itemLeft;
1134                $tooltip.css('left', left + 'px');
1135            } else {
1136                var itemLeft = (tWidth - tHolderWidth) / 2;
1137                left = left - itemLeft;
1138                if (left < 0) {
1139                    left = 0;
1140                }
1141                $tooltip.css('left', left + 'px');
1142            }
1143        },
1144        mouseleave: function () {
1145            $('body > .rt-tooltip').remove();
1146        }
1147    }, '.rt-tpg-social-share a');
1148
1149    $('.rt-wc-add-to-cart').on('click', function (e) {
1150        e.preventDefault();
1151        var $pType = $(this).data('type'),
1152            $pID = $(this).data('id'),
1153            self = $(this);
1154        if (rttpg.woocommerce_enable_ajax_add_to_cart == "no") {
1155            window.location = self.attr('href');
1156        } else {
1157            if ($pType == 'simple') {
1158                if ($pID) {
1159                    var data = "id=" + $pID,
1160                        cart_text = "<div class='rt-woo-view-cart'><a href='" + wc_add_to_cart_params.cart_url + "'>" + wc_add_to_cart_params.i18n_view_cart + "</a></div>";
1161                    AjaxCall($(this), 'addToCartWc', data, function (data) {
1162                        if (!data.error) {
1163                            $('body').append("<div class='rt-response-alert'><div class='rt-alert'>" + data.msg + cart_text + "<span class='cross'>X</span></div></div>");
1164                            rtAlertPosition();
1165                            if (rttpg.woocommerce_cart_redirect_after_add == "yes") {
1166                                window.location.href = wc_add_to_cart_params.cart_url
1167                            }
1168                        }
1169                    });
1170                }
1171            } else {
1172                window.location = self.attr('href');
1173            }
1174        }
1175        return false;
1176    });
1177
1178    $(document).on('click', '.wc-product-holder .reset_variations', function (e) {
1179        e.preventDefault();
1180        $(".variations").find('select').val("").trigger("change").find('option:first-child').attr("selected", "selected");
1181    });
1182
1183    $(document).on('click', '.rt-response-alert span.cross', function () {
1184        $(this).parents('.rt-response-alert').fadeOut(1500, function () {
1185            $(this).remove();
1186        });
1187    });
1188
1189    function rtAlertPosition() {
1190        var target = $('.rt-alert');
1191        target.css({
1192            left: ($(window).width() - target.outerWidth()) / 2,
1193            top: ($(window).height() - target.outerHeight()) / 2
1194        });
1195    }
1196
1197    function windowHashChange(isotope, IsoButton) {
1198        var $hashFilter = decodeHash() || '';
1199        if (!$hashFilter) {
1200            $hashFilter = IsoButton.find('button.selected').attr('data-filter') || '';
1201            $hashFilter = $hashFilter ? $hashFilter : '*';
1202        }
1203        $hashFilter = $hashFilter || '*';
1204        isotope.isotope({
1205            filter: $hashFilter
1206        });
1207        IsoButton.find("button").removeClass("selected");
1208        IsoButton.find('button[data-filter="' + $hashFilter + '"]').addClass("selected");
1209    }
1210
1211    function decodeHash() {
1212        var $matches = location.hash.match(/filter=([^&]+)/i);
1213        var $hashFilter = $matches && $matches[1];
1214        return $hashFilter && decodeURIComponent($hashFilter);
1215    }
1216
1217    function isoFilterCounter(container, isotope) {
1218        var total = 0;
1219        container.find('.rt-tpg-isotope-buttons button').each(function () {
1220            var self = $(this),
1221                filter = self.attr("data-filter"),
1222                itemTotal = isotope.find(filter).length;
1223            if (filter != "*") {
1224                self.find('span').remove();
1225                self.append("<span> (" + itemTotal + ") </span>");
1226                total = total + itemTotal;
1227            }
1228        });
1229        container.find('.rt-tpg-isotope-buttons button[data-filter="*"]').find('span').remove();
1230        container.find('.rt-tpg-isotope-buttons button[data-filter="*"]').append("<span> (" + total + ") </span>");
1231    }
1232
1233    // debounce so filtering doesn't happen every millisecond
1234    function debounce(fn, threshold) {
1235        var timeout;
1236        return function debounced() {
1237            if (timeout) {
1238                clearTimeout(timeout);
1239            }
1240
1241            function delayed() {
1242                fn();
1243                timeout = null;
1244            }
1245
1246            setTimeout(delayed, threshold || 100);
1247        };
1248    }
1249
1250    function preFunction() {
1251        overlayIconResizeTpg();
1252    }
1253
1254    $(".tpg-el-main-wrapper a.disabled").each(function () {
1255        $(this).prop("disabled", true);
1256        $(this).removeAttr("href");
1257    });
1258
1259    function animation() {
1260        var $pHolder = $('#rt-popup-wrap');
1261        if (parseInt($pHolder.css('marginLeft')) === 0) {
1262            $('body, html').removeClass('rt-model-open');
1263        }
1264        $pHolder.animate({
1265            marginLeft: parseInt($pHolder.css('marginLeft'), 10) == 0 ?
1266                $pHolder.outerWidth() : 0
1267        }).promise().done(function () {
1268            if (parseInt($pHolder.css('marginLeft')) > 0) {
1269                $pHolder.remove();
1270            } else {
1271                $('body, html').addClass('rt-model-open');
1272            }
1273        });
1274    }
1275
1276    $(document).on('click', '.tpg-el-main-wrapper .tpg-single-popup', function (e) {
1277        e.preventDefault();
1278
1279        var id = $(this).attr("data-id"),
1280            wrap_id = $(this).parents('.tpg-el-main-wrapper').attr('id').replace("rt-tpg-container-", "");
1281        var data = "action=tgpSinglePopUp&id=" + id;
1282
1283        $.ajax({
1284            type: "post",
1285            url: rttpg.ajaxurl,
1286            data: data,
1287            beforeSend: function () {
1288                $('body, html').addClass('rt-model-open');
1289                $("#rt-modal").addClass('md-show rt-modal-' + wrap_id);
1290                $("#rt-modal .rt-md-content-holder").html('<div class="rt-md-loading">Loading...</div>');
1291            },
1292            success: function (data) {
1293                $("#rt-modal .rt-md-content-holder").html(data.data);
1294                tpgMdScriptLoad()
1295            },
1296            error: function () {
1297                $('body, html').removeClass('rt-model-open');
1298                console.log('Error');
1299            }
1300        });
1301    });
1302    $('.md-close, .md-overlay').on('click', function (e) {
1303        e.preventDefault();
1304        $('body, html').removeClass('rt-model-open');
1305        $("#rt-modal").removeClass('md-show');
1306        $("#rt-modal .rt-md-content-holder").html('');
1307    });
1308    $(window).bind('keydown', function (event) {
1309        if (event.keyCode === 27) { // Esc
1310            $('body, html').removeClass('rt-model-open');
1311            $("#rt-modal").removeClass('md-show');
1312            $("#rt-modal .rt-md-content-holder").html('');
1313        }
1314    });
1315
1316    $(document).on('click', '.tpg-el-main-wrapper .tpg-multi-popup', function (e) {
1317        e.preventDefault();
1318
1319        var current;
1320        var id = $(this).data("id");
1321        current = id;
1322        var itemArray;
1323        var item_count_holder = $(this).parents('.tpg-el-main-wrapper').find('.rt-content-loader .rt-grid-item'),
1324            wrap_id = $(this).parents('.tpg-el-main-wrapper').attr('id').replace("rt-tpg-container-", "");
1325        if (item_count_holder.length) {
1326            itemArray = item_count_holder.map(function () {
1327                return $(this).data("id");
1328            }).get();
1329        }
1330        var data = "action=tgpMultiPagePopUp&id=" + id;
1331        $.ajax({
1332            type: "post",
1333            url: rttpg.ajaxurl,
1334            data: data,
1335            beforeSend: function () {
1336                initPopupTeamPro(wrap_id);
1337                setLevelTgpPro(current, itemArray);
1338            },
1339            success: function (data) {
1340                $("#rt-popup-wrap .rt-popup-content").html(data.data);
1341                tpgMdScriptLoad();
1342            },
1343            error: function () {
1344                $('body, html').removeClass('rt-model-open');
1345                $("#rt-popup-wrap .rt-popup-content").html("<p>Loading error!!!</p>");
1346            }
1347        });
1348
1349        $('.rt-popup-next').on('click', function () {
1350            rightClick();
1351        });
1352        $('.rt-popup-prev').on('click', function () {
1353            leftClick();
1354        });
1355        $('.rt-popup-close').on('click', function () {
1356            animation();
1357        });
1358
1359        $(window).bind('keydown', function (event) {
1360            if (event.keyCode === 27) { // Esc
1361                animation();
1362            } else if (event.keyCode === 37) { // left arrow
1363                leftClick();
1364            } else if (event.keyCode === 39) { // right arrow
1365                rightClick();
1366            }
1367        });
1368
1369        function rightClick() {
1370            var nextId = nextItem(current, itemArray);
1371            current = nextId;
1372            var data = "action=tgpMultiPagePopUp&id=" + current;
1373            $.ajax({
1374                type: "post",
1375                url: rttpg.ajaxurl,
1376                data: data,
1377                beforeSend: function () {
1378                    setLevelTgpPro(current, itemArray);
1379                    $('#rt-popup-wrap .rt-popup-content').html('<div class="rt-popup-loading"></div>');
1380                },
1381                success: function (data) {
1382                    $('#rt-popup-wrap .rt-popup-content').html(data.data);
1383                }
1384            });
1385        }
1386
1387        function leftClick() {
1388            var prevId = prevItem(current, itemArray);
1389            current = prevId;
1390            var data = "action=tgpMultiPagePopUp&id=" + current;
1391            $.ajax({
1392                type: "post",
1393                url: rttpg.ajaxurl,
1394                data: data,
1395                beforeSend: function () {
1396                    setLevelTgpPro(current, itemArray);
1397                    $('#rt-popup-wrap .rt-popup-content').html('<div class="rt-popup-loading"></div>');
1398                },
1399                success: function (data) {
1400                    $('#rt-popup-wrap .rt-popup-content').html(data.data);
1401                }
1402            });
1403        }
1404
1405        return false;
1406    });
1407
1408    function initPopupTeamPro(wrap_id) {
1409        var html = '<div id="rt-popup-wrap" class="rt-popup-wrap rt-popup-singlePage-sticky rt-popup-singlePage rt-popup-wrap-' + wrap_id + '">' +
1410            '<div class="rt-popup-content">' +
1411            '<div class="rt-popup-loading"></div>' +
1412            '</div>' +
1413            '<div class="rt-popup-navigation-wrap">' +
1414            '<div class="rt-popup-navigation">' +
1415            '<div class="rt-popup-prev" title="Previous (Left arrow key)" data-action="prev"></div>' +
1416            '<div class="rt-popup-close" title="Close (Esc arrow key)" data-action="close"></div>' +
1417            '<div class="rt-popup-next" title="Next (Right arrow key)" data-action="next"></div>' +
1418            '<div class="rt-popup-singlePage-counter"><span class="ccurrent"></span> of <span class="ctotal"></span></div>' +
1419            '</div>' +
1420            '</div>' +
1421            '</div>';
1422        $("body").append(html);
1423        var $pHolder = $('#rt-popup-wrap');
1424        $pHolder.css('display', 'block');
1425        var navHeight = $pHolder.find('.rt-popup-navigation-wrap').height();
1426        $pHolder.find('.rt-popup-content').css('padding-top', navHeight + "px");
1427        animation();
1428    }
1429
1430    function nextItem(current, list) {
1431        var index = list.indexOf(current);
1432        index++;
1433        if (index >= list.length)
1434            index = 0;
1435        return list[index];
1436    }
1437
1438    function prevItem(current, list) {
1439        var index = list.indexOf(current);
1440        index--;
1441        if (index < 0)
1442            index = list.length - 1;
1443        return list[index];
1444    }
1445
1446    function setLevelTgpPro(current, list) {
1447        var index = list.indexOf(current) + 1;
1448        var count = list.length;
1449        $(".ccurrent").text(index);
1450        $(".ctotal").text(count);
1451    }
1452
1453    function navResize() {
1454        var $pHolder = jQuery('#rt-popup-wrap');
1455        $pHolder.css('display', 'block');
1456    }
1457
1458    $(document).on('click', ".wc-product-holder .wc-tabs li a", function (e) {
1459        e.preventDefault();
1460        var container = $(this).parents('.wc-tabs-wrapper');
1461        var nav = container.children('.wc-tabs');
1462        var content = container.children(".panel.entry-content");
1463        var $this, $id;
1464        $this = $(this);
1465        $id = $this.attr('href');
1466        content.hide();
1467        nav.find('li').removeClass('active');
1468        $this.parent().addClass('active');
1469        container.find($id).show();
1470    });
1471    $(document).on('click', "a.woocommerce-main-image.zoom", function (e) {
1472        e.preventDefault();
1473        return false;
1474    });
1475
1476    $(document).on('click', '.wc-product-holder .single_add_to_cart_button', function (e) {
1477        e.preventDefault();
1478        var $this = $(this),
1479            msgTarget = $this.parents(".wc-add-to-cart"),
1480            $pID = msgTarget.find('form button[name="add-to-cart"]').val(),
1481            qtn = msgTarget.find('form input[name="quantity"]').val();
1482        //var data = rttpg.nonceID + "=" + rttpg.nonce + "&action=addToCartWc&id=" + $pID;
1483        if (rttpg.woocommerce_enable_ajax_add_to_cart === "no") {
1484            $this.parents('form').submit();
1485        } else {
1486            var data = "id=" + $pID + "&qtn=" + qtn,
1487                cart_text = "<div class='rt-woo-view-cart'><a href='" + wc_add_to_cart_params.cart_url + "'>" + wc_add_to_cart_params.i18n_view_cart + "</a></div>";
1488            AjaxCall($(this), 'addToCartWc', data, function (data) {
1489                if (!data.error) {
1490                    $('body').append("<div class='rt-response-alert'><div class='rt-alert'>" + data.msg + cart_text + "<span class='cross'>X</span></div></div>");
1491                    rtAlertPosition();
1492                    if (rttpg.woocommerce_cart_redirect_after_add === "yes") {
1493                        window.location.href = wc_add_to_cart_params.cart_url
1494                    }
1495                } else {
1496                    $('body').append("<div class='rt-response-alert'><div class='rt-alert'>" + data.msg + "</div></div>");
1497                    rtAlertPosition();
1498                    $("body").children('.rt-response-alert').fadeOut(2000, function () {
1499                        $(this).remove();
1500                    });
1501                }
1502            });
1503        }
1504        return false;
1505    });
1506
1507    function AjaxCall(element, action, arg, handle) {
1508        var data = '';
1509        if (action) data = "action=" + action;
1510        if (arg) data = arg + "&action=" + action;
1511        if (arg && !action) data = arg;
1512
1513        var n = data.search(rttpg.nonceID);
1514        if (n < 0) {
1515            data = data + "&" + rttpg.nonceID + "=" + rttpg.nonce;
1516        }
1517
1518        $.ajax({
1519            type: "POST",
1520            url: rttpg.ajaxurl,
1521            data: data,
1522            beforeSend: function () {
1523                element.append("<span class='rt-spine-loading'></span>");
1524            },
1525            success: function (data) {
1526                element.find(".rt-spine-loading").remove();
1527                handle(data);
1528            }
1529        });
1530    }
1531
1532    function overlayIconResizeTpg() {
1533        $('.overlay').each(function () {
1534            var holder_height = jQuery(this).height();
1535            var target = $(this).children('.link-holder');
1536            var targetd = $(this).children('.view-details');
1537            var a_height = target.height();
1538            var ad_height = targetd.height();
1539            var h = (holder_height - a_height) / 2;
1540            var hd = (holder_height - ad_height) / 2;
1541            target.css('top', h + 'px');
1542            targetd.css('margin-top', hd + 'px');
1543        });
1544    }
1545
1546    function mdPopUpResize() {
1547        var target = jQuery("#rt-modal .rt-md-content-holder"),
1548            targetHeight = target.outerHeight(),
1549            title = target.find(".md-header").outerHeight(),
1550            contentHeight = targetHeight - title - 25;
1551        target.find(".rt-md-content").height(contentHeight + "px");
1552    }
1553
1554    window.tpgMdScriptLoad = function () {
1555        mdPopUpResize();
1556        jQuery('.rt-md-content, .rt-popup-content').niceScroll({
1557            background: 'rgba(0, 0, 0, 0.3)',
1558            cursorcolor: rttpg.primaryColor || "#06f",
1559            cursorborder: 'none',
1560            cursorwidth: '3px'
1561        })
1562    };
1563
1564    window.tpgWcFunctionRun = function () {
1565        jQuery(".wc-product-holder .tabs.wc-tabs li:first-child a").trigger('click');
1566        jQuery(document).ready(function () {
1567            jQuery('a.woocommerce-main-image.zoom').zoom();
1568        });
1569
1570        new Swiper("#rt-product-gallery.hasImg", {
1571            slidesPerView: 1,
1572            loop: true,
1573            pagination: {
1574                el: '.swiper-pagination',
1575                clickable: true
1576            }
1577        });
1578    };
1579
1580    function tpg_page_builder_show() {
1581        if ($('.builder-content').length > 0) {
1582            $('.builder-content').removeClass('content-invisible');
1583        }
1584    }
1585
1586    function tpg_news_ticker() {
1587
1588        $('.news-ticker-slider').each(function () {
1589            var swiperElement = $(this);
1590            var pauseBtn = swiperElement.find('.swiper-pause');
1591            var tickerContent = swiperElement.find('.ticker-content');
1592            var swiperConfig = swiperElement.data('swiper');
1593            var TickerSwiper = new Swiper(swiperElement[0], swiperConfig);
1594
1595            pauseBtn.on('click', function (e) {
1596                e.preventDefault();
1597                $(this).toggleClass('pause-enable');
1598                const isPaused = swiperElement.toggleClass('ticker-pause-enable').hasClass('ticker-pause-enable');
1599                TickerSwiper.autoplay[isPaused ? 'stop' : 'start']();
1600            });
1601
1602            if (swiperConfig.pauseOnMouseEnter) {
1603                tickerContent.on('mouseenter', function () {
1604                    TickerSwiper.autoplay.stop();
1605                })
1606
1607                tickerContent.on('mouseleave', function () {
1608                    if (!swiperElement.hasClass('ticker-pause-enable')) {
1609                        TickerSwiper.autoplay.start();
1610                    }
1611                })
1612            }
1613        })
1614    }
1615
1616    $(document).ready(function () {
1617        tpg_news_ticker();
1618        rtAnimations();
1619    })
1620
1621    $(window).load(function () {
1622        tpg_page_builder_show();
1623    });
1624
1625    // Elementor Frontend Load
1626    $(window).on('elementor/frontend/init', function () {
1627        if (elementorFrontend.isEditMode()) {
1628            elementorFrontend.hooks.addAction('frontend/element_ready/widget', function () {
1629
1630                initTpg();
1631                tpg_news_ticker();
1632                rtAnimations();
1633                setTimeout(function () {
1634                    tpgPostElementDynamicHeight();
1635                    tpgBottomScriptLoader();
1636                }, 400);
1637            });
1638        }
1639    });
1640
1641})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.