X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;ds=sidebyside;f=js%2Feuphorik.js;h=214c0f89d4b5ccf885c7e1cd7a635e75b7549e4c;hb=149c4de8eca530d3d4edf36b903b7d2271558716;hp=433c0bca25454745bab0b483d4bc4eaef60c038d;hpb=6feaef2a51f7226c41d69f9e86f605718b78aa02;p=euphorik.git
diff --git a/js/euphorik.js b/js/euphorik.js
index 433c0bc..214c0f8 100755
--- a/js/euphorik.js
+++ b/js/euphorik.js
@@ -1,807 +1,72 @@
-// coding: utf-8
-
-/**
- * Auteur : GBurri
- * Date : 6.11.2007
- */
+// coding: utf-8
+// Copyright 2008 Grégory Burri
+//
+// This file is part of Euphorik.
+//
+// Euphorik is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Euphorik is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Euphorik. If not, see .
+
+/*jslint laxbreak:true */
+
+// tout euphorik est contenu dans cet objet
+var euphorik = {};
-/**
- * La configuration.
- * Normalement 'const' à la place de 'var' mais non supporté par IE7.
- */
-var conf = {
- nbMessageAffiche : 80, // (par page)
- pseudoDefaut : "",
- tempsAffichageMessageDialogue : 4000, // en ms
- smiles : {
- "smile" : [/:\)/g, /:-\)/g],
- "bigsmile" : [/:D/g, /:-D/g],
- "clin" : [/;\)/g, /;-\)/g],
- "cool" : [/8\)/g, /8-\)/g],
- "eheheh" : [/:P/g, /:-P/g],
- "oh" : [/:o/g, /:O/g],
- "pascontent" : [/>\(/g, />\(/g],
- "sniff" : [/:\(/g, /:-\(/g],
- "argn" : [/\[:argn\]/g],
- "bunny" : [/\[:lapin\]/g],
- "chat" : [/\[:chat\]/g],
- "renne" : [/\[:renne\]/g],
- "lol" : [/\[:lol\]/g],
- "spliff" : [/\[:spliff\]/g],
- "star" : [/\[:star\]/g],
- "triste" : [/\[:triste\]/g],
- "kirby" : [/\[:kirby\]/g]
- }
-}
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-String.prototype.trim = function()
-{
- return this.replace(/^\s+|\s+$/g,"");
-}
-String.prototype.ltrim = function()
-{
- return this.replace(/^\s+/,"");
-}
-String.prototype.rtrim = function()
-{
- return this.replace(/\s+$/,"");
-}
-
-String.prototype.dump = function()
-{
- if (typeof dump != "undefined")
- {
- dump("\n--- EUPHORIK.CH ---\n")
- dump(this)
- dump("\n------\n")
- }
-}
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-function Util(serializer)
-{
- if(typeof XMLSerializer != "undefined")
- this.serializer = new XMLSerializer()
+// le main
+$(document).ready(
+ function() {
+ var fragment = new Fragment();
+ var formateur = new euphorik.Formateur();
+ var util = new euphorik.Util(formateur);
+ var communication = new euphorik.Communication(function(data) { util.messageDialogue(data.error_message); });
+ var client = new euphorik.Client(util, communication);
+ var pages = new euphorik.Pages(fragment);
- jQuery("#info .fermer").click(function(){
- jQuery("#info").slideUp(50)
- })
-}
-
-/**
- * Affiche une boite de dialogue avec un message à l'intérieur.
- *
- */
-Util.prototype.messageDialogue = function(message, type, boutons)
-{
- if (type == undefined)
- type = messageType.informatif
-
- if (this.timeoutMessageDialogue != undefined)
- clearTimeout(this.timeoutMessageDialogue)
+ // connexion vers le serveur (utilise un cookie qui traine)
+ client.connexionCookie();
- var fermer = function(){jQuery("#info").slideUp(100)}
- fermer()
-
- jQuery("#info .message").html(message)
- switch(type)
- {
- case messageType.informatif : jQuery("#info #icone").attr("class", "information"); break
- case messageType.question : jQuery("#info #icone").attr("class", "interrogation"); break
- case messageType.erreur : jQuery("#info #icone").attr("class", "exclamation"); break
- }
- jQuery("#info .boutons").html("")
- for (var b in boutons)
- jQuery("#info .boutons").append("" + b + "
").find("div:last").click(boutons[b]).click(fermer)
-
- jQuery("#info").slideDown(200)
- this.timeoutMessageDialogue = setTimeout(fermer, conf.tempsAffichageMessageDialogue)
-}
-var messageType = {informatif: 0, question: 1, erreur: 2}
-
-/* obsolète
-Util.prototype.log = function(str)
-{
-}*/
-
-Util.prototype.serializeXML = function(documentXML)
-{
- if (this.serializer)
- return this.serializer.serializeToString(documentXML)
- else
- return documentXML.xml
-}
-
-Util.prototype.creerDocumentXMLAction = function()
-{
- if (document.implementation && document.implementation.createDocument)
- {
- return document.implementation.createDocument("", "action", null)
- }
- else if (window.ActiveXObject)
- {
- var doc = new ActiveXObject("MSXML2.DOMDocument") //("Microsoft.XMLDOM")
- doc.appendChild(doc.createElement("action"));
- //doc.loadXML("")
- //alert(doc.documentElement)
- //doc.createElement("action")
- return doc
- }
-}
-
-Util.prototype.xmlVersAction = function(xml)
-{
- return {action: this.to_utf8(this.serializeXML(xml /*, "UTF-8"*/))}
-}
-
-// voir : http://homepage3.nifty.com/aokura/jscript/utf8.html
-// et : http://www1.tip.nl/~t876506/utf8tbl.html
-Util.prototype.to_utf8 = function(s)
-{
- if (!s) return ""
-
- var c, d = ""
- for (var i = 0; i < s.length; i++)
- {
- c = s.charCodeAt(i);
- if (c <= 0x7f) {
- d += s.charAt(i);
- } else if (c >= 0x80 && c <= 0x7ff) {
- d += String.fromCharCode(((c >> 6) & 0x1f) | 0xc0);
- d += String.fromCharCode((c & 0x3f) | 0x80);
- } else {
- d += String.fromCharCode((c >> 12) | 0xe0);
- d += String.fromCharCode(((c >> 6) & 0x3f) | 0x80);
- d += String.fromCharCode((c & 0x3f) | 0x80);
- }
- }
- return d;
-}
-
-Util.prototype.md5 = function(chaine)
-{
- return hex_md5(chaine)
-}
-
-// pompé de http://www.faqts.com/knowledge_base/view.phtml/aid/13562/fid/130
-Util.prototype.setSelectionRange = function(input, selectionStart, selectionEnd)
-{
- if (input.setSelectionRange)
- {
- input.focus()
- input.setSelectionRange(selectionStart, selectionEnd)
- }
- else if (input.createTextRange)
- {
- var range = input.createTextRange()
- range.collapse(true)
- range.moveEnd('character', selectionEnd)
- range.moveStart('character', selectionStart)
- range.select()
- }
-}
-
-Util.prototype.setCaretToEnd = function(input)
-{
- this.setSelectionRange(input, input.value.length, input.value.length)
-}
-Util.prototype.setCaretToBegin = function(input)
-{
- this.setSelectionRange(input, 0, 0)
-}
-Util.prototype.setCaretToPos = function(input, pos)
-{
- this.setSelectionRange(input, pos, pos)
-}
-Util.prototype.selectString = function(input, string)
-{
- var match = new RegExp(string, "i").exec(input.value)
- if (match)
- {
- this.setSelectionRange (input, match.index, match.index + match[0].length)
- }
-}
-Util.prototype.replaceSelection = function(input, replaceString) {
- if (input.setSelectionRange)
- {
- var selectionStart = input.selectionStart
- var selectionEnd = input.selectionEnd
- input.value = input.value.substring(0, selectionStart) + replaceString + input.value.substring(selectionEnd)
-
- if (selectionStart != selectionEnd) // has there been a selection
- this.setSelectionRange(input, selectionStart, selectionStart + replaceString.length)
- else // set caret
- this.setCaretToPos(input, selectionStart + replaceString.length)
- }
- else if (document.selection)
- {
- var range = document.selection.createRange();
- if (range.parentElement() == input)
- {
- var isCollapsed = range.text == ''
- range.text = replaceString
- if (!isCollapsed)
- {
- // there has been a selection
- // it appears range.select() should select the newly
- // inserted text but that fails with IE
- range.moveStart('character', -replaceString.length);
- range.select();
- }
- }
- }
-}
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-function Pages()
-{
- this.pageCourante = null
- this.pages = {}
-}
-
-Pages.prototype.ajouterPage = function(page)
-{
- page.pages = this // la magie des langages dynamiques : le foutoire
- this.pages[page.nom] = page
-}
-
-Pages.prototype.afficherPage = function(nomPage, forcerChargement)
-{
- if (forcerChargement == undefined) forcerChargement = false
-
- var page = this.pages[nomPage]
- if (page == undefined || (!forcerChargement && page == this.pageCourante)) return
-
- if (this.pageCourante != null && this.pageCourante.decharger)
- this.pageCourante.decharger()
-
- jQuery("#menu div").removeClass("courante")
- jQuery("#menu div." + nomPage).addClass("courante")
-
- this.pageCourante = page
- jQuery("#page").html(this.pageCourante.contenu()).removeClass().addClass(this.pageCourante.nom)
-
- if (this.pageCourante.charger)
- this.pageCourante.charger()
-}
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-function Formateur()
-{
- this.smiles = conf.smiles
- this.protocoles = "http|https|ed2k"
-
- this.regexUrl = new RegExp("(?:(?:" + this.protocoles + ")://|www\\.)[^ ]*", "gi")
- this.regexImg = new RegExp("^.*?\\.(gif|jpg|png|jpeg|bmp|tiff)$", "i")
- this.regexDomaine = new RegExp("^(?:(?:" + this.protocoles + ")://|www\\.).*?([^/.]+\\.[^/.]+)(?:$|/).*$", "i")
- this.regexTestProtocoleExiste = new RegExp("^(?:" + this.protocoles + ")://.*$", "i")
- this.regexNomProtocole = new RegExp("^(.*?)://")
-}
-
-/**
- * Formate un pseudo saise par l'utilisateur.
- * @param pseudo le pseudo brut
- * @return le pseudo filtré
- */
-Formateur.prototype.filtrerInputPseudo = function(pseudo)
-{
- return pseudo.replace(/{|}/g, "").trim()
-}
-
-Formateur.prototype.getSmilesHTML = function()
-{
- var XHTML = ""
- for (var sNom in this.smiles)
- {
- XHTML += ""
- }
- return XHTML
-}
-
-Formateur.prototype.traitementComplet = function(M, pseudo)
-{
- return this.traiterSmiles(this.traiterURL(this.remplacerBalisesHTML(M), pseudo))
-}
-
-/**
- * FIXME : Cette méthode est attrocement lourde !!
- */
-Formateur.prototype.traiterSmiles = function(M)
-{
- for (var sNom in this.smiles)
- {
- ss = this.smiles[sNom]
- for (var i = 0; i < ss.length; i++)
- M = M.replace(ss[i], "")
- }
- return M
-}
-
-Formateur.prototype.remplacerBalisesHTML = function(M)
-{
- return M.replace(//g, ">")
-}
-
-Formateur.prototype.traiterURL = function(M, pseudo)
-{
- thisFormateur = this
-
- if (pseudo == undefined)
- pseudo = ""
-
- var traitementUrl = function(url)
- {
- // si ya pas de protocole on rajoute "http://"
- if (!thisFormateur.regexTestProtocoleExiste.test(url))
- url = "http://" + url
- var extension = thisFormateur.getShort(url)
- return "[" + extension[0] + "]"
- }
- return M.replace(this.regexUrl, traitementUrl)
-}
-
-/**
- * Renvoie une version courte de l'url.
- * par exemple : http://en.wikipedia.org/wiki/Yakov_Smirnoff devient wikipedia.org
- */
-Formateur.prototype.getShort = function(url)
-{
- var estUneImage = false
- var versionShort = null
- var rechercheImg = this.regexImg.exec(url)
- //alert(url)
- if (rechercheImg != null)
- {
- versionShort = rechercheImg[1].toLowerCase()
- if (versionShort == "jpeg") versionShort = "jpg" // jpeg -> jpg
- estUneImage = true
- }
- else
- {
- var rechercheDomaine = this.regexDomaine.exec(url)
- if (rechercheDomaine != null && rechercheDomaine.length >= 2)
- versionShort = rechercheDomaine[1]
- else
- {
- var nomProtocole = this.regexNomProtocole.exec(url)
- if (nomProtocole != null && nomProtocole.length >= 2)
- versionShort = nomProtocole[1]
- }
- }
-
- return [versionShort == null ? "url" : versionShort, estUneImage]
- }
-
-/**
- * Traite les pseudo et messages à être affiché dans le titre d'une image visualisé avec lightbox.
- */
-Formateur.prototype.traiterPourFenetreLightBox = function(M, urlCourante)
-{
- thisFormateur = this
- var traitementUrl = function(url)
- {
- return "[" + thisFormateur.getShort(url)[0] + (urlCourante == url ? ": image courante" : "") + "]"
- }
-
- return this.remplacerBalisesHTML(M).replace(this.regexUrl, traitementUrl)
-}
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-var statutType = {enregistre: 0, identifie: 1, non_identifie: 2}
-
-function Client(util)
-{
- this.util = util
-
- this.cookie = null
- this.regexCookie = new RegExp("^cookie=([^;]*)")
-
- // Obsolète
- //this.captchaCrypt = null
-
- // données personnels
- this.resetDonneesPersonnelles()
-
- this.setStatut(statutType.non_identifie)
-
- // le dernier message d'erreur recut du serveur (par exemple une connexion foireuse : "login impossible")
- this.dernierMessageErreur = ""
-}
-
-Client.prototype.resetDonneesPersonnelles = function()
-{
- this.pseudo = conf.pseudoDefaut
- this.login = ""
- this.password = ""
- this.email = ""
- this.css = jQuery("link#cssPrincipale").attr("href")
-}
-
-Client.prototype.setCss = function(css)
-{
- if (this.css == css)
- return
-
- this.css = css
- jQuery("link#cssPrincipale").attr("href", this.css)
- this.majMenu()
-
- /* enregistement automatique..
- if (!this.identifie())
- if (!this.enregistrement())
- return
- */
- if (this.identifie())
- this.flush()
-}
-
-Client.prototype.getXMLlogin = function(login, password)
-{
- var XMLDocument = this.util.creerDocumentXMLAction()
- XMLDocument.documentElement.setAttribute("name", "login")
-
- var nodeLogin = XMLDocument.createElement("login")
- nodeLogin.appendChild(XMLDocument.createTextNode(login))
- XMLDocument.documentElement.appendChild(nodeLogin)
-
- var nodePassword = XMLDocument.createElement("password")
- nodePassword.appendChild(XMLDocument.createTextNode(password))
- XMLDocument.documentElement.appendChild(nodePassword)
-
- return XMLDocument
-}
-
-Client.prototype.getXMLloginCookie = function()
-{
- var XMLDocument = this.util.creerDocumentXMLAction()
- XMLDocument.documentElement.setAttribute("name", "login")
-
- var nodeCookie = XMLDocument.createElement("cookie")
- nodeCookie.appendChild(XMLDocument.createTextNode(this.cookie))
- XMLDocument.documentElement.appendChild(nodeCookie)
-
- return XMLDocument
-}
-
-/* Obsolète
-Client.prototype.getXMLloginCaptcha = function(captchaCrypt, captchaInput)
-{
- var XMLDocument = this.util.creerDocumentXMLAction()
- XMLDocument.documentElement.setAttribute("name", "loginCaptcha")
-
- var nodecaptchaCrypt = XMLDocument.createElement("captchaCrypt")
- nodecaptchaCrypt.appendChild(XMLDocument.createTextNode(captchaCrypt))
- XMLDocument.documentElement.appendChild(nodecaptchaCrypt)
-
- var nodecaptchaInput = XMLDocument.createElement("captchaInput")
- nodecaptchaInput.appendChild(XMLDocument.createTextNode(captchaInput))
- XMLDocument.documentElement.appendChild(nodecaptchaInput)
-
- return XMLDocument
-}*/
-
-/* Obsolète
-Client.prototype.getXMLgenerationCaptcha = function()
-{
- var XMLDocument = this.util.creerDocumentXMLAction()
- XMLDocument.documentElement.setAttribute("name", "generationCaptcha")
-
- return XMLDocument
-}*/
+ $("#menuCss").change(function() { client.setCss("styles/" + $("option:selected", this).attr("value") + "/euphorik.css"); });
-Client.prototype.getXMLEnregistrement = function(login, password)
-{
- var XMLDocument = this.util.creerDocumentXMLAction()
- XMLDocument.documentElement.setAttribute("name", "register")
-
- var nodeLogin = XMLDocument.createElement("login")
- nodeLogin.appendChild(XMLDocument.createTextNode(login))
- XMLDocument.documentElement.appendChild(nodeLogin)
-
- var nodePassword = XMLDocument.createElement("password")
- nodePassword.appendChild(XMLDocument.createTextNode(password))
- XMLDocument.documentElement.appendChild(nodePassword)
-
- return XMLDocument
-}
-
-Client.prototype.getXMLProfile = function()
-{
- var XMLDocument = this.util.creerDocumentXMLAction()
- XMLDocument.documentElement.setAttribute("name", "profile")
-
- var nodeCookie = XMLDocument.createElement("cookie")
- nodeCookie.appendChild(XMLDocument.createTextNode(this.cookie))
- XMLDocument.documentElement.appendChild(nodeCookie)
-
- var nodeLogin = XMLDocument.createElement("login")
- nodeLogin.appendChild(XMLDocument.createTextNode(this.login))
- XMLDocument.documentElement.appendChild(nodeLogin)
-
- var nodePassword = XMLDocument.createElement("password")
- nodePassword.appendChild(XMLDocument.createTextNode(this.password))
- XMLDocument.documentElement.appendChild(nodePassword)
-
- var nodePseudo = XMLDocument.createElement("pseudo")
- nodePseudo.appendChild(XMLDocument.createTextNode(this.pseudo))
- XMLDocument.documentElement.appendChild(nodePseudo)
-
- var nodeEmail = XMLDocument.createElement("email")
- nodeEmail.appendChild(XMLDocument.createTextNode(this.email))
- XMLDocument.documentElement.appendChild(nodeEmail)
-
- var nodeCSS = XMLDocument.createElement("css")
- nodeCSS.appendChild(XMLDocument.createTextNode(this.css))
- XMLDocument.documentElement.appendChild(nodeCSS)
-
- return XMLDocument
-}
-
-/**
- * Renvoie null si pas définit.
- */
-Client.prototype.getCookie = function()
-{
- var cookie = this.regexCookie.exec(document.cookie)
- if (cookie == null) this.cookie = null
- else this.cookie = cookie[1]
-}
-
-Client.prototype.delCookie = function()
-{
- document.cookie = "cookie=; max-age=0"
-}
-
-Client.prototype.setCookie = function(cookie)
-{
- if (this.cookie == null)
- return
+ // FIXME : ne fonctionne pas sous opera
+ // voir : http://dev.jquery.com/ticket/2892#preview
+ $(window).unload(function() { client.flush(); });
- document.cookie =
- "cookie="+this.cookie+
- "; max-age=" + (60 * 60 * 24 * 365)
-}
-
-Client.prototype.identifie = function()
-{
- return this.statut == statutType.enregistre || this.statut == statutType.identifie
-}
-
-Client.prototype.setStatut = function(statut)
-{
- if(typeof(statut) == "string")
- {
- statut =
- statut == "enregistre" ?
- statutType.enregistre : (statut == "identifie" ? statutType.identifie : statutType.non_identifie)
- }
-
- if (statut == this.statut) return
-
- this.statut = statut
- this.majMenu()
-}
-
-/**
- * Demande la génération d'un captcha au serveur et l'affiche.
- */
- /* Obsolète
-Client.prototype.afficherCaptcha = function(query)
-{
- var thisClient = this
-
- $.post("request", this.util.xmlVersAction(this.getXMLgenerationCaptcha()),
- function(data, textStatus)
- {
- var chemin = jQuery("chemin", data.documentElement).text()
- thisClient.captchaCrypt = jQuery("captchaCrypt", data.documentElement).text()
- jQuery(query).prepend(
- "Es-tu un bot ? " +
- "
"
- )
- }
- )
-}
-
-Client.prototype.cacherCaptcha = function()
-{
- jQuery("#captcha").remove()
-}*/
-
-/**
- * Effectue la connexion vers le serveur.
- * Cette fonction est bloquante tant que la connexion n'a pas été établie.
- * S'il existe un cookie en local on s'authentifie directement avec lui.
- * Si il n'est pas possible de s'authentifier alors on affiche un captcha anti-bot.
- */
-Client.prototype.connexionCookie = function()
-{
- this.getCookie()
- if (this.cookie == null) return false;
- return this.connexion(this.util.xmlVersAction(this.getXMLloginCookie()))
-}
-
-Client.prototype.connexionLogin = function(login, password)
-{
- return this.connexion(this.util.xmlVersAction(this.getXMLlogin(login, password)))
-}
-
-/* Obsolète
-Client.prototype.connexionCaptcha = function()
-{
- return this.connexion(this.util.xmlVersAction(this.getXMLloginCaptcha(this.captchaCrypt, jQuery("#captcha input").val())))
-}*/
-
-Client.prototype.enregistrement = function(login, password)
-{
- if (this.identifie())
- {
- this.login = login
- this.password = password
- if(this.flush())
- this.setStatut(statutType.enregistre)
- return true
- }
- else
- {
- if (login == undefined) login = ""
- if (password == undefined) password = ""
- return this.connexion(this.util.xmlVersAction(this.getXMLEnregistrement(login, password)))
- }
-}
-
-Client.prototype.connexion = function(action)
-{
- thisClient = this
- jQuery.ajax(
- {
- async: false,
- type: "POST",
- url: "request",
- dataType: "xml",
- data: action,
- success:
- function(data)
+ $("#menu .minichat").click(function() { pages.afficherPage("minichat"); });
+ $("#menu .admin").click(function() { pages.afficherPage("admin"); });
+ $("#menu .profile").click(function() { pages.afficherPage("profile"); });
+ $("#menu .logout").click(function() {
+ util.messageDialogue("Ãtes-vous sur de vouloir vous délogger ?", euphorik.Util.messageType.question,
{
- thisClient.chargerDonnees(data)
- }
- }
- )
- return this.identifie()
-}
-
-Client.prototype.deconnexion = function()
-{
- this.setStatut(statutType.non_identifie) // deconnexion
- this.resetDonneesPersonnelles()
- this.delCookie ()
-}
-
-Client.prototype.chargerDonnees = function(data)
-{
- this.setStatut(jQuery("statut", data.documentElement).text())
-
- if (this.identifie())
- {
- this.cookie = jQuery("cookie", data.documentElement).text()
- this.setCookie()
-
- this.login = jQuery("login", data.documentElement).text()
- this.pseudo = jQuery("pseudo", data.documentElement).text()
- this.email = jQuery("email", data.documentElement).text()
- this.css = jQuery("css", data.documentElement).text()
- // met à jour la css
- if (this.css != "")
- {
- jQuery("link#cssPrincipale").attr("href", this.css)
- this.majMenu()
- }
- }
- this.dernierMessageErreur = jQuery("information", data.documentElement).text()
-}
-
-/**
- * Met à jour les données personne sur serveur.
- */
-Client.prototype.flush = function()
-{
- thisClient = this
- //thisClient.util.log(this.util.xmlVersAction(this.getXMLProfile()).action)
- jQuery.ajax(
- {
- async: true,
- type: "POST",
- url: "request",
- dataType: "xml",
- data: this.util.xmlVersAction(this.getXMLProfile()),
- success:
- function(data)
- {
- //thisClient.util.log(thisClient.util.serializer.serializeToString(data))
+ "Oui" : function() {
+ client.deconnexion();
+ pages.afficherPage("minichat", true);
+ },
+ "Non" : function() {}
}
- }
- )
- // TODO : retourner false si un problème est survenu lors de l'update du profile
- return true
-}
-
-Client.prototype.majMenu = function()
-{
- var displayType = this.css == "css/3/euphorik.css" ? "block" : "inline" //this.client
-
- // met à jour le menu
- if (this.statut == statutType.enregistre)
- {
- jQuery("#menu .profile").css("display", displayType).text("profile")
- jQuery("#menu .logout").css("display", displayType)
- jQuery("#menu .register").css("display", "none")
- }
- else if (this.statut == statutType.identifie)
- {
- jQuery("#menu .profile").css("display", "none")
- jQuery("#menu .logout").css("display", displayType)
- jQuery("#menu .register").css("display", displayType)
- }
- else
- {
- jQuery("#menu .profile").css("display", displayType).text("login")
- jQuery("#menu .logout").css("display", "none")
- jQuery("#menu .register").css("display", displayType)
- }
-}
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-jQuery.noConflict()
-
-
-// le main
-jQuery(document).ready(
- function()
- {
+ );
+ });
+ $("#menu .register").click(function(){ pages.afficherPage("register"); });
+ $("#menu .about").click(function(){ pages.afficherPage("about"); });
- var util = new Util()
- var client = new Client(util)
- var pages = new Pages()
- var formateur = new Formateur()
-
- // connexion vers le serveur (utilise un cookie qui traine)
- client.connexionCookie()
+ // TODO : simplifier et pouvoir créer des liens par exemple : Conditions d'utilisation
+ $("#footer .conditions").click(function(){ pages.afficherPage("conditions_utilisation"); });
- // les styles css
- for (var i = 1; i <= 3; i++)
- {
- jQuery("#css"+i).click(function(){
- client.setCss("css/" + jQuery(this).attr("id").charAt(3) + "/euphorik.css")
- })
- }
+ pages.ajouterPage(new euphorik.PageMinichat(client, formateur, util, communication), true);
+ pages.ajouterPage(new euphorik.PageAdmin(client, formateur, util));
+ pages.ajouterPage(new euphorik.PageProfile(client, formateur, util));
+ pages.ajouterPage(new euphorik.PageRegister(client, formateur, util));
+ pages.ajouterPage(new euphorik.PageAbout(client, formateur, util));
+ pages.ajouterPage("conditions_utilisation");
- jQuery("#menu .minichat").click(function(){ pages.afficherPage("minichat") })
- jQuery("#menu .profile").click(function(){ pages.afficherPage("profile") })
- jQuery("#menu .logout").click(function(){
- util.messageDialogue("Ãtes-vous sur de vouloir vous délogger ?", messageType.question,
- {"Oui" : function()
- {
- client.deconnexion();
- pages.afficherPage("minichat", true)
- },
- "Non" : function(){}
- }
- )
- })
- jQuery("#menu .register").click(function(){ pages.afficherPage("register") })
-
- pages.ajouterPage(new PageMinichat(client, formateur, util))
- pages.ajouterPage(new PageProfile(client, formateur, util))
- pages.ajouterPage(new PageRegister(client, formateur, util))
- pages.afficherPage("minichat")
+ pages.afficherPage();
}
-)
-
+);