//
//  Slideshow Player by multi-vitamin.ch  for  parasol-unit.org
//
//

var imagesFolder = "./uploads/pics/";
var emptyImgSrc = "./fileadmin/templates/img/spacer.gif";

var delaySeconds = 5;
var blankMilliseconds = 500;

var mvsls_filenames = "No Files";
var mvsls_uids = "No Files";

var imgCount = 0;

var currIdx = -1;
var preloadImage = 0;

var timeoutID = 0;

var isFading = false;
var doAutoplay = false;

var fadeInCaptionTimeout = 0;

var imgElement, imgCover, captCover;


function initSlideshow(theFilenames, theUIDs, currImgIdx, delaySecs) {
	if(imgCount == 0) {
		mvsls_filenames = theFilenames.split("\r");
		mvsls_uids = theUIDs.split("\r");
		
		imgCount = mvsls_filenames.length;
		currIdx = currImgIdx;
		delaySeconds = delaySecs;
		
		preloadNextImage();
		
		imgElement = document.getElementById('slideshow_img');
		imgCover = document.getElementById('image_hide');
	
		captCover = document.getElementById('capt_hide');
	
		doAutoplay = true;
		setNextImageTimeout();
	}
}


//  User Interaction
//
function clickPrevImage() {
	if(!isFading) {
		if(imgCount>1) {
			currIdx = (currIdx-1+imgCount)%imgCount;
			switchToCurrImage();
		}
	}
	return false;
}

function clickNextImage() {
	if(!isFading) {
		if(imgCount>1) {
			currIdx = (currIdx+1)%imgCount;
			switchToCurrImage();
		}
	}
	return false;
}

function switchToCurrImage() {
	if(captCover) {
		captCover.className = 'capt_cover';
	}
	isFading = true;
	setCaptionFade(100);
	isFading = false;
		
	loadCurrImage();
	
	/* if(captCover) {
		loadCurrCaption();
		fadeInCaptionTimer();
	} */
}



//  FadeToNext Trigger
//
function fadeToNextImage() {
	if(!isFading) {
		if(imgCount>1) {
			currIdx = (currIdx+1)%imgCount;
			if(!imgCover) {
				imgCover = document.getElementById('image_hide');
			}
			imgCover.className = 'image_cover';

			isFading = true;
			setImageFade(0);
			startFadeOut();
		}
	}
}


// Fading sequence...

function setImageFade(opacity) {
	if(isFading) {
		imgCover.style.opacity = (opacity / 100);
		imgCover.style.MozOpacity = (opacity / 100);
		imgCover.style.KhtmlOpacity = (opacity / 100);
		imgCover.style.filter = "alpha(opacity=" + opacity + ")";
	} 
}

function startFadeOut() {
	for(i = 0; i <= 20; i++) {
		setTimeout("setImageFade(" + i*5 + ")", i*15);
	}
	setTimeout("fadeOutDone()", 525);
}
function fadeOutDone() {
	if(isFading) {
		setHiddenTimeout();
		fadeOutCaption();
	}
}

function startFadeIn() {
	for(i = 0; i <= 20; i++) {
		setTimeout("setImageFade(" + (100-i*5) + ")", i*25);
	}
	if(!captCover) {
		setTimeout("fadeInDone()", 525);
	}
}
function fadeInDone() {
	isFading = 0;
	setNextImageTimeout();
}

function setHiddenTimeout() {
	setTimeout("loadCurrImage()", blankMilliseconds);
}



function loadCurrImage() {
	var url = imagesFolder + mvsls_filenames[currIdx];
	if(!imgElement) {
		imgElement = document.getElementById('slideshow_img');
	}
	imgElement.src = url;
	
	if(captCover) {
		loadCurrCaption();
		if(isFading) {	
			fadeInCaptionTimer();
		}
	}
}

function imageLoaded() {
	if(isFading) {
		startFadeIn();
	} else {
		if(imgCover) {
			imgCover.className = 'image_uncover';
		}
	}
	if(currIdx > -1) {
		tdObj = document.getElementById('imagenumber');
		if(tdObj) {
			tdObj.innerHTML = "<span class='text_blue'>"+String(currIdx+1)+"</span> / "+String(imgCount);
		}
	}

	preloadNextImage();
	
	if(captCover) {
		if(doAutoplay) {
			setNextImageTimeout();
		}
		if(!isFading) {
			if(fadeInCaptionTimeout) {
				clearTimeout(fadeInCaptionTimeout);	
			}
			fadeInCaptionTimeout = setTimeout("unhideCaptionDone()", 750);
		}
	}
}



function fadeOutCaption() {
	if(captCover) {
		captCover.className = 'capt_cover';
		setCaptionFade(0);
		for(i = 0; i <= 20; i++) {
			setTimeout("setCaptionFade(" + i*5 + ")", i*15);
		}
	}
}

function loadCurrCaption() {
	var url = "./index.php?id=124&part=capt&cid=" + mvsls_uids[currIdx];
	
	iframeObj = document.getElementById('slidecapt_iframe');
	iframeObj.src = url;
}

function fadeInCaptionTimer() {
	if(fadeInCaptionTimeout) {
		clearTimeout(fadeInCaptionTimeout);
	}
	fadeInCaptionTimeout = setTimeout("fadeInCaption()", blankMilliseconds +500);
}

function fadeInCaption() {
	for(i = 0; i <= 20; i++) {
		setTimeout("setCaptionFade(" + (100-i*5) + ")", i*25);
	}
	setTimeout("unhideCaptionDone()", 500);
}

function setCaptionFade(opacity) {
	if(isFading && captCover) {
		captCover.style.opacity = (opacity / 100);
		captCover.style.MozOpacity = (opacity / 100);
		captCover.style.KhtmlOpacity = (opacity / 100);
		captCover.style.filter = "alpha(opacity=" + opacity + ")";		
	}
}
function unhideCaptionDone() {
	if(captCover) {
		captCover.className = 'image_uncover';
	}
	isFading = false;	
}



function setNextImageTimeout() {
	if(timeoutID) {
		clearTimeout(timeoutID);
	}
	timeoutID = setTimeout("fadeToNextImage()", delaySeconds*1000);
}



function preloadNextImage() {
	if(document.images && imgCount > 0) {
		var nextIdx =  (currIdx+1)%imgCount;
		preloadImage = new Image(25, 25);
		preloadImage.src = imagesFolder + mvsls_filenames[nextIdx];
	}
}

function setAutoplay(auto) {
	if(captCover) {
		doAutoplay = auto;
		if(timeoutID) {
			clearTimeout(timeoutID);
			timeoutID = 0;
		}
		if(auto) {
			setNextImageTimeout();
		}
	}
}
