/*
 * initialize slide show
 *
 * author: Boris Glusmann <b.glusmann@horschler.eu>
 * derived from daumenKino() by Rene Schmidt
 * http://www.drweb.de/magazin/daumenkino-mit-jquery/
 *
 * Start:
	// initialize slide show
	# slide container CSS selector
	SlideContCSSsel = '#headerimages';
	# slide on-time
	SlideInterval = 5000;
	# fade-out time
	FadeOutInterval = 2500;
	$(document).ready(function() {
		initDivSlideShow(SlideContCSSsel, SlideInterval, FadeOutInterval);
	});
 */

var SlideNum;
var SlideInterval;
var FadeOutInterval;
var SlideIntervalHandle;
var autoNavi	= true;

var $topButtonLast;
var $topButtonNext

//var $next_prevButtonLast
//var $next_prevButtonNext


/**
 * input SlideContCSSsel	string	slide container CSS selector
 * input SlideInterval		string	slide on-time
 * input FadeOutInterval	string	fade-out time
*/
function divSlideShow(SlideContCSSsel, FadeOutInterval, direction) {
	var $top = $(SlideContCSSsel + ' div.topSlide');

	$topButtonLast = $('#prev_img');
	$topButtonNext = $('#next_img');

	if (direction == "next")
	{
		if ($top.next().length)
			var $next_prev = $top.next();
		else
			var $next_prev = $(SlideContCSSsel + ' div.slideOverlay:first');
	}
	else
	// if (direction == "prev")
	{
		if ($top.prev().length)
			var $next_prev = $top.prev();
		else
			var $next_prev = $(SlideContCSSsel + ' div.slideOverlay:last');
	}

	//$next_prevButtonLast = $next_prev.children('.blendimage_last');
	//$next_prevButtonNext = $next_prev.children('.blendimage_next');


	//
	$top.removeClass('topSlide');
	$next_prev.addClass('topSlide');


	// Navigations Button ausblenden
	$topButtonLast.css('display', 'none');
	$topButtonNext.css('display', 'none');
	//$next_prevButtonLast.css('display', 'none');
	//$next_prevButtonNext.css('display', 'none');


	// fade out top slide
	if (direction == "next")
	{
		$top.animate({opacity: 0.0}, FadeOutInterval, function() {
			// Neuen Z-Index ermitteln: aktueller Wert MINUS Anzahl an Elemente
			var top_zidx = $top.css('z-index') - SlideNum;
			// Z-Index zuweisen (auf die unterste Ebene verschieben)
			$top.css('z-index', top_zidx);
			// Wieder sichtbar schalten
			$top.css('opacity', 1.0);

			// Ist der neue Z-Index kleiner als die Anzahl an Elementen
			// => Den Z-Index von jedem Element wieder hoeher setzen
			if (top_zidx <= SlideNum) {
				$(SlideContCSSsel + ' div.slideOverlay').each(function() {
					var lastZidx = $(this).css('z-index');
					$(this).css('z-index', parseInt(lastZidx) + 500 - SlideNum * 2);
				})
			}
		});
	}
	else
	// if (direction == "prev")
	{
		// Neu anzuzeigendes Element unsichtbar schalten
		$next_prev.css('opacity', 0.0);

		// Neuen Z-Index ermitteln: aktueller Wert PLUS 1
		var next_zidx = parseInt($top.css('z-index')) + 1;
		// Z-Index zuweisen (auf die unterste Ebene verschieben)
		$next_prev.css('z-index', next_zidx);

		$next_prev.animate({opacity: 1.0}, FadeOutInterval, function() {
			// Ist der neue Z-Index kleiner als die Anzahl an Elementen
			// => Den Z-Index von jedem Element wieder hoeher setzen
			if (next_zidx >= 1000) {
				$(SlideContCSSsel + ' div.slideOverlay').each(function() {
					var lastZidx = $(this).css('z-index');
					$(this).css('z-index', parseInt(lastZidx) - 500 - SlideNum * 2);
				})
			}
		});
	}


	// Navigations Button einblenden
	buttonTimeOut	= window.setTimeout('divSlideShowShowNavigationButtons()', FadeOutInterval + 500);
}


// initialize slide show
function initDivSlideShow(SlideContCSSsel, SlideInterval, FadeOutInterval) {
//	$(document).ready(function() {
		SlideNum = $(SlideContCSSsel + ' div.slideOverlay').size();
		if (SlideNum > 1) {
			if (!SlideInterval) SlideInterval = 10000;
			if (!FadeOutInterval) FadeOutInterval = 2500;

			$(SlideContCSSsel + ' div.slideOverlay:first').addClass('topSlide');
			var i = 1;
			$(SlideContCSSsel + ' div.slideOverlay').each(function() {
				$(this).css('z-index', 900 - i);
				$(this).css('visibility', '');
				i++;
			})

			if (autoNavi)
				SlideIntervalHandle	= setInterval('divSlideShow(SlideContCSSsel, FadeOutInterval, "next")', SlideInterval);
		}
// test */	alert(' SlideNum: ' + SlideNum + '\n SlideInterval: ' + SlideInterval + '\n FadeOutInterval: ' + FadeOutInterval);
//	});
}


function divSlideShowClickPage()
{
	autoNavi	= false;
	window.clearTimeout(SlideIntervalHandle);
}


function divSlideShowClickNextPage()
{
	divSlideShowClickPage();
	divSlideShow(SlideContCSSsel, FadeOutInterval, "next");
}


function divSlideShowClickPrevPage()
{
	divSlideShowClickPage();
	divSlideShow(SlideContCSSsel, FadeOutInterval, "prev");
}


function divSlideShowShowNavigationButtons()
{
	$topButtonLast.css('display', '');
	$topButtonNext.css('display', '');

	//$next_prevButtonLast.css('display', '');
	//$next_prevButtonNext.css('display', '');
}

