Mon–Fri 8–5 · Sat 8–12 · Closed Sun

546 Curran Hwy, North Adams, MA

(413) 664-7111

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

* * Behavior: * - Shows once per browser tab session (sessionStorage). Reappears in a * new tab/window or after the browser is fully closed and reopened, * but not again on subsequent page loads within the same session. * - Self-contained: all CSS is scoped under #ssdc-overlay and all class * names are prefixed "ssdc-" so it will not collide with or leak into * the host site's own styles. * - Closes on: clicking the × button, clicking the dark backdrop, or * pressing Escape. Background scroll is locked while open. * - If a visitor is already on the same site one of the three panels * links to (matched by base domain, any subpage counts), clicking that * panel just closes the popover instead of navigating there again. * - Also won't fire at all if the visitor arrived (via document.referrer) * from any of those same three destination sites — they just came from * there, so there's nothing to offer them. * * Content mirrors https://southsidesales.com/draft/ (image URLs below are * absolute so this renders correctly no matter what site it's loaded on). */ (function () { "use strict"; var STORAGE_KEY = "ssdcPopoverShown"; var BASE = "https://dev.southsidesales.com/wp-content/uploads/2026/10/southside-popup-"; // Single source of truth for the three panels: used both to render the // markup (in buildOverlay) and to check the referrer before showing // anything, so the two can never drift out of sync. var PANELS = [ { href: "https://bobcatnorthernberkshire.com/", accent: "#f2811d", ariaLabel: "Explore Bobcat equipment", img: "bobcat520.jpg", alt: "Bobcat compact track loader and excavator on a job site", wide: false }, { href: "https://southsidesales.com", accent: "#3f7d2c", ariaLabel: "Explore lawn and garden equipment", img: "lawncare880.jpg", alt: "Husqvarna, Mahindra, Ariens, Gravely and Stihl lawn and snow equipment in use at a home", wide: true }, { href: "https://southsidepolaris.com/", accent: "#003087", ariaLabel: "Explore Polaris snowmobiles", img: "polaris520.jpg", alt: "Polaris snowmobile jumping through snow", wide: false } ]; function normHost(h) { return h.replace(/^www\./i, "").toLowerCase(); } var DESTINATION_HOSTS = PANELS.map(function (p) { return normHost(new URL(p.href).hostname); }); // Only ever show once per tab session. try { if (sessionStorage.getItem(STORAGE_KEY)) return; } catch (e) { // sessionStorage unavailable (privacy mode, etc.) — fall back to // showing every load rather than throwing. } // Don't show it at all if the visitor just came from one of the // destination sites themselves. if (document.referrer) { try { var refHost = normHost(new URL(document.referrer).hostname); if (DESTINATION_HOSTS.indexOf(refHost) !== -1) return; } catch (e) { // Unparseable referrer — treat as "not a destination" and continue. } } function markShown() { try { sessionStorage.setItem(STORAGE_KEY, "1"); } catch (e) {} } // True when `href` points at the same site the visitor is already on // (same base domain, ignoring a "www." prefix). This intentionally // ignores the path — a visitor on ANY subpage of, say, // bobcatnorthernberkshire.com is still "on" that site, so the panel // linking to it should close the popover rather than redirect them. function isCurrentSite(href) { try { var target = new URL(href, location.href); return normHost(target.hostname) === normHost(location.hostname); } catch (e) { return false; } } function init() { injectStyles(); var overlay = buildOverlay(); document.body.appendChild(overlay); // Force layout, then add the "open" class so the CSS transition runs. requestAnimationFrame(function () { requestAnimationFrame(function () { overlay.classList.add("ssdc-open"); }); }); var previousOverflow = document.documentElement.style.overflow; document.documentElement.style.overflow = "hidden"; function close() { overlay.classList.remove("ssdc-open"); document.documentElement.style.overflow = previousOverflow; document.removeEventListener("keydown", onKeydown); // Wait for the fade-out transition before removing from the DOM. setTimeout(function () { if (overlay.parentNode) overlay.parentNode.removeChild(overlay); }, 300); } function onKeydown(e) { if (e.key === "Escape" || e.keyCode === 27) close(); } overlay.addEventListener("click", function (e) { if (e.target === overlay) close(); }); overlay.querySelector(".ssdc-close").addEventListener("click", close); document.addEventListener("keydown", onKeydown); // A panel linking to the page the visitor is already on shouldn't // navigate — just close the popover instead. var panels = overlay.querySelectorAll(".ssdc-panel"); for (var i = 0; i < panels.length; i++) { var panel = panels[i]; if (isCurrentSite(panel.getAttribute("href"))) { panel.addEventListener("click", function (e) { e.preventDefault(); close(); }); } } markShown(); } function buildOverlay() { var overlay = document.createElement("div"); overlay.id = "ssdc-overlay"; overlay.setAttribute("role", "dialog"); overlay.setAttribute("aria-modal", "true"); overlay.setAttribute("aria-label", "Shop by department"); var panelsHTML = PANELS.map(function (p) { return ( '' + '' + p.alt + '' + 'Explore' + '' ); }).join(""); overlay.innerHTML = '
' + '' + '
' + '
' + '' + '' + '
' + '
' + '
'; return overlay; } function injectStyles() { if (document.getElementById("ssdc-styles")) return; var style = document.createElement("style"); style.id = "ssdc-styles"; style.textContent = [ "#ssdc-overlay{position:fixed;inset:0;z-index:2147483647;display:flex;align-items:center;justify-content:center;", "background:rgba(0,0,0,0);padding:20px;box-sizing:border-box;opacity:0;transition:background 300ms ease,opacity 300ms ease;}", "#ssdc-overlay.ssdc-open{background:rgba(0,0,0,.78);opacity:1;}", "#ssdc-overlay .ssdc-modal{position:relative;width:100%;max-width:1200px;max-height:90vh;background:#000;", "border-radius:10px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5);transform:scale(.94);", "transition:transform 300ms cubic-bezier(.25,.8,.25,1);}", "#ssdc-overlay.ssdc-open .ssdc-modal{transform:scale(1);}", "#ssdc-overlay .ssdc-scroll{max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;", "padding-top:clamp(30px,4.7vw,70px);}", /* room for the top half of the logo, mirrors body's padding-top on the source page */ "#ssdc-overlay .ssdc-close{position:absolute;top:12px;right:12px;z-index:10;width:36px;height:36px;", "border-radius:50%;border:none;background:rgba(255,255,255,.92);color:#111;font-size:22px;line-height:1;", "cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.4);", "transition:background 150ms ease,transform 150ms ease;}", "#ssdc-overlay .ssdc-close:hover{background:#fff;transform:scale(1.08);}", /* --- content, ported from southsidesales.com/draft/ and namespaced --- */ "#ssdc-overlay .ssdc-wrap{position:relative;max-width:1600px;margin:0 auto;background:#000;}", "#ssdc-overlay .ssdc-logo{position:absolute;top:0;left:50%;z-index:5;width:clamp(220px,34vw,480px);", "height:auto;transform:translate(-50%,-50%);filter:drop-shadow(0 8px 16px rgba(0,0,0,.5));pointer-events:none;}", "#ssdc-overlay .ssdc-nav{display:grid;grid-template-columns:13fr 22fr 13fr;align-items:start;gap:10px;", "width:100%;background:#000;margin:0;}", "#ssdc-overlay .ssdc-panel{position:relative;display:block;overflow:hidden;text-decoration:none;", "outline-offset:-4px;background:#000;aspect-ratio:520/1080;}", "#ssdc-overlay .ssdc-panel--wide{aspect-ratio:880/1080;}", "#ssdc-overlay .ssdc-panel__img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;", "object-position:center;display:block;filter:grayscale(1);transform:scale(1);", "transition:filter 450ms cubic-bezier(.25,.8,.25,1),transform 450ms cubic-bezier(.25,.8,.25,1);}", "#ssdc-overlay .ssdc-panel::after{content:'';position:absolute;inset:auto 0 0 0;height:40%;", "background:linear-gradient(to top,rgba(0,0,0,.6),transparent);pointer-events:none;}", "#ssdc-overlay .ssdc-panel__cta{position:absolute;left:50%;top:50%;z-index:2;", "transform:translate(-50%,-50%) scale(1);padding:.85em 2.1em;border-radius:999px;", "background:rgba(255,255,255,.92);color:#111;font:700 .85rem/1 'Segoe UI',Arial,sans-serif;", "letter-spacing:.08em;text-transform:uppercase;border:2px solid transparent;", "box-shadow:0 6px 18px rgba(0,0,0,.35);filter:grayscale(1);", "transition:filter 450ms cubic-bezier(.25,.8,.25,1),transform 450ms cubic-bezier(.25,.8,.25,1),", "background-color 450ms cubic-bezier(.25,.8,.25,1),color 450ms cubic-bezier(.25,.8,.25,1),", "border-color 450ms cubic-bezier(.25,.8,.25,1);}", "#ssdc-overlay .ssdc-panel:hover .ssdc-panel__img,#ssdc-overlay .ssdc-panel:focus-visible .ssdc-panel__img{", "filter:grayscale(0);transform:scale(1.02);}", "#ssdc-overlay .ssdc-panel:hover .ssdc-panel__cta,#ssdc-overlay .ssdc-panel:focus-visible .ssdc-panel__cta{", "filter:grayscale(0);transform:translate(-50%,-50%) scale(1.02);background:var(--accent);color:#fff;", "border-color:rgba(255,255,255,.9);}", "#ssdc-overlay .ssdc-panel:focus-visible{outline:3px solid #fff;}", "@media (prefers-reduced-motion: reduce){", "#ssdc-overlay,#ssdc-overlay .ssdc-modal,#ssdc-overlay .ssdc-panel__img,#ssdc-overlay .ssdc-panel__cta{", "transition:none;}}", "@media (max-width:760px){", "#ssdc-overlay{padding:0;}", "#ssdc-overlay .ssdc-modal{max-width:100%;max-height:100vh;border-radius:0;}", "#ssdc-overlay .ssdc-scroll{max-height:100vh;padding-top:clamp(40px,11vw,90px);}", "#ssdc-overlay .ssdc-nav{grid-template-columns:1fr;}", "#ssdc-overlay .ssdc-panel{height:42vh;aspect-ratio:auto;}", "#ssdc-overlay .ssdc-panel__img{object-fit:cover;object-position:center bottom;}", "#ssdc-overlay .ssdc-logo{width:80%;}", "}" ].join(""); document.head.appendChild(style); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", init); } else { init(); } })();