if (typeof (performance) !== 'undefined' && performance.mark) { performance.mark(markName); } } markPerformance('docStart'); var recordLifecycleEvents = true; function trackEvent(key, params) { if (!recordLifecycleEvents) { return; } var eventRequest = new XMLHttpRequest(); eventRequest.open('POST', 'https://events.api.copperstatesupplyinc.shop/api/client-event', true); eventRequest.withCredentials = true; eventRequest.setRequestHeader('accept', 'application/json, text/plain, */*'); eventRequest.setRequestHeader('content-type', 'application/json;charset=UTF-8'); eventRequest.send( JSON.stringify({ event_key: key, parameter_tokens: params, }) ); } trackEvent("retailers-html_init-view", ["web-visitor-server", "/", "HOME_FEED"]); if (document.readyState === "loading") { document.addEventListener('DOMContentLoaded', function (event) { trackEvent("retailers-resource_complete-view", ["web-visitor-server", "/", "HOME_FEED"]); }); window.addEventListener('load', function() { trackEvent("retailers-load_complete-view", ["web-visitor-server", "/", "HOME_FEED"]); }); } else if (document.readyState === "interactive") { trackEvent("retailers-resource_complete-view", ["web-visitor-server", "/", "HOME_FEED"]); window.addEventListener('load', function() { trackEvent("retailers-load_complete-view", ["web-visitor-server", "/", "HOME_FEED"]); }); } else { trackEvent("retailers-resource_complete-view", ["web-visitor-server", "/", "HOME_FEED"]); trackEvent("retailers-load_complete-view", ["web-visitor-server", "/", "HOME_FEED"]); } window.loadTimeInteractions = []; const captureLoadTimeInteraction = function(event) { window.loadTimeInteractions.push({ type: event.type, time: performance.now(), selector: event.target && event.target.tagName ? event.target.tagName.toLowerCase() + (event.target.getAttribute('data-test-id') ? '.' + event.target.getAttribute('data-test-id') : '') : 'unknown' }); }; window.startLoadTimeInteractionTracking = function() { var hasExistingListener = function(eventType) { var listeners = window.getEventListeners ? window.getEventListeners(window)[eventType] || [] : []; return listeners.some(function(l) { return l.listener === captureLoadTimeInteraction; }); }; pointerEvents.concat(keyboardEvents, inputEvents).forEach(function(eventType) { if (!hasExistingListener(eventType)) { window.addEventListener(eventType, captureLoadTimeInteraction); } }); }; window.stopLoadTimeInteractionTracking = function() { window.loadTimeInteractions = []; pointerEvents.concat(keyboardEvents, inputEvents).forEach(function(eventType) { window.removeEventListener(eventType, captureLoadTimeInteraction); }); }; var pointerEvents = ["click", "pointerdown"]; var keyboardEvents = ["keydown", "keyup"]; var inputEvents = ["input", "change"]; window.startLoadTimeInteractionTracking(); window.addEventListener('scroll', function() { window.mostRecentScrollTime = performance.now(); }); window.addEventListener('error', function (event) { var globalErrorEventMessage = "Empty error event"; if (event) { globalErrorEventMessage = event.message + " at " + event.filename + ":" + event.lineno + ":" + event.colno; } trackEvent("retailers-webretailerglobalerror-error", [globalErrorEventMessage]); }); document.onvisibilitychange = () => { if (document.visibilityState === "hidden") { const url = '/api/client-event'; const data = new Blob( [JSON.stringify({ event_key: 'sessions-session_abandoned-action_unknown', client_created_at: Date.now() })], { type: "application/json" } ); window.navigator.sendBeacon(url, data); } }; document.addEventListener('load', (event) => { if (event.target && event.target.tagName === "IMG") { event.target.faireLoadTimeStamp = event.timeStamp; } }, { capture: true } );