EVOLUTION-MANAGER
Edit File: chat.min.js
var CSSEmoticon=function(){function p(b){var h=b.text.replace(q,"\\$1");b.regexp=new RegExp("(^|[\\s\\0])("+h+")","g");return b}function g(h){for(var e=0;e<h.length;++e){var d=h[e],d="object"===typeof d?JSON.parse(JSON.stringify(d)):{text:d,cssClass:" "};b.emoticons.push(d.text);b.matchers.push(p(d));-1<d.text.indexOf("\x3d")&&(d=JSON.parse(JSON.stringify(d)),d.text=d.text.replace(/=/g,"\x26#61;").replace(/[+]/g,"\x26#43;"),b.matchers.push(p(d)));-1<d.text.indexOf("'")&&(d=JSON.parse(JSON.stringify(d)), d.text=d.text.replace(/'/g,"\x26#39;"),b.matchers.push(p(d)))}}var b={emoticons:[],matchers:[],defaults:{animate:!0,delay:500,exclude:"pre,code,.no-emoticons"},emoticonize:function(b,e){var d="css-emoticon";$.extend({},this.defaults,e).animate&&(d+=" un-transformed-emoticon animated-emoticon");for(e=0;e<this.matchers.length;++e){var h=this.matchers[e];b=b.replace(h.regexp,"$1\x3cspan class\x3d'"+(d+" "+h.cssClass)+"'\x3e$2\x3c/span\x3e")}return b},animate:function(b){b=$.extend({},this.defaults,b); b.animate&&setTimeout(function(){$(".un-transformed-emoticon").removeClass("un-transformed-emoticon")},b.delay)}},q=/(\)|\(|\*|\[|\]|\{|\}|\||\^|\<|\>|\\|\?|\+|\=|\.)/g;g(":-) :o) :c) :^) :-D :-( :-9 ;-) :-P :-p :-Þ :-b :-O :-/ :-X :-# :'( B-) 8-) ;*( :-* :-\\ ?-)".split(" "));g(":) :] \x3d] \x3d) 8) :} :D :( :[ :{ \x3d( ;) ;] ;D :P :p \x3dP \x3dp :b :Þ :O :/ \x3d/ :S :# :X B) :| :\\ \x3d\\ :* :\x26gt; :\x26lt;".split(" "));g([{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 b},Chat=function(){function p(a,c){c=(""+c).endsWith("px")?c:c+"px";m?"object"==typeof Room&&"function"===typeof Room.setCssVar&&Room.setCssVar(a,c):OmUtil.setCssVar(a,c)}function g(a){p("--chat-width",a)}function b(a){p("--chat-height",a)}function q(){var a=Settings.load();"undefined"===typeof a.chat&&(a.chat={muted:!1,sendOn:I});r=!0===a.chat.muted;w="enter"===a.chat.sendOn?"enter":"ctrl";return a}function h(a){a.removeClass("sound"+ (r?"":"-mute")).addClass("sound"+(r?"-mute":"")).attr("title",a.data(r?"sound-enabled":"sound-muted"))}function e(a){var c="ctrl"===w;c?(a.addClass("send-ctrl"),n.off("keydown",d).keydown("Ctrl+return",d)):(a.removeClass("send-ctrl"),n.off("keydown",d).keydown("return",d));a.attr("title",a.data(c?"send-ctrl":"send-enter"))}function d(){$("#chat .send").trigger("click")}function Q(){y=null;chatActivity("typing_stop",$(".room-block .room-container").data("room-id"))}function R(){J($(this).data("emt"))} function S(){var a=t.emoticons,c=$("#emotMenuList");c.html("");for(var k,b=0;b<a.length;++b)0===b%20&&(k=$("\x3ctr\x3e\x3c/tr\x3e"),c.append(k)),k.append($("\x3ctd\x3e").append($("\x3cdiv\x3e").addClass("emt").html(t.emoticonize(a[b])).data("emt",a[b]).click(R)));a=$("#emoticons");a.html("");a.append(" "+t.emoticonize(":)"));var d=$("#chat .audio"),f=$("#chat .send-btn");q();h(d);e(f);d.off().click(function(){var a=q();r=a.chat.muted=!a.chat.muted;h(d);Settings.save(a)});f.off().click(function(){var a= q();w=a.chat.sendOn="ctrl"!==a.chat.sendOn?"ctrl":"enter";e(f);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 c=window.getSelection();c.rangeCount&&(c=c.getRangeAt(0),0<$(c.startContainer).parents(".wysiwyg-editor").length? (c.deleteContents(),c.insertNode(a)):J(a))}});t.animate()}function x(){return f.hasClass("closed")}function T(a){x()?u.find(".nav.nav-tabs .nav-link").each(function(){var c=$(this),k=c.attr("aria-controls"),b=$("#"+k);k===a?(c.addClass("active"),b.addClass("active"),c.attr("aria-selected",!0)):(c.removeClass("active"),b.removeClass("active"),c.attr("aria-selected",!1))}):$('#chatTabs li a[aria-controls\x3d"'+a+'"]').tab("show");$("#activeChatTab").val(a).trigger("change")}function B(a){C=a.userId; D=a.all;E=a.room;w=I=!0===a.sendOnEnter?"enter":"ctrl";f=$("#chatPanel");clearTimeout(f.data("timeout"));$("#chatPanel, #chatPopup");l=$("#chatPopup .control.block");n=$("#chatMessage .wysiwyg-editor");S();u=$("#chatTabs");u.off().on("shown.bs.tab",function(a){a=$(a.target).attr("aria-controls");F($("#"+a));$("#activeChatTab").val(a).trigger("change")});u.delegate(".btn.close-chat","click",function(){var a=$(this).closest("a").attr("aria-controls");K(a);$("#chatTabs li:last-child a").tab("show")}); m?L():(l.attr("title",""),f.removeClass("room opened").addClass("closed").off("mouseenter mouseleave").resizable({handles:"n, "+(Settings.isRtl?"e":"w"),disabled:x(),minHeight:195,minWidth:260,stop:function(a,k){f.css({top:"",left:""});z=k.size.height+"px";b(z);g(k.size.width)}}),b(20));l.off().click(Chat.toggle);$("#chatMessage").off().on("input propertychange paste",function(){var a=$(".room-block .room-container");a.length&&(y?clearTimeout(y):chatActivity("typing_start",a.data("room-id")),y=setTimeout(Q, 5E3))});$("#chat .chat-toolbar .link-field").off().on("keypress",function(){13===event.keyCode&&$(this).parent().find("button").trigger("click");return 13!==event.keyCode});G=!0}function K(a){$('#chatTabs li a[aria-controls\x3d"'+a+'"]').parent().remove();$("#"+a).remove()}function M(a,c){G||B({});if(!(1>$("#chat").length||$("#"+a).length)){c||(c="chatTab-all"===a?D:E+a.substr(9));c=$('\x3ca class\x3d"nav-link" data-toggle\x3d"tab" role\x3d"tab"\x3e').attr("aria-controls",a).attr("href","#"+a).text(c); var b=$('\x3cli class\x3d"nav-item"\x3e').append(c);0===a.indexOf("chatTab-u")&&c.append(OmUtil.tmpl("#chat-close-block"));u.find(".nav.nav-tabs").append(b);c=OmUtil.tmpl("#chat-msg-area-template",a);u.find(".tab-content").append(c);c.append($('\x3cdiv class\x3d"clear icons actions align-left"\x3e').addClass("short").append(OmUtil.tmpl("#chat-actions-short-template")));c.append($('\x3cdiv class\x3d"clear icons actions align-left"\x3e').addClass("short-mod").append(OmUtil.tmpl("#chat-actions-short-template")).append(OmUtil.tmpl("#chat-actions-accept-template"))); c.append($('\x3cdiv class\x3d"clear icons actions align-left"\x3e').addClass("full").append(OmUtil.tmpl("#chat-actions-short-template")).append(OmUtil.tmpl("#chat-actions-others-template").children().clone()));c.append($('\x3cdiv class\x3d"clear icons actions align-left"\x3e').addClass("full-mod").append(OmUtil.tmpl("#chat-actions-short-template")).append(OmUtil.tmpl("#chat-actions-others-template").children().clone()).append(OmUtil.tmpl("#chat-actions-accept-template")));c=v();c.find(".user").off().click(function(){var a= $(this).parent();showUserInfo(a.data("userId"))});c.find(".add").off().click(function(){var a=$(this).parent();addContact(a.data("userId"))});c.find(".new-email").off().click(function(){var a=$(this).parent();privateMessage(a.data("userId"))});c.find(".invite").off().click(function(){var a=$(this).parent();inviteUser(a.data("userId"))});c.find(".accept").off().click(function(){var a=$(this).parent(),c=a.data("msgId");chatActivity("accept",a.data("roomId"),c);v();$("#chat-msg-id-"+c).remove()});T(a)}} function v(){return $("#chat .tab-content .messageArea .icons").hide()}function N(){g(A);f.resizable({handles:Settings.isRtl?"e":"w",minWidth:120,stop:function(a,c){f.css({left:"",width:"",height:""});A=c.size.width+"px";g(A)}})}function L(){void 0!==f.resizable("instance")&&f.resizable("destroy")}function H(a){if(x()){l.removeClass("bg-warning");if(m)var c={width:A};else c={height:z},f.resizable("option","disabled",!1);f.removeClass("closed").animate(c,1E3,function(){v();f.removeClass("closed"); f.css({height:"",width:""});"function"===typeof a&&a();l.attr("title",l.data("ttl-undock"));m?N():b(z);U()})}}function O(a){if(!x()){if(m)var c={width:"20px"};else c={height:"20px"},f.resizable("option","disabled",!0);f.animate(c,1E3,function(){f.addClass("closed").css({height:"",width:""});m?(g("20px"),L()):b("20px");"function"===typeof a&&a();l.attr("title",l.data("ttl-dock"))})}}function J(a){n.html(n.html()+" "+a+" ").trigger("change")}function F(a){a.animate({scrollTop:a[0].scrollHeight},300)} function U(){$("#chat .messageArea").each(function(){F($(this))})}var t=new CSSEmoticon,f,l,u,z="345px",A="300px",D="All",E="Room ",y,m=!1,n=$("#chatMessage .wysiwyg-editor"),r=!1,w,I,C,G=!1;try{var P=new Audio("./public/chat_message.mp3")}catch(a){P={play:function(){}}}return{reinit:B,removeTab:K,addTab:M,addMessage:function(a){if(0<$("#chat").length&&a&&"chat"===a.type){for(var c,b,d=!1;b=a.msg.pop();){var e=$("#"+b.scope);b.from.id!==C&&(d=!0);var g=("full"===b.actions?"full":"short")+(b.needModeration? "-mod":"");c=OmUtil.tmpl("#chat-msg-template","chat-msg-id-"+b.id);g=c.find(".user-row").data("userId",b.from.id).data("actions",g).mouseenter(function(){v();var a=$(this);a.closest(".messageArea").find(".actions."+a.data("actions")).data("userId",$(this).data("userId")).data("roomId",$(this).data("roomId")).data("msgId",$(this).data("msgId")).css("top",$(this).closest(".msg-row")[0].offsetTop+20+"px").show()});b.needModeration&&(g.parent().addClass("need-moderation"),g.data("roomId",b.scope.substring(9)).data("msgId", b.id));e.mouseleave(function(){v()});c.find(".from").data("user-id",b.from.id).html(b.from.name||b.from.displayName);c.find(".time").html(b.time).attr("title",b.sent);e.length||(M(b.scope,b.scopeName),e=$("#"+b.scope));"accept"===a.mode&&$("#chat-msg-id-"+b.id).remove();g=3>e[0].scrollHeight-(e.scrollTop()+e.innerHeight());e.data("lastDate")!==b.date&&(e.append(OmUtil.tmpl("#chat-date-template").html(b.date).mouseenter(function(){v()})),e.data("lastDate",b.date));e.append(c);c.find(".user-row")[0].style.backgroundImage= "url("+(b.from.img?b.from.img:"./profile/"+b.from.id+"?anticache\x3d"+Date.now())+")";c.find(".msg").html(t.emoticonize(b.message?b.message:""));g&&F(e)}d&&(l.addClass("bg-warning"),f.is(":visible")&&!r&&P.play().then(function(){}).catch(function(){}));t.animate()}},open:H,setOpened:function(){H(function(){N()})},close:O,toggle:function(){x()?H():O()},setRoomMode:function(a){m=a;G&&!m&&($('li[aria-controls^\x3d"chatTab-u"]').remove(),$('div[id^\x3d"chatTab-u"]').remove());B({userId:C,all:D,room:E, sendOnEnter:"enter"===w})},clean:function(){n.html("").trigger("change")},validate:function(){return!!n&&0<n.text().trim().length}}}();$(function(){Wicket.Event.subscribe("/websocket/message",function(p,g){try{if(!(g instanceof Blob)){var b=JSON.parse(g);if(b)switch(b.type){case "chat":"clean"===b.action?$("#"+b.scope).html(""):Chat.addMessage(b);break;case "typing":"function"===typeof typingActivity&&typingActivity(b.uid,b.active)}}}catch(q){}})});