Зенит Общение: Экстра ver.0.2


Полный код букмарклета с пробелами, комментариями и переносами строк:

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)}

})())
Hosted by uCoz