function initAnimation() {
  layerObj = (isNS) ? 'document' : 'document.all';
  styleObj = (isNS) ? '' : '.style';
  animationTime = new Array();
  animationTimeline = new Array();
  animatedObjects = new Object();
  
  bullet0 = new animatedObject('bullet0L', 'no', 25, 25, 'null', '0,0,0,0');
  bullet1 = new animatedObject('bullet1L', 'no', 25, 25, 'null', '323,209, 324,213, 325,219, 326,224, 327,229, 327,235, 328,241, 328,246');
  bullet2 = new animatedObject('bullet2L', 'no', 25, 25, 'null', '328,246, 328,256, 327,261, 327,266, 326,271, 325,277, 323,284, 321,290');
  bullet3 = new animatedObject('bullet3L', 'no', 25, 25, 'null', '321,290, 318,296, 315,300, 313,304, 311,308, 309,312, 305,317, 302,322, 299,327');
  bullet4 = new animatedObject('bullet4L', 'no', 25, 25, 'null', '299,327, 296,331, 291,335, 287,340, 283,344, 279,348, 274,352, 268,355, 264,359, 261,361');

  animationTimeline[0] = new Array();
  animationTimeline[0][0] = 'bullet0.show();';  
  animationTimeline[0][5] = 'bullet1.show(); bullet1.animate();';
  animationTimeline[0][10] = 'bullet2.show(); bullet2.animate();';
  animationTimeline[0][15] = 'bullet3.show(); bullet3.animate();';
  animationTimeline[0][20] = 'bullet4.show(); bullet4.animate();';
  startTimeline(0);
}

// ignore this - just defines the variables outside the functions so they're public.
var layerObj, styleObj, totalTime, currTime;
var animationTime, animationTimeline, animatedObjects;
var bon, boff;

// Detect for Navigator/IE and Dynamic HTML capabilities.
var isNS = (document.layers);
var isDHTML = (document.layers || document.all);