// An array of colours that will be applied to H2 tags.
var H2Cols = ['#FFFFFF', '#FFCC99', '#FF9900', '#FF6633', '#FF3333', '#FF0000'];

// 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();
 }
}


