var Chat = { height: 300, init: function(){ $("#chat-message").on("keydown", Chat.keys); }, keys: function (e) { switch (e.keyCode) { case 13: // enter Chat.send (); break case 33: // pageup var x = $("#chat_container").scrollTop() - Chat.height + 20; $("#chat_container").scrollTop( x ); break case 34: // pagedown var x = $("#chat_container").scrollTop() + Chat.height + 20; $("#chat_container").scrollTop( x ); break } }, send: function () { var body = $("#chat-message").val(); $("#chat-message").val(""); Chat.add({ nick: Game.nick, body: body, you: true }); scrollToBottom("#chat_container") Events.send.message({ nick: Game.nick, body: body }); }, parse: function (raw) { if (! raw) return ""; if (raw.indexOf("http") !== -1) { var words = sanitize(raw).split(" ") var parsed = [] for (var i = 0; i < words.length; i++) { if (words[i].indexOf("http") === 0) { parsed.push (""+words[i]+"") } else { parsed.push (words[i]) } } return parsed.join(" "); } return sanitize(raw); }, add: function (msg) { var klass = msg.you ? "msg you" : "msg"; var html = "
"+msg.nick+""+Chat.parse(msg.body)+"
"; $("#chat").append( html ); if ($("#chat p").length > 50) { $("#chat").first().remove(); } scrollToBottom("#chat_container"); } }