BigTSDMB / SDMB Old Smileys

// ==UserScript==
// @name           SDMB Old Smileys
// @namespace      cbf7dfe834817939e241a1e07de7245b
// @description    SDMB Old Smileys
// @version        4.2
// @license        MIT
// @match          *://boards.straightdope.com/sdmb/*
// @grant          GM_registerMenuCommand
// @grant          GM_getValue
// @grant          GM_setValue
// @run-at         document-start
// @updateURL      https://openuserjs.org/install/BigTSDMB/SDMB_Old_Smileys.user.js
// @downloadURL    https://openuserjs.org/install/BigTSDMB/SDMB_Old_Smileys.user.js
// @icon           data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAS1BMVEUW8t4AAAB7vTeJyDyT0EMqewx3uTNrriwzggyb1khkqSqX00VAjBaBwTlGkRlaoSM6hxEZbgCo4U7W6P5TU1MjdAA6iRH///9VnSCO69mpAAAAAXRSTlMAQObYZgAAALFJREFUeNqVk1UWhEAQAzfjgvv9T7o0WfntKSyPFM68WsCPdoGlMSHEOI7DQKlFAJyr1TlrjaGSEqAXgJyXBdi2nK0NQdI0eQ/oBamJcwDRC0CtwLoCXP/TPAM6wTnZcd5QkNQmWJszsN5IZpKb1AvGWMvH46uWlNK+64UYQzCm7/+f+zi81wuilBIfSpG664BfrRSuB4Cw1gtUuodpSom3x1orCPxFpOTtSd0ktI9NPW8hhxVVpoiq4gAAAABJRU5ErkJggg
// ==/UserScript==

//var timer = new Date();
var animated_rolleyes = false;
var rolleyes_uri;

if (typeof GM_registerMenuCommand != 'undefined') {
		GM_registerMenuCommand('Toggle animated rolleyes', function (){
				GM_setValue('animated_rolleyes', !animated_rolleyes);
                //console.log('toggle fired: ' + animated_rolleyes);
                toggleRolleyes();
		});
}

function addStyle(css) {
  if (!document.documentElement) {
    var observer = new MutationObserver( () => {
      addStyle(css);
      observer.disconnect();
    } );
    observer.observe(document, { childList: true } );
    return;
  }
  var style = style = document.createElement('style');
  var base = document.head || document.documentElement;
  base.appendChild(style);
  style.textContent = css;
}

function toggleRolleyes() {
    if (typeof GM_registerMenuCommand != 'undefined') {
        animated_rolleyes = GM_getValue('animated_rolleyes');
    }
    //console.log ('function fired: ' + animated_rolleyes);
    if (!animated_rolleyes) {
    	rolleyes_uri = 'data:image/gif;base64,R0lGODlhDwAPAPQYAAAAABluACN0ACp7DFNTUzOCDDqHETqJEUCMFkaRGVWdIFqhI2SpKmuuLHe5M3u9N4HBOYnIPJPQQ5fTRZvWSKjhTtbo/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUKABgALAAAAAAPAA8AAAVwICaKQFmOKFY+TrMkJwpIkxQ9blIAI0BVAAIl4ggaBjwV0CQxAZCqCcBSolKngECpablcrF6qFhChTKmR83P8iDTJuFJBMG44HhBW7jCg8wAMDYIMLwgAfiQKik6HAVo9CJEGBX2OST1PfX6XKYwpIQA7';
    } else {
    	rolleyes_uri = 'data:image/gif;base64,R0lGODlhDwAPAPQaAAAAANbm/////5TOQjqEEKXeSnO1MSl7CEqUGZzWSjqMEDGEEGutKYzFOkKMEEKMGWOtKXu9OoS9OpTWQlqlISFzCCFzAFJSUhlrAFKcIQAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAaACwAAAAADwAPAAAFc6AmikBZjqhWRgZDIScKDNPQRC6yACOQFIBLomEIEg48FTAQmAGYAKRq8hQImgFrE1MaPEtYMIALaCRMZfSBHGl4y7jSokJmGCISVk5xsHBVEAyCEC8OFXRJABmLaAB0fyQODw4ECwePST1Rl34xKSpoKSEAIfkEBQoAAgAsBAAFAAgAAwAAAggUHnYbfNZAAQAh+QQFCgADACwEAAQABwAEAAACCgwwYHcrHF4waRYAIfkEBTIAAwAsBAAEAAgAAwAAAgjEPoaBw8IOLAAh+QQFFAABACwKAAoAAQABAAACAkQBACH5BAUKAAMALAQABAAHAAQAAAIKTDBgos0A40EwFAAh+QQFCgACACwCAAIACwAHAAAEIlBIIAWtCaRq7ihgMYwGcRRACgwqcFRCAATwVF/SWCGKFAEAIfkEBQoAAQAsAgACAAsABgAABB4wyCYDqjhXkE3gQSEWwTAYRAgCw3oESZwEDYMsRwQAIfkEBQoAAgAsAgACAAsABgAAAxUoCircMKoShyALaKcZCErwhV7HbQkAOw';
    }
    addStyle(`
      img[src="images/smilies/rolleyes.gif"] {
        width: 15px; padding: 15px 0 0 0; height: 0;
        background: url("${rolleyes_uri}") no-repeat;
        overflow: hidden;
      }
    `);
} toggleRolleyes();

var smilies = [
  { src: 'images/smilies/smile.gif',    url: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAIAAAC0tAIdAAAABnRSTlMAwADAAMCNeLu6AAABDElEQVR4AZWSA282UBSD+2c/25ht27Zt20YwR1MwxtmTnJfzmuSyp7enuRr0hrxx+/YWb7tfm11abNJ4hXrzb9fIRT2a1umcGA9GRMFcvYZK1J6pqlh3gVzU8xVdbzCy5gUtNWusXF05qo1XQbCAm40qVGDr3SGttMpQl6BCF9u8mrbBpW0w7eRfMuASr4/5zgtQ4k8ZSIBr9DBwO5OmFJVFKMtXcd9k4AIlnsYrI2ujqi1D1XHYUOofRX2SgQsetTJyYG1UHKs4TCD+m8Leyt0p/ggLMLLGAKpGxXHkB+8EaQUlwroFqFEfFfzag20F+CNXRhKgLbxiAFWj3vtPyBU9EqAtvN7+Jy/7gzcd7Q6/bOiXvQAAAABJRU5ErkJggg' },
  { src: 'images/smilies/eek.gif',      url: 'data:image/gif;base64,R0lGODlhDwAPAPQcAAAAAJ4AAEBA00FB1EdH10lJ10pK2E1N2lBQ21JS3FZW3lpa4F1d4WNj5GRk5Glp52tr6G5u6XJy63p673x88ICA8oWF9IiI9Y2N+JSU+8LP9P///wAAAAAAAAAAAAAAACH5BAUAABwALAAAAAAPAA8AAAV5ICeKQFmOKFdaVjVJJwpcV4ZdbuQAI2BpQNsPyOCpNJukBoNU8gATJGCzlFITpWiSemlSESVJFNgaaxSHEkRMoUxekMYCUSg1HhEJzM5IHAhPDA4ODyYLaIAkCgsMRQEACH8CRioICVglBgSTKZkFBAQDMSkqJpQiIQA7' },
  { src: 'images/smilies/mad.gif',      url: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAAyUlEQVR4AZ2TgQeDUBDG7z8fQkQwJDAIIRAxEATgYTAgBIiAwQC3D9+bTw6z4+fN2e99747M4vKAoAJpBU+QwAKmHy7xnRjY5AIDI+j4OxRf4M0zv8AkvQdtcIEfFI0cPB/Si2RfJdnIzn4K5Orb42wbhYOnzjzLzM1ZTvzjSina9gBu4HqWF5CIzqj0TK1BofKdT1tkuzMTR4rG1BJczksb2ZhEGkAnzzVNlfIO9BmRGpmzCFJzeZsRqQZlJAblRqEKpED8/6v6AIIaAdtlmhQqAAAAAElFTkSuQmCC' },
  { src: 'images/smilies/cool.gif',     url: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAAgVBMVEXAwMAAAAD5plT4n072lUb0iT3yfjT7tF/8uGL6q1j1kUPzhDnxdi7vZyL9wGj+xWz2l0j0iDzyejHvaiTtWxgyMjL3mUnvayXtXBlaWlrsWBbqSgvuYh7sUxLqRwnzgDbxdS3vaCPrTg7pQwXtXhvoPwLwcCnpQQTpQgXoPADrTA0w3edDAAAAAXRSTlMAQObYZgAAAI9JREFUeNpdz4MVBDEUBdB9wdi23X+B0eHGN/4/naCSHhkRyrgFGMJ2bJd6fhDCMIojmyRplhdQdmKUjluhrBuYq8oWRDb6UlBXjTS7XppRAsj7gWGcpLmXVInH52Uttl3a8lOe+taSH+N0qguDDFlwrQf6W78X5jVU6p/XfKhoim7cpltT///rp/2E5l98AlYOCIXl0v4+AAAAAElFTkSuQmCC' },
  { src: 'images/smilies/tongue.gif',   url: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAAe1BMVEVFPiEAAAAABAEAGQoAmAcAmgsAmwsAng8AnxEAohUAoxcApRoApx0AqB4ArCQAsCoAsy4AtC8AtzQAuzkAvDsAvz8AwkMAxEYAx0sAyk8Ay1EA0VkA010A1V8A1mEA22gA4HAA5HUA638A7oMA9IwA+JKaAACkAADGAAC2dwJ0AAAAAXRSTlMAQObYZgAAAIlJREFUeAEFwLtKA1EUBdC1w5hGi6BgJ/H1/39kZSq1shIy92wJCBSCOHfN/q1s5CWtHh6uv0Ve35M8JzndxUY+3s162q8/dxxy7pvSOjlm07am086wWapWZzrjYC5rZp81q3+12R8vhHIzIveHnJL2stbqxp58PdbnLITcpp2uWhXE0dRSAgKFf13ZV6P9YaszAAAAAElFTkSuQmCC' },
  { src: 'images/smilies/wink.gif',     url: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAIAAAC0tAIdAAAABnRSTlMAwADAAMCNeLu6AAABDklEQVR42pWSg5IAMBBDN///D2fbtm3btjC819lpz6qRTbOZWtf7Yu/Lx9sPuIN929my1WWbm7bxEX2IsQS9vLDrqzAeH4WA5UWbntBQvzpblAIsQR8e7PmZkXV4YX3FZqdtdFDd7Wqs8YCIhpUCmubrjTXz0tOuptqIdq3OnYpze3HuimL5FpVo/Ul3fZXKCyMaB7iG7+jgoyd93WptVG2FSvMjmguYeBqtjKw5mRzVYJ86W4OMyhIV5UY0HDzqYfjAmhOgKG6uD+elBSrIYhEzRR9msWBkjQBYHYriwpz3DpIKTJhl7wvQohzlZbxBewD68JURB0gLrQgojNCv/wm+wocDpOVaKQnzvz/4AnHCKbl67rx4AAAAAElFTkSuQmCC' },
  { src: 'images/smilies/biggrin.gif',  url: 'data:image/gif;base64,R0lGODlhDwAPAPQbAAAAAAB9bQKAbwWEcg2QexWcghefhR+qjSKvkCSykii4liu8mSy9mjHFnzPIoTTKozrRqD7YrUDbr0LdsEjmt0rpuVDxvlP2wln/yNDs/P///wAAAAAAAAAAAAAAAAAAACH5BAUAABsALAAAAAAPAA8AAAVv4CaKQFmO6FZGkMMkJwpQFTVBjXIUwDhbJUrkUTIQeqoKAHMBSAAMBOCoilAsF4vwsUAYByWIaTwGAxwATSatTq8FJYabvW4HSrC2Rr++qw4AdXoAfioFBiV7a4SFKgRHYwGNJAADAwKSMSkqYykhADs' },
  { src: 'images/smilies/redface.gif',  url: 'data:image/gif;base64,R0lGODlhDwAPAPQdAAAAALEAAP9IAP9OAP9RAP9WAP9bAP9dAP9hAP9kAP9rAP9vAP90AP95AP9+AP+CAP+FAP+JAP+PAP+XAP+bAP+dAP+mAP+tAP+zAP+8AP/AAP/JAP/OAAAAAAAAAAAAACH5BAUAAB0ALAAAAAAPAA8AAAWCYCeKQFmOaFdil0VJJwpgmZZh1hQ1wAhcmQ1nk7lUJI5FT4UBcDgADaAyAShVFGCJeCklD6WJhZa55XYKQ0lSsVya4QcDUShBJJOKqdRQHAh8DxEwewt0Az0ADA0OAAGPAIdLAAkKC0olBwUDAksqBgehBgUEnJ4kAASlAp2nMnspIQA7' },
  { src: 'images/smilies/frown.gif',    url: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAAhFBMVEXAwMAAAABmi+l0l/FKc9lfheUdTMAsWcg4Y89Xf+FojutrkOwOPrcbSb4kUsQpVsYyXsw7ZtFSet5VfeCDpfoGN7ILPLUQQLgRQbkWRbsWRrwqV8ctWsk3Ys4/adNBa9RFb9ZZgOJ+ofcHOLMKO7UXRrweTcAhT8I9Z9JJctl3mvOMrf+di+rsAAAAAXRSTlMAQObYZgAAAJBJREFUeNpdzwMSQzEARdG8ON82a+x/f8F01Ds8cUgIPhIKiqioOfBjzMBigUMjkDI0F0YNSgXvCM23+UQnxwJH4+bh5uHmJQgqESPsh85TZ14LGs7fimxy3nllTlPxfZ3l4Lxuxxs+9Rw7f2Ch8Sp1MeOehPuyXC0qz+SYtN4EqXzIdBo6xxDQ98ntisC//1keNweB4OmsywAAAABJRU5ErkJggg' },
  { src: 'images/smilies/confused.gif', url: 'data:image/gif;base64,R0lGODlhDwAWAPQbAAAAAGYAh2gAimoAjm0Akm4AlHIAmXQAnHgAo3sAp34Aq4AAsIMAtIYAuIkAvowAwY0AwpEAyZQAzpkA1Z0A254A3aAA4KUA6KcA66wA8q8A9wAAAAAAAAAAAAAAAAAAACH5BAUAABsALAAAAAAPABYAAAWS4LYBokiW56iqJ5muZgm/tGzfco3iPA78P96PMpFAGsHcZWmZRBwLRApwyWgyF4qRkTC0MJofpiL5dV2V6u9CNhsGv4lleWk+owbBTzKhVCpFRwoHBXoAEBESihFHC10DAT8NDxCVDg2OBgQCkSMLCwxAPwWQLQgJAAkIB5oAAZ0mBrIGBZuvLyMAA5C3uCiiNiEAOw',  height: '22' }
];

var cssText = '';
for (var i = 0; i < smilies.length; i++) {
  cssText += `
    img[src="${smilies[i].src}"] {
	  width: 15px; padding: ${smilies[i].height || '15'}px 0 0 0; height: 0;
      background: url("${smilies[i].url}") no-repeat;
      overflow: hidden;
    }
  `;
}
addStyle(cssText);

//window.alert (new Date() - timer);