// ==UserScript==
// @name           WordPress Smiley fixer
// @namespace      http://tankadillo.com/smiley-fix
// @description    Replaces Wordpress' awful smileys with something less awful
// @author         raezr
// @include        *
// ==/UserScript==
/*
  This code is licenced under the GPL
  http://www.fsf.org/licensing/licenses/gpl.html
*/

/* define all the variables: */
var emotePath = new RegExp("\/wp-includes\/images\/smilies\/icon_(.*)\.gif$");
var emoteData = new Object;
var emotes = new Object;
var imgs = document.getElementsByTagName('img');

/* emoticions: */
emotes['biggrin'] = 'R0lGODlhDwAPANUtAP/6u//4p//7zv/4n//83P/7yv/7x//70tXPgPHqkf/5sP/82f/81e7nj//4pf/5sc7IfOjhi//3neHah+bfiv/6v//4qvvzl9/Yhv/83f/70f/4q//82P/7xv/7y//6vf/6wP/82/72mP/6xf/7ycvFevrylv/818K8dcG7dN/f3////wAAAKSkpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAC0ALAAAAAAPAA8AAAZ4wJZQyCoWh8hWkcA5FEBHJIuQCTEEHYAiwBqyTouiwFApSkxd5YGl8bAArM2AleiyDAXSSGsJDC4JERNFH0aGhghFDywrKoyNjI4lRQ6Rj46QKEUiliuQkCl2DSyYnyyhRBQYRZ6Op6hECBCHKbBer7WhaUlKhklBADs=';
emotes['confused'] = 'R0lGODlhDwAWANU/AMO9dfnxlfDokP/4odLLfv/3m/Hqkebfis7IfOrjjMfBd//4q//7x//7yv/83NXOgP/5sf/5sN3WhP/70vrylv/3nd/Yhv/81f31mP/82f/5tf/4ov/7zv/6vf/6u//4p+7nj//4pfTtk/buk//6wP/7xsrDeenijP72mP/82P/7ycvFev/6vP/5tP/4qv/4o//5r97Xhf/80//81+Hah//6wv/6v//3mf/83f/4qPz0l/bulP/828G7dAAAAKSkpCH5BAEAAD8ALAAAAAAPABYAAAalwN/PJxQSi8ehUnkkJpfGIvRJlVqv0ioSy8X6vl/u15GaNEjhrAPHu3BKnsgn6ZtlMm6GrZWrUJoTMl81HhpfFAZODA0qXxEucz4GJzRfHR0sGgsDFQU6BgcSD18QEDALGwU3GCMnEgQrXyEvGwMFGDoBIBYECgBfKBQBOyIGAgkxCAA9PU4gCQdgX8zNRgcWPg8IJss+zHTaCtTUT0Pe42lX0uVBADs=';
emotes['cool'] = 'R0lGODlhDwAPANU/AN/YhtXPgP/70urjjP31mFpaWt3WhP/81fHqkf/7zv/83Prylv/////6u//82cfBd//3m87IfP/5se7nj//6vf/5tf/6wcrDednSgv/7x//80//828vFeubfiv/3nfDokP/82OPciPnxldHLfv72mP/818K8df/5tP/4o8O9df/5sP/4oP/4qv/6v9zVhP/4ovvzlv/3mfz0l9LLfv/7yvbulP/5r97Xhf/83f/4pf/4qPTtkzIyMsG7dAAAAKSkpCH5BAEAAD8ALAAAAAAPAA8AAAaJwJ9Q6CsWh8hfUQES0CxHpE+B2xwSmYZK5xv6Sg7HNdM66TyLrlKg8fEsjYobhuga3QwfC3/3USg8BUaBRQYBRRISNkUQMQSFMxxFOSgvKxAEMiITACMPJkUkCyI1OwgfAzcRKT09dhMDPiEALgEXPq1qPh0AGH2trl4BEQ/AwGpeuMZRSUp3SUEAOw==';
/*(Questionable improvement)*/emotes['cry'] = 'R0lGODlhEAAQAJEAAAAAACTzPf///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFHgAAACwAAAAAEAAQAAACOIQ9qceQAWNqI1p5qrhxDwQp4SN8WsUF6JNyrLpW7KzU9GiLMJ6vzohTqUAtDLH1YbwkyYbD1igAACH5BAUeAAAALAAAAAAQAA0AAAIzhICji3imgpzKtDEzdVj7cXSLNAoDIHpkYGJCEMEdBZLLLeb4KNt7DPwBUTIhLGGjwY4FADs=';
/*(Questionable improvement)*/emotes['eek'] = 'R0lGODlhFQASAMIFAAAAAAAAhAD///+EhP//AP///////////yH5BAEAAAcALAAAAAAVABIAQANjeLoHwI/BUWoFBNg6omwYIWbe8mhUQTmatTbmKLJyBilsCTq4WQUBFaYFvPQaqUIow1EecaPcUgf7WKuRlhGn2mY3l0zS2/gFlcxC0fl1oVGbE0xak1Zjs1z02og69nwmOVcJADs=';
emotes['evil'] = 'R0lGODlhIAAPAMMDAAAAAP8AAAAA//r6+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQNCgAPACwAAAAAIAAPAAAEXPDJSasEOAPL+wVBKAaYZz4gNpLpyYGiqsavtk0wG+c3lZKsy2imo+GAPOFqaVTGSM6VpomSlqoh22A7gPWw1FyW2519UbaKGEDetly+nU0GVzOHdQtxeM7j5h0RACH5BAUKAA8ALAAAAAAdAA8AAARY8MlJqwQ4A8s5DmAYYF0JjKf4bZdGUim4xuNz3jJ7hV/O26PgbULroVQ0lC4pataSOqBTGdtAYTzNYDtIsVwVKLfbi5pU4+2whM25VuzwVBW3GJH1ztscAQA7';
emotes['lol'] = 'R0lGODlhDwAPALMAAEVFRf/qAAAAAP/////OAP/JAP+0AP6dAP/9E//+k///x///6//lAAAAAAAAAAAAACH5BAEAAA0ALAAAAAAPAA8AAARYsEkJap241aVSIhcmCAmCBCgxTkA3osFIHABVoqMAg5pyvjhdgQZIAGFBQ+WGRBaUAFNuOnpWCLGBdjsQDGsAFXcr4GkIYm6ZxkJTZzVMxUA3EDMsS3wSAQA7';
emotes['mad'] = 'R0lGODlhDwAPANU/AP/4odLLftXPgObfivHqkd/Yhv/7x//3nf/81f/4p8fBd//5sf/83P/82f/5tf/6vc7IfN3WhMO9df/3m//70vrylsrDef/4ov/5sP/7yv/4q/vzluHah//4pcvFevTtk//6wP/6wv72mP/3mf/82P/7yf/7xv/6vP/4qsK8de/okP/5tPvzl+rjjOnijNTNf//80/buk+jhi//4o/HpkNnSgv31mP/7zvjwld7XhePciP/83f/4qMG7dAAAAKSkpCH5BAEAAD8ALAAAAAAPAA8AAAaTwJ9Q6CsWh8hfkUGiZEBHpI+x8yFuJh8m4Rv6SI0GwmfwrXiHSldJgRVDPkdxQ+iSM6UiBsX1EWQcRQ8PJw4aAAcTLDQDEQJFCwsYGhcTIzYxLhEBHkUdMxcARkUFAQopRSIVOD4fBCotOT4SPT12Kj4DOgWOFra2RAMFNS8QFrS1wEQCEArJyWtePs+20Umj1j9BADs=';
emotes['mrgreen'] = emotes['biggrin'];
/*I couldn't think of a good replacement for this*/ //emotes['neutral'] = '';
/*(Questionable improvement)*/emotes['razz'] = 'R0lGODlhGgAZAOcPAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBmAABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNmZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZmzGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZAJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAAP4ALAAAAAAaABkAAAivAP0JHEgQhUGDBBMqHHhQn0OHBxcqNPiwYkWEEv2hsMjxokJuIEOKHEkypL+SKFOqXFlSI8SDFB/ChKkPBUiXNf/9M7hTps6dKHra5IYzKNCeL3U2rAlyo0+lTl/SdNjU4tKOHKti3WpRq8yoXB96rXk1rL6bUXmC5ToUZ06gZTmiOOk2qNG7W+cyTHo0ptyEaZXuRPoX8FeoWPVOvOjXakaNa+Uqfhw34uOFMy8HBAA7';
emotes['redface'] = 'R0lGODlhDwAPAKIAAAAAAP8AAP8AM7+/v/+Z/wAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/h1CdWlsdCB3aXRoIEdJRiBNb3ZpZSBHZWFyIDIuNgAh+QQBMgADACwAAAAADwAPAAADMjiq0L1wNELpg8DWTMDi3GYxXWVmXjhZaru5ZvzK9EqfkqiN+Rt2nxsQ8+t4IgzHcZEAACH5BAFGAAMALAAAAAAPAA8AAAMxOKrQvXA0QumDwNZMwOLcZjFdZWZeOFlqu7lm/Mr0Sp/SvZFv2H06D8bXEUYkDqMiAQAh+QQBRgADACwAAAAADwAPAAADODiq0L1wNELpg8DWTMDi3GYxXWVmXjhZaru5ZvxSQi0EtsDSeNDfo5BsJDmtiMVhJ3JkRT4ODyQBACH5BAFGAAMALAAAAAAPAA8AAAMxOKrQvXA0QumDwNZMwOLcZjFdZWZeOFlqu7lm/Mr0Sp/SvZFv2H06D8bXEUYkDqMiAQA7';
emotes['rolleyes'] = 'R0lGODlhDwAPANU3ANXPgP/6u/rylt/YhurjjP/70v/7zvHqkebfiv/83P/5sf/7x87IfMfBd9HLfv/4otzVhP/7yv/81f31mP/5sNnSgv/4p//4pf72mOPciP/3ncvFev/82f/7xv/6vfjwlf/6wPbulNLLft7XheHah/DokP/82+7nj/z0l//6v//81//3mfTtk//83fnxlf/4o//82MO9dcK8dcrDecG7dP///wAAAKSkpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADcALAAAAAAPAA8AAAaCwJtQaCsWh8hbMQErREBHpC3RMkkMnQDFYhvaVJyiYZEqagRdZcFoC7APXdvCVivW63Qbqeih1/5+gABFCgp+NiuHIhtFFy8PRRMoLkUODTJFGAIfISwHJQQjDDE0NHEnBAgZAxAAMzalaTYIAxVssLFeAAwNpb6mSUW/pmlJSmxJQQA7';
emotes['sad'] = 'R0lGODlhDwAPANU/AP/4oNLLfs7IfNXPgN/Yhv/3m//7zv/4p//5sd3WhP/83P/6vf/3nf/4q/rylv/70v/5sP/81f31mO7nj//4ov/7x8rDef/7yvHqkcO9dcfBd+bfiv/6wP/3mf/4pf/7ydzVhP72mP/70f/83f/7y//6vP/4qvbulP/82cK8dfjwlerjjP/82P/5r//5tcvFevnxlf/7xv/6v//4o//5tOjhi+Hah9TNf//6wtnSgvz0l//6u+PciMG7dAAAAKSkpCH5BAEAAD8ALAAAAAAPAA8AAAaTwJ9Q6CsWh8hfUcF6XDhHpE8x8kUMMR/k4Bv6WCiroSKj+RiOrvLhE5FwO1cD4MN0fZXLpwgxces1NkULCyVFAAwFRRsJA0UICC0NFAUdEicrCQEvRR4zFAAFEjowEwQBGilFIQ4qJ0ZFAhk9PXcTKz48BCADFj60aj4bBDk3AhaztLVeAwIayspqXr/QUUlKsElBADs=';
emotes['smile'] = 'R0lGODlhDwAPANU/AP/4q//4ovDokP/4oNLLft/Yhv/3m/HqkdXPgP/81c7IfOrjjP/70v/82f/5sf/5sP/4p+7nj93WhP/7zv31mP/5tf/3nfrylv/7yv/83P/7x//6vcfBd+bfiv/6u+jhi/bulPvzlv/4pfTtk/buk//6wsK8dcrDecvFev72mPvzl//82P/5tP/7xv/6vP/6wP/5r+nijP/7yf/80//3meHah//6v9nSgvz0l/nxlePciP/82//4qMG7dAAAAKSkpCH5BAEAAD8ALAAAAAAPAA8AAAaRwJ9Q6CsWh8hfMbNiYF5HpC+T2SUmLc8D4hv6Vo3GVWNj8SyXrpIxK5Y8lWLo0PVpMLLiA8D1HT41RRsbLhUAARYGKgcdEghFDg4whwY0FCQxEgQoRSIBAQMGFDg5EQUEHCZFKWkgIwcCCwUKPj09dRELPjoFjie1t0QdBTdGRbbBRAgKHMjIal7Az9BJxtQ/QQA7';
emotes['surprised'] = 'R0lGODlhDwAPANU/AP/3m//5sP/4ov/70v/82f/5sf31mO7nj8rEef/6u9XOgP/6vf/7x//3nf/4p9/Yhv/7zt3WhP/83Obfiv/7yvrylv/81cfBd87IfPbuk/Ttk//6wN7Xhf/4pf72mP/5r//82P/7xurjjP/4o/nxlf/5tP/4qv/4q8K8df/4oMO9df/4odLLfvbulOHah/Hqkfz0l//6wv/5tenijNHLfv/81+jhi9nSgv/82//4qP/6v+PciMG7dP///wAAAKSkpCH5BAEAAD8ALAAAAAAPAA8AAAaNwJ9Q6CsWh8hfUQIaUDZHpE8iwVkgoUTA4Rv6agTClaEr5RqVrnLQa8cSsnbv1fUxKD1fL2By5Hs2LkULC3IrDQByEQpFBQUfJwIAAAYZMxEsCEUdIwIplDAkBw80FyhFHhUkLRpGHBgqPDx1ByITO0YIsrNEEw83jJq7vEQKGBdGu2pePsOzy0lGUUNBADs=';
emotes['twisted'] = 'R0lGODlhDwAPANU8AN/YhtXPgOrjjP/6vf/3m/31mP/6wf/7x+7nj87IfPnxlf/5sf/70lpaWv/83P/82d3WhP/81frylv/////4qPHqkcfBd8K8dfbulMrDef72mObfitzVhP/3mfvzlv/5tMvFev/3nf/4pf/82P/83fTtk//4o//4qv/5r9LLfv/4otnSgv/7zv/7yuPciP/80//81/z0l97XhdHLfv/5sMO9df/5tf/4oPDokDIyMsG7dAAAAP///wAAAAAAAAAAACH5BAEAADwALAAAAAAPAA8AAAaIQJ5QuCsWh0he0TFitAxH5M5B2kVYhx2NshvuYI9HZJf9UEKSrpLx2uWgNren0jW6J7vT3b4bDHINRoBFEAFFCwsoRQQdBYQpIEUiJio3BAUxCggAMxYXRRoSChglFTgCMgk1Ojp1CAI7LgAcARk7rGo7GwArfKytXgEJFr+/al63xVFJSnZJQQA7';
emotes['wink'] = 'R0lGODlhDwAPANU/AP/4q//4ovDokP/4oNLLfv/3m/Hqkd/YhtXPgN3WhP/3ne7nj/31mMfBd//70v/82f/83P/5sP/4p//81c7IfP/5tf/6u//7yvrylv/5serjjP/7x//6vebfiv/7zv/6vN7Xhfvzlv/81//7yf/4pfTtk//7xsrDeenijP72mP/82P/70fbuk//5tP/7y//3mf/5r8vFev/83cK8df/6wPvzl+Hah9nSgvz0l//6v/nxlePciPbulMG7dAAAAKSkpCH5BAEAAD8ALAAAAAAPAA8AAAaSwJ9Q6CsWh8hfEaJyXGhHpA8ig0w8JktE4hv6RI/HdZNrSRSYrtLhW7l8lkoxZOj6NpdRMQLg+gwoNkUcHB8VAAEKBTUGHQkIRRkZMIgFLwwsKAkEMUUkAQEDBQw4OgsHBA0zRSlpPCUGAhogFD49PXYLGj47B48ntrhEHQc3RkW3wkQIFA3JyWpewdDRScfVP0EAOw==';

/* The loop: */
for(i in imgs)
{
    // filters only smiley images
  if(emotePath.test(imgs[i].src) == true)
  {
    emoteData = emotePath.exec(imgs[i].src);
    
    // deterimines which smiliey it is and replaces it with the appropriate alternative
    if( emotes[emoteData[1]] )
    {
      imgs[i].src = 'data:image/gif;base64,' + emotes[emoteData[1]];
    }
  }
}