PageSourceSearch

https://www.wagrain-kleinarl.at/js/custom/ecommerce-tracking.js

js wagrain-kleinarl.at collected 2026-09-24 22:03:42 UTC 13,063 bytes, 615 lines download raw bytes

1document.body.addEventListener(`ecommerce-tracking`, (event) => {
2	if (event && event.detail) {
3		switch (event.detail.type) {
4			case "PROVIDER":
5				switch (event.detail.action) {
6					case "VIEW":
7						Provider.view(event.detail);
8						break;
9					case "REQUEST":
10						Provider.request(event.detail);
11						break;
12					case "EMAIL":
13						Provider.email(event.detail);
14						if (window.dataLayer) {
15							dataLayer.push({
16								'event' : 'GAEvent',
17								'eventCategory' : 'Mailto',
18								'eventAction' : event?.detail?.data,
19								'eventLabel' : window.location.href,
20							});
21						}
22						break;
23					case "PHONE":
24						Provider.phone(event.detail);
25						if (window.dataLayer) {
26							dataLayer.push({
27								'event' : 'GAEvent',
28								'eventCategory' : 'Tel',
29								'eventAction' : event?.detail?.data,
30								'eventLabel' : window.location.href,
31							});
32						}
33						break;
34					case "URL":
35						Provider.url(event.detail);
36						if (window.dataLayer) {
37							dataLayer.push({
38								'event' : 'GAEvent',
39								'eventCategory' : 'Outbound',
40								'eventAction' : event?.detail?.data,
41								'eventLabel' : window.location.href,
42							});
43						}
44						break;
45					case "EXTERNALURL":
46						Provider.externalURL(event.detail);
47						if (window.dataLayer) {
48							dataLayer.push({
49								'event' : 'GAEvent',
50								'eventCategory' : 'Outbound',
51								'eventAction' : event?.detail?.data,
52								'eventLabel' : window.location.href,
53							});
54						}
55						break;
56				}
57
58				break;
59
60			case "EVENT":
61				switch (event.detail.action) {
62					case "VIEW":
63						Event.view(event.detail);
64						break;
65					case "REQUEST":
66						Event.request(event.detail);
67						break;
68					case "EMAIL":
69						Event.email(event.detail);
70						if (window.dataLayer) {
71							dataLayer.push({
72								'event' : 'GAEvent',
73								'eventCategory' : 'Mailto',
74								'eventAction' : event?.detail?.data,
75								'eventLabel' : window.location.href,
76							});
77						}
78						break;
79					case "PHONE":
80						Event.phone(event.detail);
81						if (window.dataLayer) {
82							dataLayer.push({
83								'event' : 'GAEvent',
84								'eventCategory' : 'Tel',
85								'eventAction' : event?.detail?.data,
86								'eventLabel' : window.location.href,
87							});
88						}
89						break;
90					case "URL":
91						Event.url(event.detail);
92						if (window.dataLayer) {
93							dataLayer.push({
94								'event' : 'GAEvent',
95								'eventCategory' : 'Outbound',
96								'eventAction' : event?.detail?.data,
97								'eventLabel' : window.location.href,
98							});
99						}
100						break;
101					case "EXTERNALURL":
102						Event.externalURL(event.detail);
103						if (window.dataLayer) {
104							dataLayer.push({
105								'event' : 'GAEvent',
106								'eventCategory' : 'Outbound',
107								'eventAction' : event?.detail?.data,
108								'eventLabel' : window.location.href,
109							});
110						}
111						break;
112				}
113
114				break;
115
116			case "TOUR":
117				switch (event.detail.action) {
118					case "VIEW":
119						Tour.view(event.detail);
120						break;
121					case "REQUEST":
122						Tour.request(event.detail);
123						break;
124					case "EMAIL":
125						Tour.email(event.detail);
126						if (window.dataLayer) {
127							dataLayer.push({
128								'event' : 'GAEvent',
129								'eventCategory' : 'Mailto',
130								'eventAction' : event?.detail?.data,
131								'eventLabel' : window.location.href,
132							});
133						}
134						break;
135					case "PHONE":
136						Tour.phone(event.detail);
137						if (window.dataLayer) {
138							dataLayer.push({
139								'event' : 'GAEvent',
140								'eventCategory' : 'Tel',
141								'eventAction' : event?.detail?.data,
142								'eventLabel' : window.location.href,
143							});
144						}
145						break;
146					case "URL":
147						Tour.url(event.detail);
148						if (window.dataLayer) {
149							dataLayer.push({
150								'event' : 'GAEvent',
151								'eventCategory' : 'Outbound',
152								'eventAction' : event?.detail?.data,
153								'eventLabel' : window.location.href,
154							});
155						}
156						break;
157					case "EXTERNALURL":
158						Tour.externalURL(event.detail);
159						if (window.dataLayer) {
160							dataLayer.push({
161								'event' : 'GAEvent',
162								'eventCategory' : 'Outbound',
163								'eventAction' : event?.detail?.data,
164								'eventLabel' : window.location.href,
165							});
166						}
167						break;
168				}
169
170				break;
171
172			case "INFRASTRUCTURE":
173				switch (event.detail.action) {
174					case "VIEW":
175						Infrastructure.view(event.detail);
176						break;
177					case "REQUEST":
178						Infrastructure.request(event.detail);
179						break;
180					case "EMAIL":
181						Infrastructure.email(event.detail);
182						if (window.dataLayer) {
183							dataLayer.push({
184								'event' : 'GAEvent',
185								'eventCategory' : 'Mailto',
186								'eventAction' : event?.detail?.data,
187								'eventLabel' : window.location.href,
188							});
189						}
190						break;
191					case "PHONE":
192						Infrastructure.phone(event.detail);
193						if (window.dataLayer) {
194							dataLayer.push({
195								'event' : 'GAEvent',
196								'eventCategory' : 'Tel',
197								'eventAction' : event?.detail?.data,
198								'eventLabel' : window.location.href,
199							});
200						}
201						break;
202					case "URL":
203						Infrastructure.url(event.detail);
204						if (window.dataLayer) {
205							dataLayer.push({
206								'event' : 'GAEvent',
207								'eventCategory' : 'Outbound',
208								'eventAction' : event?.detail?.data,
209								'eventLabel' : window.location.href,
210							});
211						}
212						break;
213					case "EXTERNALURL":
214						Infrastructure.externalURL(event.detail);
215						if (window.dataLayer) {
216							dataLayer.push({
217								'event' : 'GAEvent',
218								'eventCategory' : 'Outbound',
219								'eventAction' : event?.detail?.data,
220								'eventLabel' : window.location.href,
221							});
222						}
223						break;
224				}
225
226				break;
227
228			case "PACKAGE":
229				switch (event.detail.action) {
230					case "VIEW":
231						Package.view(event.detail);
232						break;
233					case "REQUEST":
234						Package.request(event.detail);
235						break;
236					case "EMAIL":
237						Package.email(event.detail);
238						if (window.dataLayer) {
239							dataLayer.push({
240								'event' : 'GAEvent',
241								'eventCategory' : 'Mailto',
242								'eventAction' : event?.detail?.data,
243								'eventLabel' : window.location.href,
244							});
245						}
246						break;
247					case "PHONE":
248						Package.phone(event.detail);
249						if (window.dataLayer) {
250							dataLayer.push({
251								'event' : 'GAEvent',
252								'eventCategory' : 'Tel',
253								'eventAction' : event?.detail?.data,
254								'eventLabel' : window.location.href,
255							});
256						}
257						break;
258					case "URL":
259						Package.url(event.detail);
260						if (window.dataLayer) {
261							dataLayer.push({
262								'event' : 'GAEvent',
263								'eventCategory' : 'Outbound',
264								'eventAction' : event?.detail?.data,
265								'eventLabel' : window.location.href,
266							});
267						}
268						break;
269					case "EXTERNALURL":
270						Package.externalURL(event.detail);
271						if (window.dataLayer) {
272							dataLayer.push({
273								'event' : 'GAEvent',
274								'eventCategory' : 'Outbound',
275								'eventAction' : event?.detail?.data,
276								'eventLabel' : window.location.href,
277							});
278						}
279						break;
280				}
281
282				break;
283			case "BOOKING":
284				switch (event.detail.action) {
285					case "BOOKINGSUCCESS":
286						const products = []
287						const productsGA4 = []
288
289						event.detail.data?.items?.map((item) => {
290							products?.push({
291							'sku': item?.id,
292							'name': item?.title,
293							'category': item?.type,
294							'price': item?.price,
295							'quantity': item?.units})
296						})
297
298						event.detail.data?.items?.map((item) => {
299							productsGA4?.push({
300							'item_id': item?.id,
301							'item_name': item?.title,
302							'item_category': item?.type,
303							'price': item?.price,
304							'quantity': item?.units})
305						})
306
307						window.dataLayer = window.dataLayer || []; 
308	
309						dataLayer.push({
310							'event': 'purchase',
311							'ecommerce': {
312								'transaction_id': event?.detail?.data?.bookingNumber,
313								'affiliation': 'www.wagrain-kleinarl.at',
314								'value': event?.detail?.data?.price,
315								'tax': 0,
316								'shipping': 0,
317								'items': productsGA4
318							},
319							'user_data': {
320								'email_address': event?.detail?.data?.email
321							}
322						});
323						
324						dataLayer.push({
325							'transactionId': event?.detail?.data?.bookingNumber,
326							'transactionAffiliation': 'www.wagrain-kleinarl.at',
327							'transactionTotal': event?.detail?.data?.price,
328							'transactionTax': 0,
329							'transactionShipping': 0,
330							'transactionProducts': products
331						});
332						
333
334						break;
335				}
336
337				break;
338
339				case "BROCHURE":
340				switch (event.detail.action) {
341					case "ORDER":
342
343						if(window.dataLayer) {
344							dataLayer.push({
345								'event' : 'GAEvent',
346								'eventCategory' : 'Prospektbestellung',
347								'eventAction' : event?.detail?.data,
348								'eventLabel' : window.location.href,
349							});
350						}
351						
352						break;
353				}
354
355				break;
356		}
357	}
358});
359
360/**
361 * Provider
362 * View, Request, Email, Phone, Url (Website), ExternalUrl (external links e.g. Facebook, Instagram)
363 */
364
365class Provider {
366	static view(data) {
367		// call micado tourism tracking
368
369		Tourism.provider(data);
370	}
371
372	static request(data) {
373		// call micado tourism tracking
374
375		Tourism.provider(data);
376	}
377
378	static email(data) {
379		// call micado tourism tracking
380
381		Tourism.provider(data);
382	}
383
384	static phone(data) {
385		// call micado tourism tracking
386
387		Tourism.provider(data);
388	}
389
390	static url(data) {
391		// call micado tourism tracking
392
393		Tourism.provider(data);
394	}
395
396	static externalURL(data) {
397		// call micado tourism tracking
398
399		Tourism.provider(data);
400	}
401}
402
403/**
404 * Event
405 * View, Request, Email, Phone, Url (Website), ExternalUrl (external links e.g. Facebook, Instagram)
406 */
407
408class Event {
409	static view(data) {
410		// call micado tourism tracking
411
412		Tourism.event(data);
413	}
414
415	static request(data) {
416		// call micado tourism tracking
417
418		Tourism.event(data);
419	}
420
421	static email(data) {
422		// call micado tourism tracking
423
424		Tourism.event(data);
425	}
426
427	static phone(data) {
428		// call micado tourism tracking
429
430		Tourism.event(data);
431	}
432
433	static url(data) {
434		// call micado tourism tracking
435
436		Tourism.event(data);
437	}
438
439	static externalURL(data) {
440		// call micado tourism tracking
441
442		Tourism.event(data);
443	}
444}
445
446/**
447 * Infrastructure
448 * View, Request, Email, Phone, Url (Website), ExternalUrl (external links e.g. Facebook, Instagram)
449 */
450
451class Infrastructure {
452	static view(data) {
453		// call micado tourism tracking
454
455		Tourism.Infrastructure(data);
456	}
457
458	static request(data) {
459		// call micado tourism tracking
460
461		Tourism.Infrastructure(data);
462	}
463
464	static email(data) {
465		// call micado tourism tracking
466
467		Tourism.Infrastructure(data);
468	}
469
470	static phone(data) {
471		// call micado tourism tracking
472
473		Tourism.Infrastructure(data);
474	}
475
476	static url(data) {
477		// call micado tourism tracking
478
479		Tourism.Infrastructure(data);
480	}
481
482	static externalURL(data) {
483		// call micado tourism tracking
484
485		Tourism.Infrastructure(data);
486	}
487}
488
489/**
490 * Package
491 *
492 */
493
494class Package {
495	static view(data) {
496		// call micado tourism tracking
497
498		Tourism.Package(data);
499	}
500
501	static request(data) {
502		// call micado tourism tracking
503
504		Tourism.Package(data);
505	}
506
507	static email(data) {
508		// call micado tourism tracking
509
510		Tourism.Package(data);
511	}
512
513	static phone(data) {
514		// call micado tourism tracking
515
516		Tourism.Package(data);
517	}
518
519	static url(data) {
520		// call micado tourism tracking
521
522		Tourism.Package(data);
523	}
524
525	static externalURL(data) {
526		// call micado tourism tracking
527
528		Tourism.Package(data);
529	}
530}
531
532/**
533 * Tour
534 *
535 */
536
537class Tour {
538	static view(data) {
539		// call micado tourism tracking
540
541		Tourism.tour(data);
542	}
543
544	static request(data) {
545		// call micado tourism tracking
546
547		Tourism.tour(data);
548	}
549
550	static email(data) {
551		// call micado tourism tracking
552
553		Tourism.tour(data);
554	}
555
556	static phone(data) {
557		// call micado tourism tracking
558
559		Tourism.tour(data);
560	}
561
562	static url(data) {
563		// call micado tourism tracking
564
565		Tourism.tour(data);
566	}
567
568	static externalURL(data) {
569		// call micado tourism tracking
570
571		Tourism.tour(data);
572	}
573}
574
575/**
576 * Tracking Provider Tourism
577 */
578
579class Tourism {
580	static provider(data) {
581		if (data.action) {
582			fetch(
583				`/Micado.Tourism.Web/Micado.Tourism.Web.IO.Api.ProviderApi/TrackAction.api?providerid=${data.id}&action=${data.action}`
584			);
585		}
586	}
587	static event(data) {
588		if (data.action) {
589			fetch(
590				`/Micado.Tourism.Web/Micado.Tourism.Web.IO.Api.EventApi/TrackAction.api?eventid=${data.id}&action=${data.action}`
591			);
592		}
593	}
594	static tour(data) {
595		if (data.action) {
596			fetch(
597				`/Micado.Tourism.Web/Micado.Tourism.Web.IO.Api.TourApi/TrackAction.api?tourid=${data.id}&action=${data.action}`
598			);
599		}
600	}
601	static Infrastructure(data) {
602		if (data.action) {
603			fetch(
604				`/Micado.Tourism.Web/Micado.Tourism.Web.IO.Api.InfrastructureApi/TrackAction.api?infrastructureid=${data.id}&action=${data.action}`
605			);
606		}
607	}
608	static Package(data) {
609		if (data.action) {
610			fetch(
611				`/Micado.Tourism.Web/Micado.Tourism.Web.IO.Api.PackageApi/TrackAction.api?packageid=${data.id}&action=${data.action}`
612			);
613		}
614	}
615}

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.