font-size: 85%;
text-align: right;
}
+ .status {
+ color: #dd8;
+ }
+ .local.self {
+ color: #d8d;
+ }
+ .self {
+ color: #8d8;
+ }
+ .me {
+ color: #bbd;
+ }
.servercount {
margin-right: -0.5em;
font-size: 70%;
type = "status";
} else if (/^\* /.test(message.Text)) {
type = "me";
+ } else if (/^-!- /.test(message.Text)) {
+ type = "local";
} else {
type = "text";
}
history.push(message);
message_i = history.length-1;
}
+ if (message_i + 1 < history.length) {
+ rcaddmessagetoUI(message, history[message_i + 1].UI);
+ } else {
+ rcaddmessagetoUI(message, null);
+ }
+ }
+ function rcaddmessagetoUI(message, before) {
if (!message.UI) {
rcmakemessageUI(message);
}
var h = document.getElementById("history");
- if (message_i + 1 < history.length) {
- h.insertBefore(message.UI, history[message_i + 1].UI);
+ if (before) {
+ h.insertBefore(message.UI, before);
} else {
h.appendChild(message.UI);
}
"?id=" + encodeURIComponent(message.ID) +
"&text=" + encodeURIComponent(message.Text);
for (var i in servers) {
- var uri = rcserverbase(servers[i]) + path;
- var img = document.createElement("img");
- img.setAttribute("src", uri);
- d.appendChild(img);
+ var xhr = new XMLHttpRequest();
+ xhr.open("POST", rcserverbase(servers[i]) + path);
+ xhr.send();
}
}
function rcinput(input) {
var message;
- var re = /^\/([a-z]+) (.*)/
+ var re = /^\/(\S+)(\s(.*))?/;
var match = re.exec(input);
- if (match && match[1] == 'me') {
- message = "* " + rcnick() + " " + match[2];
- } else if (match && match[1] == 'nick') {
- message = "*** " + rcnick() + " is now known as " + match[2];
- rcsetnick(match[2]);
+ if (match) {
+ var command = match[1];
+ var rest = match[3];
+ if (command == 'me') {
+ message = "* " + rcnick() + " " + rest;
+ } else if (command == 'nick') {
+ if (rcnick() == rest) {
+ rcaddmessagetoUI({'Text': '-!- Your nick is already ' + rcnick(), 'ServerTimes': {}});
+ return;
+ }
+ if (rest) {
+ message = "*** " + rcnick() + " is now known as " + rest;
+ rcsetnick(rest);
+ } else {
+ rcaddmessagetoUI({'Text': '-!- /nick requires an argument', 'ServerTimes': {}});
+ return;
+ }
+ } else {
+ rcaddmessagetoUI({'Text': '-!- No such command: ' + command, 'ServerTimes': {}});
+ return;
+ }
} else {
message = "<" + rcnick() + "> " + input;
}
function rckeydown(event) {
if (event.keyCode == 13) {
- rcinput(document.input.say.value);
+ if (document.input.say.value) {
+ rcinput(document.input.say.value);
+ }
document.input.say.value = "";
return false;
}