var newLink, randImg, fadeStep, timeStep, endPause, currOpac, idPrefix;

// You MUST set this variable for the script to work properly.

num				= 1;					// The number of slideshows you have on the page.

// Feel free to tweak these variables as needed.

fadeStep			= 3;					// The %age difference in opacity for each step.
timeStep			= 40;					// The time in milliseconds between each step in opacity.
endPause			= 3000;					// The delay in milliseconds until an image starts to fade out again.
randImg				= false;					// Whether or not to choose a random image or simply loop through them in order, (true for random, false for in order).

// You can tweak these too, however I'd advise against it.

currOpac			= 0;					// The initial opacity of the images (I recommend leaving at 0).
idPrefix			= "slideshow";				// The prefix before each slideshow ID.

// Here is where you add in the locations for all of your images.

var imgs					= new Array();

imgs[imgs.length]				= new Array();		// Locations of images for Slideshow 1.
imgs[imgs.length-1][imgs[imgs.length-1].length]	= "img/slides/macchi/01.jpg";
imgs[imgs.length-1][imgs[imgs.length-1].length]	= "img/slides/macchi/02.jpg";
imgs[imgs.length-1][imgs[imgs.length-1].length]	= "img/slides/macchi/03.jpg";
imgs[imgs.length-1][imgs[imgs.length-1].length]	= "img/slides/macchi/04.jpg";
imgs[imgs.length-1][imgs[imgs.length-1].length]	= "img/slides/macchi/05.jpg";
imgs[imgs.length-1][imgs[imgs.length-1].length]	= "img/slides/macchi/06.jpg";
imgs[imgs.length-1][imgs[imgs.length-1].length]	= "img/slides/macchi/07.jpg";
imgs[imgs.length-1][imgs[imgs.length-1].length]	= "img/slides/macchi/08.jpg";


function setup(){

  var el;

  for(var n=1;n<=num;n++){
    el = document.getElementById(idPrefix+n);

    el.setAttribute("imgNum", ( (randImg) ? Math.floor(Math.random() * imgs[n-1].length) : 0 ) );

    el.src		= imgs[n-1][ parseInt(el.getAttribute("imgNum")) ];
    el.style.visibility	= "hidden";
  }

}



function fade(){

  var el, newVal;

  currOpac		+= fadeStep;
  currOpac		= (currOpac>100) ? 100 : currOpac ;
  currOpac		= (currOpac<0) ? 0 : currOpac ;

  fadeStep *= (currOpac == 0 || currOpac == 100) ? -1 : 1 ;

  for(var n=1;n<=num;n++){

    el = document.getElementById(idPrefix+n);

    el.style.filter	= "alpha(opacity:"+currOpac+")";
    el.style.KHTMLOpacity = currOpac / 100;
    el.style.MozOpacity	= (currOpac>=100) ? 0.9999 : currOpac/100;	// Prevent flicker in Moz.
    el.style.opacity	= (currOpac>=100) ? 0.9999 : currOpac/100;	// Prevent flicker in Moz.

  }

  if(currOpac > 0 && currOpac < 100){
    setTimeout("fade("+num+")", 40);
  }
  else if(currOpac > 0){
    setTimeout("fade()", 3000);
  }
  else{
    el.src			= imgs[ Math.floor(Math.random() * imgs.length) ];

    for(n=1;n<=num;n++){
      el = document.getElementById(idPrefix+n);

      if(randImg){

        newVal = Math.floor(Math.random() * imgs[n-1].length);

        while(newVal==parseInt(el.getAttribute("imgNum"))){
          newVal = Math.floor(Math.random() * imgs[n-1].length);
        }

      }else{

        newVal = parseInt(el.getAttribute("imgNum"))+1;

        newVal = ( newVal==imgs[n-1].length )? 0 : newVal;

      }

      el.setAttribute("imgNum", newVal );

      el.src		= imgs[n-1][ parseInt(el.getAttribute("imgNum")) ];
    }

    fade();

  }

}




window.onload = function(){

  for(n=1;n<=num;n++){
    document.getElementById(idPrefix+n).style.visibility	= "visible";
  }

  fade();

}
