0
Skip to Content
Melissa Nadia Viviana
Melissa Nadia Viviana
Directory
Premium Directory
Site Map
All Collections
Articles
Resist Rebel Revolt
Nobody's Right When Everybody's Wrong
Memoir
My Biography
Ad Hominem
Some Other Beginning's End
Aphorisms
Ambiguous, Not Amphibious
All The News That's Fit To Write
Philosophy
The Beat Philosopher
The Subjective Psychology Project
My Slow Descent Into Existentialism
Podcast
Coming Soon
Members
Join The Community
Quiz Directory
Contact Me
Login Account
Buy Me A Coffee
Login Account
Buy Me A Coffee
Melissa Nadia Viviana
Melissa Nadia Viviana
Directory
Premium Directory
Site Map
All Collections
Articles
Resist Rebel Revolt
Nobody's Right When Everybody's Wrong
Memoir
My Biography
Ad Hominem
Some Other Beginning's End
Aphorisms
Ambiguous, Not Amphibious
All The News That's Fit To Write
Philosophy
The Beat Philosopher
The Subjective Psychology Project
My Slow Descent Into Existentialism
Podcast
Coming Soon
Members
Join The Community
Quiz Directory
Contact Me
Folder: Directory
Back
Premium Directory
Site Map
All Collections
Folder: Articles
Back
Resist Rebel Revolt
Nobody's Right When Everybody's Wrong
Folder: Memoir
Back
My Biography
Ad Hominem
Some Other Beginning's End
Folder: Aphorisms
Back
Ambiguous, Not Amphibious
All The News That's Fit To Write
Folder: Philosophy
Back
The Beat Philosopher
The Subjective Psychology Project
My Slow Descent Into Existentialism
Folder: Podcast
Back
Coming Soon
Folder: Members
Back
Join The Community
Quiz Directory
Contact Me
Login Account
Buy Me A Coffee
Premium Directory
Contact Me!
...Site Nav Components Here
// Simplified Member Navigation - Place at END of Footer Code Injection (function() { 'use strict'; // Wait for everything to load function initMemberNav() { console.log('🚀 Initializing member navigation...'); // Step 1: Hide "Join The Community" immediately hideJoinCommunity(); // Step 2: Detect membership and add items detectMembershipAndApply(); } function hideJoinCommunity() { const joinItems = document.querySelectorAll('.header-nav-folder-item-content, .header-menu-nav-item-content'); let hiddenCount = 0; joinItems.forEach(item => { if (item.textContent.trim() === 'Join The Community') { const parent = item.closest('.header-nav-folder-item, .header-menu-nav-item'); if (parent) { parent.style.display = 'none'; hiddenCount++; } } }); console.log(`✅ Hidden ${hiddenCount} "Join The Community" items`); } function detectMembershipAndApply() { // Check if logged in const authElement = document.querySelector('.auth'); const isLoggedIn = authElement && authElement.textContent.includes('Account'); if (!isLoggedIn) { console.log('👤 Not logged in - visitor status'); return; } console.log('✅ User is logged in, testing membership level...'); // Test for free membership (simpler approach) fetch('/free-home', { method: 'HEAD', credentials: 'same-origin' }) .then(response => { if (response.status === 200 && !response.url.includes('/account/login')) { console.log('🆓 Free member detected'); addMemberItems('free'); } else { console.log('👤 Visitor status (no free access)'); } }) .catch(() => { console.log('❌ Membership test failed'); }); } function addMemberItems(membershipLevel) { const itemsToAdd = { free: { members: [ { text: "Member's Directory", url: "/members-directory" }, { text: "Upgrade To Premium", url: "/membership" } ] }, premium: { members: [ { text: "Premium Directory", url: "/premium-directory" }, { text: "Buy Me A Coffee", url: "/membership" } ] } }; const config = itemsToAdd[membershipLevel]; if (!config) return; // Add to desktop members folder const membersFolder = document.getElementById('members'); if (membersFolder && config.members) { config.members.forEach(item => { // Check if item already exists const existing = Array.from(membersFolder.querySelectorAll('.header-nav-folder-item-content')) .find(el => el.textContent.trim() === item.text); if (!existing) { const navItem = document.createElement('div'); navItem.className = 'header-nav-folder-item member-added-item'; navItem.innerHTML = ` ${item.text} `; membersFolder.insertBefore(navItem, membersFolder.firstChild); console.log(`✅ Added desktop item: ${item.text}`); } }); } // Add to mobile members folder const mobileMembersFolder = document.querySelector('.header-menu-nav-folder[data-folder="/members"] .header-menu-nav-folder-content'); if (mobileMembersFolder && config.members) { config.members.forEach(item => { // Check if item already exists const existing = Array.from(mobileMembersFolder.querySelectorAll('.header-menu-nav-item-content')) .find(el => el.textContent.trim() === item.text); if (!existing) { const mobileItem = document.createElement('div'); mobileItem.className = 'container header-menu-nav-item member-added-mobile-item'; mobileItem.innerHTML = `
${item.text}
`; // Insert after back button if it exists const backButton = mobileMembersFolder.querySelector('.header-menu-controls'); if (backButton && backButton.nextElementSibling) { mobileMembersFolder.insertBefore(mobileItem, backButton.nextElementSibling); } else { mobileMembersFolder.appendChild(mobileItem); } console.log(`✅ Added mobile item: ${item.text}`); } }); } document.body.classList.add(`${membershipLevel}-member`); console.log(`🎯 ${membershipLevel} navigation applied successfully`); } // Clean up function for testing window.resetMemberNav = function() { // Remove added items document.querySelectorAll('.member-added-item, .member-added-mobile-item').forEach(item => item.remove()); // Restore hidden items document.querySelectorAll('.header-nav-folder-item, .header-menu-nav-item').forEach(item => { if (item.style.display === 'none') { const text = item.querySelector('.header-nav-folder-item-content, .header-menu-nav-item-content'); if (text && text.textContent.trim() === 'Join The Community') { item.style.display = ''; } } }); // Remove member classes document.body.classList.remove('free-member', 'premium-member'); console.log('🔄 Member navigation reset'); }; // Initialize when everything is loaded if (document.readyState === 'complete') { // Small delay to ensure all other scripts have finished setTimeout(initMemberNav, 1000); } else { window.addEventListener('load', function() { setTimeout(initMemberNav, 1000); }); } })();