/*
Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
dojo._xdResourceLoaded(function(_1,_2,_3){return {depends:[["provide","dojox.xmpp.RosterService"]],defineResource:function(_4,_5,_6){if(!_4._hasResource["dojox.xmpp.RosterService"]){_4._hasResource["dojox.xmpp.RosterService"]=true;_4.provide("dojox.xmpp.RosterService");_6.xmpp.roster={ADDED:101,CHANGED:102,REMOVED:103};_4.declare("dojox.xmpp.RosterService",null,{constructor:function(_7){this.session=_7;},addRosterItem:function(_8,_9,_a){if(!_8){throw new Error("Roster::addRosterItem() - User ID is null");}var _b=this.session.getNextIqId();var _c={id:_b,from:this.session.jid+"/"+this.session.resource,type:"set"};var _d=new _6.string.Builder(_6.xmpp.util.createElement("iq",_c,false));_d.append(_6.xmpp.util.createElement("query",{xmlns:"jabber:iq:roster"},false));_8=_6.xmpp.util.encodeJid(_8);if(_8.indexOf("@")==-1){_8=_8+"@"+this.session.domain;}_d.append(_6.xmpp.util.createElement("item",{jid:_8,name:_6.xmpp.util.xmlEncode(_9)},false));if(_a){for(var i=0;i<_a.length;i++){_d.append("");_d.append(_a[i]);_d.append("");}}_d.append("");var _e=this.session.dispatchPacket(_d.toString(),"iq",_c.id);_e.addCallback(this,"verifyRoster");return _e;},updateRosterItem:function(_f,_10,_11){if(_f.indexOf("@")==-1){_f+=_f+"@"+this.session.domain;}var req={id:this.session.getNextIqId(),from:this.session.jid+"/"+this.session.resource,type:"set"};var _12=new _6.string.Builder(_6.xmpp.util.createElement("iq",req,false));_12.append(_6.xmpp.util.createElement("query",{xmlns:"jabber:iq:roster"},false));var i=this.session.getRosterIndex(_f);if(i==-1){return;}var _13={jid:_f};if(_10){_13.name=_10;}else{if(this.session.roster[i].name){_13.name=this.session.roster[i].name;}}if(_13.name){_13.name=_6.xmpp.util.xmlEncode(_13.name);}_12.append(_6.xmpp.util.createElement("item",_13,false));var _14=_11?_11:this.session.roster[i].groups;if(_14){for(var x=0;x<_14.length;x++){_12.append("");_12.append(_14[x]);_12.append("");}}_12.append("");var def=this.session.dispatchPacket(_12.toString(),"iq",req.id);def.addCallback(this,"verifyRoster");return def;},verifyRoster:function(res){if(res.getAttribute("type")=="result"){}else{var err=this.session.processXmppError(res);this.onAddRosterItemFailed(err);}return res;},addRosterItemToGroup:function(jid,_15){if(!jid){throw new Error("Roster::addRosterItemToGroup() JID is null or undefined");}if(!_15){throw new Error("Roster::addRosterItemToGroup() group is null or undefined");}var _16=this.session.getRosterIndex(jid);if(_16==-1){return;}var _17=this.session.roster[_16];var _18=[];var _19=false;for(var i=0;((_17<_17.groups.length)&&(!_19));i++){if(_17.groups[i]!=_15){continue;}_19=true;}if(!_19){return this.updateRosterItem(jid,_17.name,_17.groups.concat(_15),_16);}return _6.xmpp.xmpp.INVALID_ID;},removeRosterGroup:function(_1a){var _1b=this.session.roster;for(var i=0;i<_1b.length;i++){var _1c=_1b[i];if(_1c.groups.length>0){for(var j=0;j<_1c.groups.length;j++){if(_1c.groups[j]==_1a){_1c.groups.splice(j,1);this.updateRosterItem(_1c.jid,_1c.name,_1c.groups);}}}}},renameRosterGroup:function(_1d,_1e){var _1f=this.session.roster;for(var i=0;i<_1f.length;i++){var _20=_1f[i];if(_20.groups.length>0){for(var j=0;j<_20.groups.length;j++){if(_20.groups[j]==_1d){_20.groups[j]=_1e;this.updateRosterItem(_20.jid,_20.name,_20.groups);}}}}},removeRosterItemFromGroup:function(jid,_21){if(!jid){throw new Error("Roster::addRosterItemToGroup() JID is null or undefined");}if(!_21){throw new Error("Roster::addRosterItemToGroup() group is null or undefined");}var _22=this.session.getRosterIndex(jid);if(_22==-1){return;}var _23=this.session.roster[_22];var _24=false;for(var i=0;((i<_23.groups.length)&&(!_24));i++){if(_23.groups[i]!=_21){continue;}_24=true;_22=i;}if(_24==true){_23.groups.splice(_22,1);return this.updateRosterItem(jid,_23.name,_23.groups);}return _6.xmpp.xmpp.INVALID_ID;},rosterItemRenameGroup:function(jid,_25,_26){if(!jid){throw new Error("Roster::rosterItemRenameGroup() JID is null or undefined");}if(!_26){throw new Error("Roster::rosterItemRenameGroup() group is null or undefined");}var _27=this.session.getRosterIndex(jid);if(_27==-1){return;}var _28=this.session.roster[_27];var _29=false;for(var i=0;((i<_28.groups.length)&&(!_29));i++){if(_28.groups[i]==_25){_28.groups[i]=_26;_29=true;}}if(_29==true){return this.updateRosterItem(jid,_28.name,_28.groups);}return _6.xmpp.xmpp.INVALID_ID;},renameRosterItem:function(jid,_2a){if(!jid){throw new Error("Roster::addRosterItemToGroup() JID is null or undefined");}if(!_2a){throw new Error("Roster::addRosterItemToGroup() New Name is null or undefined");}var _2b=this.session.getRosterIndex(jid);if(_2b==-1){return;}return this.updateRosterItem(jid,_2a,this.session.roster.groups,_2b);},removeRosterItem:function(jid){if(!jid){throw new Error("Roster::addRosterItemToGroup() JID is null or undefined");}var req={id:this.session.getNextIqId(),from:this.session.jid+"/"+this.session.resource,type:"set"};var _2c=new _6.string.Builder(_6.xmpp.util.createElement("iq",req,false));_2c.append(_6.xmpp.util.createElement("query",{xmlns:"jabber:iq:roster"},false));if(jid.indexOf("@")==-1){jid+=jid+"@"+this.session.domain;}_2c.append(_6.xmpp.util.createElement("item",{jid:jid,subscription:"remove"},true));_2c.append("");var def=this.session.dispatchPacket(_2c.toString(),"iq",req.id);def.addCallback(this,"verifyRoster");return def;},getAvatar:function(jid){},publishAvatar:function(_2d,_2e){},onVerifyRoster:function(id){},onVerifyRosterFailed:function(err){}});}}};});