1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4
<title>Welcome to JWChat</title>
5
<meta http-equiv="content-type" content="text/html; charset=utf-8">
6
<script src="config.js" language="JavaScript1.2"></script>
7
<script src="browsercheck.js" language="JavaScript1.2"></script>
8
<script src="shared.js" language="JavaScript1.2"></script>
9
<script src="switchStyle.js"></script>
10
<script language="JavaScript">
14
* JWChat, a web based jabber client
15
* Copyright (C) 2003-2004 Stefan Strigler <steve@zeank.in-berlin.de>
17
* This program is free software; you can redistribute it and/or
18
* modify it under the terms of the GNU General Public License
19
* as published by the Free Software Foundation; either version 2
20
* of the License, or (at your option) any later version.
22
* This program is distributed in the hope that it will be useful,
23
* but WITHOUT ANY WARRANTY; without even the implied warranty of
24
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25
* GNU General Public License for more details.
27
* You should have received a copy of the GNU General Public License
28
* along with this program; if not, write to the Free Software
29
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
31
* Please visit http://jwchat.sourceforge.net for more information!
34
var jid, pass, register, prio, connect_host, connect_port, connect_secure;
35
var jwchats = new Array();
43
/** Retrieve user name from URL parameters.
45
function getUserName() {
46
var lsearch = location.search;
47
var idx = lsearch.indexOf("jid=");
49
var query = lsearch.substr(idx);
50
idx = query.indexOf("&");
52
query = query.substring(0, idx);
54
var tmp_jid = query.substr("jid=".length);
61
/** On page load if the user name given in jid parameter is a guest
62
* auto-login the user with preconfigured password.
64
function tryAutoLogin() {
66
var user_name = getUserName();
68
if (typeof(GUEST_ACC) == 'undefined' || GUEST_ACC.length == 0) {
71
if (user_name == GUEST_ACC) {
72
jid = user_name + "@" + JABBERSERVER + "/" + DEFAULTRESOURCE + Math.round(Math.random()*1000);
75
prio = DEFAULTPRIORITY;
76
connect_secure = false;
78
jwchats[jid] = window.open('jwchat.html',makeWindowName(jid),'width=180,height=390,resizable=yes');
86
/* check if user want's to register new
87
* account and things */
88
function loginCheck(form) {
89
if (form.jid.value == '') {
90
alert("You need to supply a username");
94
if (form.pass.value == '') {
95
alert("You need to supply a password");
99
if (document.getElementById('tr_server').style.display != 'none') {
100
var val = document.getElementById('server').value;
102
alert("You need to supply a jabber server");
109
jid = form.jid.value + "@" + JABBERSERVER + "/";
110
if (form.res.value != '')
111
jid += form.res.value;
113
jid += DEFAULTRESOURCE;
118
if (jwchats[jid] && !jwchats[jid].closed) {
119
jwchats[jid].focus();
123
pass = form.pass.value;
124
register = form.register.checked;
126
prio = form.prio[form.prio.selectedIndex].value;
128
connect_port = form.connect_port.value;
129
connect_host = form.connect_host.value;
130
connect_secure = form.connect_secure.checked;
132
jwchats[jid] = window.open('jwchat.html',makeWindowName(jid),'width=180,height=390,resizable=yes');
137
function toggleMoreOpts(show) {
139
document.getElementById('showMoreOpts').style.display = 'none';
140
document.getElementById('showLessOpts').style.display = '';
142
document.getElementById('showLessOpts').style.display = 'none';
143
document.getElementById('showMoreOpts').style.display = '';
146
var rows = document.getElementById('lTable').getElementsByTagName('TBODY').item(0).getElementsByTagName('TR');
148
for (var i=0; i<rows.length; i++) {
149
if (rows[i].className == 'moreOpts') {
151
rows[i].style.display = '';
153
rows[i].style.display = 'none';
159
function serverSelected() {
160
var oSel = document.getElementById('server');
161
var servers_allowed = BACKENDS[bs.selectedIndex].servers_allowed;
165
/* change format of servers_allowed to be able to associate connect
166
* host information to it
170
function backendSelected() {
171
var bs = document.getElementById('backend_selector');
172
var servers_allowed, default_server;
174
servers_allowed = BACKENDS[bs.selectedIndex].servers_allowed;
175
default_server = BACKENDS[bs.selectedIndex].default_server;
176
if (BACKENDS[bs.selectedIndex].description)
177
document.getElementById('backend_description').innerHTML = BACKENDS[bs.selectedIndex].description;
178
HTTPBASE = BACKENDS[bs.selectedIndex].httpbase;
179
BACKEND_TYPE = BACKENDS[bs.selectedIndex].type;
181
servers_allowed = BACKENDS[0].servers_allowed;
182
default_server = BACKENDS[0].default_server;
183
HTTPBASE = BACKENDS[0].httpbase;
184
BACKEND_TYPE = BACKENDS[0].type;
188
|| servers_allowed.length == 0)
190
var tr_server = document.getElementById('tr_server');
192
var input = document.createElement('input');
193
input.setAttribute("type","text");
194
input.setAttribute("id","server");
195
input.setAttribute("name","server");
196
input.setAttribute("tabindex","2");
197
input.className = 'input_text';
200
input.setAttribute("value",default_server);
202
var td = tr_server.getElementsByTagName('td').item(0);
203
for (var i=0; i<td.childNodes.length; i++)
204
td.removeChild(td.childNodes.item(i));
206
td.appendChild(input);
208
tr_server.style.display = '';
210
document.getElementById('connect_port').disabled = false;
211
document.getElementById('connect_host').disabled = false;
212
document.getElementById('connect_secure').disabled = false;
214
else if (servers_allowed.length == 1) {
215
document.getElementById('tr_server').style.display = 'none';
216
JABBERSERVER = servers_allowed[0];
217
document.getElementById('connect_port').disabled = true;
218
document.getElementById('connect_host').disabled = true;
219
document.getElementById('connect_secure').disabled = true;
220
} else { // create selectbox
221
var tr_server = document.getElementById('tr_server');
223
var oSelect = document.createElement('select');
224
oSelect.setAttribute('id','server');
225
oSelect.setAttribute('name','server');
226
oSelect.setAttribute('tabindex',"2");
227
oSelect.onchange = serverSelected;
229
var td = tr_server.getElementsByTagName('td').item(0);
230
for (var i=0; i<td.childNodes.length; i++)
231
td.removeChild(td.childNodes.item(i));
233
td.appendChild(oSelect);
235
for (var i=0; i<servers_allowed.length; i++) {
236
if (typeof(servers_allowed[i]) == 'undefined')
238
oSelect.options.add(new Option(servers_allowed[i],servers_allowed[i]));
241
tr_server.style.display = '';
242
document.getElementById('connect_port').disabled = true;
243
document.getElementById('connect_host').disabled = true;
244
document.getElementById('connect_secure').disabled = true;
249
var welcome = "Welcome to JWChat at "+SITENAME;
250
document.title = welcome;
251
document.getElementById("welcomeh1").innerHTML = welcome;
253
// create backend chooser - if any
254
if (typeof(BACKENDS) == 'undefined' || BACKENDS.length == 0) {
256
} else if (BACKENDS.length == 1) {
260
var oSelect = document.createElement('select');
261
oSelect.setAttribute('id','backend_selector');
262
oSelect.setAttribute('name','backend');
263
oSelect.setAttribute('tabindex',"1");
264
oSelect.onchange = backendSelected;
266
var tr = document.createElement('tr');
267
var td = tr.appendChild(document.createElement('th'));
268
var label = td.appendChild(document.createElement('label'));
269
label.setAttribute('for','backend_selector');
270
label.appendChild(document.createTextNode("Choose Backend"));
272
tr.appendChild(document.createElement('td')).appendChild(oSelect);
274
var tr_server = document.getElementById('tr_server');
275
tr_server.parentNode.insertBefore(tr,tr_server);
277
tr = document.createElement('tr');
278
td = tr.appendChild(document.createElement('td'));
279
td = document.createElement('td');
280
td.setAttribute('id','backend_description');
281
td.className= 'desc';
284
tr_server.parentNode.insertBefore(tr,tr_server);
286
for (var i=0; i<BACKENDS.length; i++) {
287
if (typeof(BACKENDS[i]) == 'undefined')
289
var oOption = new Option(BACKENDS[i].name,BACKENDS[i].httpbase);
290
oOption.setAttribute('description',BACKENDS[i].description);
291
oSelect.options[i] = oOption;
296
document.forms[0].jid.focus();
297
document.getElementById('chars_prohibited').innerHTML = prohibited;
298
if (typeof(DEFAULTRESOURCE) != 'undefined' && DEFAULTRESOURCE)
299
document.forms[0].res.value = DEFAULTRESOURCE;
301
if (getUserName().length > 0) {
302
document.getElementById('jid').setAttribute('value', getUserName());
305
document.getElementById('login_button').disabled = false;
314
<style type="text/css">
318
background-color: white;
327
a { color: #2a3847; }
335
h2 { padding-top: 0px; margin-top: 0px; }
338
border-bottom: 1px solid #2a3847;
342
font-variant: small-caps;
348
border: 1px solid #2a3847;
351
input:focus, input:hover {
352
background-color: #f9fae1;
355
.toggleOpts { cursor: pointer; }
374
border-top:1px solid #2a3847;
379
border: 2px solid #2a3847;
380
-moz-border-radius: 8px;
382
background-color: #81addc;
389
<table width="100%" height="100%">
391
<td align=center id='td_top'>
395
<h1 id="welcomeh1">Welcome to JWChat</h1>
396
<h2>A web-based Jabber<sup><small>®</small></sup> client</h2>
402
<form name="login" onSubmit="return loginCheck(this);">
404
<td height="100%" align=center valign=top id='td_form'>
405
<table border=0 cellspacing=0 cellpadding=2 id="lTable" align=center width=380>
407
<td colspan=2><h3>Login<img src="images/available.gif" width=16 height=16></h3></td>
409
<tr id="tr_server" style="display:none;">
410
<th title="Select Jabber server to connect to"><label for='server'>Server</label></th>
414
<th class='form_spacer'><label for='jid'>Username</label></th>
415
<td class='form_spacer' width="100%"><input type="text" id='jid' name="jid" tabindex=3 class='input_text'></td>
417
<tr><td> </td><td nowrap class="desc">Username must not contain: <span id='chars_prohibited'></span></td></tr>
419
<th><label for='pass'>Password</label></th>
420
<td><input type="password" id='pass' name="pass" tabindex=4 class='input_text'></td>
422
<tr><td> </td><td><input type=checkbox name=register id=register> <label for="register">Register New Account</label></td></tr>
423
<tr id="showMoreOpts" class="toggleOpts">
425
<td onClick="return toggleMoreOpts(1);"><img src="images/group_close.gif" title="Show More Options"> Show More Options</td>
427
<tr id="showLessOpts" class="toggleOpts" style="display:none;">
429
<td onClick="return toggleMoreOpts(0);"><img src="images/group_open.gif" title="Show Less Options"> Show Less Options</td>
431
<tr class="moreOpts" style="display:none;">
432
<th><label for='res'>Resource</label></th>
433
<td><input type="text" id="res" name="res" class="input_text"></td>
435
<tr class="moreOpts" style="display:none;">
436
<th><label for='prio'>Priority</label></th>
438
<select type="text" id="prio" name="prio" class="input_text" size="1">
439
<option value="0">low</option>
440
<option value="10" selected>medium</option>
441
<option value="100">high</option>
445
<tr class="moreOpts" style="display: none;">
446
<th class="form_spacer"><label for="connect_port">Port</label></th>
447
<td class="form_spacer"><input type="text" name="connect_port" id="connect_port" class="input_text" disabled></td>
449
<tr class="moreOpts" style="display: none;">
450
<th><label for="connect_host">Connect Host</label></th>
451
<td><input type="text" name="connect_host" id="connect_host" class="input_text" disabled></td>
453
<tr class="moreOpts" style="display: none;">
455
<td><input type="checkbox" name="connect_secure" id="connect_secure" class="input_text" disabled> <label for="connect_secure" title="Advise connection manager to connect through SSL" disabled>Allow secure conncetions only</label></td>
458
<tr><td> </td><td><button type="submit" id='login_button' tabindex=5 disabled>Login</button></td></tr>
465
<a href="http://sourceforge.net/donate/index.php?group_id=92011"><img src="http://images.sourceforge.net/images/project-support.jpg" width="88" height="32" border="0" alt="Support This Project" align=right /></a>
466
For details please visit <a href="http://jwchat.sourceforge.net">JWChat's Homepage</a>.
468
© 2003-2005 <a href="mailto:steve@zeank.in-berlin.de">Stefan Strigler</a> -
469
<!-- Created: Wed Feb 5 15:19:17 CET 2003 -->
471
Last modified: Fri Jan 19 14:26:00 CET 2007