////
//// slide changer for Denneen home page
////

//
// required:
//   jquery.js (version 1.2.6+) (see jquery.com)
//

////
//// SLIDE CHANGER
////
var slchg = {}; // namespace for slide changer
//
// constants
//
// time for fades
slchg.fadeTime = 750;
slchg.quickfadeTime = 250;
// time between slide changes
slchg.slideTime = 5000;

//
// variables
//
// list of slides
slchg.slides = Array();
// number of slides
slchg.nslides = 0;
// index of currently displayed slide
slchg.islide = -1;
// timer for slide changes
slchg.timerid = null;
// slide show going
slchg.slideshowon = false;
//
// immediately show slide
//  i = slide to show
//  q = true for quick slide change (response to user click)
//
slchg.showSlide = function(i, q) {
  // cancel any pending slide changes
  if (slchg.timerid != null) {
    clearTimeout (slchg.timerid);
    slchg.timerid = null;
  }
  //
  ft = (q ? slchg.quickfadeTime : slchg.fadeTime);
  // fade out old slide
  if (slchg.islide >= 0) {
    $(slchg.slides[slchg.islide]).fadeOut(ft);
  }
  // fade in new slide
  slchg.islide = i;
  if (slchg.islide >= 0) {
    $(slchg.slides[slchg.islide]).fadeIn(ft);
  }
  // start timer for next slide change
  slchg.timerid = setTimeout("slchg.changeSlide()", slchg.fadeTime+slchg.slideTime);
}
//
// timed slide change
//
slchg.changeSlide = function() {
  if (slchg.slideshowon) {
    slchg.showSlide((slchg.islide+1)%slchg.nslides, false);
  }
}
//
// start slideshow
//
slchg.startShow = function() {
  if (slchg.timerid == null) {
    // start timer for next slide change
    slchg.timerid = setTimeout("slchg.changeSlide()", slchg.slideTime);
    slchg.slideshowon = true;
  }
}
//
// pause slideshow
//
slchg.pauseShow = function() {
  if (slchg.timerid != null) {
    clearTimeout (slchg.timerid);
    slchg.timerid = null;
  }
  slchg.slideshowon = false;
}

$(document).ready(function(){

  // randomly pick one slide to be shown first
  //
  slchg.nslides = $("#divquote p").size()
  slchg.islide = Math.floor(Math.random() * slchg.nslides);

  ////
  //// Slideshow
  ////
  $("#divquote")
    .find("p")
    .each(function(i) {
      slchg.slides[i] = this;
    })
    .hover( function() { slchg.pauseShow() },
            function() { slchg.startShow() } )
    .end()
    .each(function(i) {
      slchg.showSlide(slchg.islide, false);
      slchg.slideshowon = true;
    });

});
