//madrush-003.js  used to animate jpg images into movie

var delay;
var delayMs;
var speedMetPerSec;
var currentFrameNum;

var mach1             = 340; // speed of sound in metres/sec
var mphMetresPerSec   = 1609.344/3600; //mph to metre/sec
var mach1mph          = mach1/mphMetresPerSec; // speed of sound in miles/hour
var spatialseparation = 20; //metres
var numpics           = 159;
var loaded            = false;
var prefix            = "walk-20m-360x270/walk-20m-";
var extension         = ".jpg";
var pauseflag;
var revflag;
var F;//document.myform
var nReady;

var pics=new Array(numpics);


function animateWhenLoaded()
{
var j=0;
nReady=0;
while (j<numpics) if (pics[j++].complete) nReady++;

if (nReady == numpics)
  {
  F.speed2.click();
  animate();
  }
else
  {
  window.status = "" + nReady + " images loaded";
  setTimeout('animateWhenLoaded()',100);
  }
}


function init_animation()
{
F = document.myform;
if (!document.images) return;
currentFrameNum = 0;
pauseflag = false;
revflag=false;
F.pausecheck.checked=false;
F.revcheck.checked=false;

//load images
var str="Loading";

for (var j=0;j<numpics;j++)
  {
  pics[j] = new Image();
  pics[j].src = prefix + j + extension;
  window.status = str;
  str = str+".";
  }

animateWhenLoaded();
}


function animate()
{
if (!pauseflag)
  {
  if (revflag) currentFrameNum = (numpics - 1 + currentFrameNum) % numpics;
  else currentFrameNum = (1+ currentFrameNum) % numpics;
  document.pic.src = pics[currentFrameNum].src;
  }
setTimeout('animate()',delayMs);
}


function setspeed(metresPerSec)
{
speedMetPerSec = metresPerSec;
delay = spatialseparation/speedMetPerSec;
delayMs = 1000*delay;
var fps = 1.0/delay;
var mach = speedMetPerSec/mach1;
var msg = fps.toFixed(1) + " frames/sec, speed = " + speedMetPerSec.toFixed(1) + " metres/sec = Mach " + mach.toFixed(1) + "  " + nReady + " images loaded";
window.status = msg;
pauseflag=false;
F.pausecheck.checked=false;
}


function pausecheckhandler()
{
pauseflag = F.pausecheck.checked;
}

function revcheckhandler()
{
revflag = F.revcheck.checked;
}


