User:Freesmart/chat.js

/* MessageBlocker v1.1 * Documentation at: http://dev.wikia.com/wiki/MessageBlocker * Justin Stallings (User:Dzylon), 2012 */ if (mw.config.get('wgCanonicalSpecialPageName') === 'Chat') { $(function {        "use strict";        function createUl(blockee) {            var isBlocked = $("#WikiChatList>li[data-user='"+blockee+"']").hasClass("blockee");            if (isBlocked === false) {                $('.regular-actions').after('  Block Messages ');            } else {                $('.regular-actions').after('  Allow Messages ');            }	            $("li.ignore").click(function { ignore(blockee); });        }        function ignore(blockee) {            var blockStyle;			var blockee = blockee;            var isBlocked = $("#WikiChatList>li[data-user='"+blockee+"']").hasClass("blockee");            var isMod = $("#WikiChatList>li[data-user='"+blockee+"']").hasClass("chat-mod");            if (isMod === false) {                if (isBlocked === false) {                    $("li.ignore").addClass("blue");                    blockStyle = document.createElement("style"); blockStyle.innerHTML = ("li[data-user='"+blockee+"']:not(.User){display: none;}"); blockStyle.setAttribute("id", "blockStyle-"+blockee); document.head.appendChild(blockStyle); $("#WikiChatList>li[data-user='"+blockee+"']").addClass("blockee"); $(".UserStatsMenu li.ignore>span.label").replaceWith(" Allow Messages "); } else { $("li.ignore").removeClass("blue"); blockStyle = document.getElementById("blockStyle-"+blockee); blockStyle.parentNode.removeChild(blockStyle); $("#WikiChatList>li[data-user='"+blockee+"']").removeClass("blockee"); $(".UserStatsMenu li.ignore>span.label").replaceWith(" Block Messages "); }           } else { var lastMsg = $('.Chat>ul>li:last-child'); var lastMsgIsAlert = lastMsg.hasClass("inline-alert"); if (lastMsgIsAlert === true) { lastMsg.after("You cannot block chat moderators, administrators, vstf or Wikia staff members."); } else { lastMsg.after("You cannot block chat moderators, administrators, vstf or Wikia staff members."); }           }        }        function createUlCall { var blockee = $(this).attr('data-user'); setTimeout(function { createUl(blockee); }, 0); }       $("#WikiChatList").on("click", "li.User", createUlCall); var messageBlockerStyle = document.createElement("style"); messageBlockerStyle.innerHTML = ".UserStatsMenu .actions li.ignore .icon { background-image: url('http://images.wikia.com/dzy/images/8/81/Sprite-chat-ignore.png'); } .UserStatsMenu .actions li.ignore .icon { background-position: -0px 0; } .UserStatsMenu .actions li.ignore:hover .icon { background-position: -31px 0; } .UserStatsMenu .actions li.ignore.blue .icon { background-position: -67px 0; } .UserStatsMenu .actions li.ignore.blue:hover .icon { background-position: -98px 0; } #WikiChatList>li.blockee { background: #FFE6D8; !important } .ignore span.label { position: relative; bottom: 5px; left: 3px; }"; document.head.appendChild(messageBlockerStyle); }); }