You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /**
  2. * Processes links and smileys in "body"
  3. */
  4. function processReplacements(body)
  5. {
  6. //make links clickable
  7. body = linkify(body);
  8. //add smileys
  9. body = smilify(body);
  10. return body;
  11. }
  12. /**
  13. * Finds and replaces all links in the links in "body"
  14. * with their <a href=""></a>
  15. */
  16. function linkify(inputText)
  17. {
  18. var replacedText, replacePattern1, replacePattern2, replacePattern3;
  19. //URLs starting with http://, https://, or ftp://
  20. replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
  21. replacedText = inputText.replace(replacePattern1, '<a href="$1" target="_blank">$1</a>');
  22. //URLs starting with "www." (without // before it, or it'd re-link the ones done above).
  23. replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
  24. replacedText = replacedText.replace(replacePattern2, '$1<a href="http://$2" target="_blank">$2</a>');
  25. //Change email addresses to mailto:: links.
  26. replacePattern3 = /(([a-zA-Z0-9\-\_\.])+@[a-zA-Z\_]+?(\.[a-zA-Z]{2,6})+)/gim;
  27. replacedText = replacedText.replace(replacePattern3, '<a href="mailto:$1">$1</a>');
  28. return replacedText;
  29. }
  30. /**
  31. * Replaces common smiley strings with images
  32. */
  33. function smilify(body)
  34. {
  35. if(!body)
  36. return body;
  37. body = body.replace(/(:\(|:\(\(|:-\(\(|:-\(|\(sad\))/gi, "<img src="+smiley1+ ">");
  38. body = body.replace(/(\(angry\))/gi, "<img src="+smiley2+ ">");
  39. body = body.replace(/(\(n\))/gi, "<img src="+smiley3+ ">");
  40. body = body.replace(/(:-\)\)|:\)\)|;-\)\)|;\)\)|\(lol\)|:-D|:D|;-D|;D)/gi, "<img src="+smiley4+ ">");
  41. body = body.replace(/(;-\(\(|;\(\(|;-\(|;\(|:'\(|:'-\(|:~-\(|:~\(|\(upset\))/gi, "<img src="+smiley5+ ">");
  42. body = body.replace(/(<3|&lt;3|\(L\)|\(l\)|\(H\)|\(h\))/gi, "<img src="+smiley6+ ">");
  43. body = body.replace(/(\(angel\))/gi, "<img src="+smiley7+ ">");
  44. body = body.replace(/(\(bomb\))/gi, "<img src="+smiley8+ ">");
  45. body = body.replace(/(\(chuckle\))/gi, "<img src="+smiley9+ ">");
  46. body = body.replace(/(\(y\)|\(Y\)|\(ok\))/gi, "<img src="+smiley10+ ">");
  47. body = body.replace(/(;-\)|;\)|:-\)|:\))/gi, "<img src="+smiley11+ ">");
  48. body = body.replace(/(\(blush\))/gi, "<img src="+smiley12+ ">");
  49. body = body.replace(/(:-\*|:\*|\(kiss\))/gi, "<img src="+smiley13+ ">");
  50. body = body.replace(/(\(search\))/gi, "<img src="+smiley14+ ">");
  51. body = body.replace(/(\(wave\))/gi, "<img src="+smiley15+ ">");
  52. body = body.replace(/(\(clap\))/gi, "<img src="+smiley16+ ">");
  53. body = body.replace(/(\(sick\))/gi, "<img src="+smiley17+ ">");
  54. body = body.replace(/(:-P|:P|:-p|:p)/gi, "<img src="+smiley18+ ">");
  55. body = body.replace(/(:-\0|\(shocked\))/gi, "<img src="+smiley19+ ">");
  56. body = body.replace(/(\(oops\))/gi, "<img src="+smiley20+ ">");
  57. return body;
  58. }