(function () {
const activeClasses = ['text-[#ccff00]', 'font-semibold'];
const navLinks = Array.from(document.querySelectorAll('nav a[href]')).filter(link =>
['Mobile Apps', 'Business Websites', 'Shopify Stores', 'Our Work', 'About', 'Contact'].includes(link.textContent.trim())
);
if (!navLinks.length) return;
const pageClusters = {
'mobile-apps.html': 'index.html#mobile-apps',
'mobile-app-branding-ui-ux.html': 'index.html#mobile-apps',
'backend-api-integration.html': 'index.html#mobile-apps',
'app-store-launch-support.html': 'index.html#mobile-apps',
'influencer-marketing-social-media.html': 'index.html#mobile-apps',
'websites.html': 'index.html#business-websites',
'business-websites.html': 'index.html#business-websites',
'small-business-website-design.html': 'index.html#business-websites',
'service-business-website-design.html': 'index.html#business-websites',
'fort-lauderdale-business-website-design.html': 'index.html#business-websites',
'custom-business-website-development.html': 'index.html#business-websites',
'custom-web-development-ecommerce.html': 'index.html#business-websites',
'ecommerce-business-websites.html': 'index.html#business-websites',
'booking-website-for-business.html': 'index.html#business-websites',
'online-bookings-appointments-memberships.html': 'index.html#business-websites',
'business-website-seo.html': 'index.html#business-websites',
'seo-performance-optimization.html': 'index.html#business-websites',
'brand-positioning-creative-strategy.html': 'index.html#business-websites',
'generative-engine-optimization.html': 'index.html#business-websites',
'shopify-stores.html': 'index.html#shopify-stores',
'shopify-store-design.html': 'index.html#shopify-stores',
'shopify-seo-optimization.html': 'index.html#shopify-stores',
'shopify-migration-optimization.html': 'index.html#shopify-stores',
'about.html': 'index.html#about',
};
const homeSections = [
{ id: 'mobile-apps', href: 'index.html#mobile-apps' },
{ id: 'business-websites', href: 'index.html#business-websites' },
{ id: 'shopify-stores', href: 'index.html#shopify-stores' },
{ id: 'work', href: 'index.html#work' },
{ id: 'about', href: 'index.html#about' },
{ id: 'contact', href: 'index.html#contact' },
];
function setActive(href) {
navLinks.forEach(link => {
const isActive = link.getAttribute('href') === href;
link.classList.toggle(activeClasses[0], isActive);
link.classList.toggle(activeClasses[1], isActive);
if (isActive) {
link.setAttribute('aria-current', 'page');
} else {
link.removeAttribute('aria-current');
}
});
}
function normalizedPage() {
const page = window.location.pathname.split('/').pop();
return page || 'index.html';
}
function updateHomeActive() {
const offset = window.innerHeight * 0.35;
let currentHref = '';
for (const section of homeSections) {
const element = document.getElementById(section.id);
if (!element) continue;
if (element.getBoundingClientRect().top <= offset) {
currentHref = section.href;
}
}
setActive(currentHref);
}
function hrefForCurrentHash() {
const section = homeSections.find(item => `#${item.id}` === window.location.hash);
return section ? section.href : '';
}
const page = normalizedPage();
if (page === 'index.html') {
setActive(hrefForCurrentHash());
requestAnimationFrame(updateHomeActive);
window.addEventListener('load', updateHomeActive);
window.addEventListener('scroll', updateHomeActive, { passive: true });
window.addEventListener('hashchange', () => {
setActive(hrefForCurrentHash());
requestAnimationFrame(updateHomeActive);
});
return;
}
setActive(pageClusters[page] || '');
})();