From 66c9c742c4efad7d72e72d13ef8b9c6040504a12 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Fri, 22 Feb 2013 14:14:21 -0800 Subject: Yeah --- public/js/chat.js | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 public/js/chat.js (limited to 'public/js/chat.js') diff --git a/public/js/chat.js b/public/js/chat.js new file mode 100644 index 0000000..76371c7 --- /dev/null +++ b/public/js/chat.js @@ -0,0 +1,62 @@ +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"); + } +} + -- cgit v1.2.3-70-g09d2