- if ($("form input.captcha").val() != "") return
-
- thisPage.envoyerMessage(
- $("form input.pseudo").val(),
- $("form input.message").val()
- )
-
- $("form input.message").focus()
- }
-
- $("form").keypress(
- function(e)
- {
- if (e.which == 13) // return
- nouveauMessage()
- }
- )
-
- $("form button.return").click(nouveauMessage)
-
- // interdiction de submiter le formulaire
- $("form").submit(function(){ return false})
-
- $("input.pseudo").click(
- function()
- {
- var input = $("input.pseudo")[0]
- if (input.value == conf.pseudoDefaut)
- input.value = ""
- }
- )
-}
-
-PageMinichat.prototype.decharger = function()
-{
- this.messages.pageEvent.stopAttenteCourante()
-
- $("body #smiles").remove()
- $("body #outilsBan").remove()
-}
-
-PageMinichat.prototype.getJSONMessage = function(pseudo, message, repondA)
-{
- return {
- "action" : "put_message",
- "cookie" : this.client.cookie,
- "nick" : pseudo,
- "content" : message,
- "answer_to" : repondA
- }
-}
-
-PageMinichat.prototype.envoyerMessage = function(pseudo, message)
-{
- var thisPageMinichat = this
-\r
- // (un pseudo vide est autorisé)
- pseudo = this.formateur.filtrerInputPseudo(pseudo)
-
- // extraction des id des messages (en base 36 évidemment) auquels le user répond
- var repondA = []
- var tags = message.match(this.regexMessageTagMatch)
- if (tags != null)
- {
- for(var i = 0; i < tags.length; i++)
- repondA.push(parseInt(/\{(.*?)\}>/.exec(tags[i])[1], 36))
- message = message.replace(this.regexMessageTagReplace, "")
- }\r
- \r
- message = message.trim()\r
- if (message == "")\r
- {
- this.util.messageDialogue("Le message est vide")\r
- return\r
- }\r
-\r
- if (!this.client.authentifie())\r
- if (!this.client.enregistrement())\r
- {\r
- this.util.messageDialogue("login impossible")\r
- return\r
- }
-
- this.client.pseudo = pseudo\r
-
- ;;; dumpObj(this.getJSONMessage(pseudo, message, repondA))\r
- jQuery.ajax(\r
- {\r
- url : "request", \r
- type: "POST",\r
- data : this.util.jsonVersAction(this.getJSONMessage(pseudo, message, repondA)),\r
- dataType : "json",
- beforeSend : function(xmlHttpRequest)
- {
- xmlHttpRequest.setRequestHeader("X-Requested-With", "")
- },\r
- success : function(data, textStatus)\r
- {
- ;;; dumpObj(data)
-
- if(data["reply"] == "ok")
- { \r
- $("form input.message").val("")
-
- // met à jour la classe des messages auquel repond celui ci (c'est un peu de la triche) TODO : ya mieux ?
- for (var i = 0; i < repondA.length; i++)
- $("#conversations div#mess" + repondA[i].toString(36)).addClass("repondu")
- }
- else if (data["reply"] == "error")
- {
- thisPageMinichat.util.messageDialogue(data["error_message"])
- } \r
- }\r
- }\r
- )
-}
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-function Reponse(id, pseudo, login)
-{
- this.id = id
- this.pseudo = pseudo
- this.login = login
-
- if (this.pseudo == undefined)
- this.pseudo = ""
-
- if (this.login == undefined)
- this.login = ""
-}
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-/**
- * Représente un message.
- * @param id (string)
- * @param date (string)
- * @param pseudo
- * @param contenu
- */
-function Message(id, auteurId, date, pseudo, login, contenu)
-{
- this.id = id
- this.auteurId = auteurId
- this.date = date
- this.pseudo = pseudo
- this.login = login
- this.contenu = contenu
-
- this.appartientAuClient = false
- this.clientARepondu = false
- this.estUneReponse = false
- this.ekMaster = false
-
- this.systeme = false // est-ce un message 'système' ?
-
- this.repondA = {} // un ensemble de reponse (voir Reponse) indexé par l'id du message de la reponses
-}
-
-/**
- *
- */
-Message.prototype.setRepondA = function(repondAJSON)
-{
- var thisMessage = this
- this.repondA = {}
-
- for(var i = 0; i < repondAJSON.length; i++)
- {
- thisMessage.repondA[repondAJSON[i]["id"]] = new Reponse(
- repondAJSON[i]["id"],
- repondAJSON[i]["nick"],
- repondAJSON[i]["login"]
- )
- }
-}
-
-/**
- * Renvoie les messages faisant partie d'une conversation.
- * @param messages l'ensemble des messages de la conversation
- * @return les id des messages qui ont été mis en evidence sous la forme d'un hash (object) {id => bool}
- */
-Message.prototype.getConversation = function(messages)
-{
- // les messages faisant partie de la conversation
- var messagesEnEvidence = {}
-
- messagesEnEvidence[this.id] = true
-
- // recherche les réponses (O(n))
- for (var i = 0; i < messages.messages.length; i++)
- if (messages.messages[i].repondA.hasOwnProperty(this.id))
- messagesEnEvidence[messages.messages[i].id] = true
-
- var f = function(tabIds)
- {
- for(var id in tabIds)
- {
- var message = messages.messagesParId[id]
- if (message != undefined)
- {
- messagesEnEvidence[id] = true
- f (message.repondA)