MWF.xDesktop.requireApp("IM","Actions.RestActions",null,false);MWF.require("MWF.xDesktop.UserData",null,false);MWF.xApplication.IM=MWF.xApplication.IM||{};MWF.xApplication.IM.IMWidget=new Class({Extends:MWF.xApplication.Common.Widget,Implements:[Options,Events],options:{style:"default",appName:"IM",name:"IMWidget"},initialize:function(e,s){this.setOptions(s);this.desktop=e},loadContent:function(e){this.ssoCount=0;this.widget.node.setStyle("display","none");this.userAction=new MWF.xApplication.IM.Actions.RestActions;this.users={};this.unShowMessage={};this.widget.close()},doUnreadMessages:function(){this.unShowMessage=MWF.UD.getDataJson("unreadChat")||{};layout.desktop.addEvent("unload",function(){MWF.UD.putData("unreadChat",this.unShowMessage)}.bind(this))},getOwner:function(e){if(this.owner){if(e)e()}else{this.userAction.getPerson(function(s){this.owner=s.data;if(e)e()}.bind(this),null,layout.desktop.session.user.id)}},getPerson:function(e,s){if(this.users[e]){if(s)s()}else{this.userAction.getPerson(function(t){this.users[e]=t.data;if(s)s()}.bind(this),null,e)}},getDialogue:function(e,s,t,i){var o=e.dialogues[s];if(!o){this.getPerson(t.from,function(){o=e.addDialogueBack(this.owner,[this.users[t.from]]);if(i)i(o)}.bind(this))}else{if(i)i(o)}},receiveChatMessage:function(e){this.getOwner(function(){var s=layout.desktop.apps["Chat"];if(s){if(layout.desktop.currentApp==s){var t=e.from+layout.desktop.session.user.distinguishedName;this.getDialogue(s,t,e,function(t){if(s.current!=t){this.receiveMessageRecod(e);t.addUnreadMessage(e)}else{t.showMessage(e,e.from);layout.desktop.playMessageAudio()}}.bind(this))}else{var t=e.from+layout.desktop.session.user.distinguishedName;this.getDialogue(s,t,e,function(t){if(s.current!=t){this.receiveMessageRecod(e);t.addUnreadMessage(e)}else{t.showMessage(e,e.from);layout.desktop.playMessageAudio()}}.bind(this));this.sendTooltipMessage(e);layout.desktop.playMessageAudio()}}else{this.receiveMessageRecod(e)}}.bind(this))},receiveMessageRecod:function(e){var s=e.from+layout.desktop.session.user.distinguishedName;if(!this.unShowMessage[s])this.unShowMessage[s]=[];this.unShowMessage[s].push(e);this.setUnread();this.sendTooltipMessage(e);layout.desktop.playMessageAudio()},sendTooltipMessage:function(e){var s='