var currentImage, maxImage, minMargin, picWidth, margin, galleryPath, diashowIsRunning=false, timeoutHandle;
var galleryInterval = 4000;

$(document).ready(function() {
	
	var newdesign = true;
	

	var Instance3 = new ImageFlow();
	Instance3.init({
		ImageFlowID:'kontaktflow',
		captions: true,
		slider: true,
		reflections: false, 
        reflectionP: 0.0,
		opacity: true,
		startID: 2,
		startAnimation: true,
		imageFocusM: 1,
		imageCursor: 'pointer'
	});
	
	$('a.email').nospam({
		replaceText: true
	});
	
	
	$('#changeButton').click(function() {
		if(newdesign) {
			$('body').css({
				paddingTop: 10
			});
			
			$('#header').css({
				height: 168,
				backgroundImage: 'URL(\'/images/header.png\')'
			});
			
			$('#navigation').css({
				height: 59,
				backgroundImage: 'URL(\'/images/navigation.png\')'
			});
			
			$('#navigation > a').css({
				height: 59
			});
			
			$('#footer').css({
				height: 34,
				backgroundImage: 'URL(\'/images/footer.png\')'
			});
			
			newdesign = !newdesign;
		}
		else {
			newdesign = !newdesign;
			
			$('body').css({
				paddingTop: 0
			});
			
			$('#header').css({
				height: 170,
				backgroundImage: 'URL(\'/images/viech.png\')'
			});
			
			$('#navigation').css({
				height: 42,
				backgroundImage: 'URL(\'/images/viech1.png\')'
			});
			
			$('#navigation > a').css({
				height: 42
			});
			
			$('#footer').css({
				height: 21,
				backgroundImage: 'URL(\'/images/viech2.png\')'
			});
		}
	});
	
	
	
	$('#navigation > a').css('backgroundColor', '#329219');
	
	$('#navigation > *').css('opacity', 0);
	
	$('#navigation > *:not(#space_left,#space_right)').mouseover(function() {
		$(this).animate({
			opacity: 0.4
		},300);
	}).mouseout(function() {
		$(this).animate({
			opacity: 0
		},100);
	});
	
	
	// Gallery
	
	currentImage = parseInt($('#galleryInformation').text().split('|')[0]);
	maxImage = parseInt($('#galleryInformation').text().split('|')[1]);
	
	minMargin = 40;
	picWidth = 88;
	
	$('#next').click(function() {
		if(!$(this).hasClass('disabled')) {
			$('#thumbnails').animate({ marginLeft: '-=88px' }, 100, function() {
				checkArrows();
			});
		}
	});
	
	$('#back').click(function() {
		if(!$(this).hasClass('disabled')) {
			$('#thumbnails').animate({ marginLeft: '+=88px' }, 150, function() {
				checkArrows();
			});
		}
	});
	
	
	$('#thumbnails > li').click(function() {
		var obj = $(this);
		
		if(this.tagName == 'LI')
			obj = $(this).children();
		
		
		if(!isNaN($(obj).attr('alt'))) {
			location.href = $(obj).attr('alt') + "_" + ((margin - minMargin)/picWidth) + "#galleryScreen";
		}
	});
	
	$('#thumbnails').css('marginLeft', -($('#galleryInformation').text().split('|')[2]*picWidth+minMargin) + 'px');
	
	checkArrows();
	
	$('#diashowLink, #screen').click(function() {
		location.href = '#top';
		startSlideShow();
	});
	
	$('#calender').datepicker({
		minDate: 0,
		onChangeMonthYear: function(year, month, inst) {
			if(month < 10)
				month = '0' + month;
			
			// Wenn keine sichtbaren Einträge vorhanden sind, wird nur die Show-Funktion aufgerufen
			if($('.calender').children(':visible').length == 0) {
				$('.' + month + year).fadeIn('slow');
			}
			else {
				$('.calender').children(':visible').fadeOut('slow', function() {
					
					$('.' + month + year).fadeIn('slow');
				});
			}
		 },
		beforeShowDay: function(date) {
			
			$anchor = $('#h' + $.datepicker.formatDate('ddmmyy', date));
			
			if($anchor.length == 1) {
				return [true, 'terminhint', $anchor.children('.terminHeadline').text()];
			}
			else {
				return [true, , ''];
			}
		},
		onSelect: function(dateText, inst) {
			$anchor = $('#h' + dateText.replace(/\./g, ''));
			if($anchor.length == 1)
				location.href = $anchor.selector;			
		 }
	});	
});

function checkArrows() {
	
	if($('#thumbnails').css('marginLeft') != null)
	{
		margin = -parseFloat($('#thumbnails').css('marginLeft').split('px')[0]);
		
		if(((margin - minMargin)/picWidth + 6) == maxImage || maxImage <= 6) {		// Wenn das letze Bild auf der Slidebar erreicht ist oder weniger Bilder als in der Slidebar zu verfügung stehen -> disable Button
			$('#next').attr('src', '/images/no_next.png');
			$('#next').addClass('disabled');
		} else {
			$('#next').attr('src', '/images/next.png');
			$('#next').removeClass('disabled');
		}
		
		if(margin <= minMargin) {
			$('#back').attr('src', '/images/no_back.png');
			$('#back').addClass('disabled');
		} else {
			$('#back').attr('src', '/images/back.png');
			$('#back').removeClass('disabled');
		}
	}
}

function startSlideShow()
{
	// Diashow
	/* Aufbau:
		<div id="diashowContainer">
			<div id="diashowBackground"></div>
			<div id="diashowLoad"></div>
			<div id="diashowImageHelper">
				<img></img>
			</div>
			<div id="diashowNavi">
				<div class="diashowNaviEntry"></div>
			</div>
		</div>
	
	*/
	
	$(window).keydown( function(event) { listenKeyEvent(event); });	// Register Event-Handler Keydown für Esc-Taste
	
	var tempParts = $('#screen').attr('src').split('/');
	tempParts[tempParts.length-1] = '';
	galleryPath = tempParts.join('/');
	
	diashowIsRunning = true;
	
	var height = ($(window).height() > document.body.scrollHeight) ? $(window).height() : document.body.scrollHeight;
	var width = ($(window).width() > document.body.scrollWidth) ? $(window).width() : document.body.scrollWidth;
	
	$('<div></div>').attr({
		id: 'diashowContainer'
	}).css({
		height: height,
		width: width
	}).appendTo(document.body).append(
		$('<div></div>').attr({
			id: 'diashowBackground'
		}).css({
			height: height,
			width: width
		}).append(
			$('<div></div>').attr({
				id: 'diashowLoad'
			}).css({
				backgroundImage: 'URL(\'/images/load.gif\')'
			})
		)
	);
	
	$('#diashowBackground').css({opacity: 0.8});
	$('#diashowContainer').show('slide', { direction: 'right' }, function() {
	
	$('<div></div>').attr({
		id: 'diashowImageHelper'
	}).css({
		marginLeft: ((document.body.scrollWidth-680)/2)
	}).append(
	$('<img></img>').attr({
		id: 'diashowImage'
	})).appendTo('#diashowContainer');
	
	$('<div></div>').attr({
		id: 'diashowNavi'
	}).append(
			$('<div></div>').attr('class', 'diashowNaviEntry').append(
				$('<img />').attr('src', '/images/close.png')
			).append(
				$('<span>Diashow beenden</span>').click(function() {
					endDiashow();
				})
			)
	).append(
		$('<div></div>').attr('class', 'diashowNaviEntry').append(
			$('<img />').attr('src', '/images/stop.png')
		).append(
			$('<span>Diashow anhalten</span>').toggle(function() {
				// Diashow anhalten
				$(this).text('Diashow fortsetzen');
				$(this).parent().children('img').attr('src', '/images/play.png');
				diashowIsRunning = false;
				window.clearTimeout(timeoutHandle);
			},
			function() {
				// Diashow fortsetzen
				$(this).text('Diashow anhalten');
				$(this).parent().children('img').attr('src', '/images/stop.png');
				diashowIsRunning = true;
				processSlideShow(currentImage);
			})
		)
	).append(
		$('<div></div>').attr({
							'id': 'diashowNaviEntryOverlay',
							'class': 'ui-corner-all'
						}).css('opacity', 0)
	).appendTo('#diashowContainer');
	
	$('.diashowNaviEntry > span').mouseover(function() {
		$('#diashowNaviEntryOverlay').css('top', $(this).parent().position().top);
		
		$("#diashowNaviEntryOverlay").animate({
			opacity: 1
		},200)
	}).mouseout(function() {
		$("#diashowNaviEntryOverlay").animate({
			opacity: 0
		},200)
	});
	
	$('#diashowImage').load(function()
	{
		if(diashowIsRunning) {
				
			$('#diashowLoad').hide();
			
			if(currentImage >= maxImage) {
				currentImage = 0;
			}
			
			$('#diashowImage').css({
				border: '7px solid #ffffff'
			});
		
			$('#diashowImageHelper').show('slide', { direction: 'right' }, function() {
				currentImage ++;
				timeoutHandle = window.setTimeout("processSlideShow(" + currentImage + ")", galleryInterval);	// Alle galleryInterval-Sekunden neues Bild
			});
		}
	});
	
	processSlideShow(currentImage);		// Erster Bildaufruf
	
	});
}

function endDiashow()
{
	diashowIsRunning = false;
	currentImage = $('#galleryInformation').text().split('|')[0];	// Zurücksetzen des currentImage-Wertes auf den Seitenwert
	
	$('#diashowContainer').hide('slide', { direction: 'right' }, function() {
		$('#diashowContainer').remove();
	});
	
	$(window).unbind();
	window.clearTimeout(timeoutHandle);
}

function listenKeyEvent(event)
{
	var keyCode;
	
	if(event.which) {
		keyCode = event.which;
	} else {
		keyCode = event.keyCode;
	}
	
	if(keyCode == 27)
		endDiashow();
}

function processSlideShow(picNumber)
{
	if(diashowIsRunning) {
		$('#diashowLoad').css({
			display: 'inline'
		});
	
		$('#diashowImageHelper').hide('slide', { direction: 'right' }, function() {
			$('#diashowImage').css({
				border: '0px solid #ffffff'
			});
			$('#diashowImage').attr('src', galleryPath + picNumber + '.jpg');
		});
	}
}

jQuery.preloadImages = function()
{
  for(var i = 0; i<arguments.length; i++)
  {
    jQuery("<img>").attr("src", arguments[i]);
  }
}



