
// slideshow globals

var curSlide = "slide1";  // current visible slide id
var nextSlide = "1";      // next visible slide index to gallery array
var slide1Opacity = 0;    // slide #1 current opacity setting
var slide2Opacity = 0;    // slide #2 current opacity setting
var opIncrement = 5;      // opacity change increment
var maxCycles = 3;        // maximum number of slideshow cycles (0 = no limit)
var cycleCount = 0;       // current cycle count
var showObject = null;    // init slideshow DIV object variable
var s1BoxObject = null;   // init slide1 DIV object
var s2BoxObject = null;   // init slide2 DIV object
var s1Object = null;      // init slide1 object
var s2Object = null;      // init slide2 object
var timeoutID = null;     // id for timeout handler
var timer = 0;            // init transition delay timer
var pauseFlag = 0;        // init pause start/stop flag


// preload images
var myImages = new Array;
  for (i=0;i<gallery.length;i++) {
   myImages[i] = new Image;
//   myImages[i].src = gallery[i];
   }


 function startShow() {
   cycleCount = 0;
   nextSlide = 1;
   curSlide = "slide1";
   if (document.getElementById) { // no show on very old and some mobile browsers
   showObject = document.getElementById("slideshow");
//   showObject.innerHTML = "<div id=\"imageBox1\"></div><div id=\"imageBox2\"></div>";
   s1BoxObject = document.getElementById("imageBox1");
   s2BoxObject = document.getElementById("imageBox2");
//   s1BoxObject.innerHTML = "<img src=\"" + gallery[0] + "\" width=\"" + slideWidth + "\" height=\"" + slideHeight + "\" id=\"slide1\">\n";
//   s2BoxObject.innerHTML = "<img src=\"" + gallery[1] + "\" width=\"" + slideWidth + "\" height=\"" + slideHeight + "\" id=\"slide2\">\n";
   s1Object = document.getElementById("slide1");
   s2Object = document.getElementById("slide2");
   statsBox = document.getElementById("status");
   showObject.style.width = String(slideWidth) + 'px';
   showObject.style.height = String(slideHeight) + 'px';
   s1BoxObject.style.width = String(slideWidth) + 'px';
   s1BoxObject.style.height = String(slideHeight) + 'px';
   s2BoxObject.style.width = String(slideWidth) + 'px';
   s2BoxObject.style.height = String(slideHeight) + 'px';
   s1Object.style.width = String(slideWidth) + 'px';
   s1Object.style.height = String(slideHeight) + 'px';
   s2Object.style.width = String(slideWidth) + 'px';
   s2Object.style.height = String(slideHeight) + 'px';
   slide1Opactity = 100;
   slide2Opactity = 0;
   s1Object.src = gallery[0];
   s2Object.src = gallery[1];
   lightup(s2Object,slide2Opactity);  // initialize 2nd slide opacity first to make it "invisible"
   lightup(s1Object,slide1Opactity);  // then initialize 1st slide opacity
   timeoutID = setTimeout('doIdle()', idleTime * 1000);
   if (showStats) { stats(); } // display variables data
   } // endif (document.getElementById)
 } // end startShow()

function lightup(imageobject, opacity){
 if ((document.getElementById) && !(document.all)) { imageobject.style.opacity=opacity/100; }
// if ((document.getElementById) && (document.all)) { imageobject.filters.alpha.opacity=opacity; }
 if ((document.getElementById) && (document.all)) { 
	imageobject.style.filter = 'alpha(opacity=' + opacity + ')';
     } // endif IE
} // end lightup()

function doIdle() {
    if (pauseFlag == 0) {
       timeoutID = setTimeout('fader()', delay);  // begin fade/transition
      } else {
       timeoutID = setTimeout('doIdle()', 20);    // check here again (soon!)
   } // endif pauseFlag   
 } // end doIdle

function fader() {
    if (pauseFlag == 0) {
     switchFlag = 0;
  if (curSlide == "slide1") {
     slide1Opactity -= opIncrement;
     slide2Opactity += opIncrement;
     if (slide1Opactity <= 0) {
        curSlide = "slide2";  // switch current slide
        slide1Opactity = 0;              // insure legal min opacity 1
        slide2Opactity = 100;            // insure legal max opacity 2
        nextSlide++;          // bump next slide #
        if (nextSlide == gallery.length) { nextSlide = 0; cycleCount++; }
        s1Object.src = gallery[nextSlide];
        switchFlag = 1;
      } // endif slide1Opactity <= 0
     lightup(s1Object,slide1Opactity);
     lightup(s2Object,slide2Opactity);
   } else {
     slide1Opactity += opIncrement;
     slide2Opactity -= opIncrement;
     if (slide2Opactity <= 0) {
        curSlide = "slide1";  // switch current slide
        slide1Opactity = 100;            // insure legal max opacity 1
        slide2Opactity = 0;              // insure legal min opacity 2
        nextSlide++;          // bump next slide #
        if (nextSlide == gallery.length) { nextSlide = 0; cycleCount++; }
        s2Object.src = gallery[nextSlide];
        switchFlag = 1;
     } // endif slide2Opactity <= 0
     lightup(s1Object,slide1Opactity);
     lightup(s2Object,slide2Opactity);
   } // endif curSlide == "slide2"

   } // endif pauseFlag

   if ((cycleCount < maxCycles) || (maxCycles == 0)) { 
      if (switchFlag == 0) {
        timeoutID = setTimeout('fader()', delay);
          } else {
        timeoutID = setTimeout('doIdle()', idleTime * 1000);
      } // endif switchFlag
    } // endif cycleCount

   if (showStats) { stats(); } // display variables data

 } // end fader()

  function pauseShow() {
     pauseFlag = 1;
     return true;
   }

  function resumeShow() {
     pauseFlag = 0;
     return true;
  }

    function stats() {
         sMessage = '<p>slide1Opactity = ' + slide1Opactity + '<br>slide2Opactity = ' + slide2Opactity;
         sMessage += '<br>nextSlide = ' + nextSlide;
         sMessage += '<br>cycleCount = ' + cycleCount;
         sMessage += '<\/p>';
         statsBox.innerHTML = sMessage;
      } // end stats()


