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/blog" /> 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="0qV2grcc9PYOeMyfr8L7FQwNzhk2nnlWjC73mHRJ"/> 25 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> 26 27 <meta name="title" content="Pet Help, Advice & News In Dallas From Odyssey Pets"/> 28 <meta name="description" content="Get the best information for your pet from local pet experts in Dallas at Odyssey Pets. Get the latest news, local events, pet advice, guidance and help from our pet food & care experts."/> 29 <!-- FB Tags --> 30 <meta property="og:type" content="website"> 31 <meta property="og:title" content="Pet Help, Advice & News In Dallas From Odyssey Pets"> 32 <meta property="og:url" content="https://odysseypets.com/blog/"> 33 <meta property="og:description" content="Get the best information for your pet from local pet experts in Dallas at Odyssey Pets. Get the latest news, local events, pet advice, guidance and help from our pet food & care experts."> 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>Pet Help, Advice & News In Dallas From 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/blog/" 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" : "Get the best information for your pet from local pet experts in Dallas at Odyssey Pets. Get the latest news, local events, pet advice, guidance and help from our pet food & care experts." 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&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 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&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 & Dog Near Dallas" style="" 1094 > 1095 <div class="" 1096 style=""> 1097 Cat & Dog 1098 </div> 1099 </a> 1100 <ul style=""> 1101 <li> 1102 <a href="/pet-food-cost-carb-calculators/" title="Pet Food Cost & Carb Calculators Near Dallas" > 1103 <div>Pet Food Cost & Carb Calculators</div> 1104 </a> 1105 </li> 1106 <li> 1107 <a href="/dog-food-supply/" title="Dog Food & Supplies Near Dallas" > 1108 <div>Dog Food & Supplies</div> 1109 </a> 1110 </li> 1111 <li> 1112 <a href="/cat-food-supply/" title="Cat Food & Supplies Near Dallas" > 1113 <div>Cat Food & 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 & Supplies Near Dallas" > 1205 <div>Bird Food & Supplies</div> 1206 </a> 1207 </li> 1208 <li> 1209 <a href="/small-pet-food-supply/" title="Small Pets Food & Supplies Near Dallas" > 1210 <div>Small Pets Food & 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 & Daycare Near Dallas" > 1251 <div>Dog Boarding & 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 & Deals Near Dallas" style="" 1293 > 1294 <div class="" 1295 style=""> 1296 Events & 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> 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> 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> (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 class="no-image page-title-dark page-title-right hero-bg-image mobile-main-land-section mobile-page-title" 1700 data-stellar-background-ratio="0.2"> 1701 </section> 1702 <section id="content blog-content"> 1703 <div id="main-blog" class="content-wrap"> 1704 <div class="blog-container container clearfix notopmargin"> 1705 <div class="row bottommargin notopmargin"> 1706 <div class="heading-block center bottommargin-sm "> 1707 <h2>Our Blog</h2> 1708 <div class="divcenter small-text text-video text-table container nopadding"><p>Pet Education, News and Event Updates from Odyssey Pets</p><p> 1709Want to listen instead? Check out our Spotify Blog -- Odyssey Pets Deep Dive Podcast! 1710</p> 1711<p style="text-align: center; user-select: auto;"><a target="_blank" href="https://open.spotify.com/show/4MWiDaqaOdnAvvUtkIs0wQ?si=35bbb9221724452f" class="button slide_btn_left button-large button-rounded" onclick="hotlink(this);" style="background-color: #006601; user-select: auto;">Listen Now</a></p></div> 1712 </div> 1713 <div class="center blog-search blog-search-box" > 1714 <input type="text" id="blog-search-box" name="blog-search-box" 1715 placeholder="Search Blogs" autocomplete="off" onkeyup="javascript:showSearchBtn()" > 1716 <button id="blog-search-btn" class="blog-search-button " onclick="blogSearch()">Search 1717 </button> 1718 <div class="search-blog-icon"><i class="fa fa-search search-icon"></i></div> 1719 </div> 1720 <div id="results"> 1721 </div> 1722 <div id="previous_result"> 1723 <div class="container clearfix notopmargin hidden-xs"> 1724 <div class="promotion-container blog-promotion-container"> 1725 <a href="https://odysseypets.com/blog/the-truth-about-grain-free-foods-dcm-what-we-know-in-2026/"> 1726 <div data-src="https://ik.imagekit.io/0ofixtqpt/5310328/September-2026-(3).png" 1727 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 1728 </div> 1729 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 1730 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/5310328/September-2026-(3).png');"> 1731 </div> 1732 </a> 1733 <div class="col-sm-7 promotion-text right-radius"> 1734 <div class="heading-block cust-heading-color topmargin-sm "> 1735 <a href="https://odysseypets.com/blog/the-truth-about-grain-free-foods-dcm-what-we-know-in-2026/"><h2>The Truth About Grain-Free Foods & DCM: What We Know in 2026</h2></a> 1736 </div> 1737 <div class="col-md-12 cust_li blog-text"> 1738 <span class="small-text"> 1739 Grain-Free Dog Food and DCM: What the Research Actually Says Now 1740<p dir="auto" data-start="662" data-end="893">For years, pet owners were warned that grain-free dog food could cause dilated cardiomyopathy, or DCM....</p> 1741 </span> 1742 </div> 1743 <div class="divider divider-right nobottommargin notopmargin"><a 1744 href="#"><i class="fas fa-tags"></i></a></div> 1745 <div class="small-text"><i 1746 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/nutrition/">Nutrition</a> 1747 </div> 1748 <div class="small-text"><i 1749 class="fas fa-tags"></i> <a class="tag-a" href="/tag/dcm/">DCM</a>, <a class="tag-a" href="/tag/dilated-cardiomyopathy-dcm/">Dilated Cardiomyopathy (DCM)</a>, <a class="tag-a" href="/tag/grain-free/">Grain-Free</a> 1750 </div> 1751 <a href="https://odysseypets.com/blog/the-truth-about-grain-free-foods-dcm-what-we-know-in-2026/" 1752 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 1753 More</a> 1754 <button type="button" 1755 class="button button-rounded button-large noleftmargin dropdown-toggle btn-lg share-btn" 1756 data-toggle="dropdown"> 1757 Share
1758 <span class="caret"></span> 1759 </button> 1760 <ul class="dropdown-menu social-share master-page" role="menu"> 1761 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.com/blog/the-truth-about-grain-free-foods-dcm-what-we-know-in-2026/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.com/blog/the-truth-about-grain-free-foods-dcm-what-we-know-in-2026/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 1762</ul> </div> 1763 </div> 1764 <div class="clear-both"></div> 1765 <div class="promotion-container blog-promotion-container"> 1766 <div class="col-sm-7 promotion-text right-radius"> 1767 <div class="heading-block cust-heading-color topmargin-sm "> 1768 <a href="https://odysseypets.com/blog/is-freeze-dried-dog-food-really-raw-not-so-fast-/"><h2>Is Freeze-Dried Dog Food Really Raw? Not So Fast.</h2></a> 1769 </div> 1770 <div class="col-md-12 cust_li blog-text"> 1771 <span class="small-text"> 1772 <p>If you feed your pet freeze-dried food, youâve probably heard it called âraw.â You may even see freeze-dried raw printed right on the bag. 1773</p><p>But is freeze-dried food really the...</p> 1774 </span> 1775 </div> 1776 <div class="divider divider-right nobottommargin notopmargin"><a 1777 href="#"><i class="fas fa-tags"></i></a></div> 1778 <div class="small-text"><i 1779 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/pet-food/">Pet Food</a> 1780 </div> 1781 <div class="small-text"><i 1782 class="fas fa-tags"></i> <a class="tag-a" href="/tag/freeze-dried-raw/">freeze-dried raw</a> 1783 </div> 1784 <a href="https://odysseypets.com/blog/is-freeze-dried-dog-food-really-raw-not-so-fast-/" 1785 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 1786 More</a> 1787 <button type="button" 1788 class="button button-rounded button-large dropdown-toggle btn-lg share-btn noleftmargin" 1789 data-toggle="dropdown"> 1790 Share
1791 <span class="caret"></span> 1792 </button> 1793 1794 <ul class="dropdown-menu social-share master-page" role="menu"> 1795 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.comhttps://odysseypets.com/blog/is-freeze-dried-dog-food-really-raw-not-so-fast-/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.comhttps://odysseypets.com/blog/is-freeze-dried-dog-food-really-raw-not-so-fast-/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 1796</ul> </div> 1797 <a href="https://odysseypets.com/blog/is-freeze-dried-dog-food-really-raw-not-so-fast-/"> 1798 <div data-src="https://ik.imagekit.io/0ofixtqpt/5286750/blog-right-hand-(25).png" 1799 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 1800 </div> 1801 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 1802 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/5286750/blog-right-hand-(25).png');"> 1803 </div> 1804 </a> 1805 </div> 1806 <div class="promotion-container blog-promotion-container"> 1807 <a href="https://odysseypets.com/blog/5-grooming-myths-every-dog-owner-should-stop-believing/"> 1808 <div data-src="https://ik.imagekit.io/0ofixtqpt/5181334/September-2026.png" 1809 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 1810 </div> 1811 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 1812 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/5181334/September-2026.png');"> 1813 </div> 1814 </a> 1815 <div class="col-sm-7 promotion-text right-radius"> 1816 <div class="heading-block cust-heading-color topmargin-sm "> 1817 <a href="https://odysseypets.com/blog/5-grooming-myths-every-dog-owner-should-stop-believing/"><h2>5 Grooming Myths Every Dog Owner Should Stop Believing</h2></a> 1818 </div> 1819 <div class="col-md-12 cust_li blog-text">
1820 <span class="small-text"> 1821 5 Grooming Myths Every Dog Owner Should Stop Believing 1822Keeping Your Dog Healthy Starts With More Than Just a Haircut 1823<p>When most people think about grooming, they picture a freshly...</p> 1824 </span> 1825 </div> 1826 <div class="divider divider-right nobottommargin notopmargin"><a 1827 href="#"><i class="fas fa-tags"></i></a></div> 1828 <div class="small-text"><i 1829 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/pet-health/">Pet Health</a>, <a class="tag-a" href="/category/grooming/">Grooming</a> 1830 </div> 1831 <div class="small-text"><i 1832 class="fas fa-tags"></i> <a class="tag-a" href="/tag/grooming/">Grooming</a> 1833 </div> 1834 <a href="https://odysseypets.com/blog/5-grooming-myths-every-dog-owner-should-stop-believing/" 1835 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 1836 More</a> 1837 <button type="button" 1838 class="button button-rounded button-large noleftmargin dropdown-toggle btn-lg share-btn" 1839 data-toggle="dropdown"> 1840 Share 1841 <span class="caret"></span> 1842 </button> 1843 <ul class="dropdown-menu social-share master-page" role="menu"> 1844 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.com/blog/5-grooming-myths-every-dog-owner-should-stop-believing/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.com/blog/5-grooming-myths-every-dog-owner-should-stop-believing/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 1845</ul> </div> 1846 </div> 1847 <div class="clear-both"></div> 1848 <div class="promotion-container blog-promotion-container"> 1849 <div class="col-sm-7 promotion-text right-radius"> 1850 <div class="heading-block cust-heading-color topmargin-sm "> 1851 <a href="https://odysseypets.com/blog/high-protein-or-low-protein-how-much-does-your-dog-really-need/"><h2>High Protein or Low Protein? How Much Does Your Dog Really Need?</h2></a> 1852 </div> 1853 <div class="col-md-12 cust_li blog-text">
1854 <span class="small-text"> 1855 High Protein or Low Protein? How Much Does Your Dog Really Need? 1856Why protein quality matters more than protein percentage. 1857<p data-start="336" data-end="404">Walk down any grocery store aisle and you'll...</p> 1858 </span> 1859 </div> 1860 <div class="divider divider-right nobottommargin notopmargin"><a 1861 href="#"><i class="fas fa-tags"></i></a></div> 1862 <div class="small-text"><i 1863 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/pet-nutrition/">Pet Nutrition</a> 1864 </div> 1865 <div class="small-text"><i 1866 class="fas fa-tags"></i> <a class="tag-a" href="/tag/pet-nutrition/">Pet Nutrition</a>, <a class="tag-a" href="/tag/protein/">Protein</a> 1867 </div> 1868 <a href="https://odysseypets.com/blog/high-protein-or-low-protein-how-much-does-your-dog-really-need/" 1869 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 1870 More</a> 1871 <button type="button" 1872 class="button button-rounded button-large dropdown-toggle btn-lg share-btn noleftmargin" 1873 data-toggle="dropdown"> 1874 Share 1875 <span class="caret"></span> 1876 </button> 1877 1878 <ul class="dropdown-menu social-share master-page" role="menu"> 1879 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.comhttps://odysseypets.com/blog/high-protein-or-low-protein-how-much-does-your-dog-really-need/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.comhttps://odysseypets.com/blog/high-protein-or-low-protein-how-much-does-your-dog-really-need/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 1880</ul> </div> 1881 <a href="https://odysseypets.com/blog/high-protein-or-low-protein-how-much-does-your-dog-really-need/"> 1882 <div data-src="https://ik.imagekit.io/0ofixtqpt/5181376/blog-right-hand-(24).png" 1883 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 1884 </div> 1885 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 1886 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/5181376/blog-right-hand-(24).png');"> 1887 </div> 1888 </a> 1889 </div> 1890 <div class="promotion-container blog-promotion-container"> 1891 <a href="https://odysseypets.com/blog/hot-and-cold-proteins-for-pets-understanding-food-energetics/"> 1892 <div data-src="https://ik.imagekit.io/0ofixtqpt/5139680/Blog-Left-Hand-(21).png" 1893 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 1894 </div> 1895 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 1896 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/5139680/Blog-Left-Hand-(21).png');"> 1897 </div> 1898 </a> 1899 <div class="col-sm-7 promotion-text right-radius"> 1900 <div class="heading-block cust-heading-color topmargin-sm "> 1901 <a href="https://odysseypets.com/blog/hot-and-cold-proteins-for-pets-understanding-food-energetics/"><h2>Hot and Cold Proteins for Pets: Understanding Food Energetics</h2></a> 1902 </div> 1903 <div class="col-md-12 cust_li blog-text">
1904 <span class="small-text"> 1905 Hot and Cold Proteins for Dogs and Cats: Understanding Food Energetics 1906<p>Your dog has been eating chicken for six years. 1907</p><p>Or beef. 1908</p><p>Or salmon. 1909</p><p>And somewhere along the way, we...</p> 1910 </span> 1911 </div> 1912 <div class="divider divider-right nobottommargin notopmargin"><a 1913 href="#"><i class="fas fa-tags"></i></a></div> 1914 <div class="small-text"><i 1915 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/nutrition/">Nutrition</a> 1916 </div> 1917 <div class="small-text"><i 1918 class="fas fa-tags"></i> <a class="tag-a" href="/tag/tcm/">tcm</a>, <a class="tag-a" href="/tag/pet-health/">Pet Health</a>, <a class="tag-a" href="/tag/pet-nutrition/">Pet Nutrition</a>, <a class="tag-a" href="/tag/protein/">Protein</a> 1919 </div> 1920 <a href="https://odysseypets.com/blog/hot-and-cold-proteins-for-pets-understanding-food-energetics/" 1921 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 1922 More</a> 1923 <button type="button" 1924 class="button button-rounded button-large noleftmargin dropdown-toggle btn-lg share-btn" 1925 data-toggle="dropdown"> 1926 Share 1927 <span class="caret"></span> 1928 </button> 1929 <ul class="dropdown-menu social-share master-page" role="menu"> 1930 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.com/blog/hot-and-cold-proteins-for-pets-understanding-food-energetics/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.com/blog/hot-and-cold-proteins-for-pets-understanding-food-energetics/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 1931</ul> </div> 1932 </div> 1933 <div class="clear-both"></div> 1934 <div class="promotion-container blog-promotion-container"> 1935 <div class="col-sm-7 promotion-text right-radius"> 1936 <div class="heading-block cust-heading-color topmargin-sm "> 1937 <a href="https://odysseypets.com/blog/bone-broth-for-pets-a-simple-fix-for-tear-stains-picky-eating-and-digestion-issues/"><h2>Bone Broth for Pets: A Simple Fix for Tear Stains, Picky Eating, and Digestion Issues</h2></a> 1938 </div> 1939 <div class="col-md-12 cust_li blog-text">
1940 <span class="small-text"> 1941 The Easiest Upgrade You Can Make to Your Petâs Bowl 1942<p>Tear stains that wonât go away. A dog that suddenly doesnât care about their food. A stomach thatâs unpredictable at...</p> 1943 </span> 1944 </div> 1945 <div class="divider divider-right nobottommargin notopmargin"><a 1946 href="#"><i class="fas fa-tags"></i></a></div> 1947 <div class="small-text"><i 1948 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/pet-supplements/">pet supplements</a>, <a class="tag-a" href="/category/hydration/">Hydration</a> 1949 </div> 1950 <div class="small-text"><i 1951 class="fas fa-tags"></i> <a class="tag-a" href="/tag/bone-broth/">Bone Broth</a>, <a class="tag-a" href="/tag/pet-health/">Pet Health</a>, <a class="tag-a" href="/tag/tear-stains/">tear stains</a>, <a class="tag-a" href="/tag/pet-hydration-tips/">pet hydration tips</a> 1952 </div> 1953 <a href="https://odysseypets.com/blog/bone-broth-for-pets-a-simple-fix-for-tear-stains-picky-eating-and-digestion-issues/" 1954 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 1955 More</a> 1956 <button type="button" 1957 class="button button-rounded button-large dropdown-toggle btn-lg share-btn noleftmargin" 1958 data-toggle="dropdown"> 1959 Share 1960 <span class="caret"></span> 1961 </button> 1962 1963 <ul class="dropdown-menu social-share master-page" role="menu"> 1964 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.comhttps://odysseypets.com/blog/bone-broth-for-pets-a-simple-fix-for-tear-stains-picky-eating-and-digestion-issues/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.comhttps://odysseypets.com/blog/bone-broth-for-pets-a-simple-fix-for-tear-stains-picky-eating-and-digestion-issues/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 1965</ul> </div> 1966 <a href="https://odysseypets.com/blog/bone-broth-for-pets-a-simple-fix-for-tear-stains-picky-eating-and-digestion-issues/"> 1967 <div data-src="https://ik.imagekit.io/0ofixtqpt/5042241/blog-right-hand-(16).png" 1968 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 1969 </div> 1970 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 1971 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/5042241/blog-right-hand-(16).png');"> 1972 </div> 1973 </a> 1974 </div> 1975 <div class="promotion-container blog-promotion-container"> 1976 <a href="https://odysseypets.com/blog/not-all-fresh-foods-are-created-equal/"> 1977 <div data-src="https://ik.imagekit.io/0ofixtqpt/4979899/Blog-Left-Hand-(19).png" 1978 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 1979 </div> 1980 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 1981 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/4979899/Blog-Left-Hand-(19).png');"> 1982 </div> 1983 </a> 1984 <div class="col-sm-7 promotion-text right-radius"> 1985 <div class="heading-block cust-heading-color topmargin-sm "> 1986 <a href="https://odysseypets.com/blog/not-all-fresh-foods-are-created-equal/"><h2>Not All Fresh Foods Are Created Equal</h2></a> 1987 </div> 1988 <div class="col-md-12 cust_li blog-text">
1989 <span class="small-text"> 1990 Not All Fresh Dog Foods Are Created Equal 1991<p data-start="103" data-end="168">At Odyssey Pets, we absolutely believe that fresh food is better. 1992</p><p data-start="170" data-end="440">In fact, even if you cannot go...</p> 1993 </span> 1994 </div> 1995 <div class="small-text"> 1996 </div> 1997 <div class="small-text"> 1998 </div> 1999 <a href="https://odysseypets.com/blog/not-all-fresh-foods-are-created-equal/" 2000 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 2001 More</a> 2002 <button type="button" 2003 class="button button-rounded button-large noleftmargin dropdown-toggle btn-lg share-btn" 2004 data-toggle="dropdown"> 2005 Share 2006 <span class="caret"></span> 2007 </button> 2008 <ul class="dropdown-menu social-share master-page" role="menu"> 2009 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.com/blog/not-all-fresh-foods-are-created-equal/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.com/blog/not-all-fresh-foods-are-created-equal/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 2010</ul> </div> 2011 </div> 2012 <div class="clear-both"></div> 2013 <div class="promotion-container blog-promotion-container"> 2014 <div class="col-sm-7 promotion-text right-radius"> 2015 <div class="heading-block cust-heading-color topmargin-sm "> 2016 <a href="https://odysseypets.com/blog/stop-treating-the-scratch-start-treating-the-cause
2016-/"><h2>Stop Treating the Scratch â Start Treating the Cause.</h2></a> 2017 </div> 2018 <div class="col-md-12 cust_li blog-text"> 2019 <span class="small-text"> 2020 <p>If your dog is scratching nonstop⦠licking their paws raw⦠rubbing their face along the carpet⦠or waking you up at night itching â youâre not imagining it. 2021</p><p>Spring brings...</p> 2022 </span> 2023 </div> 2024 <div class="divider divider-right nobottommargin notopmargin"><a 2025 href="#"><i class="fas fa-tags"></i></a></div> 2026 <div class="small-text"><i 2027 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/pet-allergies/">pet allergies</a> 2028 </div> 2029 <div class="small-text"><i 2030 class="fas fa-tags"></i> <a class="tag-a" href="/tag/pet-allergies/">Pet Allergies</a>, <a class="tag-a" href="/tag/itchy-dog/">itchy dog</a> 2031 </div> 2032 <a href="https://odysseypets.com/blog/stop-treating-the-scratch-start-treating-the-cause-/" 2033 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 2034 More</a> 2035 <button type="button" 2036 class="button button-rounded button-large dropdown-toggle btn-lg share-btn noleftmargin" 2037 data-toggle="dropdown"> 2038 Share 2039 <span class="caret"></span> 2040 </button> 2041 2042 <ul class="dropdown-menu social-share master-page" role="menu"> 2043 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.comhttps://odysseypets.com/blog/stop-treating-the-scratch-start-treating-the-cause-/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.comhttps://odysseypets.com/blog/stop-treating-the-scratch-start-treating-the-cause-/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 2044</ul> </div> 2045 <a href="https://odysseypets.com/blog/stop-treating-the-scratch-start-treating-the-cause-/"> 2046 <div data-src="https://ik.imagekit.io/0ofixtqpt/4929651/blog-right-hand-(14).png" 2047 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 2048 </div> 2049 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 2050 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/4929651/blog-right-hand-(14).png');"> 2051 </div> 2052 </a> 2053 </div> 2054 <div class="promotion-container blog-promotion-container"> 2055 <a href="https://odysseypets.com/blog/the-shroom-boom-for-pets-why-mushrooms-belong-in-your-pets-wellness-routine/"> 2056 <div data-src="https://ik.imagekit.io/0ofixtqpt/4804083/Blog-Left-Hand-(16).png" 2057 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 2058 </div> 2059 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 2060 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/4804083/Blog-Left-Hand-(16).png');"> 2061 </div> 2062 </a> 2063 <div class="col-sm-7 promotion-text right-radius"> 2064 <div class="heading-block cust-heading-color topmargin-sm "> 2065 <a href="https://odysseypets.com/blog/the-shroom-boom-for-pets-why-mushrooms-belong-in-your-pets-wellness-routine/"><h2>The 'Shroom Boom' for Pets: Why Mushrooms Belong in Your Petâs Wellness Routine</h2></a> 2066 </div> 2067 <div class="col-md-12 cust_li blog-text">
2068 <span class="small-text"> 2069 <p data-start="236" data-end="391">If there were a single natural ingredient that could help your pet live longer, feel better, and stay sharp as they ageâwouldnât you want it in their bowl? ...</p> 2070 </span> 2071 </div> 2072 <div class="divider divider-right nobottommargin notopmargin"><a 2073 href="#"><i class="fas fa-tags"></i></a></div> 2074 <div class="small-text"><i 2075 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/pet-supplements/">pet supplements</a> 2076 </div> 2077 <div class="small-text"><i 2078 class="fas fa-tags"></i> <a class="tag-a" href="/tag/medicinal-mushrooms/">Medicinal Mushrooms</a> 2079 </div> 2080 <a href="https://odysseypets.com/blog/the-shroom-boom-for-pets-why-mushrooms-belong-in-your-pets-wellness-routine/" 2081 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 2082 More</a> 2083 <button type="button" 2084 class="button button-rounded button-large noleftmargin dropdown-toggle btn-lg share-btn" 2085 data-toggle="dropdown"> 2086 Share 2087 <span class="caret"></span> 2088 </button> 2089 <ul class="dropdown-menu social-share master-page" role="menu"> 2090 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.com/blog/the-shroom-boom-for-pets-why-mushrooms-belong-in-your-pets-wellness-routine/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.com/blog/the-shroom-boom-for-pets-why-mushrooms-belong-in-your-pets-wellness-routine/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 2091</ul> </div> 2092 </div> 2093 <div class="clear-both"></div> 2094 <div class="promotion-container blog-promotion-container"> 2095 <div class="col-sm-7 promotion-text right-radius"> 2096 <div class="heading-block cust-heading-color topmargin-sm "> 2097 <a href="https://odysseypets.com/blog/from-gums-to-gut-how-dental-disease-impacts-whole-body-health/"><h2>From Gums to Gut: How Dental Disease Impacts Whole-Body Health</h2></a> 2098 </div> 2099 <div class="col-md-12 cust_li blog-text">
2100 <span class="small-text"> 2101 <p>Prefer to listen to this blog? Click <a href="https://open.spotify.com/episode/7av4ZxfXZCeUxLQ6vql1lO?si=ZLOCpymgSUic4AVCJOEDEg" target="_blank" rel="noopener">HERE.</a>Â 2102</p><p>February is Pet Dental Health Month, and while dental care is often framed as fresh breath or clean teeth,...</p> 2103 </span> 2104 </div> 2105 <div class="divider divider-right nobottommargin notopmargin"><a 2106 href="#"><i class="fas fa-tags"></i></a></div> 2107 <div class="small-text"><i 2108 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/dental-health/">Dental Health</a> 2109 </div> 2110 <div class="small-text"><i 2111 class="fas fa-tags"></i> <a class="tag-a" href="/tag/pet-dental/">Pet Dental</a> 2112 </div> 2113 <a href="https://odysseypets.com/blog/from-gums-to-gut-how-dental-disease-impacts-whole-body-health/" 2114 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 2115 More</a> 2116 <button type="button" 2117 class="button button-rounded button-large dropdown-toggle btn-lg share-btn noleftmargin" 2118 data-toggle="dropdown"> 2119 Share 2120 <span class="caret"></span> 2121 </button> 2122 2123 <ul class="dropdown-menu social-share master-page" role="menu"> 2124 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.comhttps://odysseypets.com/blog/from-gums-to-gut-how-dental-disease-impacts-whole-body-health/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.comhttps://odysseypets.com/blog/from-gums-to-gut-how-dental-disease-impacts-whole-body-health/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 2125</ul> </div> 2126 <a href="https://odysseypets.com/blog/from-gums-to-gut-how-dental-disease-impacts-whole-body-health/"> 2127 <div data-src="https://ik.imagekit.io/0ofixtqpt/4794885/blog-right-hand-(13).png" 2128 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 2129 </div> 2130 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 2131 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/4794885/blog-right-hand-(13).png');"> 2132 </div> 2133 </a> 2134 </div> 2135 <div class="content text-center"> 2136 <nav> 2137 <ul class="pagination"> 2138 2139 <li class="page-item disabled" aria-disabled="true" aria-label="« Previous">
2140 <span class="page-link" aria-hidden="true">‹</span> 2141 </li> 2142 2143 2144 2145 2146 2147 <li class="page-item active" aria-current="page"><span class="page-link">1</span></li> 2148 <li class="page-item"><a class="page-link" href="https://odysseypets.com/blog?page=2">2</a></li> 2149 <li class="page-item"><a class="page-link" href="https://odysseypets.com/blog?page=3">3</a></li> 2150 <li class="page-item"><a class="page-link" href="https://odysseypets.com/blog?page=4">4</a></li> 2151 <li class="page-item"><a class="page-link" href="https://odysseypets.com/blog?page=5">5</a></li> 2152 <li class="page-item"><a class="page-link" href="https://odysseypets.com/blog?page=6">6</a></li> 2153 <li class="page-item"><a class="page-link" href="https://odysseypets.com/blog?page=7">7</a></li> 2154 2155 2156 <li class="page-item"> 2157 <a class="page-link" href="https://odysseypets.com/blog?page=2" rel="next" aria-label="Next »">›</a> 2158 </li> 2159 </ul> 2160 </nav> 2161 2162 </div> 2163 </div> 2164 <div class="clear"></div> 2165 <div class="container clearfix notopmargin hidden-sm hidden-md hidden-lg"> 2166 <div class="promotion-container blog-promotion-container"> 2167 <a href="https://odysseypets.com/blog/the-truth-about-grain-free-foods-dcm-what-we-know-in-2026/"> 2168 <div data-src="https://ik.imagekit.io/0ofixtqpt/5310328/September-2026-(3).png" 2169 style="display:block;" 2170 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 2171 </div> 2172 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 2173 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/5310328/September-2026-(3).png'); display:block;"> 2174 </div> 2175 </a> 2176 <div class="col-sm-7 promotion-text right-radius"> 2177 <div class="heading-block cust-heading-color topmargin-sm "> 2178 <a href="https://odysseypets.com/blog/the-truth-about-grain-free-foods-dcm-what-we-know-in-2026/"><h2>The Truth About Grain-Free Foods & DCM: What We Know in 2026</h2></a> 2179 </div> 2180 <div class="col-md-12 cust_li blog-text"> 2181 <span class="small-text"> 2182 Grain-Free Dog Food and DCM: What the Research Actually Says Now 2183<p dir="auto" data-start="662" data-end="893">For years, pet owners were warned that grain-free dog food could cause dilated cardiomyopathy, or DCM....</p> 2184 </span> 2185 <div class="divider divider-right nobottommargin notopmargin"><a 2186 href="#"><i class="fas fa-tags"></i></a></div> 2187 <div class="small-text"><i 2188 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/nutrition/">Nutrition</a> 2189 </div> 2190 <div class="small-text"><i 2191 class="fas fa-tags"></i> <a class="tag-a" href="/tag/dcm/">DCM</a>, <a class="tag-a" href="/tag/dilated-cardiomyopathy-dcm/">Dilated Cardiomyopathy (DCM)</a>, <a class="tag-a" href="/tag/grain-free/">Grain-Free</a> 2192 </div> 2193 </div> 2194 <a href="https://odysseypets.com/blog/the-truth-about-grain-free-foods-dcm-what-we-know-in-2026/" 2195 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 2196 More</a> 2197 <button type="button" 2198 class="button button-rounded button-large dropdown-toggle noleftmargin btn-lg share-btn" 2199 data-toggle="dropdown"> 2200 Share
2201 <span class="caret"></span> 2202 </button> 2203 2204 <ul class="dropdown-menu social-share master-page" role="menu"> 2205 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.comhttps://odysseypets.com/blog/the-truth-about-grain-free-foods-dcm-what-we-know-in-2026/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.comhttps://odysseypets.com/blog/the-truth-about-grain-free-foods-dcm-what-we-know-in-2026/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 2206</ul> </div> 2207 </div> 2208 <div class="clear-both"></div> 2209 <div class="promotion-container blog-promotion-container"> 2210 <a href="https://odysseypets.com/blog/is-freeze-dried-dog-food-really-raw-not-so-fast-/"> 2211 <div data-src="https://ik.imagekit.io/0ofixtqpt/5286750/blog-right-hand-(25).png" 2212 style="display:block;" 2213 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 2214 </div> 2215 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 2216 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/5286750/blog-right-hand-(25).png'); display:block;"> 2217 </div> 2218 </a> 2219 <div class="col-sm-7 promotion-text right-radius"> 2220 <div class="heading-block cust-heading-color topmargin-sm "> 2221 <a href="https://odysseypets.com/blog/is-freeze-dried-dog-food-really-raw-not-so-fast-/"><h2>Is Freeze-Dried Dog Food Really Raw? Not So Fast.</h2></a> 2222 </div> 2223 <div class="col-md-12 cust_li blog-text"> 2224 <span class="small-text"> 2225 <p>If you feed your pet freeze-dried food, youâve probably heard it called âraw.â You may even see freeze-dried raw printed right on the bag. 2226</p><p>But is freeze-dried food really the...</p> 2227 </span> 2228 <div class="divider divider-right nobottommargin notopmargin"><a 2229 href="#"><i class="fas fa-tags"></i></a></div> 2230 <div class="small-text"><i 2231 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/pet-food/">Pet Food</a> 2232 </div> 2233 <div class="small-text"><i 2234 class="fas fa-tags"></i> <a class="tag-a" href="/tag/freeze-dried-raw/">freeze-dried raw</a> 2235 </div> 2236 </div> 2237 <a href="https://odysseypets.com/blog/is-freeze-dried-dog-food-really-raw-not-so-fast-/" 2238 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 2239 More</a> 2240 <button type="button" 2241 class="button button-rounded button-large dropdown-toggle noleftmargin btn-lg share-btn" 2242 data-toggle="dropdown"> 2243 Share
2244 <span class="caret"></span> 2245 </button> 2246 2247 <ul class="dropdown-menu social-share master-page" role="menu"> 2248 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.comhttps://odysseypets.com/blog/is-freeze-dried-dog-food-really-raw-not-so-fast-/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.comhttps://odysseypets.com/blog/is-freeze-dried-dog-food-really-raw-not-so-fast-/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 2249</ul> </div> 2250 </div> 2251 <div class="clear-both"></div> 2252 <div class="promotion-container blog-promotion-container"> 2253 <a href="https://odysseypets.com/blog/5-grooming-myths-every-dog-owner-should-stop-believing/"> 2254 <div data-src="https://ik.imagekit.io/0ofixtqpt/5181334/September-2026.png" 2255 style="display:block;" 2256 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 2257 </div> 2258 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 2259 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/5181334/September-2026.png'); display:block;"> 2260 </div> 2261 </a> 2262 <div class="col-sm-7 promotion-text right-radius"> 2263 <div class="heading-block cust-heading-color topmargin-sm "> 2264 <a href="https://odysseypets.com/blog/5-grooming-myths-every-dog-owner-should-stop-believing/"><h2>5 Grooming Myths Every Dog Owner Should Stop Believing</h2></a> 2265 </div> 2266 <div class="col-md-12 cust_li blog-text"> 2267 <span class="small-text"> 2268 5 Grooming Myths Every Dog Owner Should Stop Believing 2269Keeping Your Dog Healthy Starts With More Than Just a Haircut 2270<p>When most people think about grooming, they picture a freshly...</p> 2271 </span> 2272 <div class="divider divider-right nobottommargin notopmargin"><a 2273 href="#"><i class="fas fa-tags"></i></a></div> 2274 <div class="small-text"><i 2275 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/pet-health/">Pet Health</a>, <a class="tag-a" href="/category/grooming/">Grooming</a> 2276 </div> 2277 <div class="small-text"><i 2278 class="fas fa-tags"></i> <a class="tag-a" href="/tag/grooming/">Grooming</a> 2279 </div> 2280 </div> 2281 <a href="https://odysseypets.com/blog/5-grooming-myths-every-dog-owner-should-stop-believing/" 2282 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 2283 More</a> 2284 <button type="button" 2285 class="button button-rounded button-large dropdown-toggle noleftmargin btn-lg share-btn" 2286 data-toggle="dropdown"> 2287 Share
2288 <span class="caret"></span> 2289 </button> 2290 2291 <ul class="dropdown-menu social-share master-page" role="menu"> 2292 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.comhttps://odysseypets.com/blog/5-grooming-myths-every-dog-owner-should-stop-believing/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.comhttps://odysseypets.com/blog/5-grooming-myths-every-dog-owner-should-stop-believing/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 2293</ul> </div> 2294 </div> 2295 <div class="clear-both"></div> 2296 <div class="promotion-container blog-promotion-container"> 2297 <a href="https://odysseypets.com/blog/high-protein-or-low-protein-how-much-does-your-dog-really-need/"> 2298 <div data-src="https://ik.imagekit.io/0ofixtqpt/5181376/blog-right-hand-(24).png" 2299 style="display:block;" 2300 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 2301 </div> 2302 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 2303 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/5181376/blog-right-hand-(24).png'); display:block;"> 2304 </div> 2305 </a> 2306 <div class="col-sm-7 promotion-text right-radius"> 2307 <div class="heading-block cust-heading-color topmargin-sm "> 2308 <a href="https://odysseypets.com/blog/high-protein-or-low-protein-how-much-does-your-dog-really-need/"><h2>High Protein or Low Protein? How Much Does Your Dog Really Need?</h2></a> 2309 </div> 2310 <div class="col-md-12 cust_li blog-text"> 2311 <span class="small-text"> 2312 High Protein or Low Protein? How Much Does Your Dog Really Need? 2313Why protein quality matters more than protein percentage. 2314<p data-start="336" data-end="404">Walk down any grocery store aisle and you'll...</p> 2315 </span> 2316 <div class="divider divider-right nobottommargin notopmargin"><a 2317 href="#"><i class="fas fa-tags"></i></a></div> 2318 <div class="small-text"><i 2319 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/pet-nutrition/">Pet Nutrition</a> 2320 </div> 2321 <div class="small-text"><i 2322 class="fas fa-tags"></i> <a class="tag-a" href="/tag/pet-nutrition/">Pet Nutrition</a>, <a class="tag-a" href="/tag/protein/">Protein</a> 2323 </div> 2324 </div> 2325 <a href="https://odysseypets.com/blog/high-protein-or-low-protein-how-much-does-your-dog-really-need/" 2326 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 2327 More</a> 2328 <button type="button" 2329 class="button button-rounded button-large dropdown-toggle noleftmargin btn-lg share-btn" 2330 data-toggle="dropdown"> 2331 Share
2332 <span class="caret"></span> 2333 </button> 2334 2335 <ul class="dropdown-menu social-share master-page" role="menu"> 2336 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.comhttps://odysseypets.com/blog/high-protein-or-low-protein-how-much-does-your-dog-really-need/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.comhttps://odysseypets.com/blog/high-protein-or-low-protein-how-much-does-your-dog-really-need/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 2337</ul> </div> 2338 </div> 2339 <div class="clear-both"></div> 2340 <div class="promotion-container blog-promotion-container"> 2341 <a href="https://odysseypets.com/blog/hot-and-cold-proteins-for-pets-understanding-food-energetics/"> 2342 <div data-src="https://ik.imagekit.io/0ofixtqpt/5139680/Blog-Left-Hand-(21).png" 2343 style="display:block;" 2344 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 2345 </div> 2346 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 2347 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/5139680/Blog-Left-Hand-(21).png'); display:block;"> 2348 </div> 2349 </a> 2350 <div class="col-sm-7 promotion-text right-radius"> 2351 <div class="heading-block cust-heading-color topmargin-sm "> 2352 <a href="https://odysseypets.com/blog/hot-and-cold-proteins-for-pets-understanding-food-energetics/"><h2>Hot and Cold Proteins for Pets: Understanding Food Energetics</h2></a> 2353 </div> 2354 <div class="col-md-12 cust_li blog-text"> 2355 <span class="small-text"> 2356 Hot and Cold Proteins for Dogs and Cats: Understanding Food Energetics 2357<p>Your dog has been eating chicken for six years. 2358</p><p>Or beef. 2359</p><p>Or salmon. 2360</p><p>And somewhere along the way, we...</p> 2361 </span> 2362 <div class="divider divider-right nobottommargin notopmargin"><a 2363 href="#"><i class="fas fa-tags"></i></a></div> 2364 <div class="small-text"><i 2365 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/nutrition/">Nutrition</a> 2366 </div> 2367 <div class="small-text"><i 2368 class="fas fa-tags"></i> <a class="tag-a" href="/tag/tcm/">tcm</a>, <a class="tag-a" href="/tag/pet-health/">Pet Health</a>, <a class="tag-a" href="/tag/pet-nutrition/">Pet Nutrition</a>, <a class="tag-a" href="/tag/protein/">Protein</a> 2369 </div> 2370 </div> 2371 <a href="https://odysseypets.com/blog/hot-and-cold-proteins-for-pets-understanding-food-energetics/" 2372 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 2373 More</a> 2374 <button type="button" 2375 class="button button-rounded button-large dropdown-toggle noleftmargin btn-lg share-btn" 2376 data-toggle="dropdown"> 2377 Share
2378 <span class="caret"></span> 2379 </button> 2380 2381 <ul class="dropdown-menu social-share master-page" role="menu"> 2382 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.comhttps://odysseypets.com/blog/hot-and-cold-proteins-for-pets-understanding-food-energetics/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.comhttps://odysseypets.com/blog/hot-and-cold-proteins-for-pets-understanding-food-energetics/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 2383</ul> </div> 2384 </div> 2385 <div class="clear-both"></div> 2386 <div class="promotion-container blog-promotion-container"> 2387 <a href="https://odysseypets.com/blog/bone-broth-for-pets-a-simple-fix-for-tear-stains-picky-eating-and-digestion-issues/"> 2388 <div data-src="https://ik.imagekit.io/0ofixtqpt/5042241/blog-right-hand-(16).png" 2389 style="display:block;" 2390 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 2391 </div> 2392 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 2393 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/5042241/blog-right-hand-(16).png'); display:block;"> 2394 </div> 2395 </a> 2396 <div class="col-sm-7 promotion-text right-radius"> 2397 <div class="heading-block cust-heading-color topmargin-sm "> 2398 <a href="https://odysseypets.com/blog/bone-broth-for-pets-a-simple-fix-for-tear-stains-picky-eating-and-digestion-issues/"><h2>Bone Broth for Pets: A Simple Fix for Tear Stains, Picky Eating, and Digestion Issues</h2></a> 2399 </div> 2400 <div class="col-md-12 cust_li blog-text"> 2401 <span class="small-text"> 2402 The Easiest Upgrade You Can Make to Your Petâs Bowl 2403<p>Tear stains that wonât go away. A dog that suddenly doesnât care about their food. A stomach thatâs unpredictable at...</p> 2404 </span> 2405 <div class="divider divider-right nobottommargin notopmargin"><a 2406 href="#"><i class="fas fa-tags"></i></a></div> 2407 <div class="small-text"><i 2408 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/pet-supplements/">pet supplements</a>, <a class="tag-a" href="/category/hydration/">Hydration</a> 2409 </div> 2410 <div class="small-text"><i 2411 class="fas fa-tags"></i> <a class="tag-a" href="/tag/bone-broth/">Bone Broth</a>, <a class="tag-a" href="/tag/pet-health/">Pet Health</a>, <a class="tag-a" href="/tag/tear-stains/">tear stains</a>, <a class="tag-a" href="/tag/pet-hydration-tips/">pet hydration tips</a> 2412 </div> 2413 </div> 2414 <a href="https://odysseypets.com/blog/bone-broth-for-pets-a-simple-fix-for-tear-stains-picky-eating-and-digestion-issues/" 2415 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 2416 More</a> 2417 <button type="button" 2418 class="button button-rounded button-large dropdown-toggle noleftmargin btn-lg share-btn" 2419 data-toggle="dropdown"> 2420 Share
2421 <span class="caret"></span> 2422 </button> 2423 2424 <ul class="dropdown-menu social-share master-page" role="menu"> 2425 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.comhttps://odysseypets.com/blog/bone-broth-for-pets-a-simple-fix-for-tear-stains-picky-eating-and-digestion-issues/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.comhttps://odysseypets.com/blog/bone-broth-for-pets-a-simple-fix-for-tear-stains-picky-eating-and-digestion-issues/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 2426</ul> </div> 2427 </div> 2428 <div class="clear-both"></div> 2429 <div class="promotion-container blog-promotion-container"> 2430 <a href="https://odysseypets.com/blog/not-all-fresh-foods-are-created-equal/"> 2431 <div data-src="https://ik.imagekit.io/0ofixtqpt/4979899/Blog-Left-Hand-(19).png" 2432 style="display:block;" 2433 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 2434 </div> 2435 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 2436 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/4979899/Blog-Left-Hand-(19).png'); display:block;"> 2437 </div> 2438 </a> 2439 <div class="col-sm-7 promotion-text right-radius"> 2440 <div class="heading-block cust-heading-color topmargin-sm "> 2441 <a href="https://odysseypets.com/blog/not-all-fresh-foods-are-created-equal/"><h2>Not All Fresh Foods Are Created Equal</h2></a> 2442 </div> 2443 <div class="col-md-12 cust_li blog-text"> 2444 <span class="small-text"> 2445 Not All Fresh Dog Foods Are Created Equal 2446<p data-start="103" data-end="168">At Odyssey Pets, we absolutely believe that fresh food is better. 2447</p><p data-start="170" data-end="440">In fact, even if you cannot go...</p> 2448 </span> 2449 <div class="small-text"> 2450 </div> 2451 <div class="small-text"> 2452 </div> 2453 </div> 2454 <a href="https://odysseypets.com/blog/not-all-fresh-foods-are-created-equal/" 2455 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 2456 More</a> 2457 <button type="button" 2458 class="button button-rounded button-large dropdown-toggle noleftmargin btn-lg share-btn" 2459 data-toggle="dropdown"> 2460 Share
2461 <span class="caret"></span> 2462 </button> 2463 2464 <ul class="dropdown-menu social-share master-page" role="menu"> 2465 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.comhttps://odysseypets.com/blog/not-all-fresh-foods-are-created-equal/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.comhttps://odysseypets.com/blog/not-all-fresh-foods-are-created-equal/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 2466</ul> </div> 2467 </div> 2468 <div class="clear-both"></div> 2469 <div class="promotion-container blog-promotion-container"> 2470 <a href="https://odysseypets.com/blog/stop-treating-the-scratch-start-treating-the-cause-/"> 2471 <div data-src="https://ik.imagekit.io/0ofixtqpt/4929651/blog-right-hand-(14).png" 2472 style="display:block;" 2473 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 2474 </div> 2475 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 2476 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/4929651/blog-right-hand-(14).png'); display:block;"> 2477 </div> 2478 </a> 2479 <div class="col-sm-7 promotion-text right-radius"> 2480 <div class="heading-block cust-heading-color topmargin-sm "> 2481 <a href="https://odysseypets.com/blog/stop-treating-the-scratch-start-treating-the-cause-/"><h2>Stop Treating the Scratch â Start Treating the Cause.</h2></a> 2482 </div> 2483 <div class="col-md-12 cust_li blog-text"> 2484 <span class="small-text"> 2485 <p>If your dog is scratching nonstop⦠licking their paws raw⦠rubbing their face along the carpet⦠or waking you up at night itching â youâre not imagining it. 2486</p><p>Spring brings...</p> 2487 </span> 2488 <div class="divider divider-right nobottommargin notopmargin"><a 2489 href="#"><i class="fas fa-tags"></i></a></div> 2490 <div class="small-text"><i 2491 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/pet-allergies/">pet allergies</a> 2492 </div> 2493 <div class="small-text"><i 2494 class="fas fa-tags"></i> <a class="tag-a" href="/tag/pet-allergies/">Pet Allergies</a>, <a class="tag-a" href="/tag/itchy-dog/">itchy dog</a> 2495 </div> 2496 </div> 2497 <a href="https://odysseypets.com/blog/stop-treating-the-scratch-start-treating-the-cause
2497-/" 2498 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 2499 More</a> 2500 <button type="button" 2501 class="button button-rounded button-large dropdown-toggle noleftmargin btn-lg share-btn" 2502 data-toggle="dropdown"> 2503 Share 2504 <span class="caret"></span> 2505 </button> 2506 2507 <ul class="dropdown-menu social-share master-page" role="menu"> 2508 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.comhttps://odysseypets.com/blog/stop-treating-the-scratch-start-treating-the-cause-/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.comhttps://odysseypets.com/blog/stop-treating-the-scratch-start-treating-the-cause-/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 2509</ul> </div> 2510 </div> 2511 <div class="clear-both"></div> 2512 <div class="promotion-container blog-promotion-container"> 2513 <a href="https://odysseypets.com/blog/the-shroom-boom-for-pets-why-mushrooms-belong-in-your-pets-wellness-routine/"> 2514 <div data-src="https://ik.imagekit.io/0ofixtqpt/4804083/Blog-Left-Hand-(16).png" 2515 style="display:block;" 2516 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 2517 </div> 2518 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 2519 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/4804083/Blog-Left-Hand-(16).png'); display:block;"> 2520 </div> 2521 </a> 2522 <div class="col-sm-7 promotion-text right-radius"> 2523 <div class="heading-block cust-heading-color topmargin-sm "> 2524 <a href="https://odysseypets.com/blog/the-shroom-boom-for-pets-why-mushrooms-belong-in-your-pets-wellness-routine/"><h2>The 'Shroom Boom' for Pets: Why Mushrooms Belong in Your Petâs Wellness Routine</h2></a> 2525 </div> 2526 <div class="col-md-12 cust_li blog-text">
2527 <span class="small-text"> 2528 <p data-start="236" data-end="391">If there were a single natural ingredient that could help your pet live longer, feel better, and stay sharp as they ageâwouldnât you want it in their bowl? ...</p> 2529 </span> 2530 <div class="divider divider-right nobottommargin notopmargin"><a 2531 href="#"><i class="fas fa-tags"></i></a></div> 2532 <div class="small-text"><i 2533 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/pet-supplements/">pet supplements</a> 2534 </div> 2535 <div class="small-text"><i 2536 class="fas fa-tags"></i> <a class="tag-a" href="/tag/medicinal-mushrooms/">Medicinal Mushrooms</a> 2537 </div> 2538 </div> 2539 <a href="https://odysseypets.com/blog/the-shroom-boom-for-pets-why-mushrooms-belong-in-your-pets-wellness-routine/" 2540 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 2541 More</a> 2542 <button type="button" 2543 class="button button-rounded button-large dropdown-toggle noleftmargin btn-lg share-btn" 2544 data-toggle="dropdown"> 2545 Share 2546 <span class="caret"></span> 2547 </button> 2548 2549 <ul class="dropdown-menu social-share master-page" role="menu"> 2550 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.comhttps://odysseypets.com/blog/the-shroom-boom-for-pets-why-mushrooms-belong-in-your-pets-wellness-routine/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.comhttps://odysseypets.com/blog/the-shroom-boom-for-pets-why-mushrooms-belong-in-your-pets-wellness-routine/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 2551</ul> </div> 2552 </div> 2553 <div class="clear-both"></div> 2554 <div class="promotion-container blog-promotion-container"> 2555 <a href="https://odysseypets.com/blog/from-gums-to-gut-how-dental-disease-impacts-whole-body-health/"> 2556 <div data-src="https://ik.imagekit.io/0ofixtqpt/4794885/blog-right-hand-(13).png" 2557 style="display:block;" 2558 class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img not_ie_div blog-background"> 2559 </div> 2560 <div class="col-sm-5 promotion-banner blog-promotion-banner left-radius mobile_promo_img ie_div blog-background" 2561 style="background-image: url('https://ik.imagekit.io/0ofixtqpt/4794885/blog-right-hand-(13).png'); display:block;"> 2562 </div> 2563 </a> 2564 <div class="col-sm-7 promotion-text right-radius"> 2565 <div class="heading-block cust-heading-color topmargin-sm "> 2566 <a href="https://odysseypets.com/blog/from-gums-to-gut-how-dental-disease-impacts-whole-body-health/"><h2>From Gums to Gut: How Dental Disease Impacts Whole-Body Health</h2></a> 2567 </div> 2568 <div class="col-md-12 cust_li blog-text">
2569 <span class="small-text"> 2570 <p>Prefer to listen to this blog? Click <a href="https://open.spotify.com/episode/7av4ZxfXZCeUxLQ6vql1lO?si=ZLOCpymgSUic4AVCJOEDEg" target="_blank" rel="noopener">HERE.</a>Â 2571</p><p>February is Pet Dental Health Month, and while dental care is often framed as fresh breath or clean teeth,...</p> 2572 </span> 2573 <div class="divider divider-right nobottommargin notopmargin"><a 2574 href="#"><i class="fas fa-tags"></i></a></div> 2575 <div class="small-text"><i 2576 class="fas fa-folder-open"></i> <a class="tag-a" href="/category/dental-health/">Dental Health</a> 2577 </div> 2578 <div class="small-text"><i 2579 class="fas fa-tags"></i> <a class="tag-a" href="/tag/pet-dental/">Pet Dental</a> 2580 </div> 2581 </div> 2582 <a href="https://odysseypets.com/blog/from-gums-to-gut-how-dental-disease-impacts-whole-body-health/" 2583 class="button button-border button-rounded button-large noleftmargin bottommargin-xs topmargin-sm">Read 2584 More</a> 2585 <button type="button" 2586 class="button button-rounded button-large dropdown-toggle noleftmargin btn-lg share-btn" 2587 data-toggle="dropdown"> 2588 Share 2589 <span class="caret"></span> 2590 </button> 2591 2592 <ul class="dropdown-menu social-share master-page" role="menu"> 2593 <li><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://odysseypets.comhttps://odysseypets.com/blog/from-gums-to-gut-how-dental-disease-impacts-whole-body-health/" class="social-button social_share" id="" title="" rel=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://www.linkedin.com/sharing/share-offsite?mini=true&url=https://odysseypets.comhttps://odysseypets.com/blog/from-gums-to-gut-how-dental-disease-impacts-whole-body-health/&title=&summary=Get+the+best+information+for+your+pet+from+local+pet+experts+in+Dallas+at+Odyssey+Pets.+Get+the+latest+news%2C+local+events%2C+pet+advice%2C+guidance+and+help+from+our+pet+food+%26+care+experts." class="social-button social_share" id="" title="" rel=""><span class="fab fa-linkedin"></span></a></li></li> 2594</ul> </div> 2595 </div> 2596 <div class="clear-both"></div> 2597 <div class="content text-center"> 2598 <nav> 2599 <ul class="pagination"> 2600 2601 <li class="page-item disabled" aria-disabled="true" aria-label="« Previous"> 2602 <span class="page-link" aria-hidden="true">‹</span> 2603 </li> 2604 2605 2606 2607 2608 2609 <li class="page-item active" aria-current="page"><span class="page-link">1</span></li> 2610 <li class="page-item"><a class="page-link" href="https://odysseypets.com/blog?page=2">2</a></li> 2611 <li class="page-item"><a class="page-link" href="https://odysseypets.com/blog?page=3">3</a></li> 2612 <li class="page-item"><a class="page-link" href="https://odysseypets.com/blog?page=4">4</a></li> 2613 <li class="page-item"><a class="page-link" href="https://odysseypets.com/blog?page=5">5</a></li> 2614 <li class="page-item"><a class="page-link" href="https://odysseypets.com/blog?page=6">6</a></li> 2615 <li class="page-item"><a class="page-link" href="https://odysseypets.com/blog?page=7">7</a></li> 2616 2617 2618 <li class="page-item"> 2619 <a class="page-link" href="https://odysseypets.com/blog?page=2" rel="next" aria-label="Next »">›</a> 2620 </li> 2621 </ul> 2622 </nav> 2623 2624 </div> 2625 </div> 2626 </div> 2627 </div> 2628 </div> 2629 <!--review part-->
2630<script> 2631 function toggleReviewContent(i) { 2632 $(".review-moretext-" + i).toggle(); 2633 $(".review-lesstext-" + i).toggle(); 2634 } 2635 $(document).ready(function () { 2636 var r_showChar = 100; 2637 var r_ellipsestext = "..."; 2638 var r_moretext = "Show More"; 2639 var r_lesstext = "Show Less"; 2640 var i = 0; 2641 $('.r_more').each(function () { 2642 var r_content = $('.review-fulltext-' + i).html(); 2643 var r_readless = '<a class="morelink' + i + ' review-a" onclick="toggleReviewContent(' + i + ')"> ' + r_lesstext + '</a>'; 2644 $('p.review-moretext-' + i).html('<i class="fas fa-quote-left fa-2x"></i>'+r_content + r_readless).hide(); 2645 if (r_content.length > r_showChar) { 2646 var r_c = r_content.substr(0, r_showChar); 2647 var r_readmore = '<a class="morelink' + i + ' review-a" onclick="toggleReviewContent(' + i + ')"> ' + r_moretext + '</a>'; 2648 $('p.review-lesstext-' + i).html('<i class="fas fa-quote-left fa-2x"></i>'+r_c + r_ellipsestext + ' ' + r_readmore); 2649 }else{ 2650 $('p.review-moretext-' + i).html('<i class="fas fa-quote-left fa-2x"></i>'+r_content).show(); 2651 } 2652 i++; 2653 }); 2654 }); 2655</script>
2655 2656<!--review part end---> 2657 </div> 2658 <a href="/contact-us" 2659 class="button button-full cta-widget-btn center"> 2660 <div class="container clearfix"> 2661 Come visit our pet supply store in Dallas, TX specializing in quality food, treats, and supplies for cats, dogs, fish, and small pets. 2662 </div> 2663 </a> 2664 </section> 2665
2665<script defer> 2666 document.addEventListener("DOMContentLoaded", function () { 2667 var lazyBackgrounds = [].slice.call(document.querySelectorAll(".blog-background")); 2668 if(/MSIE \d|Trident.*rv:/.test(navigator.userAgent)){ 2669 $('.not_ie_div').hide(); 2670 $('.ie_div').show(); 2671 } else { 2672 $('.ie_div').hide(); 2673 $('.not_ie_div').show(); 2674 if ("IntersectionObserver" in window) { 2675 let lazyBackgroundObserver = new IntersectionObserver(function (entries, observer) { 2676 entries.forEach(function (entry) { 2677 if (entry.isIntersecting) { 2678 var bg_url = entry.target.dataset.src; 2679 entry.target.setAttribute('style', 'background-image:url("' + bg_url + '") !important'); 2680 entry.target.classList.add("visible"); 2681 lazyBackgroundObserver.unobserve(entry.target); 2682 } 2683 }); 2684 }); 2685 lazyBackgrounds.forEach(function (lazyBackground) { 2686 lazyBackgroundObserver.observe(lazyBackground); 2687 }); 2688 } 2689 } 2690 }); 2691 let input = document.getElementById("blog-search-box"); 2692 input.addEventListener("keyup", function(event) { 2693 if (event.keyCode === 13) { 2694 event.preventDefault(); 2695 document.getElementById("blog-search-btn").click(); 2696 } 2697 }); 2698 function showSearchBtn() { 2699 let searchTerm = $('#blog-search-box').val(); 2700 if (searchTerm.length>=2){ 2701 $('#blog-search-btn').show() 2702 } 2703 if (searchTerm.length<3){ 2704 $('#blog-search-btn').hide() 2705 $('#results').hide(); 2706 $('#previous_result').show(); 2707 2708 } 2709 } 2710 2711 function blogSearch() { 2712 let searchTerm = $('#blog-search-box').val(); 2713 if (searchTerm.length>=2){ 2714 $.ajax({ 2715 type: 'GET', 2716 url: '/blog-search', 2717 data: {'searchTerm': searchTerm,"_token": "0qV2grcc9PYOeMyfr8L7FQwNzhk2nnlWjC73mHRJ"}, 2718 success: function (response) { 2719 $('#results').empty(); 2720 if (response!=''){ 2721 $('#results').show(); 2722 $('#results').append(response); 2723 $('#previous_result').hide(); 2724 } 2725 } 2726 }); 2727 } 2728 } 2729 </script>
2729 2730 <style> 2731 .blog-subtitle { 2732 font-size: 2rem; 2733 color: grey; 2734 margin-top: -1.5rem; 2735 margin-bottom: 0; 2736 } 2737 </style> 2738</div> 2739<!-- Footer 2740============================================= --> 2741 2742<footer id="footer" class="dark"> 2743 <div class="container"> 2744 <!-- Footer Widgets 2745 ============================================= --> 2746 <div class="footer-widgets-wrap clearfix"> 2747 <div class="col-xs-12 col-sm-6 col-md-4"> 2748 <div class="widget clearfix"> 2749 <div class="clearfix"> 2750 <div class="col-md-12"> 2751 <address class="nobottommargin"> 2752 <a target="_blank" 2753 href="https://www.google.com/maps/place/search?q=Odyssey+Pets+14999+Preston+Rd+400a+Dallas+TX+75254&place_id=Ei0xNDk5OSBQcmVzdG9uIFJkICM0MDBhLCBEYWxsYXMsIFRYIDc1MjMwLCBVU0EiIBoeChYKFAoSCdEwMgOdIEyGEaZscOUlIzzlEgQ0MDBh"> 2754 <h4 class="get-direction-btn" 2755 id="map-title">Odyssey Pets</h4></a> 2756 14999 Preston Rd, Ste. 400A 2757 <br/> Dallas, TX  75254<br> 2758 <a class="call-us-btn" 2759 href="tel:(972) 407-1166"><abbr 2760 title="Phone Number"></abbr>(972) 407-1166 2761 </a><br> 2762 <a href="mailto:[email protected]" class="footer_email"><abbr 2763 title="Email"></abbr>[email protected]</a> 2764 <div class="shopservices"> 2765 In-Store Pickup, Curbside Pickup, Local Delivery, Same Day Delivery, No Contact Delivery Available 2766 </div> 2767 </address> 2768 <!-- Google Map 2769 ============================================= --> 2770 <div id="map-conatiner" style=""> 2771 <div id="show-map" class="col_half col_last"> 2772 <div id="contact_map" class="place contact-us-map"> 2773 <div class="place footer-map"><a href="https://www.google.com/maps/place/search?q=Odyssey+Pets+14999+Preston+Rd+400a+Dallas+TX+75254&place_id=Ei0xNDk5OSBQcmVzdG9uIFJkICM0MDBhLCBEYWxsYXMsIFRYIDc1MjMwLCBVU0EiIBoeChYKFAoSCdEwMgOdIEyGEaZscOUlIzzlEgQ0MDBh" target="_blank"> 2774 <iframe 2775 class="get-direction-btn" 2776 frameborder="0" 2777 style="border:0;" 2778 referrerpolicy="no-referrer-when-downgrade" 2779 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"> 2780 </iframe> 2781 </a> 2782 </div> 2783 </div> 2784 </div> 2785 </div> 2786 <!-- Google Map End --> 2787 </div> 2788 </div> 2789 </div> 2790 </div> 2791 <div class="col-xs-12 col-sm-6 col-md-8"> 2792 <div class="col-xs-12 col-md-5"> 2793 <div class="widget widget_links clearfix"> 2794 <div class="bottommargin-sm"> 2795 <h4 class="nomargin footer-hours-title">Business Hours</h4> 2796 </div> 2797 2798 <table class="table" style="text-align: center;"> 2799 <tbody> 2800 2801 <tr> 2802 <td style="font-size: 14px; vertical-align: middle;">Mon</td> 2803 <td style="font-size: 14px;"> 2804 7:30 AM - 7:00 PM 2805 </td> 2806 </tr> 2807 <tr> 2808 <td style="font-size: 14px; vertical-align: middle;">Tue</td> 2809 <td style="font-size: 14px;"> 2810 7:30 AM - 7:00 PM 2811 </td> 2812 </tr> 2813 <tr> 2814 <td style="font-size: 14px; vertical-align: middle;">Wed</td> 2815 <td style="font-size: 14px;"> 2816 7:30 AM - 7:00 PM 2817 </td> 2818 </tr> 2819 <tr> 2820 <td style="font-size: 14px; vertical-align: middle;">Thu</td> 2821 <td style="font-size: 14px;"> 2822 7:30 AM - 7:00 PM 2823 </td> 2824 </tr> 2825 <tr> 2826 <td style="font-size: 14px; vertical-align: middle;">Fri</td> 2827 <td style="font-size: 14px;"> 2828 7:30 AM - 7:00 PM 2829 </td> 2830 </tr> 2831 <tr> 2832 <td style="font-size: 14px; vertical-align: middle;">Sat</td> 2833 <td style="font-size: 14px;"> 2834 7:30 AM - 7:00 PM 2835 </td> 2836 </tr> 2837 <tr> 2838 <td style="font-size: 14px; vertical-align: middle;">Sun</td> 2839 <td style="font-size: 14px;"> 2840 11:00 AM - 6:00 PM 2841 </td> 2842 </tr> 2843 2844 </tbody> 2845 </table> 2846 2847 </div> 2848 </div> 2849 <div class="col-xs-12 col-md-3"> 2850 <div class="widget widget_links clearfix"> 2851 <h4>Sitemap</h4> 2852 <ul> 2853 <li> 2854 <a href="https://shop.odysseypets.com/" target=_blank> 2855 <div class="footer-sitemap-text">Shop</div> 2856 </a> 2857 </li> 2858 <li> 2859 <a href="/pet-food-supply/" > 2860 <div class="footer-sitemap-text">Cat &
2860 Dog</div> 2861 </a> 2862 </li> 2863 <li> 2864 <a href="/fish-food-supply/" > 2865 <div class="footer-sitemap-text">Fish</div> 2866 </a> 2867 </li> 2868 <li> 2869 <a href="/small-pet-food-supply/" > 2870 <div class="footer-sitemap-text">Small Pets</div> 2871 </a> 2872 </li> 2873 <li> 2874 <a href="/services/" > 2875 <div class="footer-sitemap-text">Services</div> 2876 </a> 2877 </li> 2878 <li> 2879 <a href="/events/" > 2880 <div class="footer-sitemap-text">Events & Deals</div> 2881 </a> 2882 </li> 2883 <li> 2884 <a href="/loyalty-program/" > 2885 <div class="footer-sitemap-text">Loyalty Program</div> 2886 </a> 2887 </li> 2888 <li> 2889 <a href="/about-us/" > 2890 <div class="footer-sitemap-text">About</div> 2891 </a> 2892 </li> 2893 <li> 2894 <a href="/blog/" > 2895 <div class="footer-sitemap-text">Blog</div> 2896 </a> 2897 </li> 2898 <li> 2899 <a href="/sitemap/"> 2900 <div class="footer-sitemap-text">Sitemap</div> 2901 </a> 2902 </li> 2903 </ul> 2904 </div> 2905 </div> 2906 <div class="col-xs-12 col-md-4"> 2907 <div class="widget quick-contact-widget clearfix"> 2908 <h4>Subscribe</h4> 2909 <div class="input-group divcenter"> 2910 Get exclusive email offers, promotions, and updates from our business. 2911 </div> 2912 <div class="quick-contact-form-result"></div> 2913 <form class="quick-contact-form nobottommargin subscription-form" 2914 name="subscription-form" role="form" enctype="multipart/form-data" method="POST" 2915 action="https://odysseypets.com/subscription/save" onsubmit="return false" novalidate> 2916 <input type="hidden" id="locationId" name="location_id" value="283"> 2917 <input type="hidden" id="clientId" name="client_id" value="222"> 2918 <input type="hidden" name="result" value="footer-result"> 2919 <div class="form-process"></div> 2920 <div class="input-group divcenter">
2921 <span class="input-group-addon"><i class="fas fa-user"></i></span> 2922 <input type="text" maxlength="25" class="required form-control input-block-level subscription_name" id="name" 2923 name="name" value="" placeholder="Name" required/> 2924 </div> 2925 <div class="input-group divcenter"> 2926 <span class="input-group-addon"><i class="fas fa-envelope"></i></span> 2927 <input type="email" class="required form-control email input-block-level" id="email" 2928 name="email" value="" placeholder="Email Address" required/> 2929 </div> 2930 <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> 2931 <button name="submit" type="submit" id="submit-button" tabindex="5" value="Submit" 2932 class="button button-large button-rounded btn-success subscribe-btn noleftmargin"> 2933 Sign Up 2934 </button> 2935 <span class="loader"><img src='https://ik.imagekit.io/0ofixtqpt/143716/preloader-dark.gif'/>Sending ..</span> 2936 <div class="result"></div> 2937 </form> 2938 </div> 2939 </div> 2940 </div> 2941
2941<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js" defer></script>
2941 2942
2942<script src="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/message-widget/message-widget-v16.min.js" defer></script>
2942 2943 2944 <message-widget-app app_id="469D-412C-52BD-83B4-69F4"></message-widget-app> 2945 </div><!-- .footer-widgets-wrap end --> 2946 </div> 2947<!-- Copyrights 2948============================================= --> 2949 <div id="copyrights"> 2950 <div class="container clearfix"> 2951 <input type="hidden" id="location" name="location" value=""> 2952 <div class="col-xs-12 col-md-8 footer-copyright"> 2953 Copyrights © 2026 | <a href="/privacy-policy">Privacy Policy</a> 2954 | <a href="/terms-of-services">Terms of Service</a> 2955 | Powered by 2956 <a target="_blank" href="https://www.nextpaw.com"> 2957 <img class="powered-by" src="https://ik.imagekit.io/0ofixtqpt/143712/nextpaw.png" width="70px"> 2958 </a> 2959 <br> 2960 </div> 2961 <div class="col-xs-12 col-md-4 tright"> 2962 <div class="fright clearfix"> 2963 2964 2965 2966 <a href="https://maps.app.goo.gl/z1HrjJj2QTakFJPw7" target="_blank" 2967 class="social-icon si-small si-borderless si-gplus"> 2968 <i class="fab fa-google-plus footer-custom-icon"></i> 2969 </a> 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 <a href="https://www.youtube.com/@OdysseyPets" target="_blank" 2981 class="social-icon si-small si-borderless si-youtube"> 2982 <i class="fab fa-youtube"></i> 2983 </a> 2984 2985 2986 2987 2988 2989 <a href="https://www.facebook.com/odysseypets
2989/" target="_blank" 2990 class="social-icon si-small si-borderless si-facebook"> 2991 <i class="fab fa-facebook"></i> 2992 </a> 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 <a href="https://www.instagram.com/odysseypets
3012/" target="_blank" 3013 class="social-icon si-small si-borderless si-instagram"> 3014 <i class="fab fa-instagram"></i> 3015 </a> 3016 3017 3018 3019 3020 3021 3022 3023 3024 </div> 3025 <div class="clear"></div> 3026 </div> 3027 </div><!-- #copyrights end --> 3028 </div> 3029 <!--Modal: modalCookie--> 3030 <div class="modal fade top" id="modalCookie1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" 3031 aria-hidden="true" data-backdrop="false"> 3032 <div class="modal-dialog modal-frame modal-top modal-notify modal-info modal_cookie" role="document"> 3033 <!--Content--> 3034 <div class="modal-content"> 3035 <!--Body--> 3036 <div class="modal-body cookie_bg"> 3037 <div class="container d-flex justify-content-center align-items-center"> 3038 <div class="col-md-6"> 3039 <p class="text-center loc_msg"></p> 3040 </div> 3041 <div class="col-md-6 col-xs-12"> 3042 <a type="button" class="btn btn-lg btn-primary cookie_btn" data-value="NO" 3043 data-dismiss="modal">No, Thanks</a> 3044 <a type="button" id="redirect_location" data-slug="" href="" data-value="YES" 3045 class="btn cookie_btn btn-lg btn-outline-primary waves-effect">Change Location</a> 3046 </div> 3047 </div> 3048 </div> 3049 </div> 3050 <!--/.Content--> 3051 </div> 3052 </div> 3053 <style> 3054 .footer-map iframe{ 3055 min-width: 300px !important; 3056 max-width: 300px !important; 3057 min-height: 300px !important; 3058 max-height: 300px !important; 3059 } 3060 @media(max-width: 720px) and (min-width:320px){ 3061 .footer-map iframe{ 3062 3063 max-width: 100% !important; 3064 3065 max-height: 100% !important; 3066 } 3067 } 3068 3069 /*CSS for tiny MCE editor custom class*/ 3070 .mce-figcaption-custom { 3071 font-size: 14px; 3072 margin-top: 5px; 3073 font-style: italic; 3074 text-align: center; 3075 } 3076 3077 .mce-figure-custom { 3078 margin-bottom: 10px; 3079 } 3080 3081 .mce-figure-align-left-custom { 3082 float: left; 3083 margin-right: 25px; 3084 } 3085 3086 .mce-figure-align-right-custom { 3087 float: right; 3088 margin-left: 25px; 3089 } 3090 3091 .mce-figure-align-center-custom { 3092 text-align: center; 3093 } 3094 3095 .mce-image-align-left-custom { 3096 margin-right: 25px; 3097 margin-bottom: 10px; 3098 } 3099 3100 .mce-image-align-right-custom { 3101 margin-left: 25px; 3102 margin-bottom: 10px; 3103 } 3104 3105 .mce-image-align-center-custom { 3106 margin-bottom: 10px; 3107 } 3108 3109 .first-widget .divider.divider-border.divider-center { 3110 display: none !important; 3111 } 3112 </style> 3113</footer>
3114<script> 3115 // Get all anchor tags (<a>) on the page 3116const links = document.querySelectorAll('a'); 3117 3118// Loop through each link 3119links.forEach(link => { 3120 // Get the href attribute of the link 3121 let href = link.getAttribute('href'); 3122 3123 // Check if the href exists 3124 if (href) { 3125 // If the href is a relative path (starts with '/'), do nothing 3126 if (href.startsWith('/')) { 3127 return; 3128 } 3129 3130 // Check if the href starts with 'http://' or contains 'www' (indicating a non-secure URL) 3131 if (href.startsWith('http://') || href.startsWith('www')) { 3132 link.setAttribute('href', 'https://' + href.replace(/^http:\/\//, '').replace('www.', '')); 3133 } 3134 } 3135}); 3136 3137 3138</script>
3138<!-- Return to Top --> 3139 <div id="gotoTop" class="fas fa-arrow-up"></div> 3140<!-- External JavaScripts 3141============================================= --> 3142<!-- Footer Scripts 3143============================================= --> 3144 3145 3146 3147
3148<script defer type="text/javascript"> 3149 var headquarterName = "dallas"; 3150 var currentLocName = "dallas"; 3151 var pageType = "other"; 3152</script>
3152 3153
3154<script defer type="text/javascript"> 3155 function animateCSS(element, animationName, callback) { 3156 const node = document.querySelector(element) 3157 node.classList.add('animated', animationName) 3158 3159 function handleAnimationEnd() { 3160 node.classList.remove('animated', animationName) 3161 node.removeEventListener('animationend', handleAnimationEnd) 3162 3163 if (typeof callback === 'function') callback() 3164 } 3165 3166 node.addEventListener('animationend', handleAnimationEnd) 3167 } 3168 3169 let closePopup = localStorage.getItem('closeBox'); 3170 // lazy load video for apple browser 3171 $(document).ready(function () { 3172 // add frame to video tag for ios devices 3173 const videos = document.querySelectorAll('video'); 3174 if(videos.length > 0) { 3175 for (video of videos) { // use var video if "strict mode" is enabled 3176 Object.entries(video.children).forEach(([key, value]) => { 3177 var newSrc = value.src + '#t=0.1'; 3178 video.children[key].src = newSrc; 3179 video.setAttribute('playsinline','true'); 3180 video.load(); 3181 }); 3182 } 3183 } 3184 3185 setInterval(function(){ 3186 if($('iframe#ec-credit-card-form').length > 0) { 3187 var url = $('iframe#ec-credit-card-form').attr('src'); 3188 var dec = decodeURIComponent(url); 3189 function getParameterByName(name, url) { 3190 name = name.replace(/[\[\]]/g, '\\$&'); 3191 var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), 3192 results = regex.exec(url); 3193 if (!results) return null; 3194 if (!results[2]) return ''; 3195 return decodeURIComponent(results[2].replace(/\+/g, ' ')); 3196 } 3197 var color = getParameterByName('color-foreground',dec); 3198 if(color.toString() !== 'rgb(0, 0, 0)') { 3199 var newColor = 'rgb(0, 0, 0)'; 3200 var newUrl = dec.replace(/(color-foreground=).*?(&)/, '$1' + newColor + '$2'); 3201 var newUrl = newUrl.replace(/(color-price=).*?(&)/, '$1' + newColor + '$2'); 3202 var urlEnc = encodeURI(newUrl); 3203 $('iframe#ec-credit-card-form').attr('src', urlEnc); 3204 } 3205 } 3206 }, 1000); 3207 if($('.floating_chat').length < 1){ 3208 $('body').addClass('fbRight'); 3209 } 3210 if($('.fb-customerchat').length < 1){ 3211 $('body').addClass('noFb'); 3212 } 3213 3214 if(closePopup == 'hide'){ 3215 $(".bubbleText").hide(); 3216 } 3217 3218 $(document).on('click', function (event) { 3219 if (!$(event.target).closest('.msg_box').length) { 3220 if(!$(event.target).closest('.floating_chat').length){ 3221 if($('.floating_chat').hasClass('closeBox') == true){ 3222 $('.sendBtn').show(); 3223 $('.supportTxt').show(); 3224 $('#formData').show(); 3225 $('.msg_box').removeClass('enter').css({'z-index': 0,'right':'-500px'}); 3226 $('.floating_chat').find('>i').removeClass('fa-times').addClass('fa-weixin'); 3227 $('.floating_chat').addClass('openBox'); 3228 $('.msg_box').removeClass('enter'); 3229 animateCSS('.msg_box', 'fadeOutRight'); 3230 $('.floating_chat').removeClass('closeBox'); 3231 $('.bubbleText').show(); 3232 } 3233 } 3234 } 3235 }); 3236 setTimeout(function() { 3237 $('.floating_chat').addClass('enter'); 3238 }, 1000); 3239 $('.openBox').click(function () { 3240 if($(this).hasClass('closeBox')){ 3241 $('.sendBtn').show(); 3242 $('.supportTxt').show(); 3243 $('.msg_box').removeClass('enter').css({'z-index': 0,'right':'-500px'}); 3244 $(this).find('>i').removeClass('fa-times').addClass('fa-weixin'); 3245 $(this).addClass('openBox'); 3246 $('.msg_box').removeClass('enter'); 3247 animateCSS('.msg_box', 'fadeOutRight'); 3248 $(this).removeClass('closeBox'); 3249 $('.bubbleText').show(); 3250 } else { 3251 $('#formData').show(); 3252 $('.msg_box').addClass('enter').css({'z-index':999,'right' : 0}); 3253 $(this).find('>i').removeClass('fa-weixin').addClass('fa-times'); 3254 $(this).addClass('closeBox'); 3255 animateCSS('.msg_box', 'fadeInRight'); 3256 $(this).removeClass('openBox'); 3257 $('form input[type="text"].bfh-phone, form input[type="tel"].bfh-phone, span.bfh-phone').each(function () { 3258 var $phone = $(this); 3259 $phone.bfhphone($phone.data()); 3260 }); 3261 $('.bubbleText').hide(); 3262 $('.SubmittedMessage__SendStatus').hide(); 3263 $('.ConfirmationMessage').hide(); 3264 $('.SubmittedMessage').removeClass('SubmittedMessage--visible'); 3265 } 3266 }); 3267 3268 $('#boxclose').click(function () { 3269 $(".bubbleText").fadeOut("normal", function() { 3270 $(this).remove(); 3271 localStorage.setItem('closeBox', 'hide'); 3272 }); 3273 }); 3274 3275 $(document).on('touchstart','li.sub-menu', function () { 3276 if(navigator.userAgent.match(/(iPhone|iPod|iPad)/i)){ 3277 var count = $(this).attr('click-count'); 3278 if(count !== undefined){ 3279 location.href = $(this).children('a').attr('href'); 3280 } else{ 3281 if($(this).hasClass('click-class')){ 3282 $(this).attr('click-count',undefined); 3283 }else{ 3284 $(this).attr('click-count',1); 3285 } 3286 } 3287 } 3288 });
3289 // remove submenu css if empty 3290 $('li.sub-menu').each(function () { 3291 if($(this).children('ul').children().length === 0){ 3292 $(this).children('ul').remove(); 3293 } 3294 }); 3295 3296 $("video.fullscreen-bg__video source").each(function () { 3297 var sourceFile = $(this).attr("data-src"); 3298 $(this).attr("src", sourceFile); 3299 var video = this.parentElement; 3300 }); 3301 3302 $('.mySlides').each(function () { 3303 var imgUrl = $(this).children().attr('src'); 3304 $(this).children().css('opacity', 0); 3305 $(this).css('background', 'url("' + imgUrl + '")'); 3306 }); 3307 3308 var myIndex = 0; 3309 if ($(".page-slider-container")[0]) { 3310 carousel(); 3311 } 3312 3313 function carousel() { 3314 var i; 3315 var x = document.getElementsByClassName("mySlides"); 3316 for (i = 0; i < x.length; i++) { 3317 x[i].style.display = "none"; 3318 } 3319 myIndex++; 3320 if (myIndex > x.length) { 3321 myIndex = 1 3322 } 3323 x[myIndex - 1].style.display = "block"; 3324 setTimeout(carousel, 2000); // Change image every 2 seconds 3325 } 3326 3327 if ($(".review-background-static").length) { 3328 $('.location-divider').hide(); 3329 } 3330 if ($(".review-background-parallax").length) { 3331 $('.location-divider').hide(); 3332 } 3333 3334 $('.social_share').each(function () { 3335 $(this).attr('target', '_blank'); 3336 }); 3337 3338 var font_family = $('body').css('font-family'); 3339 var r_font_family = font_family.replace(/\"/g, ""); 3340 if (r_font_family == "PT Sans Narrow") { 3341 $("#top-social .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important'); 3342 } else if (r_font_family == "Roboto") { 3343 $("#top-social .si-gplus .ts-text").attr('style', 'top: 0px !important;' + 'left:0px !important;' + 'margin-left:-7px !important'); 3344 $("#top-social .si-youtube .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important'); 3345 $("#top-social .si-linkedin .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important');
3346 $("#top-social .si-yelp .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important'); 3347 } 3348 }); 3349 3350 3351 3352 document.addEventListener("DOMContentLoaded", function () { 3353 var lazyBackgrounds = [].slice.call(document.querySelectorAll(".lazy-background")); 3354 3355 if ("IntersectionObserver" in window) { 3356 let lazyBackgroundObserver = new IntersectionObserver(function (entries, observer) { 3357 entries.forEach(function (entry) { 3358 if (entry.isIntersecting) { 3359 entry.target.classList.add("visible"); 3360 lazyBackgroundObserver.unobserve(entry.target); 3361 } 3362 }); 3363 }); 3364 3365 lazyBackgrounds.forEach(function (lazyBackground) { 3366 lazyBackgroundObserver.observe(lazyBackground); 3367 }); 3368 } 3369 }); 3370 3371 //Add Icon for Submenu in Mobile 3372 $('.sub-menu-trigger').click(function () { 3373 if($(this).children('i').hasClass('rotate-icon')){ 3374 $(this).children('i').removeClass('rotate-icon'); 3375 $(this).parent().children('ul').css('display','none'); 3376 }else{ 3377 $(this).children('i').addClass('rotate-icon'); 3378 $(this).parent().children('ul').css('display','block'); 3379 } 3380 }); 3381 3382 //Link to page for Submenu in Mobile 3383 if( /Android|webOS|BlackBerry|iPhone|iPod|iPad/i.test(navigator.userAgent) ) { 3384 var touchmoved; 3385 $('.sub-menu').on('touchend', '.mobile-a', function () { 3386 if(touchmoved != true){ 3387 location.href =$(this).attr('href'); 3388 } 3389 }).on('touchmove', function(e){ 3390 touchmoved = true; 3391 }).on('touchstart', function(){ 3392 touchmoved = false; 3393 }); 3394 3395 $('.sub-menu').on('touchend').on('touchmove', function(e){ 3396 touchmoved = true; 3397 }).on('touchstart', function(){ 3398 touchmoved = false; 3399 }); 3400 } 3401 3402 3403</script>
3403 3404<!-- Ecwid Seo friendly url js code -->
3405<script> 3406 window.ec = window.ec || {}; 3407 window.ec.config = window.ec.config || {}; 3408 window.ec.config.storefrontUrls = window.ec.config.storefrontUrls || {}; 3409 window.ec.config.storefrontUrls.cleanUrls = true; 3410 if(currentLocName == headquarterName){ 3411 window.ec.config.baseUrl = '/shop/'; 3412 var ecwid_ProductBrowserURL = "/shop/"; 3413 } else{ 3414 var ecwid_ProductBrowserURL = currentLocName+'/shop/'; 3415 window.ec.config.baseUrl = currentLocName+'/shop/'; 3416 } 3417 3418</script>
3418 3419 <!-- Prefetch + Preconnect --> 3420 <link rel="dns-prefetch" href="//www.googletagmanager.com"> 3421 <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin> 3422
3422<script> 3423 function loadGTM(id) { 3424 (function(w,d,s,l,i){ 3425 w[l]=w[l]||[]; 3426 w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'}); 3427 var f=d.getElementsByTagName(s)[0], 3428 j=d.createElement(s), dl=l!='dataLayer'?'&l='+l:''; 3429 j.async=true; j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl; 3430 f.parentNode.insertBefore(j,f); 3431 })(window,document,'script','dataLayer', id); 3432 } 3433 3434 function loadGtag() { 3435 var url = window.location.host; 3436 if (url.indexOf('.jenkins') === -1 && url.indexOf('.test') === -1) { 3437 var gtagScript = document.createElement('script'); 3438 gtagScript.src = "https://www.googletagmanager.com/gtag/js?id=G-9N2957J5VN"; 3439 gtagScript.async = true; 3440 document.head.appendChild(gtagScript); 3441 3442 gtagScript.onload = function () { 3443
vendor: 177 bytes, lines 3443-3446
3443window.dataLayer = window.dataLayer || []; 3444 function gtag(){ dataLayer.push(arguments); } 3445 gtag('js', new Date()); 3446 gtag('config', '
3446G-9N2957J5VN
vendor: 16 bytes, lines 3446-3447
3446'); 3447
3447}; 3448 } 3449 } 3450 3451 function loadTrackingScripts() { 3452 loadGTM('GTM-NMGWHXT'); 3453 loadGtag(); 3454 } 3455 3456 if ('requestIdleCallback' in window) { 3457 requestIdleCallback(loadTrackingScripts, { timeout: 2000 }); 3458 } else { 3459 setTimeout(loadTrackingScripts, 2000); 3460 } 3461 </script>
3461 3462 3463 <!-- NOSCRIPT for GTM (should NOT be deferred) -->
vendor: 89 bytes, lines 3463-3465
3463 3464 <noscript> 3465 <iframe src="https://www.googletagmanager.com/ns.html?id=
3465GTM-NMGWHXT
vendor: 106 bytes, lines 3465-3468
3465" height="0" width="0" style="display:none;visibility:hidden"></iframe> 3466 </noscript> 3467 3468
3469<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-848b5ec7e91ef88ba3a","applicationID":"1416771764","transactionName":"ZwNVYEEHCEVTVEZdDl5JdldHDwlYHXZCRD14EkNEbyUJWEZFXVgNVRREaHAJCEJAWF5YBEImWlVaCA==","queueTime":0,"applicationTime":258,"atts":"S0RWFgkdG0s=","errorBeacon":"bam.nr-data.net","agent":""}</script>
3469</body> 3470</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.