
function MM_initTimelines() { //v4.0
    //MM_initTimelines() Copyright 1997 Macromedia, Inc. All rights reserved.
    var ns = navigator.appName == "Netscape";
    var ns4 = (ns && parseInt(navigator.appVersion) == 4);
    var ns5 = (ns && parseInt(navigator.appVersion) > 4);
    document.MM_Time = new Array(1);
    document.MM_Time[0] = new Array(2);
    document.MM_Time["Timeline1"] = document.MM_Time[0];
    document.MM_Time[0].MM_Name = "Timeline1";
    document.MM_Time[0].fps = 8;
    document.MM_Time[0][0] = new String("behavior");
    document.MM_Time[0][0].frame = 106;
    document.MM_Time[0][0].value = "MM_timelineGoto('Timeline1','1')";
    document.MM_Time[0][1] = new String("sprite");
    document.MM_Time[0][1].slot = 1;
    if (ns4)
        document.MM_Time[0][1].obj = document["spaceman"];
    else if (ns5)
        document.MM_Time[0][1].obj = document.getElementById("spaceman");
    else
        document.MM_Time[0][1].obj = document.all ? document.all["spaceman"] : null;
    document.MM_Time[0][1].keyFrames = new Array(1, 7, 10, 12, 17, 27, 36, 39, 43, 45, 47, 52, 55, 61, 70, 79, 85);
    document.MM_Time[0][1].values = new Array(2);
    if (ns5)
        document.MM_Time[0][1].values[0] = new Array("26px", "39px", "51px", "64px", "75px", "86px", "95px", "107px", "114px", "120px", "122px", "128px", "135px", "144px", "154px", "166px", "178px", "184px", "191px", "198px", "205px", "213px", "220px", "227px", "234px", "241px", "247px", "254px", "260px", "265px", "271px", "276px", "280px", "284px", "287px", "290px", "293px", "291px", "287px", "284px", "279px", "275px", "270px", "263px", "255px", "246px", "233px", "224px", "213px", "201px", "190px", "180px", "171px", "165px", "157px", "151px", "144px", "137px", "130px", "122px", "114px", "108px", "103px", "97px", "91px", "85px", "79px", "74px", "68px", "63px", "58px", "54px", "49px", "45px", "41px", "38px", "34px", "31px", "29px", "27px", "26px", "25px", "25px", "26px", "26px");
    else
        document.MM_Time[0][1].values[0] = new Array(26,39,51,64,75,86,95,107,114,120,122,128,135,144,154,166,178,184,191,198,205,213,220,227,234,241,247,254,260,265,271,276,280,284,287,290,293,291,287,284,279,275,270,263,255,246,233,224,213,201,190,180,171,165,157,151,144,137,130,122,114,108,103,97,91,85,79,74,68,63,58,54,49,45,41,38,34,31,29,27,26,25,25,26,26);
    document.MM_Time[0][1].values[0].prop = "left";
    if (ns5)
        document.MM_Time[0][1].values[1] = new Array("43px", "44px", "44px", "45px", "45px", "46px", "47px", "50px", "53px", "58px", "66px", "74px", "77px", "79px", "81px", "84px", "89px", "93px", "96px", "100px", "105px", "109px", "114px", "120px", "125px", "131px", "137px", "144px", "152px", "160px", "168px", "177px", "184px", "192px", "199px", "206px", "221px", "232px", "243px", "252px", "260px", "266px", "272px", "276px", "278px", "283px", "288px", "289px", "290px", "291px", "292px", "291px", "288px", "283px", "278px", "275px", "272px", "269px", "265px", "260px", "254px", "249px", "243px", "237px", "230px", "223px", "216px", "208px", "201px", "193px", "186px", "178px", "171px", "163px", "155px", "147px", "139px", "131px", "122px", "109px", "95px", "82px", "68px", "55px", "41px");
    else
        document.MM_Time[0][1].values[1] = new Array(43,44,44,45,45,46,47,50,53,58,66,74,77,79,81,84,89,93,96,100,105,109,114,120,125,131,137,144,152,160,168,177,184,192,199,206,221,232,243,252,260,266,272,276,278,283,288,289,290,291,292,291,288,283,278,275,272,269,265,260,254,249,243,237,230,223,216,208,201,193,186,178,171,163,155,147,139,131,122,109,95,82,68,55,41);
    document.MM_Time[0][1].values[1].prop = "top";
    if (!ns4) {
        document.MM_Time[0][1].values[0].prop2 = "style";
        document.MM_Time[0][1].values[1].prop2 = "style";
    }
    document.MM_Time[0].lastFrame = 106;
    for (i=0; i<document.MM_Time.length; i++) {
        document.MM_Time[i].ID = null;
        document.MM_Time[i].curFrame = 0;
        document.MM_Time[i].delay = 1000/document.MM_Time[i].fps;
    }
}

function MM_timelinePlay(tmLnName, myID) { //v1.2
  //Copyright 1997 Macromedia, Inc. All rights reserved.
  var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,propNum,theObj,firstTime=false;
  if (document.MM_Time == null) MM_initTimelines(); //if *very* 1st time
  tmLn = document.MM_Time[tmLnName];
  if (myID == null) { myID = ++tmLn.ID; firstTime=true;}//if new call, incr ID
  if (myID == tmLn.ID) { //if Im newest
    setTimeout('MM_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 MM_timelineGoto(tmLnName, fNew, numGotos) { //v2.0
  //Copyright 1997 Macromedia, Inc. All rights reserved.
  var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,lastKeyFr,propNum,theObj;
  if (document.MM_Time == null) MM_initTimelines(); //if *very* 1st time
  tmLn = document.MM_Time[tmLnName];
  if (numGotos != null)
    if (tmLn.gotoCount == null) tmLn.gotoCount = 1;
    else if (tmLn.gotoCount++ >= numGotos) {tmLn.gotoCount=0; return}
  jmpFwd = (fNew > tmLn.curFrame);
  for (i = 0; i < tmLn.length; i++) {
    sprite = (jmpFwd)? tmLn[i] : tmLn[(tmLn.length-1)-i]; //count bkwds if jumping back
    if (sprite.charAt(0) == "s") {
      numKeyFr = sprite.keyFrames.length;
      firstKeyFr = sprite.keyFrames[0];
      lastKeyFr = sprite.keyFrames[numKeyFr - 1];
      if ((jmpFwd && fNew<firstKeyFr) || (!jmpFwd && lastKeyFr<fNew)) continue; //skip if untouchd
      for (keyFrm=1; keyFrm<numKeyFr && fNew>=sprite.keyFrames[keyFrm]; keyFrm++);
      for (j=0; j<sprite.values.length; j++) {
        props = sprite.values[j];
        if (numKeyFr == props.length) propNum = keyFrm-1 //keyframes only
        else propNum = Math.min(Math.max(0,fNew-firstKeyFr),props.length-1); //or keep in legal range
        if (sprite.obj != null) {
          if (props.prop2 == null) sprite.obj[props.prop] = props[propNum];
          else        sprite.obj[props.prop2][props.prop] = props[propNum];
      } }
    } else if (sprite.charAt(0)=='b' && fNew == sprite.frame) eval(sprite.value);
  }
  tmLn.curFrame = fNew;
  if (tmLn.ID == 0) eval('MM_timelinePlay(tmLnName)');
}

