// Адрес изображения
WebcamURL  = "http://casanovaclub.ru/webcam/cam.jpg";
// Период обновления в секундах
ImageTimer = 15;
MinRefresh = 500;

StartTime  = new Date();
// Текущее изображение веб камеры
LoadImage  = new Image();
// Время загрузки последнего изображения
LastImage  = StartTime.getTime();
NextTime   = 0;
// Флаг "идет загрузка изображения"
LoadNext   = 0;
// Флаг - изображение полностью загружено
ImageReady = 0;
// Счетчик кадров веб камеры
FrameCount = 1;

document.status = "Загрузка изображения..."
window.status = "Загрузка изображения..."

// Выставить флаг когда изображение полностью загружено
function ImageLoaded() {
  ImageReady = 1;
  FrameCount++;
}

// Called at regular intervals to update status and display loaded images
function ImageStatus() {
  var now = new Date();

  // Вычислить количество секунд до следующего обновления ( с точностью до секунды )
  DelayTime = Math.round(((LastImage + (ImageTimer * 1000)) - now.getTime()) / 1000);
  if(DelayTime < 0) DelayTime = 0;

  // Таймаут не пройден
  if(DelayTime > 0) {
     Status = "Следующее обновление через " + DelayTime + " секунд";
  }
  // Изображение не загружено то производим загрузку и выставляем флаг идет загрузка
  else if(!ImageReady && !LoadNext) {
     Status = "Загрузка изображения";
     LoadImage.src = WebcamURL + "?" + now;
     LoadNext = 1;
  }
  // Если изображение загружается то запоминаем время его загрузки 
  else if(!ImageReady && LoadNext) {
     Status = "Загрузка изображения";
    if(NextTime == 0) 
        NextTime = now.getTime();
  }
  // Если изображение наконец загружено и установлен флаг идет загрузка 
  else if(ImageReady && LoadNext) {
     // Загрузить изображение
     document.images.WebCam.src = LoadImage.src;
     // Установить время загрузки последнего изображения
     if(NextTime == 0) 
        NextTime = now.getTime();
     LastImage  = NextTime;
     ImageReady = 0;
     LoadNext   = 0;
     NextTime   = 0;
     Status = "Обновляем изображение";
  } else {
     Status = "Изображение из клуба";
  }
  
  // Обобразить статус в элементе refreshTime
  document.getElementById('refreshTime').innerHTML = Status;

  // Рекурсивный вызов таймера
  setTimeout('ImageStatus()',MinRefresh);
}

/////////////////////////////////////////
// Запустить обновление картинок в Веб камере
/////////////////////////////////////////
function StartRefresh() {
  //var now = new Date();
  
  LoadImage.onload = ImageLoaded;
  setTimeout('ImageStatus()',MinRefresh);
  document.images.WebCam.onload="";
}
