Phase 1: Remove obsolete files and standardize all pages

- Standardize script loading on faq, privacy, returns, shipping-info pages
- Archive 14 unused JS files (cart-functions, shopping, cart.js, enhanced versions, etc.)
- Archive 2 unused CSS files (responsive-enhanced, responsive-fixes)
- All pages now use consistent script loading order
- Eliminated shopping.js dependency (not needed after standardization)
This commit is contained in:
Local Server
2026-01-14 21:21:32 -06:00
parent 1a5fd691bd
commit 0ac69e98c2
20 changed files with 12 additions and 12 deletions

View File

@@ -0,0 +1,155 @@
/**
* Shared Cart and Wishlist Functions
* Simple localStorage-based implementation that works on all pages
*/
(function () {
"use strict";
// Cart Functions
window.addToCart = function (productId, name, price, imageurl) {
try {
const cart = JSON.parse(localStorage.getItem("cart") || "[]");
const existingItem = cart.find((item) => item.id === productId);
if (existingItem) {
existingItem.quantity = (existingItem.quantity || 1) + 1;
} else {
cart.push({
id: productId,
name,
price: parseFloat(price),
imageurl,
quantity: 1,
});
}
localStorage.setItem("cart", JSON.stringify(cart));
updateCartBadge();
showNotification(`${name} added to cart!`, "success");
} catch (e) {
console.error("Cart error:", e);
showNotification("Added to cart!", "success");
}
};
// Wishlist Functions
window.addToWishlist = function (productId, name, price, imageurl) {
try {
const wishlist = JSON.parse(localStorage.getItem("wishlist") || "[]");
const exists = wishlist.find((item) => item.id === productId);
if (!exists) {
wishlist.push({
id: productId,
name,
price: parseFloat(price),
imageurl,
});
localStorage.setItem("wishlist", JSON.stringify(wishlist));
updateWishlistBadge();
showNotification(`${name} added to wishlist!`, "success");
} else {
showNotification("Already in wishlist!", "info");
}
} catch (e) {
console.error("Wishlist error:", e);
showNotification("Added to wishlist!", "success");
}
};
// Update Badge Functions
function updateCartBadge() {
try {
const cart = JSON.parse(localStorage.getItem("cart") || "[]");
const badge = document.querySelector(".cart-badge");
if (badge) {
const total = cart.reduce((sum, item) => sum + (item.quantity || 1), 0);
badge.textContent = total;
badge.style.display = total > 0 ? "flex" : "none";
}
} catch (e) {
console.error("Badge update error:", e);
}
}
function updateWishlistBadge() {
try {
const wishlist = JSON.parse(localStorage.getItem("wishlist") || "[]");
const badge = document.querySelector(".wishlist-badge");
if (badge) {
badge.textContent = wishlist.length;
badge.style.display = wishlist.length > 0 ? "flex" : "none";
}
} catch (e) {
console.error("Badge update error:", e);
}
}
// Notification Function
function showNotification(message, type = "info") {
// Remove existing notifications
document.querySelectorAll(".cart-notification").forEach((n) => n.remove());
const notification = document.createElement("div");
notification.className = `cart-notification notification-${type}`;
notification.textContent = message;
notification.style.cssText = `
position: fixed;
top: 80px;
right: 20px;
background: ${
type === "success"
? "#10b981"
: type === "error"
? "#ef4444"
: "#3b82f6"
};
color: white;
padding: 12px 24px;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
z-index: 10000;
animation: slideInFromRight 0.3s ease;
`;
// Add animation styles if not already present
if (!document.getElementById("notification-animations")) {
const style = document.createElement("style");
style.id = "notification-animations";
style.textContent = `
@keyframes slideInFromRight {
from { transform: translateX(400px); opacity: 0; }
to { transform: translateX(0); opacity: 1; }
}
@keyframes slideOutToRight {
from { transform: translateX(0); opacity: 1; }
to { transform: translateX(400px); opacity: 0; }
}
`;
document.head.appendChild(style);
}
document.body.appendChild(notification);
setTimeout(() => {
notification.style.animation = "slideOutToRight 0.3s ease";
setTimeout(() => notification.remove(), 300);
}, 3000);
}
// Initialize badges on page load
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", () => {
updateCartBadge();
updateWishlistBadge();
});
} else {
updateCartBadge();
updateWishlistBadge();
}
// Expose update functions globally
window.updateCartBadge = updateCartBadge;
window.updateWishlistBadge = updateWishlistBadge;
})();