PageSourceSearch

https://www.royalqueenseeds.com/modules/topbanner/js/frontend.js?_=079137864526c52e2d2da06431b79698

js royalqueenseeds.com collected 2026-10-03 20:14:27 UTC 6,984 bytes, 253 lines download raw bytes

1$(document).ready(function () {
2	function initTimerBannerConditions(id, screen)
3	{
4		let closeElement = 'topbanner_close_icon';
5		let mainElement = '#topbanner_' + screen + '_' + id;
6
7		if (window['stopShowingCondition_' + screen + '_' + id] === 'click' && screen === 'desktop') {
8			$(mainElement).on('click', function (event) {
9				let bannersNumber = getBannersNumber(screen);
10				if ($(mainElement).hasClass('active') || bannersNumber === 1) {
11					event.stopPropagation();
12					if (($(event.target)[0] != document.getElementsByClassName(closeElement)[0]) && !$(event.target).is('a')) {
13						setCookie(id + '-topbannerId-' + screen, true, 365 * 10);
14						deleteBanner(screen, id);
15						$(mainElement).remove();
16					}
17				}
18			});
19		}
20
21		$(mainElement + ' .' + closeElement).on('click', function (event) {
22			let bannersNumber = getBannersNumber(screen);
23			if ($(mainElement).hasClass('active') || bannersNumber === 1) {
24				event.preventDefault();
25				if (window['stopShowingCondition_' + screen + '_' + id] === 'close') {
26					setCookie(id + '-topbannerId-'+screen, true, 365 * 10);
27				}
28				deleteBanner(screen, id);
29				$(mainElement).remove();
30			}
31		});
32
33		if (window['stopShowingCondition_' + screen + '_' + id] === 'seen_x_times' && !window['timerBannerEvent_' + screen + '_' + id]) {
34			setSeenTimesValue(id, screen);
35		}
36
37		if (window['frequencyValue_' + screen] === 'days') {
38			setCookie(id + '-topbannerId-' + screen, true, window['frequency_number_' + screen + '_' + id]);
39		}
40	}
41
42	function setSeenTimesValue(id, screen)
43	{
44		let seenCurrentNew = window['seenCurrent_' + screen + '_' + id] + 1;
45		setCookie(id + '-topbannerId-seen-' + screen, seenCurrentNew, 365 * 10);
46		if (seenCurrentNew >= window['seen_x_times_' + screen + '_' + id]) {
47			setCookie(id + '-topbannerId-' + screen, true, 365 * 10);
48		}
49	}
50
51	function displayBannerWithTimeout(id, screen)
52	{
53		let banner = $('#topbanner_' + screen + '_' + id);
54		setTimeout(function () {
55			addBanner(screen, banner, window['timerBannerEventTiming_' + screen + '_' + id] > 0 ? true : false);
56			if (window['stopShowingCondition_' + screen + '_' + id] === 'seen_x_times') {
57				setSeenTimesValue(id, screen);
58			}
59		}, window['timerBannerEventTiming_' + screen + '_' + id] * 1000);
60	}
61
62	function displayBanner(id, screen)
63	{
64		displayBannerWithTimeout(id, screen);
65	}
66
67	function displayBannerOnScroll(id, screen)
68	{
69		$(window).scroll(function() {
70			displayBannerWithTimeout(id, screen);
71		});
72	}
73
74	function displayBannerOnHover(id, screen)
75	{
76		if (screen !== 'desktop') {
77			return;
78		}
79		$('#' + window['timerBannerTriggerElement_' + screen + '_' + id]).on('mouseenter', function() {
80			displayBannerWithTimeout(id, screen);
81		});
82	}
83
84	function displayBannerOnExit(id, screen)
85	{
86		if (screen !== 'desktop') {
87			return;
88		}
89		$(document).bind('mouseleave', function(e) {
90			if (e.pageY - $(window).scrollTop() <= 1) {
91				displayBannerWithTimeout(id, screen);
92			}
93		});
94	}
95
96	function displayBannerOnClick(id, screen)
97	{
98		const oldTriggerElement = $(`a[href^="#${window[`timerBannerTriggerElement_${screen}_${id}`]}"]`);
99		oldTriggerElement.addClass('trigger_element').append('<div id="new_trigger_element"></div>');
100		const newTriggerElement = $('#new_trigger_element');
101		newTriggerElement.width(oldTriggerElement.width());
102		newTriggerElement.height(oldTriggerElement.height());
103		newTriggerElement.click(function (e) {
104			e.stopPropagation();
105			e.preventDefault();
106			displayBannerWithTimeout(id, screen);
107			oldTriggerElement.removeClass('trigger_element');
108			$(this).remove();
109			window.history.pushState({}, "", location.href.replace(location.hash,""));
110		});
111	}
112
113	let desktopBanners = [];
114	let mobileBanners = [];
115
116	function addBanner(screen, banner, toggleVisibility)
117	{
118		if (toggleVisibility) {
119			banner.addClass('visible');
120		}
121		if (screen === 'desktop') {
122			addBannerToArray(desktopBanners, banner);
123		} else {
124			addBannerToArray(mobileBanners, banner);
125		}
126	}
127
128	function addBannerToArray(banners, banner)
129	{
130		for (let i = 0; i < banners.length; i++) {
131			if (banners[i].data('banner_id') === banner.data('banner_id')) {
132				return;
133			}
134		}
135		banners.push(banner);
136	}
137
138	function getBannersNumber(screen)
139	{
140		if (screen === 'desktop') {
141			return desktopBanners.length;
142		} else {
143			return mobileBanners.length;
144		}
145	}
146
147	function deleteBannerFromArray(banners, id)
148	{
149		for (let i = 0; i < banners.length; i++) {
150			if (banners[i].data('banner_id') == id) {
151				if (i ===  banners.length - 1) {
152					banners[0].addClass('active');
153				}
154				else {
155					banners[i+1].addClass('active');
156				}
157				banners.splice(i, 1);
158			}
159		}
160	}
161
162	function deleteBanner(screen, id)
163	{
164		if (screen === 'desktop') {
165			deleteBannerFromArray(desktopBanners, id);
166		} else {
167			deleteBannerFromArray(mobileBanners, id);
168		}
169	}
170
171	function displayNextBanner(screen)
172	{
173		let banners = (screen === 'desktop') ? desktopBanners : mobileBanners;
174		let bannerNumber = 0;
175		if (!banners.length) {
176			return;
177		} else {
178			let i;
179			let transformValue;
180			let last = false;
181			for (i = 0; i < banners.length; i++) {
182
183				if (banners[i].hasClass("active")) {
184					if (i === banners.length - 1) {
185						transformValue = `translateX(0%)`;
186						last = true;
187					} else {
188						transformValue = `translateX(-${(i + 1) * 100}%)`;
189					}
190					$('.topbanner_container .swiper-wrapper').css({
191						'-webkit-transform': transformValue,
192						'-moz-transform': transformValue,
193						'-ms-transform': transformValue,
194						'transform': transformValue
195					});
196					banners[i].removeClass("active");
197					banners[last ? 0 : i + 1].addClass("active");
198					break;
199				}
200			}
201		}
202	}
203
204
205	let processedIds = [];
206	let screen = '';
207	$('.topbanner').each(function (index) {
208		let id = $(this).data('banner_id');
209		if (processedIds.indexOf(id) === -1) {
210			processedIds.push(id);
211			if (window.innerWidth > 767 && $('#topbanner_desktop_' + id).length) {
212				screen = 'desktop';
213			} else if (window.innerWidth < 768 && $('#topbanner_mobile_' + id).length) {
214				screen = 'mobile';
215			}
216
217			if (screen) {
218				initTimerBannerConditions(id, screen);
219
220				switch (window['timerBannerEvent_' + screen + '_' + id]) {
221					case 'landing':
222						displayBanner(id, screen);
223						break;
224					case 'scroll':
225						displayBannerOnScroll(id, screen);
226						break;
227					case 'hover':
228						if (window['timerBannerTriggerElement_' + screen + '_' + id]) {
229							displayBannerOnHover(id, screen);
230						}
231						break;
232					case 'click':
233						if (window['timerBannerTriggerElement_' + screen + '_' + id]) {
234							displayBannerOnClick(id, screen);
235						}
236						break;
237					case 'exit':
238						displayBannerOnExit(id, screen);
239						break;
240				}
241			}
242		}
243		if (index === 0) {
244			$(`li#topbanner_${screen}_${id}`).addClass('active');
245		}
246		$(this).css('display', 'block');
247	});
248	if (typeof slideDisplayTime !== 'undefined' && slideDisplayTime > 0) {
249		setInterval(function () {
250			displayNextBanner(screen);
251		}, slideDisplayTime * 1000);
252	}
253});

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.