const PAGES={
1:{t:"๐ป DEV",big:"120+ Projets",sub:"Developpement Web, Mobile, Jeux",desc:"Tu peux creer des sites, des apps, des jeux comme L-NOUMENE. Ton VPS est deja en ligne!",tools:["๐ Creer Site Web","๐ฑ Creer App","๐ฎ Creer Jeu","๐ Python"],sig:"๐ข ACTIF - 120 projets"},
2:{t:"๐ค IA",big:"15 Modeles IA",sub:"ChatGPT, Gemini, TensorFlow, Vision",desc:"L'IA qui cree tout. Discute, genere image, musique, texte. C'est comme SP500 mais pour l'intelligence.",tools:["๐ฌ Discuter IA","๐ผ๏ธ Generer Image","๐ต Generer Musique","๐ Ecrire Texte"],sig:"๐ข IA EN LIGNE"},
3:{t:"๐ DATA",big:"50 Ticks",sub:"Big Data, SQL, SQLite",desc:"Tes donnees SP500 sauvees en temps reel. Chaque tick est enregistre.",tools:["๐ Analyse SP500","๐พ SQLite","๐ Graphique"],sig:"๐ข DATA LIVE"},
4:{t:"โ๏ธ INFRA",big:"13.140.209.5",sub:"VPS Contabo 12GB RAM",desc:"Ton serveur tourne 24/24. 2.4% utilise, 192GB. Il ne dort jamais.",tools:["๐ฅ๏ธ VPS","๐ HTTPS 2027","๐ Domaine"],sig:"๐ข VPS ONLINE"},
5:{t:"๐ TRADING",big:"$7408.04",sub:"S&P 500 US WALL STREET REAL",desc:"TON DOMAINE STAR! Prix live 300ms, SQLite, Signal. C'est la page que tu vois deja!",tools:["๐ฒ Prix Live","๐ Graphique 300ms","๐ข Signal","๐พ SQLite"],sig:"๐ด VENTE - ATTENTE"},
6:{t:"๐ฌ CREATION",big:"100+ Videos",sub:"TikTok, Nano Banana, Montage",desc:"Tes videos TikTok avec Nano Banana. Cree, monte, publie.",tools:["๐ฌ Video TikTok","๐ Nano Banana","๐ต Musique"],sig:"๐ข CREATION ACTIVE"},
7:{t:"๐ฐ BUSINESS",big:"Boutique Ebolowa",sub:"E-commerce, Marketing",desc:"Ta boutique Civile Ebolowa en ligne. Vends dans le monde entier.",tools:["๐๏ธ Boutique","๐ฐ Vendre","๐ฃ Marketing"],sig:"๐ข BUSINESS OUVERT"},
8:{t:"โ๏ธ AUTOMATION",big:"Robot 4H",sub:"Robots, Bots",desc:"Ton robot SP500 4H qui trade auto quand RSI < 20.",tools:["๐ค Robot SP500","โ๏ธ Bot","๐ Auto"],sig:"๐ข ROBOT PRET"},
9:{t:"๐ CYBER",big:"100% Securise",sub:"Securite VPS",desc:"Ton VPS est protege par HTTPS + Fail2Ban.",tools:["๐ HTTPS","๐ก๏ธ Fail2Ban"],sig:"๐ข SECURISE"},
10:{t:"๐ WEB3",big:"Crypto Live",sub:"Bitcoin, NFT, Metaverse",desc:"Crypto et Metaverse. Le futur.",tools:["โฟ Bitcoin","ฮ Ethereum","๐จ NFT"],sig:"๐ข WEB3"},
11:{t:"๐ฎ GAMING",big:"Jeux 3D",sub:"Unity, Esports",desc:"Jeux 3D et Esports.",tools:["๐ฎ Jeu 3D","๐ Esports"],sig:"๐ข GAMING"},
12:{t:"๐ฑ MOBILE",big:"Android + iOS",sub:"Apps Telephone",desc:"Ton site est deja une app mobile!",tools:["๐ฑ Android","๐ iOS"],sig:"๐ข MOBILE"},
13:{t:"๐จ DESIGN",big:"Design Neon",sub:"UI/UX, Figma",desc:"Ton design vert neon est deja parfait.",tools:["๐จ Design","๐๏ธ Figma"],sig:"๐ข DESIGN"},
14:{t:"๐ EDUCATION",big:"Cours",sub:"Formations",desc:"Apprends le trading, le code, l'IA.",tools:["๐ Cours Trading","๐ Apprendre"],sig:"๐ข ECOLE OUVERTE"},
15:{t:"๐ฅ SANTE",big:"IA Sante",sub:"IA Medicale",desc:"IA pour la sante.",tools:["๐ฅ IA Sante"],sig:"๐ข SANTE"},
16:{t:"๐ SOCIAL",big:"Partage Mondial",sub:"WhatsApp, Facebook, TikTok",desc:"Partage ton empire dans le monde entier. C'est ici que tu envoies ton lien!",tools:["๐ฌ WhatsApp","๐ Facebook","๐ต TikTok","๐ Partager"],sig:"๐ข PARTAGEABLE"},
17:{t:"๐ต MUSIQUE",big:"Studio",sub:"Production",desc:"Cree ta musique.",tools:["๐ต Production"],sig:"๐ข STUDIO"},
18:{t:"๐ธ PHOTO",big:"Nano Banana",sub:"Retouche IA",desc:"Photos avec Nano Banana.",tools:["๐ธ Photo IA","๐ Banana"],sig:"๐ข PHOTO"},
19:{t:"๐ SHOPPING",big:"Marketplace",sub:"Boutique",desc:"Achete et vends.",tools:["๐ Marketplace"],sig:"๐ข SHOPPING"},
20:{t:"๐ IMMO",big:"Agence",sub:"Estimation",desc:"Immobilier.",tools:["๐ Agence"],sig:"๐ข IMMO"},
21:{t:"๐ TRANSPORT",big:"Taxi",sub:"Livraison",desc:"Taxi et livraison.",tools:["๐ Taxi","๐ฆ Livraison"],sig:"๐ข TRANSPORT"},
22:{t:"โก LIGHT-YEAR",big:"300ms",sub:"WebSocket, WASM 0.8ms, WebGPU",desc:"10 ans d'avance! WebSocket 300ms, WASM 0.8ms, WebGPU, Three.js.",tools:["โก WebSocket 300ms","๐ป WASM 0.8ms","๐ฎ WebGPU"],sig:"๐ข LIGHT-YEAR ACTIF"}};
function openPage(n){
let pg=PAGES[n];
document.body.innerHTML='
'+pg.t+' - LIVE 300ms COMME SP500
'+pg.big+'
'+pg.sub+'
LIVE 300ms...
'+pg.sig+'
OUTILS LIVE
';
let sp=300,iv2;const cv=document.getElementById('c2'),cx=cv.getContext('2d');cv.width=340;cv.height=120;
function draw2(d){cx.clearRect(0,0,340,120);if(!d||d.length<2)return;let mn=Math.min(...d),mx=Math.max(...d),rg=mx-mn||1;cx.strokeStyle='#0f8';cx.lineWidth=2;cx.beginPath();d.forEach((p,i)=>{let x=i/(d.length-1)*320+10;let y=110-((p-mn)/rg*100+5);if(i==0)cx.moveTo(x,y);else cx.lineTo(x,y)});cx.stroke();cx.fillStyle='#0f8';d.forEach((p,i)=>{let x=i/(d.length-1)*320+10;let y=110-((p-mn)/rg*100+5);cx.beginPath();cx.arc(x,y,2,0,6.28);cx.fill()})}
async function loadDom(){try{let r=await fetch('/api/domain/'+n);let j=await r.json();document.getElementById('big').textContent=(n==10||n==5?'$':'')+j.price.toFixed(2);document.getElementById('sub').textContent=j.name+' - '+j.source;document.getElementById('ll').textContent=new Date().toLocaleTimeString()+' LIVE 300ms '+j.name+' '+j.price.toFixed(2);document.getElementById('tools').innerHTML=pg.tools.map(t=>'
'+t+' - LIVE
').join('');draw2(j.history)}catch(e){document.getElementById('ll').textContent='Erreur '+e}}
window.setSp=(s)=>{sp=s;clearInterval(iv2);iv2=setInterval(loadDom,s)};window.loadDom=loadDom;window.shareDom=()=>{let u='https://lnoumene-company.duckdns.org';if(navigator.share){navigator.share({title:'L-NOUMENE '+pg.t,text:pg.t+' LIVE!',url:u})}else{alert('Lien: '+u)}};iv2=setInterval(loadDom,sp);loadDom();
}
function setLang(l){if(l=='EN'){alert('๐บ๐ธ Welcome to L-NOUMENE OMNI! All domains LIVE 300ms! Share to USA!')}else if(l=='DE'){alert('๐ฉ๐ช Willkommen bei L-NOUMENE OMNI! Alle Domains LIVE 300ms! Teilen in Deutschland!')}else{alert('๐ซ๐ท Bienvenue sur L-NOUMENE OMNI! Tous domaines LIVE 300ms!')}}
function shareLink2(){let u='https://lnoumene-company.duckdns.org';if(navigator.share){navigator.share({title:'L-NOUMENE OMNI',text:'Regarde ce domaine!',url:u})}else{alert('Lien: '+u)}}
function closePage(){location.reload()}
document.querySelectorAll('.dom').forEach((el,i)=>{el.style.cursor='pointer';el.onclick=()=>openPage(i+1)});
function shareLink(){let u='https://lnoumene-company.duckdns.org';let t='L-NOUMENE OMNI - Tous domaines + SP500 US REAL 300ms! '+document.getElementById('pr').textContent+' depuis Ebolowa! '+u;if(navigator.share){navigator.share({title:'L-NOUMENE OMNI',text:t,url:u})}else{copyLink()}}
function copyLink(){navigator.clipboard.writeText('https://lnoumene-company.duckdns.org');alert('โ Lien OMNI copie!')}
function shareWhatsApp(){let u='https://lnoumene-company.duckdns.org';window.open('https://wa.me/?text='+encodeURIComponent('L-NOUMENE OMNI - 22 domaines + SP500 US '+document.getElementById('pr').textContent+' REAL! '+u),'_blank')}
function shareFB(){window.open('https://www.facebook.com/sharer/sharer.php?u='+encodeURIComponent('https://lnoumene-company.duckdns.org'),'_blank')}
const DOMAINS={1:["DEV","Web, Mobile, Jeux, Python, JS - 20 outils: VS Code, GitHub, React, Flutter, Node.js, Python, HTML, CSS"],2:["IA","ChatGPT, TensorFlow, Vision, Voix - 15 outils: ChatGPT, Gemini, Midjourney, TensorFlow"],3:["DATA","Big Data, SQL, Power BI - 12 outils: Python Pandas, SQL, Excel, Power BI"],4:["INFRA","VPS 13.140.209.5, Nginx, Docker, Cloud - Ton serveur Contabo en ligne!"],5:["TRADING","SP500 US REAL 300ms - TON DOMAINE STAR! Prix live, SQLite, Signal ACHAT/VENTE"],6:["CREATION","TikTok Nano Banana, Montage, Musique - Tes videos TikTok!"],7:["BUSINESS","E-commerce, Civile Ebolowa, Marketing - Ta boutique Ebolowa!"],8:["AUTOMATION","Robots, Bots, Scraping - Ton robot SP500 4H!"],9:["CYBER","Securite, Hacking ethique - Protection VPS"],10:["WEB3","Crypto, NFT, Metaverse - Bitcoin, Ethereum"],11:["GAMING","Jeux 3D, Esports - Unity, Roblox"],12:["MOBILE","Android, iOS, Flutter - Apps telephone"],13:["DESIGN","UI/UX, Figma, 3D - Design de ton site"],14:["EDUCATION","Cours, Formations - Apprendre"],15:["SANTE","IA Medicale, Apps Sante"],16:["SOCIAL","WhatsApp, Facebook, TikTok - Partage"],17:["MUSIQUE","Production, Streaming"],18:["PHOTO","Retouche, IA Image - Nano Banana"],19:["SHOPPING","Marketplace, Boutique"],20:["IMMO","Agence, Estimation"],21:["TRANSPORT","Taxi, Livraison"],22:["LIGHT-YEAR","WebSocket 300ms, WASM 0.8ms, WebGPU, Three.js - 10 ans avance!"]};
document.querySelectorAll('.dom').forEach((el,i)=>{el.style.cursor='pointer';el.style.border='1px solid #0f8';el.onclick=()=>{let d=DOMAINS[i+1];document.getElementById('detail').style.display='block';document.getElementById('dtitle').textContent='๐ DOMAINE '+(i+1)+' - '+d[0]+' - CLIQUE POUR ENTRER';document.getElementById('dbody').textContent=d[1]+' | Clique sur PARTAGER pour envoyer ce domaine!';window.scrollTo({top:0,behavior:'smooth'})}});
async function registerUser(){let n=document.getElementById('uname').value||'Boss';let c=document.getElementById('ucountry').value||'Cameroun';try{let r=await fetch('/api/register',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({name:n,email:n+'@omni.com',country:c})});let j=await r.json();document.getElementById('wel').textContent=j.message}catch(e){document.getElementById('wel').textContent='Bienvenue '+n+'! Membre 100%! '+c}}
async function askIA(){let q=document.getElementById('chatq').value||'Bonjour';try{let r=await fetch('/api/chat',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({q:q})});let j=await r.json();document.getElementById('chata').textContent='๐ค IA: '+j.answer}catch(e){document.getElementById('chata').textContent='IA: Demande SP500, Bitcoin!'}}
async function doRegister(){let n=document.getElementById('uname').value, e=document.getElementById('uemail').value, pw=document.getElementById('upass').value, c=document.getElementById('ucountry').value||'Cameroun';let r=await fetch('/api/register',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({name:n,email:e,password:pw,country:c})});let j=await r.json();if(j.ok){localStorage.setItem('token',j.token);showUser(j)}else{document.getElementById('wel').textContent='โ '+j.error}}
async function doLogin(){let e=document.getElementById('uemail').value, pw=document.getElementById('upass').value;let r=await fetch('/api/login',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({email:e,password:pw})});let j=await r.json();if(j.ok){localStorage.setItem('token',j.token);showUser(j)}else{document.getElementById('wel').textContent='โ '+j.error}}
function showUser(j){document.getElementById('authForm').style.display='none';document.getElementById('userBox').style.display='block';document.getElementById('userInfo').textContent='โ Connecte: '+j.name+' ('+j.email+') - '+j.country+' | Token: '+j.token.slice(0,8)+'...';document.getElementById('wel').textContent=j.message||'Connecte!'}
function doLogout(){localStorage.removeItem('token');location.reload()}
async function checkMe(){let t=localStorage.getItem('token');if(!t)return;let r=await fetch('/api/me',{headers:{Authorization:'Bearer '+t}});let j=await r.json();if(j.ok){document.getElementById('authForm').style.display='none';document.getElementById('userBox').style.display='block';document.getElementById('userInfo').textContent='โ Connecte: '+j.name+' ('+j.email+') - '+j.country+' | Total membres: '+j.total_users;document.getElementById('wel').textContent='Bon retour '+j.name+'! Compte sauvegarde!'}}
async function askIA(){let q=document.getElementById('chatq').value||'Bonjour';let r=await fetch('/api/chat',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({q:q})});let j=await r.json();document.getElementById('chata').textContent='๐ค IA: '+j.answer}
checkMe();