PageSourceSearch

https://odysseypets.com/about-us/

html odysseypets.com collected 2026-10-04 13:26:18 UTC 241,850 bytes, 3,100 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4    <link rel="preconnect" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/">
5            <link rel="preload" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/combined.min-v6.css" as="style">
6        <link rel="preload" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/js/jquery-cdn.min.js" as="script">
7        <link rel="preload" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/header.min.js" as="script">
8        <link rel="preload" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/custom.min-v9.js" as="script">
9             <!-- End Google Analytics -->
10            
10<script>(function(d){var s = d.createElement("script");s.setAttribute("data-account", "buNJbo9Fzs");s.setAttribute("src", "https://cdn.userway.org/widget.js");(d.body || d.head).appendChild(s);})(document)</script>
10
11
12        <noscript>Please ensure Javascript is enabled for purposes of <a href="https://userway.org">website accessibility</a></noscript>
13        <meta name="viewport" content="width=device-width, initial-scale=1"/>
14    <link rel="preconnect" href="https://ik.imagekit.io/0ofixtqpt/" crossorigin />
15
16    <link rel="preload" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/fonts/fontawesome-webfont.woff2" as="font"  type="font/woff2" />
17    <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
18    <noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css"></noscript>
19                <link rel="canonical" href="https://odysseypets.com/about-us" />
20                            <meta name="robots" content="index, follow">
21                    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
21<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1431907933",accountID:"3639234",trustKey:"3639234",xpid:"VwAEWFRQDBABUFBUAAYGUVIF",licenseKey:"NRJS-848b5ec7e91ef88ba3a",applicationID:"1416771764",browserID:"1431907933"};;/*! For license information please see nr-loader-spa-1.323.0.min.js.LICENSE.txt */
22(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.323.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
22e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof a.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},7485(e,t,r){"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},7560(e,t,r){"use strict";r.d(t,{N:()=>a,j:()=>c});var n=r(9119),i=r(944);const s=(0,r(6389).J)(e=>(0,i.R)(80,e));function a(e){if(!Array.isArray(e?.assets)||!e.assets.length)return;
22const t=e.assets.map(o).filter(Boolean);return t.length?{assets:t,scripts:t.filter(e=>e.isScript)}:void 0}function o(e){if(!e||"object"!=typeof e)return;const{matcher:t,type:r}=e;let i="string"==typeof t&&t.endsWith(".js");return void 0!==r&&(!function(e){return"script"===e||"asset"===e}(r)?s(r):i=function(e){return"script"===e}(r)),a=t,"[object RegExp]"===Object.prototype.toString.call(a)?{pattern:t,test:e=>(t.lastIndex=0,t.test((0,n.L)(e))),isScript:i}:"string"==typeof t&&t.length>0?{pattern:t,test:e=>(0,n.L)(e).includes(t),isScript:i}:void s(t);var a}function c(e,t,{scriptsOnly:r=!1}={}){if(!e||!t)return!1;return(r?e.scripts:e.assets).some(e=>e.test(t))}},5718(e,t,r){"use strict";r.d(t,{xo:()=>T,AZ:()=>v,cI:()=>g,Qr:()=>A,QL:()=>y});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=v(y())[0]}catch(e){u=v(e)[0]}const l=new Map;let f=[];const h=new WeakMap;function p(e){let t=h.get(e);return t||(t={weighedAssetUrls:new Set,recordManifestScriptWindow:(t,r)=>{t&&(e.scriptStart=e.scriptStart>0?Math.min(e.scriptStart,t):t),r&&(e.scriptEnd=e.scriptEnd>0?Math.max(e.scriptEnd,r):r)}},h.set(e,t)),t}function g(e){return l.get(e)}function m(e){const t=g(e);
22if(t)return t;const r=new o(e);if(l.set(e,r),l.size>1e3){const e=l.keys().next().value;l.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=m((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"))(e)){const t=m((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e}if(!f.length)return;const t=[];f.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),f=f.filter((e,r)=>!t.includes(r))})}).observe({type:"resource",buffered:!0})}function v(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function y(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function b(e,t){return(0,s.L)(e.name)===t}function E(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType,w(e,t)}function w(e,t){const r=(0,s.L)(t.name),{weighedAssetUrls:n}=p(e);n.has(r)||(n.add(r),e.totalWeight=(e.totalWeight||0)+(t.transferSize||0),"blocking"===t.renderBlockingStatus?e.renderBlocking=!0:"non-blocking"===t.renderBlockingStatus&&!0!==e.renderBlocking&&(e.renderBlocking=!1))}function R(e,t,r,n,i){if(w(e,t),"scripts"!==i&&"all"!==i)return;if("all"===i||r.isScript){const r=Math.floor(t.startTime),n=Math.floor(t.responseEnd);e.fetchStart=e.fetchStart>0?Math.min(e.fetchStart,r):r,e.fetchEnd=e.fetchEnd>0?Math.max(e.fetchEnd,n):n}if(r.isScript){const r=g((0,s.L)(t.name));if(r){const t=()=>{const{start:t,end:n}=r.script;p(e).recordManifestScriptWindow(t,n)};t(),!r.dom.end&&r.dom.value&&["load","error"].forEach(e=>r.dom.value.addEventListener(e,t,{once:!0}))}n.resolved||(e.asset=t.name,e.type=t.initiatorType,n.resolved=!0)}}function T(e,t){const r=t?.manifest;if(!r||!r.assets.length)return;const s={resolved:!1},a=new Set(r.assets);(n.gm.performance?.getEntriesByType("resource")||[]).forEach(r=>{const n=[...a].find(e=>e.test(r.name));n&&(R(e,r,n,s,t.timingMethod),a.delete(n))}),a.size&&function(e,t,r,s){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:n=>{const i=[...t].find(e=>e.test(n.name));return i&&(R(e,n,i,r,s),t.delete(i)),0===t.size}})}(e,a,s,t.timingMethod)}function A(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown",totalWeight:0,renderBlocking:void 0},a=y();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=v(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=g(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>b(e,c));if(l)E(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:r=>!!b(r,t)&&(E(e,r),!0)})}(r,c)}const h=r.correlation,m=!!t&&!!h?.claimedBy.has(t);h&&t&&h.claimedBy.add(t);const y=()=>{const e=h?.script.start;if(!m||!e)return!1;return r.registeredAt-e>1e4};let w=0,R=0;p(r).recordManifestScriptWindow=(e,t)=>{e&&(w=w>0?Math.min(w,e):e),t&&(R=R>0?Math.max(R,t):t)},Object.defineProperty(r,"scriptStart",d(()=>{const e=y()?r.registeredAt:h?.script.start??r.fetchEnd;return w>0?Math.min(e,w):e})),Object.defineProperty(r,"scriptEnd",d(()=>{const e=y()?r.registeredAt:h?.script.end??r.registeredAt;return R>0?Math.max(e,R):e}))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>m,B5:()=>g,K6:()=>u,M$:()=>
22o,Ms:()=>d,NG:()=>c,Ux:()=>h,YA:()=>p,yx:()=>l});var n=r(5718),i=r(7560),s=r(9119),a=r(9232);function o(e){return e?.type===a.f.MFE}function c(e,t){if(!y(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function d(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function u(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=(0,s.L)(e),a=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!1}):!!t.metadata.timings?.asset&&(0,s.L)(t.metadata.timings.asset)===n});return f(a).map(e=>e.metadata.target)}function l(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!0}):!!t.metadata.timings?.asset?.endsWith(e)});return f(n).map(e=>e.metadata.target)}function f(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}function h(e,t){return v(t)?o(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function p(e,t){return g(e,t)?{"child.id":e.id,"child.type":e.type,...h(void 0,t)}:{}}function g(e,t){return o(e)&&!!v(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function m(e){if(!e?.runtime)return[];if(!y(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...l(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function v(e){return 2===e?.harvestEndpointVersion}function y(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}
22(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
22;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},3962(e,t,r){"use strict";const n=r(860).K7.softNav;r.d(t,["O2",0,{INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},"OV",0,"popstate","Qu",0,{INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},"TZ",0,n,"ih",0,{IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"},"pP",0,"initialPageLoad","tC",0,["click","keydown","submit"]])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","hw",0,"api-ixn-","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({212:"nr-spa-compressor",238:"nr-spa-iframe-message-handler",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.323.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.323.0.PROD:";r.l=(n,i,s,a)=>
22{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={478:"sha512-ORjtmy+nQMgxbu0os8+oTRa5sPzbinyuWSvpZrrstVLIaHofRRlfODdH+oUmkIgeQpM+vPf3vG/4RzvCsFVh1A==",249:"sha512-o7+K6xC0z3TqynjVxpd+jgiSgqy8rrPeRcUSqt5J0Rqg5Su5CycLMYfpwiM3WBCHiNDrG5aZoXJQ6HRc335XYQ==",212:"sha512-kRvBt1IYQDBnClTEWNaE8sDFqbXXM3Vdyf972Uf4MFbJxl7u3KmdO+jdB1H4achPEoT9YtNXHswaESey6sCH0A==",238:"sha512-U5EGmyYbFVR2UMNAuZJ7fTgVVtPa5b8RPMySDwXo7z3frRdkUJ2x1VAQTLQCeBab8VlGVGRV8FiSHIn/pwN72A=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={38:0,788:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.323.0.PROD"]=self["webpackChunk:NRBA-1.323.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
22ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var w=r(9232);var R=r(7836),T=r(3241);const A={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var S=r(9908),x=r(9752);function O(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,A)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:w.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=R.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(x.Pl)&&(0,S.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var _=r(1863),k=r(4261),N=r(1738);var L=r(1687),M=r(4234),P=r(5289),I=r(5270),j=r(7767),C=r(6389),D=r(7699);const B=new WeakSet,H=new WeakMap;class W extends M.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,C.J)(()=>{(0,L.Ak)(e,this.featureName),t()}))}):(0,L.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(H.has(e))return H.get(e);const i=(async()=>
22{if((0,j.V)(e.init))try{const{setupAgentSession:t}=await r.e(478).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,S.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(238).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(478).then(r.bind(r,6589)),r.e(478).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();H.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,P.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,I.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!B.has(e)&&(B.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}O(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var U=r(6630);class K extends W{static featureName=U.T;constructor(e){var t;super(e,U.T),this.setupInspectionEvents(),t=e,(0,N.Y)(k.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,S.p)("api-"+k.Fw,[(0,_.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(478).then(r.bind(r,908)):r.e(478).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,P.sB)(t=>{e(t,"DOMContentLoaded")}),(0,P.GG)(t=>{e(t,"load")}),(0,P.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class F extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(K),O(this,e,e.loaderType||"agent"),t=this,(0,N.Y)(k.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,N.U)(t,e,r,k.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,N.Y)(k.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,S.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,N.U)(e,"enduser.id",t,k.Dl,!0)},e)}(this),function(e){(0,N.Y)(k.nb,function(t){if("string"==typeof t||null===t)return(0,N.U)(e,"application.version",t,k.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,N.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,N.Y)(k.Pv,function(t=!0){if("boolean"==typeof t){if((0,S.p)("api-"+k.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,S.p)("docHidden",[(0,_.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,S.p)("winPagehide",[(0,_.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(478).then(r.bind(r,9917))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(478).then(r.bind(r,6555)))}}var Z=r(6774),J=r(3878),X=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,X.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,_.t)()){"string"==typeof e&&(e=new Error(e)),(0,S.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,_.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,_.t)()){(0,S.p)("api-"+k.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,_.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
22null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,S.p)("api-"+k.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,_.t)()){(0,S.p)("api-"+k.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,_.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,_.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,_.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(7560),Ee=r(9119);const we=["entry","scripts","all"],Re=["name","id","type"],Te=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Ae={experimental:(0,C.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,C.J)(()=>(0,l.R)(55)),invalidTarget:(0,C.J)(e=>(0,l.R)(48,e)),deregistered:(0,C.J)(()=>(0,l.R)(68)),invalidTimingMethod:(0,C.J)(e=>(0,l.R)(80,e)),duplicateName:(0,C.J)(e=>(0,l.R)(81,e)),duplicateId:(0,C.J)(e=>(0,l.R)(82,e))};function Se(e){(0,N.Y)(k.eY,function(t){return xe(e,t)},e)}function xe(e,r){Ae.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=w.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:w.f.BA},r.manifest=(0,be.N)(r.manifest),void 0===r.timingMethod||we.includes(r.timingMethod)||(Ae.invali
22dTimingMethod(r.timingMethod),r.timingMethod=void 0);const n=(0,le.Qr)(r);r.manifest&&(0,le.xo)(n,r);const i=ve(r,n),s=(0,Ee.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||w.f.BA,"parent.id":r.parent?.id})}),Object.entries(r.tags).forEach(([e,t])=>{Re.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Ae.disabled),u(r.id)&&u(r.name)||d(()=>Ae.invalidTarget(r)),c.forEach(e=>{try{const{name:t,id:n}=e.metadata.target;t===r.name&&n!==r.id&&Ae.duplicateName(r),n===r.id&&t!==r.name&&Ae.duplicateId(r)}catch(e){}});const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Ae.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,_.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,Ee.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
22imeToRegister:n.registeredAt,totalWeight:n.totalWeight,...void 0!==n.renderBlocking&&{renderBlocking:n.renderBlocking},...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==xe)return;const s=f.metadata.events.latestTimestamp??(0,_.t)();f.metadata.events.latestTimestamp=void 0;const a=Te.get(r)||"unknown";(0,S.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class Oe extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,N.Y)(k.o5,(e,r)=>ie(e,r,t),t),function(e){(0,N.Y)(k.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,N.Y)(k.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Se(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,S.p)("ierr",[ee(t),(0,_.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,S.p)("err",[te(t),(0,_.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,S.p)("err",[re(t),(0,_.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(478).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var _e=r(8990);let ke=1;function Ne(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,_e.I)(e,"nr@id",function(){return ke++})}function Le(e){if("string"==typeof e)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,X.A)(e).length}catch(e){return}}}var Me=r(8139),Pe=r(3434),Ie=r(5732);const je={},Ce=["open","send","setRequestHeader"];function De(e,t){var r=e||R.ee;const n=function(e){return(e||R.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(je[n.debugId]++)return n;je[n.debugId]=1,(0,Me.u)(r,t);var i=(0,Pe.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,Ie.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,J.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Be="fetch-",He=Be+"body-",We=["arrayBuffer","blob","json","text","formData"],Ue=g.gm.Request,Ke=g.gm.Response,Fe="prototype";const Ve={};function ze(e,t){const r=function(e){return(e||R.ee).get("fetch")}(e);if(!(Ue&&Ke&&g.gm.fetch))return r;if(Ve[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,Ie.$5)(t);var o;r.emit(i+"before-start",[e],n),n[R.P]&&n[R.P].dt&&(o=n[R.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
22return Ve[r.debugId]=1,We.forEach(e=>{n(Ue[Fe],e,He),n(Ke[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s,a=(0,ye.ZF)(),o=(0,ye.el)(),c=Date.now();this.agentRef.runtime?.timeKeeper?.ready&&(s=Math.floor(this.agentRef.runtime.timeKeeper.correctAbsoluteTimestamp(c)));var d={spanId:a,traceId:o,timestamp:c,timestampCorrected:s};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(d.traceContextParentHeader=this.generateTraceContextParentHeader(a,o),d.traceContextStateHeader=this.generateTraceContextStateHeader(a,s??c,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(d.newrelicHeader=this.generateTraceHeader(a,o,s??c,r,n,i)),d}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ge.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(e),this.handler=(e,t,r,n)=>(0,S.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){O(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Le(i);a&&(n.txSize=a)}this.startTime=(0,_.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
22!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(rt,[e])}catch(e){}}};for(var o=0;o<Xe;o++)t.addEventListener(Je[o],this.listener,(0,J.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function h(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,_.t)()}function v(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof et&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,_.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,_.t)()-this.xhrCbStart,this.onload,t],t)}function w(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,Ge.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function R(e,t){this.params={},this.metrics={},this.startTime=(0,_.t)(),this.dt=t;let[r,n={}]=e;$e(this,Ze(r));const i=(""+(r&&r instanceof Qe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Le(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,_.t)(),this.params||(this.params={}),(0,Ye.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>x(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Le(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(rt,[e])}).finally(()=>{n()}):n()}function A(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Xe;t++)e.removeEventListener(Je[t],this.listener,!1);if(t.aborted)return;if((0,Ye.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):O(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Le(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(rt,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>x(i,this,e))}function x(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function O(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Le(e.response):"text"===r||""===r||void 0===r?Le(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(tt)>=0){var s=n.getResponseHeader(tt);s&&((0,S.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",w),r.on("fetch-start",R),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(478).then(r.bind(r,3845)))}}const it={},st=["pushState","replaceState"];function at(e,t){const r=function(e){return(e||R.ee).get("history")}(e);return!g.RI||it[r.debugId]++||(it[r.debugId]=1,(0,Pe.YM)(r,void 0,t).inPlace(window.history,st,"-")),r}var ot=r(3738);function ct(e){(0,N.Y)(k.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,S.p)(q.XG,[k.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:k.BL,start:r,origin:"nr"}),(0,S.p)("api-"+k.hG,[n,k.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:dt,bD:ut,d3:lt,Kp:ft,TZ:ht,Lc:pt,uP:gt,Rz:mt}=ot;class vt extends W{static featureName=ht;constructor(e){var n;super(e,ht),n=e,(0,N.Y)(k.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,S.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),ct(e);
22if(!(0,j.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;at(i,e),this.eventsEE=(0,Me.u)(i,e),this.eventsEE.on(gt,function(e,t){this.bstStart=(0,_.t)()}),this.eventsEE.on(pt,function(e,r){(0,S.p)("bst",[e[0],r,this.bstStart,(0,_.t)()],void 0,t.K7.sessionTrace,i)}),i.on(mt+lt,function(e){this.time=(0,_.t)(),this.startPath=location.pathname+location.hash}),i.on(mt+ft,function(e){(0,S.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,S.p)(dt,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ut,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(478).then(r.bind(r,6974)),{resourceObserver:s})}}var yt=r(733),bt=r(6344);class Et extends W{static featureName=bt.TZ;#i;recorder;constructor(e){var n;let i;super(e,bt.TZ),n=e,(0,N.Y)(k.CH,function(){(0,S.p)(k.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,N.Y)(k.Tb,function(){(0,S.p)(k.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,yt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,I.SR)(e.init)&&this.ee.on(k.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(bt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(478).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,S.p)(bt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,I.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(478),r.e(249)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,bt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(bt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var wt=r(3962);class Rt extends W{static featureName=wt.TZ;constructor(e){if(super(e,wt.TZ),function(e){const r=e.ee.get("tracer");function n(){}(0,N.Y)(k.dT,function(e){return(new n).get("object"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var s={},a=this,o="function"==typeof i;return(0,S.p)(q.xV,["API/createTracer/called"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((o?"":"no-")+"fn-start",[(0,_.t)(),a,o],s),o)try{return i.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw r.emit("fn-err",[arguments,this,t],s),t}finally{r.emit("fn-end",[(0,_.t)()],s)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach(r=>{N.Y.apply(this,[r,function(){return(0,S.p)(k.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,N.Y)(k.PA,function(){(0,S.p)(k.hw+"routeName",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!g.RI||!(0,i.dV)().o.MO)return;const n=at(this.ee,e);try{this.removeOnAbort=new AbortController}catch(e){}wt.tC.forEach(e=>{(0,J.sp)(e,e=>{c(e)},!0,this.removeOnAbort?.signal)}
22);const s=()=>(0,S.p)("newURL",[(0,_.t)(),""+window.location],void 0,this.featureName,this.ee);n.on("pushState-end",s),n.on("replaceState-end",s),(0,J.sp)(wt.OV,e=>{c(e),(0,S.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let a=!1;const o=new((0,i.dV)().o.MO)((e,t)=>{a||(a=!0,requestAnimationFrame(()=>{(0,S.p)("newDom",[(0,_.t)()],void 0,this.featureName,this.ee),a=!1}))}),c=(0,C.s)(e=>{"loading"!==document.readyState&&((0,S.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=>r.e(478).then(r.bind(r,4393)),{domObserver:o})}}var Tt=r(981);const At={},St=new Set;function xt(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class Ot{constructor(e,t){this.timestamp=(0,_.t)(),this.currentUrl=(0,Ee.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,Ee.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class _t extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,N.Y)(k.hG,(e,t)=>ce(e,t,c),c),function(e){(0,N.Y)(k.fF,(t,r)=>ue(t,r,e),e)}(e),ct(e),Se(e),function(e){(0,N.Y)(k.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(At[r.debugId]++)return r;At[r.debugId]=1,(0,V.G)(()=>{const e=(0,_.t)();St.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
22class n extends WebSocket{static name=Tt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new Ot(e[0],e[1]),this.targets=(0,Ie.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,_.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),St.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=xt(e.data);this.nrData.messageOrigin??=(0,Ee.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,_.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,St.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=xt(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,S.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s){if("function"==typeof g.gm.ReportingObserver){const l=new g.gm.ReportingObserver(e=>{e.forEach(e=>{(0,S.p)("spv",[kt(e),(0,_.t)()],void 0,t.K7.genericEvents,this.ee)}),l.disconnect()},{types:["csp-violation"],buffered:!0});l.observe()}g.gm.addEventListener("securitypolicyviolation",e=>{(0,S.p)("spv",[kt(e),e.timeStamp],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal))}if(g.RI){if(ze(this.ee,e),De(this.ee,e),d=at(this.ee,e),e.init.user_actions.enabled){function f(t){const r=(0,Ge.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function h(){d.emit("navChange")}o.Zp.forEach(e=>(0,J.sp)(e,e=>(0,S.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
22h(e=>{const t=(0,C.s)(e=>{(0,S.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,J.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{f(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!f(Ze(e[0]))&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",h),d.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,J.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",h,(0,J.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,S.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(478).then(r.bind(r,8019))):this.deregisterDrain()}}function kt(e){const t=e.body??e;return{blockedUrl:t.blockedURL??e.blockedURI,documentUrl:t.documentURL??e.documentURI,effectiveDirective:t.effectiveDirective,originalPolicy:t.originalPolicy,sourceFile:t.sourceFile,statusCode:t.statusCode,lineNumber:t.lineNumber,columnNumber:t.columnNumber,disposition:"reporting"===t.disposition?"report":t.disposition,sample:t.sample,referrer:t.referrer}}var Nt=r(2646);const Lt=new Map;function Mt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||R.ee).get("logger")}(e),o=(0,Pe.YM)(a,void 0,s),c=new Nt.y(R.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Pe.Jt]||t[r];return Lt.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>Lt.get(d),void 0,!0),a}var Pt=r(1910);class It extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,N.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,N.Y)(k.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Mt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Se(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Pt.i)(g.gm.console[t]),Mt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(478).then(r.bind(r,5288)))}}new F({features:[nt,K,G,vt,Et,Y,Oe,_t,It,Rt],loaderType:"spa"})})()})();</script>
22
23
24    <meta name="csrf-token" content="aMs4905sIODwDwCsaEl81FB2PmIzCIZXT3S4zXew"/>
25    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
26    
27        <meta name="title" content="About Odyssey Pets In Dallas"/>
28        <meta name="description" content="Read more about Odyssey Pets in Dallas. We care about pets in our local community and are here to help pet parents make the best decisions for their best when it comes to both nutrition &amp; care."/>
29        <!-- FB Tags -->
30    <meta property="og:type" content="website">
31    <meta property="og:title" content="About Odyssey Pets In Dallas">
32    <meta property="og:url" content="https://odysseypets.com/about-us/">
33    <meta property="og:description" content="Read more about Odyssey Pets in Dallas. We care about pets in our local community and are here to help pet parents make the best decisions for their best when it comes to both nutrition &amp; care.">
34    <meta property="og:image" content="https://ik.imagekit.io/0ofixtqpt/488605/front1.JPG"/>
35
36
37    <!-- Google+ Tag -->
38    <meta itemprop="image" content="https://ik.imagekit.io/0ofixtqpt/488605/front1.JPG"/>
39
40
41    
42
43
44                                                                                                                                                                                                                                                                                                                                                                <title>About Odyssey Pets In Dallas</title>
45
46    
47    
47<script src="https://cdn.franpos.com/customer-contents/libs/franpos_loyalty_form_popup.js" data-form-url="https://my.franpos.com/LoyaltySignup/WDU4Z3FldEcvUGNqOEFnelJlOXN6dz090" data-delay="5000" data-heading="Join Our Newsletter!" data-title-color="#ffffff" data-title-bg="#016600" data-backdrop-color="#00000033" data-shown-key="newsletterPopupShown" defer ></script>
47
48    <!-- Stylesheets
49   ============================================= -->
50<link rel="alternate" href="https://odysseypets.com/about-us/" hreflang="en-us"/>
51
52<link rel="preload" href="https://fonts.googleapis.com/css?family=Antonio:300,400,500,600,700|Archivo+Narrow:300,400,500,600,700&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'">
53<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Antonio:300,400,500,600,700|Archivo+Narrow:300,400,500,600,700&display=swap"></noscript>
54
55<style type="text/css">
56    header#header *:not(i):not(.fa) {
57        font-family: "Antonio" !important;
58    }
59
60    h1, h2, h3, h4, h5, h6 {
61        font-family: "Antonio" !important;
62    }
63
64    body:not(i):not(header):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(.fa) {
65        font-family: "Archivo Narrow" !important;
66    }
67    .title-transform-none h2 {
68        text-transform: none !important;
69    }
70</style>
71
72<script type="text/javascript">var GET_LOCATION = "";</script>
vendor: 1 bytes, line 72
72
73<script type="text/javascript">var locationCount = "1";</script>
vendor: 1 bytes, line 73
73
74<script type="text/javascript">let auto_redirect = "0";</script>
74
75    <link rel="stylesheet" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/combined.min-v6.css" defer/>
76    
76<script type="text/javascript" src="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/js/jquery-cdn.min.js"></script>
76
77    
77<script type="text/javascript" src="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/header.min.js" defer></script>
77
78    
78<script type="text/javascript" src="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/custom.min-v9.js" defer></script>
78
79
80<!-- Preconnect and DNS Prefetch for External Services -->
81<link rel="dns-prefetch" href="//www.google.com">
82<link rel="dns-prefetch" href="//static.elfsight.com">
83<link rel="preconnect" href="https://fonts.googleapis.com" crossorigin>
84<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
85
86<!-- Google reCAPTCHA (Enterprise) -->
vendor: 87 bytes, lines 86-90
86
87<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
88
89
90
91<!-- Elfsight Widget -->
92<script src="https://static.elfsight.com/platform/platform.js" data-use-service-core defer></script>
92
93
94<!-- Google Fonts -->
95<link rel="preload" href="https://fonts.googleapis.com/css2?family=Noto+Sans&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'">
96<noscript><link href="https://fonts.googleapis.com/css2?family=Noto+Sans&display=swap" rel="stylesheet"></noscript>
97
98<!-- Viewport Meta -->
99<meta name="viewport" content="width=device-width, initial-scale=1">
100
101<!-- Preload and Styles -->
102<link rel="preload" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/custom.compile.min-v11.css" as="style">
103<link rel="stylesheet" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/custom.compile.min-v11.css">
104
105
106    
106<script>
107        (function(){
108            const runAnalytics = function(id) {
109                const s = document.createElement('script');
110                s.src = `https://www.googletagmanager.com/gtag/js?id=${id}`;
111                s.async = true;
112                document.head.appendChild(s);
113
114                window.dataLayer = window.dataLayer || [];
115                function gtag(){ dataLayer.push(arguments); }
116
117                gtag('js', new Date());
118                gtag('config', id);
119            };
120
121            const id = "G-WJZWVPJWQB";
122            if (id) {
123                (window.requestIdleCallback || function(cb){ setTimeout(cb, 300); })(function() {
124                    runAnalytics(id);
125                });
126            }
127        })();
128    </script>
128
129
130    
130<script>
131        (window.requestIdleCallback || function(cb){ setTimeout(cb, 300); })(function(){
132            !function(f,b,e,v,n,t,s){
133                if(f.fbq) return;
134                n = f.fbq = function(){
135                    n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);
136                };
137                if(!f._fbq) f._fbq = n;
138                n.push = n;
139                n.loaded = !0;
140                n.version = '2.0';
141                n.queue = [];
142                t = b.createElement(e); t.async = true;
143                t.src = v;
144                s = b.getElementsByTagName(e)[0];
145                s.parentNode.insertBefore(t,s);
146            }(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js');
147
148            fbq('init', '2983775221638716');
149            fbq('track', 'PageView');
150        });
151    </script>
151
152    <noscript>
153        <img height="1" width="1" style="display:none"
154             src="https://www.facebook.com/tr?id=2983775221638716&ev=PageView&noscript=1"/>
155    </noscript>
156
157
158<!-- site level css start -->
159    <style type="text/css">
160        .service-link-color h2 {
161color: #016600 !important;
162}    </style>
163<!-- site level css end -->
164
165<script type="application/ld+json">
166{
167    "@context": "http://schema.org/",
168    "@type": "WebSite",
169    "name": "Odyssey Pets",
170  "url": "https://odysseypets.com"
171}
172
173</script>
173<script type="application/ld+json">
174{
175    "@context": "http://schema.org",
176    "@type": "PetStore",
177    "name": "Odyssey Pets",
178  "image": "https://ik.imagekit.io/0ofixtqpt/488605/front1.JPG",
179  "@id": "",
180  "url": "https://odysseypets.com",
181  "telephone": "9724071166",
182  "priceRange": "$$$",
183  "address": {
184    "@type": "PostalAddress",
185    "streetAddress": "14999 Preston Rd",
186    "addressLocality": "Dallas",
187    "addressRegion": "TX",
188    "postalCode": "75254",
189    "addressCountry": "US",
190    "description" : "Read more about Odyssey Pets in Dallas. We care about pets in our local community and are here to help pet parents make the best decisions for their best when it comes to both nutrition &amp; care."
191  },
192      "geo": {
193      "@type": "GeoCoordinates",
194      "latitude": 32.9519933,
195    "longitude": -96.8048136
196    },
197        "openingHoursSpecification": [{"@type":"OpeningHoursSpecification","dayOfWeek":"Monday","opens":"07:30","closes":"19:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Tuesday","opens":"07:30","closes":"19:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Wednesday","opens":"07:30","closes":"19:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Thursday","opens":"07:30","closes":"19:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Friday","opens":"07:30","closes":"19:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Saturday","opens":"07:30","closes":"19:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Sunday","opens":"11:00","closes":"18:00"}],
198    "sameAs": ["https://maps.app.goo.gl/z1HrjJj2QTakFJPw7","https://www.facebook.com/odysseypets
198/","https://maps.app.goo.gl/z1HrjJj2QTakFJPw7","https://www.instagram.com/odysseypets/"],
199    "aggregateRating": {
200      "@type": "AggregateRating",
201      "ratingValue": 5,
202    "reviewCount": 5
203    },
204    "review": [
205        {
206        "@type": "Review",
207        "datePublished" : "2026-09-04",
208        "reviewBody": "Amazing little pet store. I’m one of those psycho pet owners and I worked in Vet hospitals when I was younger so have higher standards and would trust my dog baby with thier staff. I’m mostly in there for DFWAPC meetings as I don’t live close so mostly get the pleasure of harrassing Miles and enjoying their fish and plant department but every staff member has a true love for animals is knowledgable, helpful, courteous and not afraid to say idk and ask another employee (one of my biggest pet peeves when people fake knowledge)",
209        "author": {
210            "@type": "Person",
211            "name": "T Wilson"
212          },
213        "reviewRating": {
214            "@type": "Rating",
215            "worstRating": "1",
216            "bestRating": "5",
217            "ratingValue": "5"
218         }
219    },        {
220        "@type": "Review",
221        "datePublished" : "2026-08-28",
222        "reviewBody": "Great products. Great service. Very knowledgeable employees! This place is especially great for fish, if you're interested in that. I highly recommend Odyssey pets!",
223        "author": {
224            "@type": "Person",
225            "name": "Michael Said"
226          },
227        "reviewRating": {
228            "@type": "Rating",
229            "worstRating": "1",
230            "bestRating": "5",
231            "ratingValue": "5"
232         }
233    },        {
234        "@type": "Review",
235        "datePublished" : "2026-08-01",
236        "reviewBody": "The best by far! People who are knowledgeable, approachable. They carry only transparent, healthy brands of dog and cat food. Great aquarium resource as well. Support a locally owned small business! Odyssey Pets is the best!",
237        "author": {
238            "@type": "Person",
239            "name": "Shel Mulry"
240          },
241        "reviewRating": {
242            "@type": "Rating",
243            "worstRating": "1",
244            "bestRating": "5",
245            "ratingValue": "5"
246         }
247    },        {
248        "@type": "Review",
249        "datePublished" : "2026-08-01",
250        "reviewBody": "Been going there for 15 years because the groomers are kind and gentle to my 2 boys Ollie and Dickens. Great staff and clean boarding area. Highly recommend.",
251        "author": {
252            "@type": "Person",
253            "name": "Bob “USMCVet1985”"
254          },
255        "reviewRating": {
256            "@type": "Rating",
257            "worstRating": "1",
258            "bestRating": "5",
259            "ratingValue": "5"
260         }
261    },        {
262        "@type": "Review",
263        "datePublished" : "2026-07-24",
264        "reviewBody": "I purchased my Rummy Nose Tetras from Odyssey Pets. I stopped in, they only had a couple. Gentlemen gave me Miles card and told me to email him. Miles was great! He ordered me 20 Rummy Nose Tetras and I picked them up a week later. Video attached is after having them for 2 weeks. They are all healthy, happy, schooling and a  beautiful addition to my 75 gallon. Thank you Miles and everyone at Odyssey Pets. This was my 1st purchase, but definitely not my last! ❤️",
265        "author": {
266            "@type": "Person",
267            "name": "MamaKimbo75"
268          },
269        "reviewRating": {
270            "@type": "Rating",
271            "worstRating": "1",
272            "bestRating": "5",
273            "ratingValue": "5"
274         }
275    }        ]
276    }
277
278</script>
278<!-- Document Title
279============================================= -->
280                                    <link rel="shortcut icon" href="https://ik.imagekit.io/0ofixtqpt/5090102/fav.png">
281                            <style>
282    .mobile_carousel {
283        background-color: #016600;
284    }
285
286    .cust-carousel {
287        background: #016600;
288    }
289
290    #return-to-top {
291        background-color: #016600;
292    }
293
294    .fa-bars {
295        color: #016600 !important;
296    }
297
298    .header-icons-span, .portfolio-filter li.activeFilter a, .portfolio-shuffle:hover {
299        background-color: #016600;
300    }
301
302    .fa-paw, .fa-car {
303        color: #016600 !important;
304    }
305
306    a.all-brands, .share-btn {
307        background-color: #016600  !important;
308    }
309
310    button.contact-btn, a.contact-btn, .subscribe-btn {
311        background-color: #016600  !important;
312    }
313
314    .pro_btn, .icon-line-heart, .icon-line-power {
315        background-color: #016600  !important;
316    }
317
318    .cta-widget-btn {
319        background-color: #016600  !important;
320    }
321
322    #result .footer-custom-icon {
323        color: #016600;
324    }
325
326    #gotoTop:hover {
327        background-color: #016600  !important;
328    }
329
330    .owl-carousel .owl-nav [class*=owl-]:hover {
331        background-color: #1bc110  !important;
332        color: #fff !important;
333    }
334    .owl-carousel .owl-nav [class*=owl-]{
335        background-color: #016600  !important;
336        color: #fff !important;
337    }
338
339    .feature-box.fbox-plain .fbox-icon i {
340        color: #016600  !important;
341    }
342
343    #top-bar {
344        background-color: #016600  !important;
345    }
346
347    .brand-panel-heading {
348        background-color: #016600  !important;
349    }
350
351    .event-a {
352        color: #016600  !important;
353    }
354
355    .event-a:hover {
356        color: #1bc110  !important;
357    }
358
359    .about-a:hover {
360        color: #016600  !important;
361    }
362
363    .portfolio-overlay a:hover {
364        color: #016600  !important;
365    }
366
367    .tag-a {
368        color: #016600  !important;
369    }
370
371    .tag-a:hover {
372        color: #016600  !important;
373    }
374
375    .loc-li:hover {
376        background-color: #016600  !important;
377    }
378
379    .pagination > li > a {
380        color: #016600  !important;
381    }
382
383    .pagination > li > a:hover {
384        color: #016600  !important;
385    }
386
387    .pagination > .active > span {
388        background-color: #016600  !important;
389        border-color: #016600  !important;
390    }
391
392    .about-us-a {
393        color: #016600  !important;
394    }
395
396    .about-us-a:hover {
397        color: #016600  !important;
398    }
399
400    #header-wrap .container-fluid{
401        background-color: #fff !important;
402    }
403
404    .review-a{
405        color: #016600  !important;
406        cursor: pointer;
407        font-weight: 400;
408    }
409
410    .review-a:hover{
411        color: #016600  !important;
412    }
413
414                .dark #primary-menu ul ul li{
415        width: initial !important;
416        text-align: left !important;
417    }
418    /*#primary-menu ul ul:not(.mega-menu-column){*/
419    /*    left: 0 !important;*/
420    /*    right: 0 !important;*/
421    /*}*/
422    
423    
424             #primary-menu ul ul:not(.mega-menu-column) {
425            border-top: 2px solid #016600  !important;
426        }
427        .dark #primary-menu:not(.not-dark) ul ul, #primary-menu.dark ul ul {
428            border-top-color: #016600  !important;
429        }
430        #primary-menu ul li>a {
431            color: #2b2b2b !important;
432        }
433
434        #primary-menu ul li>a:hover {
435            color: #2b2b2b !important;
436        }
437
438        .dark #primary-menu:not(.not-dark) ul ul, #primary-menu ul ul:not(.mega-menu-column) {
439            background-color: #016600 !important;
440            border-color: #016600 !important;
441        }
442
443        .dark #primary-menu:not(.not-dark) ul ul li:hover > a{
444            background-color:  !important;
445            border-color:  !important;
446        }
447
448        .dark #primary-menu:not(.not-dark) ul ul li>a {
449            color: #ffffff !important;
450        }
451
452        .dark #primary-menu:not(.not-dark) ul ul li>a:hover {
453            color:  !important;
454        }
455
456        #primary-menu ul li .mega-menu-content ul li.menu-item.sub-menu:hover{
457            background-color: unset !important;
458            border-color: unset !important;
459        }
460
461        #primary-menu ul li .mega-menu-content ul li.menu-item.sub-menu ul li:hover{
462            background-color: unset !important;
463            border-color: unset !important;
464            color: #000000 !important;
465        }
466                .anc_subscription_description{
467            margin-top: 8px !important;
468        }
469        .more_anc_subsc_desc{
470            margin-top: 0px !important;
471            margin-bottom: 10px !important;
472        }
473        #anc_text {
474            margin-right: 70px !important;
475            margin-left: 70px !important;
476        }
477        .announcement_subscription_close{
478            position: absolute;
479            right: 0 !important;
480            top: 0 !important;
481            margin-top: 0px !important;
482            margin-right: 0px !important;
483        }
484
485        .locationBrd{
486        border-left: 8px solid #016600 !important;
487    }
488    .location-border span{
489        color: #016600 !important;
490    }
491    .location-border:hover{
492        background-color: #016600 !important;
493    }
494    .location-border:hover .location-drawer-business{
495        color: #ffffff !important;
496    }
497    .location-border:hover span{
498        color: #ffffff !important;
499    }
500    .location-border span.drawer_delivery{
501        color: #000000 !important;
502    }
503    /* search bar style */
504    .ecwid-search-widget__input{
505        border: 1px solid #016600 !important;
506        height: 3.2em !important;
507    }
508    .ecwid-search-widget__btn{
509        height: 3.2em !important;
510        border: 1px solid #016600 !important;
511        background: #016600 !important;
512        width: 40px !important;
513    }
514    .ecwid-search-widget__btn:hover{
515        opacity: 1 !important;
516    }
517    html#ecwid_html body#ecwid_body .ec-minicart__icon .icon-default path[stroke],html#ecwid_html body#ecwid_body .ec-minicart__icon .icon-default circle[stroke]{
518        stroke: #016600 !important;
519    }
520    html#ecwid_html body#ecwid_body .ec-minicart--m .ec-minicart__counter::after{
521        background-color: #016600 !important;
522    }
523    .ec-notice__text-inner {
524        color: #000000!important;
525    }
526    /*** Mega Menu ***/
527    @media (min-width: 991px) {
528        .custom-mega-menu-link:after {
529            content: '';
530            display: block;
531            width: 40px;
532            border-bottom: 2px solid #ffffff  !important;
533        }
534
535        #primary-menu ul li .mega-menu-content div.mega-menu-container-div {
536            background-color: #016600  !important;
537        }
538        .animal-li {
539            background-color: #016600 !important;
540            border-color: #016600  !important;
541        }
542        .dark #primary-menu:not(.not-dark) ul ul li>a.nav-link{
543            color: #2b2b2b !important;
544            transition: none !important;
545        }
546
547        .dark #primary-menu:not(.not-dark) ul ul li.animal-li>a.nav-link {
548            color: #ffffff !important;
549            transition: none !important;
550        }
551        .dark #primary-menu ul li .mega-menu-content ul li a.animal-a:hover {
552            color: #ffffff !important;
553        }
554        #primary-menu ul li .mega-menu-content ul.mega-menu-column-ul{
555            background-color: #016600  !important;
556            border-color: #016600  !important;
557        }
558
559        #primary-menu ul li .mega-menu-content ul > li.menu-item.sub-menu.mega-menu-category-title > a{
560            background-color: #016600  !important;
561            border-color: #016600  !important;
562            color: #2b2b2b  !important;
563        }
564
565        #primary-menu ul li .mega-menu-content ul >
565 li.menu-item.sub-menu.mega-menu-category-title ul li.sub-menu-mega-menu > a{
566            background-color: #016600  !important;
567            border-color: #016600  !important;
568            color: #2b2b2b  !important;;
569        }
570        #primary-menu ul li .mega-menu-content ul > li.menu-item.sub-menu.mega-menu-category-title ul.supplies-container-1,
571        #primary-menu ul li .mega-menu-content ul > li.menu-item.sub-menu.mega-menu-category-title ul.supplies-container-2,
572        #primary-menu ul li .mega-menu-content ul > li.menu-item.sub-menu.mega-menu-category-title ul.supplies-container-3{
573            border-color: #016600  !important;
574        }
575
576        #primary-menu ul li .mega-menu-content ul > li.menu-item.sub-menu.mega-menu-category-title:hover > a {
577            background-color: unset !important;
578            border-color: unset !important;
579            padding-left: 15px !important;
580        }
581
582        #primary-menu ul li .mega-menu-content ul > li.menu-item.sub-menu.mega-menu-category-title ul li.sub-menu-mega-menu:hover > a {
583            background-color: #ffffff  !important;
584            border-color: #ffffff  !important;
585            color: #016600  !important;
586            padding-left: 15px !important;
587        }
588
589        .custom-mega-submenu-title {
590            color:   !important;
591        }
592    }
593        /***/
594    #return-to-top{
595        background-color: #016600 !important;
596    }
597    body#ecwid_body .heading-block .small-text #my-categories-0 {
598        margin-top: 30px;
599    }
600    .blog-search-button {
601        background-color: #016600  !important;
602    }
603
604/* --- NWP-3809 Style Overrides --- */
605
606/* Services */
607.home-service-section h2, .home-service-container h2 { font-size: 36px !important; }
608.home-service-section p, .home-service-container p, .home-service-section .small-text, .home-service-container .small-text { font-size: 22px !important; }
609.home-service-section .service-carousel-desc p { font-size: 22px !important; } 
610
611/* Brands */
612.home-brand-section h2, .pet-brand-section h2, .home-brand-container h2 { font-size: 36px !important; }
613.home-brand-section p, .pet-brand-section p, .home-brand-container p, .home-brand-section .small-text, .pet-brand-section .small-text { font-size: 22px !important; }
614
615/* Gallery */
616.gallery-section h2, .gallery-section h3 { font-size: 36px !important; }
617.gallery-section p, .gallery-section .small-text { font-size: 22px !important; }
618
619/* Reviews */
620.review-section h2, .review-section h2.review-title-color { font-size: 36px !important; }
621/* Description text for reviews */
622.review-section > .container > .row > .heading-block > span, .review-section .review_text_inner.small-text, .review-section p.review-description-color { font-size: 22px !important; }
623/* Trusted / h3 */
624.review-section h3, .review-section label[data-testid="review-count"], .review-section p[style*="bold"], .review-section div[style*="bold"] { font-size: 20px !important; }
625/* Review div */
626.review-section .review_card_carousel_child_description p, .review-section div.testi-content p, .review-section .review_testimonial_description p, .review-section .review-text-color, .review-section .review_testimonial_description { font-size: 14px !important; }
627span.review_testimonial_author { font-size: 14px !important; }
628
629/* Home page widget width fixes (About Us to match others) */
630.aboutus-container, .aboutus_row, .aboutus_content {
631    width: 100% !important;
632    max-width: 1170px !important;
633    margin-left: auto !important;
634    margin-right: auto !important;
635}
636
637/* --- End NWP-3809 --- */
638
639/* More Home Page Widgets (NWP-3809) */
640.home-blog-section h2, .home-event-section h2, .home-promotion-section h2, 
641.home-about-section h2, .home-aboutus-section h2, .aboutus_section h2, 
642.hero-section h2, .meet-section h2, .team_section h2, .home-multi-location-section h2 {
643    font-size: 36px !important;
644}
645
646.home-blog-section .small-text, .home-event-section .small-text, .home-promotion-section .small-text, 
647.home-about-section p, .home-aboutus-section p, .aboutus_section p, 
648.hero-section p, .meet-section p, .team_section p, .home-multi-location-section .small-text, .team-member-description p, .member-bio p {
649    font-size: 22px !important;
650}
651/* End More Home Page Widgets */
652</style>
653    
654</head>
655<body class="stretched">
656<div class="body-overlay"></div>
657
658
659<div id="wrapper" class="clearfix">
660            <style>
661    .announcement {
662                    display: none;
663                 background: #ffffff;
664        color: #016600;
665    }
666
667    #announcement-close {
668        background-color: #ffffff;
669    }
670
671    .announcement-btn {
672        background: #016600 !important;
673        color: #ffffff !important;
674    }
675    #announcement-loader{
676        padding-left: 20px;
677        display: none
678    }
679    #announcement-loader img{
680        height:30px;
681        width:30px;
682        padding-right:10px
683    }
684    @media (max-width: 991px) and (min-width: 320px) {
685        .announcement {
686            background: #016600;
687            color: #ffffff;
688        }
689
690        #announcement-close {
691            background-color: #016600;
692            margin-top: 0px;
693        }
694
695        .announcement-btn {
696            background: #ffffff !important;
697            color: #016600 !important;
698        }
699        .anc_new_name_div{
700            float: left !important;
701            width: 40%;
702        }
703        .anc_new_email_div{
704            float: left;
705            width: 41% !important;
706            margin-left: -24px;
707        }
708        .anc_new_button_div{
709            float: right;
710        }
711        .anc_new_input{
712            margin-top: 7px !important;
713        }
714        .anc_new_button{
715            width: 85px !important;
716            display: inline-block !important;
717            height: 40px !important;
718            white-space: unset !important;
719            line-height: 15px !important;
720            padding: 5px 12px !important;
721            border-radius: 16px !important;
722            font-size: 9px !important;
723        }
724        .anc_new_button:after{
725            position: absolute;
726            top: 39px;
727            left: 57%;
728            width: 0;
729            height: 0;
730            margin-left: 0;
731            border-left: 10px solid transparent;
732            border-right: 10px solid transparent;
733            border-top: 10px solid #ffffff;
734            content: '';
735        }
736    }
737    @media(max-width: 320px){
738        .anc_new_button{
739            width: 80px !important;
740        }
741    }
742    @media(max-width: 720px) {
743        .mobile-anc-btn{
744            display: block !important;
745        }
746
747    }
748</style>
749
750<div class="announcement announcement-mobile" id="announcement">
751    <input type="hidden" id="announcement_id" value="5293">
752            <div id="anc_text" style="white-space: pre-line">JOIN THE COMMUNITY!
753Get pet care tips, event invitations, new product updates, and exclusive offers delivered straight to your inbox. 🐾
754                                                <a target="_blank" id='announcement-btn' class="hidden-xs mobile-anc-btn hidden-sm button button-small nomargin announcement-btn"
755                       href="https://my.franpos.com/LoyaltySignup/WDU4Z3FldEcvUGNqOEFnelJlOXN6dz090">Sign Up</a>
756                                    </div>
757        <button id="announcement-close" class=""
758            onclick="set_show_announcement_flag()">
759        <span class="fa fa-close"></span>
760    </button>
761            <div class="hidden-md hidden-lg">
762                                                <a target="_blank" id='announcement-btn' class="hidden-xs hidden-sm button button-small nomargin announcement-btn"
763                       href="https://my.franpos.com/LoyaltySignup/WDU4Z3FldEcvUGNqOEFnelJlOXN6dz090">Sign Up</a>
764                                    </div>
765    </div>
766<script defer>
767    $(window).on('load',function(){
768        // if($(".anc_subscription_description").length > 0) {
769        //     let desc_length = $(".anc_subscription_description").html().length;
770        //     if (desc_length > 90) {
771        //         $(".anc_subscription_description").removeClass('col-md-6');
772        //         $(".anc_subscription_description").addClass('col-md-12');
773        //         $(".anc_subscription_description").addClass('more_anc_subsc_desc');
774        //         $(".anc_first_input").addClass('col-md-offset-3');
775        //     } else if (desc_length <= 45) {
776        //         $(".anc_subscription_description").removeClass('col-md-6');
777        //         $(".anc_subscription_description").addClass('col-md-3');
778        //         $(".anc_adjust_input").removeClass('col-md-2');
779        //         $(".anc_adjust_input").addClass('col-md-3');
780        //     }
781        // }
782    });
783
784    // Listen for announcement button click
785    const announcementButton = document.getElementById('announcement-btn');
786    if (announcementButton) {
787        announcementButton.addEventListener('click', recordClick);
788    }
789
790    // Record announcement button click
791    function recordClick() {
792        const announcement_id = document.getElementById('announcement_id').value;
793        const url = '/record-announcement-click/';
794        const token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
795
796        fetch(url, {
797            method: 'POST',
798            headers: {
799                'Content-Type': 'application/json',
800                'X-CSRF-TOKEN': token
801            },
802            body: JSON.stringify({announcement_id: announcement_id})
803        })
804            .catch((error) => {
805                console.error('Error:', error);
806            });
807    }
808</script>
808                <style>
809    .open > .social-share, .promotion-container .dropdown-menu{
810        text-align: center !important;
811    }
812    html#ecwid_html body#ecwid_body .ec-size .ec-store .grid-product__title-inner, html#ecwid_html body#ecwid_body .ec-size .ec-store .grid-product__price-amount, html#ecwid_html body#ecwid_body .ec-size .ec-store .product-details__product-price, html#ecwid_html body#ecwid_body .ecwid, html#ecwid_html body#ecwid_body .ec-size .ec-store .form-control--secondary .form-control__button, html#ecwid_html body#ecwid_body .ec-size .ec-store .form-control__text, html#ecwid_html body#ecwid_body .ec-size .ec-store .form-control__textarea, html#ecwid_html body#ecwid_body .ec-size .ec-store .form-control--radio{
813        color: #333;
814    }
815    html#ecwid_html body#ecwid_body .ec-pika-single, html#ecwid_html body#ecwid_body .ec-pika-button, html#ecwid_html body#ecwid_body .ec-pika-label, html#ecwid_html body#ecwid_body .ec-pika-label:visited, html#ecwid_html body#ecwid_body .ec-size .ec-store .form-control--error .form-control__text, html#ecwid_html body#ecwid_body .ec-size .ec-store .details-product-purchase__qty-field .form-control__placeholder{
816        color: #000000;
817    }
818    input#ec-cart-email-input{
819        color: #000000;
820        font-weight: 400;
821    }
822    @media(max-width: 1200px) and (min-width:1000px) {
823        .menu-top {
824            padding-top: 9%;
825        }
826    }
827    @media (min-width: 800px) and (max-width: 2000px) and (orientation: landscape) {
828        .ec-cart-widget.ec-cart-desktop {
829            display: block !important;
830        }
831        .ec-cart-widget.mobile{
832            display: none !important;
833        }
834    }
835    @media (min-width: 1028px) and (max-width: 2000px) and (orientation: portrait) {
836        .ec-cart-widget.ec-cart-desktop {
837            display: block !important;
838        }
839        .ec-cart-widget.mobile{
840            display: none !important;
841        }
842    }
843</style>
844<header id="header" class="transparent-header dark full-header" data-sticky-class="dark">
845                        <style>
846    .si-gplus:hover, .si-colored.si-gplus{
847        background-color: #ffffff !important;
848    }
849    .top-links ul li{
850        border-left: unset !important;
851    }
852    .loc-topbar-li:hover{
853        background-color: transparent !important;
854
855    }
856    .loc-header-icon-span {
857        background-color: #ffffff !important;
858    }
859    .loc-header-icons{
860        color: #016600  !important
861    }
862    .hour-cursor {color: inherit !important;}
863</style>
864<div id="top-bar" class="transparent-topbar hidden-sm hidden-xs">
865    
866    <div class="col_half nobottommargin clearfix col-md-1 top-left">
867        <div class="top-links">
868            <ul>
869                
870
871
872
873
874
875
876
877
878
879                    <li class="mobile-top-links"><a target="_blank" class="mapLink"
880                                                    href="https://www.google.com/maps/place/search?q=Odyssey+Pets+14999+Preston+Rd+400a+Dallas+TX+75254&amp;place_id=Ei0xNDk5OSBQcmVzdG9uIFJkICM0MDBhLCBEYWxsYXMsIFRYIDc1MjMwLCBVU0EiIBoeChYKFAoSCdEwMgOdIEyGEaZscOUlIzzlEgQ0MDBh">
881                            <span class="ts-icon get-direction-btn"><i class="fas fa-map-marker-alt"></i></span>
882                            <span class="ts-text get-direction-btn">14999 Preston Rd, Ste. 400A,  Dallas,  TX
883                            &nbsp;75254</span></a>
884                    </li>
885                                                        <li class="hour-li mobile-top-links">
886                        <a class="hour-cursor"><span class="ts-icon"><i class="far fa-clock"></i></span>
887                            <span class="ts-text">
888                                                                                                                                                                                                        
889                                                Open Today:
890                                                                                                            11:00 am - 6:00 pm                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    </span>
891                        </a>
892                    </li>
893                            </ul>
894        </div>
895    </div>
896    <div class="col_half fright col_last nobottommargin clearfix">
897        <!-- Top Social
898          ============================================= -->
899        <div id=
900                     "top-social">
901            <ul>
902                                                                                        
903                            
904                            
905                                                            <li><a href="https://maps.app.goo.gl/z1HrjJj2QTakFJPw7" target="_blank" class="si-gplus" data-hover-width="109"><span
906                                                class="ts-icon">
907                                            <img src="https://ik.imagekit.io/0ofixtqpt/3430774/glogo.png" style="width: 18px;">
908                                        </span><span
909                                                class="ts-text">
910                                            <img src="https://ik.imagekit.io/0ofixtqpt/3430772/google-logo.png" style="width: 60px;">
911                                        </span></a></li>
912                            
913                            
914                            
915                            
916                                                                                                                                                                                    
917                            
918                            
919                            
920                                                            <li><a href="https://www.youtube.com/@OdysseyPets" target="_blank" class="si-youtube" data-hover-width="109"><span
921                                                class="ts-icon"><i class="fab fa-youtube"></i></span><span
922                                                class="ts-text">Youtube</span></a></li>
923                            
924                            
925                            
926                                                                                                                                                                                                                    <li>
926<a href="https://www.facebook.com/odysseypets/" target="_blank" class="si-facebook" data-hover-width="109"><span
927                                                class="ts-icon"><i class="fab fa-facebook"></i></span><span
928                                                class="ts-text">Facebook</span></a></li>
929                            
930                            
931                            
932                            
933                            
934                            
935                            
936                                                                                                                                                                                                                                                                            
937                            
938                            
939                            
940                            
941                            
942                            
943                                                                                                                                                                                                                                
944                                                            <li>
944<a href="https://www.instagram.com/odysseypets/" target="_blank" class="si-instagram" data-hover-width="109"><span
945                                                class="ts-icon"><i class="fab fa-instagram"></i></span><span
946                                                class="ts-text">Instagram</span></a></li>
947                            
948                            
949                            
950                            
951                            
952                            
953                                                                                                                                                                                                                                                                            <span class="top_phone">
954                        <a href="tel:(972) 407-1166">
955                            <span class="ts-icon call-us-btn">
956                                <i class="fas fa-phone call-us-btn" style="transform: rotate(90deg) !important;"></i>
957                            </span>
958                            <span class="ts-text call-us-btn">(972) 407-1166</span>
959                        </a>
960                    </span>
961                            </ul>
962        </div><!-- #top-social end -->
963    </div>
964    
965</div>
966     <div id="top-bar" class="transparent-topbar hidden-md hidden-lg mobile-topbar">
967        <div class="col-xs-12 nobottommargin clearfix">
968                                            <div class="hour-li mobile-top-links single-hour-div">
969                    <a class="hour-cursor"><span class="ts-icon"><i class="far fa-clock"></i></span>
970                        <span class="ts-text">
971                                                                                                                                                                                                                              
972                                            Open Today:
973                                                                                            11:00 am - 6:00 pm                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    </span>
974                    </a>
975                </div>
976                        <div class="top-links text-center loc-toplinks">
977                <ul>
978                                        <li class="loc-li loc-topbar-li">
979                         <span class="header-icons-span loc-header-icon-span hidden-lg hidden-md loc-call-span">
980                            <a href="tel:9724071166"><i class="fas fa-phone header-icons loc-header-icons call-us-btn" style="transform: rotate(90deg) !important;"></i></a>
981                         </span>
982                    </li>
983                                        <li class="loc-li loc-topbar-li">
984                        <span class="header-icons-span loc-header-icon-span fa fa-left hidden-lg hidden-md loc-direction-span single-direction-span">
985                            <a target="_blank" class="mapLink"
986                               href="https://www.google.com/maps/place/search?q=Odyssey+Pets+14999+Preston+Rd+400a+Dallas+TX+75254&amp;place_id=Ei0xNDk5OSBQcmVzdG9uIFJkICM0MDBhLCBEYWxsYXMsIFRYIDc1MjMwLCBVU0EiIBoeChYKFAoSCdEwMgOdIEyGEaZscOUlIzzlEgQ0MDBh"><i
987                                        class="fas fa-map-marker-alt header-icons loc-header-icons get-direction-btn"></i></a>
988                        </span>
989                    </li>
990                </ul>
991            </div>
992        </div>
993    </div>
994<script defer>
995    $('document').ready(function(){
996        $('.top-links ul li.location-drawer').css({cursor: "pointer"});
997    })
998    document.addEventListener("DOMContentLoaded", function () {
999    const mapLinks = document.getElementsByClassName("mapLink");
1000    const isMobile = window.innerWidth <= 768;
1001
1002    if (isMobile) {
1003        Array.from(mapLinks).forEach(link => {
1004        let originalLink = link.href;
1005
1006            if (originalLink.includes("https://www.google.com/maps/place/search?q=")) {
1007                let newLink = originalLink.replace(
1008                    "https://www.google.com/maps/place/search?q=",
1009                    "https://www.google.com/maps/search/?api=1&query="
1010                );
1011                link.href = newLink;
1012            }
1013        });
1014    }
1015});
1016
1017</script>
1017                        <div id="header-wrap" style="display:block">
1018            <div class="container-fluid clearfix ">
1019                <div id="primary-menu-trigger" class="single-menu-trigger">
1020                    <i class="fas fa-bars"></i>
1021                    <span class="mobile_menu_text"> MENU </span>
1022                </div>
1023                <!-- Logo ============================================= -->
1024                                <div id="logo" class="mobile-header-logo ">
1025                                                                                                                                                                                                                                                    <a href="/"
1026                                       class="standard-logo logo-adjustment" data-dark-logo="https://ik.imagekit.io/0ofixtqpt/2501317/1693769242_Odyssey logo circle B (1).png">
1027                                        <img src="https://ik.imagekit.io/0ofixtqpt/2501317/1693769242_Odyssey logo circle B (1).png" alt="Odyssey Pets Logo" class="logo-adjustment-img">
1028                                    </a>
1029                                    <a href="/"
1030                                       class="retina-logo logo-alignment logo-adjustment" data-dark-logo="https://ik.imagekit.io/0ofixtqpt/2501317/1693769242_Odyssey logo circle B (1).png">
1031                                        <img src="https://ik.imagekit.io/0ofixtqpt/2501317/1693769242_Odyssey logo circle B (1).png" alt="Odyssey Pets Logo" class="logo-adjustment-img">
1032                                    </a>
1033                                                                                                                                            </div><!-- #logo end -->
1034                <!-- Mobile search box -->
1035                                <!-- Mobile search box end -->
1036                <!-- Primary Navigation============================================= -->
1037                <nav id="primary-menu" class="menu-top" style="">
1038                    <ul id="">
1039                                                <div id="ecwidSearch-desktop" class="alignleft">
1040                                                    </div>
1041                                                                                    <style>
1042    .menu-btn{
1043        border-radius: 30px;
1044    }
1045
1046    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1047        padding-top: 19px;;
1048    }
1049
1050        @media (max-width: 991px) {
1051            .custom-btn {
1052            display: inline-block;
1053            width: 48%;
1054            margin-right: 2%;
1055        }
1056    }
1057
1058    </style>
1059
1060            <li class="current  ">
1061
1062                                                                <a class="" href="https://shop.odysseypets.com/" title="Shop Near Dallas" target=_blank 
1063                        style="">
1064                        <div class=""
1065                        style="">
1066                        Shop
1067                        </div>
1068                        
1069                    </a>
1070                                                        
1071                              </li>
1072                                                                                                                                                <style>
1073    .menu-btn{
1074        border-radius: 30px;
1075    }
1076
1077    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1078        padding-top: 19px;;
1079    }
1080
1081        @media (max-width: 991px) {
1082            .custom-btn {
1083            display: inline-block;
1084            width: 48%;
1085            margin-right: 2%;
1086        }
1087    }
1088
1089    </style>
1090
1091            <li class=" sub-menu click-class ">
1092
1093                            <a class="" href="/pet-food-supply/" title="Cat &amp; Dog Near Dallas"                 style=""
1094                >
1095                <div class=""
1096                    style="">
1097                    Cat &amp; Dog
1098                </div>
1099            </a>
1100                                      <ul style="">
1101                                                                                <li>
1102                                                                                        <a href="/pet-food-cost-carb-calculators/" title="Pet Food Cost &amp; Carb Calculators Near Dallas" >
1103                                    <div>Pet Food Cost &amp; Carb Calculators</div>
1104                                </a>
1105                                                    </li>
1106                                                                                                    <li>
1107                                                                                        <a href="/dog-food-supply/" title="Dog Food &amp; Supplies Near Dallas" >
1108                                    <div>Dog Food &amp; Supplies</div>
1109                                </a>
1110                                                    </li>
1111                                                                                                    <li>
1112                                                                                        <a href="/cat-food-supply/" title="Cat Food &amp; Supplies Near Dallas" >
1113                                    <div>Cat Food &amp; Supplies</div>
1114                                </a>
1115                                                    </li>
1116                                                                                                    <li>
1117                                                                                        <a href="/brands/" title="See All Brands Near Dallas" >
1118                                    <div>See All Brands</div>
1119                                </a>
1120                                                    </li>
1121                                                                                                    <li>
1122                                                                                                                                        <a href="http://www.luckybuckantlers.com/" title="Lucky Buck Antlers Near Dallas" target=_blank>
1123                                            <div>Lucky Buck Antlers</div>
1124                                        </a>
1125                                                                                                                        </li>
1126                                                </ul>
1127            </li>
1128                                                                                                                                                <style>
1129    .menu-btn{
1130        border-radius: 30px;
1131    }
1132
1133    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1134        padding-top: 19px;;
1135    }
1136
1137        @media (max-width: 991px) {
1138            .custom-btn {
1139            display: inline-block;
1140            width: 48%;
1141            margin-right: 2%;
1142        }
1143    }
1144
1145    </style>
1146
1147            <li class=" sub-menu click-class ">
1148
1149                            <a class="" href="/fish-food-supply/" title="Fis
1149h Near Dallas"                 style=""
1150                >
1151                <div class=""
1152                    style="">
1153                    Fish
1154                </div>
1155            </a>
1156                                      <ul style="">
1157                                                                                <li>
1158                                                                                        <a href="/fish-food-supply/" title="The Fish Room Near Dallas" >
1159                                    <div>The Fish Room</div>
1160                                </a>
1161                                                    </li>
1162                                                                                                    <li>
1163                                                                                        <a href="/fish-food-supply/" title="Aquarium Service Near Dallas" >
1164                                    <div>Aquarium Service</div>
1165                                </a>
1166                                                    </li>
1167                                                                                                    <li>
1168                                                                                        <a href="/aquarium-consultations/" title="Aquarium Consultations Near Dallas" >
1169                                    <div>Aquarium Consultations</div>
1170                                </a>
1171                                                    </li>
1172                                                </ul>
1173            </li>
1174                                                                                                                                                <style>
1175    .menu-btn{
1176        border-radius: 30px;
1177    }
1178
1179    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1180        padding-top: 19px;;
1181    }
1182
1183        @media (max-width: 991px) {
1184            .custom-btn {
1185            display: inline-block;
1186            width: 48%;
1187            margin-right: 2%;
1188        }
1189    }
1190
1191    </style>
1192
1193            <li class=" sub-menu click-class ">
1194
1195                            <a class="" href="/small-pet-food-supply/" title="Small Pets Near Dallas"                 style=""
1196                >
1197                <div class=""
1198                    style="">
1199                    Small Pets
1200                </div>
1201            </a>
1202                                      <ul style="">
1203                                                                                <li>
1204                                                                                        <a href="/bird-food-supply/" title="Bird Food &amp; Supplies Near Dallas" >
1205                                    <div>Bird Food &amp; Supplies</div>
1206                                </a>
1207                                                    </li>
1208                                                                                                    <li>
1209                                                                                        <a href="/small-pet-food-supply/" title="Small Pets Food &amp; Supplies Near Dallas" >
1210                                    <div>Small Pets Food &amp; Supplies</div>
1211                                </a>
1212                                                    </li>
1213                                                </ul>
1214            </li>
1215                                                                                                                                                <style>
1216    .menu-btn{
1217        border-radius: 30px;
1218    }
1219
1220    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1221        padding-top: 19px;;
1222    }
1223
1224        @media (max-width: 991px) {
1225            .custom-btn {
1226            display: inline-block;
1227            width: 48%;
1228            margin-right: 2%;
1229        }
1230    }
1231
1232    </style>
1233
1234            <li class=" sub-menu click-class ">
1235
1236                            <a class="" href="/services/" title="Services Near Dallas"                 style=""
1237                >
1238                <div class=""
1239                    style="">
1240                    Services
1241                </div>
1242            </a>
1243                                      <ul style="">
1244                                                                                <li>
1245                                                                                        <a href="/local-delivery/" title="Local Delivery Near Dallas" >
1246                                    <div>Local Delivery</div>
1247                                </a>
1248                                                    </li>
1249                                                                                                    <li>
1250                                                                                        <a href="/dog-boarding/" title="Dog Boarding &amp; Daycare Near Dallas" >
1251                                    <div>Dog Boarding &amp; Daycare</div>
1252                                </a>
1253                                                    </li>
1254                                                                                                    <li>
1255                                                                                        <a href="/grooming/" title="Dog Grooming Near Dallas" >
1256                                    <div>Dog Grooming</div>
1257                                </a>
1258                                                    </li>
1259                                                                                                    <li>
1260                                                                                        <a href="/nutritional-counseling/" title="Nutritional Counseling Near Dallas" >
1261                                    <div>Nutritional Counseling</div>
1262                                </a>
1263                                                    </li>
1264                                                                                                    <li>
1265                                                                                        <a href="/pet-adoptions/" title="Pet Adoptions Near Dallas" >
1266                                    <div>Pet Adoptions</div>
1267                                </a>
1268                                                    </li>
1269                                                </ul>
1270            </li>
1271                                                                                                                                                <style>
1272    .menu-btn{
1273        border-radius: 30px;
1274    }
1275
1276    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1277        padding-top: 19px;;
1278    }
1279
1280        @media (max-width: 991px) {
1281            .custom-btn {
1282            display: inline-block;
1283            width: 48%;
1284            margin-right: 2%;
1285        }
1286    }
1287
1288    </style>
1289
1290            <li class=" sub-menu click-class ">
1291
1292                            <a class="" href="/events/" title="Events &amp; Deals Near Dallas"                 style=""
1293                >
1294                <div class=""
1295                    style="">
1296                    Events &amp; Deals
1297                </div>
1298            </a>
1299                                      <ul style="">
1300                                                                                <li>
1301                                                                                        <a href="/deals/" title="Deals Near Dallas" >
1302                                    <div>Deals</div>
1303                                </a>
1304                                                    </li>
1305                                                </ul>
1306            </li>
1307                                                                                                                                                <style>
1308    .menu-btn{
1309        border-radius: 30px;
1310    }
1311
1312    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1313        padding-top: 19px;;
1314    }
1315
1316        @media (max-width: 991px) {
1317            .custom-btn {
1318            display: inline-block;
1319            width: 48%;
1320            margin-right: 2%;
1321        }
1322    }
1323
1324    </style>
1325
1326            <li class=" sub-menu click-class ">
1327
1328                            <a class="" href="/loyalty-program/" title="Loyalty Program Near Dallas"                 style=""
1329                >
1330                <div class=""
1331                    style="">
1332                    Loyalty Program
1333                </div>
1334            </a>
1335                                      <ul style="">
1336                                                                                <li>
1337                                                                                        <a href="/vip/" title="VIP Membership Near Dallas" >
1338                                    <div>VIP Membership</div>
1339                                </a>
1340                                                    </li>
1341                                                </ul>
1342            </li>
1343                                                                                                                                                <style>
1344    .menu-btn{
1345        border-radius: 30px;
1346    }
1347
1348    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1349        padding-top: 19px;;
1350    }
1351
1352        @media (max-width: 991px) {
1353            .custom-btn {
1354            display: inline-block;
1355            width: 48%;
1356            margin-right: 2%;
1357        }
1358    }
1359
1360    </style>
1361
1362            <li class=" sub-menu click-class ">
1363
1364                            <a class="" href="/about-us/" title="About Near Dallas"                 style=""
1365                >
1366                <div class=""
1367                    style="">
1368                    About
1369                </div>
1370            </a>
1371                                      <ul style="">
1372                                                                                <li>
1373                                                                                        <a href="/industry-awards/" title="Industry Awards Near Dallas" >
1374                                    <div>Industry Awards</div>
1375                                </a>
1376                                                    </li>
1377                                                                                                    <li>
1378                                                                                        <a href="/kibble-assessment/" title="Kibble Assessment Near Dallas" >
1379                                    <div>Kibble Assessment</div>
1380                                </a>
1381                                                    </li>
1382                                                                                                    <li>
1383                                                                                        <a href="/loyalty-program/" title="Join Our Loyalty Program Near Dallas" >
1384                                    <div>Join Our Loyalty Program</div>
1385                                </a>
1386                                                    </li>
1387                                                                                                    <li>
1388                                                                                        <a href="/application/" title="Employment Application Near Dallas" >
1389                                    <div>Employment Application</div>
1390                                </a>
1391                                                    </li>
1392                                                                                                    <li>
1393                                                                                        <a href="/resources/" title="Resources Near Dallas" >
1394                                    <div>Resources</div>
1395                                </a>
1396                                                    </li>
1397                                                                                                    <li>
1398                                                                                        <a href="/reviews/" title="Online Reviews Near Dallas" >
1399                                    <div>Online Reviews</div>
1400                                </a>
1401                                                    </li>
1402                                                                                                    <li>
1403                                                                                        <a href="/contact-us/" title="Contact Near Dallas" >
1404                                    <div>Contact</div>
1405                                </a>
1406                                                    </li>
1407                                                </ul>
1408            </li>
1409                                                                                                                                                <style>
1410    .menu-btn{
1411        border-radius: 30px;
1412    }
1413
1414    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1415        padding-top: 19px;;
1416    }
1417
1418        @media (max-width: 991px) {
1419            .custom-btn {
1420            display: inline-block;
1421            width: 48%;
1422            margin-right: 2%;
1423        }
1424    }
1425
1426    </style>
1427
1428            <li class="  ">
1429
1430                            <a class="" href="/blog/" title="Blog Near Dallas"                 style=""
1431                >
1432                <div class=""
1433                    style="">
1434                    Blog
1435                </div>
1436            </a>
1437                              </li>
1438                                                                                                                                </ul>
1439                </nav><!-- #primary-menu end -->
1440            </div>
1441        </div>
1442    </header>
1443<div id="side-panel">
1444    <div class="side-panel-wrap">
1445        <div class="drawer-title">
1446            <button type="button" class="close drawer-close" data-dismiss="alert" aria-label="Close">
1447                <span aria-hidden="true" class="drawer-close-icon">×</span>
1448            </button>
1449            <h3 class="drawer-title-name"><i class="fas fa-map-marker-alt"></i> &nbsp; Find Your Store </h3>
1450        </div>
1451        <div class="drawer-card">
1452            <div class="zip-code-div">
1453                <input type="text" class="zip-code-search" id="zipCode" data-id="zip-code-input" placeholder="Enter Zip Code" maxlength="5" />
1454                <button type="submit" id="zipSearch" class="loc-search-button"><i class="fas fa-search search-icon"></i></button>
1455            </div>
1456            <span class="zip-error"></span>
1457                            <h2 id="all-show" class="local-store-link"> All Locations </h2>
1458                        <img src="https://ik.imagekit.io/0ofixtqpt/143715/preloader-dark.gif" id="loader-location" class="loader-location"/>
1459            <div class="show-location">
1460                <a class="location-drawer-anchor locationSelect" data-slug="dallas" data-name="dallas" href="javascript:;" data-href="/">
1461            <div class="client-location location-border">
1462                <h3 class="notopmargin nobottommargin location-drawer-business">
1463                    Dallas
1464                </h3>
1465                <span>
1466                    <i class="fas fa-map-marker-alt"></i> &nbsp;14999 Preston Rd, ,Ste. 400A, Dallas, TX 75254
1467                </span>
1468                <br />
1469                                    <span>
1470                        <i class="fas fa-phone" style="transform: rotate(90deg) !important;"></i>&nbsp;&nbsp;(972) 407-1166
1471                    </span>
1472                    <br />
1473                
1474                <span class="hours-drawer">
1475                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Open Today Until 6:00 pm
1476                                                                                                                                                                                                                                                                                                                            </span>
1477                <span class="drawer_delivery">
1478                    <br />
1479                    In-Store Pickup, Curbside Pickup, Local Delivery, Same Day Delivery, No Contact Delivery Available
1480                </span>
1481            </div>
1482        </a>
1483                        </div>
1484        </div>
1485    </div>
1486</div>
1487<script>
1488    let ecwid_count = '0';
1489    ecwid_count = parseInt(ecwid_count);
1490    let selectedLocation = localStorage.getItem('selected_location');
1491    if(localStorage.getItem('drawer_flag') == null && ecwid_count > 1){
1492        localStorage.setItem('drawer_flag',1);
1493        $("body").addClass('side-panel-open');
1494    }else{
1495        localStorage.setItem('drawer_flag',0);
1496        $("body").removeClass('side-panel-open');
1497    }
1498    var loc = $('#client_location').val();
1499    localStorage.setItem('selected_location', loc);
1500    $('a[data-slug='+loc+']').children().addClass('locationBrd');
1501    $('#loader-location').css('display','none');
1502    $('body').on('click', '.locationSelect', function () {
1503        let slug = $(this).data('slug');
1504        let hqName = $(this).data('name');
1505
1506        let previousSlug = localStorage.getItem('selected_location');
1507
1508        // Check if same slug is clicked
1509        const isLocationSelected = previousSlug === slug;
1510        const isHQSelectedAndLocationEmpty = slug === hqName && previousSlug === '';
1511
1512        let shouldCloseDrawer = isLocationSelected || isHQSelectedAndLocationEmpty;
1513
1514        // If the HQ is selected, set the slug to an empty string
1515        if (slug === hqName) {
1516            slug = '';
1517        }
1518
1519        // Update the selected location in localStorage
1520        localStorage.setItem('selected_location', slug);
1521
1522        if (shouldCloseDrawer) {
1523            document.querySelector('.drawer-close').click();
1524        } else {
1525            redirectToLocation(slug, previousSlug, hqName)
1526        }
1527    });
1528
1529    function redirectToLocation(slug, previousSlug, hqName) {
1530        // Get the current URL path
1531        let currentPath = window.location.pathname;
1532
1533        // Check the previous slug with HQ
1534        if (previousSlug === hqName) {
1535            previousSlug = '';
1536        }
1537
1538        // Determine the new URL path and redirect
1539        let newPath = previousSlug
1540            ? replaceOrRemoveLocationInUrl(slug, currentPath)
1541            : `/${slug}${currentPath}`;
1542
1543        // Redirect to the new URL
1544        location.href = newPath;
1545    }
1546
1547    function replaceOrRemoveLocationInUrl(newLocation, currentPath) {
1548        // Use a regular expression to match the location part (only the first segment after the domain)
1549        let newPath = currentPath.replace(/\/[^\/]+/, newLocation ? `/${newLocation}` : '');
1550
1551        // Ensure the new path starts with a slash
1552        if (!newPath.startsWith('/')) {
1553            newPath = '/' + newPath;
1554        }
1555
1556        return newPath;
1557    }
1558
1559    $("#zipCode").keyup(function(){
1560        this.value = this.value.replace(/[^0-9]/g,'');
1561    });
1562
1563    // Function to handle zip code search actions
1564    function handleZipSearch() {
1565        $('.show-location').css('display', 'none');
1566        $('#loader-location').css('display', 'block');
1567        $('#all-show').html('Nearby Store');
1568        search();
1569    }
1570
1571    // Attach keypress event to zip code search input
1572    $('.zip-code-search').keypress(function (e) {
1573        if (e.which === 13) {
1574            handleZipSearch();
1575        }
1576    });
1577
1578    // Attach click event to zip search button
1579    $('#zipSearch').click(function () {
1580        handleZipSearch();
1581    });
1582
1583    function search() {
1584        let location = $('input[name=location_id]').val();
1585        let zip = $('#zipCode').val();
1586        if(zip !== '' && zip.length < 5){
1587            $('.zip-error').html("Error: Please enter a valid ZIP code");
1588            $('.local-store-link').attr('style', 'margin-top:5% !important');
1589            $('#loader-location').css('display','none');
1590            return false;
1591        } else {
1592            $('.zip-error').html("");
1593            $('#all-show').attr('style', 'margin-top:0% !important','display: block');
1594            $('#ecwid-show').attr('style', 'margin-top:0% !important','display: block');
1595        }
1596
1597        // If no zip code is provided, show all the locations
1598        if(zip === '') {
1599            $('#all-show').html('All Locations');
1600        }
1601
1602        let url = '/zipSearch/';
1603        $.ajax({
1604            headers: {
1605                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
1606            },
1607            type: 'POST',
1608            url: url,
1609            data: {'currentLoc': location,'zip' : zip},
1610            success: function (response) {
1611                $('.show-location').css('display','block');
1612                $('#loader-location').css('display','none');
1613                $('.show-location').html(response);
1614                $('a[data-slug='+loc+']').children().addClass('locationBrd');
1615            }
1616        });
1617    }
1618    $('.drawer-close').on('click', function(){
1619        $("body").removeClass('side-panel-open');
1620        $('#all-show').html('All Locations');
1621        $('#ecwid-show').html('Choose a Store to Buy Online');
1622        $('#zipCode').val('');
1623    });
1624</script>
1624<script>
1625    let ecwidMobileSearch = $('#ecwidSearch-mobile');
1626    let ecwidDesktopSearch = $('#ecwidSearch-desktop');
1627    window.addEventListener("orientationchange", function() {
1628        if (window.matchMedia("(orientation: portrait)").matches) {
1629            showPortraitSearch();
1630        }
1631        if (window.matchMedia("(orientation: landscape)").matches) {
1632            showLandscapeSearch();
1633        }
1634    }, false);
1635    var logoPosition = '1';
1636    var captcha_key = '6LfcAGMpAAAAAL68qM6-xqbJeELRxV4MPPD71y27';
1637    var wwidth = 0;
1638    function dynamic_padding() {
1639        $('#header-wrap').show();
1640        var p = 0;
1641        $('#primary-menu > ul > li').each(function (x, y) {
1642            p += $(y).width();
1643        });
1644        var w = $('#primary-menu').width();
1645        var actual_width = w - p;
1646        var count_li = $('#primary-menu > ul > li').length + 2;
1647        var padding_width = actual_width / count_li;
1648        $('#primary-menu > ul > li').each(function () {
1649            $(this).attr('style', 'padding-right:' + padding_width + 'px !important;');
1650        });
1651        $('#primary-menu > ul > li:first').attr('style', 'padding-left:' + padding_width + 'px !important;padding-right: ' + padding_width + 'px !important;');
1652        wwidth = $(window).width();
1653    }
1654
1655    $(window).resize(function () {
1656        if (wwidth != $(window).width() && ($(window).width() > '768')) {
1657            if (logoPosition > 1) {
1658                dynamic_padding();
1659            }
1660        }
1661    });
1662    if (logoPosition > 1 && ($(window).width() > '768')) {
1663        setTimeout( dynamic_padding, 500);
1664    }
1665
1666    $(document).ready(function (){
1667        if (window.matchMedia("(orientation: landscape)").matches) {
1668            // console.log('landscape');
1669            showLandscapeSearch();
1670        }
1671        if (window.matchMedia("(orientation: portrait)").matches) {
1672            ecwidDesktopSearch.hide();
1673            
1674            
1675        }
1676    });
1677
1678    /**
1679     * show portrait search box
1680     */
1681    function showPortraitSearch()
1682    {
1683        let desktopSearch = ecwidDesktopSearch.html();
1684        ecwidDesktopSearch.html('').hide();
1685        ecwidMobileSearch.show().html(desktopSearch);
1686        $('#my-search-').removeClass('search-products-desktop').addClass('search-products-mobile');
1687    }
1688
1689    /**
1690     * show landscape search box
1691     */
1692    function showLandscapeSearch()
1693    {
1694        let mobileSearch = ecwidMobileSearch.html();
1695        ecwidMobileSearch.html('').hide();
1696        ecwidDesktopSearch.show().html(mobileSearch);
1697        $('#my-search-').removeClass('search-products-mobile').addClass('search-products-desktop');
1698    }
1699</script>
1699        
1700    <section id="page-title"
1701                 class="page-title-parallax page-title-dark page-title-right hero-bg-image mobile-main-land-section mobile-page-title"
1702                 data-stellar-background-ratio="0.2">
1703            <div class="home-overlay"></div>
1704            <div class="container clearfix center bottommargin-sm-6 hero-title-div">
1705                <h1 class="hero-title">
1706                                            About Odyssey Pets
1707                                    </h1>
1708                
1709                                                                            <a  href="/contact-us/"
1710                           class="button slide_btn_right button-large button-rounded hero-btn noleftmargin topmargin-sm main-widget-image-button sub-page-cta-btn-2 "
1711                           style="background-color: #ffffff">
1712                            Contact Us
1713                        </a>
1714                                                </div>
1715
1716        </section>
1717        
1717<script>
1718        $(document).ready(function () {
1719            let options = {};
1720            let moptions = {};
1721            $(".pet-brand-btn").click(function () {
1722                $('html, body').animate({scrollTop: $('#pet-brand').offset().top - 250}, '200');
1723            });
1724
1725            var timer = 1;
1726                        var count = parseInt(0); // desktop slide count
1727            var mcount = parseInt(0); // mobile slide count
1728            if(count > 1){ // if greater than 1 slide in desktop then loop true
1729                options = {
1730                    loop: false,
1731                                        autoplay: {
1732                                                delay: '5000',
1733                                                disableOnInteraction: false,
1734                    },
1735                                        navigation: {
1736                        nextEl: '.swiper-button-next',
1737                        prevEl: '.swiper-button-prev',
1738                    },
1739                    pagination: {
1740                        el: '.swiper-pagination',
1741                        clickable: true,
1742                    }
1743                }
1744            } else{ // if ony 1 slide in desktop then loop set to false
1745                options = {
1746                    loop: false,
1747                                        autoplay: {
1748                                                delay: '5000',
1749                                                disableOnInteraction: false,
1750                    },
1751                                        navigation: {
1752                        nextEl: '.swiper-button-next',
1753                        prevEl: '.swiper-button-prev',
1754                    },
1755                    pagination: {
1756                        el: '.swiper-pagination',
1757                        clickable: true,
1758                    }
1759                }
1760            }
1761
1762            if(mcount > 1){ // if greater than 1 slide in mobile then loop true
1763                moptions = {
1764                    loop: false,
1765                                        autoplay: {
1766                                                delay: '5000',
1767                                                disableOnInteraction: false,
1768                    },
1769                                        navigation: {
1770                        nextEl: '.swiper-button-next',
1771                        prevEl: '.swiper-button-prev',
1772                    },
1773                    pagination: {
1774                        el: '.swiper-pagination',
1775                        clickable: true,
1776                    }
1777                }
1778            } else{  // if ony 1 slide in mobile then loop set to false
1779                moptions = {
1780                    loop: false,
1781                                        autoplay: {
1782                                                delay: '5000',
1783                                                disableOnInteraction: false,
1784                    },
1785                                        navigation: {
1786                        nextEl: '.swiper-button-next',
1787                        prevEl: '.swiper-button-prev',
1788                    },
1789                    pagination: {
1790                        el: '.swiper-pagination',
1791                        clickable: true,
1792                    }
1793                }
1794            }
1795
1796
1797            homeslider('.desktop_slider', timer,count,options);
1798            homeslider('.mobile_slider', timer,count,moptions);
1799
1800            function homeslider(type, timer) {
1801                if ($(type + " .swiper-slide").length  > 1)
1802                {
1803                    var swiper = new Swiper(type, options);
1804                    if ($(type + " .swiper-slide").length === 1 || $(type + " .swiper-slide").length === 3) {
1805                        if (swiper.params.loop) {
1806                            $('.swiper-wrapper').addClass("disabled");
1807                            $('.swiper-pagination').addClass("disabled");
1808                            swiper.autoplay.stop();
1809                        }
1810                    }
1811                }
1812            }
1813        });
1814
1815
1816        function hotlink(id) {
1817            var href = $(id).attr("href");
1818            var target = $(id).attr("target");
1819            if (href.charAt(0) == "#") {
1820                if (href.length > 1) {
1821                    $(id).removeAttr("href");
1822                    $(id).addClass("hotlink-btn");
1823                    if (href == '#home-service-section' && ($(id).hasClass("hotlink-btn"))) {
1824
1825                        $('html, body').animate({scrollTop: $('#home-service-section').offset().top - 250}, '200');
1826                        $(id).attr("href", href);
1827                    }
1828                    if (href == '#home-brand-section' && ($(id).hasClass("hotlink-btn"))) {
1829                        $('html, body').animate({scrollTop: $('#home-brand-section').offset().top - 250}, '200');
1830                        $(id).attr("href", href);
1831                    }
1832                    if (href == '#home-event-section' && ($(id).hasClass("hotlink-btn"))) {
1833                        $('html, body').animate({scrollTop: $('#home-event-section').offset().top - 250}, '200');
1834                        $(id).attr("href", href);
1835                    }
1836                    if (href == '#home-promotion-section' && ($(id).hasClass("hotlink-btn"))) {
1837                        $('html, body').animate({scrollTop: $('#home-promotion-section').offset().top - 250}, '200');
1838                        $(id).attr("href", href);
1839                    }
1840                    if (href == '#home-review-section' && ($(id).hasClass("hotlink-btn"))) {
1841                        $('html, body').animate({scrollTop: $('#home-review-section').offset().top - 250}, '200');
1842                        $(id).attr("href", href);
1843                    }
1844                }
1845            } else if (href.charAt(0) != '#' && target == "_blank") {
1846                window.open($(id).attr('href'));
1847            } else if (href.charAt(0) != '#' && target == "undefined") {
1848                window.location.href = $(id).attr('href');
1849            }
1850
1851        }
1852    </script>
1852
1853    <style>
1854        .home-cta-btn-1{
1855            color: #fff !important;
1856        }
1857        .home-cta-btn-1:hover{
1858            color: #fff !important;
1859        }
1860        .home-cta-btn-2{
1861            color: #016600 !important;
1862        }
1863        .home-cta-btn-2:hover{
1864            color: #fff !important;
1865        }
1866        .home-cta-btn-1:hover{
1867            background-color: !important;
1868        }
1869        .home-cta-btn-2:hover{
1870            background-color:  !important;
1871        }
1872        .sub-page-cta-btn-1{
1873            color: #fff !important;
1874        }
1875        .sub-page-cta-btn-1:hover{
1876            color: #fff !important;
1877        }
1878        .sub-page-cta-btn-2{
1879            color: #016600 !important;
1880        }
1881        .sub-page-cta-btn-2:hover{
1882            color: #fff !important;
1883        }
1884        .sub-page-cta-btn-1:hover{
1885            background-color: !important;
1886        }
1887        .sub-page-cta-btn-2:hover{
1888            background-color:  !important;
1889        }
1890        
1891            #page-title{
1892            background: url('https://ik.imagekit.io/0ofixtqpt/2931626/tr:n-topbar_bg/website-header-image-no-logo.png') !important;
1893        }
1894                    .home-overlay{
1895            background: rgba(0,0,0,0.2) !important;
1896        }
1897                    @media (max-width:1024px) and (min-width: 320px) {
1898                    .swiper-button-next, .swiper-button-prev, .swiper-pagination {
1899                display: block;
1900            }
1901        
1902                    #slider-cover {
1903                background: none !important;
1904            }
1905                                 #page-title {
1906                background: url('https://ik.imagekit.io/0ofixtqpt/2911637/website-header-images-mobile-2.png') !important;
1907            }
1908                }
1909    </style>
1910
1911
1912    <section id="content nobottommargin">
1913
1914        <div class="content-wrap nobottommargin">
1915                        <div class="about-us-container container clearfix notopmargin">
1916
1917                <div class="row bottommargin notopmargin">
1918
1919                                        <div class="col-xs-12 heading-block center bottommargin-sm ">
1920                        <h2>Odyssey Pets - Family Owned and Operated.</h2>
1921            <div class="divcenter small-text text-video text-table container nopadding"><p>Proudly serving the North Dallas area since 2006.&nbsp;<span style="background-color: initial;">We offer holistic pet foods, treats, and high quality pet supplies for dogs, cats, fish, and small animals.&nbsp;</span><span style="background-color: initial;">Experts in grooming, dog boarding, daycare, and training services.&nbsp;</span><span style="background-color: initial;">Our 10,000 square foot facility is custom designed for your pet's comfort.&nbsp;</span><span style="background-color: initial;">We also have one of Dallas' best selections of freshwater fish, saltwater fish and corals.</span></p><p>"If we wouldn't use it for our pets, we wouldn't sell it for yours."</p>
1922<center><img src="https://ik.imagekit.io/0ofixtqpt/494685/the-crew.JPG" class="" alt="" width="" style=""></center></div>
1923                        </div>
1924                    <div class="center topmargin-sm nobottommargin ">
1925
1926                    </div>
1927
1928                </div>
1929
1930            </div>
1931            
1932            
1933            <style>
1934    #home-meet-section{
1935        position: relative;
1936        overflow: hidden;
1937    }
1938    .about-title-color {
1939            color: #333  !important;
1940        }
1941
1942    .about-description-color {
1943        font-size:22px;
1944        color:   !important;
1945    }
1946
1947    .lazy-background.meet-background-parallax {
1948        background: url('');
1949        background-repeat: no-repeat !important;
1950            background-size: cover !important;
1951            background-attachment: fixed !important;
1952            background-position: center !important;
1953    }
1954
1955    .lazy-background.meet-background-static {
1956        background: url('');
1957    }
1958
1959    .meet-background-parallax {
1960        background-repeat: no-repeat !important;
1961        background-size: cover !important;
1962        background-attachment: fixed !important;
1963        margin: 40px 0 0px !important;
1964    }
1965    .meet-background-static{
1966        background-repeat: no-repeat !important;
1967        background-size: cover !important;
1968        margin: 40px 0 0px !important;
1969    }
1970
1971    .meet-overlay {
1972        background:  !important;
1973    }
1974
1975    @media (min-device-width: 768px) and (orientation: landscape) {
1976        .lazy-background.meet-background-parallax {
1977            background-image: url('') !important;
1978            background-attachment: scroll;
1979            background-repeat: no-repeat !important;
1980            background-size: cover !important;
1981            background-attachment: fixed !important;
1982            background-position: center !important;
1983        }
1984
1985        .lazy-background.meet-background-static {
1986            background-image: url('') !important;
1987        }
1988    }
1989
1990    @media (max-device-width: 1024px) and (orientation: portrait) {
1991        .lazy-background.meet-background-parallax {
1992            background-image: url('') !important;
1993            background-attachment: scroll !important;
1994            background-repeat: no-repeat !important;
1995            background-size: cover !important;
1996            background-attachment: fixed !important;
1997            background-position: center !important;
1998        }
1999
2000        .lazy-background.meet-background-static {
2001            background-image: url('') !important;
2002        }
2003    }
2004
2005    @media (max-width: 765px) and (min-width: 320px) {
2006        .lazy-background.meet-background-parallax {
2007            background: url('');
2008            background-attachment: scroll !important;
2009            background-repeat: no-repeat !important;
2010            background-size: cover !important;
2011            background-attachment: fixed !important;
2012            background-position: center !important;
2013        }
2014
2015        .lazy-background.meet-background-static {
2016            background: url('');
2017        }
2018    }
2019
2020
2021</style>
2022
2023            <div id="home-meet-section">
2024                                    </div>
2025<style>
2026    .team-image img{
2027        border-radius: 100% !important;
2028    }
2029    @media(max-width: 720px) and (min-width:320px){
2030        .team.team-list .team-title{
2031            text-align: center !important;
2032        }
2033        .team-image img{
2034            margin-left: auto !important;
2035            margin-right: auto !important;
2036            display: block !important;
2037        }
2038    }
2039</style>
2040<script>
2041    function toggleContent(i, text) {
2042        $(".moretext-" + i).toggle();
2043        $(".lesstext-" + i).toggle();
2044    }
2045
2046    $(document).ready(function () {
2047        var showChar = 150;
2048        var ellipsestext = "...";
2049        var moretext = "Show More";
2050        var lesstext = "Show Less";
2051        var i = 0;
2052        $('.more').each(function () {
2053            var content = $('.fulltext-' + i).html();
2054            var readless = '<a class="morelink' + i + ' about-us-a" onclick="toggleContent(' + i + ',\'' + lesstext + '\')">' + lesstext + '</a>';
2055            $('p.moretext-' + i).html(content + ' ' +readless);
2056            $('p.moretext-' + i).hide();
2057            if (content.length > showChar) {
2058                var c = content.substr(0, showChar);
2059                var readmore = '<a class="morelink' + i + ' about-us-a" onclick="toggleContent(' + i + ',\'' + moretext + '\')">' + moretext + '</a>';
2060                $('p.lesstext-' + i).html(c + ' ' + ellipsestext + ' ' + readmore);
2061            }else{
2062                $('p.moretext-'+ i).html(content).show();
2063            }
2064            i++;
2065        });
2066    });
2067</script>
2067
2068            <!--review part-->
2069    <style>
2070        .review-widget-testimonial{
2071            background-color: #ffffff    !important;
2072            overflow-y: auto !important;
2073        }
2074        .review-text-color {
2075            color: #333333    !important;
2076        }
2077
2078        .lazy-background.review-background-parallax {
2079            background: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg');
2080        }
2081
2082        .lazy-background.review-background-static {
2083            background: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg');
2084        }
2085
2086        .review-title-color {
2087            color: #ffffff  !important;
2088        }
2089
2090        .review-description-color {
2091            color: #ffffff  !important;
2092        }
2093
2094        .review-overlay {
2095            background: rgba(0,0,0,0.6)  !important;
2096        }
2097
2098        #home-review-section #recent-reviews .heading-block {
2099            margin-bottom: 10px;
2100        }
2101
2102        @media (min-device-width: 768px) and (orientation: portrait) {
2103            .lazy-background.review-background-parallax {
2104                background-image: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg') !important;
2105                background-attachment: scroll !important;
2106            }
2107
2108            .lazy-background.review-background-static {
2109                background-image: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg') !important;
2110            }
2111        }
2112
2113        @media (max-device-width: 1024px) and (orientation: landscape) {
2114            .lazy-background.review-background-parallax {
2115                background-image: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg') !important;
2116                background-attachment: scroll !important;
2117            }
2118
2119            .lazy-background.review-background-static {
2120                background-image: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg') !important;
2121            }
2122        }
2123
2124        @media (max-width: 765px) and (min-width: 320px) {
2125            .lazy-background.review-background-parallax {
2126                background: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg');
2127                background-attachment: scroll !important;
2128            }
2129
2130            .lazy-background.review-background-static {
2131                background: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg');
2132            }
2133        }
2134    </style>
2135                                <div id="home-review-section"
2136                 class="review-section review-background-parallax lazy-background"
2137                 style="margin: 0px !important;">
2138                                                                                    <div class="review-overlay"></div>
2139                                                                <div id="recent-reviews" class="container topmargin clear-bottommargin clearfix">
2140                                    <div class="row clearfix">
2141                                        <div class="heading-block center ">
2142                                            <h2 class="review-title-color">
2143                                                    WHAT Dallas CUSTOMERS ARE SAYING</h2>
2144                                            <span class="divcenter small-text review-description-color">
2145                                                <p>We love all of our happy customers from local areas near us including <a href="https://www.google.com/maps/dir/Dallas,+TX/Odyssey+Pets,+14999+Preston+Rd+%23400a,+Dallas,+TX+75254/@32.8617153,-96.9014668,12z/data=!3m1!4b1!4m14!4m13!1m5!1m1!1s0x864c19f77b45974b:0xb9ec9ba4f647678f!2m2!1d-96.7969879!2d32.7766642!1m5!1m1!1s0x864c23d0d0136c61:0x48d61510e37a3e25!2m2!1d-96.8059163!2d32.9530094!3e0" title="Get Directions From Dallas" target="blank">Dallas</a>,&nbsp;<a href="google.com/maps/dir/Addison/Odyssey+Pets,+14999+Preston+Rd+%23400a,+Dallas,+TX+75254/@32.9561472,-96.8246912,15z/data=!4m14!4m13!1m5!1m1!1s0x864c214a666c3839:0xe6594ab6c798f986!2m2!1d-96.8291685!2d32.96179!1m5!1m1!1s0x864c23d0d0136c61:0x48d61510e37a3e25!2m2!1d-96.8059163!2d32.9530094!3e0" title="Get Directions From Addison" target="blank">Addison</a>,&nbsp;<a href="https://www.google.com/maps/dir/Richardson/Odyssey+Pets,+14999+Preston+Rd+%23400a,+Dallas,+TX+75254/@32.9485128,-96.7984271,13z/data=!4m14!4m13!1m5!1m1!1s0x864c1ee979bea767:0x2cdb29c046270495!2m2!1d-96.7298519!2d32.9483335!1m5!1m1!1s0x864c23d0d0136c61:0x48d61510e37a3e25!2m2!1d-96.8059163!2d32.9530094!3e0" title="Get Directions From Richardson" target="blank">Richardson</a>,&nbsp;<a href="https://www.google.com/maps/dir/Plano/Odyssey+Pets,+14999+Preston+Rd+%23400a,+Dallas,+TX+75254/@32.9485128,-96.9034838,11z/data=!4m14!4m13!1m5!1m1!1s0x864c21da13c59513:0x62aa036489cd602b!2m2!1d-96.6988856!2d33.0198431!1m5!1m1!1s0x864c23d0d0136c61:0x48d61510e37a3e25!2m2!1d-96.8059163!2d32.9530094!3e0" title="Get Directions From Plano" target="blank">Plano</a>,&nbsp;<a href="https://www.google.com/maps/dir/Carrollton/Odyssey+Pets,+14999+Preston+Rd+%23400a,+Dallas,+TX+75254/@32.9485128,-96.9034838,11z/data=!4m14!4m13!1m5!1m1!1s0x864c212bbbdd571f:0x9c1efd49b3841d5d!2m2!1d-96.8899636!2d32.97564
214515!1m5!1m1!1s0x864c23d0d0136c61:0x48d61510e37a3e25!2m2!1d-96.8059163!2d32.9530094!3e0" title="Get Directions From Carrollton" target="blank">Carrollton</a>,&nbsp;<a href="https://www.google.com/maps/dir/Garland/Odyssey+Pets,+14999+Preston+Rd+%23400a,+Dallas,+TX+75254/@32.8577139,-96.9247698,11z/data=!4m14!4m13!1m5!1m1!1s0x864c03c1db5fc275:0x71fbdcb38623cd0!2m2!1d-96.6388833!2d32.912624!1m5!1m1!1s0x864c23d0d0136c61:0x48d61510e37a3e25!2m2!1d-96.8059163!2d32.9530094!3e0" title="Get Directions From Garland" target="blank">Garland</a>, <a href="https://www.google.com/maps/dir/Frisco,+TX/Odyssey+Pets,+14999+Preston+Rd+%23400a,+Dallas,+TX+75254/@33.0518195,-96.953042,11z/data=!4m14!4m13!1m5!1m1!1s0x864c3c1abc09943d:0xcad371b035c8fea2!2m2!1d-96.8236116!2d33.1506744!1m5!1m1!1s0x864c23d0d0136c61:0x48d61510e37a3e25!2m2!1d-96.8059163!2d32.9530094!3e0" title="Get Directions From Frisco" target="blank">Frisco</a>, and more!&nbsp;</p>                                            </span>
2146                                        </div>
2147                                                                                    <div class="center small-text review-description-color" style="font-weight: bold; clear: both; margin: 2px 0 15px;">388 trusted five-star reviews</div>
2148                                                                                                                            <div id="oc-testi"
2149                                             class="owl-carousel testimonials-carousel carousel-widget bottommargin "
2150                                             data-margin="20" data-items-xs="1" data-items-sm="2" data-items-lg="3">
2151                                                                                            <div class="oc-item ">
2152                                                    <div class="testimonial bottommargin-sm review-widget-testimonial">
2153                                                        <div class="col-xs-4">
2154                                                            <div class="testi-image">
2155                                                                <a>
2156                                                                                                                                            <img class="lazy"
2157                                                                             src="https://ik.imagekit.io/0ofixtqpt/143729/tr:n-reviewer_image_thumb/default-placeholder.png"
2158                                                                             data-src="https://ik.imagekit.io/0ofixtqpt/5286778/tr:n-reviewer_image_thumb/ACg8ocKwy2ahBoJOqXdKUyOvDhiUTiHnbDraameFyMm7KwkveAtK2Q=s120-c-rp-mo-br100"
2159                                                                             onError="this.onerror=null;this.src='https://ik.imagekit.io/0ofixtqpt/147554/tr:n-reviewer_image_thumb/avatar.jpg';">
2160                                                                                                                                    </a>
2161                                                                <div class="testi-meta review-text-color nobold">
2162                                                                    T Wilson
2163                                                                </div>
2164                                                                <div class="center rv_time review-text-color">
2165                                                                    2026-09-04
2166                                                                </div>
2167                                                            </div>
2168                                                        </div>
2169                                                        <div class="col-xs-8">
2170                                                            <div class="testi-content">
2171                                                                                                                                    <i class="fab fa-google social"></i>
2172                                                                                                                                                                                                <sp
2172an class="stars s-5.0">
2173                                                                    <span class='new-star' style="width: 100%;"></span>
2174                                                                </span>
2175                                                                                                                                    <div class="r_more">
2176                                                                        <p class="small-text-color review-text-color review-fulltext-0 hidden-teamtext">Amazing little pet store. I’m one of those psycho pet owners and I worked in Vet hospitals when I was younger so have higher standards and would trust my dog baby with thier staff. I’m mostly in there for DFWAPC meetings as I don’t live close so mostly get the pleasure of harrassing Miles and enjoying their fish and plant department but every staff member has a true love for animals is knowledgable, helpful, courteous and not afraid to say idk and ask another employee (one of my biggest pet peeves when people fake knowledge)</p>
2177                                                                        <p class="review-lesstext-0 review-text-color small-text-color"></p>
2178                                                                        <p class="review-moretext-0 review-text-color small-text-color"></p>
2179                                                                    </div>
2180                                                                                                                            </div>
2181                                                        </div>
2182                                                    </div>
2183                                                </div>
2184                                                                                                                                                <div class="oc-item ">
2185                                                    <div class="testimonial bottommargin-sm review-widget-testimonial">
2186                                                        <div class="col-xs-4">
2187                                                            <div class="testi-image">
2188                                                                <a>
2189                                                                                                                                            <img class="lazy"
2190                                                                             src="https://ik.imagekit.io/0ofixtqpt/143729/tr:n-reviewer_image_thumb/default-placeholder.png"
2191                                                                             data-src="https://ik.imagekit.io/0ofixtqpt/5271643/tr:n-reviewer_image_thumb/ALV-UjXaIu6HiBgwsQA5bCtsXlWozJBl17XBXvIcVXIq5Xjd6UuMejVVrg=s120-c-rp-mo-ba12-br100"
2192                                                                             onError="this.onerror=null;this.src='https://ik.imagekit.io/0ofixtqpt/147554/tr:n-reviewer_image_thumb/avatar.jpg';">
2193                                                                                                                                    </a>
2194                                                                <div class="testi-meta review-text-color nobold">
2195                                                                    Michael Said
2196                                                                </div>
2197                                                                <div class="center rv_time review-text-color">
2198                                                                    2026-08-28
2199                                                                </div>
2200                                                            </div>
2201                                                        </div>
2202                                                        <div class="col-xs-8">
2203                                                            <div class="testi-content">
2204                                                                                                                                    <i class="fab fa-google social"></i>
2205                                                                                                                                                                                                <sp
2205an class="stars s-5.0">
2206                                                                    <span class='new-star' style="width: 100%;"></span>
2207                                                                </span>
2208                                                                                                                                    <div class="r_more">
2209                                                                        <p class="small-text-color review-text-color review-fulltext-1 hidden-teamtext">Great products. Great service. Very knowledgeable employees! This place is especially great for fish, if you&#039;re interested in that. I highly recommend Odyssey pets!</p>
2210                                                                        <p class="review-lesstext-1 review-text-color small-text-color"></p>
2211                                                                        <p class="review-moretext-1 review-text-color small-text-color"></p>
2212                                                                    </div>
2213                                                                                                                            </div>
2214                                                        </div>
2215                                                    </div>
2216                                                </div>
2217                                                                                                                                                <div class="oc-item ">
2218                                                    <div class="testimonial bottommargin-sm review-widget-testimonial">
2219                                                        <div class="col-xs-4">
2220                                                            <div class="testi-image">
2221                                                                <a>
2222                                                                                                                                            <img class="lazy"
2223                                                                             src="https://ik.imagekit.io/0ofixtqpt/143729/tr:n-reviewer_image_thumb/default-placeholder.png"
2224                                                                             data-src="https://ik.imagekit.io/0ofixtqpt/5210113/tr:n-reviewer_image_thumb/ALV-UjWpaLx_SutWTkk-FNvbMW8S19jbBDoGokOsxlWm2AgM81Xq5DXAxw=s120-c-rp-mo-br100"
2225                                                                             onError="this.onerror=null;this.src='https://ik.imagekit.io/0ofixtqpt/147554/tr:n-reviewer_image_thumb/avatar.jpg';">
2226                                                                                                                                    </a>
2227                                                                <div class="testi-meta review-text-color nobold">
2228                                                                    Shel Mulry
2229                                                                </div>
2230                                                                <div class="center rv_time review-text-color">
2231                                                                    2026-08-01
2232                                                                </div>
2233                                                            </div>
2234                                                        </div>
2235                                                        <div class="col-xs-8">
2236                                                            <div class="testi-content">
2237                                                                                                                                    <i class="fab fa-google social"></i>
2238                                                                                                                                                                                                <span class="stars s-5.0">
2239                                                                    <span class='new-star' style="width: 100%;"></span>
2240                                                                </span>
2241                                                                                                                                    <div class="r_more">
2242                                                                        <p class="small-text-color review-text-color review-fulltext-2 hidden-teamtext">The best by far! People who are knowledgeable, approachable. They carry only transparent, healthy brands of dog and cat food. Great aquarium resource as well. Support a locally owned small business! Odyssey Pets is the best!</p>
2243                                                                        <p class="review-lesstext-2 review-text-color small-text-color"></p>
2244                                                                        <p class="review-moretext-2 review-text-color small-text-color"></p>
2245                                                                    </div>
2246                                                                                                                            </div>
2247                                                        </div>
2248                                                    </div>
2249                                                </div>
2250                                                                                                                                                <div class="oc-item ">
2251                                                    <div class="testimonial bottommargin-sm review-widget-testimonial">
2252                                                        <div class="col-xs-4">
2253                                                            <div class="testi-image">
2254                                                                <a>
2255                                                                                                                                            <img class="lazy"
2256                                                                             src="https://ik.imagekit.io/0ofixtqpt/143729/tr:n-reviewer_image_thumb/default-placeholder.png"
2257                                                                             data-src="https://ik.imagekit.io/0ofixtqpt/5211493/tr:n-reviewer_image_thumb/ACg8ocKn0K7T4bwpFOA6DhZqAumUPrxBfjRshyKggU5COyyojF8XNw=s120-c-rp-mo-br100"
2258                                                                             onError="this.onerror=null;this.src='https://ik.imagekit.io/0ofixtqpt/147554/tr:n-reviewer_image_thumb/avatar.jpg';">
2259                                                                                                                                    </a>
2260                                                                <div class="testi-meta review-text-color nobold">
2261                                                                    Bob “USMCVet1985”
2262                                                                </div>
2263                                                                <div class="center rv_time review-text-color">
2264                                                                    2026-08-01
2265                                                                </div>
2266                                                            </div>
2267                                                        </div>
2268                                                        <div class="col-xs-8">
2269                                                            <div class="testi-content">
2270                                                                                                                                    <i class="fab fa-google social"></i>
2271                                                                                                                                                                                                <sp
2271an class="stars s-5.0">
2272                                                                    <span class='new-star' style="width: 100%;"></span>
2273                                                                </span>
2274                                                                                                                                    <div class="r_more">
2275                                                                        <p class="small-text-color review-text-color review-fulltext-3 hidden-teamtext">Been going there for 15 years because the groomers are kind and gentle to my 2 boys Ollie and Dickens. Great staff and clean boarding area. Highly recommend.</p>
2276                                                                        <p class="review-lesstext-3 review-text-color small-text-color"></p>
2277                                                                        <p class="review-moretext-3 review-text-color small-text-color"></p>
2278                                                                    </div>
2279                                                                                                                            </div>
2280                                                        </div>
2281                                                    </div>
2282                                                </div>
2283                                                                                                                                                <div class="oc-item ">
2284                                                    <div class="testimonial bottommargin-sm review-widget-testimonial">
2285                                                        <div class="col-xs-4">
2286                                                            <div class="testi-image">
2287                                                                <a>
2288                                                                                                                                            <img class="lazy"
2289                                                                             src="https://ik.imagekit.io/0ofixtqpt/143729/tr:n-reviewer_image_thumb/default-placeholder.png"
2290                                                                             data-src="https://ik.imagekit.io/0ofixtqpt/5188183/tr:n-reviewer_image_thumb/ALV-UjVhlm2GQW13y2OmLNqaEgFKUKODfMH2ZPeVganganGua8qIYs8=s120-c-rp-mo-ba12-br100"
2291                                                                             onError="this.onerror=null;this.src='https://ik.imagekit.io/0ofixtqpt/147554/tr:n-reviewer_image_thumb/avatar.jpg';">
2292                                                                                                                                    </a>
2293                                                                <div class="testi-meta review-text-color nobold">
2294                                                                    MamaKimbo75
2295                                                                </div>
2296                                                                <div class="center rv_time review-text-color">
2297                                                                    2026-07-24
2298                                                                </div>
2299                                                            </div>
2300                                                        </div>
2301                                                        <div class="col-xs-8">
2302                                                            <div class="testi-content">
2303                                                                                                                                    <i class="fab fa-google social"></i>
2304                                                                                                                                                                                                <span class="stars s-5.0">
2305                                                                    <span class='new-star' style="width: 100%;"></span>
2306                                                                </span>
2307                                                                                                                                    <div class="r_more">
2308                                                                        <p class="small-text-color review-text-color review-fulltext-4 hidden-teamtext">I purchased my Rummy Nose Tetras from Odyssey Pets. I stopped in, they only had a couple. Gentlemen gave me Miles card and told me to email him. Miles w
2308as great! He ordered me 20 Rummy Nose Tetras and I picked them up a week later. Video attached is after having them for 2 weeks. They are all healthy, happy, schooling and a  beautiful addition to my 75 gallon. Thank you Miles and everyone at Odyssey Pets. This was my 1st purchase, but definitely not my last! ❤️</p>
2309                                                                        <p class="review-lesstext-4 review-text-color small-text-color"></p>
2310                                                                        <p class="review-moretext-4 review-text-color small-text-color"></p>
2311                                                                    </div>
2312                                                                                                                            </div>
2313                                                        </div>
2314                                                    </div>
2315                                                </div>
2316                                                                                                                                        </div>
2317
2318                                        <div class="col-xs-12 center bottommargin">
2319                                                                                            <a href="/reviews/"
2320                                                   class="button button-large contact-btn button-rounded noleftmargin">View
2321                                                    All
2322                                                    Reviews </a>
2323                                                                                                                                        <a target="_blank"
2324                                                   href="https://app.nextpaw.com/write-review/7MVdXlwfKtHJGidH"
2325                                                   class="button button-large contact-btn button-rounded noleftmargin">Write
2326                                                    A Review </a>
2327                                                                                    </div>
2328                                    </div>
2329                                </div>
2330                                                            </div>
2331                                
2331<script>
2332    function toggleReviewContent(i) {
2333        $(".review-moretext-" + i).toggle();
2334        $(".review-lesstext-" + i).toggle();
2335    }
2336    $(document).ready(function () {
2337        var r_showChar = 100;
2338        var r_ellipsestext = "...";
2339        var r_moretext = "Show More";
2340        var r_lesstext = "Show Less";
2341        var i = 0;
2342        $('.r_more').each(function () {
2343            var r_content = $('.review-fulltext-' + i).html();
2344            var r_readless = '<a class="morelink' + i + ' review-a" onclick="toggleReviewContent(' + i + ')"> ' + r_lesstext + '</a>';
2345            $('p.review-moretext-' + i).html('<i class="fas fa-quote-left fa-2x"></i>'+r_content + r_readless).hide();
2346            if (r_content.length > r_showChar) {
2347                var r_c = r_content.substr(0, r_showChar);
2348                var r_readmore = '<a class="morelink' + i + ' review-a" onclick="toggleReviewContent(' + i + ')"> ' + r_moretext + '</a>';
2349                $('p.review-lesstext-' + i).html('<i class="fas fa-quote-left fa-2x"></i>'+r_c + r_ellipsestext + ' ' + r_readmore);
2350            }else{
2351                $('p.review-moretext-' + i).html('<i class="fas fa-quote-left fa-2x"></i>'+r_content).show();
2352            }
2353            i++;
2354        });
2355    });
2356</script>
2356
2357<!--review part end--->
2358
2359                    </div>
2360        <a href="/contact-us"
2361       class="button button-full cta-widget-btn center">
2362        <div class="container clearfix">
2363            Come visit our pet supply store in Dallas, TX specializing in quality food, treats, and supplies for cats, dogs, fish, and small pets.
2364        </div>
2365    </a>
2366    </section>
2367
2368</div>
2369<!-- Footer
2370============================================= -->
2371
2372<footer id="footer" class="dark">
2373            <div class="container">
2374            <!-- Footer Widgets
2375            ============================================= -->
2376            <div class="footer-widgets-wrap clearfix">
2377                <div class="col-xs-12 col-sm-6 col-md-4">
2378                    <div class="widget clearfix">
2379                        <div class="clearfix">
2380                            <div class="col-md-12">
2381                                <address class="nobottommargin">
2382                                    <a target="_blank"
2383                                       href="https://www.google.com/maps/place/search?q=Odyssey+Pets+14999+Preston+Rd+400a+Dallas+TX+75254&amp;place_id=Ei0xNDk5OSBQcmVzdG9uIFJkICM0MDBhLCBEYWxsYXMsIFRYIDc1MjMwLCBVU0EiIBoeChYKFAoSCdEwMgOdIEyGEaZscOUlIzzlEgQ0MDBh">
2384                                        <h4 class="get-direction-btn"
2385                                            id="map-title">Odyssey Pets</h4></a>
2386                                    14999 Preston Rd, Ste. 400A
2387                                    <br/>                                    Dallas, TX&nbsp&nbsp75254<br>
2388                                    <a class="call-us-btn"
2389                                       href="tel:(972) 407-1166"><abbr
2390                                                title="Phone Number"></abbr>(972) 407-1166
2391                                    </a><br>
2392                                    <a href="mailto:[email protected]" class="footer_email"><abbr
2393                                                title="Email"></abbr>[email protected]</a>
2394                                                                            <div class="shopservices">
2395                                            In-Store Pickup, Curbside Pickup, Local Delivery, Same Day Delivery, No Contact Delivery Available
2396                                        </div>
2397                                                                    </address>
2398                                <!-- Google Map
2399               ============================================= -->
2400                                <div id="map-conatiner" style="">
2401                                    <div id="show-map" class="col_half col_last">
2402                                        <div id="contact_map" class="place contact-us-map">
2403                                            <div class="place footer-map"><a href="https://www.google.com/maps/place/search?q=Odyssey+Pets+14999+Preston+Rd+400a+Dallas+TX+75254&amp;place_id=Ei0xNDk5OSBQcmVzdG9uIFJkICM0MDBhLCBEYWxsYXMsIFRYIDc1MjMwLCBVU0EiIBoeChYKFAoSCdEwMgOdIEyGEaZscOUlIzzlEgQ0MDBh" target="_blank">
2404                                                    <iframe
2405                                                            class="get-direction-btn"
2406                                                            frameborder="0"
2407                                                            style="border:0;"
2408                                                            referrerpolicy="no-referrer-when-downgrade"
2409                                                            src="https://www.google.com/maps/embed/v1/search?key=AIzaSyDLf1mqLyRZJJR1-kQfHuPm5gcLyvgMdc8&q=Odyssey+Pets%2C+14999+Preston+Rd%2C+Ste.+400A%2C+Dallas%2C+TX%2C+75254%2C+US">
2410                                                    </iframe>
2411                                                </a>
2412                                            </div>
2413                                        </div>
2414                                    </div>
2415                                </div>
2416                                <!-- Google Map End -->
2417                            </div>
2418                        </div>
2419                    </div>
2420                </div>
2421                <div class="col-xs-12 col-sm-6 col-md-8">
2422                    <div class="col-xs-12 col-md-5">
2423                        <div class="widget widget_links clearfix">
2424                            <div class="bottommargin-sm">
2425                                <h4 class="nomargin footer-hours-title">Business Hours</h4>
2426                                                                                            </div>
2427
2428                            <table class="table" style="text-align: center;">
2429                                <tbody>
2430                                                                                                        
2431                                                                            <tr>
2432                                            <td style="font-size: 14px; vertical-align: middle;">Mon</td>
2433                                            <td style="font-size: 14px;">
2434                                                                                                                                                        7:30 AM - 7:00 PM
2435                                                                                            </td>
2436                                        </tr>
2437                                                                            <tr>
2438                                            <td style="font-size: 14px; vertical-align: middle;">Tue</td>
2439                                            <td style="font-size: 14px;">
2440                                                                                                                                                        7:30 AM - 7:00 PM
2441                                                                                            </td>
2442                                        </tr>
2443                                                                            <tr>
2444                                            <td style="font-size: 14px; vertical-align: middle;">Wed</td>
2445                                            <td style="font-size: 14px;">
2446                                                                                                                                                        7:30 AM - 7:00 PM
2447                                                                                            </td>
2448                                        </tr>
2449                                                                            <tr>
2450                                            <td style="font-size: 14px; vertical-align: middle;">Thu</td>
2451                                            <td style="font-size: 14px;">
2452                                                                                                                                                        7:30 AM - 7:00 PM
2453                                                                                            </td>
2454                                        </tr>
2455                                                                            <tr>
2456                                            <td style="font-size: 14px; vertical-align: middle;">Fri</td>
2457                                            <td style="font-size: 14px;">
2458                                                                                                                                                        7:30 AM - 7:00 PM
2459                                                                                            </td>
2460                                        </tr>
2461                                                                            <tr>
2462                                            <td style="font-size: 14px; vertical-align: middle;">Sat</td>
2463                                            <td style="font-size: 14px;">
2464                                                                                                                                                        7:30 AM - 7:00 PM
2465                                                                                            </td>
2466                                        </tr>
2467                                                                            <tr>
2468                                            <td style="font-size: 14px; vertical-align: middle;">Sun</td>
2469                                            <td style="font-size: 14px;">
2470                                                                                                                                                        11:00 AM - 6:00 PM
2471                                                                                            </td>
2472                                        </tr>
2473                                    
2474                                                                </tbody>
2475                            </table>
2476
2477                        </div>
2478                    </div>
2479                    <div class="col-xs-12 col-md-3">
2480                        <div class="widget widget_links clearfix">
2481                            <h4>Sitemap</h4>
2482                            <ul>
2483                                                                                                                                            <li>
2484                                                                                            <a href="https://shop.odysseypets.com/" target=_blank>
2485                                                    <div class="footer-sitemap-text">Shop</div>
2486                                                </a>
2487                                                                                    </li>
2488                                                                                                                                                                                    <li>
2489                                                                                            <a href="/pet-food-supply/" >
2490                                                    <div class="footer-sitemap-text">Cat &amp;
2490 Dog</div>
2491                                                </a>
2492                                                                                    </li>
2493                                                                                                                                                                                    <li>
2494                                                                                            <a href="/fish-food-supply/" >
2495                                                    <div class="footer-sitemap-text">Fish</div>
2496                                                </a>
2497                                                                                    </li>
2498                                                                                                                                                                                    <li>
2499                                                                                            <a href="/small-pet-food-supply/" >
2500                                                    <div class="footer-sitemap-text">Small Pets</div>
2501                                                </a>
2502                                                                                    </li>
2503                                                                                                                                                                                    <li>
2504                                                                                            <a href="/services/" >
2505                                                    <div class="footer-sitemap-text">Services</div>
2506                                                </a>
2507                                                                                    </li>
2508                                                                                                                                                                                    <li>
2509                                                                                            <a href="/events/" >
2510                                                    <div class="footer-sitemap-text">Events &amp; Deals</div>
2511                                                </a>
2512                                                                                    </li>
2513                                                                                                                                                                                    <li>
2514                                                                                            <a href="/loyalty-program/" >
2515                                                    <div class="footer-sitemap-text">Loyalty Program</div>
2516                                                </a>
2517                                                                                    </li>
2518                                                                                                                                                                                    <li>
2519                                                                                            <a href="/about-us/" >
2520                                                    <div class="footer-sitemap-text">About</div>
2521                                                </a>
2522                                                                                    </li>
2523                                                                                                                                                                                    <li>
2524                                                                                            <a href="/blog/" >
2525                                                    <div class="footer-sitemap-text">Blog</div>
2526                                                </a>
2527                                                                                    </li>
2528                                                                                                                                                                            <li>
2529                                        <a href="/sitemap/">
2530                                            <div class="footer-sitemap-text">Sitemap</div>
2531                                        </a>
2532                                    </li>
2533                                                            </ul>
2534                        </div>
2535                    </div>
2536                    <div class="col-xs-12 col-md-4">
2537                        <div class="widget quick-contact-widget clearfix">
2538                            <h4>Subscribe</h4>
2539                            <div class="input-group divcenter">
2540                                Get exclusive email offers, promotions, and updates from our business.
2541                            </div>
2542                            <div class="quick-contact-form-result"></div>
2543                            <form class="quick-contact-form nobottommargin subscription-form"
2544                                  name="subscription-form" role="form" enctype="multipart/form-data" method="POST"
2545                                  action="https://odysseypets.com/subscription/save" onsubmit="return false" novalidate>
2546                                <input type="hidden" id="locationId" name="location_id" value="283">
2547                                <input type="hidden" id="clientId" name="client_id" value="222">
2548                                <input type="hidden" name="result" value="footer-result">
2549                                <div class="form-process"></div>
2550                                <div class="input-group divcenter">
2551                                    <span class="input-group-addon"><i class="fas fa-user"></i></span>
2552                                    <input type="text" maxlength="25" class="required form-control input-block-level subscription_name" id="name"
2553                                           name="name" value="" placeholder="Name" required/>
2554                                </div>
2555                                <div class="input-group divcenter">
2556                                    <span class="input-group-addon"><i class="fas fa-envelope"></i></span>
2557                                    <input type="email" class="required form-control email input-block-level" id="email"
2558                                           name="email" value="" placeholder="Email Address" required/>
2559                                </div>
2560                                <div class="g-recaptcha" style="transform: scale(0.5);-webkit-transform: scale(0.7);transform-origin: 0 0;-webkit-transform-origin: 0 0;" data-sitekey="6LfcAGMpAAAAAL68qM6-xqbJeELRxV4MPPD71y27" data-action="NEWSLETTER"></div>
2561                                <button name="submit" type="submit" id="submit-button" tabindex="5" value="Submit"
2562                                        class="button button-large button-rounded btn-success subscribe-btn noleftmargin">
2563                                    Sign Up
2564                                </button>
2565                                <span class="loader"><img src='https://ik.imagekit.io/0ofixtqpt/143716/preloader-dark.gif'/>Sending ..</span>
2566                                <div class="result"></div>
2567                            </form>
2568                        </div>
2569                    </div>
2570                </div>
2571                                    
2571<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js" defer></script>
2571
2572                     
2572<script src="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/message-widget/message-widget-v16.min.js" defer></script>
2572
2573                   
2574                    <message-widget-app app_id="469D-412C-52BD-83B4-69F4"></message-widget-app>
2575                            </div><!-- .footer-widgets-wrap end -->
2576        </div>
2577<!-- Copyrights
2578============================================= -->
2579    <div id="copyrights">
2580        <div class="container clearfix">
2581            <input type="hidden" id="location" name="location" value="">
2582                        <div class="col-xs-12 col-md-8 footer-copyright">
2583                Copyrights &copy; 2026                                    | <a href="/privacy-policy">Privacy Policy</a>
2584                                                    | <a href="/terms-of-services">Terms of Service</a>
2585                                                | Powered by
2586                <a target="_blank" href="https://www.nextpaw.com">
2587                    <img class="powered-by" src="https://ik.imagekit.io/0ofixtqpt/143712/nextpaw.png" width="70px">
2588                </a>
2589                <br>
2590            </div>
2591            <div class="col-xs-12 col-md-4 tright">
2592                <div class="fright clearfix">
2593                                                                                                        
2594                                
2595                                
2596                                                                    <a href="https://maps.app.goo.gl/z1HrjJj2QTakFJPw7" target="_blank"
2597                                       class="social-icon si-small si-borderless si-gplus">
2598                                        <i class="fab fa-google-plus footer-custom-icon"></i>
2599                                    </a>
2600                                
2601                                
2602                                
2603                                
2604                                
2605                                
2606                                                                                                                                                
2607                                
2608                                
2609                                
2610                                                                    <a href="https://www.youtube.com/@OdysseyPets" target="_blank"
2611                                       class="social-icon si-small si-borderless si-youtube">
2612                                        <i class="fab fa-youtube"></i>
2613                                    </a>
2614                                
2615                                
2616                                
2617                                
2618                                
2619                                                                                                                                                                                    <a href="https://www.facebook.com/odysseypets
2619/" target="_blank"
2620                                       class="social-icon si-small si-borderless si-facebook">
2621                                        <i class="fab fa-facebook"></i>
2622                                    </a>
2623                                
2624                                
2625                                
2626                                
2627                                
2628                                
2629                                
2630                                
2631                                
2632                                                                                                                                                                                                                                                        
2633                                
2634                                
2635                                
2636                                
2637                                
2638                                
2639                                
2640                                
2641                                                                                                                                                                                                    
2642                                                                    <a href="https://www.instagram.com/odysseypets
2642/" target="_blank"
2643                                       class="social-icon si-small si-borderless si-instagram">
2644                                        <i class="fab fa-instagram"></i>
2645                                    </a>
2646                                
2647                                
2648                                
2649                                
2650                                
2651                                
2652                                
2653                                
2654                                                                                                                                                                                                                                </div>
2655                <div class="clear"></div>
2656            </div>
2657        </div><!-- #copyrights end -->
2658    </div>
2659    <!--Modal: modalCookie-->
2660    <div class="modal fade top" id="modalCookie1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
2661         aria-hidden="true" data-backdrop="false">
2662        <div class="modal-dialog modal-frame modal-top modal-notify modal-info modal_cookie" role="document">
2663            <!--Content-->
2664            <div class="modal-content">
2665                <!--Body-->
2666                <div class="modal-body cookie_bg">
2667                    <div class="container d-flex justify-content-center align-items-center">
2668                        <div class="col-md-6">
2669                            <p class="text-center loc_msg"></p>
2670                        </div>
2671                        <div class="col-md-6 col-xs-12">
2672                            <a type="button" class="btn btn-lg btn-primary cookie_btn" data-value="NO"
2673                               data-dismiss="modal">No, Thanks</a>
2674                            <a type="button" id="redirect_location" data-slug="" href="" data-value="YES"
2675                               class="btn cookie_btn btn-lg btn-outline-primary waves-effect">Change Location</a>
2676                        </div>
2677                    </div>
2678                </div>
2679            </div>
2680            <!--/.Content-->
2681        </div>
2682    </div>
2683    <style>
2684        .footer-map iframe{
2685            min-width: 300px !important;
2686            max-width: 300px !important;
2687            min-height: 300px !important;
2688            max-height: 300px !important;
2689        }
2690        @media(max-width: 720px) and (min-width:320px){
2691            .footer-map iframe{
2692
2693                max-width: 100% !important;
2694
2695                max-height: 100% !important;
2696            }
2697        }
2698
2699        /*CSS for tiny MCE editor custom class*/
2700        .mce-figcaption-custom {
2701            font-size: 14px;
2702            margin-top: 5px;
2703            font-style: italic;
2704            text-align: center;
2705        }
2706
2707        .mce-figure-custom {
2708            margin-bottom: 10px;
2709        }
2710
2711        .mce-figure-align-left-custom {
2712            float: left;
2713            margin-right: 25px;
2714        }
2715
2716        .mce-figure-align-right-custom {
2717            float: right;
2718            margin-left: 25px;
2719        }
2720
2721        .mce-figure-align-center-custom {
2722            text-align: center;
2723        }
2724
2725        .mce-image-align-left-custom {
2726            margin-right: 25px;
2727            margin-bottom: 10px;
2728        }
2729
2730        .mce-image-align-right-custom {
2731            margin-left: 25px;
2732            margin-bottom: 10px;
2733        }
2734
2735        .mce-image-align-center-custom {
2736            margin-bottom: 10px;
2737        }
2738
2739        .first-widget .divider.divider-border.divider-center {
2740            display: none !important;
2741        }
2742        </style>
2743</footer>
2744<script>
2745    // Get all anchor tags (<a>) on the page
2746const links = document.querySelectorAll('a');
2747
2748// Loop through each link
2749links.forEach(link => {
2750  // Get the href attribute of the link
2751  let href = link.getAttribute('href');
2752  
2753  // Check if the href exists
2754  if (href) {
2755    // If the href is a relative path (starts with '/'), do nothing
2756    if (href.startsWith('/')) {
2757      return;
2758    }
2759
2760    // Check if the href starts with 'http://' or contains 'www' (indicating a non-secure URL)
2761    if (href.startsWith('http://') || href.startsWith('www')) {
2762        link.setAttribute('href', 'https://' + href.replace(/^http:\/\//, '').replace('www.', ''));
2763    }
2764  }
2765});
2766
2767
2768</script>
2768<!-- Return to Top -->
2769    <div id="gotoTop" class="fas fa-arrow-up"></div>
2770<!-- External JavaScripts
2771============================================= -->
2772<!-- Footer Scripts
2773============================================= -->
2774
2775
2776
2777
2778<script defer type="text/javascript">
2779    var headquarterName = "dallas";
2780    var currentLocName = "dallas";
2781    var pageType = "other";
2782</script>
2782
2783
2784<script defer type="text/javascript">
2785    function animateCSS(element, animationName, callback) {
2786        const node = document.querySelector(element)
2787        node.classList.add('animated', animationName)
2788
2789        function handleAnimationEnd() {
2790            node.classList.remove('animated', animationName)
2791            node.removeEventListener('animationend', handleAnimationEnd)
2792
2793            if (typeof callback === 'function') callback()
2794        }
2795
2796        node.addEventListener('animationend', handleAnimationEnd)
2797    }
2798
2799    let closePopup = localStorage.getItem('closeBox');
2800    // lazy load video for apple browser
2801    $(document).ready(function () {
2802        // add frame to video tag for ios devices
2803        const videos = document.querySelectorAll('video');
2804        if(videos.length > 0) {
2805            for (video of videos) { // use var video if "strict mode" is enabled
2806                Object.entries(video.children).forEach(([key, value]) => {
2807                    var newSrc = value.src + '#t=0.1';
2808                    video.children[key].src = newSrc;
2809                    video.setAttribute('playsinline','true');
2810                    video.load();
2811                });
2812            }
2813        }
2814
2815        setInterval(function(){
2816            if($('iframe#ec-credit-card-form').length > 0) {
2817                var url = $('iframe#ec-credit-card-form').attr('src');
2818                var dec = decodeURIComponent(url);
2819                function getParameterByName(name, url) {
2820                    name = name.replace(/[\[\]]/g, '\\$&');
2821                    var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
2822                        results = regex.exec(url);
2823                    if (!results) return null;
2824                    if (!results[2]) return '';
2825                    return decodeURIComponent(results[2].replace(/\+/g, ' '));
2826                }
2827                var color = getParameterByName('color-foreground',dec);
2828                if(color.toString() !== 'rgb(0, 0, 0)') {
2829                    var newColor = 'rgb(0, 0, 0)';
2830                    var newUrl = dec.replace(/(color-foreground=).*?(&)/, '$1' + newColor + '$2');
2831                    var newUrl = newUrl.replace(/(color-price=).*?(&)/, '$1' + newColor + '$2');
2832                    var urlEnc = encodeURI(newUrl);
2833                    $('iframe#ec-credit-card-form').attr('src', urlEnc);
2834                }
2835            }
2836        }, 1000);
2837        if($('.floating_chat').length < 1){
2838            $('body').addClass('fbRight');
2839        }
2840        if($('.fb-customerchat').length < 1){
2841            $('body').addClass('noFb');
2842        }
2843
2844        if(closePopup == 'hide'){
2845            $(".bubbleText").hide();
2846        }
2847
2848        $(document).on('click', function (event) {
2849            if (!$(event.target).closest('.msg_box').length) {
2850                if(!$(event.target).closest('.floating_chat').length){
2851                    if($('.floating_chat').hasClass('closeBox') == true){
2852                        $('.sendBtn').show();
2853                        $('.supportTxt').show();
2854                        $('#formData').show();
2855                        $('.msg_box').removeClass('enter').css({'z-index': 0,'right':'-500px'});
2856                        $('.floating_chat').find('>i').removeClass('fa-times').addClass('fa-weixin');
2857                        $('.floating_chat').addClass('openBox');
2858                        $('.msg_box').removeClass('enter');
2859                        animateCSS('.msg_box', 'fadeOutRight');
2860                        $('.floating_chat').removeClass('closeBox');
2861                        $('.bubbleText').show();
2862                    }
2863                }
2864            }
2865        });
2866        setTimeout(function() {
2867            $('.floating_chat').addClass('enter');
2868        }, 1000);
2869        $('.openBox').click(function () {
2870            if($(this).hasClass('closeBox')){
2871                $('.sendBtn').show();
2872                $('.supportTxt').show();
2873                $('.msg_box').removeClass('enter').css({'z-index': 0,'right':'-500px'});
2874                $(this).find('>i').removeClass('fa-times').addClass('fa-weixin');
2875                $(this).addClass('openBox');
2876                $('.msg_box').removeClass('enter');
2877                animateCSS('.msg_box', 'fadeOutRight');
2878                $(this).removeClass('closeBox');
2879                $('.bubbleText').show();
2880            } else {
2881                $('#formData').show();
2882                $('.msg_box').addClass('enter').css({'z-index':999,'right' : 0});
2883                $(this).find('>i').removeClass('fa-weixin').addClass('fa-times');
2884                $(this).addClass('closeBox');
2885                animateCSS('.msg_box', 'fadeInRight');
2886                $(this).removeClass('openBox');
2887                $('form input[type="text"].bfh-phone, form input[type="tel"].bfh-phone, span.bfh-phone').each(function () {
2888                    var $phone = $(this);
2889                    $phone.bfhphone($phone.data());
2890                });
2891                $('.bubbleText').hide();
2892                $('.SubmittedMessage__SendStatus').hide();
2893                $('.ConfirmationMessage').hide();
2894                $('.SubmittedMessage').removeClass('SubmittedMessage--visible');
2895            }
2896        });
2897
2898        $('#boxclose').click(function () {
2899            $(".bubbleText").fadeOut("normal", function() {
2900                $(this).remove();
2901                localStorage.setItem('closeBox', 'hide');
2902            });
2903        });
2904
2905        $(document).on('touchstart','li.sub-menu', function () {
2906            if(navigator.userAgent.match(/(iPhone|iPod|iPad)/i)){
2907                var count = $(this).attr('click-count');
2908                if(count !== undefined){
2909                    location.href = $(this).children('a').attr('href');
2910                } else{
2911                    if($(this).hasClass('click-class')){
2912                        $(this).attr('click-count',undefined);
2913                    }else{
2914                        $(this).attr('click-count',1);
2915                    }
2916                }
2917            }
2918        });
2919        // remove submenu css if empty
2920        $('li.sub-menu').each(function () {
2921            if($(this).children('ul').children().length === 0){
2922                $(this).children('ul').remove();
2923            }
2924        });
2925
2926        $("video.fullscreen-bg__video source").each(function () {
2927            var sourceFile = $(this).attr("data-src");
2928            $(this).attr("src", sourceFile);
2929            var video = this.parentElement;
2930        });
2931
2932        $('.mySlides').each(function () {
2933            var imgUrl = $(this).children().attr('src');
2934            $(this).children().css('opacity', 0);
2935            $(this).css('background', 'url("' + imgUrl + '")');
2936        });
2937
2938        var myIndex = 0;
2939        if ($(".page-slider-container")[0]) {
2940            carousel();
2941        }
2942
2943        function carousel() {
2944            var i;
2945            var x = document.getElementsByClassName("mySlides");
2946            for (i = 0; i < x.length; i++) {
2947                x[i].style.display = "none";
2948            }
2949            myIndex++;
2950            if (myIndex > x.length) {
2951                myIndex = 1
2952            }
2953            x[myIndex - 1].style.display = "block";
2954            setTimeout(carousel, 2000); // Change image every 2 seconds
2955        }
2956
2957        if ($(".review-background-static").length) {
2958            $('.location-divider').hide();
2959        }
2960        if ($(".review-background-parallax").length) {
2961            $('.location-divider').hide();
2962        }
2963
2964        $('.social_share').each(function () {
2965            $(this).attr('target', '_blank');
2966        });
2967
2968        var font_family = $('body').css('font-family');
2969        var r_font_family = font_family.replace(/\"/g, "");
2970        if (r_font_family == "PT Sans Narrow") {
2971            $("#top-social .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important');
2972        } else if (r_font_family == "Roboto") {
2973            $("#top-social .si-gplus .ts-text").attr('style', 'top: 0px !important;' + 'left:0px !important;' + 'margin-left:-7px !important');
2974            $("#top-social .si-youtube .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important');
2975            $("#top-social .si-linkedin .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important');
2976            $("#top-social .si-yelp .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important');
2977        }
2978    });
2979
2980
2981
2982    document.addEventListener("DOMContentLoaded", function () {
2983        var lazyBackgrounds = [].slice.call(document.querySelectorAll(".lazy-background"));
2984
2985        if ("IntersectionObserver" in window) {
2986            let lazyBackgroundObserver = new IntersectionObserver(function (entries, observer) {
2987                entries.forEach(function (entry) {
2988                    if (entry.isIntersecting) {
2989                        entry.target.classList.add("visible");
2990                        lazyBackgroundObserver.unobserve(entry.target);
2991                    }
2992                });
2993            });
2994
2995            lazyBackgrounds.forEach(function (lazyBackground) {
2996                lazyBackgroundObserver.observe(lazyBackground);
2997            });
2998        }
2999    });
3000
3001    //Add Icon for Submenu in Mobile
3002    $('.sub-menu-trigger').click(function () {
3003        if($(this).children('i').hasClass('rotate-icon')){
3004            $(this).children('i').removeClass('rotate-icon');
3005            $(this).parent().children('ul').css('display','none');
3006        }else{
3007            $(this).children('i').addClass('rotate-icon');
3008            $(this).parent().children('ul').css('display','block');
3009        }
3010    });
3011
3012    //Link to page for Submenu in Mobile
3013    if( /Android|webOS|BlackBerry|iPhone|iPod|iPad/i.test(navigator.userAgent) ) {
3014        var touchmoved;
3015        $('.sub-menu').on('touchend', '.mobile-a', function () {
3016            if(touchmoved != true){
3017                location.href =$(this).attr('href');
3018            }
3019        }).on('touchmove', function(e){
3020            touchmoved = true;
3021        }).on('touchstart', function(){
3022            touchmoved = false;
3023        });
3024
3025        $('.sub-menu').on('touchend').on('touchmove', function(e){
3026            touchmoved = true;
3027        }).on('touchstart', function(){
3028            touchmoved = false;
3029        });
3030    }
3031
3032
3033</script>
3033
3034<!-- Ecwid Seo friendly url js code -->
3035<script>
3036    window.ec = window.ec || {};
3037    window.ec.config = window.ec.config || {};
3038    window.ec.config.storefrontUrls = window.ec.config.storefrontUrls || {};
3039    window.ec.config.storefrontUrls.cleanUrls = true;
3040    if(currentLocName == headquarterName){
3041        window.ec.config.baseUrl = '/shop/';
3042        var ecwid_ProductBrowserURL = "/shop/";
3043    } else{
3044        var ecwid_ProductBrowserURL = currentLocName+'/shop/';
3045        window.ec.config.baseUrl = currentLocName+'/shop/';
3046    }
3047
3048</script>
3048
3049    <!-- Prefetch + Preconnect -->
3050    <link rel="dns-prefetch" href="//www.googletagmanager.com">
3051    <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin>
3052    
3052<script>
3053    function loadGTM(id) {
3054        (function(w,d,s,l,i){
3055            w[l]=w[l]||[];
3056            w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});
3057            var f=d.getElementsByTagName(s)[0],
3058                j=d.createElement(s), dl=l!='dataLayer'?'&l='+l:'';
3059            j.async=true; j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;
3060            f.parentNode.insertBefore(j,f);
3061        })(window,document,'script','dataLayer', id);
3062    }
3063
3064    function loadGtag() {
3065        var url = window.location.host;
3066        if (url.indexOf('.jenkins') === -1 && url.indexOf('.test') === -1) {
3067            var gtagScript = document.createElement('script');
3068            gtagScript.src = "https://www.googletagmanager.com/gtag/js?id=G-9N2957J5VN";
3069            gtagScript.async = true;
3070            document.head.appendChild(gtagScript);
3071
3072            gtagScript.onload = function () {
3073                
vendor: 177 bytes, lines 3073-3076
3073window.dataLayer = window.dataLayer || [];
3074                function gtag(){ dataLayer.push(arguments); }
3075                gtag('js', new Date());
3076                gtag('config', '
3076G-9N2957J5VN
vendor: 16 bytes, lines 3076-3077
3076');
3077            
3077};
3078        }
3079    }
3080
3081    function loadTrackingScripts() {
3082                loadGTM('GTM-NMGWHXT');
3083                                loadGtag();
3084            }
3085
3086    if ('requestIdleCallback' in window) {
3087        requestIdleCallback(loadTrackingScripts, { timeout: 2000 });
3088    } else {
3089        setTimeout(loadTrackingScripts, 2000);
3090    }
3091    </script>
3091
3092
3093    <!-- NOSCRIPT for GTM (should NOT be deferred) -->
vendor: 89 bytes, lines 3093-3095
3093
3094    <noscript>
3095                <iframe src="https://www.googletagmanager.com/ns.html?id=
3095GTM-NMGWHXT
vendor: 106 bytes, lines 3095-3098
3095" height="0" width="0" style="display:none;visibility:hidden"></iframe>
3096                    </noscript>
3097
3098
3099<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-848b5ec7e91ef88ba3a","applicationID":"1416771764","transactionName":"ZwNVYEEHCEVTVEZdDl5JdldHDwlYHXZCRD14EkNEbyUJWEZFXVgNVRREaHAJCEJAWF5YBEImWlVaCA==","queueTime":0,"applicationTime":257,"atts":"S0RWFgkdG0s=","errorBeacon":"bam.nr-data.net","agent":""}</script>
3099</body>
3100</html>

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.