jcats.catcam={
  root1: '/catcam',
  root2: '/_catmonitor',
  cameras: [],

  refresh:
    function ( configptr ) {
      var config=jcats.catcam.cameras[configptr];

      if (document[config.image]) {
	document[config.image].src=config.base+config.index++;
	setTimeout(config.refresh, config.delay);
      }
    },

  add:
    function ( id, camera, options ) {
      var delay=45;
      var thumb=false;
      var base='';

      if (options)
	if (options instanceof Array) {
	  delay=options[0];
	  thumb=options[1];
	} else
	  if (horus.isNumber(options))
	    delay=options;
	  else
	    thumb=options;

      delay*=1000;
      if (thumb) base=';thumb=1';
      base+=';'+Math.floor(new Date().valueOf()/1000)+'=';
      var camdata=jcats.catcam.cameras;
      var root=camera<0 ? jcats.catcam.root2 : jcats.catcam.root1;
      if (camera<0) camera=-camera-1;
      var configptr=camdata.length;
      var refresh=function () { jcats.catcam.refresh(configptr) };

      camdata.push
        ({ image: id,
	   base: root+'?camera='+camera+base,
	   delay: delay,
	   index: 0,
	   refresh: refresh });

      horus.afterload(refresh);
    }
  };


// deprecated interface
//
window.initCatcam=
  function () {
    var params=arguments.length;
    var count=Math.floor(params/2);
    var options=params%2;

    if (options)
      options=arguments[params-1];
    else
      options=null;

    for (var ptr=0; ptr<count; ptr++)
      jcats.catcam.add(arguments[ptr*2], arguments[ptr*2+1], options);

  };
