// ==============================================================================
//  slideshow.js
// ==============================================================================

var slideshow_interval = 4000;	// Amount of time between each image(1000 = 1 second)
var slideshow_noFading = false;
var slideshow_fadingSpeed = 10;	// Speed of fading
var slideshow_random = true;   // random pick at the first image

var slideshowContainer;	// Reference to the slideshow container div
var slideshowContainerWidth;	// Width of slideshow container
var slideshowContainerHeight;	// Height of slideshow container
var slideshowCurrentImgIndex = -1;	// Index of current image shown
var slideshowCurrentImgIndexNext = false;	// Index of next image shown
var slideshowImgDivs = new Array();	// Array of image divs(Created dynamically)
var slideshowCurrentOpacity = 100;	// Initial opacity
var slideshowImgTotal = false;	// Number of images in slideshow

function getSlideshowImageSize(imageIndex){
	if(imageIndex==slideshowImgTotal){			
		runSlideshow();
	}else{
		var imgObj = document.getElementById('slideImage' + imageIndex);
		var imgWidth = imgObj.width;
		var imgHeight = imgObj.height;
		if(imgWidth>5 && imgHeight>5){						
			var tmpDiv = document.createElement('DIV');
			tmpDiv.id = 'galleryDiv' + imageIndex;
			tmpDiv.style.visibility = 'hidden';
			tmpDiv.className='imageInSlideshow';
			slideshowContainer.appendChild(tmpDiv);
			tmpDiv.appendChild(imgObj); 
			imgObj.style.left = Math.round((slideshowContainerWidth - imgWidth)/2)  + "px";
			imgObj.style.top = Math.round((slideshowContainerHeight - imgHeight)/2)  + "px";
			
			try{
				slideshowImgDivs.push(tmpDiv); // for javascript 1.5
			} catch (error){
				slideshowImgDivs = pushToArray(slideshowImgDivs, tmpDiv);
			}
			
			tmpDiv.style.visibility = 'hidden';
			imageIndex++;
			getSlideshowImageSize(imageIndex);
		}else{
			setTimeout('getSlideshowImageSize(' + imageIndex + ')',10);
		}
	}		
}

function runSlideshow(){	
	if(slideshowCurrentImgIndex==-1){
		slideshowCurrentImgIndex=0; 
	}else {
		slideshowCurrentImgIndex++;	// Index of next image to show
	}
	
	if(slideshowCurrentImgIndex==slideshowImgDivs.length){
		slideshowCurrentImgIndex=0;
	}
	
	slideshowCurrentImgIndexNext = slideshowCurrentImgIndex+1;	// Index of the next next image
	
	if(slideshowCurrentImgIndexNext==slideshowImgDivs.length){
		slideshowCurrentImgIndexNext = 0;
	}
	
	slideshowCurrentOpacity=100;	// Reset current opacity

	// Displaying image divs
	slideshowImgDivs[slideshowCurrentImgIndex].style.visibility = 'visible';
	if(navigator.userAgent.indexOf('Opera')<0){
		slideshowImgDivs[slideshowCurrentImgIndexNext].style.visibility = 'visible';
	}
	
	if(document.all){	// IE rules
		slideshowImgDivs[slideshowCurrentImgIndex].style.filter = 'alpha(opacity=100)';
		slideshowImgDivs[slideshowCurrentImgIndexNext].style.filter = 'alpha(opacity=1)';
	}else{
		slideshowImgDivs[slideshowCurrentImgIndex].style.opacity = 0.99;	// Can't use 1 and 0 because of screen flickering in FF
		slideshowImgDivs[slideshowCurrentImgIndexNext].style.opacity = 0.01;
	}			

	setTimeout('revealSlideImage()',slideshow_interval);		
}

function revealSlideImage(){
	if(slideshow_noFading){
		slideshowImgDivs[slideshowCurrentImgIndex].style.visibility = 'hidden';
		runSlideshow();
		return;
	}
	slideshowCurrentOpacity--;
	if(document.all){
		slideshowImgDivs[slideshowCurrentImgIndex].style.filter = 'alpha(opacity='+slideshowCurrentOpacity+')';
		slideshowImgDivs[slideshowCurrentImgIndexNext].style.filter = 'alpha(opacity='+(100-slideshowCurrentOpacity)+')';
	}else{
		slideshowImgDivs[slideshowCurrentImgIndex].style.opacity = Math.max(0.01,slideshowCurrentOpacity/100);	// Can't use 1 and 0 because of screen flickering in FF
		slideshowImgDivs[slideshowCurrentImgIndexNext].style.opacity = Math.min(0.99,(1 - (slideshowCurrentOpacity/100)));
	}
	if(slideshowCurrentOpacity>0){
		setTimeout('revealSlideImage()',slideshow_fadingSpeed);
	}else{
		slideshowImgDivs[slideshowCurrentImgIndex].style.visibility = 'hidden';			
		runSlideshow();
	}
}

function pushToArray(array, child){
	if (array == null){
		array = new Array();
	}	
	array[array.length] = child;
	return array;	
}

function getFirstImgIndex(slideshowImgTotal){
	if(!slideshow_random)
		return;
	return Math.floor(Math.random()*slideshowImgTotal);
}

function initSlideshow(){
	slideshowContainer = document.getElementById('slideshowHolder');
	slideshowContainerWidth = slideshowContainer.clientWidth;
	slideshowContainerHeight = slideshowContainer.clientHeight;
	slideshowImgArray = slideshowContainer.getElementsByTagName('IMG');
	for(var no=0;no<slideshowImgArray.length;no++){
		slideshowImgArray[no].id = 'slideImage' + no;
	}
	slideshowImgTotal = slideshowImgArray.length;
	slideshowCurrentImgIndex = getFirstImgIndex(slideshowImgTotal);
	getSlideshowImageSize(0);		
}