Полный код букмарклета с пробелами, комментариями и переносами строк:
javascript:void((function(){ /* Wrapping в void, чтобы не было waiting mode курсора при длительных операциях. Anonymous function expression, которая на ходу компилируется и сразу исполняется, чтобы вообще не трогать внешнее пространство имён. */ /* Путь к файлам (с конечным слешем): */ var u='http://kursk1943.narod.ru/tmp/'; /* Всего классических смайлов (smiley) 4 типа: var s=[ 'LOL', /* Laughing Out Loud, громко смеюсь :D */ 'SMILE', /* улыбаюсь :) */ 'WINK', /* подмигиваю ;) */ 'FROWN' /* огорчён, грущу :( */ ]; /* Всё, все остальные приблуды - это тем, кому мама купила первый компьютер :-) */ /* Стандартный конец названий файлов, добавляем к именам вверху: */ var e='_small.gif'; /* Прячем <, > и " в Unicode для совместимости: */ var l='\u003C'; var g='\u003E'; var q='\u0022'; /* Комбинируем часто используемые строки для компактности и скорости: */ var a=l+'img src='+q; var b=q+' alt='+q; var c=q+g; var s0=a+u+s[0]+e+b+':D'+c; var s1=a+u+s[1]+e+b+':)'+c; var s2=a+u+s[2]+e+b+';)'+c; var s3=a+u+s[3]+e+b+':('+c; /* Pre-declare временные внутренние переменные: */ var t; /* Заменяем самые частотные текстовые смайлы на графику: */ var m=$('contentBox').getElementsByTagName('P'); for(var i=0;i<m.length;i++){ if (m[i].className=='message'){ t=m[i].innerHTML; /* LOL: :-)) :)) =)) ))) :-))) ... */ t=t.replace(/:-\){2,}|:\){2,}|=\){2,}|\){3,}/g, s0); /* SMILE :-) :) =) )) */ t=t.replace(/:-\)|:\)|=\)|\)\)/g, s1); /* WINK ;-) ;) */ t=t.replace(/;-\)|;\)/g, s2); /* FROWN :-( :( =( (( :-(( ... */ t=t.replace(/:-\({1,}|:\({1,}|=\({1,}|\({2,}/g, s3); m[i].innerHTML=t; } } /* Расширяем TEXTAREA и форматируем как готовые сообщения: */ t=document.forms['sendForm'].elements['message']; if (t) { // Пользователь зарегистрирован t=t.style; t.width='40em'; t.font='13px Verdana, sans-serif'; t.color='#154B8E'; } /* Применяем favicon для страницы (идея иконки от пользователя Yappy) */ t=document.createElement('LINK'); t.rel='SHORTCUT ICON'; t.href=u+'Z.ico'; _('HEAD')[0].appendChild(t); /* Внутренняя функция как аlias для document.getElementById: */ function $(a){return document.getElementById(a)} /* Внутренняя функция как аlias для document.getElementsByTagName: */ function _(a){return document.getElementsByTagName(a)} })())