PageSourceSearch

https://reisebuero-preydel.de/wp-content/plugins/smg-customer-port…/modules/Travels/scripts/script.js?ver=7.1

js reisebuero-preydel.de collected 2026-10-07 03:32:32 UTC 10,468 bytes, 312 lines download raw bytes

1window.jQuery(document).ready(function() {
2	var $ = window.jQuery;
3
4	function adjustTravelDetailModalHeight(iframe) {
5		try {
6			iframe.style.height = (
7				iframe.contentWindow.document.body.scrollHeight
8				|| iframe.contentWindow.document.documentElement.scrollHeight
9			) + 'px';
10
11			const detailWindow = iframe.closest('.kupo-travel-detail-window');
12
13			if (detailWindow) {
14				detailWindow.style.height = 'auto';
15			}
16		} catch (e) {}
17	}
18
19	function addContentToTravelDetailsFrame(content, detailDialog) {
20		const iframe = detailDialog.find('iframe.kupo-detail-dialog-main-content');
21
22		if (iframe.length > 0 && iframe[0].contentWindow) {
23			const detailsFrame = iframe[0].contentWindow.document;
24
25			detailsFrame.open();
26			detailsFrame.write(content);
27			detailsFrame.close();
28
29			iframe[0].onload = function() {
30				adjustTravelDetailModalHeight(iframe[0]);
31			};
32		}
33	}
34
35	function toggleSelect() {
36		$('.kupo-travels .kupo-select').find('svg').toggle();
37		$('.kupo-travels .kupo-select > ul').toggle('slow');
38	}
39
40	$('.kupo-travels .kupo-select > header').on('click', function() {
41		toggleSelect();
42	});
43
44	$(window).on('click', function(e) {
45		var kupoSelect = $('.kupo-travels .kupo-select');
46		var kupoSelectList = $('.kupo-travels .kupo-select > ul');
47
48		if (
49			kupoSelect[0]
50			&& kupoSelectList[0]
51			&& $(kupoSelectList).is(':visible')
52			&& !kupoSelect[0].isSameNode(e.target)
53			&& !kupoSelect[0].contains(e.target)
54		) {
55			toggleSelect();
56		}
57	});
58
59	$('.kupo-travel-action-question-button').on('click', function(e) {
60		e.preventDefault();
61		e.stopPropagation();
62
63		const travelId = $(this).data('value');
64
65		$('#question_travel_id').val(travelId);
66		$('.cupo-modal-ask_question .cupo-modal-ask_question_content').show();
67		$('.cupo-modal-ask_question .cupo-modal-loader').hide();
68		$('.cupo-modal-ask_question .cupo-modal-success-message').hide();
69		$('.cupo-modal-ask_question .cupo-modal-error-message').hide();
70		$('.cupo-modal-ask_question .cupo-modal-input-error-message').remove();
71		$('.cupo-modal-ask_question .cupo-popup-heading').html('Frage stellen');
72		$('.cupo-modal-ask_question .cupo-modal-body').addClass('with_travel');
73		$('.cupo-modal-ask_question .cupo-ask_question_form').addClass('with_travel');
74		$('.cupo-modal-ask_question').addClass('active');
75
76		const mappings = [
77			{ travelSelector: `#kupo-travel-header-${travelId}`, modalSelector: `#kupo-question-travel-header` },
78			{ travelSelector: `#kupo-travel-dates-${travelId}`, modalSelector: `#kupo-question-travel-dates` },
79			{ travelSelector: `#kupo-travel-location-${travelId}`, modalSelector: `#kupo-question-travel-location` },
80			{ travelSelector: `#kupo-travel-participants-${travelId}`, modalSelector: `#kupo-question-travel-participants` },
81			{ travelSelector: `#kupo-travel-price-${travelId}`, modalSelector: `#kupo-question-travel-price` }
82		];
83
84		mappings.forEach(mapping => {
85			const content = $(mapping.travelSelector).text().replace(/\s+/g, ' ').trim();
86			$(mapping.modalSelector).text(content);
87		});
88
89		$('.kupo-question-travel').slideDown();
90	});
91
92	$('.kupo-travels .kupo-select > ul > li').on('click', function() {
93		$(this).parent().parent().find('header > span').html($(this).html());
94
95		toggleSelect();
96
97		switch ($(this).attr('class')) {
98			case 'kupo-travel-filter-future':
99				var $container = $('.kupo-travels-container');
100				var $travels = $container.find('.kupo-travel');
101
102				$travels.hide();
103				$travels.filter('.kupo-travel-future').show();
104
105				var $futureTravels = $travels.filter('.kupo-travel-future').get();
106
107				$futureTravels.sort(function(a, b) {
108					var dateA = new Date($(a).data('start-date'));
109					var dateB = new Date($(b).data('start-date'));
110					return dateA - dateB;
111				});
112
113				$futureTravels.forEach(function(item) {
114					$container.append(item);
115				});
116				break;
117
118			case 'kupo-travel-filter-past':
119				var $container = $('.kupo-travels-container');
120				var $travels = $container.find('.kupo-travel');
121
122				$travels.hide();
123				$travels.filter('.kupo-travel-past').show();
124
125				var $pastTravels = $travels.filter('.kupo-travel-past').get();
126				$pastTravels.sort(function(a, b) {
127					var dateA = new Date($(a).data('start-date'));
128					var dateB = new Date($(b).data('start-date'));
129					return dateB - dateA;
130				});
131
132				$pastTravels.forEach(function(item) {
133					$container.append(item);
134				});
135				break;
136
137			case 'kupo-travel-filter-all':
138			default:
139				var $container = $('.kupo-travels-container');
140				var $travels = $container.find('.kupo-travel');
141
142				$travels.show();
143
144				var $futureTravels = $travels.filter('.kupo-travel-future').get();
145				var $pastTravels = $travels.filter('.kupo-travel-past').get();
146
147				$futureTravels.sort(function(a, b) {
148					var dateA = new Date($(a).data('start-date'));
149					var dateB = new Date($(b).data('start-date'));
150					return dateB - dateA;
151				});
152
153				$pastTravels.sort(function(a, b) {
154					var dateA = new Date($(a).data('start-date'));
155					var dateB = new Date($(b).data('start-date'));
156					return dateB - dateA;
157				});
158
159				$futureTravels.forEach(function(item) {
160					$container.append(item);
161				});
162
163				$pastTravels.forEach(function(item) {
164					$container.append(item);
165				});
166				break;
167		}
168	});
169
170	$('.kupo-travels .kupo-search').on('submit', function(e) {
171		e.preventDefault();
172		e.stopPropagation();
173
174		$('.kupo-no_search_results').hide();
175		$('.kupo-travel').each(function() {
176			$(this).show();
177		});
178
179		var found = false;
180		var searchText = $('.kupo-travels .kupo-search input').val();
181
182		if (typeof searchText !== 'string' || searchText.trim().length === 0) {
183			return;
184		}
185
186		searchText = searchText.trim().toUpperCase();
187
188		$('.kupo-travel').each(function() {
189			if ($(this).find('.kupo-travel-details').html().toUpperCase().indexOf(searchText) === -1) {
190				found = true;
191				$(this).hide();
192			}
193		});
194
195		if (found) {
196			$('.kupo-no_search_results').hide();
197		} else {
198			$('.kupo-no_search_results').show();
199		}
200	});
201
202	$('.kupo-travel-action-large').on('click', function(e) {
203		e.preventDefault();
204		e.stopPropagation();
205
206		const extendedDetailView = $(this).data('extended-detail-view');
207		const containerId = $(this).data('travel-id');
208		const bookingsRaw = $(this).data('bookings');
209		let bookings = [];
210
211		const detailDialog = $('section.kupo-travel-detail-dialog-' + containerId);
212
213		if (typeof bookingsRaw === 'number') {
214			bookings = [bookingsRaw];
215		} else if (typeof bookingsRaw === 'string' && bookingsRaw.length > 0) {
216			bookings = bookings.concat(bookingsRaw.split('|').map(bookingId => {
217				if (bookingId.length > 0) {
218					return parseInt(bookingId, 10);
219				}
220
221				return null;
222			}).filter(bookingId => !isNaN(bookingId)));
223		}
224
225		detailDialog.find('.kupo-travel-detail-window > h1.cupo_primary_heading').html('Details');
226		detailDialog.find('.kupo-travel-detail-error-message').html('').hide();
227
228		addContentToTravelDetailsFrame('', detailDialog);
229
230		if (bookings.length === 0) {
231			detailDialog.find('.kupo-travel-detail-window > h1.cupo_primary_heading').html('Fehler');
232			detailDialog.find('.kupo-travel-detail-error-message')
233				.html('Es ist ein technischer Fehler aufgetreten. Bitte versuchen Sie es später erneut.')
234				.show();
235			return;
236		}
237
238		detailDialog.addClass('active');
239		detailDialog.removeClass('inactive');
240		detailDialog.find('.kupo-travel-detail-dialog-window-loading-spinner').addClass('active');
241		detailDialog.find('.kupo-travel-detail-dialog-window-loading-spinner').removeClass('inactive');
242
243		if (extendedDetailView) {
244			showExtendedTravelDetailContent(containerId, detailDialog);
245		} else {
246			showTravelDetailContent(detailDialog);
247		}
248	});
249
250	function showExtendedTravelDetailContent(containerId, detailDialog) {
251		detailDialog.find('iframe.kupo-detail-dialog-main-content').css('display', 'flex');
252
253		$.ajax({
254			type: 'POST',
255			url: cupo_travels_script.ajax_url,
256			data: {
257				'action': 'cupoTravelDetail',
258				'data': {
259					containerId: containerId
260				}
261			},
262			success: function (data) {
263				data = typeof data === 'string' ? JSON.parse(data) : data;
264
265				detailDialog.find('.kupo-travel-detail-dialog-window-loading-spinner').addClass('inactive');
266				detailDialog.find('.kupo-travel-detail-dialog-window-loading-spinner').removeClass('active');
267
268				if (data && data.status === 'success') {
269					addContentToTravelDetailsFrame(data.data, detailDialog);
270				} else {
271					detailDialog.find('iframe.kupo-detail-dialog-main-content').hide();
272					detailDialog.find('.kupo-travel-detail-window > h1.cupo_primary_heading').html('Fehler');
273					detailDialog.find('.kupo-travel-detail-error-message')
274						.html('Es ist ein technischer Fehler aufgetreten. Bitte versuchen Sie es später erneut.')
275						.show();
276				}
277			},
278			error: function () {
279				detailDialog.find('.kupo-travel-detail-dialog-window-loading-spinner').addClass('inactive');
280				detailDialog.find('.kupo-travel-detail-dialog-window-loading-spinner').removeClass('active');
281				detailDialog.find('iframe.kupo-detail-dialog-main-content').hide();
282				detailDialog.find('.kupo-travel-detail-window > h1.cupo_primary_heading').html('Fehler');
283				detailDialog.find('.kupo-travel-detail-error-message')
284					.html('Es ist ein technischer Fehler aufgetreten. Bitte versuchen Sie es später erneut.')
285					.show();
286			}
287		});
288	}
289
290	function showTravelDetailContent(detailDialog) {
291		detailDialog.find('.kupo-travel-detail-dialog-window-loading-spinner').addClass('inactive');
292		detailDialog.find('.kupo-travel-detail-dialog-window-loading-spinner').removeClass('active');
293
294		detailDialog.find('.kupo-travel-detail-content').css('display', 'flex');
295
296		detailDialog.find('.kupo-travel-detail-error-message').html('').css('display', 'none');
297	}
298
299	$('.kupo-modal-detail-dialog-cancel_button').on('click', function() {
300		$('section[class*="kupo-travel-detail-dialog-"]').addClass('inactive');
301		$('section[class*="kupo-travel-detail-dialog-"]').removeClass('active');
302		$('.kupo-travel-detail-dialog-window-loading-spinner').addClass('inactive');
303		$('.kupo-travel-detail-dialog-window-loading-spinner').removeClass('active');
304	});
305
306	$('.kupo-close-travel-detail-dialog').on('click', function() {
307		$('section[class*="kupo-travel-detail-dialog-"]').addClass('inactive');
308		$('section[class*="kupo-travel-detail-dialog-"]').removeClass('active');
309		$('.kupo-travel-detail-dialog-window-loading-spinner').addClass('inactive');
310		$('.kupo-travel-detail-dialog-window-loading-spinner').removeClass('active');
311	});
312});

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.