LINUX.ORG.RU
ФорумTalks

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


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

★★☆

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

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

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

sin_a ★★★★★ ()

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

DNA_Seq ★★☆☆☆ ()
Ответ на: комментарий от wfrr

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

sin_a ★★★★★ ()

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

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

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

valentin_v13 ★★★ ()

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

Sadler ★★★ ()

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

thesis ★★★★★ ()

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

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

fedor ()
Ответ на: комментарий от xorik

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

_____________

© Белка Inc.

wfrr ★★☆ ()
Ответ на: комментарий от kranky

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

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

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

kranky ★★★★★ ()
Ответ на: комментарий от kranky

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

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

MrHouse ()
Ответ на: комментарий от wfrr

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

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

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

Pinkbyte ★★★★★ ()
Ответ на: комментарий от kranky

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

slipbod ()
Ответ на: комментарий от Devix

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

Devix ()
Ответ на: комментарий от Pinkbyte

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

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

different_thing ()
Ответ на: комментарий от kranky

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

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

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


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

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

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

different_thing ()

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

// ==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);
}

Devix ()

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

Komintern ★★★★★ ()
Ответ на: комментарий от wfrr

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

Deleted ()
Ответ на: комментарий от Devix

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

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

sin_a ★★★★★ ()
Ответ на: комментарий от 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);
}


Devix ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.