There are 19 previous versions of this script.
var GMSU_meta_48536 = <><![CDATA[
// ==UserScript==
// @name EmoticonBar
// @namespace http://projects.izzysoft.de/
// @description Adds an emoticon bar for your postings on UserScripts.Org, UserStyles.Org, MozillaZine.Org forums - and even more sites.
// @version 1.2.1
// @uso:script 48536
// @include http://*.userstyles.org/comments.php?*
// @include http://*.userstyles.org/post.php?*
// @include http://userscripts.org/topics/*
// @include http://userscripts.org/scripts/edit/*
// @include http://userscripts.org/messages/new?*
// @include http://tmp.garyr.net/forum/posting.php?*
// @include http://tmp.garyr.net/forum/viewtopic.php?*
// @include http://forums.mozillazine.org/ucp.php?*
// @include http://forums.mozillazine.org/viewtopic.php?*
// @include http://forums.mozillazine.org/posting.php?*
// @require http://userscripts.org/scripts/source/51513.user.js
// @history 1.2.1 added UserScripts.Org new PM to supported @includes
// @history 1.2.0 Added support for BBCode. Switched to BBCode for TMP forums, and added support for MozillaZine
// ==/UserScript==
]]></>;
GMSU.init(48536);
window.addEventListener("load", function(e) {
tagtype = 'html'; // default; alternative: 'bbcode'
// Emoticon definitions
function setemoticons(domname) {
var editbar = document.getElementById(domname);
if (editbar) {
var bdiv = document.createElement('div');
bdiv.setAttribute('align','center');
bdiv.setAttribute('id','IzEmoticons');
var buttons = "<div style='background-color:#ffffff;border:1px solid grey;width:95%;'>";
buttons += emoticonButton("Huh?", "http://www.mysmiley.net/imgs/smile/sign/sign0035.gif");
buttons += emoticonButton("Oops!", "http://www.mysmiley.net/imgs/smile/sign/sign0040.gif");
buttons += emoticonButton("WOW!", "http://www.mysmiley.net/imgs/smile/sign/sign0046.gif");
buttons += emoticonButton("Cool", "http://www.mysmiley.net/imgs/smile/sign/sign0028.gif");
buttons += emoticonButton("Thankyou!", "http://www.freesmileys.org/smileys/smiley-signs153.gif");
buttons += emoticonButton("Thank you!", "http://www.smileyvault.com/albums/basic/smileyvault-flowers.gif");
buttons += emoticonButton("Smile", "http://www.freesmileys.org/smileys/smiley-basic/smile.gif");
buttons += emoticonButton("Sad", "http://www.freesmileys.org/smileys/smiley-basic/sad.gif");
buttons += emoticonButton("Huh", "http://www.freesmileys.org/smileys/smiley-basic/huh.gif");
buttons += emoticonButton("Dry", "http://www.freesmileys.org/smileys/smiley-basic/dry.gif");
buttons += emoticonButton("Mellow", "http://www.freesmileys.org/smileys/smiley-basic/mellow.gif");
buttons += emoticonButton("Died", "http://www.freesmileys.org/smileys/smiley-violent004.gif");
buttons += emoticonButton("Hush", "http://www.freesmileys.org/smileys/smiley-shocked002.gif");
buttons += emoticonButton("Cool", "http://www.freesmileys.org/smileys/smiley-basic/cool.gif");
buttons += emoticonButton("Peace", "http://www.freesmileys.org/smileys/smiley-char038.gif");
buttons += emoticonButton("Whistle", "http://www.freesmileys.org/smileys/smiley-green/greensmilies-029.gif");
buttons += emoticonButton("Huh?", "http://smileyjungle.com/smilies/doh28.gif");
buttons += emoticonButton("Confused", "http://www.smileyvault.com/albums/basic/smileyvault-chin.gif");
buttons += emoticonButton("What", "http://www.freesmileys.org/smileys/smiley-basic/what.gif");
buttons += emoticonButton("Doh", "http://smileyjungle.com/smilies/doh13.gif");
buttons += emoticonButton("whao?", "http://www.freesmileys.org/smileys/smiley-basic/spock.gif");
buttons += emoticonButton("Wink", "http://www.freesmileys.org/smileys/smiley-basic/wink.gif");
buttons += emoticonButton("wink", "http://www.dogmall.co.uk/smile/winking/winking0012.gif");
buttons += emoticonButton("OhMy", "http://www.freesmileys.org/smileys/smiley-basic/ohmy.gif");
buttons += emoticonButton("Laugh", "http://www.freesmileys.org/smileys/smiley-basic/laugh.gif");
buttons += emoticonButton("Tongue", "http://www.freesmileys.org/smileys/smiley-basic/tongue.gif");
buttons += emoticonButton("Bleh", "http://www.freesmileys.org/smileys/smiley-fc/bleh.gif");
buttons += emoticonButton("Tongue", "http://smileys.on-my-web.com/repository/Tongue/mockery-035.gif");
buttons += emoticonButton("...", "http://smileyjungle.com/smilies/disdain21.gif");
buttons += emoticonButton("Angel", "http://www.freesmileys.org/smileys/smiley-basic/angel.gif");
buttons += emoticonButton("Nono", "http://smileyjungle.com/smilies/disdain25.gif");
buttons += emoticonButton("OhYes!", "http://www.freesmileys.org/smileys/smiley-basic/lol.gif");
buttons += emoticonButton("ROFL", "http://www.freesmileys.org/smileys/smiley-basic/rofl.gif");
buttons += emoticonButton("LOL", "http://www.freesmileys.org/smileys/smiley-laughing001.gif");
buttons += emoticonButton("Hehaha!", "http://www.freesmileys.org/smileys/smiley-laughing021.gif");
buttons += emoticonButton("Happyspin", "http://www.mysmiley.net/imgs/smile/happy/happy0088.gif");
buttons += emoticonButton("Yeap!", "http://www.freesmileys.org/smileys/smiley-happy120.gif");
buttons += emoticonButton("Guru", "http://www.freesmileys.org/smileys/smiley-green/greensmilies-028.gif");
buttons += emoticonButton("Bow","http://www.theabeforum.com/images/emoticons/New/bow.gif");
buttons += emoticonButton("RollEyes", "http://www.freesmileys.org/smileys/smiley-basic/rolleyes.gif");
buttons += emoticonButton("Unsure", "http://www.freesmileys.org/smileys/smiley-basic/unsure.gif");
buttons += emoticonButton("Excited", "http://www.freesmileys.org/smileys/smiley-basic/excited.gif");
buttons += emoticonButton("Tears", "http://www.freesmileys.org/smileys/smiley-basic/tears.gif");
buttons += emoticonButton("Sick", "http://www.freesmileys.org/smileys/smiley-basic/sick.gif");
buttons += emoticonButton("Sleep", "http://www.freesmileys.org/smileys/smiley-basic/sleep.gif");
buttons += emoticonButton("Shy", "http://www.freesmileys.org/smileys/smiley-basic/shy.gif");
buttons += emoticonButton("Cash", "http://www.freesmileys.org/smileys/smiley-forum/2c.gif");
buttons += emoticonButton("Censored", "http://www.freesmileys.org/smileys/smiley-forum/censored.gif");
buttons += emoticonButton("Stop", "http://www.freesmileys.org/smileys/smiley-forum/stop.gif");
buttons += emoticonButton("Ashamed", "http://www.freesmileys.org/smileys/smiley-ashamed005.gif");
buttons += emoticonButton("Captain", "http://www.freesmileys.org/smileys/smiley-char027.gif");
buttons += emoticonButton("NoIdea", "http://www.freesmileys.org/smileys/smiley-confused005.gif");
buttons += emoticonButton("Beer", "http://www.freesmileys.org/smileys/smiley-eatdrink004.gif");
buttons += emoticonButton("Sweat", "http://www.freesmileys.org/smileys/smiley-gen113.gif");
buttons += emoticonButton("Stupid", "http://www.freesmileys.org/smileys/smiley-gen135.gif");
buttons += emoticonButton("SOS", "http://www.freesmileys.org/smileys/smiley-gen164.gif");
buttons += emoticonButton("Shock", "http://www.freesmileys.org/smileys/smiley-shocked003.gif");
buttons += emoticonButton("Shocking!..", "http://www.freesmileys.org/smileys/smiley-shocked017.gif");
buttons += emoticonButton("Mad", "http://www.freesmileys.org/smileys/smiley-basic/mad.gif");
buttons += emoticonButton("Punch","http://knol.google.com/k/-/-/1m38742kj1jp7/7l6orf/emoticon-0146-punch.gif");
buttons += emoticonButton("Nosepunch", "http://smileyjungle.com/smilies/fighting0.gif");
buttons += "</div>";
bdiv.innerHTML += buttons;
editbar.appendChild(bdiv);
}
}
// Create a single emoticon element
function emoticonButton(name, url) {
if (tagtype=='bbcode')
return "<span id='IzEmoticons_"+name+"' title='" + name + "' onmousedown='(function() {var rich_edit = document.getElementById(\""+textar+"\");rich_edit.value+=\"[img]"+url+"[/img]\";})();'><img src='" + url + "' alt='" + name + "' border='0'></span>\n";
else
return "<span id='IzEmoticons_"+name+"' title='" + name + "' onmousedown='(function() {var rich_edit = document.getElementById(\""+textar+"\");rich_edit.value+=\"<img class=\\\"emoticon\\\" src=\\\""+url+"\\\" alt=\\\"" + name + "\\\" title=\\\"" + name + "\\\" />\";})();'><img src='" + url + "' alt='" + name + "' border='0'></span>\n";
}
// Create a separator (currently unused)
function separator() {
return "<div style=\"display: block;\" class=\"vertbar\"><span style=\"display: block;\" class=\"g\"> </span><span style=\"display: block;\" class=\"w\"> </span></div>\n";
}
// Check for a named element (divname) and, if found, initialize the
// corresponding textarea (txtname)
function initEmoticons(divname,txtname) {
if ( document.getElementById(divname) ) {
textar = txtname;
setemoticons(divname);
return true;
}
return false;
}
// Loader for UserScripts "Edit post" Ajax link
function usoEditInit() {
window.setTimeout(function() {
initEmoticons("edit","edit_post_body");
},1000);
}
// MAIN: Check for the textarea to use and initialize it
var textar; // global variable holding the textarea id
while (true) { // Loop known elements
// UserStyles.Org
if ( window.location.href.match(/http:\/\/([a-z]*\.)*\userstyles\.org/) ) {
if ( document.getElementById('CommentBox') ) {
if ( document.getElementById('frmPostDiscussion') ) { // discuss a style
initEmoticons("frmPostDiscussion","CommentBox");
} else if ( document.getElementById('Form') ) { // Forum
initEmoticons("Form","CommentBox");
}
}
break;
}
// UserScripts.Org
if ( window.location.href.match('http://userscripts.org/') ) {
// Add event handler to edit links first (they get their textarea via Ajax)
ta = document.evaluate("//span[@class='edit']/a", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (i=0;i<ta.snapshotLength;i++) {
ta.snapshotItem(i).addEventListener('click',usoEditInit,false);
}
// name the element holding the textarea for script description
ta = document.evaluate("//textarea[@id='script_description_extended']", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (i=0;i<ta.snapshotLength;i++) {
ta.snapshotItem(i).parentNode.id = 'editDesc';
}
// now care for the remaining textareas
if ( document.getElementById('message_body') && document.getElementById('new_message') ) { // new PM
initEmoticons('new_message','message_body');
break;
}
if ( initEmoticons("editDesc","script_description_extended") ) break; // Script description
if ( initEmoticons("reply","post_body") ) break; // UserScripts ReplyTo
if ( initEmoticons("content","topic_body") ) break; // UserScripts NewTopic
if ( initEmoticons("edit","edit_post_body") ) break; //UserScripts EditPost
break;
}
// TMP.garyr.net:
if ( window.location.href.match('http://tmp.garyr.net/') ) {
tagtype = 'bbcode';
ta = document.evaluate("//textarea[@class='post']", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
if ( ta.snapshotLength ) {
ta.snapshotItem(ta.snapshotLength-1).id = 'emoComment';
ta.snapshotItem(ta.snapshotLength-1).parentNode.id = 'emoDiv';
initEmoticons('emoDiv','emoComment');
}
break;
}
// MozillaZine
if ( window.location.href.match('http://forums.mozillazine.org/') ) {
tagtype = 'bbcode';
if ( document.getElementById('message') ) {
if ( document.getElementById('message-box') ) { // PM / QuoteReply
initEmoticons('message-box','message');
} else if ( document.getElementById('postingbox') ) { // ViewTopic
initEmoticons('postingbox','message');
}
}
break;
}
}
}, false);
