/**
* @author vincent voyer
*
vincent.voyer@gmail.com
*/
(function($){
$.fn.chat = function(params){
var params = $.extend({
refresh:1.7
},params);
function chat(jElt) {
//jElt correspond à <div id="container-principal">
var chat=jElt.find('.chat div'); // div qui contiendra le texte du chat
// gestion de l'entrée au clavier
jElt.find('form').submit(function() {
var input=$(this).find(':input');
var message=input.val();
if ($.trim(message).length > 0) { // il faut au moins avoir écrit quelque chose pour l'afficher
jElt.find('.ajaxStatus').show();
input.val(''); /* on vide l'input */
input.blur();
input.attr("disabled", "disabled");
$.post("/lab/chat/ecrire", {
msg: message
}, function(data){
input.removeAttr("disabled");
input.focus();
if (data)
chat.append('<p>' + data.pseudo + ' > <strong>' + data.msg + '</strong></p>');
jElt.find('.ajaxStatus').hide();
}, 'json');
}
return false;
});
/* gestion de la récupération des nouveaux messages */
var lireMessages = function(){
$.getJSON("/lab/chat/lire", function(data){
$.each(data, function(i,msg){
chat.append('<p>'+msg.pseudo+' > <strong>'+msg.msg+'</strong></p>');
});
setTimeout(lireMessages,params.refresh*1000);
});
}
lireMessages(); //on lance la récupération des messages
}
return this.each(function(){
chat($(this));
});
};
})(jQuery)