Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
//____________________________________________________________________
// A set of javascript functions to display a set of selected plots
// as a contineous show of slides. A number of slide show actions include
//  - Start, Stop, FirstSlide, LastSlide, Previous, Next
//  - Set a specific Slide
//
//____________________________________________________________________
var SlideShow = {};
//____________________________________________________________________
// Static variables
//
SlideShow.DEBUG = true;
SlideShow.slideImageList  = new Array();
SlideShow.slideTitleList = new Array();
SlideShow.slideShowSpeed = 1000;  // miliseconds
SlideShow.index = 0;
SlideShow.nSlides = 0;
SlideShow.MAX_SLIDES = 20;
SlideShow.timerID = null;
//____________________________________________________________________

SlideShow.ChangeUpdateInterval = function(){
  try{

    var theRefresh  = document.getElementById("update_slideshow");
    if (theRefresh == null) {
      SlideShow.slideShowSpeed = 10000;
    } else { 
      SlideShow.slideShowSpeed = theRefresh.options[theRefresh.selectedIndex].value;
    }
  }catch(e){
    alert("[SlideShow::ChangeUpdateInterval] " + e.message);
  }
}
//____________________________________________________________________
// Start the slide show with full list of images
//
SlideShow.StartSlideShow = function()
{
  try{

    SlideShow.ChangeUpdateInterval();
    SlideShow.setSlide(SlideShow.index);
    SlideShow.index = (SlideShow.index + 1) % SlideShow.nSlides;
    SlideShow.timerID = setTimeout('SlideShow.StartSlideShow()', SlideShow.slideShowSpeed);
  }catch(e){
    alert("[SlideShow::StartSlideShow] " + e.message);
  } 
}
//____________________________________________________________________
// Stop the slide show 
//
SlideShow.StopSlideShow = function()
{
  try{

    if (SlideShow.timerID != null) {
      clearTimeout(SlideShow.timerID);
    }
  }catch(e){
   alert("[SlideShow::StopSlideShow] " + e.message);
  }
}
//____________________________________________________________________
// Show first slide
//
SlideShow.ShowFirst  = function()
{
  try{
  
   SlideShow.setSlide(0);
  }catch(e){
   alert("[SlideShow::ShowFirst] " + e.message);
  }
}
//____________________________________________________________________
// Show last slide
//
SlideShow.ShowLast = function()
{
  try{

   SlideShow.setSlide(SlideShow.nSlides-1);
  }catch(e){
   alert("[SlideShow::setSlide] " + e.message);
  }
}
//____________________________________________________________________
// Show previous slide
//
SlideShow.ShowPrev = function()
{
 try{
   SlideShow.index = (SlideShow.index-1) % nSlides;
   if (SlideShow.index < 0) SlideShow.index = SlideShow.nSlides - 1;
   SlideShow.setSlide(SlideShow.index);
  }catch(e){
   alert("[SlideShow::setSlide] " + e.message);
  }

}
//____________________________________________________________________
// Show next slide
//
SlideShow.ShowNext = function()
{
 try{
   SlideShow.index = (SlideShow.index + 1) % nSlides;
   SlideShow.setSlide(SlideShow.index);
  }catch(e){
   alert("[SlideShow::setSlide] " + e.message);
  }
}
//____________________________________________________________________
// Set a specific slide
//
SlideShow.setSlide = function(index) 
{
 try{
   if (SlideShow.nSlides == 0) {
     if (SlideShow.DEBUG) alert("[SlideShow::setSlide] " + "[SlideShow::setSlide] Empty Image List!");
     return false;
   }
  var urlImageList = SlideShow.slideImageList[SlideShow.index];
  var urlTitleList = SlideShow.slideTitleList[SlideShow.index];
  var getTitles = new Ajax.Request(urlTitleList,	   // Load titles first, because they are
  				  {			   // used by the IMGC.processImageList
  				   method: 'get',	   // which fires later on
  				   parameters: '', 
  				   onComplete: IMGC.processTitlesList // <-- call back function
  				  });
  var getFiles  = new Ajax.Request(urlImageList, 
  				  {
  				   method: 'get', 
  				   parameters: '', 
  				   onComplete: IMGC.processImageList  // <-- call back function
  				  });
  }catch(e){
   alert("[SlideShow::setSlide] " + e.message);
  }
}