function Chat (app) {
var base = this;
var $messages = $("#messages"),
$message = $("#message"),
$send = $("#send");
base.focused = false;
// Initialize the chat module
function init(){
bind();
$message.focus();
}
// Bind events
function bind(){
// Listen for chat messages
app.receive("event-chat", function(data){
base.receive(data.name, data.message);
})
// Bind to the chat input form
$message.on({
focus: function(){
base.focused = true;
},
blur: function(){
base.focused = false;
},
keydown: function(e){
switch (e.keyCode) {
case 13: // enter
base.send();
break;
}
}
});
}
// Get a message from the message box and send it out
base.send = function () {
var message = $("#message").val();
$("#message").val("");
base.receive(app.user.name, message);
app.send("event-chat", { 'name': app.user.name, 'message': message });
}
// Receive a message and drop it in the chat
base.receive = function (name, message) {
$("#messages").append("" + sanitize(name) + "" + sanitize(message) + "
");
}
init();
};