/*
   MIS - Minimalist Image Slideshow
   Version 3
   January 16, 2011

   ---

   Marc Robledo
   http://usuaris.tinet.cat/mark/mis
*/

var WAIT=5; // SET THE PAUSE BETWEEN IMAGES IN SECONDS

var i=0;
var nexti=0;

var timer=0;
var changing=false;

function prepareNextImg(MIS, iMax){
	clearTimeout(timer);

	document.getElementById(MIS+i).style.zIndex=500;
	document.getElementById(MIS+nexti).style.opacity=0;
	document.getElementById(MIS+nexti).style.zIndex=501;

	var alpha=0;
	timer=window.setInterval(function(){
		alpha+=10;
		document.getElementById(MIS+nexti).style.opacity=alpha/100;
		if(alpha==100){
			document.getElementById(MIS+i).style.opacity=0;
			i=nexti;
			changing=false;
			clearInterval(timer);
			resetTimer(MIS, iMax);
		}
	}, 40);
}

function resetTimer(MIS, iMax){
	timer=window.setTimeout(nextImage, WAIT*1000,MIS, iMax);
}

function nextImage(MIS,iMax){
	if(!changing){
		changing=true;
                do{
                    nexti = rand(0,iMax-1);           
                }while(nexti==i)

                /*nexti++;
		if(nexti==iMax)
			nexti=0;
	*/
		prepareNextImg(MIS, iMax);
	}
}

function prevImage(){
	if(!changing){
		changing=true;
		nexti--;
		if(nexti==-1)
			nexti=iMax-1;
	
		prepareNextImg();
	}
}

//Startup
function init(MIS){
	var iMax=0;
	//Get maximum number of images
	while(document.getElementById(MIS+iMax)){
		iMax++;
	}
	//Set first image as opaque and the rest as transparent
	document.getElementById(MIS+'0').style.zIndex=501;
	for(i=1; i<iMax; i++){
		document.getElementById(MIS+i).style.opacity=0;
		document.getElementById(MIS+i).style.zIndex=500;
	}
	i=0;

	resetTimer(MIS,iMax);
}

//In order to have more than one frame of photos
function preinit(){
	init('MIS-image');
	init('MIS2-image');
}
window.onload=preinit;

function rand(l,u) // lower bound and upper bound
 {
     return Math.floor((Math.random() * (u-l+1))+l);
 }
