////
//// support code for NSE home page
////

//
// required:
//   jquery.js (version 1.3.2+) (see jquery.com)
//


//
// include the styles needed when javascript is active
//
document.writeln('<link rel="stylesheet" href="/nse/styles/NSE_home_dynamic.css" type="text/css" media="all" />');


////
//// SLIDE CHANGER
//// adapted from MIT SHASS slide changer by rjw
////
var slchg = {}; // namespace for slide changer
//
// constants
//
// time for fades
slchg.fadeTime = 750;
slchg.quickfadeTime = 250;
// time between slide changes
slchg.slideTime = 12000;

//
// 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
  if (slchg.slideshowon) {
    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);
  }
}
//
// next slide via click
//
slchg.nextSlide = function() {
  slchg.showSlide((slchg.islide+1)%slchg.nslides, true);
}
//
// 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 = $("div.divspotlight").size();
  slchg.islide = Math.floor(Math.random() * slchg.nslides);

  ////
  //// Slideshow
  ////
  if (slchg.nslides > 1) {
    $("#divspotlights")
      .find("div.divspotlight")
      .each(function(i) {
        slchg.slides[i] = this;
      })
      .end()
      .hover( function() { slchg.pauseShow(); },
              function() { slchg.startShow(); } );

    // set function for next link
    //
    $("#nextlink a")
      .click( function() { slchg.nextSlide(); return false; } );

      // show first slide
      slchg.slideshowon = true;
      slchg.showSlide(slchg.islide, false);
  }
  // just one slide
  else {
    $("div.divspotlight").show();
  }
});
