Szukałem, szukałem i nie znalazłem... może źle szukałem?

Chodzi o animowanie tekstu w taki sposób:
Jest napis i literka po literce zmienia się kolor, aż pokolorujemy cały napis, gdy to się stanie napis zaczyna powracać w taki sam sposób do poprzedniego koloru.

Napisałem swój kod, jednak nadal wolałbym jakiś gotowy plugin.

Kod wygląda tak:
[JAVASCRIPT] pobierz, plaintext
  1. var animates = new Array();
  2.  
  3. function start() {
  4. for (i=0; i < animates.length; i++) {
  5. animates[i].animate();
  6. }
  7. setTimeout('start()', 100);
  8. }
  9.  
  10. var animateText = function(id) {
  11.  
  12. this.id = id;
  13. this.animated = new Array();
  14.  
  15. this.cut = function() {
  16. var text = $("#" + this.id).html();
  17. this.animated['length'] = text.length;
  18. this.animated['eq'] = 0;
  19. this.animated['old'] = 'white';
  20.  
  21. $("#" + this.id).html(' ');
  22.  
  23. for (i=0; i <= this.animated['length']; i++) {
  24. $("#" + this.id).append('<span style="display: inline;">' + text.slice(i, i+1) + '</span>');
  25. }
  26.  
  27. this.animate();
  28. }
  29.  
  30. this.animate = function() {
  31. var color = 'red';
  32. if (this.animated['old'] == 'red') {
  33. color = 'white';
  34. }
  35.  
  36. if (this.animated['eq'] < this.animated['length']) {
  37. $("#" + this.id + " span:eq(" + this.animated['eq'] + ")").css('color', color);
  38. this.animated['eq']++;
  39. }else{
  40. this.animated['old'] = color;
  41. this.animated['eq'] = 0;
  42. this.stop++;
  43. }
  44. }
  45.  
  46. this.cut();
  47. animates.push(this);
  48.  
  49. }
  50.  
  51.  
  52.  
  53. $(document).ready(
  54. function() {
  55. var obj = new animateText('regul');
  56. start();
  57. }
  58. );
[JAVASCRIPT] pobierz, plaintext


Działać - działa...

Zna ktoś może plugin oferujący taką funkcjonalność?