// $Id: functions.js 35 2009-08-20 14:11:00Z hweber $// ==========================================================================// 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;	// ==========================================================================	// Suche	// ==========================================================================	// Bei Fokus auf das Suchfeld, dieses Leeren, wenn der Anfangswert darin enthalten ist	$('#suche input').focus(		function () {			if ($(this).val() == $(this)[0].defaultValue) {				$(this).val('');			}		}	);	// ==========================================================================	// Hyperlinks	// ==========================================================================	// Link in einem neuen Fenster öffnen	$('a.new_window').livequery( 'click',		function () {			window.open( $(this).attr('href') );			return false;		}	);	// Bei einem internen Link die Seite nochmals aufrufen	$('a.intern').livequery( 'click',		function () {			window.location.href = $(this).attr('href');			window.location.reload();			return false;		}	);	// Drucken-Link	$('a.drucken').livequery( 'click',		function () {			var content	= $(this).parents('p').eq(0).parents('div').eq(0);			// iFrame für Druck-Ausgabe erzeugen			var iframe	= $('<iframe />').css({ position: 'absolute', width: '0px', height: '0px', left: '-500px', top: '-500px' }).attr('id', 'printArea').appendTo($('body'));			$(iframe).append('');			// CSS-Daten der Haupt-datei in iFrame übernehmen			var doc = iframe.get(0).contentWindow.document;			$('link').each(function(e) {				if (this.rel.toLowerCase() == 'stylesheet') {					doc.write('<link type="text/css" rel="stylesheet" href="' + this.href + '"></link>');				}			});			$(doc.body).css({ backgroundColor: '#fff' });			// Element in iFrame übertragen			doc.write('<html><head><title>Engel</title></head><body><div>' + content.html() + '</div></body></html>');			doc.close();			// Fokus auf iFrame legen und ausdrucken			iframe.get(0).contentWindow.focus();			setTimeout(function() { iframe.get(0).contentWindow.print(); }, 10);			// Funktion verlassen			return false;		}	);	// ==========================================================================	// Neuheiten	// ==========================================================================	// PopUp der Neuheit wieder ausblenden	$('a.newsclose').livequery( 'click',		function(){			if( macff ) { $('#text_large').css('overflow-y', 'auto') };			$('div.newspopup').fadeOut();			return false;		}	);	// Detailbilder vorausladen	$('div.news a.detail').each(		function () {			jQuery('<img>').attr('src', $(this).attr('href'));		}	);	// Detailbild der Neuheiten im vorgesehenen Bilderrahmen einblenden	$('div.news  a.detail').click(		function () {			if ( !$('#image').hasClass('fade-in') ) {				$('#image').addClass('fade-in');				$('#image').clone().appendTo('#content').attr('src', $(this).attr('href')).css('display', 'none').fadeIn( 'normal', function(){ $('#image').removeClass('fade-in'); } );			}			return false;		}	);	// PopUp der Neuheit einblenden	$('div.news a.more').click(		function () {			if( macff ) { $('#text_large').css('overflow-y', 'hidden') };			var newsPopup	= $(this).parents('p').eq(0).next('div.newspopup').eq(0);			$('<a href="#" class="newsclose"><img src="../../../images/close.png" alt="x" title="Neuheit schliessen" /></a>').appendTo(newsPopup)			$(newsPopup).clone().appendTo('#main').fadeIn();			return false;		}	);	// ==========================================================================	// Lexikon	// ==========================================================================	// PopUp des Eintrags wieder ausblenden	$('a.lexikonclose').livequery( 'click',		function(){			$('div.lexikonpopup').fadeOut();			return false;		}	);	// PopUp der Neuheit über Klick einblenden	$('div.lexikon a.more').click(		function () {			var lexikonPopup	= $(this).parents('p').eq(0).next('div.lexikonpopup').eq(0);			$('<a href="#" class="lexikonclose"><img src="../../../images/close.png" alt="x" title="Lexikon schliessen" /></a>').appendTo(lexikonPopup)			$(lexikonPopup).clone().appendTo('#main').fadeIn();			return false;		}	);	// PopUp des Eintrags über Aufruf in der URL einblenden	var anchorName	= $.getAnchorName();	if ( anchorName ) {		var lexikonPopup	= $('a[name=' + anchorName + ']').parents('p').eq(0).next('div.lexikonpopup').eq(0);		$('<a href="#" class="lexikonclose"><img src="../../../images/close.png" alt="x" title="Lexikon schliessen" /></a>').appendTo(lexikonPopup)		$(lexikonPopup).clone().appendTo('#main').fadeIn();		return false;	}	// ==========================================================================	// PopUp	// ==========================================================================	// PopUp wieder ausblenden	$('a.popupclose').livequery( 'click',		function(){			$('div.popup').fadeOut();			return false;		}	);	// PopUp der Neuheit über Klick einblenden	$('a.popup').click(		function () {			var popup	= $($(this).attr('href'));			$('<a href="#" class="popupclose"><img src="../../../../images/close.png" alt="x" title="Fenster schliessen" /></a>').appendTo(popup)			$(popup).clone().appendTo('#main').fadeIn();			return false;		}	);	// ==========================================================================	// Bezugsquellen	// ==========================================================================	// PopUp der Neuheit wieder ausblenden	$('p.traders_slider a').click(		function(){			$(this).parents('tr').find('p.traders_details').slideToggle();			return false;		}	);	// ==========================================================================	// Kontaktformular	// ==========================================================================	// 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) {}		});	}	// Eingabefelder markieren, wenn Fokus auf dem Element liegt	$(':text, textarea').focus(		function() {			$(this).addClass('focus');		}	);	$(':text, textarea').blur(		function() {			$(this).removeClass('focus');		}	);	// ==========================================================================	// Pressebilder	// ==========================================================================	// Detailbilder zu den Vorschaubildern ermitteln	$('div.pressebild img').each(		function () {			// Bildquelle für Detailbild ermitteln			var thumb	= $(this).attr('src');			var detail	= thumb.replace(/thumbnails/g, 'detailbilder');			// Link zum Detailbild zusammenstellen			var detailLink	= jQuery('<a>').attr('href', detail).attr('class', 'detail');			// Vorschaubild mit Detailbild verlinken			$(this).wrap(detailLink);			// Detailbilder vorausladen			jQuery('<img>').attr('src', detail);			// Text für die Bildbeschreibung ermitteln aus dem Dateinamen ermitteln			var lastIndexOfSlash	= thumb.lastIndexOf('/');			var lastIndexOfDot		= thumb.lastIndexOf('.');			var imageName			= thumb.substr( lastIndexOfSlash+1, lastIndexOfDot-lastIndexOfSlash-1 );			imageName				= imageName.replace(/engel_/g, '');			// Text für die Bildbeschreibung ermitteln aus Alternativ-Text ermitteln			var imageAlt			= $(this).attr('alt');			// Text für die Bildbeschreibung unter dem Bild einfügen			$(this).parents('a').eq(0).after('<p>' + ( imageAlt || imageName ) + '</p>');		}	);	// Detailbild der Pressebilder im vorgesehenen Bilderrahmen einblenden	$('div.pressebild img').click(		function () {			// Bildquelle für Detailbild und Druckbild ermitteln			var thumb	= $(this).attr('src');			var detail	= thumb.replace(/thumbnails/g, 'detailbilder');			var druck	= thumb.replace(/thumbnails/g, 'druckdaten');			// Dateiname des Druckbildes ermitteln			var lastIndexOfSlash	= druck.lastIndexOf('/');			var imageName			= druck.substr( lastIndexOfSlash+1 );			// Detailbild und Download-Link einblenden, wenn keine weitere Einblende-Funktion gerade aktiv ist			if ( !$('#image').hasClass('fade-in') ) {				// Merken, dass die Einblende-Funktion gerade aktiv ist				$('#image').addClass('fade-in');				// Detailbild einblenden				$('#image').clone().appendTo('#content').attr('src', detail).css('display', 'none').fadeIn( 'normal', function(){ $('#image').removeClass('fade-in'); } );				// Download-Link für Druckbild zusammenstellen und einblenden				$('#info').html('<p><strong>Download <a href="' + druck + '" class="new_window">' + imageName + '</a></strong></p>' );			}						// False zurück geben, damit der Link nicht ausgeführt wird			return false;		}	);	// ==========================================================================	// 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');		}	);});// ==========================================================================// Anker-Bezeichung aus URL ermitteln// ==========================================================================jQuery.extend({	getAnchorName: function(){		var retVal	= '';		var href	= window.location.href;		var found	= false;			if ( href.indexOf("#") > -1 ){			retVal	= href.substr(href.indexOf("#")+1);			found	= true;		}			if (found == false) return null;		return retVal;	}});