
function timelinePlay(tmLnName, myID) { 
  var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,propNum,theObj,firstTime=false;
  if (document.Time == null) initTimelines(); //if *very* 1st time
  tmLn = document.Time[tmLnName];
  if (myID == null) { myID = ++tmLn.ID; firstTime=true;}//if new call, incr ID
  if (myID == tmLn.ID) { //if Im newest
    setTimeout('timelinePlay("'+tmLnName+'",'+myID+')',tmLn.delay);
    fNew = ++tmLn.curFrame;
    for (i=0; i<tmLn.length; i++) {
      sprite = tmLn[i];
      if (sprite.charAt(0) == 's') {
        if (sprite.obj) {
          numKeyFr = sprite.keyFrames.length; firstKeyFr = sprite.keyFrames[0];
          if (fNew >= firstKeyFr && fNew <= sprite.keyFrames[numKeyFr-1]) {//in range
            keyFrm=1;
            for (j=0; j<sprite.values.length; j++) {
              props = sprite.values[j]; 
              if (numKeyFr != props.length) {
                if (props.prop2 == null) sprite.obj[props.prop] = props[fNew-firstKeyFr];
                else        sprite.obj[props.prop2][props.prop] = props[fNew-firstKeyFr];
              } else {
                while (keyFrm<numKeyFr && fNew>=sprite.keyFrames[keyFrm]) keyFrm++;
                if (firstTime || fNew==sprite.keyFrames[keyFrm-1]) {
                  if (props.prop2 == null) sprite.obj[props.prop] = props[keyFrm-1];
                  else        sprite.obj[props.prop2][props.prop] = props[keyFrm-1];
        } } } } }
      } else if (sprite.charAt(0)=='b' && fNew == sprite.frame) eval(sprite.value);
      if (fNew > tmLn.lastFrame) tmLn.ID = 0;
  } }
}

function initTimelines() { 
    var ns = navigator.appName == "Netscape";
    var ns4 = (ns && parseInt(navigator.appVersion) == 4);
    var ns5 = (ns && parseInt(navigator.appVersion) > 4);
    document.Time = new Array(1);
    document.Time[0] = new Array(1);
    document.Time["Timeline1"] = document.Time[0];
    document.Time[0].Name = "Timeline1";
    document.Time[0].fps = 15;
    document.Time[0][0] = new String("sprite");
    document.Time[0][0].slot = 1;
    if (ns4)
        document.Time[0][0].obj = document["etes"];
    else if (ns5)
        document.Time[0][0].obj = document.getElementById("etes");
    else
        document.Time[0][0].obj = document.all ? document.all["etes"] : null;
    document.Time[0][0].keyFrames = new Array(52, 63);
    document.Time[0][0].values = new Array(2);
    if (ns5)
        document.Time[0][0].values[0] = new Array("516px", "516px", "516px", "516px", "516px", "516px", "516px", "516px", "516px", "516px", "516px", "516px");
    else
        document.Time[0][0].values[0] = new Array(516,516,516,516,516,516,516,516,516,516,516,516);
    document.Time[0][0].values[0].prop = "left";
    if (ns5)
        document.Time[0][0].values[1] = new Array("214px", "172px", "130px", "87px", "45px", "3px", "-39px", "-81px", "-123px", "-166px", "-208px", "-250px");
    else
        document.Time[0][0].values[1] = new Array(214,172,130,87,45,3,-39,-81,-123,-166,-208,-250);
    document.Time[0][0].values[1].prop = "top";
    if (!ns4) {
        document.Time[0][0].values[0].prop2 = "style";
        document.Time[0][0].values[1].prop2 = "style";
    }
    document.Time[0].lastFrame = 63;
    for (i=0; i<document.Time.length; i++) {
        document.Time[i].ID = null;
        document.Time[i].curFrame = 0;
        document.Time[i].delay = 1000/document.Time[i].fps;
    }
}

