
  msg=msg.split("")
  var mlen=msg.length
  var chars=mlen
  var xpos=new Array()
          for (i=0;i<=mlen-1;i++) { xpos[i]=-50 }
  var ypos=new Array()
          for (i=0;i<=mlen-1;i++) { ypos[i]=-50 }
  var prevchars

function scrollObj(e) {
   x = (document.layers) ? e.pageX : document.body.scrollLeft+event.clientX
   y = (document.layers) ? e.pageY : document.body.scrollTop+event.clientY
   prevchars=chars
   chars=mlen
   if (prevchars==0) {
	// if chars was 0, that means the doTrail function will not be running
	// so we need to re-spawn it
	doTrail()
   }
}
function doTrail() {

 if (chars>0) {			// do we have any characters left to draw?
   if (document.all) {
     for (i=mlen-1; i>=1; i--) {
       xpos[i]=xpos[i-1]+offset
       ypos[i]=ypos[i-1]
     }
     xpos[0]=x+offset
     ypos[0]=y
     for (i=0; i<mlen-1; i++) {
       var spanPos = eval("span"+(i)+".style")
       spanPos.posLeft=xpos[i]
       spanPos.posTop=ypos[i]
     }
   }
   else if (document.layers) {
     for (i=mlen-1; i>=1; i--) {
       xpos[i]=xpos[i-1]+offset
       ypos[i]=ypos[i-1]
     }
     xpos[0]=x+offset
     ypos[0]=y
     for (i=0; i<mlen-1; i++) {
       var spanPos = eval("document.span"+i)
       spanPos.left=xpos[i]
       spanPos.top=ypos[i]
     }
   }
   chars--;
   var timer=setTimeout("doTrail()",30)	// continue drawing in a little bit...
 }
}



function stopErrors() {
	        return true;
        }
window.onerror = stopErrors;
document.write("\n")
for (i=0;i<=msg.length-1;i++) {
        document.write("<span id='span"+i+"' class='newStyle'>")
        document.write(msg[i])
        document.write("</span>\n")
}
if (document.layers){
        document.captureEvents(Event.MOUSEMOVE);
}
document.onmousemove = scrollObj;
