Facebook
From figaro, 2 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 104
  1. Paste in Embed > Code
  2.  
  3. <script type='text/javascript'>
  4. //<![CDATA[
  5. var rate = 50;
  6. if (document.getElementById)
  7. window.onerror=new Function("return true")
  8. var objActive; // The object which event occured in
  9. var act = 0; // Flag during the action
  10. var elmH = 0; // Hue
  11. var elmS = 128; // Saturation
  12. var elmV = 255; // Value
  13. var clrOrg; // A color before the change
  14. var TimerID; // Timer ID
  15. if (document.all) {
  16. document.onmouseover = doRainbowAnchor;
  17. document.onmouseout = stopRainbowAnchor;
  18. }
  19. else if (document.getElementById) {
  20. document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT);
  21. document.onmouseover = MozilladoRainbowAnchor;
  22. document.onmouseout = MozillastopRainbowAnchor;
  23. }
  24. function doRainbow(obj)
  25. {
  26. if (act == 0) {
  27. act = 1;
  28. if (obj)
  29. objActive = obj;
  30. else
  31. objActive = event.srcElement;
  32. clrOrg = objActive.style.color;
  33. TimerID = setInterval("ChangeColor()",100);
  34. }
  35. }
  36. function stopRainbow()
  37. {
  38. if (act) {
  39. objActive.style.color = clrOrg;
  40. clearInterval(TimerID);
  41. act = 0;
  42. }
  43. }
  44. function doRainbowAnchor()
  45. {
  46. if (act == 0) {
  47. var obj = event.srcElement;
  48. while (obj.tagName != 'A' && obj.tagName != 'BODY') {
  49. obj = obj.parentElement;
  50. if (obj.tagName 'A' || obj.tagName 'BODY')
  51. break;
  52. }
  53. if (obj.tagName == 'A' && obj.href != '') {
  54. objActive = obj;
  55. act = 1;
  56. clrOrg = objActive.style.color;
  57. TimerID = setInterval("ChangeColor()",100);
  58. }
  59. }
  60. }
  61. function stopRainbowAnchor()
  62. {
  63. if (act) {
  64. if (objActive.tagName == 'A') {
  65. objActive.style.color = clrOrg;
  66. clearInterval(TimerID);
  67. act = 0;
  68. }
  69. }
  70. }
  71. function MozilladoRainbowAnchor(e)
  72. {
  73. if (act == 0) {
  74. obj = e.target;
  75. while (obj.nodeName != 'A' && obj.nodeName != 'BODY') {
  76. obj = obj.parentNode;
  77. if (obj.nodeName 'A' || obj.nodeName 'BODY')
  78. break;
  79. }
  80. if (obj.nodeName == 'A' && obj.href != '') {
  81. objActive = obj;
  82. act = 1;
  83. clrOrg = obj.style.color;
  84. TimerID = setInterval("ChangeColor()",100);
  85. }
  86. }
  87. }
  88. function MozillastopRainbowAnchor(e)
  89. {
  90. if (act) {
  91. if (objActive.nodeName == 'A') {
  92. objActive.style.color = clrOrg;
  93. clearInterval(TimerID);
  94. act = 0;
  95. }
  96. }
  97. }
  98. function ChangeColor()
  99. {
  100. objActive.style.color = makeColor();
  101. }
  102. function makeColor()
  103. {
  104. // Don't you think Color Gamut to look like Rainbow?
  105. // HSVtoRGB
  106. if (elmS == 0) {
  107. elmR = elmV; elmG = elmV; elmB = elmV;
  108. }
  109. else {
  110. t1 = elmV;
  111. t2 = (255 - elmS) elmV / 255;
  112. t3 = elmH % 60;
  113. t3 = (t1 - t2) t3 / 60;
  114. if (elmH < 60) {
  115. elmR = t1; elmB = t2; elmG = t2 + t3;
  116. }
  117. else if (elmH < 120) {
  118. elmG = t1; elmB = t2; elmR = t1 - t3;
  119. }
  120. else if (elmH < 180) {
  121. elmG = t1; elmR = t2; elmB = t2 + t3;
  122. }
  123. else if (elmH < 240) {
  124. elmB = t1; elmR = t2; elmG = t1 - t3;
  125. }
  126. else if (elmH < 300) {
  127. elmB = t1; elmG = t2; elmR = t2 + t3;
  128. }
  129. else if (elmH < 360) {
  130. elmR = t1; elmG = t2; elmB = t1 - t3;
  131. }
  132. else {
  133. elmR = 0; elmG = 0; elmB = 0;
  134. }
  135. }
  136. elmR = Math.floor(elmR).toString(16);
  137. elmG = Math.floor(elmG).toString(16);
  138. elmB = Math.floor(elmB).toString(16);
  139. if (elmR.length == 1) elmR = "0" + elmR;
  140. if (elmG.length == 1) elmG = "0" + elmG;
  141. if (elmB.length == 1) elmB = "0" + elmB
  142. elmH = elmH + rate;
  143. if (elmH >= 360)
  144. elmH = 0;
  145. return '#' + elmR + elmG + elmB;
  146. }
  147. //]]>
  148. </script>
  149.