PageSourceSearch

https://odysseypets.com/pet-food-supply/

html odysseypets.com collected 2026-10-04 13:26:21 UTC 263,253 bytes, 3,273 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/pet-food-supply" />
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="dbyu5rgPaJONx0rOu75YYjbJcjVwqXHknjg4lvSV"/>
25    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
26    
27        <meta name="title" content="Healthy Pet Food - Holistic Pet Food Experts In Dallas At Odyssey Pets"/>
28        <meta name="description" content="Looking for healthy pet food options near you? Odyssey Pets offers holistic pet food options &amp; nutritional counseling from pet experts in Dallas, Texas."/>
29        <!-- FB Tags -->
30    <meta property="og:type" content="website">
31    <meta property="og:title" content="Healthy Pet Food - Holistic Pet Food Experts In Dallas At Odyssey Pets">
32    <meta property="og:url" content="https://odysseypets.com/pet-food-supply/">
33    <meta property="og:description" content="Looking for healthy pet food options near you? Odyssey Pets offers holistic pet food options &amp; nutritional counseling from pet experts in Dallas, Texas.">
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>Healthy Pet Food - Holistic Pet Food Experts In Dallas At Odyssey Pets</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/pet-food-supply/" 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" : "Looking for healthy pet food options near you? Odyssey Pets offers holistic pet food options &amp; nutritional counseling from pet experts in Dallas, Texas."
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            <section id="page-title"
1700                 class="page-title-parallax page-title-dark page-title-right hero-bg-image mobile-main-land-section mobile-page-title"
1701                 data-stellar-background-ratio="0.2">
1702            <div class="home-overlay"></div>
1703            <div class="container clearfix center bottommargin-sm-6 hero-title-div">
1704                <h1 class="hero-title">
1705                                            Pet Food and Supply Store in Dallas, TX
1706                                    </h1>
1707                
1708                                                            <a target=&quot;_blank&quot; href="https://www.shop.odysseypets.com/"
1709                           class="button slide_btn_left button-large hero-btn button-rounded noleftmargin topmargin-sm main-widget-image-button sub-page-cta-btn-1 "
1710                           style="background-color: #ffffff">
1711                            Shop Now
1712                        </a>
1713                                    
1714                    
1715                       
1716                       
1717                       
1718                        
1719                    
1720                                                                            <a  href="/contact-us/"
1721                           class="button slide_btn_right button-large button-rounded hero-btn noleftmargin topmargin-sm main-widget-image-button sub-page-cta-btn-2 "
1722                           style="background-color: #ffffff">
1723                            Contact Us
1724                        </a>
1725                                                </div>
1726
1727        </section>
1728        
1728<script>
1729        $(document).ready(function () {
1730            let options = {};
1731            let moptions = {};
1732            $(".pet-brand-btn").click(function () {
1733                $('html, body').animate({scrollTop: $('#pet-brand').offset().top - 250}, '200');
1734            });
1735
1736            var timer = 1;
1737                        var count = parseInt(0); // desktop slide count
1738            var mcount = parseInt(0); // mobile slide count
1739            if(count > 1){ // if greater than 1 slide in desktop then loop true
1740                options = {
1741                    loop: false,
1742                                        autoplay: {
1743                                                delay: '5000',
1744                                                disableOnInteraction: false,
1745                    },
1746                                        navigation: {
1747                        nextEl: '.swiper-button-next',
1748                        prevEl: '.swiper-button-prev',
1749                    },
1750                    pagination: {
1751                        el: '.swiper-pagination',
1752                        clickable: true,
1753                    }
1754                }
1755            } else{ // if ony 1 slide in desktop then loop set to false
1756                options = {
1757                    loop: false,
1758                                        autoplay: {
1759                                                delay: '5000',
1760                                                disableOnInteraction: false,
1761                    },
1762                                        navigation: {
1763                        nextEl: '.swiper-button-next',
1764                        prevEl: '.swiper-button-prev',
1765                    },
1766                    pagination: {
1767                        el: '.swiper-pagination',
1768                        clickable: true,
1769                    }
1770                }
1771            }
1772
1773            if(mcount > 1){ // if greater than 1 slide in mobile then loop true
1774                moptions = {
1775                    loop: false,
1776                                        autoplay: {
1777                                                delay: '5000',
1778                                                disableOnInteraction: false,
1779                    },
1780                                        navigation: {
1781                        nextEl: '.swiper-button-next',
1782                        prevEl: '.swiper-button-prev',
1783                    },
1784                    pagination: {
1785                        el: '.swiper-pagination',
1786                        clickable: true,
1787                    }
1788                }
1789            } else{  // if ony 1 slide in mobile then loop set to false
1790                moptions = {
1791                    loop: false,
1792                                        autoplay: {
1793                                                delay: '5000',
1794                                                disableOnInteraction: false,
1795                    },
1796                                        navigation: {
1797                        nextEl: '.swiper-button-next',
1798                        prevEl: '.swiper-button-prev',
1799                    },
1800                    pagination: {
1801                        el: '.swiper-pagination',
1802                        clickable: true,
1803                    }
1804                }
1805            }
1806
1807
1808            homeslider('.desktop_slider', timer,count,options);
1809            homeslider('.mobile_slider', timer,count,moptions);
1810
1811            function homeslider(type, timer) {
1812                if ($(type + " .swiper-slide").length  > 1)
1813                {
1814                    var swiper = new Swiper(type, options);
1815                    if ($(type + " .swiper-slide").length === 1 || $(type + " .swiper-slide").length === 3) {
1816                        if (swiper.params.loop) {
1817                            $('.swiper-wrapper').addClass("disabled");
1818                            $('.swiper-pagination').addClass("disabled");
1819                            swiper.autoplay.stop();
1820                        }
1821                    }
1822                }
1823            }
1824        });
1825
1826
1827        function hotlink(id) {
1828            var href = $(id).attr("href");
1829            var target = $(id).attr("target");
1830            if (href.charAt(0) == "#") {
1831                if (href.length > 1) {
1832                    $(id).removeAttr("href");
1833                    $(id).addClass("hotlink-btn");
1834                    if (href == '#home-service-section' && ($(id).hasClass("hotlink-btn"))) {
1835
1836                        $('html, body').animate({scrollTop: $('#home-service-section').offset().top - 250}, '200');
1837                        $(id).attr("href", href);
1838                    }
1839                    if (href == '#home-brand-section' && ($(id).hasClass("hotlink-btn"))) {
1840                        $('html, body').animate({scrollTop: $('#home-brand-section').offset().top - 250}, '200');
1841                        $(id).attr("href", href);
1842                    }
1843                    if (href == '#home-event-section' && ($(id).hasClass("hotlink-btn"))) {
1844                        $('html, body').animate({scrollTop: $('#home-event-section').offset().top - 250}, '200');
1845                        $(id).attr("href", href);
1846                    }
1847                    if (href == '#home-promotion-section' && ($(id).hasClass("hotlink-btn"))) {
1848                        $('html, body').animate({scrollTop: $('#home-promotion-section').offset().top - 250}, '200');
1849                        $(id).attr("href", href);
1850                    }
1851                    if (href == '#home-review-section' && ($(id).hasClass("hotlink-btn"))) {
1852                        $('html, body').animate({scrollTop: $('#home-review-section').offset().top - 250}, '200');
1853                        $(id).attr("href", href);
1854                    }
1855                }
1856            } else if (href.charAt(0) != '#' && target == "_blank") {
1857                window.open($(id).attr('href'));
1858            } else if (href.charAt(0) != '#' && target == "undefined") {
1859                window.location.href = $(id).attr('href');
1860            }
1861
1862        }
1863    </script>
1863
1864    <style>
1865        .home-cta-btn-1{
1866            color: #016600 !important;
1867        }
1868        .home-cta-btn-1:hover{
1869            color: #fff !important;
1870        }
1871        .home-cta-btn-2{
1872            color: #016600 !important;
1873        }
1874        .home-cta-btn-2:hover{
1875            color: #fff !important;
1876        }
1877        .home-cta-btn-1:hover{
1878            background-color: !important;
1879        }
1880        .home-cta-btn-2:hover{
1881            background-color:  !important;
1882        }
1883        .sub-page-cta-btn-1{
1884            color: #016600 !important;
1885        }
1886        .sub-page-cta-btn-1:hover{
1887            color: #fff !important;
1888        }
1889        .sub-page-cta-btn-2{
1890            color: #016600 !important;
1891        }
1892        .sub-page-cta-btn-2:hover{
1893            color: #fff !important;
1894        }
1895        .sub-page-cta-btn-1:hover{
1896            background-color: !important;
1897        }
1898        .sub-page-cta-btn-2:hover{
1899            background-color:  !important;
1900        }
1901        
1902            #page-title{
1903            background: url('https://ik.imagekit.io/0ofixtqpt/2931626/tr:n-topbar_bg/website-header-image-no-logo.png') !important;
1904        }
1905                    .home-overlay{
1906            background: rgba(0,0,0,0.2) !important;
1907        }
1908                    @media (max-width:1024px) and (min-width: 320px) {
1909                    .swiper-button-next, .swiper-button-prev, .swiper-pagination {
1910                display: block;
1911            }
1912        
1913                    #slider-cover {
1914                background: none !important;
1915            }
1916                                 #page-title {
1917                background: url('https://ik.imagekit.io/0ofixtqpt/2911637/website-header-images-mobile-2.png') !important;
1918            }
1919                }
1920    </style>
1921
1922    <section id="content">
1923        <div class="content-wrap">
1924                        <div class="container clearfix notopmargin">
1925                <div class="row bottommargin notopmargin">
1926                                                            <div class="col-xs-12 heading-block center bottommargin-sm ">
1927                        <h2>Your local pet experts</h2>
1928            <div class="divcenter small-text text-video text-table container nopadding"><p>Shop Odyssey Pets for an array of the best pet food and pet products. We are located at 14999 Preston Rd, Dallas, TX 75254. Check out our deals page to see what money-saving offers we have happening right now.</p></div>
1929                        </div>
1930                </div>
1931            </div>
1932                        <div class="container clearfix notopmargin">
1933                <div class="row bottommargin notopmargin">
1934                    <div class="container clearfix notopmargin hidden-xs">
1935                                                                                                                        <div class="promotion-container pets_box main-pet-promotion-container">
1936                                        <div data-src="https://ik.imagekit.io/0ofixtqpt/802/tr:n-animal_master_box/cat.jpg"
1937                                             onclick="location.href='/cat-food-supply/';"
1938                                             class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img not_ie_div pet-background">
1939                                        </div>
1940                                        <div onclick="location.href='/cat-food-supply/';"
1941                                             class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img ie_div pet-background"
1942                                             style="background-image: url('https://ik.imagekit.io/0ofixtqpt/802/tr:n-animal_master_box/cat.jpg');">
1943                                        </div>
1944                                        <div class="col-sm-7 promotion-text right-radius">
1945
1946                                            <div class="heading-block cust-heading-color topmargin-sm ">
1947                                                <a href="/cat-food-supply/">
1948                                                    <h2>Cat</h2></a>
1949                                            </div>
1950                                            <div class="col-md-12 cust_li">
1951                                                <span class="small-text">
1952								                    <p>At Odyssey Pets, we offer everything you need to keep your cat purring.&nbsp;</p>
1953								                </span>
1954                                                <a href="/cat-food-supply/"
1955                                                   class="button button-border button-rounded button-large noleftmargin bottommargin-sm">
1956                                                    Read More
1957                                                </a>
1958                                            </div>
1959                                        </div>
1960                                    </div>
1961                                    <div class="clear-both"></div>
1962                                                                                                                                <div class="promotion-container pets_box main-pet-promotion-container">
1963
1964                                        <div class="col-sm-7 promotion-text right-radius">
1965
1966                                            <div class="heading-block cust-heading-color topmargin-sm  ">
1967                                                <a href="/dog-food-supply/">
1968                                                    <h2>Dog</h2></a>
1969                                            </div>
1970                                            <div class="col-md-12 cust_li">
1971                                                <span class="small-text">
1972								                    <p>At Odyssey Pets, we offer everything you need to keep your dog's tail wagging.</p>
1973								                </span>
1974                                                <a href="/dog-food-supply/"
1975                                                   class="button button-border button-rounded button-large noleftmargin bottommargin-sm">
1976                                                    Read More</a>
1977                                            </div>
1978
1979                                        </div>
1980                                        <div onclick="location.href='/dog-food-supply/';"
1981                                             data-src="https://ik.imagekit.io/0ofixtqpt/737/tr:n-animal_master_box/dog_pet.jpg"
1982                                             class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius  mobile_promo_img not_ie_div pet-background">
1983                                        </div>
1984                                        <div onclick="location.href='/dog-food-supply/';"
1985                                             class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img ie_div pet-background"
1986                                             style="background-image: url('https://ik.imagekit.io/0ofixtqpt/737/tr:n-animal_master_box/dog_pet.jpg');">
1987                                        </div>
1988                                    </div>
1989                                                                                                                                <div class="promotion-container pets_box main-pet-promotion-container">
1990                                        <div data-src="https://ik.imagekit.io/0ofixtqpt/1369/tr:n-animal_master_box/fish.jpg"
1991                                             onclick="location.href='/fish-food-supply/';"
1992                                             class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img not_ie_div pet-background">
1993                                        </div>
1994                                        <div onclick="location.href='/fish-food-supply/';"
1995                                             class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img ie_div pet-background"
1996                                             style="background-image: url('https://ik.imagekit.io/0ofixtqpt/1369/tr:n-animal_master_box/fish.jpg');">
1997                                        </div>
1998                                        <div class="col-sm-7 promotion-text right-radius">
1999
2000                                            <div class="heading-block cust-heading-color topmargin-sm ">
2001                                                <a href="/fish-food-supply/">
2002                                                    <h2>Fish</h2></a>
2003                                            </div>
2004                                            <div class="col-md-12 cust_li">
2005                                                <span class="small-text">
2006								                    <p>Shop Odyssey Pets in Dallas, Texas for an assortment of swimmingly fun fish products to make your aquarium a paradise for your fish. Whether you've got a Angelfish or a Cichlid , you can determine the appropriate aquarium and essentials to satisfy your pet fish needs. Our knowledgeable team can help you to set up a new aquarium or find the right product for your pet fish. Come by Odyssey Pets, or call (972) 407-1166 with any questions. We are happy to help.</p>
2007								                </span>
2008                                                <a href="/fish-food-supply/"
2009                                                   class="button button-border button-rounded button-large noleftmargin bottommargin-sm">
2010                                                    Read More
2011                                                </a>
2012                                            </div>
2013                                        </div>
2014                                    </div>
2015                                    <div class="clear-both"></div>
2016                                                                                                                                <div class="promotion-container pets_box main-pet-promotion-container">
2017
2018                                        <div class="col-sm-7 promotion-text right-radius">
2019
2020                                            <div class="heading-block cust-heading-color topmargin-sm  ">
2021                                                <a href="/small-pet-food-supply/">
2022                                                    <h2>Small Animal</h2></a>
2023                                            </div>
2024                                            <div class="col-md-12 cust_li">
2025                                                <span class="small-text">
2026								                    <p>We carry an assortment of products for your little furry family member. Whether you are looking for products for your ferret, gerbil, or rat - we have it at a fantastic price. We are confident you'll discover exactly what you are needing for your small pet.</p>
2027								                </span>
2028                                                <a href="/small-pet-food-supply/"
2029                                                   class="button button-border button-rounded button-large noleftmargin bottommargin-sm">
2030                                                    Read More</a>
2031                                            </div>
2032
2033                                        </div>
2034                                        <div onclick="location.href='/small-pet-food-supply/';"
2035                                             data-src="https://ik.imagekit.io/0ofixtqpt/955/tr:n-animal_master_box/small-pets.jpg"
2036                                             class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius  mobile_promo_img not_ie_div pet-background">
2037                                        </div>
2038                                        <div onclick="location.href='/small-pet-food-supply/';"
2039                                             class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img ie_div pet-background"
2040                                             style="background-image: url('https://ik.imagekit.io/0ofixtqpt/955/tr:n-animal_master_box/small-pets.jpg');">
2041                                        </div>
2042                                    </div>
2043                                                                                                                                <div class="promotion-container pets_box main-pet-promotion-container">
2044                                        <div data-src="https://ik.imagekit.io/0ofixtqpt/764/tr:n-animal_master_box/bird-pet.jpg"
2045                                             onclick="location.href='/bird-food-supply/';"
2046                                             class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img not_ie_div pet-background">
2047                                        </div>
2048                                        <div onclick="location.href='/bird-food-supply/';"
2049                                             class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img ie_div pet-background"
2050                                             style="background-image: url('https://ik.imagekit.io/0ofixtqpt/764/tr:n-animal_master_box/bird-pet.jpg');">
2051                                        </div>
2052                                        <div class="col-sm-7 promotion-text right-radius">
2053
2054                                            <div class="heading-block cust-heading-color topmargin-sm ">
2055                                                <a href="/bird-food-supply/">
2056                                                    <h2>Bird</h2></a>
2057                                            </div>
2058                                            <div class="col-md-12 cust_li">
2059                                                <span class="small-text">
2060								                    <p>Odyssey Pets features an array of the pet bird food and products you need at the cost you count on. The type of avian food you choose to feed can have an effect on the well-being of our feathered pals, and is the reason that we stock a selection of food to choose from. Explore Odyssey Pets in Dallas, TX for everything you need for your pet bird.</p>
2061								                </span>
2062                                                <a href="/bird-food-supply/"
2063                                                   class="button button-border button-rounded button-large noleftmargin bottommargin-sm">
2064                                                    Read More
2065                                                </a>
2066                                            </div>
2067                                        </div>
2068                                    </div>
2069                                    <div class="clear-both"></div>
2070                                                                                    
2071
2072                    </div>
2073
2074                    <div class="clear"></div>
2075
2076                    <div class="container clearfix notopmargin pets_box hidden-md hidden-sm hidden-lg">
2077                                                                                    <div class="promotion-container main-pet-promotion-container">
2078                                    <div onclick="location.href='/cat-food-supply/';"
2079                                         data-src="https://ik.imagekit.io/0ofixtqpt/802/tr:n-animal_master_box/cat.jpg"
2080                                         class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img not_ie_div pet-background">
2081                                    </div>
2082                                    <div onclick="location.href='/cat-food-supply/';"
2083                                         class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img ie_div pet-background"
2084                                         style="background-image: url('https://ik.imagekit.io/0ofixtqpt/802/tr:n-animal_master_box/cat.jpg');">
2085                                    </div>
2086                                    <div class="col-sm-7 promotion-text right-radius">
2087
2088                                        <div class="heading-block cust-heading-color topmargin-sm ">
2089                                            <a href="/cat-food-supply/">
2090                                                <h2>Cat</h2></a>
2091                                        </div>
2092                                        <div class="col-md-12 cust_li">
2093                                            <span class="small-text">
2094                                                <p>At Odyssey Pets, we offer everything you need to keep your cat purring.&nbsp;</p>
2095                                            </span>
2096                                            <a href="/cat-food-supply/"
2097                                               class="button button-border button-rounded button-large noleftmargin bottommargin-sm">
2098                                                Read More
2099                                            </a>
2100                                        </div>
2101                                    </div>
2102                                </div>
2103                                <div class="clear-both"></div>
2104                                                            <div class="promotion-container main-pet-promotion-container">
2105                                    <div onclick="location.href='/dog-food-supply/';"
2106                                         data-src="https://ik.imagekit.io/0ofixtqpt/737/tr:n-animal_master_box/dog_pet.jpg"
2107                                         class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img not_ie_div pet-background">
2108                                    </div>
2109                                    <div onclick="location.href='/dog-food-supply/';"
2110                                         class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img ie_div pet-background"
2111                                         style="background-image: url('https://ik.imagekit.io/0ofixtqpt/737/tr:n-animal_master_box/dog_pet.jpg');">
2112                                    </div>
2113                                    <div class="col-sm-7 promotion-text right-radius">
2114
2115                                        <div class="heading-block cust-heading-color topmargin-sm ">
2116                                            <a href="/dog-food-supply/">
2117                                                <h2>Dog</h2></a>
2118                                        </div>
2119                                        <div class="col-md-12 cust_li">
2120                                            <span class="small-text">
2121                                                <p>At Odyssey Pets, we offer everything you need to keep your dog's tail wagging.</p>
2122                                            </span>
2123                                            <a href="/dog-food-supply/"
2124                                               class="button button-border button-rounded button-large noleftmargin bottommargin-sm">
2125                                                Read More
2126                                            </a>
2127                                        </div>
2128                                    </div>
2129                                </div>
2130                                <div class="clear-both"></div>
2131                                                            <div class="promotion-container main-pet-promotion-container">
2132                                    <div onclick="location.href='/fish-food-supply/';"
2133                                         data-src="https://ik.imagekit.io/0ofixtqpt/1369/tr:n-animal_master_box/fish.jpg"
2134                                         class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img not_ie_div pet-background">
2135                                    </div>
2136                                    <div onclick="location.href='/fish-food-supply/';"
2137                                         class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img ie_div pet-background"
2138                                         style="background-image: url('https://ik.imagekit.io/0ofixtqpt/1369/tr:n-animal_master_box/fish.jpg');">
2139                                    </div>
2140                                    <div class="col-sm-7 promotion-text right-radius">
2141
2142                                        <div class="heading-block cust-heading-color topmargin-sm ">
2143                                            <a href="/fish-food-supply/">
2144                                                <h2>Fish</h2></a>
2145                                        </div>
2146                                        <div class="col-md-12 cust_li">
2147                                            <span class="small-text">
2148                                                <p>Shop Odyssey Pets in Dallas, Texas for an assortment of swimmingly fun fish products to make your aquarium a paradise for your fish. Whether you've got a Angelfish or a Cichlid , you can determine the appropriate aquarium and essentials to satisfy your pet fish needs. Our knowledgeable team can help you to set up a new aquarium or find the right product for your pet fish. Come by Odyssey Pets, or call (972) 407-1166 with any questions. We are happy to help.</p>
2149                                            </span>
2150                                            <a href="/fish-food-supply/"
2151                                               class="button button-border button-rounded button-large noleftmargin bottommargin-sm">
2152                                                Read More
2153                                            </a>
2154                                        </div>
2155                                    </div>
2156                                </div>
2157                                <div class="clear-both"></div>
2158                                                            <div class="promotion-container main-pet-promotion-container">
2159                                    <div onclick="location.href='/small-pet-food-supply/';"
2160                                         data-src="https://ik.imagekit.io/0ofixtqpt/955/tr:n-animal_master_box/small-pets.jpg"
2161                                         class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img not_ie_div pet-background">
2162                                    </div>
2163                                    <div onclick="location.href='/small-pet-food-supply/';"
2164                                         class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img ie_div pet-background"
2165                                         style="background-image: url('https://ik.imagekit.io/0ofixtqpt/955/tr:n-animal_master_box/small-pets.jpg');">
2166                                    </div>
2167                                    <div class="col-sm-7 promotion-text right-radius">
2168
2169                                        <div class="heading-block cust-heading-color topmargin-sm ">
2170                                            <a href="/small-pet-food-supply/">
2171                                                <h2>Small Animal</h2></a>
2172                                        </div>
2173                                        <div class="col-md-12 cust_li">
2174                                            <span class="small-text">
2175                                                <p>We carry an assortment of products for your little furry family member. Whether you are looking for products for your ferret, gerbil, or rat - we have it at a fantastic price. We are confident you'll discover exactly what you are needing for your small pet.</p>
2176                                            </span>
2177                                            <a href="/small-pet-food-supply/"
2178                                               class="button button-border button-rounded button-large noleftmargin bottommargin-sm">
2179                                                Read More
2180                                            </a>
2181                                        </div>
2182                                    </div>
2183                                </div>
2184                                <div class="clear-both"></div>
2185                                                            <div class="promotion-container main-pet-promotion-container">
2186                                    <div onclick="location.href='/bird-food-supply/';"
2187                                         data-src="https://ik.imagekit.io/0ofixtqpt/764/tr:n-animal_master_box/bird-pet.jpg"
2188                                         class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img not_ie_div pet-background">
2189                                    </div>
2190                                    <div onclick="location.href='/bird-food-supply/';"
2191                                         class="col-sm-5 promotion-banner main-pet-promotion-banner left-radius mobile_promo_img ie_div pet-background"
2192                                         style="background-image: url('https://ik.imagekit.io/0ofixtqpt/764/tr:n-animal_master_box/bird-pet.jpg');">
2193                                    </div>
2194                                    <div class="col-sm-7 promotion-text right-radius">
2195
2196                                        <div class="heading-block cust-heading-color topmargin-sm ">
2197                                            <a href="/bird-food-supply/">
2198                                                <h2>Bird</h2></a>
2199                                        </div>
2200                                        <div class="col-md-12 cust_li">
2201                                            <span class="small-text">
2202                                                <p>Odyssey Pets features an array of the pet bird food and products you need at the cost you count on. The type of avian food you choose to feed can have an effect on the well-being of our feathered pals, and is the reason that we stock a selection of food to choose from. Explore Odyssey Pets in Dallas, TX for everything you need for your pet bird.</p>
2203                                            </span>
2204                                            <a href="/bird-food-supply/"
2205                                               class="button button-border button-rounded button-large noleftmargin bottommargin-sm">
2206                                                Read More
2207                                            </a>
2208                                        </div>
2209                                    </div>
2210                                </div>
2211                                <div class="clear-both"></div>
2212                                                                        </div>
2213                </div>
2214            </div>
2215            ;
2216                        <!--review part-->
2217    <style>
2218        .review-widget-testimonial{
2219            background-color: #ffffff    !important;
2220            overflow-y: auto !important;
2221        }
2222        .review-text-color {
2223            color: #333333    !important;
2224        }
2225
2226        .lazy-background.review-background-parallax {
2227            background: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg');
2228        }
2229
2230        .lazy-background.review-background-static {
2231            background: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg');
2232        }
2233
2234        .review-title-color {
2235            color: #ffffff  !important;
2236        }
2237
2238        .review-description-color {
2239            color: #ffffff  !important;
2240        }
2241
2242        .review-overlay {
2243            background: rgba(0,0,0,0.6)  !important;
2244        }
2245
2246        #home-review-section #recent-reviews .heading-block {
2247            margin-bottom: 10px;
2248        }
2249
2250        @media (min-device-width: 768px) and (orientation: portrait) {
2251            .lazy-background.review-background-parallax {
2252                background-image: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg') !important;
2253                background-attachment: scroll !important;
2254            }
2255
2256            .lazy-background.review-background-static {
2257                background-image: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg') !important;
2258            }
2259        }
2260
2261        @media (max-device-width: 1024px) and (orientation: landscape) {
2262            .lazy-background.review-background-parallax {
2263                background-image: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg') !important;
2264                background-attachment: scroll !important;
2265            }
2266
2267            .lazy-background.review-background-static {
2268                background-image: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg') !important;
2269            }
2270        }
2271
2272        @media (max-width: 765px) and (min-width: 320px) {
2273            .lazy-background.review-background-parallax {
2274                background: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg');
2275                background-attachment: scroll !important;
2276            }
2277
2278            .lazy-background.review-background-static {
2279                background: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg');
2280            }
2281        }
2282    </style>
2283                                <div id="home-review-section"
2284                 class="review-section review-background-parallax lazy-background"
2285                 style="margin: 0px !important;">
2286                                                                                    <div class="review-overlay"></div>
2287                                                                <div id="recent-reviews" class="container topmargin clear-bottommargin clearfix">
2288                                    <div class="row clearfix">
2289                                        <div class="heading-block center ">
2290                                            <h2 class="review-title-color">
2291                                                    WHAT Dallas CUSTOMERS ARE SAYING</h2>
2292                                            <span class="divcenter small-text review-description-color">
2293                                                <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.9756415!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>
2294                                        </div>
2295                                                                                    <div class="center small-text review-description-color" style="font-weight: bold; clear: both; margin: 2px 0 15px;">388 trusted five-star reviews</div>
2296                                                                                                                            <div id="oc-testi"
2297                                             class="owl-carousel testimonials-carousel carousel-widget bottommargin "
2298                                             data-margin="20" data-items-xs="1" data-items-sm="2" data-items-lg="3">
2299                                                                                            <div class="oc-item ">
2300                                                    <div class="testimonial bottommargin-sm review-widget-testimonial">
2301                                                        <div class="col-xs-4">
2302                                                            <div class="testi-image">
2303                                                                <a>
2304                                                                                                                                            <img class="lazy"
2305                                                                             src="https://ik.imagekit.io/0ofixtqpt/143729/tr:n-reviewer_image_thumb/default-placeholder.png"
2306                                                                             data-src="https://ik.imagekit.io/0ofixtqpt/5286778/tr:n-reviewer_image_thumb/ACg8ocKwy2ahBoJOqXdKUyOvDhiUTiHnbDraameFyMm7KwkveAtK2Q=s120-c-rp-mo-br100"
2307                                                                             onError="this.onerror=null;this.src='https://ik.imagekit.io/0ofixtqpt/147554/tr:n-reviewer_image_thumb/avatar.jpg';">
2308                                                                                                                                    </a>
2309                                                                <div class="testi-meta review-text-color nobold">
2310                                                                    T Wilson
2311                                                                </div>
2312                                                                <div class="center rv_time review-text-color">
2313                                                                    2026-09-04
2314                                                                </div>
2315                                                            </div>
2316                                                        </div>
2317                                                        <div class="col-xs-8">
2318                                                            <div class="testi-content">
2319                                                                                                                                    <i class="fab fa-google social"></i>
2320                                                                                                                                                                                                <sp
2320an class="stars s-5.0">
2321                                                                    <span class='new-star' style="width: 100%;"></span>
2322                                                                </span>
2323                                                                                                                                    <div class="r_more">
2324                                                                        <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>
2325                                                                        <p class="review-lesstext-0 review-text-color small-text-color"></p>
2326                                                                        <p class="review-moretext-0 review-text-color small-text-color"></p>
2327                                                                    </div>
2328                                                                                                                            </div>
2329                                                        </div>
2330                                                    </div>
2331                                                </div>
2332                                                                                                                                                <div class="oc-item ">
2333                                                    <div class="testimonial bottommargin-sm review-widget-testimonial">
2334                                                        <div class="col-xs-4">
2335                                                            <div class="testi-image">
2336                                                                <a>
2337                                                                                                                                            <img class="lazy"
2338                                                                             src="https://ik.imagekit.io/0ofixtqpt/143729/tr:n-reviewer_image_thumb/default-placeholder.png"
2339                                                                             data-src="https://ik.imagekit.io/0ofixtqpt/5271643/tr:n-reviewer_image_thumb/ALV-UjXaIu6HiBgwsQA5bCtsXlWozJBl17XBXvIcVXIq5Xjd6UuMejVVrg=s120-c-rp-mo-ba12-br100"
2340                                                                             onError="this.onerror=null;this.src='https://ik.imagekit.io/0ofixtqpt/147554/tr:n-reviewer_image_thumb/avatar.jpg';">
2341                                                                                                                                    </a>
2342                                                                <div class="testi-meta review-text-color nobold">
2343                                                                    Michael Said
2344                                                                </div>
2345                                                                <div class="center rv_time review-text-color">
2346                                                                    2026-08-28
2347                                                                </div>
2348                                                            </div>
2349                                                        </div>
2350                                                        <div class="col-xs-8">
2351                                                            <div class="testi-content">
2352                                                                                                                                    <i class="fab fa-google social"></i>
2353                                                                                                                                                                                                <sp
2353an class="stars s-5.0">
2354                                                                    <span class='new-star' style="width: 100%;"></span>
2355                                                                </span>
2356                                                                                                                                    <div class="r_more">
2357                                                                        <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>
2358                                                                        <p class="review-lesstext-1 review-text-color small-text-color"></p>
2359                                                                        <p class="review-moretext-1 review-text-color small-text-color"></p>
2360                                                                    </div>
2361                                                                                                                            </div>
2362                                                        </div>
2363                                                    </div>
2364                                                </div>
2365                                                                                                                                                <div class="oc-item ">
2366                                                    <div class="testimonial bottommargin-sm review-widget-testimonial">
2367                                                        <div class="col-xs-4">
2368                                                            <div class="testi-image">
2369                                                                <a>
2370                                                                                                                                            <img class="lazy"
2371                                                                             src="https://ik.imagekit.io/0ofixtqpt/143729/tr:n-reviewer_image_thumb/default-placeholder.png"
2372                                                                             data-src="https://ik.imagekit.io/0ofixtqpt/5210113/tr:n-reviewer_image_thumb/ALV-UjWpaLx_SutWTkk-FNvbMW8S19jbBDoGokOsxlWm2AgM81Xq5DXAxw=s120-c-rp-mo-br100"
2373                                                                             onError="this.onerror=null;this.src='https://ik.imagekit.io/0ofixtqpt/147554/tr:n-reviewer_image_thumb/avatar.jpg';">
2374                                                                                                                                    </a>
2375                                                                <div class="testi-meta review-text-color nobold">
2376                                                                    Shel Mulry
2377                                                                </div>
2378                                                                <div class="center rv_time review-text-color">
2379                                                                    2026-08-01
2380                                                                </div>
2381                                                            </div>
2382                                                        </div>
2383                                                        <div class="col-xs-8">
2384                                                            <div class="testi-content">
2385                                                                                                                                    <i class="fab fa-google social"></i>
2386                                                                                                                                                                                                <span class="stars s-5.0">
2387                                                                    <span class='new-star' style="width: 100%;"></span>
2388                                                                </span>
2389                                                                                                                                    <div class="r_more">
2390                                                                        <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>
2391                                                                        <p class="review-lesstext-2 review-text-color small-text-color"></p>
2392                                                                        <p class="review-moretext-2 review-text-color small-text-color"></p>
2393                                                                    </div>
2394                                                                                                                            </div>
2395                                                        </div>
2396                                                    </div>
2397                                                </div>
2398                                                                                                                                                <div class="oc-item ">
2399                                                    <div class="testimonial bottommargin-sm review-widget-testimonial">
2400                                                        <div class="col-xs-4">
2401                                                            <div class="testi-image">
2402                                                                <a>
2403                                                                                                                                            <img class="lazy"
2404                                                                             src="https://ik.imagekit.io/0ofixtqpt/143729/tr:n-reviewer_image_thumb/default-placeholder.png"
2405                                                                             data-src="https://ik.imagekit.io/0ofixtqpt/5211493/tr:n-reviewer_image_thumb/ACg8ocKn0K7T4bwpFOA6DhZqAumUPrxBfjRshyKggU5COyyojF8XNw=s120-c-rp-mo-br100"
2406                                                                             onError="this.onerror=null;this.src='https://ik.imagekit.io/0ofixtqpt/147554/tr:n-reviewer_image_thumb/avatar.jpg';">
2407                                                                                                                                    </a>
2408                                                                <div class="testi-meta review-text-color nobold">
2409                                                                    Bob “USMCVet1985”
2410                                                                </div>
2411                                                                <div class="center rv_time review-text-color">
2412                                                                    2026-08-01
2413                                                                </div>
2414                                                            </div>
2415                                                        </div>
2416                                                        <div class="col-xs-8">
2417                                                            <div class="testi-content">
2418                                                                                                                                    <i class="fab fa-google social"></i>
2419                                                                                                                                                                                                <sp
2419an class="stars s-5.0">
2420                                                                    <span class='new-star' style="width: 100%;"></span>
2421                                                                </span>
2422                                                                                                                                    <div class="r_more">
2423                                                                        <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>
2424                                                                        <p class="review-lesstext-3 review-text-color small-text-color"></p>
2425                                                                        <p class="review-moretext-3 review-text-color small-text-color"></p>
2426                                                                    </div>
2427                                                                                                                            </div>
2428                                                        </div>
2429                                                    </div>
2430                                                </div>
2431                                                                                                                                                <div class="oc-item ">
2432                                                    <div class="testimonial bottommargin-sm review-widget-testimonial">
2433                                                        <div class="col-xs-4">
2434                                                            <div class="testi-image">
2435                                                                <a>
2436                                                                                                                                            <img class="lazy"
2437                                                                             src="https://ik.imagekit.io/0ofixtqpt/143729/tr:n-reviewer_image_thumb/default-placeholder.png"
2438                                                                             data-src="https://ik.imagekit.io/0ofixtqpt/5188183/tr:n-reviewer_image_thumb/ALV-UjVhlm2GQW13y2OmLNqaEgFKUKODfMH2ZPeVganganGua8qIYs8=s120-c-rp-mo-ba12-br100"
2439                                                                             onError="this.onerror=null;this.src='https://ik.imagekit.io/0ofixtqpt/147554/tr:n-reviewer_image_thumb/avatar.jpg';">
2440                                                                                                                                    </a>
2441                                                                <div class="testi-meta review-text-color nobold">
2442                                                                    MamaKimbo75
2443                                                                </div>
2444                                                                <div class="center rv_time review-text-color">
2445                                                                    2026-07-24
2446                                                                </div>
2447                                                            </div>
2448                                                        </div>
2449                                                        <div class="col-xs-8">
2450                                                            <div class="testi-content">
2451                                                                                                                                    <i class="fab fa-google social"></i>
2452                                                                                                                                                                                                <span class="stars s-5.0">
2453                                                                    <span class='new-star' style="width: 100%;"></span>
2454                                                                </span>
2455                                                                                                                                    <div class="r_more">
2456                                                                        <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
2456as 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>
2457                                                                        <p class="review-lesstext-4 review-text-color small-text-color"></p>
2458                                                                        <p class="review-moretext-4 review-text-color small-text-color"></p>
2459                                                                    </div>
2460                                                                                                                            </div>
2461                                                        </div>
2462                                                    </div>
2463                                                </div>
2464                                                                                                                                        </div>
2465
2466                                        <div class="col-xs-12 center bottommargin">
2467                                                                                            <a href="/reviews/"
2468                                                   class="button button-large contact-btn button-rounded noleftmargin">View
2469                                                    All
2470                                                    Reviews </a>
2471                                                                                                                                        <a target="_blank"
2472                                                   href="https://app.nextpaw.com/write-review/7MVdXlwfKtHJGidH"
2473                                                   class="button button-large contact-btn button-rounded noleftmargin">Write
2474                                                    A Review </a>
2475                                                                                    </div>
2476                                    </div>
2477                                </div>
2478                                                            </div>
2479                                
2479<script>
2480    function toggleReviewContent(i) {
2481        $(".review-moretext-" + i).toggle();
2482        $(".review-lesstext-" + i).toggle();
2483    }
2484    $(document).ready(function () {
2485        var r_showChar = 100;
2486        var r_ellipsestext = "...";
2487        var r_moretext = "Show More";
2488        var r_lesstext = "Show Less";
2489        var i = 0;
2490        $('.r_more').each(function () {
2491            var r_content = $('.review-fulltext-' + i).html();
2492            var r_readless = '<a class="morelink' + i + ' review-a" onclick="toggleReviewContent(' + i + ')"> ' + r_lesstext + '</a>';
2493            $('p.review-moretext-' + i).html('<i class="fas fa-quote-left fa-2x"></i>'+r_content + r_readless).hide();
2494            if (r_content.length > r_showChar) {
2495                var r_c = r_content.substr(0, r_showChar);
2496                var r_readmore = '<a class="morelink' + i + ' review-a" onclick="toggleReviewContent(' + i + ')"> ' + r_moretext + '</a>';
2497                $('p.review-lesstext-' + i).html('<i class="fas fa-quote-left fa-2x"></i>'+r_c + r_ellipsestext + ' ' + r_readmore);
2498            }else{
2499                $('p.review-moretext-' + i).html('<i class="fas fa-quote-left fa-2x"></i>'+r_content).show();
2500            }
2501            i++;
2502        });
2503    });
2504</script>
2504
2505<!--review part end--->
2506                    </div>
2507        <a href="/contact-us"
2508       class="button button-full cta-widget-btn center">
2509        <div class="container clearfix">
2510            Come visit our pet supply store in Dallas, TX specializing in quality food, treats, and supplies for cats, dogs, fish, and small pets.
2511        </div>
2512    </a>
2513    </section>
2514    
2514<script defer>
2515        document.addEventListener("DOMContentLoaded", function () {
2516            var lazyBackgrounds = [].slice.call(document.querySelectorAll(".pet-background"));
2517            if(/MSIE \d|Trident.*rv:/.test(navigator.userAgent)){
2518                $('.not_ie_div').hide();
2519                $('.ie_div').show();
2520            } else {
2521                $('.ie_div').hide();
2522                $('.not_ie_div').show();
2523                if ("IntersectionObserver" in window) {
2524                    let lazyBackgroundObserver = new IntersectionObserver(function (entries, observer) {
2525                        entries.forEach(function (entry) {
2526                            if (entry.isIntersecting) {
2527                                var bg_url = entry.target.dataset.src;
2528                                entry.target.setAttribute('style', 'background-image:url("' + bg_url + '") !important');
2529                                entry.target.classList.add("visible");
2530                                lazyBackgroundObserver.unobserve(entry.target);
2531                            }
2532                        });
2533                    });
2534                    lazyBackgrounds.forEach(function (lazyBackground) {
2535                        lazyBackgroundObserver.observe(lazyBackground);
2536                    });
2537                }
2538            }
2539        });
2540    </script>
2540
2541</div>
2542<!-- Footer
2543============================================= -->
2544
2545<footer id="footer" class="dark">
2546            <div class="container">
2547            <!-- Footer Widgets
2548            ============================================= -->
2549            <div class="footer-widgets-wrap clearfix">
2550                <div class="col-xs-12 col-sm-6 col-md-4">
2551                    <div class="widget clearfix">
2552                        <div class="clearfix">
2553                            <div class="col-md-12">
2554                                <address class="nobottommargin">
2555                                    <a target="_blank"
2556                                       href="https://www.google.com/maps/place/search?q=Odyssey+Pets+14999+Preston+Rd+400a+Dallas+TX+75254&amp;place_id=Ei0xNDk5OSBQcmVzdG9uIFJkICM0MDBhLCBEYWxsYXMsIFRYIDc1MjMwLCBVU0EiIBoeChYKFAoSCdEwMgOdIEyGEaZscOUlIzzlEgQ0MDBh">
2557                                        <h4 class="get-direction-btn"
2558                                            id="map-title">Odyssey Pets</h4></a>
2559                                    14999 Preston Rd, Ste. 400A
2560                                    <br/>                                    Dallas, TX&nbsp&nbsp75254<br>
2561                                    <a class="call-us-btn"
2562                                       href="tel:(972) 407-1166"><abbr
2563                                                title="Phone Number"></abbr>(972) 407-1166
2564                                    </a><br>
2565                                    <a href="mailto:[email protected]" class="footer_email"><abbr
2566                                                title="Email"></abbr>[email protected]</a>
2567                                                                            <div class="shopservices">
2568                                            In-Store Pickup, Curbside Pickup, Local Delivery, Same Day Delivery, No Contact Delivery Available
2569                                        </div>
2570                                                                    </address>
2571                                <!-- Google Map
2572               ============================================= -->
2573                                <div id="map-conatiner" style="">
2574                                    <div id="show-map" class="col_half col_last">
2575                                        <div id="contact_map" class="place contact-us-map">
2576                                            <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">
2577                                                    <iframe
2578                                                            class="get-direction-btn"
2579                                                            frameborder="0"
2580                                                            style="border:0;"
2581                                                            referrerpolicy="no-referrer-when-downgrade"
2582                                                            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">
2583                                                    </iframe>
2584                                                </a>
2585                                            </div>
2586                                        </div>
2587                                    </div>
2588                                </div>
2589                                <!-- Google Map End -->
2590                            </div>
2591                        </div>
2592                    </div>
2593                </div>
2594                <div class="col-xs-12 col-sm-6 col-md-8">
2595                    <div class="col-xs-12 col-md-5">
2596                        <div class="widget widget_links clearfix">
2597                            <div class="bottommargin-sm">
2598                                <h4 class="nomargin footer-hours-title">Business Hours</h4>
2599                                                                                            </div>
2600
2601                            <table class="table" style="text-align: center;">
2602                                <tbody>
2603                                                                                                        
2604                                                                            <tr>
2605                                            <td style="font-size: 14px; vertical-align: middle;">Mon</td>
2606                                            <td style="font-size: 14px;">
2607                                                                                                                                                        7:30 AM - 7:00 PM
2608                                                                                            </td>
2609                                        </tr>
2610                                                                            <tr>
2611                                            <td style="font-size: 14px; vertical-align: middle;">Tue</td>
2612                                            <td style="font-size: 14px;">
2613                                                                                                                                                        7:30 AM - 7:00 PM
2614                                                                                            </td>
2615                                        </tr>
2616                                                                            <tr>
2617                                            <td style="font-size: 14px; vertical-align: middle;">Wed</td>
2618                                            <td style="font-size: 14px;">
2619                                                                                                                                                        7:30 AM - 7:00 PM
2620                                                                                            </td>
2621                                        </tr>
2622                                                                            <tr>
2623                                            <td style="font-size: 14px; vertical-align: middle;">Thu</td>
2624                                            <td style="font-size: 14px;">
2625                                                                                                                                                        7:30 AM - 7:00 PM
2626                                                                                            </td>
2627                                        </tr>
2628                                                                            <tr>
2629                                            <td style="font-size: 14px; vertical-align: middle;">Fri</td>
2630                                            <td style="font-size: 14px;">
2631                                                                                                                                                        7:30 AM - 7:00 PM
2632                                                                                            </td>
2633                                        </tr>
2634                                                                            <tr>
2635                                            <td style="font-size: 14px; vertical-align: middle;">Sat</td>
2636                                            <td style="font-size: 14px;">
2637                                                                                                                                                        7:30 AM - 7:00 PM
2638                                                                                            </td>
2639                                        </tr>
2640                                                                            <tr>
2641                                            <td style="font-size: 14px; vertical-align: middle;">Sun</td>
2642                                            <td style="font-size: 14px;">
2643                                                                                                                                                        11:00 AM - 6:00 PM
2644                                                                                            </td>
2645                                        </tr>
2646                                    
2647                                                                </tbody>
2648                            </table>
2649
2650                        </div>
2651                    </div>
2652                    <div class="col-xs-12 col-md-3">
2653                        <div class="widget widget_links clearfix">
2654                            <h4>Sitemap</h4>
2655                            <ul>
2656                                                                                                                                            <li>
2657                                                                                            <a href="https://shop.odysseypets.com/" target=_blank>
2658                                                    <div class="footer-sitemap-text">Shop</div>
2659                                                </a>
2660                                                                                    </li>
2661                                                                                                                                                                                    <li>
2662                                                                                            <a href="/pet-food-supply/" >
2663                                                    <div class="footer-sitemap-text">Cat &amp;
2663 Dog</div>
2664                                                </a>
2665                                                                                    </li>
2666                                                                                                                                                                                    <li>
2667                                                                                            <a href="/fish-food-supply/" >
2668                                                    <div class="footer-sitemap-text">Fish</div>
2669                                                </a>
2670                                                                                    </li>
2671                                                                                                                                                                                    <li>
2672                                                                                            <a href="/small-pet-food-supply/" >
2673                                                    <div class="footer-sitemap-text">Small Pets</div>
2674                                                </a>
2675                                                                                    </li>
2676                                                                                                                                                                                    <li>
2677                                                                                            <a href="/services/" >
2678                                                    <div class="footer-sitemap-text">Services</div>
2679                                                </a>
2680                                                                                    </li>
2681                                                                                                                                                                                    <li>
2682                                                                                            <a href="/events/" >
2683                                                    <div class="footer-sitemap-text">Events &amp; Deals</div>
2684                                                </a>
2685                                                                                    </li>
2686                                                                                                                                                                                    <li>
2687                                                                                            <a href="/loyalty-program/" >
2688                                                    <div class="footer-sitemap-text">Loyalty Program</div>
2689                                                </a>
2690                                                                                    </li>
2691                                                                                                                                                                                    <li>
2692                                                                                            <a href="/about-us/" >
2693                                                    <div class="footer-sitemap-text">About</div>
2694                                                </a>
2695                                                                                    </li>
2696                                                                                                                                                                                    <li>
2697                                                                                            <a href="/blog/" >
2698                                                    <div class="footer-sitemap-text">Blog</div>
2699                                                </a>
2700                                                                                    </li>
2701                                                                                                                                                                            <li>
2702                                        <a href="/sitemap/">
2703                                            <div class="footer-sitemap-text">Sitemap</div>
2704                                        </a>
2705                                    </li>
2706                                                            </ul>
2707                        </div>
2708                    </div>
2709                    <div class="col-xs-12 col-md-4">
2710                        <div class="widget quick-contact-widget clearfix">
2711                            <h4>Subscribe</h4>
2712                            <div class="input-group divcenter">
2713                                Get exclusive email offers, promotions, and updates from our business.
2714                            </div>
2715                            <div class="quick-contact-form-result"></div>
2716                            <form class="quick-contact-form nobottommargin subscription-form"
2717                                  name="subscription-form" role="form" enctype="multipart/form-data" method="POST"
2718                                  action="https://odysseypets.com/subscription/save" onsubmit="return false" novalidate>
2719                                <input type="hidden" id="locationId" name="location_id" value="283">
2720                                <input type="hidden" id="clientId" name="client_id" value="222">
2721                                <input type="hidden" name="result" value="footer-result">
2722                                <div class="form-process"></div>
2723                                <div class="input-group divcenter">
2724                                    <span class="input-group-addon"><i class="fas fa-user"></i></span>
2725                                    <input type="text" maxlength="25" class="required form-control input-block-level subscription_name" id="name"
2726                                           name="name" value="" placeholder="Name" required/>
2727                                </div>
2728                                <div class="input-group divcenter">
2729                                    <span class="input-group-addon"><i class="fas fa-envelope"></i></span>
2730                                    <input type="email" class="required form-control email input-block-level" id="email"
2731                                           name="email" value="" placeholder="Email Address" required/>
2732                                </div>
2733                                <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>
2734                                <button name="submit" type="submit" id="submit-button" tabindex="5" value="Submit"
2735                                        class="button button-large button-rounded btn-success subscribe-btn noleftmargin">
2736                                    Sign Up
2737                                </button>
2738                                <span class="loader"><img src='https://ik.imagekit.io/0ofixtqpt/143716/preloader-dark.gif'/>Sending ..</span>
2739                                <div class="result"></div>
2740                            </form>
2741                        </div>
2742                    </div>
2743                </div>
2744                                    
2744<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js" defer></script>
2744
2745                     
2745<script src="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/message-widget/message-widget-v16.min.js" defer></script>
2745
2746                   
2747                    <message-widget-app app_id="469D-412C-52BD-83B4-69F4"></message-widget-app>
2748                            </div><!-- .footer-widgets-wrap end -->
2749        </div>
2750<!-- Copyrights
2751============================================= -->
2752    <div id="copyrights">
2753        <div class="container clearfix">
2754            <input type="hidden" id="location" name="location" value="">
2755                        <div class="col-xs-12 col-md-8 footer-copyright">
2756                Copyrights &copy; 2026                                    | <a href="/privacy-policy">Privacy Policy</a>
2757                                                    | <a href="/terms-of-services">Terms of Service</a>
2758                                                | Powered by
2759                <a target="_blank" href="https://www.nextpaw.com">
2760                    <img class="powered-by" src="https://ik.imagekit.io/0ofixtqpt/143712/nextpaw.png" width="70px">
2761                </a>
2762                <br>
2763            </div>
2764            <div class="col-xs-12 col-md-4 tright">
2765                <div class="fright clearfix">
2766                                                                                                        
2767                                
2768                                
2769                                                                    <a href="https://maps.app.goo.gl/z1HrjJj2QTakFJPw7" target="_blank"
2770                                       class="social-icon si-small si-borderless si-gplus">
2771                                        <i class="fab fa-google-plus footer-custom-icon"></i>
2772                                    </a>
2773                                
2774                                
2775                                
2776                                
2777                                
2778                                
2779                                                                                                                                                
2780                                
2781                                
2782                                
2783                                                                    <a href="https://www.youtube.com/@OdysseyPets" target="_blank"
2784                                       class="social-icon si-small si-borderless si-youtube">
2785                                        <i class="fab fa-youtube"></i>
2786                                    </a>
2787                                
2788                                
2789                                
2790                                
2791                                
2792                                                                                                                                                                                    <a href="https://www.facebook.com/odysseypets
2792/" target="_blank"
2793                                       class="social-icon si-small si-borderless si-facebook">
2794                                        <i class="fab fa-facebook"></i>
2795                                    </a>
2796                                
2797                                
2798                                
2799                                
2800                                
2801                                
2802                                
2803                                
2804                                
2805                                                                                                                                                                                                                                                        
2806                                
2807                                
2808                                
2809                                
2810                                
2811                                
2812                                
2813                                
2814                                                                                                                                                                                                    
2815                                                                    <a href="https://www.instagram.com/odysseypets
2815/" target="_blank"
2816                                       class="social-icon si-small si-borderless si-instagram">
2817                                        <i class="fab fa-instagram"></i>
2818                                    </a>
2819                                
2820                                
2821                                
2822                                
2823                                
2824                                
2825                                
2826                                
2827                                                                                                                                                                                                                                </div>
2828                <div class="clear"></div>
2829            </div>
2830        </div><!-- #copyrights end -->
2831    </div>
2832    <!--Modal: modalCookie-->
2833    <div class="modal fade top" id="modalCookie1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
2834         aria-hidden="true" data-backdrop="false">
2835        <div class="modal-dialog modal-frame modal-top modal-notify modal-info modal_cookie" role="document">
2836            <!--Content-->
2837            <div class="modal-content">
2838                <!--Body-->
2839                <div class="modal-body cookie_bg">
2840                    <div class="container d-flex justify-content-center align-items-center">
2841                        <div class="col-md-6">
2842                            <p class="text-center loc_msg"></p>
2843                        </div>
2844                        <div class="col-md-6 col-xs-12">
2845                            <a type="button" class="btn btn-lg btn-primary cookie_btn" data-value="NO"
2846                               data-dismiss="modal">No, Thanks</a>
2847                            <a type="button" id="redirect_location" data-slug="" href="" data-value="YES"
2848                               class="btn cookie_btn btn-lg btn-outline-primary waves-effect">Change Location</a>
2849                        </div>
2850                    </div>
2851                </div>
2852            </div>
2853            <!--/.Content-->
2854        </div>
2855    </div>
2856    <style>
2857        .footer-map iframe{
2858            min-width: 300px !important;
2859            max-width: 300px !important;
2860            min-height: 300px !important;
2861            max-height: 300px !important;
2862        }
2863        @media(max-width: 720px) and (min-width:320px){
2864            .footer-map iframe{
2865
2866                max-width: 100% !important;
2867
2868                max-height: 100% !important;
2869            }
2870        }
2871
2872        /*CSS for tiny MCE editor custom class*/
2873        .mce-figcaption-custom {
2874            font-size: 14px;
2875            margin-top: 5px;
2876            font-style: italic;
2877            text-align: center;
2878        }
2879
2880        .mce-figure-custom {
2881            margin-bottom: 10px;
2882        }
2883
2884        .mce-figure-align-left-custom {
2885            float: left;
2886            margin-right: 25px;
2887        }
2888
2889        .mce-figure-align-right-custom {
2890            float: right;
2891            margin-left: 25px;
2892        }
2893
2894        .mce-figure-align-center-custom {
2895            text-align: center;
2896        }
2897
2898        .mce-image-align-left-custom {
2899            margin-right: 25px;
2900            margin-bottom: 10px;
2901        }
2902
2903        .mce-image-align-right-custom {
2904            margin-left: 25px;
2905            margin-bottom: 10px;
2906        }
2907
2908        .mce-image-align-center-custom {
2909            margin-bottom: 10px;
2910        }
2911
2912        .first-widget .divider.divider-border.divider-center {
2913            display: none !important;
2914        }
2915        </style>
2916</footer>
2917<script>
2918    // Get all anchor tags (<a>) on the page
2919const links = document.querySelectorAll('a');
2920
2921// Loop through each link
2922links.forEach(link => {
2923  // Get the href attribute of the link
2924  let href = link.getAttribute('href');
2925  
2926  // Check if the href exists
2927  if (href) {
2928    // If the href is a relative path (starts with '/'), do nothing
2929    if (href.startsWith('/')) {
2930      return;
2931    }
2932
2933    // Check if the href starts with 'http://' or contains 'www' (indicating a non-secure URL)
2934    if (href.startsWith('http://') || href.startsWith('www')) {
2935        link.setAttribute('href', 'https://' + href.replace(/^http:\/\//, '').replace('www.', ''));
2936    }
2937  }
2938});
2939
2940
2941</script>
2941<!-- Return to Top -->
2942    <div id="gotoTop" class="fas fa-arrow-up"></div>
2943<!-- External JavaScripts
2944============================================= -->
2945<!-- Footer Scripts
2946============================================= -->
2947
2948
2949
2950
2951<script defer type="text/javascript">
2952    var headquarterName = "dallas";
2953    var currentLocName = "dallas";
2954    var pageType = "other";
2955</script>
2955
2956
2957<script defer type="text/javascript">
2958    function animateCSS(element, animationName, callback) {
2959        const node = document.querySelector(element)
2960        node.classList.add('animated', animationName)
2961
2962        function handleAnimationEnd() {
2963            node.classList.remove('animated', animationName)
2964            node.removeEventListener('animationend', handleAnimationEnd)
2965
2966            if (typeof callback === 'function') callback()
2967        }
2968
2969        node.addEventListener('animationend', handleAnimationEnd)
2970    }
2971
2972    let closePopup = localStorage.getItem('closeBox');
2973    // lazy load video for apple browser
2974    $(document).ready(function () {
2975        // add frame to video tag for ios devices
2976        const videos = document.querySelectorAll('video');
2977        if(videos.length > 0) {
2978            for (video of videos) { // use var video if "strict mode" is enabled
2979                Object.entries(video.children).forEach(([key, value]) => {
2980                    var newSrc = value.src + '#t=0.1';
2981                    video.children[key].src = newSrc;
2982                    video.setAttribute('playsinline','true');
2983                    video.load();
2984                });
2985            }
2986        }
2987
2988        setInterval(function(){
2989            if($('iframe#ec-credit-card-form').length > 0) {
2990                var url = $('iframe#ec-credit-card-form').attr('src');
2991                var dec = decodeURIComponent(url);
2992                function getParameterByName(name, url) {
2993                    name = name.replace(/[\[\]]/g, '\\$&');
2994                    var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
2995                        results = regex.exec(url);
2996                    if (!results) return null;
2997                    if (!results[2]) return '';
2998                    return decodeURIComponent(results[2].replace(/\+/g, ' '));
2999                }
3000                var color = getParameterByName('color-foreground',dec);
3001                if(color.toString() !== 'rgb(0, 0, 0)') {
3002                    var newColor = 'rgb(0, 0, 0)';
3003                    var newUrl = dec.replace(/(color-foreground=).*?(&)/, '$1' + newColor + '$2');
3004                    var newUrl = newUrl.replace(/(color-price=).*?(&)/, '$1' + newColor + '$2');
3005                    var urlEnc = encodeURI(newUrl);
3006                    $('iframe#ec-credit-card-form').attr('src', urlEnc);
3007                }
3008            }
3009        }, 1000);
3010        if($('.floating_chat').length < 1){
3011            $('body').addClass('fbRight');
3012        }
3013        if($('.fb-customerchat').length < 1){
3014            $('body').addClass('noFb');
3015        }
3016
3017        if(closePopup == 'hide'){
3018            $(".bubbleText").hide();
3019        }
3020
3021        $(document).on('click', function (event) {
3022            if (!$(event.target).closest('.msg_box').length) {
3023                if(!$(event.target).closest('.floating_chat').length){
3024                    if($('.floating_chat').hasClass('closeBox') == true){
3025                        $('.sendBtn').show();
3026                        $('.supportTxt').show();
3027                        $('#formData').show();
3028                        $('.msg_box').removeClass('enter').css({'z-index': 0,'right':'-500px'});
3029                        $('.floating_chat').find('>i').removeClass('fa-times').addClass('fa-weixin');
3030                        $('.floating_chat').addClass('openBox');
3031                        $('.msg_box').removeClass('enter');
3032                        animateCSS('.msg_box', 'fadeOutRight');
3033                        $('.floating_chat').removeClass('closeBox');
3034                        $('.bubbleText').show();
3035                    }
3036                }
3037            }
3038        });
3039        setTimeout(function() {
3040            $('.floating_chat').addClass('enter');
3041        }, 1000);
3042        $('.openBox').click(function () {
3043            if($(this).hasClass('closeBox')){
3044                $('.sendBtn').show();
3045                $('.supportTxt').show();
3046                $('.msg_box').removeClass('enter').css({'z-index': 0,'right':'-500px'});
3047                $(this).find('>i').removeClass('fa-times').addClass('fa-weixin');
3048                $(this).addClass('openBox');
3049                $('.msg_box').removeClass('enter');
3050                animateCSS('.msg_box', 'fadeOutRight');
3051                $(this).removeClass('closeBox');
3052                $('.bubbleText').show();
3053            } else {
3054                $('#formData').show();
3055                $('.msg_box').addClass('enter').css({'z-index':999,'right' : 0});
3056                $(this).find('>i').removeClass('fa-weixin').addClass('fa-times');
3057                $(this).addClass('closeBox');
3058                animateCSS('.msg_box', 'fadeInRight');
3059                $(this).removeClass('openBox');
3060                $('form input[type="text"].bfh-phone, form input[type="tel"].bfh-phone, span.bfh-phone').each(function () {
3061                    var $phone = $(this);
3062                    $phone.bfhphone($phone.data());
3063                });
3064                $('.bubbleText').hide();
3065                $('.SubmittedMessage__SendStatus').hide();
3066                $('.ConfirmationMessage').hide();
3067                $('.SubmittedMessage').removeClass('SubmittedMessage--visible');
3068            }
3069        });
3070
3071        $('#boxclose').click(function () {
3072            $(".bubbleText").fadeOut("normal", function() {
3073                $(this).remove();
3074                localStorage.setItem('closeBox', 'hide');
3075            });
3076        });
3077
3078        $(document).on('touchstart','li.sub-menu', function () {
3079            if(navigator.userAgent.match(/(iPhone|iPod|iPad)/i)){
3080                var count = $(this).attr('click-count');
3081                if(count !== undefined){
3082                    location.href = $(this).children('a').attr('href');
3083                } else{
3084                    if($(this).hasClass('click-class')){
3085                        $(this).attr('click-count',undefined);
3086                    }else{
3087                        $(this).attr('click-count',1);
3088                    }
3089                }
3090            }
3091        });
3092        // remove submenu css if empty
3093        $('li.sub-menu').each(function () {
3094            if($(this).children('ul').children().length === 0){
3095                $(this).children('ul').remove();
3096            }
3097        });
3098
3099        $("video.fullscreen-bg__video source").each(function () {
3100            var sourceFile = $(this).attr("data-src");
3101            $(this).attr("src", sourceFile);
3102            var video = this.parentElement;
3103        });
3104
3105        $('.mySlides').each(function () {
3106            var imgUrl = $(this).children().attr('src');
3107            $(this).children().css('opacity', 0);
3108            $(this).css('background', 'url("' + imgUrl + '")');
3109        });
3110
3111        var myIndex = 0;
3112        if ($(".page-slider-container")[0]) {
3113            carousel();
3114        }
3115
3116        function carousel() {
3117            var i;
3118            var x = document.getElementsByClassName("mySlides");
3119            for (i = 0; i < x.length; i++) {
3120                x[i].style.display = "none";
3121            }
3122            myIndex++;
3123            if (myIndex > x.length) {
3124                myIndex = 1
3125            }
3126            x[myIndex - 1].style.display = "block";
3127            setTimeout(carousel, 2000); // Change image every 2 seconds
3128        }
3129
3130        if ($(".review-background-static").length) {
3131            $('.location-divider').hide();
3132        }
3133        if ($(".review-background-parallax").length) {
3134            $('.location-divider').hide();
3135        }
3136
3137        $('.social_share').each(function () {
3138            $(this).attr('target', '_blank');
3139        });
3140
3141        var font_family = $('body').css('font-family');
3142        var r_font_family = font_family.replace(/\"/g, "");
3143        if (r_font_family == "PT Sans Narrow") {
3144            $("#top-social .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important');
3145        } else if (r_font_family == "Roboto") {
3146            $("#top-social .si-gplus .ts-text").attr('style', 'top: 0px !important;' + 'left:0px !important;' + 'margin-left:-7px !important');
3147            $("#top-social .si-youtube .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important');
3148            $("#top-social .si-linkedin .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important');
3149            $("#top-social .si-yelp .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important');
3150        }
3151    });
3152
3153
3154
3155    document.addEventListener("DOMContentLoaded", function () {
3156        var lazyBackgrounds = [].slice.call(document.querySelectorAll(".lazy-background"));
3157
3158        if ("IntersectionObserver" in window) {
3159            let lazyBackgroundObserver = new IntersectionObserver(function (entries, observer) {
3160                entries.forEach(function (entry) {
3161                    if (entry.isIntersecting) {
3162                        entry.target.classList.add("visible");
3163                        lazyBackgroundObserver.unobserve(entry.target);
3164                    }
3165                });
3166            });
3167
3168            lazyBackgrounds.forEach(function (lazyBackground) {
3169                lazyBackgroundObserver.observe(lazyBackground);
3170            });
3171        }
3172    });
3173
3174    //Add Icon for Submenu in Mobile
3175    $('.sub-menu-trigger').click(function () {
3176        if($(this).children('i').hasClass('rotate-icon')){
3177            $(this).children('i').removeClass('rotate-icon');
3178            $(this).parent().children('ul').css('display','none');
3179        }else{
3180            $(this).children('i').addClass('rotate-icon');
3181            $(this).parent().children('ul').css('display','block');
3182        }
3183    });
3184
3185    //Link to page for Submenu in Mobile
3186    if( /Android|webOS|BlackBerry|iPhone|iPod|iPad/i.test(navigator.userAgent) ) {
3187        var touchmoved;
3188        $('.sub-menu').on('touchend', '.mobile-a', function () {
3189            if(touchmoved != true){
3190                location.href =$(this).attr('href');
3191            }
3192        }).on('touchmove', function(e){
3193            touchmoved = true;
3194        }).on('touchstart', function(){
3195            touchmoved = false;
3196        });
3197
3198        $('.sub-menu').on('touchend').on('touchmove', function(e){
3199            touchmoved = true;
3200        }).on('touchstart', function(){
3201            touchmoved = false;
3202        });
3203    }
3204
3205
3206</script>
3206
3207<!-- Ecwid Seo friendly url js code -->
3208<script>
3209    window.ec = window.ec || {};
3210    window.ec.config = window.ec.config || {};
3211    window.ec.config.storefrontUrls = window.ec.config.storefrontUrls || {};
3212    window.ec.config.storefrontUrls.cleanUrls = true;
3213    if(currentLocName == headquarterName){
3214        window.ec.config.baseUrl = '/shop/';
3215        var ecwid_ProductBrowserURL = "/shop/";
3216    } else{
3217        var ecwid_ProductBrowserURL = currentLocName+'/shop/';
3218        window.ec.config.baseUrl = currentLocName+'/shop/';
3219    }
3220
3221</script>
3221
3222    <!-- Prefetch + Preconnect -->
3223    <link rel="dns-prefetch" href="//www.googletagmanager.com">
3224    <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin>
3225    
3225<script>
3226    function loadGTM(id) {
3227        (function(w,d,s,l,i){
3228            w[l]=w[l]||[];
3229            w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});
3230            var f=d.getElementsByTagName(s)[0],
3231                j=d.createElement(s), dl=l!='dataLayer'?'&l='+l:'';
3232            j.async=true; j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;
3233            f.parentNode.insertBefore(j,f);
3234        })(window,document,'script','dataLayer', id);
3235    }
3236
3237    function loadGtag() {
3238        var url = window.location.host;
3239        if (url.indexOf('.jenkins') === -1 && url.indexOf('.test') === -1) {
3240            var gtagScript = document.createElement('script');
3241            gtagScript.src = "https://www.googletagmanager.com/gtag/js?id=G-9N2957J5VN";
3242            gtagScript.async = true;
3243            document.head.appendChild(gtagScript);
3244
3245            gtagScript.onload = function () {
3246                
vendor: 177 bytes, lines 3246-3249
3246window.dataLayer = window.dataLayer || [];
3247                function gtag(){ dataLayer.push(arguments); }
3248                gtag('js', new Date());
3249                gtag('config', '
3249G-9N2957J5VN
vendor: 16 bytes, lines 3249-3250
3249');
3250            
3250};
3251        }
3252    }
3253
3254    function loadTrackingScripts() {
3255                loadGTM('GTM-NMGWHXT');
3256                                loadGtag();
3257            }
3258
3259    if ('requestIdleCallback' in window) {
3260        requestIdleCallback(loadTrackingScripts, { timeout: 2000 });
3261    } else {
3262        setTimeout(loadTrackingScripts, 2000);
3263    }
3264    </script>
3264
3265
3266    <!-- NOSCRIPT for GTM (should NOT be deferred) -->
vendor: 89 bytes, lines 3266-3268
3266
3267    <noscript>
3268                <iframe src="https://www.googletagmanager.com/ns.html?id=
3268GTM-NMGWHXT
vendor: 106 bytes, lines 3268-3271
3268" height="0" width="0" style="display:none;visibility:hidden"></iframe>
3269                    </noscript>
3270
3271
3272<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-848b5ec7e91ef88ba3a","applicationID":"1416771764","transactionName":"ZwNVYEEHCEVTVEZdDl5JdldHDwlYHXZCRD14EkNEbyUJWEZFXVgNVRREaHAJCEJAWF5YBEImWlVaCA==","queueTime":0,"applicationTime":328,"atts":"S0RWFgkdG0s=","errorBeacon":"bam.nr-data.net","agent":""}</script>
3272</body>
3273</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.