// JavaScript Document
// Author: Andy Asberry, Ciphertek Systems, LLC
// Date: September 2009

var webcamImage = new function() {
  this.time_unit = 'seconds'; // 'seconds', 'minutes', 'hours', 'days'
  this.interval = 60; // use number of units set in this.time_unit
  this.webcam_image = null;  // pointer to image
  this.webcam_interval = null; // variable for setInterval in this.startTimer
  this.checking = false;  // boolean for whether checking image should be showing or not
  this.checking_icon = null;  // pointer to checking image
  this.before_delay = 2; // seconds
  this.after_delay = 1; // seconds
  
  this.init = function() {
    var self = webcamImage;
	this.checking = false;
	self.webcam_image = document.getElementById('webcam_image');
	self.checking_icon = document.getElementById('checking');
	switch (self.time_unit) {
	  case 'seconds': self.interval = self.interval * 1000; break;
	  case 'minutes': self.interval = self.interval * 60 * 1000; break;
	  case 'hours': self.interval = self.interval * 60 * 60 * 1000; break;
	  case 'days': self.interval = self.interval * 24 * 60 * 60 * 1000; break;
	  default: break;
	}
	self.startTimer();
  };
  
  this.setImage = function() {
    var self = webcamImage;
	var date = new Date();
	var append = date.getFullYear() + date.getMonth() + date.getDay() + date.getHours() + date.getSeconds() + date.getMilliseconds();
	//self.webcam_image.src = '/images/webcam/webcam2.jpg?' + append;
	self.webcam_image.style.backgroundImage = 'url(/images/webcam/webcam2.jpg?' + append + ')';
	var tempInterval = setTimeout("webcamImage.toggleChecking()", self.after_delay * 1000);
  };
  
  this.startTimer = function() {
    var self = webcamImage;
	self.webcam_interval = setInterval("webcamImage.delayTimer()", (self.interval-self.before_delay));
  };
  
  this.stopTimer = function() {
    var self = webcamImage;
	clearInterval(self.webcam_interval);
  };
  
  this.delayTimer = function() {
    var self = webcamImage;
	self.toggleChecking();
	var tempInterval = setTimeout("webcamImage.setImage()", self.before_delay * 1000);
  }
  
  this.toggleChecking = function() {
    var self = webcamImage;
	if (self.checking) {
	  self.checking = false;
	  self.checking_icon.style.display = 'none';
	}
	else {
	  self.checking = true;
	  self.checking_icon.style.display = 'block';
	}
  };
  
  this.cleanup = function() {
    var self = webcamImage;
	self.webcam_image = null;
	self.interval = null;
	self.stopTimer();
	self.webcam_interval = null;
	self.time_unit = null;
  };
  
};