var DCom=window.DCom||{}; !function(d,l,m,w){DCom.LiveContent=XF.Element.newHandler({options:{domen:null,socketRight:!1,socketEnable:!1,convId:null,userId:null,typingDalay:1500,connection:"native",path:"/socket.io",port:2020,alertSound:"sound",alertExtra:null,ajaxPagination:!1,replySticky:!1},TYPING_TIMER_LENGTH:1500,typing:!1,lastTypingTime:null,socket:null,dataMessageDetail:null,init:function(){switch(this.options.connection){case "native":this.socket=io((this.options.domen?this.options.domen:"https://"+m.domain)+":"+this.options.port, {});break;case "proxy":this.socket=io(this.options.domen?this.options.domen:"https://"+m.domain,{path:this.options.path})}this.TYPING_TIMER_LENGTH=this.options.typingDalay;this.$page=d(".p-body-pageContent");this.$form=XF.findRelativeIf("< .p-body-pageContent | .js-quickReply",this.$target);this.$page.on("ajax-submit:response","form.js-quickReply",XF.proxy(this,"afterSubmit"));this.$page.on("ajax-submit:response","form:not(.js-quickReply)[action$=edit]",XF.proxy(this,"afterSubmitEdit"));this.$page.on("dcom-lc-loadReaction", "a.reaction",XF.proxy(this,"reaction"));this.socket.on("connect",XF.proxy(this,"connect"));if(this.options.socketRight){this.socket.on("new message",XF.proxy(this,"addConvMessage"));this.socket.on("typing",XF.proxy(this,"addTyping"));this.socket.on("stop typing",XF.proxy(this,"removeTyping"));this.socket.on("load online",XF.proxy(this,"loadOnline"));this.socket.on("load offline",XF.proxy(this,"loadOffline"));this.socket.on("is alert",XF.proxy(this,"isAlert"));var a=this.options.userId;d(".p-body-sidebar, .block--messages").find("a.avatar").not(function(b, c){d(c).attr("data-user-id")==a&&d(c).addClass("dcom-lc-avaOnline");return d(c).attr("data-user-id")==a}).addClass("dcom-lc-avaOffline");this.$page.on({mouseover:function(){d(this).find(".message-actionBar").css("visibility","visible")},mouseout:function(){d(this).find(".message-actionBar").css("visibility","hidden")}},"article.ctaConversationMessageSelf, article.ctaConversationMessageOther");if(this.options.ajaxPagination)this.$page.on("click",".pageNavWrapper a[href]",XF.proxy(this,"load"))}d(m).on("visibilitychange", XF.proxy(this,"windowChange"));this.$page.on("input","form.js-quickReply",XF.proxy(this,"updateTyping"))},extLoadPage:function(){this.socket.emit("reload page")},isAlert:function(a){a.userId===this.options.userId&&(a=this.$page.find('span[id$="'+a.messageId+'"]').parent().find(".message-footer"),a.length&&this.socket.emit("alert visible",XF.isElementVisible(a)))},reaction:function(a){a=a.currentTarget.href.match(/(messages\/|posts\/)(\d+)/i);var b={},c=this.options.convId.match(/\w+/i);b.messageId= a[2];b.convId=this.options.convId;b.contentId=this.options.convId.match(/\d+/i);b.contentType=c[0];b.event="reaction";this.socket.emit("new message",b)},windowChange:function(){var a={},b=this.options.convId.match(/\w+/i);a.userId=this.options.userId;a.convId=this.options.convId;a.contentId=this.options.convId.match(/\d+/i);a.contentType=b[0];m.hidden?this.socket.emit("window close",a):this.socket.emit("window open",a)},loadOffline:function(a){d(".p-body-sidebar, .block--messages").find("a.avatar").filter(function(b, c){return d(this).attr("data-user-id")==a.userId}).removeClass("dcom-lc-avaOnline").addClass("dcom-lc-avaOffline")},loadOnline:function(a){a.loadPage&&this.$page.find(".block--messages a.avatar").addClass("dcom-lc-avaOffline");var b=this.options.userId;a.onlineUsers?d(".p-body-sidebar, .block--messages").find("a.avatar").each(function(c,e){d(e).attr("data-user-id")==b&&d(e).removeClass("dcom-lc-avaOffline").addClass("dcom-lc-avaOnline");d.each(a.onlineUsers,function(g,f){if(d(e).attr("data-user-id")== f)return d(e).removeClass("dcom-lc-avaOffline").addClass("dcom-lc-avaOnline"),!1})}):d(".p-body-sidebar, .block--messages").find("a.avatar").each(function(c,e){d(e).attr("data-user-id")==b&&d(e).removeClass("dcom-lc-avaOffline").addClass("dcom-lc-avaOnline")})},load:function(a){a.preventDefault();var b=this;XF.ajax("get",a.currentTarget.href,{},XF.proxy(this,"loaded"),{global:!1,skipDefault:!0}).always(function(){b.loading=!1;history.pushState(null,null,a.currentTarget.href)})},loaded:function(a){var b= d('.menu--pageJump[data-menu][aria-hidden="false"]').first(),c=d(".block.block--messages").last(),e=d("form.js-quickReply"),g=this;b.length&&b.trigger("menu:close");XF.setupHtmlInsert(a.html,function(f,h,k){k(!0);h=f.filter("form.js-quickReply");f=f.filter(".block.block--messages").last();c.replaceWith(f);g.$block=f;e.replaceWith(h);XF.activate(f.children());XF.activate(h);g.socket.emit("reload page");f=f.dimensions();h=d(l).scrollTop();k=h+d(l).height();(f.topk)&&XF.smoothScroll(Math.max(0, f.top-110),!1,200)});this.options.replySticky&&(this.$form.find(".editorPlaceholder-editor").addClass("is-hidden"),this.$form.find(".editorPlaceholder-placeholder").removeClass("is-hidden"))},getMessagesContainer:function(){return d(".js-replyNewMessageContainer").first()},afterSubmit:function(a,b){if(!b.errors&&!b.exception){var c={};messageId=d(b.html.content).last().html().match(/(convMessage-|post-)(\d+)/i);contentType=this.options.convId.match(/\w+/i);self=this;c.messageId=messageId[2];c.convId= this.options.convId;c.contentId=this.options.convId.match(/\d+/i);c.contentType=contentType[0];c.event=b.postMerge?"edit":"new";this.socket.emit("new message",c);this.options.replySticky&&(this.$page.find("form .editorPlaceholder-editor").addClass("is-hidden"),this.$page.find("form .editorPlaceholder-placeholder").removeClass("is-hidden"))}},afterSubmitEdit:function(a,b){if(!b.errors&&!b.exception){var c={};messageId=d(b.html.content).last().html().match(/(convMessage-|post-)(\d+)/i);contentType= this.options.convId.match(/\w+/i);c.messageId=messageId[2];c.convId=this.options.convId;c.contentId=this.options.convId.match(/\d+/i);c.contentType=contentType[0];c.event="edit";c.threadChanges=b.threadChanges;this.socket.emit("new message",c)}},connect:function(){var a={},b=this.options.convId.match(/\w+/i);a.userId=this.options.userId;a.convId=this.options.convId;a.contentId=this.options.convId.match(/\d+/i);a.contentType=b[0];this.socket.emit("add user",a)},alertSound:function(){if("true"!==XF.Cookie.get("dcom_lc_disable_sound"))switch(this.options.alertSound){case "sound":this.$audio= new Audio(XF.canonicalizeUrl(this.options.alertExtra));var a=this.$audio.play();void 0!==a&&a.then(function(b){})["catch"](function(b){});break;case "voice":speechSynthesis.speak(new SpeechSynthesisUtterance(this.options.alertExtra));break;case "custom_sound":this.$audio=new Audio(XF.canonicalizeUrl(this.options.alertExtra)),a=this.$audio.play(),void 0!==a&&a.then(function(b){})["catch"](function(b){})}},addConvMessage:function(a){this.dataMessageDetail=a;switch(a.event){case "new":XF.ajax("GET", a.load_url,{},XF.proxy(this,"loadNewMessage"),{global:!1,skipDefault:!0});this.alertSound();break;case "edit":XF.ajax("GET",a.load_url,{},XF.proxy(this,"loadEditMessage"),{global:!1,skipDefault:!0});break;case "reaction":XF.ajax("GET",a.load_url,{},XF.proxy(this,"loadReactionMessage"),{global:!1,skipDefault:!0})}},loadReactionMessage:function(a){var b=this.dataMessageDetail,c=this.$page;a.errors||a.exception||XF.setupHtmlInsert(a.html,function(e,g,f){g='span[id$="'+b.messageId+'"]';var h=c.find(g).parent().find(".message-footer"); if(h.length){var k=e.find(g).parent().find(".message-footer");h.xfFadeUp(null,function(){k.hide();h.replaceWith(k);XF.activate(k);k.xfFadeDown()})}})},loadEditMessage:function(a){var b=this.dataMessageDetail,c=this.$page,e=this;a.errors||a.exception||XF.setupHtmlInsert(a.html,function(g,f,h){f='span[id$="'+b.messageId+'"]';var k=c.find(f).parent().find(".js-quickEditTarget");if(k.length){var n=g.find(f).parent().find(".js-quickEditTarget");k.xfFadeUp(null,function(){n.hide();k.replaceWith(n);XF.activate(n); n.xfFadeDown()});var p=Object.assign(a,{threadChanges:b.threadChanges});XF.setupHtmlInsert(p.html,function(u,q,r){r=p.threadChanges||{};r.title&&(d("h1.p-title-value").html(q.h1),d("title").html(q.title),XF.config.visitorCounts.title_count&&p.visitor&&(XF.pageTitleCache=q.title,XF.pageTitleCounterUpdate(p.visitor.total_unread)));if(r.customFields){var v=u.closest(".js-threadStatusField"),t=XF.findRelativeIf("< .block--messages | .js-threadStatusField",e.$target);v.length&&t.length&&t.xfFadeUp(XF.config.speed.fast, function(){t.replaceWith(v).xfFadeDown(XF.config.speed.fast)})}else u.find(".js-threadStatusField").remove()})}})},loadNewMessage:function(a){var b=location.href.match(/(page-)(\d+)/i),c=d(".pageNav-page").last();c.length?(c=c.find("a").text(),!b||b[2]!=c||a.errors||a.exception||(this.insertMessages(a.html),a.lastDate&&d('.js-quickReply input[name="last_date"]').val(a.lastDate),this.socket.emit("load message"))):a.errors||a.exception||(this.insertMessages(a.html),a.lastDate&&d('.js-quickReply input[name="last_date"]').val(a.lastDate), this.socket.emit("load message"))},insertMessages:function(a){XF.Message.insertMessages(a,this.getMessagesContainer(),!0)},updateTyping:function(){var a=this,b={};b.userId=this.options.userId;b.convId=this.options.convId;this.typing||(this.typing=!0,this.socket.emit("typing",b));this.lastTypingTime=(new Date).getTime();setTimeout(function(){(new Date).getTime()-a.lastTypingTime>=a.TYPING_TIMER_LENGTH&&a.typing&&(a.socket.emit("stop typing",b),a.typing=!1)},this.TYPING_TIMER_LENGTH)},addTyping:function(a){XF.ajax("GET", a.load_url,{},XF.proxy(this,"renderTyping"),{global:!1,skipDefault:!0})},renderTyping:function(a){if(!a.errors&&!a.exception&&this.options.socketEnable){var b=d(".message--typing"),c=a.html;$item=b.find(".message-avatar-wrapper");this.options.replySticky&&c.css("bottom",this.$form.height());if(b.length){b.stop().xfFadeDown();c=b.find(".message-avatar");var e=d(a.message).find(".message-avatar-wrapper");$item.is(function(g,f){return d(this).data("avaid")===a.userId})||(6>b.length?$item.last().css({"margin-right":"-15px"}): $item.first().remove(),e.appendTo(c))}else XF.Message.insertMessages(c,d(".block-container.lbContainer").first(),!0)}},removeTyping:function(a){if(this.options.socketEnable){var b=d(".message--typing"),c=b.find(".message-avatar-wrapper");1a&&(a=1);var b=this.options.pageUrl,c=this.options.sentinel,e=b.replace(c,a);e==b&&(e=b.replace(encodeURIComponent(c),a));e=XF.canonicalizeUrl(e);XF.ajax("GET",e,{},XF.proxy(this,"loaded")).always(function(){self.loading= !1;history.pushState(null,null,e)})}else a=parseInt(this.$input.val(),10),1>a&&(a=1),b=this.options.pageUrl,c=this.options.sentinel,e=b.replace(c,a),e==b&&(e=b.replace(encodeURIComponent(c),a)),XF.redirect(e)},loaded:function(a){var b=d(".live-content"),c=XF.Element.getHandler(b,"live-content"),e=d(".block.block--messages").last(),g=d("form.js-quickReply");b=d('.menu--pageJump[data-menu][aria-hidden="false"]').first();b.length&&b.trigger("menu:close");XF.setupHtmlInsert(a.html,function(f,h,k){k(!0); h=f.filter("form.js-quickReply");f=f.filter(".block.block--messages").last();e.replaceWith(f);g.replaceWith(h);XF.activate(f.children());XF.activate(h);c.socket.emit("reload page");f=f.dimensions();h=d(l).scrollTop();k=h+d(l).height();(f.topk)&&XF.smoothScroll(Math.max(0,f.top-110),!1,200)});c.options.replySticky&&(c.$form.find(".editorPlaceholder-editor").addClass("is-hidden"),c.$form.find(".editorPlaceholder-placeholder").removeClass("is-hidden"))}});XF.Element.register("live-content", "DCom.LiveContent")}(jQuery,window,document);