PageSourceSearch

https://www.grenzgaengerroute.de/typo3conf/ext/neustaibesearch/Res…/Js/IbeSearch/Show/tosc5.js?1679391080

js grenzgaengerroute.de collected 2026-09-30 12:19:57 UTC 4,571 bytes, 153 lines download raw bytes

1/**
2 * Quicksearch Tosc 5
3 *
4 * @description: Handle quicksearch input and reformat for tosc4
5 */
6
7/**
8 * test if sessionStorage works (iOS has a quota of 0B in private mode)
9 *
10 * @returns {boolean}
11 */
12function isSessionStorageNameSupported() {
13	var testKey = 'test';
14	try {
15		sessionStorage.setItem(testKey, '1');
16		sessionStorage.removeItem(testKey);
17		return true;
18	} catch (error) {
19		return false;
20	}
21}
22
23$(function() {
24
25	$('.selectChildren').on('change', function() {
26		var _this = $(this);
27		var form = _this.closest('form.js-quicksearch--tosc5');
28		var countChildren = _this.val();
29
30		form.find('.select-age').addClass('hide');
31
32		for (var i = 0; i < countChildren; i++) {
33			(form.find('.select-age')[i]).classList.remove('hide');
34		}
35
36		// if (countChildren < 1) {
37		// 	wrapper.addClass('hide');
38		// 	firstChildAge.find('.childAge').attr('disabled', 'disabled');
39		// }
40		// else {
41		// 	firstChildAge.find('select').removeAttr('disabled');
42			/*if (countChildren > 1) {
43				for (var i = 2; i <= countChildren; i++ ) {
44					var newItem = firstChildAge.clone().insertAfter($('.select-age:last')).addClass('cloned-select-age');
45					newItem.find('.select-age__index').html(i);
46					var newItemName = 'childAge' + i;
47					newItem.find('select').attr('name', newItemName);
48				}
49			}*/
50			// wrapper.removeClass('hide');
51		// }
52	});
53
54	$('.selectChildren').trigger('change');
55
56	$('.js-quicksearch--tosc5').each(function(i) {
57
58		var storageSupported = isSessionStorageNameSupported() && $(this).data('use-session-storage');
59
60		if (storageSupported) {
61			if (sessionStorage.getItem('neustaibesearch_date_start')) {
62				$(this).find('.js-dateFrom').val(sessionStorage.getItem('neustaibesearch_date_start'));
63			}
64			if (sessionStorage.getItem('neustaibesearch_date_end')) {
65				$(this).find('.js-dateTo').val(sessionStorage.getItem('neustaibesearch_date_end'));
66			}
67			if (sessionStorage.getItem('neustaibesearch_adults')) {
68				$(this).find('.js-adults').val(sessionStorage.getItem('neustaibesearch_adults'));
69			}
70			if (sessionStorage.getItem('neustaibesearch_children')) {
71				var children = sessionStorage.getItem('neustaibesearch_children').split(',');
72				$(this).find('.selectChildren').val(children.length);
73
74				for(var j = 0; j < children.length; j++) {
75					$(this).find('.select-age')
76						.eq(j)
77						.removeClass('hide')
78						.find('.childAge').val(children[j]);
79				}
80			}
81		}
82
83		$(this).on('submit', function(e) {
84			e.preventDefault();
85			var _this = $(this);
86			var saveFormValuesInStorage = function () {
87				if (storageSupported) {
88					var startDate = _this.find('.js-dateFrom').val();
89					sessionStorage.setItem('neustaibesearch_date_start', startDate);
90					var endDate = _this.find('.js-dateTo').val();
91					sessionStorage.setItem('neustaibesearch_date_end', endDate);
92					var adults = _this.find('.js-adults').val();
93					sessionStorage.setItem('neustaibesearch_adults', adults);
94				}
95			};
96
97			var tosc5submit = function(linkKey, dateFrom, dateTo, units, adults, children, callbackPath) {
98				var guestDataObj = {
99					dateFrom: new Date(dateFrom),
100					dateTo: new Date(dateTo),
101					occupancy1: {
102						units: units,
103						adults: adults,
104						children: children
105					},
106					searchFilterObjectId: 'limACCCAT=5edbcde9-ccf8-445f-9db4-ae8f918f0d1b'
107				};
108				dw.accommodationQuickFind(
109					linkKey,
110					guestDataObj,
111					function() {
112						window.location.href = callbackPath;
113					});
114			};
115
116			var reformatDateForTosc = function(date) {
117				var dateParts = null;
118
119				if(typeof date === 'string') {
120					dateParts = date.split('.');
121				} else {
122					return date.toISOString().split('T')[0];
123				}
124
125				return dateParts[2] + '-' + dateParts[1] + '-' + dateParts[0];
126			};
127
128			var dateStart = reformatDateForTosc($(this).find('.js-dateFrom').val());
129			var dateEnd = reformatDateForTosc($(this).find('.js-dateTo').val());
130			var adults = parseInt($(this).find('.js-adults').val());
131			var children = parseInt($(this).find('.js-children').val());
132			var childrenAge = [];
133			var tosc5Path = $(this).data('tosc5-path');
134			var tosc5LinkKey = $(this).data('tosc5-linkkey');
135			var units = 1;
136
137			for(var i = 0; i < children; i++) {
138				var age = parseInt($(this).find('[name="childAge' + (i + 1) + '"]').val());
139				if(!age && age !== 0) {
140					age = 0;
141				}
142				childrenAge.push(age);
143			}
144
145			if (storageSupported) {
146				sessionStorage.setItem('neustaibesearch_children', childrenAge);
147			}
148
149			saveFormValuesInStorage();
150			tosc5submit(tosc5LinkKey, dateStart, dateEnd, units, adults, childrenAge, tosc5Path);
151		});
152	});
153});

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.