/************************************************************************************************************
Ajax dynamic content
Copyright (C) November, 2005  DTHMLGoodies.com, Alf Magne Kalleland

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

Dhtmlgoodies.com., hereby disclaims all copyright interest in this script
written by Alf Magne Kalleland.

Alf Magne Kalleland, 2006
Owner of DHTMLgoodies.com


************************************************************************************************************/	
var fadeSlideShow_noFading = false;                 // Enable/disable fading in/out during image transition
var fadeSlideShow_timeBetweenSlides = 1000;	        // Amount of time between each image(1000 = 1 second)
var fadeSlideShow_fadingSpeed = 10;	                // Speed of fading	(Lower value = faster)
var fadeSlideShow_Pause = false;                    // True when we want to stop/pause the slideshow

var fadeSlideShow_stats = new Array();

var fadeSlideShow_slideIndex = new Array();	        // Index of current image shown
var fadeSlideShow_slideIndexNext = new Array();	    // Index of next image shown
var fadeSlideShow_imageDivs = new Array();	        // Array of image divs(Created dynamically)
var fadeSlideShow_currentOpacity = new Array();	    // Initial opacity
var fadeSlideShow_imagesInGallery = new Array();	// Number of images in gallery

var bIsOpera = navigator.userAgent.indexOf('Opera')>=0?true:false;

function createParentDivs(imageIndex,divId)
{
	if(imageIndex==fadeSlideShow_imagesInGallery[divId]){	
		showGallery(divId);
	}else{
		var imgObj = document.getElementById(divId + '_' + imageIndex);	
		if(bIsOpera)imgObj.style.position = 'static';
		if(!fadeSlideShow_imageDivs[divId]) fadeSlideShow_imageDivs[divId] = new Array();
		fadeSlideShow_imageDivs[divId][fadeSlideShow_imageDivs[divId].length] =  imgObj;

		imgObj.style.visibility = 'hidden';	
		imageIndex++;
		createParentDivs(imageIndex,divId);	
	}		
}


// Displays the current image for each of the defined galleries.
function showGallery(divId)
{
	if(fadeSlideShow_slideIndex[divId]==-1)fadeSlideShow_slideIndex[divId]=0; else fadeSlideShow_slideIndex[divId]++;	// Index of next image to show
	if(fadeSlideShow_slideIndex[divId]==fadeSlideShow_imageDivs[divId].length)fadeSlideShow_slideIndex[divId]=0;
	fadeSlideShow_slideIndexNext[divId] = fadeSlideShow_slideIndex[divId]+1;	// Index of the next next image
	if(fadeSlideShow_slideIndexNext[divId]==fadeSlideShow_imageDivs[divId].length)fadeSlideShow_slideIndexNext[divId] = 0;

	
	fadeSlideShow_currentOpacity[divId]=100;	// Reset current opacity

	// Displaying image divs
	fadeSlideShow_imageDivs[divId][fadeSlideShow_slideIndex[divId]].style.visibility = 'visible';
	if(bIsOpera)fadeSlideShow_imageDivs[divId][fadeSlideShow_slideIndex[divId]].style.display = 'inline';
	if(navigator.userAgent.indexOf('bIsOpera')<0){
		fadeSlideShow_imageDivs[divId][fadeSlideShow_slideIndexNext[divId]].style.visibility = 'visible';
	}
	
	if(document.all){	// IE rules
		fadeSlideShow_imageDivs[divId][fadeSlideShow_slideIndex[divId]].style.filter = 'alpha(opacity=100)';
		fadeSlideShow_imageDivs[divId][fadeSlideShow_slideIndexNext[divId]].style.filter = 'alpha(opacity=1)';
	}else{
		fadeSlideShow_imageDivs[divId][fadeSlideShow_slideIndex[divId]].style.opacity = 0.99;	// Can't use 1 and 0 because of screen flickering in FF
		fadeSlideShow_imageDivs[divId][fadeSlideShow_slideIndexNext[divId]].style.opacity = 0.01;
	}		
	
	// Schedule the next image transition unless we are paused
	if(!fadeSlideShow_Pause) setTimeout('revealImage("' + divId + '")',fadeSlideShow_timeBetweenSlides);		
}

function revealImage(divId)
{
    // Are we fading images?
	if(fadeSlideShow_noFading || fadeSlideShow_Pause){
		// Show the complete image and exit
		fadeSlideShow_imageDivs[divId][fadeSlideShow_slideIndex[divId]].style.visibility = 'hidden';
		if(bIsOpera)fadeSlideShow_imageDivs[divId][fadeSlideShow_slideIndex[divId]].style.display = 'none';
		showGallery(divId);
		return;
	}
	
	// Decrement fade opacity percent
	fadeSlideShow_currentOpacity[divId]--;
	
	// Change opacity value for the two images
	if(document.all){
		fadeSlideShow_imageDivs[divId][fadeSlideShow_slideIndex[divId]].style.filter = 'alpha(opacity='+fadeSlideShow_currentOpacity[divId]+')';
		fadeSlideShow_imageDivs[divId][fadeSlideShow_slideIndexNext[divId]].style.filter = 'alpha(opacity='+(100-fadeSlideShow_currentOpacity[divId])+')';
	}else{
		fadeSlideShow_imageDivs[divId][fadeSlideShow_slideIndex[divId]].style.opacity = Math.max(0.01,fadeSlideShow_currentOpacity[divId]/100);	// Can't use 1 and 0 because of screen flickering in FF
		fadeSlideShow_imageDivs[divId][fadeSlideShow_slideIndexNext[divId]].style.opacity = Math.min(0.99,(1 - (fadeSlideShow_currentOpacity[divId]/100)));
	}
	
	// Do we have more opacity transitions to make?
	if(fadeSlideShow_currentOpacity[divId]>0){
		// Schedule next opacity transition
		setTimeout('revealImage("' + divId + '")',fadeSlideShow_fadingSpeed);
	}else{
		// Hide the prior image
		fadeSlideShow_imageDivs[divId][fadeSlideShow_slideIndex[divId]].style.visibility = 'hidden';	
		if(bIsOpera)fadeSlideShow_imageDivs[divId][fadeSlideShow_slideIndex[divId]].style.display = 'none';		
		// Show the current image and schedule the next image transition
		showGallery(divId);
	}
}

function initImageGallery(divId)
{
	// Get DIV element containing the images
	var fadeSlideShow_galleryContainer = document.getElementById(divId);
	
	// Init current and next image pointers
	fadeSlideShow_slideIndex[divId] = -1;
	fadeSlideShow_slideIndexNext[divId] = false;
	
	// Get array of images in the specified DIV
	var galleryImgArray = fadeSlideShow_galleryContainer.getElementsByTagName('IMG');
	
	// Change IDs of images withing specified DIV element
	for(var no=0;no<galleryImgArray.length;no++){
		// Set image ID to the EDIV ID with numeric suffix.
		galleryImgArray[no].id = divId + '_' + no;
		// handle cases where actual image URL is stored ibn ALT tag to speed page loading.
		if(galleryImgArray[no].src.indexOf('/spacer.gif') >= 0) {galleryImgArray[no].src=galleryImgArray[no].alt};
	}
	
	// Save array length as number of images
	fadeSlideShow_imagesInGallery[divId] = galleryImgArray.length;
	
	// Create array structures for the specified DIV element and its enclosed images (also starts the slideshow)
	createParentDivs(0,divId);			
}
