var imgTitres_dir = "images/titres/"; var username = ""; var apps = Array(); function clearNode(node) { if (node.hasChildNodes()) { while (node.childNodes.length >= 1) node.removeChild(node.firstChild); } } window.onload = function() { printEtat(1); clearScreen(); firstLoad(); document.getElementById('btMenu').onclick = function(){ showMenu(); } document.getElementById('btMenu').onmouseout = function(){ setHideMenuTimeout(); } document.getElementById('menu').onmouseover = function(){ showMenu(); } document.getElementById('menu').onmouseout = function(){ setHideMenuTimeout(); } } function firstLoad() { new Ajax.Request( 'ajax.php', { onSuccess: function(transport, json) { printEtat(2); if (json.statut == 1) { username = json.username; if (window.sessionStorage && window.sessionStorage.username == username) { //On restaure l'application en cours } else page_accueil(); } else loadPage("connexion"); printEtat(0); }, onFailure: function() { printEtat(3); } } ); } function deconnexion() { printEtat(1); clearScreen(); new Ajax.Request( 'ajax.php', { method: 'get', parameters: {d: "logout"}, onSuccess: function(transport, json) { firstLoad(); }, onFailure: function() { printEtat(3); } } ); } function printEtat(id) { if (id == 0) $('etat').innerHTML = ""; else if (id == 1) $('etat').innerHTML = "Connexion au serveur en cours ..."; else if (id == 2) $('etat').innerHTML = "Connexion établie, affichage de la page ..."; else if (id == 3) $('etat').innerHTML = "Impossible de contacter le serveur, délais d'attente expiré !"; else if (id == 4) $('etat').innerHTML = "Vérification des informations en cours ..."; else if (id == 5) $('etat').innerHTML = "Récupération de la liste des applications ..."; else if (id == 6) $('etat').innerHTML = "Chargement de l'application ..."; else $('etat').innerHTML = "État inconnu : #" + id; } function clearScreen() { if ($('logo').style.display != "block") $('logo').style.display = "block"; genMenu(username != ""); $('corps').innerHTML = ""; $('etatAvance').src = "images/etats/alpha.png"; var head = document.getElementsByTagName("head")[0]; //On décharge les fichiers JavaScript non standards if (head.getElementsByTagName("script")[4]) { var scripts = head.getElementsByTagName("script"); for (i = scripts.length - 1; i >= 0; i--) { if (scripts[i].className == "app") head.removeChild(scripts[i]); } } //Idem avec les fichiers CSS if (head.getElementsByTagName("link")[3]) { var links = head.getElementsByTagName("link"); for (i = links.length - 1; i >= 0; i--) { if (links[i].className == "app") head.removeChild(links[i]); } } //On ajoute le thème par défaut if (!$("main_thm")) { var css_file = document.createElement("link"); css_file.type = 'text/css'; css_file.rel = 'stylesheet'; css_file.media = 'all'; css_file.id = 'main_thm'; css_file.href = "style.css"; document.getElementsByTagName('head')[0].appendChild(css_file); } } function genMenu(online) { //On supprime tous les éléments du menu clearNode($('menu')); //On ajoute le titre var item = document.createElement("li"); item.innerHTML = "PA4home"; item.id = "nameApp"; $('menu').appendChild(item); //Lien vers la page d'accueil item = document.createElement("li"); item.onclick = function() { hideShownMenu(); firstLoad(); }; item.innerHTML = "Accueil"; if (online) item.className = "item"; else item.className = "item hr"; $('menu').appendChild(item); //Lien de déconnexion if (online) { item = document.createElement("li"); item.onclick = function() { hideShownMenu(); deconnexion(); }; item.innerHTML = "Déconnexion"; item.className = "item hr"; $('menu').appendChild(item); } //Lien vers la page à propos du site item = document.createElement("li"); item.onclick = function() { hideShownMenu(); loadPage('aproposdusite'); }; item.innerHTML = "À propos du site"; item.className = "item"; $('menu').appendChild(item); } function addMenuItem(text, iven) { var item = document.createElement("li"); item.onclick = function(e) { hideShownMenu(); eval(iven); }; item.innerHTML = text; item.className = "item"; $('menu').appendChild(item); } /************************************** * Partie contenant les pages du site * **************************************/ function loadPage(nom) { clearScreen(); printEtat(1); new Ajax.Request( 'ajax.php', { method: 'get', parameters: {d: "page", p: nom}, onSuccess: function(transport, json) { printEtat(2); $('titre').src = imgTitres_dir + transport.responseXML.documentElement.getElementsByTagName("titre")[0].firstChild.data; $('corps').innerHTML = transport.responseXML.documentElement.getElementsByTagName("body")[0].firstChild.data; if (transport.responseXML.documentElement.getElementsByTagName("js")) { var scripts = transport.responseXML.documentElement.getElementsByTagName("js"); var nbScripts = scripts.length; for (i = 0; i < nbScripts; i++) eval(scripts[i].firstChild.data); } printEtat(0); }, onFailure: function() { printEtat(3); } } ); } function page_accueil() { clearScreen(); printEtat(5); if (username == "root" || username == "pierre-o") $('titre').src = imgTitres_dir + "bienvenuePierreO.png"; else if (username == "sergcaen" || username == "serge") $('titre').src = imgTitres_dir + "bienvenueSerge.png"; else if (username == "christine" || username == "chriscaen") $('titre').src = imgTitres_dir + "bienvenueChristine.png"; else if (username == "raphael" || username == "minou") $('titre').src = imgTitres_dir + "bienvenueRaphael.png"; else if (username == "florence" || username == "floflo") $('titre').src = imgTitres_dir + "bienvenueFlorence.png"; else if (username == "florent") $('titre').src = imgTitres_dir + "bienvenueFlorent.png"; else if (username == "alisson13081991" || username == "alisson13081991@hotmail.fr") $('titre').src = imgTitres_dir + "bienvenueAlisson.png"; else $('titre').src = imgTitres_dir + "bienvenue.png"; new Ajax.Request( 'ajax.php', { method: 'get', parameters: {d: "accueil"}, onSuccess: function(transport, json) { var applications = transport.responseXML.documentElement.getElementsByTagName("application"); for (i = applications.length - 1; i >= 0; i--) { var app = new Application(applications[i]); apps.pop(app); var elt = app.getHomeElt(); $('corps').appendChild(elt); } printEtat(0); }, onFailure: function() { printEtat(3); } } ); } function runApplication(property, display, json){ alert("Aucun lancement à faire !"); } //Menu var menu_timeout; function showMenu() { if (menu_timeout) clearTimeout(menu_timeout); $('menu').style.display = "block"; } function setHideMenuTimeout() { menu_timeout = setTimeout('hideShownMenu()', 500); } function hideShownMenu() { $('menu').style.display = "none"; }