function remote() {
   RemoteWin = window.open("../../webcam/webcam.html","","resizable=yes,width=111,height=111");
   RemoteWin.creator = self;
}

var Seconds      =     61;
    ImageNr      =      1;
    //PageDocOffset =     5;
	PageDocOffset =     2;
    ImageOffset  =      1;
    CurrentImage =      0;
    Next         =      0;
    Images       =      1;
    MaxImages    = 61 - 1;  // actual - 1
    TimeMs       =    250;
    Dummy        =      1;
    StopSet      = false;
    Loading      = true;
    On           = false;
    Off          = true;
    Blank        = '../../images/WebCam/blank.jpg';
    Current      = '../../images/WebCam/turquas.jpg';
    Filled       = '../../images/WebCam/blue.jpg';
    Empty        = '../../images/WebCam/black.jpg';
    LoadedImages = new Array();

function GetFs() {
   TimeMs = 1000/FramesSec.value;
}
    
function PreLoadImages() {
    for (i=0; i<=MaxImages; i++) {
       LoadedImages[i] = new Image();
       LoadedImages[i].src = "../../webcam/image.jpg";
    }
}

function InitMeter() {
    for (i=0; i<=MaxImages; i++)
        document.write(
            '<img src="'
           + Empty
           + '" border="0" class="follow" onclick="Focus('
           + i
           + ')">');
}

function SetMeter(Position,Color) {
    document.images[MaxImages-Position+PageDocOffset+1].src = Color;
}

function GetTime() {
	   var now = new Date();
	   Dummystr = parseInt(now.getTime()/1000);
	   delete now
	   return Dummystr;
}
 
function Init() {
    document.images[PageDocOffset].src = "../../webcam/image.jpg?" + GetTime(); // Load First Image
    PreLoadImages(); // Init LoadedImages
    CurrentImage = 0;
    SetMeter(0,Current);
    document.getElementById('RemoveFrameButton').disabled = true;
	 document.getElementById('Seconds').value = Seconds;
	 document.getElementById('Images').value  = Images;
}

function NextImage(Next) {
    SetMeter(CurrentImage,Filled);
    CurrentImage = Next;
    DisplayImage();
}

      
function Focus(nr) {
    nr = MaxImages-nr+1;
    if (nr <= Images) {
        SetMeter(CurrentImage,Filled);
        CurrentImage = nr-1;
        DisplayImage();
    };
}

function First() {
    NextImage(Images-1);
}

function FastB() {
    Backward();
    if (CurrentImage < Images-1
    && !StopSet) {
       GetFs();
       Dummy1 = setTimeout ("FastB()", TimeMs);
    };
}
    
function FastBackward() {
    FastBackwardButton.style.color = "#00FF00";
    StopSet = false;
    FastB();
    FastBackwardButton.style.color = "#000000";
}

function Backward() {
    if (CurrentImage+1 < Images)
       NextImage(CurrentImage+1);
}

function Stop() {
    StopSet = true;
}

function Forward() {
    if (CurrentImage > 0)
       NextImage(CurrentImage-1);
}

function FastF() {
    Forward();
    if (CurrentImage > 0
    && !StopSet) {
       GetFs();
       Dummy1 = setTimeout ("FastF()", TimeMs);
    };
}
    
function FastForward() {
    FastForwardButton.style.color = '#00FF00';
    StopSet = false
    FastF();
    FastForwardButton.style.color = '#000000';
}

function Last() {
    NextImage(0);
}

function LapseBackward() {
    Last();
    GetFs();
    Dummy = setTimeout("FastBackward()", TimeMs);
}

function LapseForward() {
    First();
    GetFs();
    Dummy = setTimeout("FastForward()", TimeMs);
}

function DisplayImage() {
    document.images[PageDocOffset].src = LoadedImages[CurrentImage].src;
    document.getElementById('CurrentImage').value = -CurrentImage;
    SetMeter (CurrentImage, Current);
}
    
function LoadImage() {
	    for (i=MaxImages; i>0; i--)
	        LoadedImages[i].src = LoadedImages[i-1].src;
	    LoadedImages[0].src = "../../webcam/image.jpg?" + GetTime();
	    RemoveFrameButton.disabled = false;
}

function RemoveCurrentImage() {
    for (i=CurrentImage; i<Images-1; i++)
       LoadedImages[i].src = LoadedImages[i+1].src;
    if (CurrentImage==Images-1) CurrentImage--;
    Images--;
    SetMeter(Images, Empty);
    document.getElementById('Images').value = Images;
    if (Images == 1)
       RemoveFrameButton.disabled = true;
    DisplayImage();
}

function SwitchLoading() {
    Loading = !Loading;
    if (Loading)
       SwitchLoadingButton.value = "Suspend Loading"
    else
       SwitchLoadingButton.value = "Resume Loading";
}

function Clock() {
// Loading = true;
   if (Loading) {
	  Seconds = Seconds - 1;
	  if (Seconds < 0) {
	     Seconds = 59;
         LoadImage();
	     if (Images < MaxImages + 1) {
	        Images = Images + 1;
	        document.getElementById('Images').value = Images;
	        SetMeter (Images-1, Filled); 
	     };
	     DisplayImage();
	   };
      document.getElementById('Seconds').value = Seconds;
   };
   Dummy = setTimeout("Clock()", 1000);
}

function Run() {
   Init();
   Clock();
}
