// An array of colours that will be applied to h2 tags.
var h2Cols = ['#BAB4AC', '#DDDDDD', '#BBBBBB', '#999999', '#777777', '#555555'];

// Main script.
var h2Arr = [];
function h2Setup()
{
h2Arr = document.getElementsByTagName('h2');
for (var h = 0; h < h2Arr.length; h++)
{
var h2 = h2Arr[h], text = h2.firstChild.nodeValue;
h2.removeChild(h2.firstChild);
h2.animNodes = [];
for (var i = 0; i < text.length; i++)
{
var span = document.createElement('span');
span.appendChild(document.createTextNode(text.substring(i, i+1)));
h2.appendChild(span);
h2.animNodes[h2.animNodes.length] = span;
}
h2.animCount = 0;
h2.animTimer = setInterval('h2Anim(' + h + ')', 50);
}
};
function h2Anim(h)
{
var h2 = h2Arr[h], c = h2.animCount++, noAnim = 1;
for (var i = 0; i < h2.animNodes.length; i++)
{
var s = h2.animNodes[i], frac = Math.max(0, Math.min(1, (c-i)/10)),
marg = document.all && !window.opera ? 'marginRight' : 'marginLeft';
if (s.animDone) continue;
noAnim = 0;
s.style.color = h2Cols[Math.floor(frac * 0.99999 * h2Cols.length)];
if (frac == 1)
{
s.style[marg] = '0';
s.animDone = 1;
}
else s.style[marg] = 0.6*(1-frac) + 'em';
}
if (noAnim) clearInterval(h2.animTimer);
h2.style.visibility = 'inherit';
};

if (document.documentElement)
{
// Hide h2 elements for animation and trigger show on load.
document.write('<style type="text/css"> h2 { visibility: hidden } </style>');
var h2aOL = window.onload;
window.onload = function()
{
if (h2aOL) h2aOL();
h2Setup();
}
}