// $Id: default.js 45 2007-11-22 12:19:33Z mlambert $// ==========================================================================// Fußzeile am Ende der Website platzieren// ==========================================================================// Fusszeile am unteren Bildschirm- oder Fensterrand platzierenfunction replaceFooter () {	// Höhe der einzelnen Elemente ermitteln	var headHeight		= $('#head').height();	var boxHeight		= $('#box').height();	var nav2Height		= $('#nav2').height();	var contentHeight	= $('#content').height();	var newsHeight		= $('#news').height();	// Für den Inhalt verfügbare Höhe ermitteln	var availableHeight	= boxHeight - headHeight;	// Für den Inhalt benötigte Höhe ermitteln	var needHeight	= availableHeight;	if ( contentHeight ) {		needHeight	= ( nav2Height > contentHeight )	? nav2Height	: contentHeight;		needHeight	= ( needHeight > newsHeight )		? needHeight	: newsHeight;	}	else {		$('#box .preview').each(function() {			if ( $(this).height() > needHeight ) {				needHeight = $(this).height();			}		});	}	// Wenn die benötigte Höhe nicht vorhanden, diese anpassen	if ( needHeight > availableHeight) {		$('#box').height( needHeight + headHeight + 5 );	}}// ==========================================================================// Fenster für Detailbild öffnen// ==========================================================================// Fenster für Detailbild öffnenfunction openImage ( anchor, width, height ) {	// URL des Detailbildes ermitteln	var url		= anchor.href;	// Abmessungen des Detailbildes ermitteln, wenn keine Breite und Höhe übergeben wurde	if ( !width && !height ) {		// Die Abmessungen des Vorschaubildes ermitteln		for (i = 0; i < anchor.childNodes.length; ++i) {			if ( anchor.childNodes[i].nodeName == 'IMG' ) {				width	= anchor.childNodes[i].width;				height	= anchor.childNodes[i].height;			}		}		// Aus den Abmessungen des Vorschaubildes die Abmessungen des Fensters berechnen		width	= (width * 4);		height	= (height * 4);	}	// Abstand zwischen Bild und Fenster hinzuaddieren	width	= width + 40;	height	= height + 40;	// Fenster für das Detailbild öffnen	var imagewindow	= window.open( url, 'ImageDetail', 'toolbar=0, location=no, directories=no, status=no, menubar=0, scrollbars=yes, resizable=yes, history=no, width=' + width + ', height=' + height );	if ( imagewindow ) { imagewindow.focus(); }}// ==========================================================================// Anfrage-Formular// ==========================================================================// Variablen für das Anfrage-Formular definierenvar closeEnquiryDelay;// Funktion zum Schliessen des Anfrage-Formular-Kontainersfunction closeEnquiry() {	// Timer für das automatische Ausblenden löschen	clearTimeout( closeEnquiryDelay );	// Overlay und Anfrage-Formular-Kontainer ausblenden, und den Standard-Inhalt wieder herstellen	$('#overlay').fadeOut(400);	$('#enquiry').fadeOut(400, function(){$('#enquiry').hide();});}// ==========================================================================// 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	// ==========================================================================	// Fusszeile am unteren Bildschirm- oder Fensterrand platzieren	replaceFooter();	// Kontainer für den Dialog-Overlay in das Dokument einbinden	$('body').append('<div id="overlay" class="overlay" />');	// ==========================================================================	// Anfrage-Formular	// ==========================================================================	// Anfrage-Formular anzeigen	$('a.enquiry').click(		function () {			// Formular-Felder des Anfrage-Formulars löschen			$('#enquiry').find('input:text,textarea').val('');			// Versendet-Meldung ausblenden			$('div.sentmessage').hide();			// Produkt in das Formularfeld schreiben			$('#produkt').val($(this).find('img').attr('alt'));			// Absende-Schaltfläche einblenden			$('#enquirysubmit').show();			// Overlay und Kontainer für die Produkt-Details einblenden			$('#overlay').css('opacity',0).show().fadeTo(400, 0.75);			$('#enquiry').css('opacity',0).show().fadeTo(400, 1);			// False zurück geben, damit der Link nicht ausgeführt			return false;		}	);	// ==========================================================================	// Formulare Allgemein	// ==========================================================================	// Formular vor dem Absenden validieren	if ( $('#contactform') ) {		$('#contactform').prepend('<div class="error-message"><p></p></div>');		$('#contactform').validate({			invalidHandler: function(e, validator) {				var errors = validator.numberOfInvalids();				if (errors) {					var message = errors == 1						? 'Bitte füllen Sie das hervorgehobene Pflichtfeld aus!'						: 'Bitte füllen Sie die ' + errors + ' hervorgehobenen Pflichtfelder aus!';					$('div.error-message p').html(message);					$('div.error-message').show();				} else {					$('div.error-message').hide();				}			},			onkeyup: false,			submitHandler: function(form) {				$('div.error-message').hide();				form.submit();			},			messages: {				name: 'FEHLER'			},			errorPlacement: function(error, element) {}		});	}	// Anfrage-Formular vor dem Absenden validieren	if ( $('#enquiryform') ) {		$('#enquiryform').prepend('<div class="error-message"><p></p></div>');		$('#enquiryform').validate({			invalidHandler: function(e, validator) {				var errors = validator.numberOfInvalids();				if (errors) {					var message = errors == 1						? 'Bitte füllen Sie das hervorgehobene Pflichtfeld aus!'						: 'Bitte füllen Sie die ' + errors + ' hervorgehobenen Pflichtfelder aus!';					$('div.error-message p').html(message);					$('div.error-message').show();				} else {					$('div.error-message').hide();				}			},			onkeyup: false,			submitHandler: function(form) {				$('div.error-message').hide();				// Formular per AJAX absenden				$(form).ajaxSubmit({					cache: false,					dataType: 'html',					beforeSend: function( html ){						$('body').css('cursor', 'wait');						$('#enquirysubmit').hide();					},					success: function( data, textStatus ){						$('body').css('cursor', 'auto');						$('div.sentmessage').show();					},					error: function( XMLHttpRequest, textStatus, errorThrown ){						$('body').css('cursor', 'auto');						alert( XMLHttpRequest.responseText );					}				});			},			messages: {				name: 'FEHLER'			},			errorPlacement: function(error, element) {}		});	}	// Eingabefelder markieren, wenn Fokus auf dem Element liegt	$(':text, textarea').focus(		function() {			$(this).addClass('focus');		}	);	$(':text, textarea').blur(		function() {			$(this).removeClass('focus');		}	);});