PageSourceSearch

https://www.gninsurance.com/wp-content/plugins/goal-tracker-ga/pub…/js/wp-goal-tracker-ga-public.js?ver=1.1.6

js gninsurance.com collected 2026-09-26 05:32:21 UTC 11,534 bytes, 305 lines download raw bytes

1var __assign = (this && this.__assign) || function () {
2    __assign = Object.assign || function(t) {
3        for (var s, i = 1, n = arguments.length; i < n; i++) {
4            s = arguments[i];
5            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6                t[p] = s[p];
7        }
8        return t;
9    };
10    return __assign.apply(this, arguments);
11};
12var gtgaMainJs = (function ($) {
13    'use strict';
14    var _this = this;
15    /**
16     * Binds Download Tracking
17     *
18     * @returns {undefined}
19     */
20    var VideoPercent = {
21        ZERO: 0,
22        TWENTYFIVE: 25,
23        FIFTY: 50,
24        SEVENTYFIVE: 75,
25        ONEHUNDRED: 100,
26    };
27    function elementAddedCallback(addedNode) {
28        checkVisibilityEvents();
29    }
30    var observer = new MutationObserver(function (mutationsList) {
31        mutationsList.forEach(function (mutation) {
32            if (mutation.type === 'childList') {
33                Array.prototype.forEach.call(mutation.addedNodes, function (addedNode) {
34                    if (addedNode.nodeType === Node.ELEMENT_NODE) {
35                        elementAddedCallback(addedNode);
36                    }
37                });
38            }
39        });
40    });
41    function getLinkClickParameters(event, url) {
42        var tmpURL = new URL(url);
43        var linkHostname = tmpURL.hostname;
44        var linkEvent = {
45            page_title: wpGoalTrackerGa.pageTitle,
46            link_url: url,
47            // page_location: window.location.href,
48            outbound: isLinkExternal(url),
49            link_domain: linkHostname,
50            link_text: $(event.target).text(),
51            link_classes: $(event.target).attr('class'),
52        };
53        return linkEvent;
54    }
55    var click_event = function (event) {
56        trackCustomEvent(this, event.data.eventName, event.data.props);
57        if ((typeof event.target.href !== 'undefined' &&
58            event.target.nodeName == 'A') ||
59            (typeof event.currentTarget.href !== 'undefined' &&
60                event.currentTarget.nodeName == 'A')) {
61            if ($(event.target).parent().attr('role') !== 'tab') {
62                handleLinks(this, event);
63            }
64        }
65    }; // End of click event function
66    function bindEmailLinksTracking() {
67        if (wpGoalTrackerGa.trackEmailLinks === '1') {
68            $('body').on('click', 'a[href^="mailto:"]', function (e) {
69                e.preventDefault();
70                var email = this.href.split(':').pop();
71                var page = getPageName();
72                var eventParameters = {
73                    page_title: page,
74                    email_address: email,
75                    page_location: window.location.href,
76                    link_text: $(e.target).text(),
77                    link_classes: $(e.target).attr('class'),
78                };
79                trackCustomEvent(this, 'email_link_click', eventParameters);
80                handleLinks(this, e);
81            });
82        }
83    }
84    function trackPageSpeed() {
85        if (window.performance &&
86            window.performance.getEntriesByType &&
87            wpGoalTrackerGa.pageSpeedTracking) {
88            var entries = window.performance.getEntriesByType('navigation');
89            var pageLoadTime = 0;
90            if (entries.length > 0) {
91                var navTiming = entries[0];
92                pageLoadTime = navTiming.loadEventEnd - navTiming.startTime;
93            }
94            if (pageLoadTime > 0) {
95                var pageLoadTimeSec = Math.round((pageLoadTime / 1000 + Number.EPSILON) * 100) / 100;
96                trackCustomEvent(this, 'page_load_time', {
97                    page_load_time: pageLoadTimeSec,
98                });
99            }
100        }
101    } // End of page speed event function
102    window.onload = function () {
103        if (wpGoalTrackerGa.pageSpeedTracking) {
104            setTimeout(function () {
105                trackPageSpeed();
106            }, 100);
107        }
108    };
109    var isLinkExternal = function (url) {
110        var query = new RegExp('//' + location.host + '($|/)');
111        if (url.substring(0, 4) === 'http') {
112            if (!query.test(url)) {
113                return true;
114            }
115        }
116        return false;
117    };
118    var link_track_external = function (event) {
119        var url = getUrl(event);
120        if (typeof url !== 'undefined' && url !== '') {
121            if (isLinkExternal(url)) {
122                link_track_all(event);
123            }
124        }
125    };
126    var link_track_external_new_tab = function (event) {
127        var url = getUrl(event);
128        if (isLinkExternal(url)) {
129            var eventParameters = getLinkClickParameters(event, url);
130            trackCustomEvent(this, 'link_click', eventParameters);
131        }
132    };
133    var link_track_all = function (event) {
134        var url = getUrl(event);
135        var hash = isJustHashLink(url);
136        if (typeof url !== 'undefined' &&
137            url !== '' &&
138            hash != '#' &&
139            $(this).parent().attr('role') !== 'tab') {
140            var eventParameters = getLinkClickParameters(event, url);
141            trackCustomEvent(this, 'link_click', eventParameters);
142            event.preventDefault();
143            if (typeof hash !== 'undefined' && hash !== '') {
144                window.location.hash = hash;
145            }
146            else {
147                setTimeout(function () {
148                    window.location.href = url;
149                }, 250);
150            }
151        }
152    };
153    var link_track_all_new_tab = function (event) {
154        var url = getUrl(event);
155        if (typeof url !== 'undefined' && url !== '') {
156            var eventParameters = getLinkClickParameters(event, url);
157            trackCustomEvent(this, 'link_click', eventParameters);
158        }
159    };
160    var handleLinks = function (self, event) {
161        event.preventDefault();
162        var link = getUrl(event);
163        if (link === '')
164            return;
165        var w;
166        var openInNewTab = isNewTab(self);
167        if (openInNewTab) {
168            w = window.open('', '_blank');
169        }
170        var hash = isJustHashLink(link);
171        if (typeof hash !== 'undefined' && hash !== '') {
172            window.location.hash = hash;
173        }
174        else if (window.location.href !== link) {
175            setTimeout(function () {
176                if (openInNewTab) {
177                    w.location.href = link;
178                }
179                else {
180                    window.location.href = link;
181                }
182            }, 250, w);
183        }
184    };
185    var getUrl = function (event) {
186        var url = '';
187        var $target = $(event.target);
188        var $link = $target.closest('a');
189        if ($link.length) {
190            var href = $link.attr('href');
191            if (href && href !== '#') {
192                url = $link.prop('href');
193            }
194        }
195        return url;
196    };
197    var isJustHashLink = function (url) {
198        if (url.indexOf('#') === 0) {
199            return url;
200        }
201        var currentUrl = new URL(window.location.href);
202        var targetUrl = new URL(url, currentUrl);
203        if (targetUrl.origin !== currentUrl.origin) {
204            return '';
205        }
206        if (targetUrl.pathname === currentUrl.pathname &&
207            targetUrl.search === currentUrl.search &&
208            targetUrl.hash !== '') {
209            return targetUrl.hash;
210        }
211        return '';
212    };
213    var isNewTab = function (self) {
214        var target = $(self).attr('target');
215        if (typeof target !== 'undefined' && target.trim() === '_blank') {
216            return true;
217        }
218        return false;
219    };
220    $(document).ready(function () {
221        var targetNode = document.body;
222        var config = { childList: true, subtree: true };
223        observer.observe(targetNode, config);
224        $(window).on('scroll', checkVisibilityEvents);
225        // We also want to check it when
226        checkVisibilityEvents();
227        if (wpGoalTrackerGa.trackEmailLinks) {
228            bindEmailLinksTracking();
229        }
230        // Bind link tracking events
231        if (wpGoalTrackerGa.trackLinks.enabled) {
232            if (wpGoalTrackerGa.trackLinks.type === 'all') {
233                $('body').on('click', "a:not([target~='_blank']):not(.video_popup):not(.dtq-video-popup-trigger):not(:has(.video_popup)):not(.video_popup *)", link_track_all);
234                $('body').on('click', "a[target~='_blank']:not(.video_popup):not(.dtq-video-popup-trigger):not(:has(.video_popup)):not(.video_popup *)", link_track_all_new_tab);
235            }
236            else if (wpGoalTrackerGa.trackLinks.type === 'external') {
237                $('body').on('click', "a:not([target~='_blank']):not(.video_popup):not(.dtq-video-popup-trigger):not(:has(.video_popup)):not(.video_popup *)", link_track_external);
238                $('body').on('click', "a[target~='_blank']:not(.video_popup):not(.dtq-video-popup-trigger):not(:has(.video_popup)):not(.video_popup *)", link_track_external_new_tab);
239            }
240        }
241        wpGoalTrackerGa.click.forEach(function (el) {
242            var selector = makeSelector(el);
243            $('body').on('click', selector, el, click_event);
244        });
245    });
246    function makeSelector(click_option) {
247        var selector = '';
248        if (click_option.selectorType === 'class') {
249            selector += '.';
250        }
251        else if (click_option.selectorType === 'id') {
252            selector += '#';
253        }
254        selector += click_option.selector;
255        return selector;
256    }
257    function checkVisibilityEvents() {
258        // TO DO this code can be simplified a lot. May be better to use
259        // $('element').visibility()
260        var ga_window = $(window).height();
261        var ga_visibility_top = $(document).scrollTop();
262        for (var i = 0; i < wpGoalTrackerGa.visibility.length; i++) {
263            if (!wpGoalTrackerGa.visibility[i].sent) {
264                // NB was unescapeChars( wpGoalTrackerGa.visibility[i].select)
265                var $select = $(makeSelector(wpGoalTrackerGa.visibility[i]));
266                wpGoalTrackerGa.visibility[i].offset = $select.offset();
267                if (wpGoalTrackerGa.visibility[i].offset &&
268                    ga_visibility_top + ga_window >=
269                        wpGoalTrackerGa.visibility[i].offset.top + $
269select.height()) {
270                    trackCustomEvent($select, wpGoalTrackerGa.visibility[i].eventName, wpGoalTrackerGa.visibility[i].props);
271                    wpGoalTrackerGa.visibility[i].sent = true;
272                }
273            }
274        }
275    } // End of bindVisibilityEvents
276    var trackCustomEventBasic = function (self, name, props) {
277        Object.keys(props).forEach(function (key) {
278            props[key] = prepareProps(self, props[key]);
279        });
280        gtag('event', name, __assign({}, props));
281    };
282    
283    function returnOriginalProp(self, prop) {
284        return prop;
285    }
286    function getPageName() {
287        if ('1' === wpGoalTrackerGa.isFrontPage) {
288            return 'Home';
289        }
290        else {
291            if (typeof wpGoalTrackerGa.pageTitle !== 'undefined') {
292                return wpGoalTrackerGa.pageTitle;
293            }
294        }
295        return '';
296    }
297    var trackCustomEvent = typeof trackCustomEventPro === 'function'
298        ? trackCustomEventPro
299        : trackCustomEventBasic;
300    var prepareProps = typeof get_placeholder === 'function'
301        ? get_placeholder
302        : returnOriginalProp;
303    return { isJustHashLink: isJustHashLink };
304})(jQuery);
305

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.