~ubuntu-branches/ubuntu/lucid/jwchat/lucid

« back to all changes in this revision

Viewing changes to options.html.en

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2008-08-24 15:02:53 UTC
  • mfrom: (3.1.4 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080824150253-h0z39rzjmo4lc1k5
Tags: 1.0beta3-3
* Clean up README.Debian. (Closes: #481320)
* Add brazilian debconf messages translation. (Closes: #481522)
* Add swedish debconf messages translation. (Closes: #494887)
* Add italian debconf messages translation. (Closes: #495780)
* Add russian debconf messages translation. (Closes: #495573)
* Add finnish debconf messages translation. (Closes: #496227)

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
    <script src="shared.js"></script>
9
9
    <script src="jabber_x_data.js"></script>
10
10
    <script src="xmlextras.js"></script>
11
 
    <script src="JSJaCPacket.js"></script>
 
11
    <script src="jsjac.js"></script>
12
12
    <script>
13
13
      <!--
14
14
function savePrefs() {
15
 
        var prefs = new Array('usersHidden','autoPopup','autoPopupAway','focusWindows','timestamps','playSounds','timerval','enableLog');
16
 
 
17
 
        var iq = new JSJaCIQ();
18
 
        iq.setType('set');
19
 
        var query = iq.setQuery('jabber:iq:private');
20
 
        var jNode = query.appendChild(iq.getDoc().createElement('jwchat'));
21
 
        jNode.setAttribute('xmlns','jwchat:prefs');
22
 
 
23
 
        for (var i in prefs) {
24
 
                var item = jNode.appendChild(iq.getDoc().createElement(prefs[i]));
25
 
                if (prefs[i] == 'usersHidden')
26
 
                        item.appendChild(iq.getDoc().createTextNode(eval("srcW.roster."+prefs[i])));
27
 
                else
28
 
                        item.appendChild(iq.getDoc().createTextNode(eval("srcW."+prefs[i])));
29
 
        }
30
 
 
31
 
        srcW.Debug.log(iq.getDoc().xml,3);
32
 
 
33
 
        srcW.con.syncSend(iq);
 
15
  var prefs = new Array('usersHidden','autoPopup','autoPopupAway','focusWindows','timestamps','playSounds','timerval','enableLog');
 
16
  
 
17
  if (!srcW.roster)
 
18
    return;
 
19
 
 
20
  var iq = new JSJaCIQ();
 
21
  iq.setType('set');
 
22
  var query = iq.setQuery('jabber:iq:private');
 
23
  var jNode = query.appendChild(iq.getDoc().createElement('jwchat'));
 
24
  jNode.setAttribute('xmlns','jwchat:prefs');
 
25
  
 
26
  for (var i=0; i<prefs.length; i++) {
 
27
    var item = jNode.appendChild(iq.getDoc().createElement(prefs[i]));
 
28
    if (prefs[i] == 'usersHidden')
 
29
      item.appendChild(iq.getDoc().createTextNode(eval("srcW.roster."+prefs[i])));
 
30
    else
 
31
      item.appendChild(iq.getDoc().createTextNode(eval("srcW."+prefs[i])));
 
32
  }
 
33
 
 
34
  srcW.Debug.log(iq.getDoc().xml,3);
 
35
 
 
36
  srcW.con.send(iq);
34
37
}
35
38
 
36
39
        
37
40
function displayTimestamps() {
38
 
  opener.top.timestamps = form.timestamps.checked;
 
41
  srcW.timestamps = form.timestamps.checked;
39
42
  /* set timestamp display in all open chat-windows */
40
 
  for (var i=0; i<opener.top.roster.users.length; i++) {
41
 
    if ((opener.top.roster.users[i].chatW) && (opener.top.roster.users[i].chatW.closed == false)) {
42
 
      opener.top.roster.users[i].chatW.top.displayTimestamp();
 
43
  for (var i=0; i<srcW.roster.users.length; i++) {
 
44
    if ((srcW.roster.users[i].chatW) && (srcW.roster.users[i].chatW.closed == false)) {
 
45
      srcW.roster.users[i].chatW.top.displayTimestamp();
43
46
    }
44
 
    if (opener.top.roster.users[i].roster) {
45
 
      for (var j in opener.top.roster.users[i].roster.users) {
46
 
        if (opener.top.roster.users[i].roster.users[j].chatW && !opener.top.roster.users[i].roster.users[j].chatW.closed)
47
 
          opener.top.roster.users[i].roster.users[j].chatW.displayTimestamp();
 
47
    if (srcW.roster.users[i].roster) {
 
48
      for (var j=0; j<srcW.roster.users[i].roster.users.length; j++) {
 
49
        if (srcW.roster.users[i].roster.users[j].chatW && 
 
50
            !srcW.roster.users[i].roster.users[j].chatW.closed)
 
51
          srcW.roster.users[i].roster.users[j].chatW.displayTimestamp();
48
52
         }
49
53
    }
50
54
  }
70
74
  if (srcW.focusWindows == true)
71
75
    form.focusWindows.checked = true;
72
76
 
73
 
        form.enableLog.checked = srcW.enableLog;
74
 
 
75
 
        if (typeof(srcW.loghost) == 'undefined')
76
 
                document.getElementById('tr_enableLog').style.display = 'none';
77
 
 
78
 
        if (srcW.con.isPolling()) {
79
 
                for (var i=0; i<form.timerval.options.length; i++) {
80
 
                        if (form.timerval.options[i].value == srcW.timerval)
81
 
                                form.timerval.selectedIndex = i;
82
 
                }
83
 
        }
 
77
  form.enableLog.checked = srcW.enableLog;
 
78
 
 
79
  if (typeof(srcW.loghost) == 'undefined')
 
80
    document.getElementById('tr_enableLog').style.display = 'none';
 
81
 
 
82
  if (srcW.con.isPolling()) {
 
83
    for (var i=0; i<form.timerval.options.length; i++) {
 
84
      if (form.timerval.options[i].value == srcW.timerval)
 
85
        form.timerval.selectedIndex = i;
 
86
    }
 
87
  }
84
88
  toggleAutoPopupAway(document.getElementById('autoPopup'));
85
89
}
86
90
 
87
91
var pane;
88
92
function service_selected(el) {
89
 
        pane = el.nextSibling;
90
 
        if (el.options[el.selectedIndex].value == '') {
91
 
                pane.innerHTML = '';
92
 
                return;
93
 
        }
94
 
 
95
 
        pane.innerHTML = "<div class='transport_pane'>"+"Querying Service ...<br>Please stand by!"+"</div>";
96
 
 
97
 
        var iq = new JSJaCIQ();
98
 
        iq.setType('get');
99
 
        iq.setTo(el.options[el.selectedIndex].value);
100
 
        iq.setQuery('jabber:iq:register');
101
 
 
102
 
        me = this;
103
 
        srcW.con.send(iq,me.getRegisterForm);
 
93
  pane = el.nextSibling;
 
94
  if (el.options[el.selectedIndex].value == '') {
 
95
    pane.innerHTML = '';
 
96
    return;
 
97
  }
 
98
 
 
99
  pane.innerHTML = "<div class='transport_pane'>"+"Querying Service ...<br>Please stand by!"+"</div>";
 
100
 
 
101
  var iq = new JSJaCIQ();
 
102
  iq.setType('get');
 
103
  iq.setTo(el.options[el.selectedIndex].value);
 
104
  iq.setQuery('jabber:iq:register');
 
105
  
 
106
  me = this;
 
107
  srcW.con.send(iq,me.getRegisterForm);
104
108
}
105
109
 
106
110
function getRegisterForm(iq) {
107
 
        if (!iq || iq.getType() != 'result' || iq.getQueryXMLNS() != 'jabber:iq:register') {
108
 
                pane.innerHTML = "<div class='transport_pane'>"+"An Error occured ..."+"</div>";                
109
 
                return;
110
 
        }
111
 
        srcW.Debug.log(iq.getDoc().xml,2);
112
 
 
113
 
        // check if it's jabber:x:data
114
 
 
115
 
        var html = '';
116
 
        if (iq.getNode().getElementsByTagName('x').length && iq.getNode().getElementsByTagName('x').item(0).getAttribute('xmlns') == 'jabber:x:data') {
117
 
                html += "<form>"+genJabberXDataTable(iq.getNode().getElementsByTagName('x').item(0))+"</form>";
118
 
        } else {
119
 
                var query = iq.getQuery();
120
 
                if (query.getElementsByTagName('registered').item(0))
121
 
                        html += "<div class='pane_el'><b style='color:red;'>"+"You are already registered at this service!"+"</b></div>";
122
 
                if (query.getElementsByTagName('instructions').item(0))
123
 
                        html += "<div class='pane_el'>"+query.getElementsByTagName('instructions').item(0).firstChild.nodeValue+"</div>";
124
 
                html += "<form name='transport'><table>";
125
 
                for (var i=0; i<query.childNodes.length; i++) {
126
 
                        var aItem = query.childNodes.item(i);
127
 
                        switch (aItem.nodeName) {
128
 
                        case 'instructions':
129
 
                        case 'registered': 
130
 
                                break;
131
 
                        case 'key': // hide key
132
 
                                html += "<tr><td colspan=2><input type=hidden name='"+aItem.nodeName+"' value='"+aItem.firstChild.nodeValue+"'></td></tr>";
133
 
                                break;
134
 
                        case 'password':
135
 
                                if (aItem.firstChild)
136
 
                                        html += "<tr><td>"+aItem.nodeName+"</td><td><input type='password' name='"+aItem.nodeName+"' value='"+aItem.firstChild.nodeValue+"'></td></tr>";
137
 
                                else
138
 
                                        html += "<tr><td>"+aItem.nodeName+"</td><td><input type='password' name='"+aItem.nodeName+"'></td></tr>";
139
 
                                break;
140
 
                        default:
141
 
                                if (aItem.firstChild)
142
 
                                        html += "<tr><td>"+aItem.nodeName+"</td><td><input type='text' name='"+aItem.nodeName+"' value='"+aItem.firstChild.nodeValue+"'></td></tr>";
143
 
                                else
144
 
                                        html += "<tr><td>"+aItem.nodeName+"</td><td><input type='text' name='"+aItem.nodeName+"'></td></tr>";
145
 
                        }
146
 
                }
147
 
                html += "</table></form>";
148
 
        }
149
 
        html += "<div class='pane_el' align='right'>";
150
 
        if (query.getElementsByTagName('registered').item(0)) {
151
 
                html += "<button onClick=\"unregisterGateway('"+iq.getFrom()+"');\">"+"Unregister"+"</button>";
152
 
                html += "&nbsp;";
153
 
                html += "<button onClick=\"registerService('"+iq.getFrom()+"','"+pane.id+"');\">"+"Update"+"</button>";
154
 
        } else
155
 
                html += "<button onClick=\"registerService('"+iq.getFrom()+"','"+pane.id+"');\">"+"Register"+"</button>";
156
 
        html += "</div>";
157
 
        pane.innerHTML = html;
 
111
  if (!iq || iq.getType() != 'result' || iq.getQueryXMLNS() != 'jabber:iq:register') {
 
112
    pane.innerHTML = "<div class='transport_pane'>"+"An Error occured ..."+"</div>";            
 
113
    return;
 
114
  }
 
115
  srcW.Debug.log(iq.getDoc().xml,2);
 
116
 
 
117
  var query = iq.getQuery();
 
118
        
 
119
  // check if it's jabber:x:data
 
120
 
 
121
  var html = '';
 
122
  if (iq.getNode().getElementsByTagName('x').length && iq.getNode().getElementsByTagName('x').item(0).getAttribute('xmlns') == 'jabber:x:data') {
 
123
    html += "<form>"+genJabberXDataTable(iq.getNode().getElementsByTagName('x').item(0))+"</form>";
 
124
  } else {
 
125
    if (query.getElementsByTagName('registered').item(0))
 
126
      html += "<div class='pane_el'><b style='color:red;'>"+"You are already registered at this service!"+"</b></div>";
 
127
    if (query.getElementsByTagName('instructions').item(0))
 
128
      html += "<div class='pane_el'>"+query.getElementsByTagName('instructions').item(0).firstChild.nodeValue+"</div>";
 
129
    html += "<form name='transport'><table>";
 
130
    for (var i=0; i<query.childNodes.length; i++) {
 
131
      var aItem = query.childNodes.item(i);
 
132
      switch (aItem.nodeName) {
 
133
      case 'instructions':
 
134
      case 'registered': 
 
135
        break;
 
136
      case 'key': // hide key
 
137
        html += "<tr><td colspan=2><input type=hidden name='"+aItem.nodeName+"' value='"+aItem.firstChild.nodeValue+"'></td></tr>";
 
138
        break;
 
139
      case 'password':
 
140
        if (aItem.firstChild)
 
141
          html += "<tr><td>"+aItem.nodeName+"</td><td><input type='password' name='"+aItem.nodeName+"' value='"+aItem.firstChild.nodeValue+"'></td></tr>";
 
142
        else
 
143
          html += "<tr><td>"+aItem.nodeName+"</td><td><input type='password' name='"+aItem.nodeName+"'></td></tr>";
 
144
        break;
 
145
      default:
 
146
        if (aItem.firstChild)
 
147
          html += "<tr><td>"+aItem.nodeName+"</td><td><input type='text' name='"+aItem.nodeName+"' value='"+aItem.firstChild.nodeValue+"'></td></tr>";
 
148
        else
 
149
          html += "<tr><td>"+aItem.nodeName+"</td><td><input type='text' name='"+aItem.nodeName+"'></td></tr>";
 
150
      }
 
151
    }
 
152
    html += "</table></form>";
 
153
  }
 
154
  html += "<div class='pane_el' align='right'>";
 
155
  if (query.getElementsByTagName('registered').item(0)) {
 
156
    html += "<button onClick=\"unregisterGateway('"+iq.getFrom()+"');\">"+"Unregister"+"</button>";
 
157
    html += "&nbsp;";
 
158
    html += "<button onClick=\"registerService('"+iq.getFrom()+"','"+pane.id+"');\">"+"Update"+"</button>";
 
159
  } else
 
160
    html += "<button onClick=\"registerService('"+iq.getFrom()+"','"+pane.id+"');\">"+"Register"+"</button>";
 
161
  html += "</div>";
 
162
  pane.innerHTML = html;
158
163
 
159
164
}
160
165
 
162
167
var oldactiveindex = 0;
163
168
 
164
169
function tabclicked(e) {
165
 
        // find index of clicked element
166
 
        var firingobj=ie5? event.srcElement : e.target;
167
 
        var tablabels = document.getElementById('tablabels');
168
 
        for (var i in tablabels.childNodes)
169
 
                if (tablabels.childNodes[i] == firingobj) {
170
 
                        if (oldactiveindex == i)
171
 
                        return;
172
 
                        var tabs = document.getElementById('tabs');
173
 
                        tabs.childNodes[oldactiveindex].className = 'tabinactive';
174
 
                        tabs.childNodes[i].className = 'tab';
175
 
                        tablabels.childNodes[i].className = 'tablabelactive';
176
 
                        tablabels.childNodes[oldactiveindex].className = 'tablabel';
177
 
                        oldactiveindex = i;
178
 
                }
179
 
}
180
 
 
181
 
function registerService(jid,paneid) {
182
 
        var aForm;
183
 
 
184
 
        var pane = document.getElementById(paneid);
185
 
 
186
 
        for (var i in pane.childNodes) {
187
 
                if (pane.childNodes[i].tagName == 'FORM') {
188
 
                        aForm = pane.childNodes[i];
189
 
                        break; // found
190
 
                }
191
 
        }
192
 
 
193
 
        var setxml = '';
194
 
        
195
 
        var jabberXData = (aForm.elements['jwchat_form_type'] && aForm.elements['jwchat_form_type'].value == 'jabber:x:data');
196
 
        
197
 
        if (jabberXData) {
198
 
                setxml = genJabberXDataReply(aForm);
199
 
        }       else {
200
 
                for (var i=0; i<aForm.elements.length; i++) {
201
 
                        var el = aForm.elements[i];
202
 
                        setxml += "<"+el.name+">"+el.value+"</"+el.name+">";
203
 
                }
204
 
        }
205
 
 
206
 
        var iq = new JSJaCIQ();
207
 
        iq.setType('set');
208
 
        iq.setTo(jid);
209
 
 
210
 
        var query = iq.setQuery('jabber:iq:register');
211
 
 
212
 
        var xmldoc = XmlDocument.create();
213
 
        xmldoc.loadXML('<body>'+setxml+'</body>');
214
 
        
215
 
        for (var i=0; i<xmldoc.firstChild.childNodes.length; i++)
216
 
                query.appendChild(xmldoc.firstChild.childNodes.item(i).cloneNode(true));
217
 
 
218
 
        srcW.Debug.log(iq.getDoc().xml,2);
 
170
  // find index of clicked element
 
171
  var firingobj=ie5? event.srcElement : e.target;
 
172
  var tablabels = document.getElementById('tablabels');
 
173
  for (var i=0; i<tablabels.childNodes.length; i++)
 
174
    if (tablabels.childNodes[i] == firingobj) {
 
175
      if (oldactiveindex == i)
 
176
        return;
 
177
      var tabs = document.getElementById('tabs');
 
178
      tabs.childNodes[oldactiveindex].className = 'tabinactive';
 
179
      tabs.childNodes[i].className = 'tab';
 
180
      tablabels.childNodes[i].className = 'tablabelactive';
 
181
      tablabels.childNodes[oldactiveindex].className = 'tablabel';
 
182
      oldactiveindex = i;
 
183
    }
 
184
}
 
185
 
 
186
function registerService(sJid,paneid) {
 
187
  var aForm;
 
188
  
 
189
  var pane = document.getElementById(paneid);
 
190
 
 
191
  for (var i=0; i<pane.childNodes.length; i++) {
 
192
    if (pane.childNodes[i].tagName == 'FORM') {
 
193
      aForm = pane.childNodes[i];
 
194
      break; // found
 
195
    }
 
196
  }
 
197
 
 
198
  var setxml = '';
 
199
        
 
200
  var jabberXData = (aForm.elements['jwchat_form_type'] && aForm.elements['jwchat_form_type'].value == 'jabber:x:data');
 
201
  
 
202
  if (jabberXData) {
 
203
    setxml = genJabberXDataReply(aForm);
 
204
  }     else {
 
205
    for (var i=0; i<aForm.elements.length; i++) {
 
206
      var el = aForm.elements[i];
 
207
      setxml += "<"+el.name+">"+el.value+"</"+el.name+">";
 
208
    }
 
209
  }
 
210
 
 
211
  var iq = new JSJaCIQ();
 
212
  iq.setType('set');
 
213
  iq.setTo(sJid);
 
214
  
 
215
  var query = iq.setQuery('jabber:iq:register');
 
216
  
 
217
  var xmldoc = XmlDocument.create('body','foo');
 
218
  xmldoc.loadXML('<body>'+setxml+'</body>');
 
219
  
 
220
  for (var i=0; i<xmldoc.firstChild.childNodes.length; i++)
 
221
    query.appendChild(xmldoc.firstChild.childNodes.item(i).cloneNode(true));
 
222
  
 
223
  srcW.Debug.log(iq.getDoc().xml,2);
 
224
  
 
225
  me = this;
 
226
  srcW.con.send(iq,me.handleRegisterService,sJid);
 
227
  
 
228
  pane.innerHTML = "<strong>"+"Request sent to "+sJid+".."+"</strong><br>";
 
229
}
 
230
 
 
231
/* callback from registering a service */
 
232
function handleRegisterService(iq,sJid) {
 
233
  if (iq.getType() == 'error') {
219
234
                
220
 
        srcW.con.send(iq);
221
 
 
222
 
        window.close();
223
 
}
224
 
 
225
 
function unregisterGateway(jid) {
226
 
        if (srcW.roster.getUserByJID(jid) != null)
227
 
                jid = srcW.roster.getUserByJID(jid).fulljid;
228
 
 
229
 
        var iq = new JSJaCIQ();
230
 
        iq.setType('set');
231
 
        var query = iq.setQuery('jabber:iq:roster');
 
235
    var html = "<strong style='color:red;'>"+"Error";
 
236
    if (iq.getNode().getElementsByTagName('error').item(0)) {
 
237
      var aErr = iq.getNode().getElementsByTagName('error').item(0);
 
238
      if (aErr.getAttribute('code'))
 
239
        html += " ("+aErr.getAttribute('code')+")";
 
240
      html += ": ";
 
241
      if (aErr.firstChild && aErr.firstChild.nodeValue)
 
242
        html += aErr.firstChild.nodeValue;
 
243
      else if (aErr.firstChild) {
 
244
        switch (aErr.firstChild.nodeName) {
 
245
        case 'bad-request': html += "Bad Request";
 
246
          break;
 
247
        default: html += aErr.firstChild.nodeName;
 
248
          break;
 
249
        }
 
250
      }
 
251
    }
 
252
    html += "</strong><br/>";
 
253
    pane.innerHTML += html;
 
254
    return;
 
255
  }
 
256
  pane.innerHTML += "<strong>"+"Registration successful."+"</strong><br/>";
 
257
        
 
258
  // send presence
 
259
  pane.innerHTML += "<strong>"+"Sending presence..."+"</strong><br />";
 
260
  var aPresence = new JSJaCPresence();
 
261
  aPresence.setTo(sJid);
 
262
  aPresence.setShow(srcW.onlstat);
 
263
  aPresence.setStatus(srcW.onlmsg);
 
264
  srcW.con.send(aPresence);
 
265
  pane.innerHTML += "<strong>"+"Done."+"</strong><br />";
 
266
}
 
267
 
 
268
function unregisterGateway(sJid) {
 
269
  if (srcW.roster.getUserByJID(sJid) != null)
 
270
    sJid = srcW.roster.getUserByJID(sJid).fulljid;
 
271
 
 
272
  pane.innerHTML = "<strong>"+"Unregistering from service "+sJid+" ..."+"</strong><br />";
 
273
  var iq = new JSJaCIQ();
 
274
  iq.setType('set');
 
275
  iq.setTo(sJid);
 
276
  var query = iq.setQuery('jabber:iq:register');
 
277
  var item = query.appendChild(iq.getDoc().createElement('remove'));
 
278
  me = this;
 
279
  srcW.con.send(iq,me.handleUnregisterService,sJid);
 
280
}
 
281
 
 
282
function handleUnregisterService(iq,sJid) {
 
283
  if (iq.getType() == 'error') {
 
284
    var html = "<strong style='color:red;'>"+"Error";
 
285
    if (iq.getNode().getElementsByTagName('error').item(0)) {
 
286
      var aErr = iq.getNode().getElementsByTagName('error').item(0);
 
287
      if (aErr.getAttribute('code'))
 
288
        html += " ("+aErr.getAttribute('code')+")";
 
289
      html += ": ";
 
290
      if (aErr.firstChild && aErr.firstChild.nodeValue)
 
291
        html += aErr.firstChild.nodeValue;
 
292
      else if (aErr.firstChild) {
 
293
        switch (aErr.firstChild.nodeName) {
 
294
        case 'bad-request': html += "Bad Request";
 
295
          break;
 
296
        default: html += aErr.firstChild.nodeName;
 
297
          break;
 
298
        }
 
299
      }
 
300
    }
 
301
    html += "</strong><br/>";
 
302
    pane.innerHTML += html;
 
303
    return;
 
304
  }
 
305
  pane.innerHTML += "<strong>"+"Done."+"</strong><br />";
 
306
  pane.innerHTML += "<strong>"+"Removing "+sJid+" from roster..."+"</strong><br />";
 
307
  
 
308
  var iq = new JSJaCIQ();
 
309
  iq.setType('set');
 
310
  var query = iq.setQuery('jabber:iq:roster');
 
311
  var item = query.appendChild(iq.getDoc().createElement('item'));
 
312
  item.setAttribute('jid',sJid);
 
313
  item.setAttribute('subscription','remove');
 
314
  
 
315
  srcW.con.send(iq);
 
316
  
 
317
  if (confirm("Remove all associated contacts?")) {
 
318
    pane.innerHTML += "<strong>"+"Removing contacts..."+"</strong><br />";
 
319
    var iq = new JSJaCIQ();
 
320
    iq.setType('set');
 
321
    var query = iq.setQuery('jabber:iq:roster');
 
322
    for (var i=0; i<srcW.roster.users.length; i++) {
 
323
      if (cutResource(srcW.roster.users[i].jid.substring(srcW.roster.users[i].jid.indexOf('@')+1)) == cutResource(sJid) &&
 
324
          srcW.roster.users[i].jid != cutResource(sJid)) {
232
325
        var item = query.appendChild(iq.getDoc().createElement('item'));
233
 
        item.setAttribute('jid',jid);
 
326
        item.setAttribute('jid',srcW.roster.users[i].fulljid);
234
327
        item.setAttribute('subscription','remove');
235
 
 
236
 
        srcW.con.send(iq);
237
 
        window.close();
 
328
        pane.innerHTML += srcW.roster.users[i].name+"<br />";
 
329
      }
 
330
    }
 
331
    srcW.con.send(iq);
 
332
  }
 
333
  pane.innerHTML += "<strong>"+"Done."+"</strong><br />";
238
334
}
239
335
 
240
336
var srcW;
241
337
function init() {
242
 
        srcW = opener.parent;
243
 
 
244
 
        getOptions();
245
 
 
246
 
        // initialise handlers for tabs
247
 
        var tablabels = document.getElementById('tablabels');
248
 
        for (var i in tablabels.childNodes)
249
 
                tablabels.childNodes[i].onclick = tabclicked;
250
 
 
251
 
        // set version
252
 
        var jwchat_version = document.getElementById('jwchat_version');
253
 
        jwchat_version.innerHTML = VERSION;
254
 
        if (VERSION == "CVS")
255
 
          jwchat_version.innerHTML += "<br>(" + document.lastModified + ")";
256
 
 
257
 
        var transports_selector = document.getElementById('transports_selector');
258
 
        var transport_optidx = 1;
259
 
        var directory_selector = document.getElementById('directory_selector');
260
 
        var directory_optidx = 1;
261
 
        for (var i in srcW.disco) {
262
 
                var item = srcW.disco[i];
263
 
                if (item.getNode().getElementsByTagName('identity').item(0)) {
264
 
                        if (item.getNode().getElementsByTagName('identity').item(0).getAttribute('category') == 'gateway') {
265
 
                                for (var j=0; j<item.getNode().getElementsByTagName('feature').length; j++) {
266
 
                                        if (item.getNode().getElementsByTagName('feature').item(j).getAttribute('var') == 'jabber:iq:register') {
267
 
                                                transports_selector.options[transport_optidx++] = new Option(item.getNode().getElementsByTagName('identity').item(0).getAttribute('name'),item.getFrom());
268
 
                                                break;
269
 
                                        }
270
 
                                }
271
 
                        } else if (item.getNode().getElementsByTagName('identity').item(0).getAttribute('category') == 'directory') {
272
 
                                for (var j=0; j<item.getNode().getElementsByTagName('feature').length; j++) {
273
 
                                        if (item.getNode().getElementsByTagName('feature').item(j).getAttribute('var') == 'jabber:iq:register') {
274
 
                                                directory_selector.options[directory_optidx++] = new Option(item.getNode().getElementsByTagName('identity').item(0).getAttribute('name'),item.getFrom());
275
 
                                                break;
276
 
                                        }
277
 
                                }
278
 
                        }
279
 
                }
280
 
        }
281
 
 
282
 
        if (directory_optidx == 1)
283
 
                document.getElementById('dir_label').style.display = 'none';
284
 
        if (transport_optidx == 1)
285
 
                document.getElementById('gw_label').style.display = 'none';
 
338
  srcW = opener.parent;
 
339
 
 
340
  getOptions();
 
341
  
 
342
  // initialise handlers for tabs
 
343
  var tablabels = document.getElementById('tablabels');
 
344
  for (var i=0; i<tablabels.childNodes.length; i++)
 
345
    tablabels.childNodes[i].onclick = tabclicked;
 
346
  
 
347
  // set version
 
348
  var jwchat_version = document.getElementById('jwchat_version');
 
349
  jwchat_version.innerHTML = VERSION;
 
350
  if (VERSION == "CVS")
 
351
    jwchat_version.innerHTML += "<br>(" + document.lastModified + ")";
 
352
  
 
353
  var transports_selector = document.getElementById('transports_selector');
 
354
  var transport_optidx = 1;
 
355
  var directory_selector = document.getElementById('directory_selector');
 
356
  var directory_optidx = 1;
 
357
  for (var i in srcW.disco) {
 
358
    if (!srcW.disco[i].getNode) continue;
 
359
    var item = srcW.disco[i];
 
360
    if (item.getNode().getElementsByTagName('identity').item(0)) {
 
361
      if (item.getNode().getElementsByTagName('identity').item(0).getAttribute('category') == 'gateway') {
 
362
        for (var j=0; j<item.getNode().getElementsByTagName('feature').length; j++) {
 
363
          if (item.getNode().getElementsByTagName('feature').item(j).getAttribute('var') == 'jabber:iq:register') {
 
364
            transports_selector.options[transport_optidx++] = new Option(item.getNode().getElementsByTagName('identity').item(0).getAttribute('name'),item.getFrom());
 
365
            break;
 
366
          }
 
367
        }
 
368
      } else if (item.getNode().getElementsByTagName('identity').item(0).getAttribute('category') == 'directory') {
 
369
        for (var j=0; j<item.getNode().getElementsByTagName('feature').length; j++) {
 
370
          if (item.getNode().getElementsByTagName('feature').item(j).getAttribute('var') == 'jabber:iq:register') {
 
371
            directory_selector.options[directory_optidx++] = new Option(item.getNode().getElementsByTagName('identity').item(0).getAttribute('name'),item.getFrom());
 
372
            break;
 
373
          }
 
374
        }
 
375
      }
 
376
    }
 
377
  }
 
378
  
 
379
  if (directory_optidx == 1)
 
380
    document.getElementById('dir_label').style.display = 'none';
 
381
  if (transport_optidx == 1)
 
382
    document.getElementById('gw_label').style.display = 'none';
286
383
}
287
384
 
288
385
onload = init;
290
387
      //-->
291
388
    </script>
292
389
                <style type="text/css">
293
 
                        <!--
294
390
                        th { font-size: 80%; text-align: right; font-weight: normal; }
295
391
                        #transport_pane input { 
296
392
                        border: 1px solid black;
318
414
                        border: 1px solid black;
319
415
                        background-color: white;
320
416
                        }
321
 
                        .tab { display: ''; }
 
417
                        .tab { display: block; }
322
418
                        .tabinactive { display: none;   }
323
419
                        .pane_el { margin: 4px; }
324
 
                        //-->
325
420
                </style>
326
421
  </head>
327
422
  <body style="margin: 8px;">