/*********************************************************
* Suchfelder - Label ein-/ausblenden
**********************************************************/
function initSearch(fieldName) {
	var inputElement = document.getElementById(fieldName);
	var labelElement = document.getElementById(fieldName + '_label');
	if (!inputElement || !labelElement) { return; }
	// Ok, es gibt das Input-Feld und das Label...
	inputElement.onfocus = initSearch_getHandler(inputElement, labelElement, true);
	inputElement.onblur = initSearch_getHandler(inputElement, labelElement, false);
	inputElement.onblur();
}
function initSearch_getHandler(inputElement, labelElement, gotFocus) {
	return (function() { labelElement.style.visibility = (gotFocus || inputElement.value != "" ? "hidden" : "visible"); });
}

/*********************************************************
* Javascript-Funktionalität in der Seite aktivieren
**********************************************************/
function initJavascript() {
	initColorbox();
	initBookmarks();
	initTabs();
	initMainnav();
	initSubnav();
	initBreadcumb();
	initTouch();
	initPopup();
	initFaqAreas();
}
$(document).ready(function(){ initJavascript(); });
/*********************************************************
* Colorbox: alle Gallery-Links in der Seite aktivieren
**********************************************************/
function initColorbox() {
	// Bildergalerien
	$('div.gallery a').colorbox({ 
		current: 'Bild {current} von {total}', 
		previous: 'vorheriges Bild', 
		next: 'nächstes Bild', 
		close: 'schließen'
	}); 
	// Anzeige von Code-Blöcken aus der Seite selbst (z.B. Captcha-Info)
	$("a.inlineLightbox").colorbox({ 
		inline:true, 
		width:"650px", 
		close: 'schließen'
	}); 
	// Anzeige von externen Inhalten in einem iFrame
	$("a.iframeLightbox").colorbox({ 
		iframe: true, 
		title: ' ', 
		width:"750px", 
		height: "600px", 		
		close: 'schließen'
	}); 
}
/*********************************************************
* Bookmark-Links: als Popup öffnen
**********************************************************/
function initBookmarks() {
	$('div.bookmarklinks a').click(function(event) {
		var url = this.href.replace('##HREF##', encodeURIComponent(document.location.href)).replace('##TITLE##', encodeURIComponent(document.title));
		var w = window.open(url, 'bookmark', 'resizable=yes,scrollbars=yes,toolbar=no,width=800,height=500');
		if (w) { w.focus(); }
		event.preventDefault();
	});
}
/*********************************************************
* Tabs: Laschen mit Funktionalität versehen und initiale Lasche einblenden
**********************************************************/
function initTabs() {
	// Ggf. "normale" horizontale Tabs initialisieren
	$('div.tabs').each(function(index) {
		var navitems = $(this).find('div.tabs_navigation a');
		var sheets = $(this).find('div.tabs_sheet');
		var clickFunc = function(event) {
			navitems.parent('li').removeClass('active');
			sheets.css('display', 'none');
			$(this).parent('li').addClass('active');
			$('div' + $(this).attr("href")).css('display', 'block');
			event.preventDefault();
			//document.location.href = document.location.href.replace(document.location.hash, '') + $(this).attr("href");
		};
		navitems.click(clickFunc);
		// erstes Tab einblenden
		$(navitems[0]).click();
	});
	// Ggf. alternative Tab-Version mit ein-/ausblendbaren vertikalen Blöcken initialisieren
	$('div.tabs_collapsible').each(function(index) {
		var container = $(this);
		var sheets = container.find('div.tabs_sheet');
		var updateShowHideAll = function() {
			if (container.find('div.tabs_sheet.opened').length == 0) { 
				container.find('a.collapse_hideAll').addClass('inactive');
			} else {
				container.find('a.collapse_hideAll').removeClass('inactive');
			}
			if (container.find('div.tabs_sheet.opened').length == sheets.length) { 
				container.find('a.collapse_showAll').addClass('inactive');
			} else {
				container.find('a.collapse_showAll').removeClass('inactive');
			}
		};
		// Funktion für Show/Hide all
		container.find('a.collapse_hideAll').click(function(event) { sheets.removeClass('opened'); updateShowHideAll(); event.preventDefault(); });
		container.find('a.collapse_showAll').click(function(event) { sheets.addClass('opened'); updateShowHideAll(); event.preventDefault(); });
		updateShowHideAll();
		// Ungerade Sheets mit Klasse odd belegen
		container.find('div.tabs_sheet:odd').addClass('odd');
		// pro Sheet <h1> erweitern um ein Link-Tag und dieses Link-Tag mit Open-/Close-Toggle versehen
		sheets.each(function(index) {
			var currSheet = $(this);
			currSheet.find('div.box_header h1').wrapInner('<a href="#" />');
			currSheet.find('div.box_header a').click(function(event) { currSheet.toggleClass('opened'); updateShowHideAll(); event.preventDefault(); });
		});
		// Klasse zur Anzeige einer Linie oben einfügen
		container.find('div.tabs_collapseLinks').first().addClass('first');
	});	
}
/*********************************************************
* Hauptnavigation - bei Rollover Klasse in des Containers und ggf. Min-Height setzen
**********************************************************/
function initMainnav() {
	var container = $('div#header_navcontainer');
	$('div#header_mainnav li.dropitem').hover(function() { container.addClass('ro_mainnav'); }, function() { container.removeClass(); });	
	$('#header_mainnav > ul > li > a .header_nav_text').each(function() { var span = $(this); span.css({ fontWeight: 'bold' }).width(span.width() + 2).css({ fontWeight: '' });	});
}
function initSubnav() {
	$('div#header_sidenav li.dropitem').each(function(index) {
  		var container = $('div#header_navcontainer');
		var sideContainer = $('div#header_sidenav');
		var subnav = $(this).find('div.subnav');
		var sideHeight = (subnav[0].offsetHeight - 9) + 'px';
		$(this).hover(function() { container.addClass('ro_sidenav'); sideContainer.css('minHeight', sideHeight); }, function() { container.removeClass(); sideContainer.css('minHeight', 0); });	
	});
}
/*********************************************************
* Breadcrumb - bei Rollover Klasse in den nachfolgenden Elementen setzen
**********************************************************/
function initBreadcumb() {
	$('div.breadcrumb li.dropitem').hover(function() { $(this).nextAll().addClass('inactive'); }, function() { $(this).nextAll().removeClass('inactive'); });
}
/*********************************************************
* Für alle Navigations-Flyouts - Trick, um auch mit Touch-Geräten navigieren zu können
**********************************************************/
function initTouch() {
	// im IE unschöner Flacker-Effekt -> hier nicht ausführen
	if ($.browser.msie) { return; }
	// Der Trick: falls Mausposition seit dem MouseOver nicht geändert, den Klick nicht ausführen
	$('li.dropitem').hover(function(event) { document.mouseInPos = event.pageX + ',' + event.pageY; }, function(event) { document.mouseInPos = ''; });
	var clickFunc = function(event) { if (document.mouseInPos == '' || document.mouseInPos == event.pageX + ',' + event.pageY) { event.preventDefault(); } document.mouseInPos = 'changed'; };
	$('li.dropitem > a').click(clickFunc);
	//	$('li.dropitem a, li.dropitem div.subnav').focusin(function() { $(this).parent('li.dropitem').addClass('focus'); });
	//	$('li.dropitem a, li.dropitem div.subnav').focusout(function() { $(this).parent('li.dropitem').removeClass('focus'); });																
}
/*********************************************************
* Newsletter-Anmeldung: Funktionalität für alle auswählen / abwählen
**********************************************************/
function initNLSelection() {
	$('div#newsletter_selection div.toggleAll a.selectAll').click(function(event) { $('div#newsletter_selection input[value="1"]').attr('checked', true); event.preventDefault(); });
	$('div#newsletter_selection div.toggleAll a.unselectAll').click(function(event) { $('div#newsletter_selection input[value="0"]').attr('checked', true); event.preventDefault(); });
}
/*********************************************************
* Popup-Funktionalitaet: Falls im DCR angegeben wird das Popup bereits beim Laden der Seite geoeffnet
**********************************************************/
function initPopup() {
  if($('#content_main .box .textimagebox .textbox a.openpopup').size()>0) {
    $('#content_main .box .textimagebox .textbox a.openpopup').click();
  }
}
function initFaqAreas() {
  if($('#content_main .box .pressnews_nav .ulnav li .faq_tab').size()>0) {
  	$('#content_main .box .pressnews_nav .ulnav li .faq_tab').click(function(event) {
  	  event.preventDefault();
      $('#content_main .box .pressnews_nav .ulnav li .faq_tab').removeClass("active");
      $('#content_main .box .pressnews_nav .ulnav li [href="' + this.hash + '"]').addClass('active');
  	  $('#content_main .box .tabs_collapsible .tabs_sheet').hide();
  		$('#content_main .box .tabs_collapsible ' + this.hash + ' .tabs_sheet').show();
  	});
  	$('#content_main .box .pressnews_nav .ulnav li .faq_tab:first').click();
  }
}

