1 var NS_VCARD = 'vcard-temp';
2 var BOSH_SERVICE = 'http://localhost:5280/http-bind/';
8 var entry = $('<div></div>').append(document.createTextNode(msg));
9 $('#log').append(entry);
12 function rawInput(data) {
16 function rawOutput(data) {
20 function jid2id(jid) {
21 return jid.split('@').join('-').split('.').join('-');
24 function _cbVCard(e) {
25 var jid = e.getAttribute('from');
26 var avatar = e.getElementsByTagName('PHOTO')[0];
28 var mime = Strophe.getText(avatar.getElementsByTagName('TYPE')[0]);
29 var binval = Strophe.getText(avatar.getElementsByTagName('BINVAL')[0]);
31 $("#"+jid2id(jid)+" img").attr('src', 'data:'+mime+';base64,'+binval);
37 function getAvatar(jid) {
38 var id = 'getvCard'+jid2id(jid);
39 var vCardiq = $iq({'to':jid,
42 ).c('vCard', {'xmlns':NS_VCARD});
43 connection.addHandler(_cbVCard, null, 'iq', 'result', id);
44 connection.send(vCardiq.tree());
48 function addFriend(jid, nick) {
49 $('#friends').append('<div class="friend" id="'+jid2id(jid)+'"><img src="imgs/none.png" /><br /><span class="nick">'+nick+'</span></div>');
50 $('#'+jid2id(jid)).click(function() {
55 function _cbRoster(e) {
56 var query = e.getElementsByTagName('query')[0];
57 var entries = query.getElementsByTagName('item');
58 for (var item=0; item<entries.length; item++) {
59 nick = entries[item].getAttribute('name');
61 nick = entries[item].getAttribute('jid').split('@')[0];
63 addFriend(entries[item].getAttribute('jid'), nick);
68 function getRoster() {
71 var rosteriq = $iq({'id':id,
73 ).c('query', {'xmlns':Strophe.NS.ROSTER});
75 connection.addHandler(_cbRoster, null, 'iq', 'result', id);
76 connection.send(rosteriq.tree());
79 function onConnect(status) {
80 if (status == Strophe.Status.CONNECTING) {
81 log('Strophe is connecting.');
83 } else if (status == Strophe.Status.CONNFAIL) {
84 log('Strophe failed to connect.');
86 } else if (status == Strophe.Status.DISCONNECTING) {
87 log('Strophe is disconnecting.');
88 } else if (status == Strophe.Status.DISCONNECTED) {
89 log('Strophe is disconnected.');
92 } else if (status == Strophe.Status.CONNECTED) {
93 log('Strophe is connected.');
98 function showConnect() {
100 var pass = $('#pass');
101 var button = $('#connect').get(0);
104 $('#friends').empty();
108 button.value = 'connect';
112 function showDisconnect() {
114 var pass = $('#pass');
115 var button = $('#connect').get(0);
117 button.value = 'disconnect';
124 $(document).ready(function () {
125 connection = new Strophe.Connection(BOSH_SERVICE);
126 connection.rawInput = rawInput;
127 connection.rawOutput = rawOutput;
129 $("#log_toggle").bind('click', function () {
134 $('#cred').bind('submit', function () {
135 var button = $('#connect').get(0);
137 var pass = $('#pass');
139 if (button.value == 'connect') {
141 connection.connect(jid.get(0).value,
145 connection.disconnect();