🤖 ALINA - Inteligentný Chatbot Widget
📋 KOMPLETNÝ KÓD PRE VLOŽENIE NA STRÁNKU
Skopírujte a vložte tento kód do <head> sekcie vašej stránky:
<!-- 🤖 ALINA CHATBOT - Najlacnejšie Altánky SK -->
<script>
(function() {
'use strict';
// Prevencia duplicitného načítania
if (window.alinaWidgetLoaded) {
console.log('🔄 Alina widget už je načítaný');
return;
}
window.alinaWidgetLoaded = true;
console.log('🚀 Načítavam ALINA widget pre najlacnejsie-altanky.sk');
// KONFIGURÁCIA
const ALINA_CONFIG = {
primaryServer: 'https://4028f85b-aa5e-4383-a527-6876ecc99bd4-00-2oj0a1scfyice.worf.replit.dev',
fallbackServers: [
'https://chatbot-odbornicka-web.replit.app',
'https://workspace-rlyjmilb.replit.app'
],
maxRetries: 3,
timeout: 8000,
domain: 'najlacnejsie-altanky.sk'
};
let attempts = 0;
let serverIndex = 0;
// HLAVNÁ FUNKCIA NAČÍTANIA
function loadAlinaWidget() {
if (attempts >= ALINA_CONFIG.maxRetries) {
console.error('❌ Widget sa nepodarilo načítať');
showEmergencyWidget();
return;
}
attempts++;
const currentServer = serverIndex === 0 ?
ALINA_CONFIG.primaryServer :
ALINA_CONFIG.fallbackServers[serverIndex - 1];
console.log(`🔄 Pokus ${attempts}: ${currentServer}`);
// Test servera a načítanie widgetu
testServer(currentServer)
.then(() => loadWidgetScript(currentServer))
.catch(() => tryNextServer());
}
// TEST SERVERA
async function testServer(serverUrl) {
const controller = new AbortController();
setTimeout(() => controller.abort(), 5000);
try {
const response = await fetch(`${serverUrl}/api/health`, {
signal: controller.signal,
headers: { 'Cache-Control': 'no-cache' }
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
return true;
} catch (error) {
throw error;
}
}
// NAČÍTANIE WIDGET SCRIPTU
function loadWidgetScript(serverUrl) {
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = `${serverUrl}/public/chatbot-widget.js?v=${Date.now()}`;
script.async = true;
script.crossOrigin = 'anonymous';
const timeout = setTimeout(() => {
script.remove();
reject(new Error('Timeout'));
}, ALINA_CONFIG.timeout);
script.onload = () => {
clearTimeout(timeout);
console.log('✅ Widget načítaný');
setTimeout(checkWidget, 2000);
resolve();
};
script.onerror = () => {
clearTimeout(timeout);
script.remove();
reject(new Error('Load failed'));
};
document.head.appendChild(script);
});
}
// KONTROLA WIDGETU
function checkWidget() {
const widget = document.getElementById('alina-simple-widget') ||
document.querySelector('[id*="chatbot"]') ||
document.querySelector('[id*="widget"]');
if (!widget) {
console.warn('⚠️ Widget sa nenašiel');
tryNextServer();
return;
}
const rect = widget.getBoundingClientRect();
if (rect.width === 0 || rect.height === 0) {
console.warn('⚠️ Widget má neplatné rozmery');
// Pokus o opravu
widget.style.setProperty('display', 'flex', 'important');
widget.style.setProperty('visibility', 'visible', 'important');
widget.style.setProperty('opacity', '1', 'important');
setTimeout(() => {
const newRect = widget.getBoundingClientRect();
if (newRect.width === 0 || newRect.height === 0) {
tryNextServer();
} else {
console.log('✅ Widget opravený a funkčný');
}
}, 1000);
} else {
console.log('✅ Widget je funkčný');
}
}
// SKÚSENIE ĎALŠIEHO SERVERA
function tryNextServer() {
serverIndex++;
if (serverIndex >= 1 + ALINA_CONFIG.fallbackServers.length) {
serverIndex = 0;
if (attempts < ALINA_CONFIG.maxRetries) {
setTimeout(loadAlinaWidget, 2000);
} else {
showEmergencyWidget();
}
} else {
setTimeout(loadAlinaWidget, 500);
}
}
// NÚDZOVÝ WIDGET
function showEmergencyWidget() {
console.log('🚨 Zobrazujem núdzový widget');
const emergencyWidget = document.createElement('div');
emergencyWidget.id = 'emergency-alina-widget';
emergencyWidget.style.cssText = `
position: fixed !important;
bottom: 20px !important;
right: 20px !important;
width: 350px !important;
height: 500px !important;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
border: 3px solid white !important;
border-radius: 15px !important;
box-shadow: 0 20px 40px rgba(0,0,0,0.8) !important;
z-index: 2147483647 !important;
display: flex !important;
flex-direction: column !important;
color: white !important;
font-family: Arial, sans-serif !important;
visibility: visible !important;
opacity: 1 !important;
pointer-events: auto !important;
`;
emergencyWidget.innerHTML = `
<div style="background: rgba(255,255,255,0.2); padding: 15px; text-align: center; border-bottom: 2px solid rgba(255,255,255,0.3);">
<h3 style="margin: 0; font-size: 16px;">🤖 Alina - AI Asistentka</h3>
<p style="margin: 5px 0 0 0; font-size: 12px;">najlacnejsie-altanky.sk</p>
<button onclick="this.closest('#emergency-alina-widget').remove()" style="position: absolute; top: 8px; right: 8px; background: rgba(255,255,255,0.3); border: none; color: white; font-size: 16px; cursor: pointer; width: 25px; height: 25px; border-radius: 50%;">×</button>
</div>
<div style="flex: 1; padding: 15px; background: rgba(255,255,255,0.9); color: #333; overflow-y: auto;">
<div style="background: #f0f0f0; padding: 12px; border-radius: 8px; margin-bottom: 10px;">
👋 Ahoj! Som Alina - vaša AI asistentka!
<br><br>
🏠 <strong>najlacnejsie-altanky.sk</strong>
<br>🛠️ Altánky • Domčeky • Garáže
<br>📍 Tvrdošín, Slovensko
<br><br>
📞 <strong>+421 903 905 902</strong>
<br>📧 <strong>altankyorava@gmail.com</strong>
<br><br>
🕒 <strong>Otváracie hodiny:</strong>
<br>Po-Pi: 8:00-17:00
<br>So: 9:00-13:00
<br><br>
💰 Najlepšie ceny na trhu!
<br>✅ 15+ rokov skúseností
<br>🚚 Rýchla dodávka po SK
</div>
<div style="background: #e3f2fd; padding: 10px; border-radius: 8px; font-size: 12px;">
💡 <strong>Populárne otázky:</strong><br>
• Koľko stojí altánok 3x3m?<br>
• Aké máte záhradné domčeky?<br>
• Dodávate do môjho mesta?<br>
• Aká je záruka na výrobky?
</div>
</div>
<div style="padding: 15px; background: rgba(255,255,255,0.9); text-align: center;">
<button onclick="window.open('tel:+421903905902')" style="background: #34d399; color: white; border: none; padding: 10px 20px; border-radius: 20px; cursor: pointer; margin: 5px; font-size: 14px;">📞 Zavolať</button>
<button onclick="window.open('mailto:altankyorava@gmail.com')" style="background: #667eea; color: white; border: none; padding: 10px 20px; border-radius: 20px; cursor: pointer; margin: 5px; font-size: 14px;">📧 Email</button>
</div>
`;
document.body.appendChild(emergencyWidget);
console.log('✅ Núdzový widget zobrazený');
}
// SPUSTENIE
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', loadAlinaWidget, { once: true });
} else {
setTimeout(loadAlinaWidget, 100);
}
// Záložné spustenie
setTimeout(() => {
if (!document.querySelector('[id*="widget"]') && !document.querySelector('[id*="chatbot"]')) {
console.log('🔄 Záložné spustenie núdzového widgetu');
showEmergencyWidget();
}
}, 12000);
})();
</script>
✨ FUNKCIE WIDGETU:
- 🤖 Inteligentný AI chatbot - Odpovedie na otázky o altánkoch
- 📱 Responsívny dizajn - Funguje na všetkých zariadeniach
- 🔄 Automatické obnovovanie - Pri výpadku servera
- 🚨 Núdzový režim - Kontaktné informácie vždy dostupné
- ⚡ Rýchle načítanie - Optimalizovaný pre výkon
- 🎨 Krásny dizajn - Prispôsobený firemným farbám
🔧 ČO WIDGET DOKÁŽE:
- 💬 Odpovedá na otázky o produktoch
- 💰 Poskytuje cenové informácie
- 📏 Pomáha s výberom veľkostí
- 🚚 Informuje o dodávke
- 📞 Poskytuje kontaktné údaje
- ⏰ Zobrazuje otváracie hodiny
- 📍 Ukazuje lokalitu firmy
📋 INŠTRUKCIE PRE POUŽITIE:
- Skopírujte celý kód vyššie
- Vložte ho do <head> sekcie vašej HTML stránky
- Widget sa automaticky zobrazí v pravom dolnom rohu
- Testujte funkcionalitu na vašej stránke
POZOR: Widget je optimalizovaný pre doménu najlacnejsie-altanky.sk
Servery:
• Primárny: 4028f85b-aa5e-4383-a527-6876ecc99bd4-00-2oj0a1scfyice.worf.replit.dev
• Záložné servery sú automaticky použité pri výpadku
🤖 Vytvorené pre najlacnejsie-altanky.sk | Verzia 2.0 | 2024