iamcal.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /* jshint sub: true */
  2. /** @define {string} */
  3. var CLASS="";
  4. window['makeEmoji'] = function(name) {
  5. var emoji,
  6. emojiName;
  7. if (typeof(name) === "string") {
  8. for (var i =0, nbEmojis = emojis.length; i < nbEmojis && !emoji; i++) {
  9. var emojiNames = emojis[i].names;
  10. for (var j=0, nbEmojiName = emojiNames.length ;j < nbEmojiName && !emoji; j++)
  11. if (emojiNames[j] === name && emojis[i][CLASS])
  12. emoji = emojis[i];
  13. emojiName = name;
  14. }
  15. } else {
  16. emoji = name;
  17. emojiName = emoji["names"][0];
  18. }
  19. if(emoji) {
  20. var dom = document.createElement("span");
  21. dom.className="emoji iamcal iamcal-" +CLASS;
  22. dom.title = emojiName;
  23. dom.style.backgroundPosition = (-66 * emoji["sprite"][0]) +"px " +(-66 * emoji["sprite"][1]) +"px";
  24. return dom;
  25. }
  26. return null;
  27. };
  28. window['emojiProviderHeader']="iamcal.logo.svg";
  29. window['searchEmojis'] = function(queryString, nameOnly) {
  30. var result = {},
  31. queryLength = queryString.length;
  32. lp: for (var emojiIndex =0, nbEmojis = emojis.length; emojiIndex < nbEmojis; emojiIndex++) {
  33. var currentEmoji = emojis[emojiIndex];
  34. if (!currentEmoji[CLASS])
  35. continue;
  36. for (var nameIndex =0, nbNames = currentEmoji.names.length; nameIndex < nbNames; nameIndex++) {
  37. if(currentEmoji["names"][nameIndex].substr(0, queryLength) === queryString) {
  38. result[currentEmoji["names"][0]] = currentEmoji;
  39. continue lp;
  40. }
  41. }
  42. }
  43. return result;
  44. };