PageSourceSearch

https://www.brighthorizons.com/dist/js/corporate/ga4-tracking.js

js brighthorizons.com collected 2026-10-01 08:41:58 UTC 5,446 bytes, 90 lines download raw bytes

1// global variables
2var ctaclicktrackingeventname = "cta_click";
3var navigationinteracttrackingeventname = "navigation_interact";
4var videostarteventname = "video_start";
5
6$(document).ready(function () {
7    $('.track_nav_interact').click(function (e) {
8        window.dataLayer = window.dataLayer || [];
9        if (e.currentTarget.attributes != null && e.currentTarget.attributes.length > 0) {
10            var trackingVal = e.currentTarget.attributes["data-navigation-tracking"].value;
11            var trackingArr = trackingVal != undefined ? trackingVal.split(',') : null;
12            var linkText = trackingArr != null && trackingArr.length > 0 && trackingArr[0] != null ? trackingArr[0] : '';
13            var linkUrl = trackingArr != null && trackingArr.length > 0 && trackingArr[1] != null ?
14                ((trackingArr[1].indexOf('/') == 0 || trackingArr[1].indexOf('#') == 0) ? window.location.protocol + '//' + window.location.hostname + trackingArr[1] : trackingArr[1]) : '';
15            var linkSection = trackingArr != null && trackingArr.length > 0 && trackingArr[2] != null ? trackingArr[2] : 'header - interest drawer';
16            dataLayer.push({
17                event: navigationinteracttrackingeventname,
18                link_text: linkText,
19                link_url: linkUrl,
20                link_section: linkSection
21            });
22        }
23    });
24    $('.track_cta_click').click(function (e) {
25        window.dataLayer = window.dataLayer || [];
26        if (e.currentTarget.attributes != null && e.currentTarget.attributes.length > 0) {
27            var trackingVal = e.currentTarget.attributes["data-tracking-cta"].value;
28            var trackingArr = trackingVal != undefined ? trackingVal.split(',') : null;
29            var linkText = trackingArr != null && trackingArr.length > 0 && trackingArr[0] != null ? trackingArr[0] : '';
30            var linkUrl = trackingArr != null && trackingArr.length > 0 && trackingArr[1] != null ?
31                (trackingArr[1].indexOf('/') == 0 ? window.location.protocol + '//' + window.location.hostname + trackingArr[1] : trackingArr[1]) : '';
32            var linkSection = trackingArr != null && trackingArr.length > 0 && trackingArr[2] != null ? trackingArr[2] : 'header';
33            dataLayer.push({
34                event: ctaclicktrackingeventname,
35                link_text: linkText,
36                link_url: linkUrl,
37                link_section: linkSection
38            });
39        }
40    });
41    //This method is specific to handle address value as the value contains , already and we are using ,
42    //as separator for different values in data - tracking - cta attribute,
43    //so to avoid conflict we are replacing, with $ in address value and handling that in below method to replace $ back to,
44    //before pushing the value to dataLayer
45    $('.track_address_cta_click').click(function (e) {
46        window.dataLayer = window.dataLayer || [];
47        if (e.currentTarget.attributes != null && e.currentTarget.attributes.length > 0) {
48            var trackingVal = e.currentTarget.attributes["data-tracking-cta"].value;
49            var trackingArr = trackingVal != undefined ? trackingVal.split(',') : null;
50            var linkText = trackingArr != null && trackingArr.length > 0 && trackingArr[0] != null ? trackingArr[0] : '';
51            //replace all $ to , in address value
52            linkText = linkText.replace(/\$/g, ',');
53            var linkUrl = trackingArr != null && trackingArr.length > 0 && trackingArr[1] != null ?
54                (trackingArr[1].indexOf('/') == 0 ? window.location.protocol + '//' + window.location.hostname + trackingArr[1] : trackingArr[1]) : '';
55            var linkSection = trackingArr != null && trackingArr.length > 0 && trackingArr[2] != null ? trackingArr[2] : 'header';
56            dataLayer.push({
57                event: ctaclicktrackingeventname,
58                link_text: linkText,
59                link_url: linkUrl,
60                link_section: linkSection
61            });
62        }
63    });
64
65    $('.track_cta_hero_click').click(function (e) {
66        window.dataLayer = window.dataLayer || [];
67        if (e.currentTarget.attributes != null && e.currentTarget.attributes.length > 0) {
68            var trackingVal = e.currentTarget.attributes["dataTrackingCTA"].value;
69            var trackingArr = trackingVal != undefined ? trackingVal.split(',') : null;
70            var linkText = trackingArr != null && trackingArr.length > 0 && trackingArr[0] != null ? trackingArr[0] : '';
71            var linkUrl = trackingArr != null && trackingArr.length > 0 && trackingArr[1] != null ?
72                (trackingArr[1].indexOf('/') == 0 ? window.location.protocol + '//' + window.location.hostname + trackingArr[1] : trackingArr[1]) : '';
73            var linkSection = trackingArr != null && trackingArr.length > 0 && trackingArr[2] != null ? trackingArr[2] : 'header';
74            dataLayer.push({
75                event: ctaclicktrackingeventname,
76                link_text: linkText,
77                link_url: linkUrl,
78                link_section: linkSection
79            });
80        }
81    });
82});
83function trackVideoEvent(...eventData) {
84    window.dataLayer = window.dataLayer || [];
85    window.dataLayer.push({
86        event: videostarteventname,
87        video_provider: eventData[0],
88        video_url: eventData[1],
89    });
90}

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.