<script type="text/javascript">
var rainbowcount = 0;
var glitcount=0;
var glitstring='';
var shimmercount=0;
var shimmerstring='';
var ie4 = false;
if(document.all) {
ie4 = true;
}
function setContent(name, value) {
var d;
if (ie4) {
d = document.all[name];
} else {
d = document.getElementById(name);
}
d.innerHTML = value;
}
function getContent(name) {
var d;
if (ie4) {
d = document.all[name];
} else {
d = document.getElementById(name);
}
return d.innerHTML;
}
function setColor(name, value) {
var d;
if (ie4) {
d = document.all[name];
} else {
d = document.getElementById(name);
}
d.style.color = value;
}
function getColor(name) {
var d;
if (ie4) {
d = document.all[name];
} else {
d = document.getElementById(name);
}
return d.style.color;
}
function toSpans(span) {
var str=span.firstChild.data;
var a=str.length;
span.removeChild(span.firstChild);
for(var i=0; i<a; i++) {
var theSpan=document.createElement("SPAN");
theSpan.appendChild(document.createTextNode(str.charAt(i)));
span.appendChild(theSpan);
}
}
function glitter(name, col, speed) {
var value = getContent(name);
while ( value.indexOf(" ", "-10") != (-1) ) {
var value = value.replace(" ", "");
};
if (value.indexOf('<span') >= 0) { return; }
var length = 0;
var str = '';
var ch;
var token = '';
var htmltag = false;
for (i = 0; i < value.length; i++) {
ch = value.substring(i, i+1);
if (i < value.length - 1) { nextch = value.substring(i+1, i+2); } else { nextch = ' '; }
token += ch;
if (ch == '<' && '/aAbBpPhHiIoOuUlLtT'.indexOf(nextch) >= 0) { htmltag = true; }
if (ch == '>' && htmltag) { htmltag = false; }
if (!htmltag && ch.charCodeAt(0) > 30 && ch != ' ' && ch != '\n') {
str += '<span id="' + name + '_' + length + '">' + token + '</span>';
token = '';
length++;
}
}
setContent(name, str);
glitcommand = 'glitterloop(\'' + name + '\', ' + length + ', 0, 1, \'' + col + '\', ' + speed + ')';
setTimeout(glitcommand , speed);
}
function shine(name, col, speed) {
var value = getContent(name);
while ( value.indexOf(" ", "-10") != (-1) ) {
var value = value.replace(" ", "");
};
if (value.indexOf('<span') >= 0) { return; }
var length = 0;
var str = '';
var ch;
var token = '';
var htmltag = false;
for (i = 0; i < value.length; i++) {
ch = value.substring(i, i+1);
if (i < value.length - 1) { nextch = value.substring(i+1, i+2); } else { nextch = ' '; }
token += ch;
if (ch == '<' && '/aAbBpPhHiIoOuUlLtT'.indexOf(nextch) >= 0) { htmltag = true; }
if (ch == '>' && htmltag) { htmltag = false; }
if (!htmltag && ch.charCodeAt(0) > 30 && ch != ' ' && ch != '\n') {
str += '<span id="' + name + '_' + length + '">' + token + '</span>';
token = '';
length++;
}
}
setContent(name, str);
shinecommand = 'shineloop(\'' + name + '\', ' + length + ', 0, 1, \'' + col + '\', ' + speed + ')';
setTimeout(shinecommand , speed);
}
function RainbowSpan(span, hue, deg, brt, spd, hspd) {
this.deg=(deg==null?360:Math.abs(deg));
this.hue=(hue==null?0:Math.abs(hue)%360);
this.hspd=(hspd==null?3:Math.abs(hspd)%360);
this.length=span.firstChild.data.length;
this.span=span;
this.speed=(spd==null?50:Math.abs(spd));
this.hInc=this.deg/this.length;
this.brt=(brt==null?255:Math.abs(brt)%256);
this.timer=null;
toSpans(span);
this.moveRainbow();
}
RainbowSpan.prototype.moveRainbow = function() {
if(this.hue>359) this.hue-=360;
var color;
var b=this.brt;
var a=this.length;
var h=this.hue;
for(var i=0; i<a; i++) {
if(h>359) h-=360;
if(h<60) { color=Math.floor(((h)/60)*b); red=b;grn=color;blu=0; }
else if(h<120) { color=Math.floor(((h-60)/60)*b); red=b-color;grn=b;blu=0; }
else if(h<180) { color=Math.floor(((h-120)/60)*b); red=0;grn=b;blu=color; }
else if(h<240) { color=Math.floor(((h-180)/60)*b); red=0;grn=b-color;blu=b; }
else if(h<300) { color=Math.floor(((h-240)/60)*b); red=color;grn=0;blu=b; }
else { color=Math.floor(((h-300)/60)*b); red=b;grn=0;blu=b-color; }
h+=this.hInc;
this.span.childNodes[i].style.color="rgb("+red+", "+grn+", "+blu+")";
}
this.hue+=this.hspd;
}
function shineloop(name, length, ind, delta, col, speed) {
var next = ind + delta;
if (next >= length) { delta = delta * -1; next = ind + delta; }
if (next < 0) { delta = delta * -1; next = ind + delta; }
setColor(name + '_' + ind, getColor(name + '_' + next));
setColor(name + '_' + next, col);
shinecommand = 'shineloop(\'' + name + '\', ' + length + ', ' + next + ', ' + delta + ', \'' + col + '\', ' + speed + ')';
setTimeout(shinecommand , speed);
}
function glitterloop(name, length, ind, delta, col, speed) {
var new_spd = Math.floor(Math.random()*31);
var new_spd = (new_spd - 15);
var new_spd = (new_spd + speed);
var next = Math.floor(Math.random()*(length+1));
if (next >= length) { delta = delta * -1; next = (-1); }
if (next < 0) { delta = delta * -1; next = 1; }
setColor(name + '_' + ind, getColor(name + '_' + next));
setColor(name + '_' + next, col);
glitcommand = 'glitterloop(\'' + name + '\', ' + length + ', ' + next + ', ' + delta + ', \'' + col + '\', ' + speed + ')';
setTimeout(glitcommand , new_spd);
}
</script>