There are 3 previous versions of this script.
// ==UserScript==
// @name MiniPlurk Smile 0.1
// @namespace http://plurk.com
// @description Szmájlik könnyedén :D
// @include http://www.plurk.com/*
// ==/UserScript==
// ********** Main Script ***********
var smileData = [];
smileData.push([
'MSN',
'http://heartka.com/plurksmile/msn/',
[
'1.gif','2.gif','3.gif','4.gif','5.gif','6.gif','7.gif','8.gif','9.gif','10.gif','11.gif','12.gif','13.gif','14.gif','15.gif','16.gif', '17.gif','18.gif','19.gif','20.gif','21.gif','22.gif','23.gif','24.gif','25.gif','26.gif','27.gif' ,'28.gif', '29.gif', '30.gif', '31.gif', '32.gif', '33.gif', '34.gif', '35.gif', '36.gif', '37.gif', '38.gif', '39.gif', '40.gif', '41.gif', '42.gif', '43.gif', '44.gif', '45.gif', '46.gif', '47.gif', '48.gif', '49.gif', '50.gif', '51.gif', '52.gif', '53.gif', '54.gif', '55.gif', '56.gif', '57.gif', '58.gif', '59.gif', '60.gif', '61.gif', '62.gif', '63.gif', '64.gif', '65.gif', '66.gif', '67.gif', '68.gif', '69.gif'
]
]);
smileData.push([
'Mini',
'http://heartka.com/plurksmile/kolobok/',
[
'1.gif', '2.gif', '3.gif', '4.gif', '5.gif', '6.gif', '7.gif', '8.gif', '9.gif', '10.gif', '11.gif', '12.gif', '13.gif', '14.gif', '15.gif', '16.gif', '17.gif', '18.gif', '19.gif', '20.gif', '21.gif', '22.gif', '23.gif', '24.gif', '25.gif', '26.gif', '27.gif','28.gif', '29.gif', '30.gif', '31.gif', '32.gif', '33.gif', '34.gif', '35.gif', '36.gif', '37.gif', '38.gif', '39.gif', '40.gif', '41.gif', '42.gif', '43.gif', '44.gif', '45.gif', '46.gif', '47.gif', '48.gif', '49.gif', '50.gif', '51.gif', '52.gif', '53.gif', '54.gif', '55.gif', '56.gif'
]
]);
var isinit = false;
var currInput = null;
var rplreg = /\[(\d+) (\d+)\]/g;
var pageState = location.href.split('/')[3];
window.addEventListener('load', function()
{
setTimeout(function()
{
var selImgs = document.getElementsByClassName('smily_holder');
// bind key up event
if(pageState == 'p')
getById('input_permalink').addEventListener('keyup', replaceSmile,
false);
else
{
getById('input_big').addEventListener('keyup', replaceSmile, false);
getById('input_small').addEventListener('keyup', replaceSmile, false);
}
// csinálj fület! :D
for(var i=0; i<selImgs.length; i++)
{
selImgs[i].setAttribute('ref', selImgs.length - i);
selImgs[i].addEventListener('click', function()
{
isinit || setTimeout(init, 1000);
currInput = pageState != 'p' ? this.getAttribute('ref') == 2 ?
getById('input_big') : getById('input_small') : getById('input_permalink');
}, false);
}
}, 2000);
}, false);
// init
function init()
{
isinit = true;
// init contents
for(var i=0; i<smileData.length; i++)
{
addTab(i, smileData[i]);
}
// init css
getById('emoticons_show').style.width = '100%';
getById('emoticons_show').style.height = '150px';
getById('emoticons_show').style.overflow = 'auto';
}
function replaceSmile()
{
if(rplreg.test(this.value))
this.value = this.value.replace(rplreg, doReplace);
}
function doReplace(str, datid, smileid)
{
arr = smileData[datid];
if (typeof(arr) != 'undefined')
{
if(typeof(arr[2][smileid]) != 'undefined')
str = ' ' + smileData[datid][1] + smileData[datid][2][smileid] + ' ';
}
return str;
}
function addTab(id, data)
{
var myli = document.createElement('li');
myli.className = 'emoticon_selecter';
myli.innerHTML = '<a href="javascript:void 0;">'+data[0]+'</a>';
myli.addEventListener('click', function()
{
addImages(this, id);
}, false);
getById('emoticons_tabs').getElementsByTagName('ul')[0].appendChild(myli);
}
function addImages(obj, ind)
{
var showDiv = getById('emoticons_show');
var lis = getById('emoticons_tabs').getElementsByTagName('li');
for(var i=0; i<lis.length; i++)
lis[i].className = 'emoticon_selecter';
obj.className += ' current';
var data = smileData[ind];
var baseUrl = data[1];
var str = '<div>';
for(var i=0, dat = data[2], _url; i<dat.length; i++)
{
_url = baseUrl + dat[i];
str += '<a href="javascript:void 0;"><img src="'+_url+'" alt="'+dat[i]+'"
title="['+ind+' '+i+']" /></a>';
}
str += '</div>';
showDiv.innerHTML = str;
var imgs = showDiv.getElementsByTagName('img');
for(var i=0; i<imgs.length; i++)
{
imgs[i].addEventListener('click', function()
{
currInput.value += ' ' + this.src + ' ';
currInput.focus();
}, false);
}
}
function getById(oid)
{
return document.getElementById(oid);
}