(function(){var g=YAHOO.util.Dom,m=YAHOO.util.Event;Alfresco.CollaborationTitle=function(o){this.name="Alfresco.CollaborationTitle";this.id=o;this.widgets={};Alfresco.util.ComponentManager.register(this);Alfresco.util.YUILoaderHelper.require(["event"],this.onComponentsLoaded,this);this.preferencesService=new Alfresco.service.Preferences();return this};Alfresco.CollaborationTitle.prototype={options:{user:null,site:null},widgets:null,setOptions:function b(o){this.options=YAHOO.lang.merge(this.options,o);return this},setMessages:function a(o){Alfresco.util.addMessages(o,this.name);return this},onComponentsLoaded:function d(){m.onContentReady(this.id,this.onReady,this,true)},onReady:function h(){var o;o=document.getElementById(this.id+"-join-link");if(o){m.addListener(o,"click",function(q,p){p.thisComponent.joinSite(p.thisComponent.options.user,p.thisComponent.options.site)},{thisComponent:this})}o=document.getElementById(this.id+"-requestJoin-link");if(o){m.addListener(o,"click",function(q,p){p.thisComponent.requestJoinSite(p.thisComponent.options.user,p.thisComponent.options.site)},{thisComponent:this})}this.widgets={};this.widgets.more=new YAHOO.widget.Button(this.id+"-more",{type:"menu",menu:this.id+"-more-menu"});if(this.widgets.more.getMenu()){this.widgets.more.getMenu().subscribe("click",function(r,q){var s=q[1];if(s){switch(s.value){case"editSite":Alfresco.module.getEditSiteInstance().show({shortName:this.options.site});break;case"customiseSite":window.location=Alfresco.constants.URL_CONTEXT+"page/site/"+this.options.site+"/customise-site";break;case"leaveSite":var t=this;Alfresco.util.PopupManager.displayPrompt({title:t._msg("message.leave",t.options.site),text:t._msg("message.leave-site-prompt",t.options.site),buttons:[{text:Alfresco.util.message("button.ok"),handler:function u(){t.leaveSite(t.options.user,t.options.site);this.destroy()},isDefault:true},{text:Alfresco.util.message("button.cancel"),handler:function p(){this.destroy()},isDefault:false}]});break;case"addToFav":this.addAsFav(this.options.site);break}}},this,true)}},joinSite:function j(o,p){Alfresco.util.Ajax.jsonRequest({url:Alfresco.constants.PROXY_URI+"api/sites/"+p+"/memberships/"+o,method:"PUT",dataObj:{role:"SiteConsumer",person:{userName:o}},successCallback:{fn:this._joinSiteSuccess,scope:this},failureCallback:{fn:this._failureCallback,obj:Alfresco.util.message("message.join-failure",this.name,encodeURIComponent(this.options.user),this.options.site),scope:this}});this.widgets.feedbackMessage=Alfresco.util.PopupManager.displayMessage({text:Alfresco.util.message("message.joining",this.name,o,p),spanClass:"wait",displayTime:0})},_joinSiteSuccess:function e(o){document.location.reload()},requestJoinSite:function c(o,p){Alfresco.util.Ajax.jsonRequest({url:Alfresco.constants.PROXY_URI+"api/sites/"+p+"/invitations",method:"POST",dataObj:{invitationType:"MODERATED",inviteeUserName:o,inviteeComments:"",inviteeRoleName:"SiteConsumer"},successCallback:{fn:this._requestJoinSuccess,scope:this},failureCallback:{fn:this._failureCallback,obj:Alfresco.util.message("message.request-join-failure",this.name,encodeURIComponent(this.options.user),this.options.site),scope:this}});this.widgets.feedbackMessage=Alfresco.util.PopupManager.displayMessage({text:Alfresco.util.message("message.request-joining",this.name,o,p),spanClass:"wait",displayTime:0})},_requestJoinSuccess:function n(o){if(this.widgets.feedbackMessage){this.widgets.feedbackMessage.destroy();this.widgets.feedbackMessage=null}var p=this;Alfresco.util.PopupManager.displayPrompt({title:Alfresco.util.message("message.success"),text:Alfresco.util.message("message.request-join-success",this.name,this.options.user,this.options.site),buttons:[{text:Alfresco.util.message("button.ok"),handler:function q(){this.destroy();document.location.href=Alfresco.constants.URL_PAGECONTEXT+"user/"+p.options.user+"/dashboard"},isDefault:true}]})},leaveSite:function f(o,p){Alfresco.util.Ajax.request({url:Alfresco.constants.PROXY_URI+"api/sites/"+p+"/memberships/"+o,method:"DELETE",successCallback:{fn:this._leaveSiteSuccess,scope:this},failureCallback:{fn:this._failureCallback,obj:Alfresco.util.message("message.leave-failure",this.name,encodeURIComponent(this.options.user),this.options.site),scope:this}});this.widgets.feedbackMessage=Alfresco.util.PopupManager.displayMessage({text:Alfresco.util.message("message.leaving",this.name,o,p),spanClass:"wait",displayTime:0})},_leaveSiteSuccess:function k(o){document.location.href=Alfresco.constants.URL_PAGECONTEXT+"user/"+this.options.user+"/dashboard"},_failureCallback:function l(p,o){if(this.widgets.feedbackMessage){this.widgets.feedbackMessage.destroy();this.widgets.feedbackMessage=null}if(o){Alfresco.util.PopupManager.displayPrompt({title:Alfresco.util.message("message.failure"),text:o})}},_msg:function i(o){return Alfresco.util.message.call(this,o,"Alfresco.CollaborationTitle",Array.prototype.slice.call(arguments).slice(1))}}})();
