PageSourceSearch

https://enmotive.com/js/ga4.js?1790885762

js enmotive.com collected 2026-10-03 20:24:19 UTC 3,014 bytes, 138 lines download raw bytes

1/**
2 * Check if GA4 for dataLayer
3 */
4function isGA4(){
5	return window.dataLayer;
6}
7
8
9
10/**
11 * Event Register Category
12 * Events/_register
13 */
14function ga4EventRegisterCategoryForm(){
15	if (!isGA4()) return;
16
17	dataLayer.push({ ecommerce: null });
18
19	// Selected Category
20	var $selected = $('#categories_items input[name="data[Registration][category_id]"]:checked');
21	var $parent = $selected.closest('.row');
22	var item_value = $('[data-item-value]', $parent).data('item-value');
23	if ($selected.length && !!item_value) {
24		dataLayer.push({
25			event: "add_to_cart",
26			ecommerce: {
27				currency: "USD",
28				value: Number(item_value).toFixed(2),
29				items: [
30					{
31						item_name: $('.name', $parent).text(),
32						price: Number(item_value).toFixed(2),
33						quantity: 1
34					}
35				]
36			}
37		});
38	}
39
40	// Selected Ticket
41	var $ticketed = $('#tickets_items select[name^="data[Ticket]"]');
42	if ($ticketed.length) {
43		$.each($ticketed, function(){
44			var me = $(this);
45			var $parent = me.closest('.row');
46			if (me.val() == 0) return;
47			dataLayer.push({
48				event: "add_to_cart",
49				ecommerce: {
50					currency: "USD",
51					value: Number($('[data-item-value]', $parent).data('item-value')).toFixed(2),
52					items: [
53						{
54							item_name: $('.name', $parent).text(),
55							price: Number($('[data-item-value]', $parent).data('item-value')).toFixed(2),
56							quantity: me.val()
57						}
58					]
59				}
60			});
61		});
62	}
63
64	// Selected Bundle
65	var $selected = $('#bundles_items input[name="data[Registration][category_id]"]:checked');
66	var $parent = $selected.closest('.row');
67	var item_value = $('[data-item-value]', $parent).data('item-value');
68	if ($selected.length) {
69		dataLayer.push({
70			event: "add_to_cart",
71			ecommerce: {
72				currency: "USD",
73				value: Number(item_value).toFixed(2),
74				items: [
75					{
76						item_name: $('.name', $parent).text(),
77						price: Number(item_value).toFixed(2),
78						quantity: 1
79					}
80				]
81			}
82		});
83	}
84}
85
86
87
88/**
89 * Edit/Change Registration Category
90 * Registrations/category
91 */
92function ga4RegistrationsCategory(e){
93	if (!isGA4()) return;
94
95	var $selected = $('input[name^="data[Registration][category_id]"]:checked');
96	var $parent = $selected.closest('.row');
97	dataLayer.push({ ecommerce: null });
98	dataLayer.push({
99		event: "add_to_cart",
100		ecommerce: {
101			currency: "USD",
102			value: Number($('[data-item-value]', $parent).data('item-value')).toFixed(2),
103			items: [
104				{
105					item_name: $('.name', $parent).text(),
106					price: Number(item_value).toFixed(2),
107					quantity: 1
108				}
109			]
110		}
111	});
112}
113
114
115
116/**
117 * Element/Orders/modal
118 * Purchase
119 */
120function ga4OrdersModalPurchase(order_id, total, item_details, hash_email, hash_phone){
121	if (!isGA4()) return;
122
123	if (item_details.length) {
124		dataLayer.push({ ecommerce: null });
125		dataLayer.push({
126			event: "purchase",
127			email: hash_email,
128			phone: hash_phone,
129			ecommerce: {
130				transaction_id: order_id,
131				currency: "USD",
132				value: Number(total).toFixed(2),
133				items: item_details
134			}
135		});
136		console.log(dataLayer)
137	}
138}

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.