+
+}
+
+function handleTune(jid, tuneXML) {
+ var tune = new Tune();
+ if (tuneXML.childNodes.length > 0) {
+ tune.artist = Strophe.getText(tuneXML.getElementsByTagName('artist')[0]);
+ tune.length= Strophe.getText(tuneXML.getElementsByTagName('length')[0]);
+ tune.rating= Strophe.getText(tuneXML.getElementsByTagName('rating')[0]);
+ tune.source= Strophe.getText(tuneXML.getElementsByTagName('source')[0]);
+ tune.title= Strophe.getText(tuneXML.getElementsByTagName('title')[0]);
+ tune.track= Strophe.getText(tuneXML.getElementsByTagName('track')[0]);
+ tune.uri= Strophe.getText(tuneXML.getElementsByTagName('uri')[0]);
+ if (roster[jid2id(jid)].visible === true) {
+ if ( $('#tune').length > 0) {
+ $('#tune').empty();
+ $('#tune').append('<span class="vCardName">Tune: </span>');
+ $('#tune').append(Strophe.xmlTextNode('Listening to '+ tune.title +
+ ' by ' + tune.artist + ' from ' + tune.source));
+ } else {
+ $('#vCard ul').append('<li id="tune"><span class="vCardName">Tune: </span>Listening to '+ tune.title +
+ ' by ' + tune.artist + ' from ' + tune.source + '</li>');
+ }
+ }
+ } else {
+ $('#tune').remove();
+ }
+ roster[jid2id(jid)].tune = tune;
+}
+
+function _cbPEP(e) {
+ var from = e.getAttribute('from'), items;
+ if (Strophe.getBareJidFromJid(from) == Strophe.getBareJidFromJid(connection.jid)) {
+ return true; // Drop own PEP events
+ }
+ items = e.getElementsByTagName('items')[0];
+ // Handle Tune
+ if (items.getAttribute('node') == Strophe.NS.TUNE) {
+ handleTune(from, items.getElementsByTagName('tune')[0]);
+ }
+ return true;