11
function historyDown()
13
if (this.cursor < this.items.length)
19
function historyCurr()
21
if (this.cursor < 0 || this.cursor >= this.items.length)
25
return this.items[this.cursor];
28
function historyAdd(text)
30
this.items[this.items.length] = text;
31
this.cursor = this.items.length
34
function historyShow()
37
if (this.cursor == -1)
41
for (var i = 0; i < this.items.length; i++)
47
res += this.items[i].toString();
54
if (this.cursor == this.items.length)
63
this.items = new Array();
66
this.down = historyDown;
67
this.curr = historyCurr;
68
this.add = historyAdd;
69
this.show = historyShow;
72
var hist = new History();
3
74
function make_query_string(pagename, args)
10
81
// vals can be an array, to make multiple args with the same name
11
82
// To handle this, make non-array objects into an array, then loop
12
83
if (!(vals instanceof Array))
14
85
for each (val in vals)
31
function enter_line(inp)
33
var digest = hex_md5(inp + magic);
34
var url = make_query_string("chat", {"digest":digest, "text":inp});
35
var xmlhttp = XMLHttpRequest();
36
xmlhttp.open("POST", url, false);
38
var res = JSON.parse(xmlhttp..responseText);
102
function make_post_body(args)
109
// vals can be an array, to make multiple args with the same name
110
// To handle this, make non-array objects into an array, then loop
111
if (!(vals instanceof Array))
113
for each (val in vals)
123
qs += encodeURI(key) + "=" + encodeURI(val);
129
function enter_line()
131
var inp = document.getElementById('inputText');
132
var digest = hex_md5(inp.value + magic);
133
var xmlhttp = new XMLHttpRequest();
134
xmlhttp.open("POST", "chat", false);
135
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
136
xmlhttp.send(make_post_body({"digest":digest, "text":inp.value}))
137
var res = JSON.parse(xmlhttp.responseText);
138
var output = document.getElementById("outputArea")
139
output.appendChild(document.createTextNode(inp.value + "\n"));
39
140
if (res && res[0])
42
143
// print out the output (res[0])
144
output.appendChild(document.createTextNode(res[0]));
43
145
// print out the return value (res[1])
148
output.appendChild(document.createTextNode(res[1] + "\n"));
44
150
// set the prompt to >>>
151
var prompt = document.getElementById("prompt");
152
prompt.replaceChild(document.createTextNode(">>> "), prompt.firstChild);
49
157
// print out the error message (res[2])
158
output.appendChild(document.createTextNode(res[2]));
53
162
// Need more input, so set the prompt to ...
163
var prompt = document.getElementById("prompt");
164
prompt.replaceChild(document.createTextNode("... "), prompt.firstChild);
168
function catch_input(key)
170
var inp = document.getElementById('inputText');
184
inp.value = hist.curr();