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(); };