Alpha commit. Time to tidy up..
[KiwiIRC.git] / js / front_backup.js
1 var front = {
2 cur_channel: '',
3 windows: {},
4
5
6 init: function(){
7 front.registerKeys();
8
9 gateway.nick = 'kiwiclone';
10 gateway.session_id = null;
11 gateway.onMsg = front.onMsg;
12 gateway.onNotice = front.onNotice;
13 gateway.onMOTD = front.onMOTD;
14 gateway.onConnect = front.onConnect;
15 gateway.onUserList = front.onUserList;
16
17 front.doLayout();
18 front.windowAdd('server');
19 gateway.poll();
20 },
21
22 doLayout: function(){
23 $('#kiwi .msginput .nick a').text(gateway.nick);
24 },
25
26
27 onMsg: function(data){
28 front.addMsg(null, data.nick,data.msg,data.channel);
29 },
30 onNotice: function(data){
31 front.addMsg(null, data.nick, '--> '+data.msg);
32 },
33 onConnect: function(data){
34 if(data.connected){
35 front.addMsg(null, ' ', '--> Connected to '+data.host);
36 } else {
37 front.addMsg(null, ' ', '--> Failed to connect to '+data.host);
38 }
39 },
40 onMOTD: function(data){
41 front.addMsg(null, data.server, data.msg);
42 },
43 onUserList: function(data){
44 $.each(data.users, function(i,item){
45 $('<li>'+i+'</li>').appendTo('#kiwi .userlist ul');
46 });
47 },
48
49 registerKeys: function(){
50 $('input').keypress(function(e){
51 if(e.which == 13){
52 var msg = $('#kiwi_msginput').val();
53 if(msg.substring(0,1) == '/'){
54 var parts = msg.split(' ');
55 switch(parts[0]){
56 case '/join':
57 if(front.windows[parts[1]] == undefined){
58 gateway.join(parts[1].replace('#', ''));
59 front.windowAdd(parts[1]);
60 } else {
61 front.windowShow(parts[1]);
62 }
63 break;
64
65 case '/connect':
66 if(parts[1] == undefined){
67 alert('Usage: /connect servername [port]');
68 break;
69 }
70
71 if(parts[2] == undefined) parts[2] = 6667;
72 front.addMsg(null, ' ', '--> Connecting to '+parts[1]+'...');
73 gateway.connect(parts[1], parts[2], 0);
74 break;
75
76 default:
77 front.addMsg(null, ' ', '--> Invalid command: '+parts[0].substring(1));
78 }
79
80 } else {
81 gateway.msg(front.cur_channel, msg);
82 var d = new Date();
83 var d = d.getHours() + ":" + d.getMinutes();
84 front.addMsg(d, gateway.nick, msg);
85 }
86 $('#kiwi_msginput').val('');
87 }
88 });
89 },
90
91
92
93 addMsg: function(time, nick, msg, channel){
94 var html_nick = $('<div/>').text(nick).html();
95 var html_msg = $('<div/>').text(msg).html()+' '; // Add the space so the styling always has at least 1 character to go from
96 if(time == null){
97 var d = new Date();
98 time = d.getHours() + ":" + d.getMinutes();
99 }
100
101 var msg = '<div class="msg"><div class="time">'+time+'</div><div class="nick">'+html_nick+'</div><div class="text">'+html_msg+'</div></div>';
102 if(channel == undefined){
103 var messages = $("#kiwi_window_server");
104 } else {
105 var messages = $("#kiwi_window_chan_"+channel.replace('#', ''));
106 }
107 messages.append(msg);
108 messages.attr({ scrollTop: messages.attr("scrollHeight") });
109 },
110
111
112
113 windowExists: function(name){
114 return !(front.windows[name] == undefined);
115 },
116 windowAdd: function(v_name){
117 var tmp_divname = 'kiwi_window_'+v_name.replace('#', 'chan_');
118 front.windows[v_name] = { name: v_name, div_id: tmp_divname };
119 $('#kiwi').append('<div id="'+tmp_divname+'"class="messages"></div>');
120 $('#kiwi .windowlist ul').append('<li class="window_'+v_name+'"><a onclick="front.windowShow(\''+v_name+'\');">'+v_name+'</a></li>');
121 //$('#kiwi .windowlist ul .window_'+v_name).click(function(){ front.windowShow(v_name); });
122 front.windowShow(v_name);
123
124 /*
125 var t = "";
126 for (key in front.windows)
127 t += "Element value is " + front.windows[key].div_id + "\n";
128
129 alert(t);
130 */
131 },
132 windowDiv: function(name){
133 if(!front.windowExists(name)) return false;
134 return $('#'+front.windows[name].div_id);
135 },
136 windowShow: function(name){
137 if(!front.windowExists(name)) return false;
138 $('#kiwi .messages').removeClass("active");
139 var tmp = front.windowDiv(name);
140 tmp.addClass('active');
141 front.cur_channel = name;
142 }
143 }