Free Phone and First 2 Months Free
Keep Your Same Number
Unlimited Talk
Unlimited Text
2 GB of Internet
Pay Only $9.99 per month
Autopay Required. $14.99 per month without Autopay
Simple. Affordable. Friendly. Made Just for You.
For The Best Senior Plan Marianna FL You Have Come To The Right Place
Are You 55+?
// --- Config ---
const SENIOR_CHAT_BASE_URL = 'https://chatbot.selectelwireless.com';
const SENIOR_CHAT_ENDPOINT = `${SENIOR_CHAT_BASE_URL}/senior/chat`;
const seniorWelcomeMessage = `
Hi there! It’s nice to meet you.
We help seniors cut their cell phone bill in half or more with our $9.99/month Senior Plan that includes unlimited talk, unlimited text, and 2GB of high-speed data every month with no contracts.
Switching is easy — we do it all for you!
Plus get a Free Phone and your First 2 Months Free!
To see if you qualify, are you 55 or older? `; function seniorGenerateUUID() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { const r = Math.random() * 16 | 0; const v = c === 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); }); } // Separate sessionId key so it doesn't collide with repair/AWP sessions const seniorSessionId = sessionStorage.getItem('seniorChatSessionId') || seniorGenerateUUID(); sessionStorage.setItem('seniorChatSessionId', seniorSessionId); // --- UTM + meta tracking (sent to senior bot) --- const seniorPageUrl = window.location.href; const seniorReferrerUrl = document.referrer || ''; let seniorUtmSource = ''; let seniorUtmMedium = ''; let seniorUtmCampaign = ''; let seniorUtmTerm = ''; let seniorUtmContent = ''; try { const params = new URLSearchParams(window.location.search); seniorUtmSource = params.get('utm_source') || ''; seniorUtmMedium = params.get('utm_medium') || ''; seniorUtmCampaign = params.get('utm_campaign') || ''; seniorUtmTerm = params.get('utm_term') || ''; seniorUtmContent = params.get('utm_content') || ''; } catch (e) { console.warn('UTM parse failed (Senior widget):', e); } // --- Build the Chat UI --- const seniorChatContainer = document.getElementById('seniorBotWidget'); seniorChatContainer.innerHTML = `
`;
// --- References ---
const seniorUserInput = document.getElementById('seniorUserInput');
const seniorChatHistory = document.getElementById('seniorChatHistory');
const seniorLocationButton = document.getElementById('seniorLocationButton');
// --- Helper: append messages ---
function seniorAppendMessage(text, type, autoScroll = true) {
const wrapper = document.createElement('div');
wrapper.className = type === 'user' ? 'senior-user-message' : 'senior-bot-message';
const bubble = document.createElement('span');
bubble.className = 'senior-message-bubble';
bubble.innerHTML = text;
wrapper.appendChild(bubble);
seniorChatHistory.appendChild(wrapper);
if (autoScroll) {
const messageHeight = wrapper.offsetHeight;
const viewportHeight = seniorChatHistory.clientHeight;
if (messageHeight >= viewportHeight) {
// If the last message is taller than the viewport,
// align so its TOP is at the top of the visible area
seniorChatHistory.scrollTop = seniorChatHistory.scrollHeight - messageHeight;
} else {
// Normal behavior: scroll to bottom
seniorChatHistory.scrollTop = seniorChatHistory.scrollHeight;
}
}
}
// 🔹 Initial welcome message (no auto-scroll)
seniorAppendMessage(seniorWelcomeMessage, 'bot', false);
// --- Geolocation ---
function seniorGetLocation() {
seniorLocationButton.style.display = 'none';
if (navigator.geolocation) {
seniorAppendMessage('Getting your location...', 'bot');
navigator.geolocation.getCurrentPosition(seniorSendLocationToServer, seniorHandleLocationError);
} else {
alert('Geolocation is not supported by this browser.');
}
}
function seniorSendLocationToServer(position) {
const extra = {
latitude: position.coords.latitude,
longitude: position.coords.longitude,
message: 'User provided their current location to find the nearest store.'
};
seniorSendToBot(null, extra);
}
function seniorHandleLocationError(error) {
alert(`Location Error (${error.code}): ${error.message}`);
}
// --- Core Chat Function ---
async function seniorSendToBot(textMessage = null, extra = null) {
const message = textMessage === null ? seniorUserInput.value.trim() : textMessage;
if (!message && !extra) return;
if (message) {
seniorAppendMessage(message, 'user'); // autoScroll = true
}
seniorUserInput.value = '';
seniorLocationButton.style.display = 'none';
const thinkingIndicator = document.createElement('div');
thinkingIndicator.id = 'seniorThinking';
thinkingIndicator.classList.add('senior-bot-message');
thinkingIndicator.innerHTML = `● ● ●`;
seniorChatHistory.appendChild(thinkingIndicator);
seniorChatHistory.scrollTop = seniorChatHistory.scrollHeight;
const payload = {
sessionId: seniorSessionId,
// meta for tracking
sourcePageUrl: seniorPageUrl,
pageUrl: seniorPageUrl, // in case you ever use this name instead
referrerUrl: seniorReferrerUrl,
utmSource: seniorUtmSource,
utmMedium: seniorUtmMedium,
utmCampaign: seniorUtmCampaign,
utmTerm: seniorUtmTerm,
utmContent: seniorUtmContent,
referralSource: 'Marianna_FL_Seniors_LandingPage'
};
if (message) payload.userMessage = message;
if (extra && typeof extra === 'object') {
Object.assign(payload, extra);
}
try {
const response = await fetch(SENIOR_CHAT_ENDPOINT, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
});
if (!response.ok) throw new Error(`Server error: ${response.status}`);
const data = await response.json();
thinkingIndicator.remove();
seniorAppendMessage(data.reply || 'No reply received.', 'bot'); // autoScroll = true
// Show/hide location button based on backend flag
if (data.requestLocation) {
seniorLocationButton.style.display = 'block';
} else {
seniorLocationButton.style.display = 'none';
}
} catch (error) {
console.error('Senior chat error:', error);
thinkingIndicator.remove();
seniorAppendMessage('❌ There was a problem contacting support. Please try again.', 'bot');
}
}
// --- Keyboard handler ---
function seniorHandleKey(event) {
if (event.key === 'Enter') {
seniorSendToBot();
}
}
We help seniors cut their cell phone bill in half or more with our $9.99/month Senior Plan that includes unlimited talk, unlimited text, and 2GB of high-speed data every month with no contracts.
Switching is easy — we do it all for you!
Plus get a Free Phone and your First 2 Months Free!
To see if you qualify, are you 55 or older? `; function seniorGenerateUUID() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { const r = Math.random() * 16 | 0; const v = c === 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); }); } // Separate sessionId key so it doesn't collide with repair/AWP sessions const seniorSessionId = sessionStorage.getItem('seniorChatSessionId') || seniorGenerateUUID(); sessionStorage.setItem('seniorChatSessionId', seniorSessionId); // --- UTM + meta tracking (sent to senior bot) --- const seniorPageUrl = window.location.href; const seniorReferrerUrl = document.referrer || ''; let seniorUtmSource = ''; let seniorUtmMedium = ''; let seniorUtmCampaign = ''; let seniorUtmTerm = ''; let seniorUtmContent = ''; try { const params = new URLSearchParams(window.location.search); seniorUtmSource = params.get('utm_source') || ''; seniorUtmMedium = params.get('utm_medium') || ''; seniorUtmCampaign = params.get('utm_campaign') || ''; seniorUtmTerm = params.get('utm_term') || ''; seniorUtmContent = params.get('utm_content') || ''; } catch (e) { console.warn('UTM parse failed (Senior widget):', e); } // --- Build the Chat UI --- const seniorChatContainer = document.getElementById('seniorBotWidget'); seniorChatContainer.innerHTML = `
Send My Current Location
The Smart Choice For Seniors
Looking for the best senior plan Marianna FL? We’ve got you.
Nationwide Coverage & No Contracts.
Trusted by thousands of locals.
Local Friendly Support
We are located at 2822 FL-71 Suite B Marianna FL and we proudly serve Marianna and the surrounding communities.