var activeTooltip;

function pageLoad()
{
	// f_hideAllButFirst();
	
	var iNavigation = $('navigation');
	var iaUL = iNavigation.getChildren('ul');
	var iaLinks = iaUL[0].getChildren();
	
	for( nAktu = 0; nAktu < iaLinks.length; nAktu++)
	{
		iaLinks[nAktu].addEvent('mouseenter', f_showTooltip.bind(iaLinks[nAktu]));
		// iaLinks[nAktu].addEvent('mouseleave', f_hideTooltip.bind(iaLinks[nAktu]));
	}
	
	var iTooltipBox = $('tooltip');
	if(iTooltipBox){
		iTooltipBox.style.visibility = "hidden";
	}
	
	return false;
}

// Artikelliste anzeigen/ausblenden
// Modul: Artikelvorschau
function f_hideAllButFirst(){
	var iaArtikel = $$('.articleItem');	
	var nHoehe = 0;
	if(iaArtikel.length > 0 && $$('.articlePreview').length > 0){
		nHoehe = iaArtikel[0].getSize().y;
	
		iaContainer = $$('.articlePreview');
	
		iaContainer[0].style.height = nHoehe + "px";
	}
}
function f_showAll()
{
	var iaArtikel = $$('.articleItem');	
	var nHoeheGesamt = 0;
	var nHoeheErster = iaArtikel[0].getSize().y;
	
	// Gesamthöhe Artikel auslesen
	for(nAktu = 0; nAktu < iaArtikel.length; nAktu++)
	{
		nHoeheGesamt += iaArtikel[nAktu].getSize().y;
	}
	
	// Gesamthöhe Artikel für Container setzen
	var iaContainer = $$('.articlePreview');

	iaContainer[0].get('morph').start({
		'height': [nHoeheErster, nHoeheGesamt]
	});
	
	// Link "weitere Nachrichten" ausblenden
	var iaReadMore = $$('.readMore');
	iaReadMore[0].style.visibility = "hidden";
	
	return false;
}

function f_showTooltip()
{
	var saLinks = this.getChildren();
	var sName = saLinks[0].innerHTML;
	
	var nTop = this.getCoordinates().top;
	var nLeft = this.getCoordinates().left;
	
	var iaTooltipBoxes = $$('.tooltip');
	
	for( nAktu = 0; nAktu < iaTooltipBoxes.length; nAktu++)
	{
		if( sName == iaTooltipBoxes[nAktu].get('name'))
		{
			if(activeTooltip){
				activeTooltip.get('morph').start( { 'opacity': 0 } );
			}
			_showDiv(iaTooltipBoxes[nAktu], nTop, nLeft);
			activeTooltip = iaTooltipBoxes[nAktu];
			activeTooltip.addEvent('mouseleave', f_hideTooltip.bind(this));
			break;
		}
	}
	
	return false;
}
function f_hideTooltip()
{
	var saLinks = this.getChildren();
	var sName = saLinks[0].innerHTML;
	
	var nTop = this.getCoordinates().top;
	var nLeft = this.getCoordinates().left;
	
	var iaTooltipBoxes = $$('.tooltip');
	
	for( nAktu = 0; nAktu < iaTooltipBoxes.length; nAktu++)
	{
		if( sName == iaTooltipBoxes[nAktu].get('name'))
		{
			_hideDiv(iaTooltipBoxes[nAktu], nTop, nLeft);
			break;
		}
	}		
	
	return false;
}

function _showDiv(div, top, left){
	top += 15;
	div.style.left = left + "px";
	div.get('morph').start({
		'opacity': [0,1]
	});
}
function _hideDiv(div, top, left)
{
	div.get('morph').start({
		'opacity': [1,0]
	});
}

function showMoreText(size){
	var newsText = $(this.rel);
	// this.get('morph').start({ 'opacity': [0,0], 'height' : [0,0] });
	this.style.display = 'none';
	newsText.get('morph').start({ 'height': [0,size.y] });
	if($('articleImage')){
		$('articleImage').get('morph').start({'height': 0});
	}
	return false;
}

function filter(element){
	var words = element.value.toLowerCase().replace(/^\s+|\s+$/g, '').split(" ");
	var num_words = words.length;
	var list = $('contacts').getChildren('ul')[0];
	var listElements = list.getChildren('li');
	var num_listElements = listElements.length;
	var listEntry;
	var textContent;
	var displayStyle;
	var word;
	for(var i=0;i<num_listElements;i++){
		listEntry = listElements[i];
		displayStyle = 'none';
		textContent = listEntry.innerHTML.toLowerCase().replace(/<[^>]+>/g,"").split(" (")[0];
		for(var j=0;j<num_words;j++){
			word = words[j];
			if(textContent.indexOf(word) >= 0){
				displayStyle = '';
			}else{
				displayStyle = 'none';
				break;
			}
		}
		listEntry.style.display = displayStyle;
	}
}

function openSubNav(){
	var list = this;
	var listElements = list.getChildren('li');
	var num_listElements = listElements.length;
	var listEntryHeight = 0;
	var newListHeight = 0;
	if(num_listElements > 0){
		for(var i=0;i<num_listElements;i++){
			listEntryHeight = listElements[i].getSize().y + 0.5;
			newListHeight = listEntryHeight + newListHeight;
		}
		newListHeight = newListHeight + 5;
		// newListHeight = num_listElements * listEntryHeight + 5;
		list.set('morph',
			{
				duration: 1000
			}
		);
		list.get('morph').start( { 'height': newListHeight } );
	}
}

function closeSubNav(){
	var list = this;
	list.get('morph').start( { 'height': 0 } );
}


function setNavigationFunctions(){
	
	var navigationLevel2 = $('navigationLevel2');
	if(navigationLevel2){
		var list = navigationLevel2.getChildren('ul')[1];
		if(list){
			var listElements = list.getChildren('li');
			var num_listElements = listElements.length;
			var listEntry = null;
			var listLevel2 = null;
			var height;
			var anchor;
			for(var i=0;i<num_listElements;i++){
				listEntry = listElements[i];
				listLevel2 = listEntry.getChildren('ul')[0];
				anchor = listEntry.getChildren('a')[0];
				if(listLevel2){
				//	listEntry.addEvent('mouseenter', openSubNav.bind(listLevel2));
				//	listEntry.addEvent('mouseleave', closeSubNav.bind(listLevel2));
					listLevel2.get('morph').start( { 'height': [0,0] } );
				}
			}
		}
	}
}

function hideNewsletterDescription(){
	var cell = this;
	var label_text = cell.getElement('.label_text');
	var label = cell.getElement('label');
	label_text.get('morph').start( { 'opacity': 0 } ).chain(
		function(){
			label_text.setStyles(
				{
					'display': 'none',
					'position': 'relative'
				}
			);
		}
	);
}

function showNewsletterDescription(){
	var cell = this;
	var label_text = cell.getElement('.label_text');
	var label = cell.getElement('label');
	var size = label_text.getSize();
	label_text.setStyles(
		{
			'display': 'block',
			'visibility': 'hidden',
			'opacity': 0,
			'position': 'absolute',
			'height': size.y
		}
	);
	label_text.get('morph').start( { 'opacity': 1 } );
}

function openExternalLink(){
	var anchor = this;
	var date = new Date();
	var timestamp = date.getTime();
	window.open(anchor.href, 'external_'+timestamp);
	return false;
}

function initNewsletterForm(){
	var cells = $$('.newsletter_groups');
	cells.each(
		function(cell){
			var label = cell.getElement('label');
			var anchor = cell.getElement('a');
		//	label.addEvent('mouseenter', showNewsletterDescription.bind(cell));
		//	label.addEvent('mouseleave', hideNewsletterDescription.bind(cell));
			anchor.addEvent('click', openExternalLink);
		}
	);
}

function showFlagDescription(){
	var flag = this;
	var description = flag.getElement('.description');
	description.get('morph').start( { 'opacity': 1 } );
}

function hideFlagDescription(){
	var flag = this;
	var description = flag.getElement('.description');
	description.get('morph').start( { 'opacity': 0 } );
}

function setWorldMapFlagPositions(relation, class_name){
	var flags = $$('.image_wrapper');
	var article = $('article');
	var map = article.getElement('.'+class_name);
	flags.each(
		function(flag){
			var position = flag.getCoordinates(map);
			var position_left = position.left * relation;
			var position_top = position.top * relation;
			flag.setStyles(
				{
					'left': position_left,
					'top': position_top
				}
			);
		}
	);
}

var world_map_sizes = new Array('world_map', 'world_map_big');
var world_map_current_size = 0;
function showSmallerWorldMap(){
	var article = this;
	var world_map = article.getElement('.'+world_map_sizes[world_map_current_size]);
	if(world_map_sizes[(world_map_current_size-1)]){
		world_map_current_size = world_map_current_size - 1;
		var original_size = world_map.getSize();
		world_map.className = world_map_sizes[world_map_current_size];
		var new_size = world_map.getSize();
		var relation = new_size.x / original_size.x;
		world_map.setStyle('margin-left', 0);
		setWorldMapFlagPositions(relation, world_map.className);
	}
	return false;
}

function showBiggerWorldMap(){
	var article = this;
	var world_map = article.getElement('.'+world_map_sizes[world_map_current_size]);
	if(world_map_sizes[(world_map_current_size+1)]){
		world_map_current_size = world_map_current_size + 1;
		var original_size = world_map.getSize();
		world_map.className = world_map_sizes[world_map_current_size];
		var new_size = world_map.getSize();
		var relation = new_size.x / original_size.x;
		setWorldMapFlagPositions(relation, world_map.className);
	}
	return false;
}

function moveWorldMapLeft(){
	var article = this;
	var world_map = article.getElement('.'+world_map_sizes[world_map_current_size]);
	var article_size = article.getSize();
	var map_size = world_map.getSize();
	if(map_size.x > article_size.x){
		var map_margin_left = world_map.getStyle('margin-left').toInt();
		if((article_size.x - map_size.x) < map_margin_left){
			world_map.setStyle('margin-left', map_margin_left - 20);
		}
	}
	return false;
}

function moveWorldMapRight(){
	var article = this;
	var world_map = article.getElement('.'+world_map_sizes[world_map_current_size]);
	var article_size = article.getSize();
	var map_size = world_map.getSize();
	if(map_size.x > article_size.x){
		var map_margin_left = world_map.getStyle('margin-left').toInt();
		if(map_margin_left < 0){
			world_map.setStyle('margin-left', map_margin_left + 20);
		}
	}
	return false;
}

function initWorldMap(){
	var flags = $$('.image_wrapper');
	var article = $('article');
	var map = article.getElement('.world_map');
	if(map){
		var map_functions = article.getElement('.world_map_functions');
		var anchor_small_map = map_functions.getElement('.smaller');
		var anchor_big_map = map_functions.getElement('.bigger');
		var anchor_move_left = map_functions.getElement('.left');
		var anchor_move_right = map_functions.getElement('.right');
		anchor_small_map.addEvent('click', showSmallerWorldMap.bind(article));
		anchor_big_map.addEvent('click', showBiggerWorldMap.bind(article));
		anchor_move_left.addEvent('click', moveWorldMapRight.bind(article));
		anchor_move_right.addEvent('click', moveWorldMapLeft.bind(article));
		flags.each(
			function(flag){
				var description = flag.getElement('.description');
				var position = flag.getCoordinates(map);
				var relation = 568 / 1197;
				var position_left = position.left * relation;
				var position_top = position.top * relation;
				flag.setStyles(
					{
						'left': position_left,
						'top': position_top
					}
				);
				if(description.get('html') != ''){
					flag.addEvent('mouseenter', showFlagDescription.bind(flag));
					flag.addEvent('mouseleave', hideFlagDescription.bind(flag));
					description.setStyles(
						{
							'opacity': 0,
							'visibility': 'hidden'
						}
					);
				}
			}
		);
	}
}

var hoeheContactsContent = 0;

function initTeam() {
	
	// prüfen, ob Team-Button auf Seite vorhanden ist
	if ($('contacts_toggler')) {
		
		// Originalhöhe der Liste auslesen und in globaler Variable merken
		hoeheContactsContent = $('contacts_content').getSize().y;
		$('contacts_content').setStyles({'height': 0, 'overflow': 'hidden'});
		
		// bei Klick Div auf- oder zuklappen
		$('contacts_toggler').addEvent('click',
			function() {
				var element = $('contacts_content');
				
				if (element.getSize().y == 0) {
					element.get('morph').start({
						'height': hoeheContactsContent
					});
					if($('contacts_toggler').get('html').indexOf('show') > -1){
						$('contacts_toggler').set('html', 'hide');
					}else{
					//	$('contacts_toggler').set('html', 'ausblenden');
					}
				//	$('contacts_toggler').inject($('contacts_content'), 'after');
					$('contacts_toggler').addClass('active');
				}
				else {
					element.get('morph').start({
						'height': 0
					});
					if($('contacts_toggler').get('html').indexOf('einblenden') > -1){
					//	$('contacts_toggler').set('html', 'ausblenden');
					}else{
					//	$('contacts_toggler').set('html', 'einblenden');
					}
				//	$('contacts_toggler').inject($('contacts_content'), 'before');
					$('contacts_toggler').removeClass('active');
				}
				return false;
			}
		);
	}
	
}

window.addEvent('domready',
	function(){
		// funktion auf "mehr"-Link legen
		var link;
		var newsText;
		var size;
		var links = $$('.moreLink');
		/* var num_links = links.length;
		for(var i=0;i<num_links;i++){
			link = links[i].getChildren('a')[0];
			newsText = $(link.rel);
			size = newsText.getSize();
			link.addEvent('click',showMoreText.bind(link, size));
			newsText.get('morph').start({ 'height': [0,0], 'visibility': 'visible' });
		} */
		
		if($('publicationsMoreLink')){
			size = $('publicationsMoreText').getSize();
			$('publicationsMoreText').get('morph').start( { 'height': [0,0], 'padding-bottom': [0,0] } );
			$('publicationsMoreLink').addEvent('click',
				function(){
					$('publicationsMoreLink').style.display = 'none';
					$('publicationsMoreText').get('morph').start( { 'height': size.y, 'padding-bottom': 20 } );
					return false;
				}
			);
		}
		
		// claim schließt geöffneten tooltip
		$('claim').addEvent('mouseenter',
			function(){
				if(activeTooltip){
					activeTooltip.get('morph').start({'opacity':0});
				}
			}
		);
		
		// suche
		if($('searchText') && $('searchText').value != 'Ansprechpartner / Ansprechpartnerin' && $('searchText').value != 'Contact person'){
			filter($('searchText'));
		}
		
		setNavigationFunctions();
		
		if($('flashMap')){
			var filename = 'map.swf';
			if($$('.articleid_1104').length > 0){
				filename = 'map_1.swf';
			}
			var so = new SWFObject("./files/"+filename, "mainflash_211", "568", "325", "8", "#FFFFFF");
			so.addParam("wmode", "transparent");
			so.addParam("swLiveConnect", "true");
			so.addParam("allowScriptAccess", "always");
			var date = new Date();
			so.addVariable("pfad", "data.xml?time="+date.getTime());
			so.write("flashMap");
		}
		
		// leere kategorien nicht klickbar machen
		if($$('.articleid_7')){
			var subNavigations = $$('.rex-navi2');
			var num_subNavigations = subNavigations.length;
			var subNavigation;
			var listElements;
			var num_listElements;
			var anchor;
			for(var i=0;i<num_subNavigations;i++){
				subNavigation = subNavigations[i];
				listElements = subNavigation.getChildren('li');
				num_listElements = listElements.length;
				for(var j=0;j<num_listElements;j++){
					anchor = listElements[j].getChildren('a')[0];
					if(anchor.get('rel') == 'no-content'){
						anchor.get('morph').start( { 'color': ['#9CA4BC','#9CA4BC'], 'cursor': 'default' } );
						anchor.addEvent('click',
							function(){
								return false;
							}
						);
					}
				}
			}
		}
		var subNavigations = $$('.rex-navi1');
		var num_subNavigations = subNavigations.length;
		var subNavigation;
		var listElements;
		var num_listElements;
		var anchor;
		for(var i=0;i<num_subNavigations;i++){
			subNavigation = subNavigations[i];
			if(subNavigation.getParent('div').id != 'navigation'){
				listElements = subNavigation.getChildren('li');
				num_listElements = listElements.length;
				for(var j=0;j<num_listElements;j++){
					anchor = listElements[j].getChildren('a')[0];
					if(anchor.get('rel') == 'no-content'){
						anchor.get('morph').start( { 'color': ['#9CA4BC','#9CA4BC'], 'cursor': 'default' } );
						anchor.addEvent('click',
							function(){
								return false;
							}
						);
					}
				}
			}
		}
		initNewsletterForm();
		initWorldMap();
		
		var wrapper = $('wrapper');
		if(!wrapper.hasClass('clang_3')){
			Cufon.replace('#claim');
		}else{
		//	Cufon.replace('#claim', { fontFamily: 'HelveticaNeueRoman' });
		}
		
		initTeam();
	}
);
