EVOLUTION-MANAGER
Edit File: chat.min.js
var CSSEmoticon=function(){function q(k){var c=k.text.replace(r,"\\$1");k.regexp=new RegExp("(^|[\\s\\0])("+c+")","g");return k}function n(k){for(var l=0;l<k.length;++l){var e=k[l],e="object"===typeof e?JSON.parse(JSON.stringify(e)):{text:e,cssClass:" "};c.emoticons.push(e.text);c.matchers.push(q(e));-1<e.text.indexOf("\x3d")&&(e=JSON.parse(JSON.stringify(e)),e.text=e.text.replace(/=/g,"\x26#61;").replace(/[+]/g,"\x26#43;"),c.matchers.push(q(e)));-1<e.text.indexOf("'")&&(e=JSON.parse(JSON.stringify(e)), e.text=e.text.replace(/'/g,"\x26#39;"),c.matchers.push(q(e)))}}var c={emoticons:[],matchers:[],defaults:{animate:!0,delay:500,exclude:"pre,code,.no-emoticons"},emoticonize:function(c,l){var e="css-emoticon";$.extend({},this.defaults,l).animate&&(e+=" un-transformed-emoticon animated-emoticon");for(l=0;l<this.matchers.length;++l){var k=this.matchers[l];c=c.replace(k.regexp,"$1\x3cspan class\x3d'"+(e+" "+k.cssClass)+"'\x3e$2\x3c/span\x3e")}return c},animate:function(c){c=$.extend({},this.defaults,c); c.animate&&setTimeout(function(){$(".un-transformed-emoticon").removeClass("un-transformed-emoticon")},c.delay)}},r=/(\)|\(|\*|\[|\]|\{|\}|\||\^|\<|\>|\\|\?|\+|\=|\.)/g;n(":-) :o) :c) :^) :-D :-( :-9 ;-) :-P :-p :-Þ :-b :-O :-/ :-X :-# :'( B-) 8-) ;*( :-* :-\\ ?-)".split(" "));n(":) :] \x3d] \x3d) 8) :} :D :( :[ :{ \x3d( ;) ;] ;D :P :p \x3dP \x3dp :b :Þ :O :/ \x3d/ :S :# :X B) :| :\\ \x3d\\ :* :\x26gt; :\x26lt;".split(" "));n([{text:"\x26gt;:)",cssClass:"red-emoticon small-emoticon spaced-emoticon"}, {text:"\x26gt;;)",cssClass:"red-emoticon small-emoticon spaced-emoticon"},{text:"\x26gt;:(",cssClass:"red-emoticon small-emoticon spaced-emoticon"},{text:"\x26gt;: )",cssClass:"red-emoticon small-emoticon"},{text:"\x26gt;; )",cssClass:"red-emoticon small-emoticon"},{text:"\x26gt;: (",cssClass:"red-emoticon small-emoticon"},{text:";(",cssClass:"red-emoticon spaced-emoticon"},{text:"\x26lt;3",cssClass:"pink-emoticon counter-rotated"},{text:"O_O",cssClass:"no-rotate"},{text:"o_o",cssClass:"no-rotate"}, {text:"0_o",cssClass:"no-rotate"},{text:"O_o",cssClass:"no-rotate"},{text:"T_T",cssClass:"no-rotate"},{text:"^_^",cssClass:"no-rotate"},{text:"O:)",cssClass:"small-emoticon spaced-emoticon"},{text:"O: )",cssClass:"small-emoticon"},{text:"8D",cssClass:"small-emoticon spaced-emoticon"},{text:"XD",cssClass:"small-emoticon spaced-emoticon"},{text:"xD",cssClass:"small-emoticon spaced-emoticon"},{text:"\x3dD",cssClass:"small-emoticon spaced-emoticon"},{text:"8O",cssClass:"small-emoticon spaced-emoticon"}, {text:"[+\x3d..]",cssClass:"no-rotate nintendo-controller"}]);return c},Chat=function(){function q(){var a=Settings.load();"undefined"===typeof a.chat&&(a.chat={muted:!1,sendOn:N});u=!0===a.chat.muted;z="enter"===a.chat.sendOn?"enter":"ctrl";return a}function n(a){a.removeClass("sound"+(u?"":"-mute")).addClass("sound"+(u?"-mute":"")).attr("title",a.data(u?"sound-enabled":"sound-muted"))}function c(a){var d="ctrl"===z;d?(a.addClass("send-ctrl"),h.off("keydown",r).keydown("Ctrl+return",r)):(a.removeClass("send-ctrl"), h.off("keydown",r).keydown("return",r));a.attr("title",a.data(d?"send-ctrl":"send-enter"))}function r(){$("#chat .send").trigger("click")}function k(){A=null;chatActivity("typing_stop",$(".room.box").data("room-id"))}function l(){O($(this).data("emt"))}function e(){var a=v.emoticons,d=$("#emotMenuList");d.html("");for(var b,e=0;e<a.length;++e)0===e%20&&(b=$("\x3ctr\x3e\x3c/tr\x3e"),d.append(b)),b.append($("\x3ctd\x3e").append($("\x3cdiv\x3e").addClass("emt").html(v.emoticonize(a[e])).data("emt",a[e]).click(l))); a=$("#emoticons");a.html("");a.append(" "+v.emoticonize(":)")+' \x3cb class\x3d"caret"\x3e\x3c/b\x3e');var f=$("#chat .audio"),g=$("#chat .send-btn");q();n(f);c(g);$("#chat .chat-btn").hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")});f.off().click(function(){var a=q();u=a.chat.muted=!a.chat.muted;n(f);Settings.save(a)});g.off().click(function(){var a=q();z=a.chat.sendOn="ctrl"!==a.chat.sendOn?"ctrl":"enter";c(g);Settings.save(a)});$("#chat #hyperlink").parent().find("button").off().click(function(){var a= $("#chat #hyperlink").parent().find("input").val();if(""!==a&&(a=a.trim(),""!==a&&(/^(https?:)?\/\//i.test(a)||(a="http://"+a),a=$("\x3cdiv\x3e").append($("\x3ca\x3e\x3c/a\x3e").attr("target","_blank").attr("href",a).text(a)).html(),window.getSelection))){var d=window.getSelection();d.rangeCount&&(d=d.getRangeAt(0),0<$(d.startContainer).parents(".wysiwyg-editor").length?(d.deleteContents(),d.insertNode(a)):O(a))}});v.animate()}function t(){return f.hasClass("closed")}function C(){return!!$("#chatTabs").data("ui-tabs")} function D(a){E=a.userId;F=a.all;G=a.room;z=N=!0===a.sendOnEnter?"enter":"ctrl";f=$("#chatPanel");clearTimeout(f.data("timeout"));w=$("#chatPanel, #chatPopup");g=$("#chatPopup .control.block");x=$("#chatPopup .control.block .ui-icon");h=$("#chatMessage .wysiwyg-editor");x.removeClass(function(a,b){return(b.match(/(^|\s)ui-icon-caret-\S+/g)||[]).join(" ")});e();p=$("#chatTabs").tabs({activate:function(a,b){a=b.newPanel[0].id;H($("#"+a));$("#activeChatTab").val(a).trigger("change")}});p.delegate("span.ui-icon-close", "click",function(){var a=$(this).closest("li").remove().attr("aria-controls");$("#"+a).remove();p.tabs("refresh")});m?(x.addClass(t()?I:J),f.addClass("room"),w.width(20),P()):(g.attr("title",""),x.addClass(t()?"ui-icon-caret-1-n":"ui-icon-caret-1-s"),g.height(20).width(B),w.width(B).height(20),f.removeClass("room opened").addClass("closed").off("mouseenter mouseleave").resizable({handles:"n, "+(Settings.isRtl?"e":"w"),disabled:t(),alsoResize:"#chatPopup,#chatPopup .control.block,#chat .ui-tabs .ui-tabs-panel.messageArea, #chatMessage .wysiwyg-editor", minHeight:195,minWidth:260,stop:function(a,b){f.css({top:"",left:""});h.width(f.width()-30);Q=b.size.height+"px";B=b.size.width;g.width(B)}}));g.off("click").click(Chat.toggle);$("#chatMessage").off().on("input propertychange paste",function(){var a=$(".room.box");a.length&&(A?clearTimeout(A):chatActivity("typing_start",a.data("room-id")),A=setTimeout(k,5E3))})}function R(a,d){C()||D({});1>$("#chat").length||$("#"+a).length||(d||(d="chatTab-all"===a?F:G+a.substr(9)),d=$("\x3cli\x3e").append($("\x3ca\x3e").attr("href", "#"+a).text(d)),0!==a.indexOf("chatTab-r")&&d.append(OmUtil.tmpl("#chat-close-block")),p.find(".ui-tabs-nav").append(d),p.append("\x3cdiv class\x3d'messageArea' id\x3d'"+a+"'\x3e\x3c/div\x3e"),p.tabs("refresh"),p.tabs("option","active",p.find('a[href\x3d"#'+a+'"]').parent().index()))}function S(){h.width(f.width()-30);f.resizable({handles:Settings.isRtl?"e":"w",alsoResize:"#chatPopup, #chatMessage .wysiwyg-editor",minWidth:120,stop:function(a,d){f.css({left:""});h.width(f.width()-30);T=d.size.width+ "px"}})}function P(){void 0!==f.resizable("instance")&&f.resizable("destroy")}function K(a){if(t()){x.removeClass(m?I:"ui-icon-caret-1-n").addClass(m?J:"ui-icon-caret-1-s");g.removeClass("ui-state-highlight");var d;m?(d={width:T},g.height(20)):(d={height:Q},f.resizable("option","disabled",!1));f.removeClass("closed");w.animate(d,1E3,function(){f.removeClass("closed");"function"===typeof a&&a();h.width(f.width()-30);g.attr("title",g.data("ttl-undock"));m&&(S(),Room.setSize());U()})}}function V(a){if(!t()){x.removeClass(m? J:"ui-icon-caret-1-s").addClass(m?I:"ui-icon-caret-1-n");var d;m?d={width:"20px"}:(d={height:"20px"},f.resizable("option","disabled",!0));w.animate(d,1E3,function(){f.addClass("closed");m&&(g.height(f.height()),P());"function"===typeof a&&a();g.attr("title",g.data("ttl-dock"));m&&Room.setSize()})}}function O(a){h.html(h.html()+" "+a+" ").trigger("change")}function H(a){a.animate({scrollTop:a[0].scrollHeight},300)}function U(){$("#chat .ui-tabs .ui-tabs-panel.messageArea").height(f.height()-20-$("#chat .ui-tabs-nav").height()- $("#chat form").height()-5);$("#chat .messageArea").each(function(){H($(this))})}var L=Settings.isRtl?"align-right":"align-left",y=Settings.isRtl?"align-left":"align-right",v=new CSSEmoticon,I="ui-icon-caret-1-"+(Settings.isRtl?"e":"w"),J="ui-icon-caret-1-"+(Settings.isRtl?"w":"e"),f,w,g,x,p,Q="345px",T="300px",F="All",G="Room ",A,M,m=!1,B=600,h=$("#chatMessage .wysiwyg-editor"),u=!1,z,N,E;try{M=new Audio("./public/chat_message.mp3")}catch(a){M={play:function(){}}}return{reinit:D,removeTab:function(a){$('#chat li[aria-controls\x3d"'+ a+'"]').remove();$("#"+a).remove();C()&&p.tabs("refresh")},addTab:R,addMessage:function(a){if(0<$("#chat").length&&a&&"chat"===a.type){for(var d,b,e=!1;b=a.msg.pop();){var c=$("#"+b.scope);b.from.id!==E&&(e=!0);d=OmUtil.tmpl("#chat-msg-template","chat-msg-id-"+b.id);d.find(".user-row").css("background-image","url("+(b.from.img?b.from.img:"./profile/"+b.from.id+"?anticache\x3d"+Date.now())+")");d.find(".from").addClass(L).data("user-id",b.from.id).html(b.from.name||b.from.displayName);d.find(".time").addClass(y).html(b.time).attr("title", b.sent);var h=d.find(".icons").addClass(L).append(OmUtil.tmpl("#chat-info-template").addClass(y).data("user-id",b.from.id));"full"===b.actions&&h.append(OmUtil.tmpl("#chat-add-template").addClass(y).data("user-id",b.from.id)).append(OmUtil.tmpl("#chat-message-template").addClass(y).data("user-id",b.from.id)).append(OmUtil.tmpl("#chat-invite-template").addClass(y).data("user-id",b.from.id));b.needModeration&&d.append(OmUtil.tmpl("#chat-accept-template").data("msgid",b.id).data("roomid",b.scope.substring(9)).find(".tick").addClass(y)); c.length||(R(b.scope,b.scopeName),c=$("#"+b.scope));"accept"===a.mode&&$("#chat-msg-id-"+b.id).remove();h=3>c[0].scrollHeight-(c.scrollTop()+c.innerHeight());c.data("lastDate")!==b.date&&(c.append(OmUtil.tmpl("#chat-date-template").html(b.date)),c.data("lastDate",b.date));c.append(d);d.find(".msg").addClass(L).html(v.emoticonize(b.message?b.message:""));h&&H(c)}e&&(g.addClass("ui-state-highlight"),f.is(":visible")&&!u&&(a=M.play(),void 0!==a&&a.then(function(){}).catch(function(){})));v.animate()}}, open:K,setOpened:function(){K(function(){S()})},close:V,toggle:function(){t()?K():V()},setRoomMode:function(a){m=a;D({userId:E,all:F,room:G,sendOnEnter:"enter"===z})},setHeight:function(a){C()&&(w.height(a),t()?g.height(a):U())},clean:function(){h.html("").trigger("change")},validate:function(){return!!h&&0<h.text().trim().length}}}(); $(function(){Wicket.Event.subscribe("/websocket/message",function(q,n){try{if(!(n instanceof Blob)){var c=jQuery.parseJSON(n);if(c)switch(c.type){case "chat":"clean"===c.action?$("#"+c.scope).html(""):Chat.addMessage(c);break;case "typing":"function"===typeof typingActivity&&typingActivity(c.uid,c.active)}}}catch(r){}})});