var x,y;
var step=20;
var els;
var safari = navigator.userAgent.indexOf("Safari") != -1;

// Your snappy message. Important: the space at the end of the sentence!!!
var message="JOY! ";
message=message.split("");
var working = false;

var xpos=new Array();
for (i=0;i<=message.length-1;i++) {
	xpos[i]=-50;
}

var ypos=new Array();
for (i=0;i<message.length;i++) {
	ypos[i]=-50;
}

if(document.all)
	window.attachEvent("onload",loadSnake);
else
	window.addEventListener("load",loadSnake,false);

function loadSnake() {
	var b = document.getElementsByTagName("body").item(0);
	var d;
	for (i=0;i<=message.length-1;i++) {
		d = document.createElement("div");
		d.setAttribute("id", "ltr" + i);		
		d.style.position = "absolute";
		d.style.top = "-50px";
		d.style.zIndex = "99";
		d.style.fontWeight = "bold";
		d.style.fontSize = "12pt";
		d.style.fontFamily = "Comic Sans MS";
		d.style.color = "#DD0000";
			
		d.appendChild(document.createTextNode(message[i]));
		b.appendChild(d);
	}
	
	els = new Array();
	for(i=0; i<message.length-1; i++) {
		els[i] = document.getElementById("ltr" + i);
	}
}

function makeSnake(event) {
	if(working)
		return;
	
	working = true;

	if(safari) {
		// Safari gives wrong clientX,Y
		x = event.clientX;
		y = event.clientY;
	} else {
		x = event.clientX + document.documentElement.scrollLeft;
		y = event.clientY + document.documentElement.scrollTop;
	}

	for(i=message.length-1; i>=1; i--) {
		xpos[i]=xpos[i-1]+step;
		ypos[i]=ypos[i-1];
	}
	xpos[0]=x+step;
	ypos[0]=y;

	for(i=0; i<message.length-1; i++) {
		els[i].style.left=xpos[i] + "px";
		els[i].style.top=ypos[i] + "px";
	}
	working = false;
}

if(document.all) {
	document.attachEvent("onmousemove", makeSnake);
} else {
	document.addEventListener("mousemove", makeSnake, false);
}