// slideshow elements
// var specialsSlideshow = new Array();
// specialsSlideshow['name'] = 'specialsSlideshow';
// specialsSlideshow['blendStep'] = 5;
// specialsSlideshow['blendDelay'] = 25;
// specialsSlideshow['slideDelay'] = 7500;
// specialsSlideshow['slideLayerFG'] = 'indexSpecialFG';
// specialsSlideshow['slideLayerBG'] = 'indexSpecialBG';
// specialsSlideshow['slideLayerURL'] = 'indexSpecialURL';
// specialsSlideshow['slideW'] = 318;
// specialsSlideshow['slideH'] = 238;
var debugMode = false;

function blendSlides(arrayObj) {
	var divContainerBG = document.getElementById(arrayObj['slideLayerBG']);
	var divContainerFG = document.getElementById(arrayObj['slideLayerFG']);

	arrayObj['currentOpacity'] = arrayObj['currentOpacity'] - arrayObj['blendStep'];
	divContainerFG.style.filter = 'alpha(opacity = ' + arrayObj['currentOpacity'] + ')';
	divContainerFG.style.opacity = (arrayObj['currentOpacity']/100);

	//logText('Opacity: '+divContainerFG.style.opacity,arrayObj);

	if (arrayObj['currentOpacity'] > 0)
		window.setTimeout(function() { blendSlides(arrayObj) },arrayObj['blendDelay']);
	else
		slideShowNext(arrayObj);
}
function cacheSlide(arrayObj) {
	if (arrayObj['cacheImg'][arrayObj['currentSlide']] != null) {
		logText('Image #'+(arrayObj['currentSlide']+1)+' already cached',arrayObj);
		nextImageReady(arrayObj);
	} else {
		logText('Caching image #'+arrayObj['currentSlide']+'...',arrayObj);
		arrayObj['cacheImg'][arrayObj['currentSlide']] = new Image(arrayObj['slideW'],arrayObj['slideH']);
		arrayObj['cacheImg'][arrayObj['currentSlide']].src = arrayObj['slideDir'] + arrayObj['slideImages'][arrayObj['currentSlide']];
		arrayObj['cacheImg'][arrayObj['currentSlide']].onload = function() { nextImageReady(arrayObj) };
	}
}
function doNothing() {

}
function nextImageReady(arrayObj) {
	logText('Next image ready',arrayObj);
	//window.setTimeout('blendSlides('+arrayObj+')',arrayObj['slideDelay']);
	window.setTimeout(function() { blendSlides(arrayObj) },arrayObj['slideDelay']);
}
function slideShowNext(arrayObj) {
	logText('Slide #'+(arrayObj['currentSlide']+1)+' requested',arrayObj);

	arrayObj['currentOpacity'] = 100;
	var divContainerBG = document.getElementById(arrayObj['slideLayerBG']);
	var divContainerFG = document.getElementById(arrayObj['slideLayerFG']);
	var divContainerURL = document.getElementById(arrayObj['slideLayerURL']);

	divContainerFG.style.background = 'url('+ arrayObj['slideDir'] + arrayObj['slideImages'][arrayObj['currentSlide']] + ')';
	//divContainerFG.style.filter = 'alpha(opacity = ' + arrayObj['currentOpacity'] + ')';
	divContainerFG.style.filter = ''; // remove filter to fix opacity issue in IE
	divContainerFG.style.opacity = (arrayObj['currentOpacity']/100);

	if (arrayObj['slideURLs'][arrayObj['currentSlide']]) {
		divContainerURL.href = arrayObj['slideURLs'][arrayObj['currentSlide']];
		divContainerFG.style.cursor = 'hand';
	} else {
		divContainerURL.href = 'javascript:doNothing()';
		divContainerFG.style.cursor = 'default';
	}
	//window.setTimeout('blendSlides()',slideDelay);

	arrayObj['currentSlide']++;
	if (arrayObj['currentSlide'] >= arrayObj['slideImages'].length) // reset slideshow at end
		arrayObj['currentSlide'] = 0;
	if (arrayObj['slideImages'].length > 1)
		cacheSlide(arrayObj);

	divContainerBG.style.background = 'url('+ arrayObj['slideDir'] + arrayObj['slideImages'][arrayObj['currentSlide']] + ')';

}
function slideShowStart(arrayObj) {
	if (debugMode) {
	 	var logTarget = document.getElementById('slideshowLog');
		logTarget.style.display = 'block';
		logTarget.style.visibility = 'visible';
	}
	arrayObj['currentOpacity'] = 100;
	arrayObj['currentSlide'] = 0;
	arrayObj['cacheImg'] = new Array();

	var divContainerBG = document.getElementById(arrayObj['slideLayerBG']);
	var divContainerFG = document.getElementById(arrayObj['slideLayerFG']);
	var divContainerURL = document.getElementById(arrayObj['slideLayerURL']);

	divContainerFG.className = 'slideElementFG';
	divContainerFG.style.width = arrayObj['slideW'] + 'px';
	divContainerFG.style.height = arrayObj['slideH'] + 'px';
	divContainerBG.className = 'slideElementBG';
	divContainerBG.style.width = arrayObj['slideW'] + 'px';
	divContainerBG.style.height = arrayObj['slideH'] + 'px';

	slideShowNext(arrayObj);
	//setInterval('slideShowNext()',slideDelay);
}
function logText(sText,arrayObj) {
	if (debugMode) {
	 	var logTarget = document.getElementById('slideshowLog');
		var currentTime = new Date();
		var timeHours = currentTime.getHours()+'';
		timeHours = timeHours.lpad('0',2);
		var timeMinutes = currentTime.getMinutes()+'';
		timeMinutes = timeMinutes.lpad('0',2);
		var timeSeconds = currentTime.getSeconds()+'';
		timeSeconds = timeSeconds.lpad('0',2);

		//var timestamp = .lpad('0',2) + ':' + currentTime.getMinutes().lpad('0',2) + ':' + currentTime.getSeconds().lpad('0',2);
		var timestamp = timeHours + ':' + timeMinutes + ':' + timeSeconds;
		logTarget.value = '[' + timestamp + '] ' + arrayObj['name'] + ': ' + sText + '\n' + logTarget.value;
	}
}
String.prototype.lpad = function(padString, length) {
	var str = this;
    while (str.length < length)
        str = padString + str;
    return str;
}

