LINUX.ORG.RU
 
wfrr

Я даже не знаю что сказать, на лоре появились смайлы.


0

1

анимированные.

// ==UserScript==
// @name           Подпесь
// @namespace      linux.org.ru
// @include        http://www.linux.org.ru/forum/*
// ==/UserScript==

//smiles
function Smiles() {
  var site = "http://www.kolobok.us/smiles/standart/";
  var smiles = {
	  "*acute*":"acute.gif",
	  "*aggressive*":"aggressive.gif",
	  "*agree*":"agree.gif",
	  "*air_kiss*":"air_kiss.gif",
	  "*bad*":"bad.gif",
	  "*beee*":"beee.gif",
	  "*black_eye*":"black_eye.gif",
	  "*blum2*":"blum2.gif",
	  "*blum3*":"blum3.gif",
	  "*blush2*":"blush2.gif",
	  "*blush*":"blush.gif",
	  "*boast*":"boast.gif",
	  "*boredom*":"boredom.gif",
	  "*censored*":"censored.gif",
	  "*clapping*":"clapping.gif",
	  "*cray2*":"cray2.gif",
	  "*cray*":"cray.gif",
	  "*dance2*":"dance2.gif",
	  "*dance3*":"dance3.gif",
	  "*dance4*":"dance4.gif",
	  "*dance*":"dance.gif",
	  "*declare*":"declare.gif",
	  "*derisive*":"derisive.gif",
	  "*dirol*":"dirol.gif",
	  "*dntknw*":"dntknw.gif",
	  "*don-t_mention*":"don-t_mention.gif",
	  "*download*":"download.gif",
	  "*drinks*":"drinks.gif",
	  "*fool*":"fool.gif",
	  "*friends*":"friends.gif",
	  "*good2*":"good2.gif",
	  "*good3*":"good3.gif",
	  "*good*":"good.gif",
	  "*grin*":"grin.gif",
	  "*heat*":"heat.gif",
	  "*help*":"help.gif",
	  "*i-m_so_happy*":"i-m_so_happy.gif",
	  "*ireful1*":"ireful1.gif",
	  "*ireful2*":"ireful2.gif",
	  "*ireful3*":"ireful3.gif",
	  "*kiss*":"kiss.gif",
	  "*laugh*":"laugh1.gif",
	  "*laugh2*":"laugh2.gif",
	  "*laugh3*":"laugh3.gif",
	  "*lazy2*":"lazy2.gif",
	  "*lazy3*":"lazy3.gif",
	  "*lazy*":"lazy.gif",
	  "*mda*":"mda.gif",
	  "*meeting*":"meeting.gif",
	  "*mosking*":"mosking.gif",
	  "*nea*":"nea.gif",
	  "*negative*":"negative.gif",
	  "*no2*":"no2.gif",
	  "*not_i*":"not_i.gif",
	  "*offtopic*":"offtopic.gif",
	  "*ok*":"ok.gif",
	  "*pardon*":"pardon.gif",
	  "*party*":"party.gif",
	  "*pleasantry*":"pleasantry.gif",
	  "*polling*":"polling.gif",
	  "*popcorm1*":"popcorm1.gif",
	  "*popcorm2*":"popcorm2.gif",
	  "*punish2*":"punish2.gif",
	  "*punish*":"punish.gif",
	  "*read*":"read.gif",
	  "*resent*":"resent.gif",
	  "*rofl*":"rofl.gif",
	  "*sad*":"sad.gif",
	  "*scare2*":"scare2.gif",
	  "*scare*":"scare.gif",
	  "*sclerosis*":"sclerosis.gif",
	  "*scratch_one-s_head*":"scratch_one-s_head.gif",
	  "*search*":"search.gif",
	  "*secret*":"secret.gif",
	  "*padonak*":"SHABLON_padonak_04.gif",
	  "*SHABLON_padonak_05*":"SHABLON_padonak_05.gif",
	  "*SHABLON_padonak_06*":"SHABLON_padonak_06.gif",
	  "*shout*":"shout.gif",
	  "*smile*":"smile3.gif",
	  "*smoke*":"smoke.gif",
	  "*snooks*":"snooks.gif",
	  "*sorry2*":"sorry2.gif",
	  "*sorry*":"sorry.gif",
	  "*stink*":"stink.gif",
	  "*stop*":"stop.gif",
	  "*superstition*":"superstition.gif",
	  "*swoon2*":"swoon2.gif",
	  "*swoon*":"swoon.gif",
	  "*take_example*":"take_example.gif",
	  "*taunt*":"taunt.gif",
	  "*thank_you2*":"thank_you2.gif",
	  "*thank_you*":"thank_you.gif",
	  "*this*":"this.gif",
	  "*threaten*":"threaten.gif",
	  "*to_clue*":"to_clue.gif",
	  "*tongue*":"tongue.gif",
	  "*to_take_umbrage*":"to_take_umbrage.gif",
	  "*umnik2*":"umnik2.gif",
	  "*umnik*":"umnik.gif",
	  "*unsure*":"unsure.gif",
	  "*victory*":"victory.gif",
	  "*whistle2*":"whistle2.gif",
	  "*whistle3*":"whistle3.gif",
	  "*whistle*":"whistle.gif",
	  "*wink3*":"wink3.gif",
	  "*yahoo*":"yahoo.gif",
	  "*yes2*":"yes2.gif",
	  "*yes3*":"yes3.gif",
	  "*yes4*":"yes4.gif",
	  "*yes*":"yes.gif",
	  "*yu*":"yu.gif"
  }
  var thiz = this;
  this.subtitute = function(i, node) {
	if(node.nodeName == "#text") {
	  var str = node.nodeValue;
	  var parsed = [];
	  for(var i = 0; i >= 0 && i < str.length; ) {
		i = str.indexOf("*", i);
		if(i < 0) {
		  break;
		}
		var end = str.indexOf("*", i  + 1) + 1;
		if(end < 1) {
		  break;
		}
		var smile = str.substring(i, end);
		var gif = smiles[smile.toLowerCase()];
		//console.debug(smile);
	    if(smile && gif) {
		  parsed.push({
			s: i,
			e: end,
			gif: gif
		  });
		}
		i = end + 1;
	  }
	  //замена
	  var parent = node.parentNode;
	  for(var i = parsed.length - 1; i >= 0 ; --i) {
		var p = parsed[i];
		var text = node.splitText(p.s);
		text.deleteData(0, p.e - p.s);//удаление смайла
		var img = document.createElement("img");
		img.src = site + p.gif;
		parent.insertBefore(img, text);
	  }
	}
	for(var i = 0 ; i < node.childNodes.length; ++i) {
	  thiz.subtitute(i, node.childNodes[i]);
	}
  }
  
  this.createMenu = function(handler) {
	var menu = document.createElement("div");
	for(var s in smiles) {
	  var se = document.createElement("img");
	  se.src = site + smiles[s];
	  se.addEventListener("click", (function(s){
	    return function(){handler(s)};
	  })(s), false);
	  menu.appendChild(se);
	}
	return menu;
  }
}

try{
  var smiles = new Smiles();
  var jQuery = unsafeWindow.jQuery;
  jQuery(".msg_body p").each(smiles.subtitute);
  var msg = document.getElementById("msg");
  var menu = smiles.createMenu(function(smile) {
 	var val = msg.value;
	var s = msg.selectionStart;
	var e = msg.selectionEnd;
	msg.value = val.substring(0, s) + smile + val.substring(s, val.length);
  });
  msg.parentNode.insertBefore(menu, msg);
} catch(e) {
//  console.debug(e);
}

Вот как выглядит форма отправки:

http://img153.imageshack.us/img153/3406/55203891.png

Вот результат:

http://img708.imageshack.us/img708/7928/78667317.png

НАУЧИ КОМПЬЮТЕР ВАРИТЬ КОФЕ

управление электрическими цепями с помощью компьютера
лучший подарок для техногика; только открытые программы
http://www.unicontrollers.com/products/unc01x

[#]  
doctorx

ШТОО?!

лор уже точно не торт.

** ()
[#]  
sin_a

> Вот результат:

Ничего не понял, ты обещал анимированный смайл а показываешь сцылку какую-то.

У тебя, походу, белочка.

***** ()
[#] Ответ на: комментарий от sin_a 09.01.2011 16:51:07  
wfrr

Все пучком, просто их видно избранным *dirol*

_____________

document.getElementById("msg").value = "\n\nПривет, isden!";

**# ()
[#]  
DNA_Seq

Кто дал выферу мануал по юзерскриптам?

*** ()
[#]  

белка жжот!!!11

* ()
[#] Ответ на: комментарий от wfrr 09.01.2011 16:52:48  
system-root

> *dirol*
>document.getElementById("msg").value = "\n\nПривет, isden!";



ну да, куда уж нам..

* ()
[#] Ответ на: комментарий от wfrr 09.01.2011 16:52:48  
sin_a

А, ну так тогда всё нормально. Это не на лоре, это у этих.., у "избранных" (похоже теперь это так называется).

***** ()
[#]  
Zhbert

Куда катится лор...

*** ()
[#] Ответ на: комментарий от Zhbert 09.01.2011 16:55:56  

да он давно там уже

* ()
[#]  

Всё правильно.

Поскольку смайлы не нужны, от них многие хотели бы отказаться. А как отказаться от того, чего и так нет?

Теперь они есть и можно смело говорить, что смайлами не пользуюсь не потому, что нет возможности, а потому что не нужны.

* ()
[#] Ответ на: комментарий от wfrr 09.01.2011 16:57:52  

а остальным значит предлагаешь наблюдать эту, простите за непотрество, мудоту? Спасибо, удружил

*** ()
[#] Ответ на: комментарий от Pinkbyte 09.01.2011 17:03:11  
wfrr

А что те не нравится? Мне вот твой ник ненравится, что делать бум?

**# ()
[#]  
different_thing

Ай да белка!

Айда в модераторы!

()
[#]  
xorik

Белка, когда тебя уже отпустит?

***** ()
[#]  
Sadler

Ты страшный человек^W белк. :) Прикрути 3D к ЛОРу, пожалуйста...

* ()
[#]  
thesis

Жги еще, много полезных плюшек осталось нереализованными. Например, можно реализовать вставку видюшек с ютубы или новостей с хабра.

*** ()
[#]  
fedor

Реквест можно?

Тему для stylish "ВЛоре".
Я кончил.

* ()
[#] Ответ на: комментарий от xorik 09.01.2011 17:10:36  
wfrr

Щас каникулы вот закончатся...

_____________

© Белка Inc.

**# ()
[#]  
wyldrodney

Когда программисту заняться нечем, он яйца лизать начинает.

# ()
[#] Ответ на: комментарий от wyldrodney 09.01.2011 17:15:08  
wfrr

я не программист

_____________

© Белка Inc.

**# ()
[#]  
different_thing

Теперь на ЛОРе будут преволировать следующие комменты:

Первонах

*victory* *victory* *victory* *victory* *victory* *victory* *victory*

()
[#]  
kranky

Костыли ненужны.

*** ()
[#]  

Что-то я ничего не понял - подписи...смайлы..как их заюзать-то?

* ()
[#] Ответ на: комментарий от kranky 09.01.2011 17:24:14  
kranky

>Костыли ненужны.

Хотя это типичный опенсорц-вэй: вместо того, чтобы написать один небольшой патч к движку, лучше обвешаем его костылями и подпорками.

*facepalm* *facepalm* *facepalm* *facepalm*

*** ()
[#] Ответ на: комментарий от fedor 09.01.2011 17:26:10  

> Помогите установить генту, я девушка, хендбук читала.
> *-Wall* *-Wall* *-Wall* *-fomit-frame-pointer* *-O3*


fxd

**** ()
[#] Ответ на: комментарий от koirn 09.01.2011 17:26:26  
MrHouse

>как их заюзать-то?

google://javascript+%your_browser%

* ()
[#] Ответ на: комментарий от kranky 09.01.2011 17:28:40  
MrHouse

>написать один небольшой патч к движку

А кто его туда добавит?

* ()
[#] Ответ на: комментарий от wfrr 09.01.2011 17:06:27  
Devix

Сделай еще один скрипт который из текста удаляет все смайлики начинающиеся со * и заканчивающиеся тоже *

* ()
[#] Ответ на: комментарий от SebastianPoeiro 09.01.2011 17:23:28  
wfrr

Нет, даже не бызнесвумен. *smoke*

_____________

© Белка Inc.

**# ()
[#] Ответ на: комментарий от wfrr 09.01.2011 17:06:27  

чувак, а давай я в каждом посте буду писать слово "говно"? Ну или там "пидорасы"? Не оскорбляя никого, чисто так. Вот скажи - тебе приятно будет? При том что я МОГУ этого не делать?

Ты предлагаешь ввести подписи, которые будут видны всем тем, кто их принудительно не вырежет, причем вырезать их можно костылями, а не средствами движка ЛОРа? Знаешь, что, у меня много слов на эту тему накопилось, но во имя собственной безопасности я лучше промолчу... Я думаю мое мнение тебе уже и так понятно.

P.S. Насчет моего, твоего, да чьего угодно ника на этом ресурсе - если он удовлетворяет Правилам данного ресурса, то мы с тобой вряд ли сможем что-то сделать.

*** ()
[#] Ответ на: комментарий от Devix 09.01.2011 17:30:43  
different_thing

Пусть лучше показ небольших картинок прям в форуме.

()
[#] Ответ на: комментарий от kranky 09.01.2011 17:24:14  
slipbod

>Костыли ненужны
Это не костыль, это экзоскелет какой-то. С миниганом, лазерами и слотами для оружия :P

# ()
[#] Ответ на: комментарий от Devix 09.01.2011 17:30:43  
Devix

Можешь еще сделать скрип который удаляет подпись.

* ()
[#] Ответ на: комментарий от Pinkbyte 09.01.2011 17:35:55  
different_thing

> Не оскорбляя никого, чисто так. Вот скажи - тебе приятно будет?

Это просто недельная тенденция. "Неделя тупняка", "неделя недостатка внимания", "неделя быдлокодерства", итд...

()
[#] Ответ на: комментарий от kranky 09.01.2011 17:28:40  

>Хотя это типичный опенсорц-вэй: вместо того, чтобы написать один небольшой патч к движку, лучше обвешаем его костылями и подпорками.

к счастью не весь опенсорц такой.

>А кто его туда добавит?


ну так это, а реквест maxcom'у делать уже не модно? Особенно если в реквесте будет сам патч с возможностью отключения из профиля пользователя, чтобы каждый сам мог решить - надо оно ему или нет

*** ()
[#] Ответ на: комментарий от Pinkbyte 09.01.2011 17:38:48  
different_thing

Не прокатит. Нафига макскому добавлять скрипт "антибелка"? Ну а если патч поддержки смайликов - может и добавит, спроси его, чё)

()
[#]  
Devix

Вот и нет смайлов

// ==UserScript==
// @name           Подпесь
// @namespace      linux.org.ru
// @include        http://www.linux.org.ru/forum/*
// ==/UserScript==

//smiles
function Smiles() {
  var site = "http://www.kolobok.us/smiles/standart/";
  var smiles = {
     "*acute*":"acute.gif",
     "*aggressive*":"aggressive.gif",
     "*agree*":"agree.gif",
     "*air_kiss*":"air_kiss.gif",
     "*bad*":"bad.gif",
     "*beee*":"beee.gif",
     "*black_eye*":"black_eye.gif",
     "*blum2*":"blum2.gif",
     "*blum3*":"blum3.gif",
     "*blush2*":"blush2.gif",
     "*blush*":"blush.gif",
     "*boast*":"boast.gif",
     "*boredom*":"boredom.gif",
     "*censored*":"censored.gif",
     "*clapping*":"clapping.gif",
     "*cray2*":"cray2.gif",
     "*cray*":"cray.gif",
     "*dance2*":"dance2.gif",
     "*dance3*":"dance3.gif",
     "*dance4*":"dance4.gif",
     "*dance*":"dance.gif",
     "*declare*":"declare.gif",
     "*derisive*":"derisive.gif",
     "*dirol*":"dirol.gif",
     "*dntknw*":"dntknw.gif",
     "*don-t_mention*":"don-t_mention.gif",
     "*download*":"download.gif",
     "*drinks*":"drinks.gif",
     "*fool*":"fool.gif",
     "*friends*":"friends.gif",
     "*good2*":"good2.gif",
     "*good3*":"good3.gif",
     "*good*":"good.gif",
     "*grin*":"grin.gif",
     "*heat*":"heat.gif",
     "*help*":"help.gif",
     "*i-m_so_happy*":"i-m_so_happy.gif",
     "*ireful1*":"ireful1.gif",
     "*ireful2*":"ireful2.gif",
     "*ireful3*":"ireful3.gif",
     "*kiss*":"kiss.gif",
     "*laugh*":"laugh1.gif",
     "*laugh2*":"laugh2.gif",
     "*laugh3*":"laugh3.gif",
     "*lazy2*":"lazy2.gif",
     "*lazy3*":"lazy3.gif",
     "*lazy*":"lazy.gif",
     "*mda*":"mda.gif",
     "*meeting*":"meeting.gif",
     "*mosking*":"mosking.gif",
     "*nea*":"nea.gif",
     "*negative*":"negative.gif",
     "*no2*":"no2.gif",
     "*not_i*":"not_i.gif",
     "*offtopic*":"offtopic.gif",
     "*ok*":"ok.gif",
     "*pardon*":"pardon.gif",
     "*party*":"party.gif",
     "*pleasantry*":"pleasantry.gif",
     "*polling*":"polling.gif",
     "*popcorm1*":"popcorm1.gif",
     "*popcorm2*":"popcorm2.gif",
     "*punish2*":"punish2.gif",
     "*punish*":"punish.gif",
     "*read*":"read.gif",
     "*resent*":"resent.gif",
     "*rofl*":"rofl.gif",
     "*sad*":"sad.gif",
     "*scare2*":"scare2.gif",
     "*scare*":"scare.gif",
     "*sclerosis*":"sclerosis.gif",
     "*scratch_one-s_head*":"scratch_one-s_head.gif",
     "*search*":"search.gif",
     "*secret*":"secret.gif",
     "*padonak*":"SHABLON_padonak_04.gif",
     "*SHABLON_padonak_05*":"SHABLON_padonak_05.gif",
     "*SHABLON_padonak_06*":"SHABLON_padonak_06.gif",
     "*shout*":"shout.gif",
     "*smile*":"smile3.gif",
     "*smoke*":"smoke.gif",
     "*snooks*":"snooks.gif",
     "*sorry2*":"sorry2.gif",
     "*sorry*":"sorry.gif",
     "*stink*":"stink.gif",
     "*stop*":"stop.gif",
     "*superstition*":"superstition.gif",
     "*swoon2*":"swoon2.gif",
     "*swoon*":"swoon.gif",
     "*take_example*":"take_example.gif",
     "*taunt*":"taunt.gif",
     "*thank_you2*":"thank_you2.gif",
     "*thank_you*":"thank_you.gif",
     "*this*":"this.gif",
     "*threaten*":"threaten.gif",
     "*to_clue*":"to_clue.gif",
     "*tongue*":"tongue.gif",
     "*to_take_umbrage*":"to_take_umbrage.gif",
     "*umnik2*":"umnik2.gif",
     "*umnik*":"umnik.gif",
     "*unsure*":"unsure.gif",
     "*victory*":"victory.gif",
     "*whistle2*":"whistle2.gif",
     "*whistle3*":"whistle3.gif",
     "*whistle*":"whistle.gif",
     "*wink3*":"wink3.gif",
     "*yahoo*":"yahoo.gif",
     "*yes2*":"yes2.gif",
     "*yes3*":"yes3.gif",
     "*yes4*":"yes4.gif",
     "*yes*":"yes.gif",
     "*yu*":"yu.gif"
  }
  var thiz = this;
  this.subtitute = function(i, node) {
   if(node.nodeName == "#text") {
     var str = node.nodeValue;
     var parsed = [];
     for(var i = 0; i >= 0 && i < str.length; ) {
      i = str.indexOf("*", i);
      if(i < 0) {
        break;
      }
      var end = str.indexOf("*", i  + 1) + 1;
      if(end < 1) {
        break;
      }
      var smile = str.substring(i, end);
      var gif = smiles[smile.toLowerCase()];
      //console.debug(smile);
       if(smile && gif) {
        parsed.push({
         s: i,
         e: end,
         gif: gif
        });
      }
      i = end + 1;
     }
     //замена
     var parent = node.parentNode;
     for(var i = parsed.length - 1; i >= 0 ; --i) {
      var p = parsed[i];
      var text = node.splitText(p.s);
      text.deleteData(0, p.e - p.s);//удаление смайла
      var img = document.createElement("img");
      img.src = site + p.gif;
      //parent.insertBefore(img, text);
     }
   }
   for(var i = 0 ; i < node.childNodes.length; ++i) {
     thiz.subtitute(i, node.childNodes[i]);
   }
  }
  
  this.createMenu = function(handler) {
   var menu = document.createElement("div");
   for(var s in smiles) {
     var se = document.createElement("img");
     se.src = site + smiles[s];
     se.addEventListener("click", (function(s){
       return function(){handler(s)};
     })(s), false);
     menu.appendChild(se);
   }
   return menu;
  }
}

try{
  var smiles = new Smiles();
  var jQuery = unsafeWindow.jQuery;
  jQuery(".msg_body p").each(smiles.subtitute);
  var msg = document.getElementById("msg");
  var menu = smiles.createMenu(function(smile) {
    var val = msg.value;
   var s = msg.selectionStart;
   var e = msg.selectionEnd;
   msg.value = val.substring(0, s) + smile + val.substring(s, val.length);
  });
  msg.parentNode.insertBefore(menu, msg);
} catch(e) {
//  console.debug(e);
}

* ()
[#]  
Komintern

хосподи. белка осилила грейсманку. еще немного и белка научится думать о_0

***** ()
[#] Ответ на: комментарий от wfrr 09.01.2011 16:52:48  
Mystra_x64

Сейчас тебе ещё и за подпись подрежут… :}

***** ()
[#] Ответ на: комментарий от Correctnoe_imya_polzovatelya 09.01.2011 17:44:27  
Correctnoe_imya_polzovatelya

в теме Танго они выглядят на удивления гармонично *to_clue*

***** ()
[#] Ответ на: комментарий от Devix 09.01.2011 17:30:43  
sin_a

> Сделай еще один скрипт который из текста удаляет все смайлики начинающиеся со * и заканчивающиеся тоже *

И эту срань, как её.., подпись, да.

***** ()
[#] Ответ на: комментарий от Devix 09.01.2011 17:46:57  
different_thing

Быдлокод! Нафига там все коомбинации \*\w*\* перечислять?

()
[#] Ответ на: комментарий от Devix 09.01.2011 17:46:57  
Devix

Забыл меню удалить

// ==UserScript==
// @name           Подпесь
// @namespace      linux.org.ru
// @include        http://www.linux.org.ru/forum/*
// ==/UserScript==

//smiles
function Smiles() {
  var site = "http://www.kolobok.us/smiles/standart/";
  var smiles = {
     "*acute*":"acute.gif",
     "*aggressive*":"aggressive.gif",
     "*agree*":"agree.gif",
     "*air_kiss*":"air_kiss.gif",
     "*bad*":"bad.gif",
     "*beee*":"beee.gif",
     "*black_eye*":"black_eye.gif",
     "*blum2*":"blum2.gif",
     "*blum3*":"blum3.gif",
     "*blush2*":"blush2.gif",
     "*blush*":"blush.gif",
     "*boast*":"boast.gif",
     "*boredom*":"boredom.gif",
     "*censored*":"censored.gif",
     "*clapping*":"clapping.gif",
     "*cray2*":"cray2.gif",
     "*cray*":"cray.gif",
     "*dance2*":"dance2.gif",
     "*dance3*":"dance3.gif",
     "*dance4*":"dance4.gif",
     "*dance*":"dance.gif",
     "*declare*":"declare.gif",
     "*derisive*":"derisive.gif",
     "*dirol*":"dirol.gif",
     "*dntknw*":"dntknw.gif",
     "*don-t_mention*":"don-t_mention.gif",
     "*download*":"download.gif",
     "*drinks*":"drinks.gif",
     "*fool*":"fool.gif",
     "*friends*":"friends.gif",
     "*good2*":"good2.gif",
     "*good3*":"good3.gif",
     "*good*":"good.gif",
     "*grin*":"grin.gif",
     "*heat*":"heat.gif",
     "*help*":"help.gif",
     "*i-m_so_happy*":"i-m_so_happy.gif",
     "*ireful1*":"ireful1.gif",
     "*ireful2*":"ireful2.gif",
     "*ireful3*":"ireful3.gif",
     "*kiss*":"kiss.gif",
     "*laugh*":"laugh1.gif",
     "*laugh2*":"laugh2.gif",
     "*laugh3*":"laugh3.gif",
     "*lazy2*":"lazy2.gif",
     "*lazy3*":"lazy3.gif",
     "*lazy*":"lazy.gif",
     "*mda*":"mda.gif",
     "*meeting*":"meeting.gif",
     "*mosking*":"mosking.gif",
     "*nea*":"nea.gif",
     "*negative*":"negative.gif",
     "*no2*":"no2.gif",
     "*not_i*":"not_i.gif",
     "*offtopic*":"offtopic.gif",
     "*ok*":"ok.gif",
     "*pardon*":"pardon.gif",
     "*party*":"party.gif",
     "*pleasantry*":"pleasantry.gif",
     "*polling*":"polling.gif",
     "*popcorm1*":"popcorm1.gif",
     "*popcorm2*":"popcorm2.gif",
     "*punish2*":"punish2.gif",
     "*punish*":"punish.gif",
     "*read*":"read.gif",
     "*resent*":"resent.gif",
     "*rofl*":"rofl.gif",
     "*sad*":"sad.gif",
     "*scare2*":"scare2.gif",
     "*scare*":"scare.gif",
     "*sclerosis*":"sclerosis.gif",
     "*scratch_one-s_head*":"scratch_one-s_head.gif",
     "*search*":"search.gif",
     "*secret*":"secret.gif",
     "*padonak*":"SHABLON_padonak_04.gif",
     "*SHABLON_padonak_05*":"SHABLON_padonak_05.gif",
     "*SHABLON_padonak_06*":"SHABLON_padonak_06.gif",
     "*shout*":"shout.gif",
     "*smile*":"smile3.gif",
     "*smoke*":"smoke.gif",
     "*snooks*":"snooks.gif",
     "*sorry2*":"sorry2.gif",
     "*sorry*":"sorry.gif",
     "*stink*":"stink.gif",
     "*stop*":"stop.gif",
     "*superstition*":"superstition.gif",
     "*swoon2*":"swoon2.gif",
     "*swoon*":"swoon.gif",
     "*take_example*":"take_example.gif",
     "*taunt*":"taunt.gif",
     "*thank_you2*":"thank_you2.gif",
     "*thank_you*":"thank_you.gif",
     "*this*":"this.gif",
     "*threaten*":"threaten.gif",
     "*to_clue*":"to_clue.gif",
     "*tongue*":"tongue.gif",
     "*to_take_umbrage*":"to_take_umbrage.gif",
     "*umnik2*":"umnik2.gif",
     "*umnik*":"umnik.gif",
     "*unsure*":"unsure.gif",
     "*victory*":"victory.gif",
     "*whistle2*":"whistle2.gif",
     "*whistle3*":"whistle3.gif",
     "*whistle*":"whistle.gif",
     "*wink3*":"wink3.gif",
     "*yahoo*":"yahoo.gif",
     "*yes2*":"yes2.gif",
     "*yes3*":"yes3.gif",
     "*yes4*":"yes4.gif",
     "*yes*":"yes.gif",
     "*yu*":"yu.gif"
  }
  var thiz = this;
  this.subtitute = function(i, node) {
   if(node.nodeName == "#text") {
     var str = node.nodeValue;
     var parsed = [];
     for(var i = 0; i >= 0 && i < str.length; ) {
      i = str.indexOf("*", i);
      if(i < 0) {
        break;
      }
      var end = str.indexOf("*", i  + 1) + 1;
      if(end < 1) {
        break;
      }
      var smile = str.substring(i, end);
      var gif = smiles[smile.toLowerCase()];
      //console.debug(smile);
       if(smile && gif) {
        parsed.push({
         s: i,
         e: end,
         gif: gif
        });
      }
      i = end + 1;
     }
     //замена
     var parent = node.parentNode;
     for(var i = parsed.length - 1; i >= 0 ; --i) {
      var p = parsed[i];
      var text = node.splitText(p.s);
      text.deleteData(0, p.e - p.s);//удаление смайла
      var img = document.createElement("img");
      img.src = site + p.gif;
      //parent.insertBefore(img, text);
     }
   }
   for(var i = 0 ; i < node.childNodes.length; ++i) {
     thiz.subtitute(i, node.childNodes[i]);
   }
  }
  
  this.createMenu = function(handler) {
   var menu = document.createElement("div");
   for(var s in smiles) {
     var se = document.createElement("img");
     se.src = site + smiles[s];
     se.addEventListener("click", (function(s){
       return function(){handler(s)};
     })(s), false);
     menu.appendChild(se);
   }
   return menu;
  }
}

try{
  var smiles = new Smiles();
  var jQuery = unsafeWindow.jQuery;
  jQuery(".msg_body p").each(smiles.subtitute);
  var msg = document.getElementById("msg");
  //var menu = smiles.createMenu(function(smile) {
  //  var val = msg.value;
  // var s = msg.selectionStart;
  // var e = msg.selectionEnd;
  // msg.value = val.substring(0, s) + smile + val.substring(s, val.length);
  //});
  msg.parentNode.insertBefore(menu, msg);
} catch(e) {
//  console.debug(e);
}


* ()