// $Id: functions.js 26 2010-06-11 16:27:22Z hweber $// ==========================================================================// Bildergalerie-Funktionen// ==========================================================================// Variablen für die Bildergalerie definierenvar intervalTime	= 7500;var fadeTime		= 2000;// Funktion für den Überblend-Effektfunction fadeGallery() {	$('div.article_image').each(		function() {			if ( $(this).find('img').length > 1 ) {				// Kontainer für die Bildergalerie speichern				var galleryDiv	= $(this);					// Variable für Bildnummer einrichten				var showImage	=  $(this).data('showImage') || 0;					// Zähler für die Bildnummer inkrementieren				showImage++;					// Wenn das letzte Bild erreicht ist, Zähler zurück setzen				if ( showImage > ($(this).find('img').length - 1) ) { showImage = 0 };					// Wert für die Bildnummer speichern				$(this).data('showImage', showImage);					// Nächstes Bild der Galerie einblenden				$(this).find('img').eq(showImage).css( {'z-index' : 11} );				$(this).find('img').eq(showImage).fadeIn(fadeTime, function () {					$(galleryDiv).find('img').hide();					$(galleryDiv).find('img').eq(showImage).show();					$(galleryDiv).find('img').css( {'z-index' : 10} );					//fadeGallery();					window.setTimeout('fadeGallery()', intervalTime);				});			}		}	);}// Variablen für die Bildergalerie der Startseite definierenvar indexIntervalTime	= 6000;var indexFadeTime		= 4000;var posX				= new Array(0, 310, 620);var randPosX			= 0;var lastRandPosX		= 0;var imageLength			= 1;var randImage			= 0;var lastRandImage		= new Array(0, 1, 2);// Funktion für den Überblend-Effektfunction fadeIndexGallery() {	// Zufäliges Bild ermitteln, und erkennen, ob diese sich von den letzten drei Bildern unterscheidet	var	numTries	= 0;	var maxTries	= 10;	while ( (numTries < maxTries) && ((randImage == lastRandImage[0]) || (randImage == lastRandImage[1]) || (randImage == lastRandImage[2]) || !$('#gallery_index img').eq(randImage).hasClass('loaded')) ) {		randImage	= Math.round(imageLength*(Math.random()));		numTries++;	}	lastRandImage.shift();	lastRandImage.push(randImage);	// Zufälige Position ermitteln, und erkennen, ob diese sich von letzter Position unterscheidet	while ( randPosX == lastRandPosX ) {		randPosX	= posX[Math.round(2*(Math.random()))];	}	lastRandPosX	= randPosX;	// Die Anzahl der geklonten Bilder begrenzen (auf doppelte Anzahl der Ursprungsbilder)	while ( $('#gallery_index img').length > (imageLength*2) ) {		$('#gallery_index img').eq(imageLength+1).remove();	}	// Ermitteltes Bild klonen, und an ermittelter Stelle einblenden	$('#gallery_index img').eq(randImage).clone().appendTo('#gallery_index div').css('left', randPosX).fadeIn(indexFadeTime, function(){ fadeIndexGallery();} );}// ==========================================================================// System-Meldung// ==========================================================================	// Variablen für die System-Meldung definierenvar messageBoxDelay;// Funktion zum Einblenden von System-Meldungenfunction openMessageBox() {	if( $('#message_box').contents('ul').length ) {		$('#overlay').css('opacity',0).show().fadeTo(400, 0.5);		$('#message_box').css('opacity',0).show().fadeTo(400, 1, 			function(){				clearTimeout( messageBoxDelay );				messageBoxDelay = setTimeout(function() {					closeMessageBox();				}, 3000);			}		);	};}// Funktion zum Schliessen von System-Meldungenfunction closeMessageBox() {	// Timer für das automatische Ausblenden löschen	clearTimeout( messageBoxDelay );	// Overlay und Warenkorb-Kontainer ausblenden, und den Standard-Inhalt wieder herstellen	$('#overlay').fadeOut(400);	$('#message_box').fadeOut(400);	}// ==========================================================================// JQuery-Funktionen initialisieren// ==========================================================================$(document).ready(function(){	// ==========================================================================	// Allgemeines	// ==========================================================================	// IE6 erkennen	var ie6	= (jQuery.browser.msie && (parseInt(jQuery.browser.version) == 6) ) ? 1 : 0;	// Mozilla Firefox auf MAC erkennen	var agent	= navigator.userAgent.toLowerCase();  	var macff	= ( (agent.indexOf('macintosh') > -1) && (jQuery.browser.mozilla) ) ? 1 : 0;	// Kontainer für den Dialog-Overlay in das Dokument einbinden	$('body').append('<div id="overlay" />');	// ==========================================================================	// Hyperlinks	// ==========================================================================	// Link in einem neuen Fenster öffnen	$('a.new_window').click(		function () {			window.open( $(this).attr('href') );			return false;		}	);	// Zurück-Link	$('a.history_back').click(		function () {			history.back();			return false;		}	);	// ==========================================================================	// Formulare	// ==========================================================================	/* Eingabefelder -- Allgemein */ 	$('input.text').focus(		function() {			$(this).addClass('focus');		}	);	$('input.text').blur(		function() {			$(this).removeClass('focus');		}	);	// ==========================================================================	// Zebra-Listen	// ==========================================================================	// Zebra-Liste innerhalb markierten Tabellen erstellen	$('table.zebra_list').each(function() {		$(this).find('tr:even').addClass('even');	});	// Hover-Funktion für die Zebra-Liste	$('table.zebra_list tr').hover(		function () {			$(this).addClass('active');		}, 		function () {			$(this).removeClass('active');		}	);	// ==========================================================================	// Bildergalerie	// ==========================================================================	// Höchstes Bild einer Bildergalerie ermitteln und dem umliegenden DIV-Kontainer zuordnen	$('div.article_image').each(		function() {			var divContainer	= this;			$(divContainer).find('img').each(				function() {					if ( $(this).height() > $(divContainer).height() ) {						$(divContainer).height( $(this).height() );					}				}			);		}	);	// Das erste Bild einer Bildergalerie einblenden	$('div.article_image').each(		function() {			$(this).find('img').filter(':first').show();		}	);	// Funktion für die Bildergalerie aufrufen	if ( $('div.article_image').length ) {		window.setTimeout('fadeGallery()', intervalTime);	}	// ==========================================================================	// Bildergalerie auf der Startseite	// ==========================================================================	// Variablen für die Bildergalerie definieren	imageLength	= $('#gallery_index img').length-1;	// Die ersten 3 Bilder der Bildergalerie einblenden	$('#gallery_index img').eq(0).css('left', posX[0]).fadeIn(indexFadeTime/2);	$('#gallery_index img').eq(1).css('left', posX[2]).fadeIn(indexFadeTime/2);	$('#gallery_index img').eq(2).css('left', posX[1]).fadeIn(indexFadeTime);	// Bilder markieren, wenn diese fertig geladen wurden	$('#gallery_index img').load(		function() {			$(this).addClass('loaded');		}	);	// Funktion für die Bildergalerie aufrufen	if ( imageLength > 2 ) {		window.setTimeout('fadeIndexGallery()', indexIntervalTime);	}	// ==========================================================================	// System-Meldung	// ==========================================================================	// System-Meldung einblenden, und nach einer Wartezeit automatisch wieder ausblenden	openMessageBox();	// Wenn Mauszeiger auf der System-Meldung, dann Timer für das Ausblenden löschen	$('#message_box').mouseenter(		function(){			clearTimeout( messageBoxDelay );		}	);	// System-Meldung ausblenden, wenn der Mauszeiger diese wieder verlässt.	$('#message_box').mouseleave(		function(){			closeMessageBox();		}	);});