PageSourceSearch

https://advantage-partners.com/wp-content/plugins/testimonial-slid…/assets/js/wptestimonial.js?ver=2.4.2

js advantage-partners.com collected 2026-10-03 21:03:51 UTC 26,972 bytes, 855 lines download raw bytes

1(function ($) {
2	'use strict';
3	$('*')
4		.on('touchstart', function () {
5			$(this).trigger('hover');
6		})
7		.on('touchend', function () {
8			$(this).trigger('hover');
9		});
10
11	$(function () {
12		preFunction();
13		$(document)
14			.on('mouseover', '.tss-isotope-button-wrapper.tooltip-active .rt-iso-button', function () {
15				var self = $(this),
16					count = self.attr('data-filter-counter'),
17					id = self.parents('.tss-wrapper').attr('id');
18				$tooltip =
19					'<div class="tss-tooltip" id="tss-tooltip-' +
20					id +
21					'">' +
22					'<div class="tss-tooltip-content">' +
23					count +
24					'</div>' +
25					'<div class="tss-tooltip-bottom"></div>' +
26					'</div>';
27				$('body').append($tooltip);
28				var $tooltip = $('body > .tss-tooltip');
29				var tHeight = $tooltip.outerHeight();
30				var tBottomHeight = $tooltip.find('.tss-tooltip-bottom').outerHeight();
31				var tWidth = $tooltip.outerWidth();
32				var tHolderWidth = self.outerWidth();
33				var top = self.offset().top - (tHeight + tBottomHeight);
34				var left = self.offset().left;
35				$tooltip
36					.css({
37						top: top + 'px',
38						left: left + 'px',
39						opacity: 1
40					})
41					.show();
42				if (tWidth <= tHolderWidth) {
43					var itemLeft = (tHolderWidth - tWidth) / 2;
44					left = left + itemLeft;
45					$tooltip.css('left', left + 'px');
46				} else {
47					var itemLeft = (tWidth - tHolderWidth) / 2;
48					left = left - itemLeft;
49					if (left < 0) {
50						left = 0;
51					}
52					$tooltip.css('left', left + 'px');
53				}
54			})
55			.on('mouseout', '.tss-isotope-button-wrapper.tooltip-active .rt-iso-button', function () {
56				$('body > .tss-tooltip').fadeOut(300, function () { $(this).remove(); });
57			});
58	});
59
60	$(window).on('load resize', function () {
61		preFunction();
62	});
63
64	function preFunction() {
65		overlayIconResize();
66	}
67
68	RTInitCaroIso();
69
70	$(window).on('et_fb_ajax_render', function(){
71		rtInitCarousel();
72	});
73
74	function RTInitCaroIso() {
75		var elementInstances = [];
76		var elementThumbInstances = [];
77
78		$('.tss-wrapper').each(function (index) {
79			var container = $(this);
80			var str = $(this).attr('data-layout');
81			if (str) {
82				var qsRegex,
83					buttonFilter,
84					Iso = container.find('.tss-isotope'),
85					caro = container.find('.tss-carousel'),
86					caroThumb = container.find('.tss-carousel-main'),
87					html_loading =
88						'<div class="rt-loading-overlay"></div><div class="rt-loading rt-ball-clip-rotate"><div></div></div>',
89					preLoader = container.find('.tss-pre-loader');
90				if (preLoader.find('.rt-loading-overlay').length == 0) {
91					preLoader.append(html_loading);
92				}
93
94				if (caroThumb.length) {
95					var carouselOptions = RTCarouselOptions(caroThumb);
96
97					carouselOptions.responsive = {
98						0: {
99							slidesPerView: carouselOptions.mItems ? carouselOptions.mItems : 3
100						},
101						575: {
102							slidesPerView: carouselOptions.tItems ? carouselOptions.tItems : 3
103						},
104						991: {
105							slidesPerView: carouselOptions.items ? carouselOptions.items : 5
106						}
107					};
108
109					RTElementThumbCarousel(container, carouselOptions, elementThumbInstances, index);
110
111					caroThumb.parents('.rt-row').removeClass('tss-pre-loader');
112					caroThumb.parents('.rt-row').find('.rt-loading-overlay, .rt-loading').fadeOut(100);
113
114					// Updating the sliders
115					setTimeout(function () {
116						elementThumbInstances.forEach(function (sliders) {
117							sliders.forEach(function (slider) {
118								slider.update();
119							});
120						});
121					}, 50);
122				}
123
124				if (caro.length) {
125					var carouselEl = {
126						container: container.find('.tss-carousel'),
127						navPrev: '.swiper-button-prev',
128						navNext: '.swiper-button-next',
129						dotsEl: '.swiper-pagination'
130					};
131
132					var carouselOptions = RTCarouselOptions(caro);
133
134					carouselOptions.responsive = {
135						0: {
136							slidesPerView: carouselOptions.mItems ? carouselOptions.mItems : 1,
137							slidesPerGroup: carouselOptions.mItems ? carouselOptions.mItems : 1
138						},
139						767: {
140							slidesPerView: carouselOptions.tItems ? carouselOptions.tItems : 2,
141							slidesPerGroup: carouselOptions.tItems ? carouselOptions.tItems : 2
142						},
143						991: {
144							slidesPerView: carouselOptions.items ? carouselOptions.items : 3,
145							slidesPerGroup: carouselOptions.items ? carouselOptions.items : 3
146						}
147					};
148
149					RTElementCarousel(carouselEl, carouselOptions, elementInstances, index);
150
151					// Updating the sliders
152					setTimeout(function () {
153						elementInstances.forEach(function (slider) {
154							slider.update();
155						});
156					}, 50);
157
158					// Updating the sliders in tab
159					$('body').on('shown.bs.tab', 'a[data-bs-toggle="tab"], a[data-bs-toggle="pill"]', function (e) {
160						elementInstances.forEach(function (slider) {
161							slider.update();
162						});
163					});
164
165					$('.vc_tta-tabs-list li').on('click', function () {
166						setTimeout(function () {
167							elementInstances.forEach(function (slider) {
168								slider.update();
169							});
170						}, 100);
171					});
172
173					caro.parents('.rt-row').removeClass('tss-pre-loader');
174					caro.parents('.rt-row').find('.rt-loading-overlay, .rt-loading').fadeOut(100);
175				} else if (Iso.length) {
176					var IsoButton = container.find('.tss-isotope-button-wrapper');
177					if (!buttonFilter) {
178						buttonFilter = IsoButton.find('.rt-iso-button.selected').data('filter');
179					}
180					var isotope = Iso.imagesLoaded(function () {
181						Iso.parents('.rt-row').removeClass('tss-pre-loader');
182						Iso.parents('.rt-row').find('.rt-loading-overlay, .rt-loading').remove();
183						preFunction();
184						isotope.isotope({
185							itemSelector: '.isotope-item',
186							masonry: {
187								columnWidth: '.isotope-item'
188							},
189							filter: function () {
190								var $this = $(this);
191								var searchResult = qsRegex ? $this.text().match(qsRegex) : true;
192								var buttonResult = buttonFilter ? $this.is(buttonFilter) : true;
193								return searchResult && buttonResult;
194							}
195						});
196						isoFilterCounter(container, isotope);
197					});
198					// use value of search field to filter
199					var $quicksearch = container.find('.iso-search-input').keyup(
200						debounce(function () {
201							qsRegex = new RegExp($quicksearch.val(), 'gi');
202							isotope.isotope();
203						})
204					);
205
206					IsoButton.on('click', '.rt-iso-button', function (e) {
207						e.preventDefault();
208						buttonFilter = $(this).attr('data-filter');
209						isotope.isotope();
210						$(this).parent().find('.selected').removeClass('selected');
211						$(this).addClass('selected');
212					});
213
214					if (container.find('.tss-utility .tss-load-more').length) {
215						container.find('.tss-load-more').on('click', '.rt-button', function (e) {
216							e.preventDefault(e);
217							loadMoreButton($(this), isotope, container, 'isotope', IsoButton);
218						});
219					}
220
221					if (container.find('.tss-utility .tss-scroll-load-more').length) {
222						$(window).on('scroll', function () {
223							var $this = container.find('.tss-utility .tss-scroll-load-more');
224							scrollLoadMore($this, isotope, container, 'isotope', IsoButton);
225						});
226					}
227				} else if (container.find('.rt-row.tss-masonry').length) {
228					var masonryTarget = container.find('.rt-row.tss-masonry');
229					preFunction();
230					var isotopeM = masonryTarget.imagesLoaded(function () {
231						isotopeM.isotope({
232							itemSelector: '.masonry-grid-item',
233							masonry: {
234								columnWidth: '.masonry-grid-item'
235							}
236						});
237					});
238					if (container.find('.tss-utility .tss-load-more').length) {
239						container.find('.tss-load-more').on('click', '.rt-button', function (e) {
240							e.preventDefault(e);
241							loadMoreButton($(this), isotopeM, container, 'mLayout');
242						});
243					}
244					if (container.find('.tss-utility .tss-scroll-load-more').length) {
245						$(window).on('scroll', function () {
246							var $this = container.find('.tss-utility .tss-scroll-load-more');
247							if ($this.attr('data-trigger') > 0) {
248								scrollLoadMore($this, isotopeM, container, 'mLayout');
249							}
250						});
251					}
252
253					if (container.find('.tss-utility .tss-pagination.tss-ajax').length) {
254						ajaxPagination(container, isotopeM);
255					}
256				} else {
257					if (container.find('.tss-utility  .tss-load-more').length) {
258						container.find('.tss-load-more').on('click', '.rt-button', function (e) {
259							e.preventDefault(e);
260							loadMoreButton($(this), isotopeM, container, 'eLayout');
261						});
262					}
263					if (container.find('.tss-utility .tss-scroll-load-more').length) {
264						$(window).on('scroll', function () {
265							var $this = container.find('.tss-utility .tss-scroll-load-more');
266							if ($this.attr('data-trigger') > 0) {
267								scrollLoadMore($this, isotopeM, container, 'eLayout');
268							}
269						});
270					}
271					if (container.find('.tss-utility .tss-pagination.tss-ajax').length) {
272						ajaxPagination(container);
273					}
274				}
275			}
276		});
277	}
278
279	function RTCarouselOptions(el) {
280		return {
281			items: parseInt(el.data('items-desktop')),
282			tItems: parseInt(el.data('items-tab')),
283			mItems: parseInt(el.data('items-mobile')),
284			loop: el.data('loop'),
285			nav: el.data('nav'),
286			dots: el.data('dots'),
287			autoplay: el.data('autoplay'),
288			autoplayDelay: parseInt(el.data('autoplay-timeout'), 10),
289			autoPlayHoverPause: el.data('autoplay-hover-pause'),
290			autoHeight: el.data('auto-height'),
291			lazyLoad: el.data('lazy-load'),
292			rtl: el.data('rtl'),
293			smartSpeed: parseInt(el.data('smart-speed'))
294		};
295	}
296
297	function RTElementCarousel(elements, carouselOptions, instance, index) {
298		var slider = elements.container.addClass('instance-' + index);
299		elements.container.parent().find(elements.navPrev).addClass('prev-' + index);
300		elements.container.parent().find(elements.navNext).addClass('next-' + index);
301
302		var options = {
303			slidesPerView: carouselOptions.items ? carouselOptions.items : 2,
304			slidesPerGroup: carouselOptions.items ? carouselOptions.items : 2,
305			spaceBetween: 0,
306			speed: carouselOptions.smartSpeed ? carouselOptions.smartSpeed : 1000,
307			loop: carouselOptions.loop ? carouselOptions.loop : false,
308			autoHeight: carouselOptions.autoHeight ? carouselOptions.autoHeight : false,
309
310			// Responsive breakpoints
311			breakpoints: carouselOptions.responsive
312		};
313
314		if (carouselOptions.autoplay) {
315			options.autoplay = {
316				delay: carouselOptions.autoplayDelay,
317				pauseOnMouseEnter: carouselOptions.autoPlayHoverPause,
318				disableOnInteraction: false
319			};
320		}
321
322		if (carouselOptions.lazyLoad) {
323			options.preloadImages = false;
324			options.lazy = true;
325		}
326
327		if (carouselOptions.nav) {
328			options.navigation = {
329				nextEl: elements.navNext,
330				prevEl: elements.navPrev
331			};
332		}
333
334		if (carouselOptions.dots) {
335			options.pagination = {
336				el: elements.dotsEl,
337				type: 'bullets',
338				clickable: true
339			};
340		}
341		instance[index] = new Swiper(slider[0], options);
342	}
343
344	function RTElementThumbCarousel(container, options, instance, index) {
345		// Params
346		var mainSlider = container.find('.tss-carousel-main').addClass('instance-' + index),
347			navSlider = container.find('.tss-carousel-thumb').addClass('instance-' + index),
348			navPrev = '.swiper-button-prev',
349			navNext = '.swiper-button-next',
350			dotsEl = '.swiper-pagination';
351
352		container.find(navPrev).addClass('prev-' + index);
353		container.find(navNext).addClass('next-' + index);
354
355		// Main Slider
356		var mainSliderOptions = {
357			loop: true,
358			speed: options.smartSpeed ? options.smartSpeed : 1000,
359			loopedSlides: 5,
360			autoHeight: options.autoHeight ? options.autoHeight : false
361		};
362
363		if (options.nav) {
364			mainSliderOptions.navigation = {
365				nextEl: navNext,
366				prevEl: navPrev
367			};
368		}
369
370		if (options.dots) {
371			mainSliderOptions.pagination = {
372				el: dotsEl,
373				type: 'bullets',
374				clickable: true
375			};
376		}
377		var main = new Swiper(mainSlider[0], mainSliderOptions);
378
379		// Navigation Slider
380		var navSliderOptions = {
381			loop: true,
382			speed: options.smartSpeed ? options.smartSpeed : 1000,
383			observer: true,
384			observerParents: true,
385			slidesPerView: options.items ? options.items : 5,
386			centeredSlides: true,
387			spaceBetween: 0,
388			touchRatio: 0.2,
389			slideToClickedSlide: true,
390			loopedSlides: 5,
391			watchSlidesProgress: true,
392			breakpoints: options.responsive
393		};
394
395		if (options.autoplay) {
396			navSliderOptions.autoplay = {
397				delay: options.autoplayDelay,
398				pauseOnMouseEnter: options.autoPlayHoverPause,
399				disableOnInteraction: false
400			};
401		}
402
403		if (options.lazyLoad) {
404			navSliderOptions.preloadImages = false;
405			navSliderOptions.lazy = true;
406		}
407
408		var thumb = new Swiper(navSlider[0], navSliderOptions);
409
410		// Syncing the sliders
411		main.controller.control = thumb;
412		thumb.controller.control = main;
413
414		instance[index] = [main, thumb];
415	}
416
417	function isoFilterCounter(container, isotope) {
418		var total = 0;
419		container.find('.tss-isotope-button-wrapper .rt-iso-button').each(function () {
420			var self = $(this),
421				filter = self.data('filter'),
422				itemTotal = isotope.find(filter).length;
423			if (filter != '*') {
424				self.attr('data-filter-counter', itemTotal);
425				total = total + itemTotal;
426			}
427		});
428		container
429			.find('.tss-isotope-button-wrapper .rt-iso-button[data-filter="*"]')
430			.attr('data-filter-counter', total);
431	}
432
433	function loadMoreButton($this, $isotope, container, layout, IsoButton) {
434		var $thisText = $this.clone().children().remove().end().text(),
435			noMorePostText = $this.data('no-more-post-text'),
436			loadingText = $this.data('loading-text'),
437			scID = $this.attr('data-sc-id'),
438			elData = $this.data('tss-elementor'),
439			paged = parseInt($this.attr('data-paged'), 10) + 1,
440			totalPages = parseInt($this.data('total-pages'), 10),
441			foundPosts = parseInt($this.data('found-posts'), 10),
442			postsPerPage = parseInt($this.data('posts-per-page'), 10),
443			data = 'scID=' + scID + '&paged=' + paged,
444			morePosts = foundPosts - postsPerPage * paged,
445			data;
446
447		data = 'scID=' + scID + '&paged=' + paged;
448
449		if (typeof elData !== 'undefined') {
450			data = 'scID=elementor&elData=' + JSON.stringify(elData) + '&paged=' + paged;
451		}
452
453		if (morePosts > 0) {
454			$thisText = $thisText + ' <span>(' + morePosts + ')</span>';
455		} else {
456			$thisText = noMorePostText;
457		}
458		data = data + '&action=tssLoadMore&' + tss.nonceId + '=' + tss.nonce;
459		if (container.data('archive')) {
460			data = data + '&archive=' + container.data('archive');
461			if (container.data('archive-value')) {
462				data = data + '&archive-value=' + container.data('archive-value');
463			}
464		}
465
466		$.ajax({
467			type: 'post',
468			url: tss.ajaxurl,
469			data: data,
470			beforeSend: function () {
471				$this.html('<span class="more-loading">' + loadingText + '</span>');
472			},
473			success: function (data) {
474				if (!data.error) {
475					$this.attr('data-paged', paged);
476					if (layout == 'isotope') {
477						renderIsotope(container, $isotope, data.data, IsoButton);
478					} else if (layout == 'mLayout') {
479						$isotope
480							.append(data.data)
481							.isotope('appended', data.data)
482							.isotope('updateSortData')
483							.isotope('reloadItems');
484						$isotope.imagesLoaded(function () {
485							$isotope.isotope();
486						});
487					} else {
488						container.children('.rt-row').append(data.data);
489						container.children('.rt-row').imagesLoaded(function () {
490							preFunction();
491						});
492					}
493					$this.html($thisText);
494					if (totalPages <= paged) {
495						$this.css("pointer-events", "none");
496						$this.unbind("click");
497					}
498				} else {
499					$this.text(data.msg);
500					$this.attr('disabled', 'disabled');
501					$this.parent().hide();
502				}
503			},
504			error: function (jqXHR, textStatus, errorThrown) {
505				container.find('.more-loading').remove();
506				alert(textStatus + ' (' + errorThrown + ')');
507			}
508		});
509		return false;
510	}
511
512	function renderIsotope(container, $isotope, data, IsoButton) {
513		var qsRegexG, buttonFilter;
514		if (!buttonFilter) {
515			buttonFilter = IsoButton.find('.rt-iso-button.selected').data('filter');
516		}
517
518		$isotope.append(data).isotope('appended', data).isotope('reloadItems').isotope('updateSortData');
519		$isotope.imagesLoaded(function () {
520			preFunction();
521			$isotope.isotope();
522		});
523
524		$(IsoButton).on('click', '.rt-iso-button', function (e) {
525			e.preventDefault();
526			buttonFilter = $(this).attr('data-filter');
527			$isotope.isotope();
528			$(this).parent().find('.selected').removeClass('selected');
529			$(this).addClass('selected');
530		});
531		var $quicksearch = container.find('.iso-search-input').keyup(
532			debounce(function () {
533				qsRegexG = new RegExp($quicksearch.val(), 'gi');
534				$isotope.isotope();
535			})
536		);
537		isoFilterCounter(container, $isotope);
538	}
539
540	function scrollLoadMore($this, $isotope, container, layout, IsoButton) {
541		var viewportHeight = $(window).height();
542		var scrollTop = $(window).scrollTop();
543		var targetHeight = $this.offset().top + $this.outerHeight() - 50;
544		var targetScroll = scrollTop + viewportHeight;
545
546		if (targetScroll >= targetHeight) {
547			var trigger = $this.attr('data-trigger');
548			if (trigger == 1) {
549				// $this.data('trigger', false);
550				$this.attr('data-trigger', 0);
551				var data,
552					scID = $this.attr('data-sc-id'),
553					elData = $this.data('tss-elementor'),
554					maxpage = $this.data('max-page'),
555					paged = parseInt($this.attr('data-paged'), 10);
556
557				data = 'scID=' + scID + '&paged=' + paged;
558
559				if (typeof elData !== 'undefined') {
560					data = 'scID=elementor&elData=' + JSON.stringify(elData) + '&paged=' + paged;
561				}
562
563				// data = 'scID=' + scID + '&paged=' + paged;
564				data = data + '&action=tssLoadMore&' + tss.nonceId + '=' + tss.nonce;
565
566				if (container.data('archive')) {
567					data = data + '&archive=' + container.data('archive');
568					if (container.data('archive-value')) {
569						data = data + '&archive-value=' + container.data('archive-value');
570					}
571				}
572				$.ajax({
573					type: 'post',
574					url: tss.ajaxurl,
575					data: data,
576					beforeSend: function () {
577						$this.html('<span class="more-loading">Loading ...</span>');
578					},
579					success: function (data) {
580						if (!data.error) {
581							$this.attr('data-paged', paged + 1);
582							if (layout == 'isotope') {
583								renderIsotope(container, $isotope, data.data, IsoButton);
584							} else if (layout == 'mLayout') {
585								$isotope
586									.append(data.data)
587									.isotope('appended', data.data)
588									.isotope('updateSortData')
589									.isotope('reloadItems');
590								$isotope.imagesLoaded(function () {
591									$isotope.isotope();
592								});
593							} else {
594								container.children('.rt-row').append(data.data);
595								container.children('.rt-row').imagesLoaded(function () {
596									preFunction();
597								});
598							}
599							$this.html('');
600							$this.attr('data-trigger', 1);
601
602							if ($this.attr('data-paged') > maxpage) {
603								$this.attr('data-trigger', 0);
604							}
605						} else {
606							$this.html('');
607							$this.attr('data-trigger', 0);
608						}
609					},
610					error: function (jqXHR, textStatus, errorThrown) {
611						container.find('.more-loading').remove();
612						alert(textStatus + ' (' + errorThrown + ')');
613					}
614				});
615			} // if trigger == 1
616		}
617	}
618
619	function ajaxPagination(container, isotopeM) {
620		container.find('.tss-pagination.tss-ajax ul li').on('click', 'a', function (e) {
621			e.preventDefault();
622			var data,
623				$this = $(this),
624				target = $this.parents('li'),
625				parent = target.parents('.tss-pagination.tss-ajax'),
626				activeLi = parent.find('li.active'),
627				activeNumber = parseInt(activeLi.text(), 10),
628				replaced = "<a data-paged='" + activeNumber + "' href='#'>" + activeNumber + '</a>',
629				scID = parent.data('sc-id'),
630				elData = parent.data('tss-elementor'),
631				paged = $this.data('paged');
632			activeLi.html(replaced);
633			parent.find('li').removeClass('active');
634			target.addClass('active');
635			target.html('<span>' + paged + '</span>');
636
637			data = 'scID=' + scID + '&paged=' + paged;
638
639			if (typeof elData !== 'undefined') {
640				data = 'scID=elementor&elData=' + JSON.stringify(elData) + '&paged=' + paged;
641			}
642
643			data = data + '&action=tssLoadMore&' + tss.nonceId + '=' + tss.nonce;
644
645			if (container.data('archive')) {
646				data = data + '&archive=' + container.data('archive');
647				if (container.data('archive-value')) {
648					data = data + '&archive-value=' + container.data('archive-value');
649				}
650			}
651			$.ajax({
652				type: 'post',
653				url: tss.ajaxurl,
654				data: data,
655				beforeSend: function () {
656					parent.append(
657						'<div class="tss-loading-holder"><span class="more-loading">Loading ...</span></div>'
658					);
659				},
660				success: function (data) {
661
662					if (!data.error) {
663						if (typeof isotopeM === 'undefined') {
664							container.children('.rt-row').animate({
665								opacity: 0
666							});
667							setTimeout(function () {
668								container.children('.rt-row').html(data.data);
669								container.children('.rt-row').imagesLoaded(function () {
670									preFunction();
671									container.children('.rt-row').animate(
672										{
673											opacity: 1
674										},
675										1000
676									);
677								});
678							}, 500);
679						} else {
680							container.children('.rt-row').find('.masonry-grid-item').remove();
681							isotopeM
682								.append(data.data)
683								.isotope('appended', data.data)
684								.isotope('updateSortData')
685								.isotope('reloadItems');
686							isotopeM.imagesLoaded(function () {
687								preFunction();
688								isotopeM.isotope();
689							});
690						}
691
692						$('.tss-wrapper').animate({ scrollTop: 0 }, 700);
693						$('html, body').animate({
694							scrollTop: ($('.tss-wrapper').offset().top - 100)
695						}, 700);
696					} else {
697						alert(data.msg);
698					}
699					container.find('.tss-loading-holder').remove();
700				},
701				error: function (jqXHR, textStatus, errorThrown) {
702					container.find('.tss-loading-holder').remove();
703					alert(textStatus + ' (' + errorThrown + ')');
704				}
705			});
706		});
707	}
708
709	// debounce so filtering doesn't happen every millisecond
710	function debounce(fn, threshold) {
711		var timeout;
712		return function debounced() {
713			if (timeout) {
714				clearTimeout(timeout);
715			}
716
717			function delayed() {
718				fn();
719				timeout = null;
720			}
721
722			setTimeout(delayed, threshold || 100);
723		};
724	}
725
726	function overlayIconResize() {
727		$('.tlp-item').each(function () {
728			var holder_height = $(this).height();
729			var a_height = $(this).find('.tlp-overlay .link-icon').height();
730			var h = (holder_height - a_height) / 2;
731			$(this).find('.link-icon').css('margin-top', h + 'px');
732		});
733	}
734
735	function RTPromoContent() {
736		parent.document.addEventListener("mousedown", function (e) {
737			var widgets = parent.document.querySelectorAll(".elementor-element--promotion");
738
739			if (widgets.length > 0) {
740				for (var i = 0; i < widgets.length; i++) {
741					if (widgets[i].contains(e.target)) {
742						var dialog = parent.document.querySelector("#elementor-element--promotion__dialog");
743						var icon = widgets[i].querySelector(".icon > i");
744
745						if (icon.classList.toString().indexOf("tss-promotional-element") >= 0) {
746							dialog.querySelector(".dialog-buttons-action").style.visibility = "hidden";
747							dialog.querySelector(".dialog-buttons-action").style.width = 0;
748							dialog.querySelector(".dialog-buttons-action").style.height = 0;
749							dialog.querySelector(".dialog-buttons-action").style.opacity = 0;
750							dialog.querySelector(".dialog-buttons-action").style.padding = 0;
751
752							if (dialog.querySelector(".rt-dialog-buttons-action") === null) {
753								var button = document.createElement("a");
754								var buttonText = document.createTextNode("Get Pro");
755
756								button.setAttribute("href", "https://www.radiustheme.com/downloads/wp-testimonial-slider-showcase-pro-wordpress/");
757								button.setAttribute("target", "_blank");
758								button.classList.add(
759									"dialog-button",
760									"dialog-action",
761									"dialog-buttons-action",
762									"elementor-button",
763									"elementor-button-success",
764									"rt-dialog-buttons-action"
765								);
766								button.appendChild(buttonText);
767
768								dialog.querySelector(".dialog-buttons-action").insertAdjacentHTML("afterend", button.outerHTML);
769							} else {
770								dialog.querySelector(".rt-dialog-buttons-action").style.display = "";
771							}
772						} else {
773							dialog.querySelector(".dialog-buttons-action").style.display = "";
774							dialog.querySelector(".dialog-buttons-action").style.visibility = "";
775							dialog.querySelector(".dialog-buttons-action").style.width = "";
776							dialog.querySelector(".dialog-buttons-action").style.height = "";
777							dialog.querySelector(".dialog-buttons-action").style.opacity = "";
778							dialog.querySelector(".dialog-buttons-action").style.padding = "";
779
780							if (dialog.querySelector(".rt-dialog-buttons-action") !== null) {
781								dialog.querySelector(".rt-dialog-buttons-action").style.display = "none";
782							}
783						}
784
785						break;
786					}
787				}
788			}
789		});
790	}
791
792	function RTInitIsotope() {
793		var container = jQuery('.tss-wrapper');
794
795		if (container.find('.tss-isotope, .tss-isotope2').length) {
796			container.find('.tss-isotope, .tss-isotope2').isotope();
797		}
798
799		if (container.find('.rt-row.tss-masonry').length) {
800			var masonryTarget = container.find('.rt-row.tss-masonry');
801			masonryTarget.isotope({
802				itemSelector: '.isotope-item',
803				masonry: { columnWidth: '.isotope-item' }
804			});
805		}
806	}
807
808	// Elementor Frontend Load
809	$(window).on('elementor/frontend/init', function () {
810		if (elementorFrontend.isEditMode()) {
811			elementorFrontend.hooks.addAction('frontend/element_ready/widget', function () {
812				RTInitCaroIso();
813				preFunction();
814			});
815
816			// Promo Content.
817			RTPromoContent();
818		}
819	});
820
821	// Open popup
822	// $('.tlp-openPopup').on('click', function () {
823	// 	const popupId = $(this).data('popup-id');
824	// 	$('#' + popupId).fadeIn();
825	// });
826	//
827	// // Close popup
828	// $(document).on('click', '.close-popup', function () {
829	// 	$(this).closest('.tlp-popup').fadeOut();
830	// });
831	//
832	// // Close popup when clicking outside content
833	// $(window).on('click', function (event) {
834	// 	if ($(event.target).hasClass('tlp-popup')) {
835	// 		$(event.target).fadeOut();
836	// 	}
837	// });
838
839	$('.tlp-openPopup').magnificPopup({
840		type: 'iframe'
841	});
842
843
844		// $('.tlp-openPopup').magnificPopup({
845		// 	type: 'iframe',
846		// 	mainClass: 'mfp-fade',
847		// 	removalDelay: 160,
848		// 	preloader: false,
849		// 	fixedContentPos: false
850		// });
851
852
853
854
855})(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.