/modules/mod_base/lib/js/modules/z.smiley.js

https://code.google.com/p/zotonic/ · JavaScript · 157 lines · 128 code · 4 blank · 25 comment · 6 complexity · 7ac1ce054ff08d9685ced4fc7571df62 MD5 · raw file

  1. /* z.smiley.js
  2. ----------------------------------------------------------
  3. @author Marc Worrell <marc@worrell.nl>
  4. @author Ben Alman
  5. Incorporates code by Ben Alman:
  6. http://benalman.com/projects/jquery-replacetext-plugin/
  7. Copyright 2011 Marc Worrell
  8. Copyright 2009 Ben Alman
  9. Licensed under the Apache License, Version 2.0 (the "License");
  10. you may not use this file except in compliance with the License.
  11. You may obtain a copy of the License at
  12. http://www.apache.org/licenses/LICENSE-2.0
  13. Unless required by applicable law or agreed to in writing, software
  14. distributed under the License is distributed on an "AS IS" BASIS,
  15. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16. See the License for the specific language governing permissions and
  17. limitations under the License.
  18. ---------------------------------------------------------- */
  19. $.widget("ui.smiley", {
  20. _init: function() {
  21. var html = $(this.element).html;
  22. var smileys = this.options.smileys;
  23. this.element.each(function(){
  24. var node = this.firstChild, val, new_val, remove = [];
  25. if (node) {
  26. do {
  27. if ( node.nodeType === 3 ) {
  28. val = node.nodeValue;
  29. new_val = val;
  30. for (var i=0; i<smileys.length; i++) {
  31. var img = '<img src="'+smileys[i].u+'" alt="'+smileys[i].d+'"/>';
  32. new_val = new_val.replace(smileys[i].k, img);
  33. };
  34. if ( new_val !== val ) {
  35. $(node).before( new_val );
  36. remove.push( node );
  37. }
  38. }
  39. } while ( node = node.nextSibling );
  40. }
  41. remove.length && $(remove).remove();
  42. });
  43. }
  44. });
  45. $.ui.smiley.defaults = {
  46. smileys: [
  47. { k:'(ff)', d:"big hug", u:"/lib/images/smileys/firefox.gif" },
  48. { k:'>:D<', d:"big hug", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/6.gif" },
  49. { k:'#:-S', d:"whew!", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/18.gif" },
  50. { k:'O:-)', d:"angel", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/25.gif" },
  51. { k:'<:-P', d:"party", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/36.gif" },
  52. { k:':-SS', d:"nail biting", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/42.gif" },
  53. { k:'<):)', d:"cowboy", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/48.gif" },
  54. { k:':-bd', d:"thumbs up", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/113.gif" },
  55. { k:'^#(^', d:"it wasn't me", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/114.gif" },
  56. { k:':ar!', d:"pirate", u:"http://l.yimg.com/a/i/us/msg/emoticons/pirate_2.gif" },
  57. { k:':-??', d:"I don't know", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/106.gif" },
  58. { k:'3:-O', d:"cow", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/50.gif" },
  59. { k:':(|)', d:"monkey", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/51.gif" },
  60. { k:'@};-', d:"rose", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/53.gif" },
  61. { k:'**==', d:"flag", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/55.gif" },
  62. { k:'(~~)', d:"pumpkin", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/56.gif" },
  63. { k:'*-:)', d:"idea", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/58.gif" },
  64. { k:'[-O<', d:"praying", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/63.gif" },
  65. { k:':)>-', d:"peace sign", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/67.gif" },
  66. { k:'\\:D/', d:"dancing", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/69.gif" },
  67. { k:'^:)^', d:"not worthy", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/77.gif" },
  68. { k:'[..]', d:"transformer", u:"http://l.yimg.com/a/i/us/msg/emoticons/transformer.gif" },
  69. { k:';;)', d:"batting eyelashes", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/5.gif" },
  70. { k:':-/', d:"confused", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/7.gif" },
  71. { k:':">', d:"blushing", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/9.gif" },
  72. { k:':-*', d:"kiss", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/11.gif" },
  73. { k:'=((', d:"broken heart", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/12.gif" },
  74. { k:':-O', d:"surprise", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/13.gif" },
  75. { k:'B-)', d:"cool", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/16.gif" },
  76. { k:':-S', d:"worried", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/17.gif" },
  77. { k:'>:)', d:"devil", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/19.gif" },
  78. { k:':((', d:"crying", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/20.gif" },
  79. { k:':))', d:"laughing", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/21.gif" },
  80. { k:'/:)', d:"raised eyebrows", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/23.gif" },
  81. { k:'=))', d:"rolling on the floor", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/24.gif" },
  82. { k:':-B', d:"nerd", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/26.gif" },
  83. { k:':-c', d:"call me", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/101.gif" },
  84. { k:':)]', d:"on the phone", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/100.gif" },
  85. { k:'~X(', d:"at wits' end", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/102.gif" },
  86. { k:':-h', d:"wave", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/103.gif" },
  87. { k:':-t', d:"time out", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/104.gif" },
  88. { k:'8->', d:"day dreaming", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/105.gif" },
  89. { k:'I-)', d:"sleepy", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/28.gif" },
  90. { k:'8-|', d:"rolling eyes", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/29.gif" },
  91. { k:'L-)', d:"loser", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/30.gif" },
  92. { k:':-&', d:"sick", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/31.gif" },
  93. { k:':-$', d:"don't tell anyone", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/32.gif" },
  94. { k:'[-(', d:"no talking", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/33.gif" },
  95. { k:':O)', d:"clown", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/34.gif" },
  96. { k:'8-}', d:"silly", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/35.gif" },
  97. { k:'(:|', d:"yawn", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/37.gif" },
  98. { k:'=P~', d:"drooling", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/38.gif" },
  99. { k:':-?', d:"thinking", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/39.gif" },
  100. { k:'#-o', d:"d'oh", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/40.gif" },
  101. { k:'=D>', d:"applause", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif" },
  102. { k:'@-)', d:"hypnotized", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/43.gif" },
  103. { k:':^o', d:"liar", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/44.gif" },
  104. { k:':-w', d:"waiting", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/45.gif" },
  105. { k:':-<', d:"sigh", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/46.gif" },
  106. { k:'>:P', d:"phbbbbt", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/47.gif" },
  107. { k:'X_X', d:"I don't want to see", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/109.gif" },
  108. { k:':!!', d:"hurry up!", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/110.gif" },
  109. { k:'\\m/', d:"rock on!", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/111.gif" },
  110. { k:':-q', d:"thumbs down", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/112.gif" },
  111. { k:':o3', d:"puppy dog eyes", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/108.gif" },
  112. { k:'%-(', d:"not listening", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/107.gif" },
  113. { k:':@)', d:"pig", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/49.gif" },
  114. { k:'~:>', d:"chicken", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/52.gif" },
  115. { k:'%%-', d:"good luck", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/54.gif" },
  116. { k:'~O)', d:"coffee", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/57.gif" },
  117. { k:'8-X', d:"skull", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/59.gif" },
  118. { k:'=:)', d:"bug", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/60.gif" },
  119. { k:'>-)', d:"alien", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/61.gif" },
  120. { k:':-L', d:"frustrated", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/62.gif" },
  121. { k:'$-)', d:"money eyes", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/64.gif" },
  122. { k:':-"', d:"whistling", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/65.gif" },
  123. { k:'b-(', d:"feeling beat up", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/66.gif" },
  124. { k:'[-X', d:"shame on you", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/68.gif" },
  125. { k:'>:/', d:"bring it on", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/70.gif" },
  126. { k:';))', d:"hee hee", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/71.gif" },
  127. { k:':-@', d:"chatterbox", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/76.gif" },
  128. { k:':-j', d:"oh go on", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/78.gif" },
  129. { k:'(*)', d:"star", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/79.gif" },
  130. { k:'o->', d:"hiro", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/72.gif" },
  131. { k:'o=>', d:"billy", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/73.gif" },
  132. { k:'o-+', d:"april", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/74.gif" },
  133. { k:'(%)', d:"yin yang", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/75.gif" },
  134. { k:':bz', d:"bee", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/115.gif" },
  135. { k:':)', d:"happy", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/1.gif" },
  136. { k:':(', d:"sad", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/2.gif" },
  137. { k:';)', d:"winking", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/3.gif" },
  138. { k:':D', d:"big grin", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/4.gif" },
  139. { k:':x', d:"love struck", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/8.gif" },
  140. { k:':P', d:"tongue", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/10.gif" },
  141. { k:'X(', d:"angry", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/14.gif" },
  142. { k:':>', d:"smug", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/15.gif" },
  143. { k:':|', d:"straight face", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/22.gif" },
  144. { k:'=;', d:"talk to the hand", u:"http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/27.gif" }
  145. ]
  146. };