]> jfr.im git - irc/quakenet/qwebirc.git/blame - static/js/jslib.js
Add command parsing and lots of other stuff...
[irc/quakenet/qwebirc.git] / static / js / jslib.js
CommitLineData
4d256d41
CP
1if( typeof XMLHttpRequest == "undefined" ) XMLHttpRequest = function() {\r
2 try{ return new ActiveXObject("Msxml2.XMLHTTP.6.0") }catch(e){}\r
3 try{ return new ActiveXObject("Msxml2.XMLHTTP.3.0") }catch(e){}\r
4 try{ return new ActiveXObject("Msxml2.XMLHTTP") }catch(e){}\r
5 try{ return new ActiveXObject("Microsoft.XMLHTTP") }catch(e){}\r
6 throw new Error("This browser does not support XMLHttpRequest or XMLHTTP.")\r
7};\r
8 \r
9function jsdecode(data) {\r
10 return eval('(' + data + ')');\r
11}\r
12 \r
13function XHR(url, fn) {\r
14 var r = new XMLHttpRequest();\r
15 r.onreadystatechange = function() {\r
16 if(r.readyState == 4 && r.status == 200) {\r
17 var o = jsdecode(r.responseText);\r
18 fn(o);\r
19 }\r
20 }\r
21 r.open("GET", url, true);\r
22 r.send(null);\r
23}\r
24\r
25function empty(y) {\r
26 for(var x in y) {\r
27 return false;\r
28 }\r
29 return true;\r
30}\r
31\r
32function ANI(p, d) {\r
33 if(d < 0)\r
34 return p[p.length + d];\r
35\r
36 return p[d];\r
37}\r
38\r
39var forEach = function(x, fn) {\r
40 for(var i=0;i<x.length;i++)\r
41 if(fn(x[i]))\r
42 return;\r
c3efd9cc
CP
43}\r
44\r
45/* how horribly inefficient */\r
46String.prototype.replaceAll = function(f, t) {\r
47 var i = this.indexOf(f);\r
48 var c = this;\r
49 \r
50 while(i > -1) {\r
51 c = c.replace(f, t);\r
52 i = c.indexOf(f);\r
53 }\r
54 return c;\r
55}\r
b15204e3
CP
56\r
57/* how horribly inefficient (again) */\r
58String.prototype.splitMax = function(by, max) {\r
59 var items = this.split(by);\r
60 var newitems = items.slice(0, max-1);\r
61\r
62 if(items.length >= max)\r
63 newitems.push(items.slice(max-1).join(by));\r
64 \r
65 return newitems;\r
66}\r
67\r
68alert("a".splitMax(" ", 2));\r
69alert("a b".splitMax(" ", 2));\r
70alert("a b c".splitMax(" ", 2));\r
71alert("a b".splitMax(" ", 3));\r
72alert("a b c".splitMax(" ", 3));\r
73alert("a".splitMax(" ", 4));\r
74alert("a b".splitMax(" ", 4));\r
75alert("a b c".splitMax(" ", 4));\r
76alert("a".splitMax(" ", 1));\r
77alert("a b".splitMax(" ", 1));\r
78alert("a b c".splitMax(" ", 1));\r
79\r
80DaysOfWeek = {\r
81 0: "Sun",\r
82 1: "Mon",\r
83 2: "Tue",\r
84 3: "Wed",\r
85 4: "Thu",\r
86 5: "Fri",\r
87 6: "Sat"\r
88}\r
89\r
90MonthsOfYear = {\r
91 0: "Jan",\r
92 1: "Feb",\r
93 2: "Mar",\r
94 3: "Apr",\r
95 4: "May",\r
96 5: "Jun",\r
97 6: "Jul",\r
98 7: "Aug",\r
99 8: "Sep",\r
100 9: "Oct",\r
101 10: "Nov",\r
102 11: "Dec"\r
103}\r
104\r