]> jfr.im git - irc/quakenet/qwebirc.git/blob - js/ui/genericlogin.js
1cf4756c229887dd11ba8489561d1679be36ad80
[irc/quakenet/qwebirc.git] / js / ui / genericlogin.js
1 qwebirc.ui.GenericLoginBox = function(parentElement, callback, initialNickname, initialChannels, autoConnect, autoNick) {
2 if(autoConnect) {
3 qwebirc.ui.ConfirmBox(parentElement, callback, initialNickname, initialChannels, autoNick);
4 } else {
5 qwebirc.ui.LoginBox(parentElement, callback, initialNickname, initialChannels);
6 }
7 }
8
9 qwebirc.ui.ConfirmBox = function(parentElement, callback, initialNickname, initialChannels, autoNick) {
10 var box = new Element("table");
11 box.addClass("confirmbox");
12 parentElement.appendChild(box);
13
14 var tbody = new Element("tbody");
15 box.appendChild(tbody);
16
17 var tr = new Element("tr");
18 tbody.appendChild(tr);
19 tr.addClass("tr1");
20
21 var text = new Element("td");
22 tr.appendChild(text);
23
24 var nick = new Element("b");
25 nick.set("text", initialNickname);
26
27 var c = initialChannels.split(" ")[0].split(",");
28
29 text.appendChild(document.createTextNode("To connect to IRC and join channel" + ((c.length>1)?"s":"") + " "));
30
31 for(var i=0;i<c.length;i++) {
32 if((c.length > 1) && (i == c.length - 1)) {
33 text.appendChild(document.createTextNode(" and "));
34 } else if(i > 0) {
35 text.appendChild(document.createTextNode(", "));
36 }
37 text.appendChild(new Element("b").set("text", c[i]));
38
39 }
40
41 if(!autoNick) {
42 text.appendChild(document.createTextNode(" as "));
43 text.appendChild(nick);
44 }
45 text.appendChild(document.createTextNode(" click 'Connect'."));
46
47 var tr = new Element("tr");
48 tbody.appendChild(tr);
49 tr.addClass("tr2");
50
51 var td = new Element("td");
52 tr.appendChild(td);
53
54 var form = new Element("form");
55 td.appendChild(form);
56
57 var yes = new Element("input", {"type": "submit", "value": "Connect"});
58 form.appendChild(yes);
59 yes.focus();
60
61 form.addEvent("submit", function(e) {
62 new Event(e).stop();
63 parentElement.removeChild(box);
64 callback({"nickname": initialNickname, "autojoin": initialChannels});
65 });
66 }
67
68 qwebirc.ui.LoginBox = function(parentElement, callback, initialNickname, initialChannels) {
69 var box = new Element("table");
70 parentElement.appendChild(box);
71 box.addClass("loginbox");
72
73 var tbody = new Element("tbody");
74 box.appendChild(tbody);
75
76 var tr = new Element("tr");
77 tbody.appendChild(tr);
78 tr.addClass("tr1");
79
80 var td = new Element("td");
81 tr.appendChild(td);
82 td.set("html", "<h1>Connect to IRC</h1>");
83
84 var tr = new Element("tr");
85 tbody.appendChild(tr);
86 tr.addClass("tr2");
87
88 var td = new Element("td");
89 tr.appendChild(td);
90
91 var form = new Element("form");
92 td.appendChild(form);
93
94 var boxtable = new Element("table");
95 form.appendChild(boxtable);
96
97 var tbody = new Element("tbody");
98 boxtable.appendChild(tbody); /* stupid IE */
99
100 function createRow(label, e2) {
101 var r = new Element("tr");
102 tbody.appendChild(r);
103
104 var d1 = new Element("td");
105 if(label)
106 d1.set("text", label);
107 r.appendChild(d1);
108
109 var d2 = new Element("td");
110 r.appendChild(d2);
111 d2.appendChild(e2);
112 return d1;
113 }
114
115 var nick = new Element("input");
116 createRow("Nickname:", nick);
117 var chan = new Element("input");
118 createRow("Channels:", chan);
119
120 var connbutton = new Element("input", {"type": "submit"});
121 connbutton.set("value", "Connect");
122 createRow(undefined, connbutton)
123
124 form.addEvent("submit", function(e) {
125 new Event(e).stop();
126 var nickname = nick.value;
127 var chans = chan.value;
128 if(chans == "#") /* sorry channel "#" :P */
129 chans = "";
130
131 if(!nickname) {
132 alert("You must supply a nickname.");
133 nick.focus();
134 return;
135 }
136
137 parentElement.removeChild(box);
138
139 callback({"nickname": nickname, "autojoin": chans});
140 }.bind(this));
141
142 nick.set("value", initialNickname);
143 chan.set("value", initialChannels);
144
145 nick.focus();
146 }