<!--

//Coppyright 2010 Garry Stewart - GA-Rider - www.home.comcast.net/~ga-rider


// you should not change these variables
var slideShow = new Object();

slideShow.SourceArray = new Array();
slideShow.ImageArray = new Array();
slideShow.CurrentImage = 0;
slideShow.Interval;
slideShow.Running = false;
slideShow.Image1 = 'slideShowImage1';
slideShow.Image2 = 'slideShowImage2';
slideShow.CurrentPicture = 'slideShowImage1';



// you can change these 2 variables as needed
slideShow.Seconds = 3;      
// seconds -  home many seconds to show each image - don't make it less than the next variable
slideShow.FadeSpeed = 750;  
// milliseconds - how many milliseconds the images take to cross fade


/* you should not change anyting from here down */

slideShow.loadImageSource = function(source) 
{
  var sourceCount = slideShow.SourceArray.length;
    
  slideShow.SourceArray[sourceCount] = new Object;
  slideShow.SourceArray[sourceCount].source = source;        
  slideShow.SourceArray[sourceCount].imageIndex = -1;  
}

slideShow.Start = function() 
{
  // if no image sources loaded then exit
  if (!slideShow.SourceArray.length)  
    return;
    
  if (slideShow.ImageArray.length == 0) 
{   
    // load first 2 images
    var source = slideShow.SourceArray[0].source;   
    slideShow.loadImageFile(source);
    
    source = slideShow.SourceArray[1].source;     
    slideShow.loadImageFile(source);
  }
  

  if (slideShow.Running) 
    slideShow.Stop()
  else
    slideShow.Play();  
}


slideShow.Stop = function() 
{
  if (slideShow.Running) 
{
    window.clearInterval(slideShow.Interval);
    slideShow.Running = false;
  }  
}


slideShow.Play = function() {
  if (!slideShow.Running) { 
    slideShow.Running = true;
    slideShow.Interval = window.setInterval('slideShow.changeImage()', slideShow.Seconds * 1000);
  }  
}


slideShow.loadImageFile = function(source) {
  var workImage = new Image;
  var imageCount = slideShow.ImageArray.length;
    
  workImage.src = source;  
    
  slideShow.ImageArray[imageCount] = new Object;
  slideShow.ImageArray[imageCount].src = workImage.src;        
  slideShow.ImageArray[imageCount].image = workImage;    
  slideShow.ImageArray[imageCount].image.src = workImage.src;   
}


slideShow.changeImage = function(direction) {
  var inImage;
  var outImage;
  var imageToLoad

  // if no image sources loaded then exit
  
if (!slideShow.SourceArray.length)  
    return;

  // set a default direction
  if (direction == null) 
    direction = 'Next'    
  
  // determine which image to display   
  if (direction == 'Prev') 
    slideShow.CurrentImage--
  else  
    slideShow.CurrentImage++
    
  
  if (direction == 'Prev')   
    if (slideShow.CurrentImage < 0) 
      slideShow.CurrentImage = slideShow.SourceArray.length - 1;    
  if (direction == 'Next') 
    if (slideShow.CurrentImage > slideShow.SourceArray.length - 1) 
      slideShow.CurrentImage = 0;
    
  imageToLoad = slideShow.CurrentImage + 1;  // load next image
    
  // reset imageToLoad if all images have been loaded
  if (imageToLoad > slideShow.SourceArray.length - 1) 
    imageToLoad = 0;

  // see if the next image to show has been loaded        
  if (imageToLoad > (slideShow.ImageArray.length -1))
    slideShow.loadImageFile(slideShow.SourceArray[imageToLoad].source);
    
  outImage = slideShow.CurrentPicture;
  if (outImage == slideShow.Image1)
    inImage = slideShow.Image2
  else  
    inImage = slideShow.Image1;    

  slideShow.showImage(slideShow.CurrentImage);
   
  slideShow.setSource(inImage, slideShow.ImageArray[slideShow.CurrentImage].image.src);
    
  slideShow.crossFadeImage(inImage, slideShow.CurrentPicture, slideShow.FadeSpeed);  
} 

// use this if you want to change the name of the image sources to something other than 'slideShowImage1' & 'slideShowImage2'
slideShow.initialize = function(source1, source2) {
  slideShow.Image1 = source1;
  slideShow.Image2 = source2;
  slideShow.CurrentPicture = source1;
}  

slideShow.setSource = function(sImage, sSource) {
  document.getElementById(sImage).src = sSource;
}

slideShow.showImage = function(imageNumber) {
  var inImage;
  var outImage;

  if (!slideShow.ImageArray.length)
    return;

  outImage = slideShow.CurrentPicture;
  if (outImage == slideShow.Image1)
    inImage = slideShow.Image2
  else  
    inImage = slideShow.Image1;    

  if (imageNumber >= slideShow.ImageArray.length) 
    imageNumber = 0; 
 
  var workImage = new Image; 
  workImage = slideShow.ImageArray[imageNumber].image;
	   
  slideShow.setSource(inImage, workImage.src);
    
  slideShow.crossFadeImage(inImage, slideShow.CurrentPicture, slideShow.FadeSpeed);  
  
  slideShow.currentImage = imageNumber;
} 

slideShow.crossFadeImage = function(fadeInId, fadeOutId, millisec) {   
  var speed = Math.round(millisec / 150); 
  var index = 0; 
  var opacStart = 0;
  var opacEnd = 100;
  var i, k;  
  
  if (fadeInId != slideShow.CurrentPicture) 
    for(i = opacStart; i <= opacEnd; i++) {
      k = 100 - i;
      setTimeout("slideShow.changeOpac(" + i + ",'" + fadeInId  + "')", (index * speed)); 
      setTimeout("slideShow.changeOpac(" + k + ",'" + fadeOutId + "')", (index * speed)); 
      index++; 
    } 
  slideShow.CurrentPicture = fadeInId;
}  

//change the opacity for different browsers 
slideShow.changeOpac = function(opacity, id) { 
  var object = document.getElementById(id).style; 
  object.opacity = (opacity / 100); 
  object.MozOpacity = (opacity / 100); 
  object.KhtmlOpacity = (opacity / 100); 
  object.filter = "alpha(opacity=" + opacity + ")";
}   

slideShow.loadImages = function() {
  var slideImages = document.getElementsByTagName('img');
  var imageSource;
  var className;

  for(var index=0; index < slideImages.length; index++) {
    className = slideImages[index].className;
    imageSource = slideImages[index].src;

    if (className == 'slideShowImage') {        
      slideShow.load(imageSource, slideImages[index].name);        
    }
  } 
} 


-->

