3 <link rel="stylesheet" type="text/css" href="styles.css">
4 <script src="jstemplate/util.js" type="text/javascript"></script>
5 <script src="jstemplate/jsevalcontext.js" type="text/javascript"></script>
6 <script src="jstemplate/jstemplate.js" type="text/javascript"></script>
7 <script src="util.js" type="text/javascript"></script>
9 function addChannel() {
11 var servers = JSON.parse(localStorage.servers || "[]");
12 var channelName = $F('channel');
13 var serverName = $F('serverSelect')
14 servers.forEach(function(server) {
15 if (server.name == serverName) {
16 server.channels = server.channels || [];
17 server.channels.forEach(function(channel) {
18 if (channel == channelName) {
19 throw channelName + " is already open";
22 server.channels.push(channelName);
26 localStorage.servers = JSON.stringify(servers);
27 window.opener.syncChannelList();
28 window.opener.joinChannel(serverName, channelName);
35 window.onload = function() {
36 var servers = JSON.parse(localStorage.servers || "[]");
37 if (servers.length == 0) {
38 alert("You must first add a server connection");
42 jstProcess(new JsEvalContext(servers), $('serverSelect'));
49 <select id="serverSelect">
50 <option jsselect="$this" jscontent="name"></option>
52 <input id="channel" type="text" value="#channel">
57 <input type="button" value="Add New Channel"
58 onclick="addChannel();">