<PUBLIC:COMPONENT URN="rainbow" name="darainbow()"/> <PUBLIC:ATTACH EVENT = "oncontentready" ONEVENT ="beginIt()"/> <SCRIPT language="javascript"> var Kill_ID=null; var internalvalue; var originalvalue; function putvalue(){ element.innerHTML=internalvalue; encapsulate(); startSwirl(); } function eventHandler(){ clearInterval(Kill_ID); internalvalue=element.value; element.detachEvent("onpropertychange",eventHandler); if(event.propertyName=="value"){ element.innerHTML=internalvalue; putvalue(); } else startSwirl(); element.attachEvent("onpropertychange",eventHandler); } function swirl(){ var I; I=ran(internalvalue.length-1,0); if(element.children(I) != null)element.children(I).style.color=randomColor(); } function startSwirl(){ if (element.swirlInterval == null) element.swirlInterval=50; if ((internalvalue!=null) && (element.swirlInterval!=0)) Kill_ID=setInterval(swirl,element.swirlInterval); } function encapsulate(){ var I; var tempStr=""; for (I=0; I < internalvalue.length; I++){ tempStr += "<SPAN style=\"color:"+randomColor()+"\">" + internalvalue.substr(I,1) + "</SPAN>"; } innerHTML=tempStr; } function ran(upperbound, lowerbound){ return(parseInt((upperbound - lowerbound + 1) * Math.random() + lowerbound)); } function randomColor(){ var R=ran(255,0); var G=ran(255,0); var B=ran(255,0); R=R.toString(16); G=G.toString(16); B=B.toString(16); if (R.length==1)R="0"+R; if (G.length==1)G="0"+G; if (B.length==1)B="0"+B; return("#"+R+G+B); } function beginIt(){ internalvalue=element.value; originalvalue=element.innerHTML; if (internalvalue==null) internalvalue=element.innerHTML; putvalue(); element.attachEvent("onpropertychange",eventHandler); } function clearIt(){ clearInterval(Kill_ID); element.detachEvent("onpropertychange",eventHandler); element.innerHTML=originalvalue; } </script>
|