Rocky GranvilleAvailable

Rocky GranvilleAvailable
About Rocky Granville
Rocky is a senior hound mix whose world has been turned upside down. Adopted as a puppy, he spent his entire life in a home, only to now find himself looking for a new beginning. While it’s heartbreaking for him, we know there’s a perfect home out there ready to give him the love and stability he deserves. Rocky is a friendly, gentle boy who may be a little shy when you first meet him, but once he warms up, his sweet personality really shines. He’s incredibly intelligent, eager to please, and enjoys having toys to keep him occupied. Having lived in a home his whole life, Rocky is house trained and understands what it means to be part of a family. He would do best in a home where someone is around for most of the day, as he truly loves the comfort and companionship of his people. Rocky is the kind of dog who just wants to be by your side, soaking up love and giving it right back. Rocky is microchipped, neutered, and up to date on vaccines. If you’re looking for a loyal, loving companion to share your days with, Rocky is ready to start his next chapter with you. (function () { // Only on animal detail pages if (!/\/animals\/detail/i.test(location.pathname)) return; // Debounce to avoid double-fire (touchend + click, etc.) var lastNavAt = 0; function toFullSize(url) { try { var u = new URL(url, location.href); u.searchParams.delete('width'); u.searchParams.delete('height'); return u.toString(); } catch (e) { return url || ''; } } function looksLikeAnimalPhoto(url) { return /\/pictures\/animals\/\d+\/\d+\/[^?#]+\.(jpg|jpeg|png|gif)/i.test(url || ''); } function handler(e) { var el = e.target; if (!el) return; // Find the closest anchor or image in the click path var a = el.closest ? el.closest('a') : null; var img = el.closest ? el.closest('img') : null; var url = ''; // Prefer anchor href if it points to an animal photo if (a && a.getAttribute) { var href = a.getAttribute('href') || ''; if (href && (href.indexOf('/pictures/animals/') !== -1 || looksLikeAnimalPhoto(href))) { url = href; } } // Otherwise fall back to the image src if (!url && img && img.getAttribute) { var src = img.getAttribute('src') || ''; if (src && (src.indexOf('/pictures/animals/') !== -1 || looksLikeAnimalPhoto(src))) { url = src; } } if (!url) return; // Absolute URL + full-size version try { url = new URL(url, location.href).toString(); } catch (_) {} url = toFullSize(url); // Stop PrettyPhoto (and any other delegated click handlers) e.preventDefault(); e.stopPropagation(); if (e.stopImmediatePropagation) e.stopImmediatePropagation(); // Debounce var now = Date.now(); if (now - lastNavAt < 500) return; lastNavAt = now; // SAME TAB navigation to the full-size image location.href = url; } // Capture phase is the key: we get the event before PrettyPhoto. ['click', 'pointerup', 'touchend'].forEach(function (evt) { document.addEventListener(evt, handler, true); }); })();











