var RotatePics = {

   maxImgNum: 34,

   getObj: function(id) {
      if (document.layers) return document.layers[id];
      if (document.getElementById) return document.getElementById(id);
      return document.all[id];
   },

   replaceContents: function(obj, html) {
      if (document.layers) {
         obj.document.open();
         obj.document.write(html);
         obj.document.close();
      } else {
         obj.innerHTML = html;
      }
   },

   backdiv: null,
   backimg: null,
   frontimg: null,
   overlay: null,

   setOpacity: function(obj, val) {
      obj.style.opacity = val;
      obj.style.MozOpacity = val;
      obj.style.KhtmlOpacity = val;
      obj.style.filter = 'alpha(opacity=' + Math.round(val * 100) + ')';
   },

   updatePicOpacity: function(val) {
      var img = this.getObj('hppicimg');
      if (img) {
         this.setOpacity(img, val);
      }
   },

   getAbsoluteTop: function(obj) {
      var t = 0;
      while (obj) {
         if (obj.tagName.toUpperCase() == 'BODY') break;
         t += obj.offsetTop;
         obj = obj.offsetParent;
      }
      return t;
   },

   getAbsoluteLeft: function(obj) {
      var l = 0;
      while (obj) {
         if (obj.tagName.toUpperCase() == 'BODY') break;
         l += obj.offsetLeft;
         obj = obj.offsetParent;
      }
      return l;
   },

   updateOverlay: function(opacity) {
      if (!this.overlay) return;
      this.setOpacity(this.overlay, opacity);
      if (opacity >= 1) {
         // set 3sec timeout for next image
         setTimeout('RotatePics.updatePic()', 3000);
      } else {
         setTimeout('RotatePics.updateOverlay(' + (opacity + 0.01) + ')', 10);
      }
   },

   createOverlay: function(filename) {
      var div = document.createElement('div');
      div.id = 'hppicdiv2';
      div.style.position = 'absolute';
      div.style.top = this.getAbsoluteTop(this.backdiv) + 'px';
      div.style.left = this.getAbsoluteLeft(this.backdiv) + 'px';
      div.style.width = this.backdiv.offsetWidth + 'px';
      div.style.height = this.backdiv.offsetHeight + 'px';
      div.style.background = '#ffffff';
      this.setOpacity(div, 0); // transparent
      div.style.textAlign = 'center';
      var a = document.createElement('a');
      a.href = 'gallery.php';
      var img = document.createElement('img');
      img.src = '/images/rot/' + filename;
      img.className = 'border';
      a.appendChild(img);
      div.appendChild(a);
      document.body.appendChild(div);
      this.overlay = div;
      this.frontimg = img;

      setTimeout('RotatePics.updateOverlay(0.01)', 10);

   },

   updatePic: function() {

      var pic = Math.round(Math.random() * this.maxImgNum);
      if (pic < 10) {
         pic = '0' + pic + '.jpg';
      } else {
         pic = pic + '.jpg';
      }

      if (this.overlay) {
         // move front img to back
         while (this.backdiv.firstChild) {
            this.backdiv.removeChild(this.backdiv.firstChild);
         }
         this.backdiv.appendChild(this.frontimg);
         this.backimg = this.frontimg;
         this.frontimg = null;
         document.body.removeChild(this.overlay);
         this.overlay = null;
      }

      // create new overlay div
      this.createOverlay(pic);

   },

   init: function(divid) {
      this.backdiv = this.getObj(divid);
      if (this.backdiv) {
         setTimeout('RotatePics.updatePic()', 1000);
      }
   }

};


