13 lines
9.5 KiB
JavaScript
13 lines
9.5 KiB
JavaScript
/**
|
|
*
|
|
* @package mChat JavaScript Code mini
|
|
* @version 1.5.0 of 2015-12-27
|
|
* @copyright (c) 2009 By Shapoval Andrey Vladimirovich (AllCity) ~ http://allcity.net.ru/
|
|
* @copyright (c) 2013 By Rich McGirr (RMcGirr83) http://rmcgirr83.org
|
|
* @copyright (c) 2015 By dmzx - http://www.dmzx-web.net
|
|
* @copyright (c) 2015 By kasimi
|
|
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
|
*
|
|
*/
|
|
String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.indexOf(e,t)===t}),String.prototype.capitalize||(String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.slice(1)}),"undefined"==typeof document.hasFocus&&(document.hasFocus=function(){return"visible"==document.visibilityState}),jQuery(function(e){var t={url:mChat.file,timeout:1e4,type:"POST",error:function(e,t,a){400==e.status?alert(mChat.flood):403==e.status?alert(mChat.noAccess):501==e.status?alert(mChat.noMessageInput):"undefined"!=typeof console&&console.log&&console.log("AJAX error. status: "+t+", message: "+a)}},a=function(e){return new Date(1e3*e).toUTCString().match(/(\d\d:\d\d:\d\d)/)[0]};e.extend(mChat,{clear:function(){""!==mChat.$$("input").val()&&(confirm(mChat.clearConfirm)&&(mChat.resetSession(),mChat.$$("input").val("")),mChat.$$("input").focus())},sound:function(e){Cookies.get("mChatNoSound")||(e=mChat.extUrl+"sounds/"+e+".swf",navigator.userAgent.match(/MSIE ([0-9]+)\./)||navigator.userAgent.match(/Trident\/7.0; rv 11.0/)?mChat.$$("sound").html('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" height="0" width="0" type="application/x-shockwave-flash"><param name="movie" value="'+e+'"></object>'):mChat.$$("sound").html('<embed src="'+e+'" width="0" height="0" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>'))},notice:function(){document.hasFocus()||e.titleAlert(mChat.newMessageAlert,{interval:1e3})},toggle:function(e){var t=mChat.$$(e);t.stop().slideToggle(function(){var a="mChatShow"+e.capitalize();t.is(":visible")?Cookies.set(a,"yes"):Cookies.remove(a)})},add:function(){if(!mChat.submitting&&""!==mChat.$$("input").val()){var a=mChat.$$("input").val().replace(/ /g,"");if(mChat.mssgLngth&&a.length>mChat.mssgLngth)return void alert(mChat.mssgLngthLong);var s=e("#"+form_name+" :input[name]").filter(function(e,t){return!t.name.startsWith("addbbcode")});e.ajax(e.extend({},t,{data:s.serialize(),beforeSend:function(){mChat.$$("add").attr("disabled","disabled"),mChat.pauseSession()},success:function(e){e.add&&(mChat.$$("input").val(""),mChat.refresh())},complete:function(){mChat.resetSession(),mChat.$$("input").focus(),mChat.$$("add").removeAttr("disabled")}}))}},edit:function(){var a=e(this).closest(".mchat-message"),s=mChat.$$("confirm").find("textarea").show().val(a.data("edit"));mChat.$$("confirm").find("p").text(mChat.editInfo),phpbb.confirm(mChat.$$("confirm"),function(){e.ajax(e.extend({},t,{data:{mode:"edit",message_id:a.data("id"),message:s.val()},success:function(t){a.fadeOut("slow",function(){a.replaceWith(e(t.edit).hide().fadeIn("slow"))})},complete:function(){s.val(""),mChat.resetSession(),mChat.archiveMode||mChat.messageTop||setTimeout(function(){mChat.$$("main").animate({scrollTop:mChat.$$("main")[0].scrollHeight},"slow","swing")},250)}}))})},del:function(){var a=e(this).closest(".mchat-message");mChat.$$("confirm").find("textarea").hide(),mChat.$$("confirm").find("p").text(mChat.delConfirm),phpbb.confirm(mChat.$$("confirm"),function(){e.ajax(e.extend({},t,{data:{mode:"del",message_id:a.data("id")},success:function(e){e.del&&(mChat.sound("del"),a.fadeOut("slow",function(){a.remove()}))},complete:mChat.resetSession}))})},refresh:function(){var a=mChat.messageTop?":first":":last",s=mChat.$$("messages").children(a).data("id");e.ajax(e.extend({},t,{data:{mode:"refresh",message_last_id:s},beforeSend:function(){mChat.$$("refresh-ok","refresh-error","refresh-paused").hide(),mChat.$$("refresh-load").show()},success:function(t){var a=e(t.refresh);a.length&&(mChat.$$("no-messages").remove(),mChat.$$("messages")[mChat.messageTop?"prepend":"append"](a.hide()),a.css("opacity",0).slideDown("slow").animate({opacity:1},{queue:!1,duration:"slow"}),mChat.$$("main").animate({scrollTop:mChat.messageTop?0:mChat.$$("main")[0].scrollHeight},"slow"),mChat.sound("add"),mChat.notice()),setTimeout(function(){mChat.$$("refresh-load","refresh-error","refresh-paused").hide(),mChat.$$("refresh-ok").show(),mChat.$$("refresh-text").html(mChat.refreshYes)},250)},error:function(){mChat.$$("refresh-load","refresh-ok","refresh-paused").hide(),mChat.$$("refresh-error").show(),mChat.sound("error")}}))},whois:function(){e.ajax(e.extend({},t,{data:{mode:"whois"},beforeSend:function(){mChat.customPage&&(mChat.$$("refresh-pending").show(),mChat.$$("refresh").hide())},success:function(t){var a=e(t.whois),s=a.find("#mchat-userlist");Cookies.get("mChatShowUserlist")&&s.show(),mChat.$$("whois").replaceWith(a),mChat.cache.whois=a,mChat.cache.userlist=s,mChat.customPage&&setTimeout(function(){mChat.$$("refresh-pending").hide(),mChat.$$("refresh").show()},250)},error:function(){mChat.sound("error")}}))},countDown:function(){mChat.sessionTime-=1;var e=a(mChat.sessionTime);mChat.$$("session").html(mChat.sessEnds+" "+e),mChat.sessionTime<=0&&mChat.endSession()},pauseSession:function(){mChat.submitting=!0,clearInterval(mChat.refreshInterval),mChat.userTimeout&&clearInterval(mChat.sessionCountdown),mChat.whoisRefresh&&clearInterval(mChat.whoisInterval)},resetSession:function(){clearInterval(mChat.refreshInterval),mChat.refreshInterval=setInterval(mChat.refresh,mChat.refreshTime),mChat.userTimeout&&(mChat.sessionTime=mChat.userTimeout/1e3,clearInterval(mChat.sessionCountdown),mChat.sessionCountdown=setInterval(mChat.countDown,1e3),mChat.$$("session").html(mChat.sessEnds+" "+a(mChat.sessionTime))),mChat.whoisRefresh&&(clearInterval(mChat.whoisInterval),mChat.whoisInterval=setInterval(mChat.whois,mChat.whoisRefresh)),mChat.pause&&mChat.$$("input").one("keypress",mChat.endSession),mChat.$$("refresh-ok").show(),mChat.$$("refresh-load","refresh-error","refresh-paused").hide(),mChat.$$("refresh-text").html(mChat.refreshYes),mChat.submitting=!1},endSession:function(){clearInterval(mChat.refreshInterval),mChat.userTimeout&&(clearInterval(mChat.sessionCountdown),mChat.$$("session").html(mChat.sessOut)),mChat.whoisRefresh&&clearInterval(mChat.whoisInterval),mChat.$$("refresh-load","refresh-ok","refresh-error").hide(),mChat.$$("refresh-paused").show(),mChat.$$("refresh-text").html(mChat.refreshNo),mChat.whois()},mention:function(){var t=e(this).closest(".mchat-message"),a=mChat.entityDecode(t.data("username")),s=t.data("usercolor");s?a="[b][color="+s+"]"+a+"[/color][/b]":mChat.allowBBCodes&&(a="[b]"+a+"[/b]"),insert_text("@ "+a+", ")},quote:function(){var t=e(this).closest(".mchat-message"),a=mChat.entityDecode(t.data("username")),s=mChat.entityDecode(t.data("edit"));insert_text('[quote="'+a+'"] '+s+"[/quote]")},like:function(){var t=e(this).closest(".mchat-message"),a=mChat.entityDecode(t.data("username")),s=mChat.entityDecode(t.data("edit"));insert_text(mChat.likes+'[quote="'+a+'"] '+s+"[/quote]")},entityDecode:function(e){var t=decodeURIComponent(e.toString().replace(/\+/g," "));return t=t.replace(/</g,"<"),t=t.replace(/>/g,">"),t=t.replace(/:/g,":"),t=t.replace(/./g,"."),t=t.replace(/&/g,"&"),t=t.replace(/"/g,"'")},$$:function(){return e(e.map(arguments,function(t){return mChat.cache[t]||(mChat.cache[t]=e("#mchat-"+t)),mChat.cache[t]})).map(function(){return this.toArray()})}}),mChat.cache={},mChat.$$("confirm").detach().show(),mChat.archiveMode||(e.fn.autoGrowInput=function(){return this.filter("input:text").each(function(){var t=20,a=e(this).width(),s="",o=e(this),h=e("<div>").css({position:"absolute",top:-9999,left:-9999,width:"auto",fontSize:o.css("fontSize"),fontFamily:o.css("fontFamily"),fontWeight:o.css("fontWeight"),letterSpacing:o.css("letterSpacing"),whiteSpace:"nowrap"});h.insertAfter(o),e(this).on("keypress blur change submit focus",function(){if(s!==(s=o.val())){var n=s.replace(/&/g,"&").replace(/\s/g," ").replace(/</g,"<").replace(/>/g,">"),r=h.html(n).width(),i=r+t>=a?r+t:a;(i<o.width()&&i>=a||i>a&&i<e(".mchat-panel").width()-t)&&o.width(i)}})}),this},mChat.resetSession(),mChat.messageTop||mChat.$$("main").animate({scrollTop:mChat.$$("main")[0].scrollHeight},"slow","swing"),mChat.playSound&&Cookies.get("mChatNoSound")?mChat.$$("user-sound").removeAttr("checked"):(mChat.$$("user-sound").attr("checked","checked"),Cookies.remove("mChatNoSound")),Cookies.get("mChatShowSmilies")&&mChat.$$("smilies").slideToggle("slow"),Cookies.get("mChatShowBbcodes")&&mChat.$$("bbcodes").slideToggle("slow",function(){Cookies.get("mChatShowColour")&&mChat.$$("colour").slideToggle("slow")}),Cookies.get("mChatShowUserlist")&&mChat.$$("userlist").slideToggle("slow"),mChat.$$("colour").html(phpbb.colorPalette("h",15,10)).on("click","a",function(t){var a=e(this).data("color");bbfontstyle("[color=#"+a+"]","[/color]"),t.preventDefault()}),mChat.$$("user-sound").change(function(){this.checked?Cookies.remove("mChatNoSound"):Cookies.set("mChatNoSound","yes")}),e("#postform").on("keypress",function(e){13==e.which&&(mChat.add(),e.preventDefault())}),mChat.$$("input").autoGrowInput()),e("#page-body").on("click","[data-mchat-action]",function(t){var a=e(this).data("mchat-action");mChat[a].call(this),t.preventDefault()}).on("click","[data-mchat-toggle]",function(t){var a=e(this).data("mchat-toggle");mChat.toggle(a),t.preventDefault()})});
|