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('@')[0] + "-" + jid.split('@')[1];
24 function _cbVCard(e) {
25 var jid = e.getAttribute('from');
26 var avatar = e.getElementsByTagName('PHOTO')[0];
27 var mime = Strophe.getText(avatar.getElementsByTagName('TYPE')[0]);
28 var binval = Strophe.getText(avatar.getElementsByTagName('BINVAL')[0]);
30 $("#"+jid2id(jid)+" img").attr('src', 'data:'+mime+';base64,'+binval);
35 function getAvatar(jid) {
36 var id = 'getvCard'+jid;
37 var vCardiq = $iq({'from':connection.jid+"/"+connection.resource,
41 ).c('vCard', {'xmlns':NS_VCARD});
42 connection.addHandler(_cbVCard, null, 'iq', 'result', id);
43 connection.send(vCardiq.tree());
47 function addFriend(jid, nick) {
48 $('#friends').append('<div id="'+jid2id(jid)+'"><img src="imgs/none.png" /><br /><span class="nick">'+nick+'</span></div>');
49 $('#'+jid2id(jid)).click(function() {
54 function _cbRoster(e) {
55 var query = e.getElementsByTagName('query')[0];
56 var entries = query.getElementsByTagName('item');
57 for (var item=0; item<entries.length; item++) {
58 addFriend(entries[item].getAttribute('jid'), entries[item].getAttribute('name'));
63 function getRoster() {
66 var rosteriq = $iq({'from':connection.jid+"/"+connection.resource,
69 ).c('query', {'xmlns':Strophe.NS.ROSTER});
71 connection.addHandler(_cbRoster, null, 'iq', 'result', id);
72 connection.send(rosteriq.tree());
75 function onConnect(status) {
76 if (status == Strophe.Status.CONNECTING) {
77 log('Strophe is connecting.');
79 } else if (status == Strophe.Status.CONNFAIL) {
80 log('Strophe failed to connect.');
82 } else if (status == Strophe.Status.DISCONNECTING) {
83 log('Strophe is disconnecting.');
84 } else if (status == Strophe.Status.DISCONNECTED) {
85 log('Strophe is disconnected.');
88 } else if (status == Strophe.Status.CONNECTED) {
89 log('Strophe is connected.');
94 function showConnect() {
96 var pass = $('#pass');
97 var button = $('#connect').get(0);
100 $('#friends').empty();
104 button.value = 'connect';
108 function showDisconnect() {
110 var pass = $('#pass');
111 var button = $('#connect').get(0);
113 button.value = 'disconnect';
120 $(document).ready(function () {
121 connection = new Strophe.Connection(BOSH_SERVICE);
122 connection.rawInput = rawInput;
123 connection.rawOutput = rawOutput;
125 $("#log_toggle").bind('click', function () {
130 $('#cred').bind('submit', function () {
131 var button = $('#connect').get(0);
133 var pass = $('#pass');
135 if (button.value == 'connect') {
137 connection.connect(jid.get(0).value,
141 connection.disconnect();