window.addEvent('domready', function(){
	if($$('.consultingExample') && $$('.print_preview').length != 1){
		accordion = new Accordion($$('.consultingExample'),$$('.consultingDescription'), {
			opacity: false,
			alwaysHide: true,
			show: 1000,
			onComplete: function(){
				$('schatten').style.height = 0;
				$('schatten').style.height = window.getScrollHeight()+'px';
			}
		});
	}
	
	if($('subnavi_wrapper')) {
		var iShowNavigation = function() {
			var myEffect = new Fx.Morph('subnavi_wrapper', {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
			$('subnavi_wrapper').setStyle('display', 'block');
			
			myEffect.start({
			    'height': [0, 258],
				'opacity': [0, 100]
			});
		
		};
		iShowNavigation.delay(3000);
	}
	
	fixFooterPosition();
});

window.onresize = function(event) {
	fixFooterPosition();
}

function fixFooterPosition() {
	// nur auf neuer Startseite ausführen
	if($('subnavi_wrapper')) {
		
		var nHoehe = 0;
		
		if( typeof( window.innerWidth ) == 'number' ) {
			nHoehe = window.innerHeight;
		} else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
			nHoehe = document.documentElement.clientHeight;
		} else {
			nHoehe = document.documentElement.clientHeight;
		}
		
		
		if( nHoehe < $('schatten').getSize().y) {
			$('footer').setStyle('position', 'fixed');
		} else {
			$('footer').setStyle('position', 'relative');
		}
	}
}

var isMorphing = false;
var isSliding = false;
var menuClose = false;
var menuCloseTimeout;
var subNaviSlide = false; // morph
var subNaviClose = false; // morph
var subNaviOpen = false; // morph
var menuForceClose = false;

function openSubNav(){
	menuClose = false;
	clearTimeout(menuCloseTimeout);
	var speed = 500; // 1000
	var elementId = 'subNavi';
	var newHeight = 250;
	if($(elementId)){
		$(elementId).set('morph',
			{
				link: 'cancel'
			}
		);
		if(!subNaviOpen){
			subNaviOpen = new Fx.Morph(elementId,
				{
					duration: speed,
					onStart: function(){
					//	isMorphing = true;
					},
					onComplete: function(){
						isMorphing = false;
					}
				}
			);
		}
		if($(elementId).offsetHeight == 0 && !isMorphing && !menuForceClose){
			$(elementId).style.marginTop = 250+'px';
			subNaviOpen.start(
				{
					'height': newHeight,
					'marginTop': 0,
					'opacity': 1
				}
			);
		}else{
			if(!isMorphing && !menuForceClose){
				subNaviOpen.start(
					{
						'opacity': 1,
						'height': [newHeight,newHeight],
						'marginTop': [0,0]
					}
				);
			}else{
				// $(elementId).get('morph').start({ 'opacity': 1});
			}
		}
	}
	return false;
}

function closeSubNavType2(url, forceClose, img){
	menuClose = true;
	menuForceClose = forceClose;
	var speed = 500;
	var elementId = 'subNavi';
	var newHeight = 250;
	if($(elementId)){
		subNaviClose = new Fx.Morph(elementId,
			{
				duration: speed,
				onStart: function(){
					isMorphing = true;
					if(menuForceClose && img != ''){
						morph = new Fx.Morph('header',
							{
								duration: speed,
								onStart: function(){
									$('header3').style.backgroundImage = 'url('+img+')';
									$('header3').style.width = '902px';
								}
							}
						);
						morph.start(
							{
								'opacity': 0
							}
						);
					}
				},
				link: 'cancel',
				onComplete: function(){
					isMorphing = false; 
					if(url){
						window.location.href = url;
					}
				}
			}
		);
		fxStart = function(){
			if(!isMorphing){ //  && menuClose
				if(subNaviOpen){
					subNaviOpen.cancel();
				}
				subNaviClose.start(
					{
						'opacity': 0
					}
				);
			}
		}
		if(menuClose){
			menuCloseTimeout = setTimeout('fxStart()',1);
		}
		if(menuForceClose){
			if(subNaviOpen){
				subNaviOpen.cancel();
			}
			subNaviClose.start(
				{
					'opacity': 0
				}
			);
		}
	}else{
		return true;
	}
	return false;
}

function slideSubNaviBackground(navPosition, url, e, d){
	// is childElement?
	var woGehsteHin=e.relatedTarget||e.toElement;
	var t=d.getElementsByTagName('*');
	for(var i=0;i<t.length;i++){
		if(woGehsteHin==t[i]||woGehsteHin==d){
			return;
		}
	}

	var speed = 600;
	var elementId = 'subNavi';
	var subNaviWidth = $(elementId).offsetWidth;
	var new_backgroundPosition = -1 * ((navPosition-1) * (subNaviWidth - 2) - 2);
	if(new_backgroundPosition > 0){
		new_backgroundPosition = 0;
	}
	if(!subNaviSlide){
		subNaviSlide = new Fx.Morph(elementId,
			{
				duration: speed,
				link: 'cancel',
				onStart: function(){
					isSliding = true;
				},
				onComplete: function(){
					isSliding = false;
				}
			}
		);
	}
	subNaviSlide.start(
		{
			'backgroundPosition': new_backgroundPosition
		}
	);
	
	return false;
}

function setMouseEnterSubNavi(){

}

function setBackgroundPosition(navPosition){
	var elementId = 'subNavi';
	var subNaviWidth = $(elementId).offsetWidth;
	var new_backgroundPosition = -1 * ((navPosition-1) * subNaviWidth);
	$(elementId).style.backgroundPosition = new_backgroundPosition + 'px';
}

function str_replace(search, replace, subject) {
    return subject.split(search).join(replace);
}

function trim (zeichenkette) {
  // Erst führende, dann Abschließende Whitespaces entfernen
  // und das Ergebnis dieser Operationen zurückliefern
  return zeichenkette.replace (/^\s+/, '').replace (/\s+$/, '');
}


var activePage = 0;
function filter (phrase, _id, reset){
	// added
	if(reset){
		activePage = 0;
	}
	var maxRows = 14;
	var counter = 0;
	// var cellNr = 0;
	
	var words = phrase.value.toLowerCase().split(" ");

	var table = $(_id);
	var ele;
	var eleTemp;
	var sRegExInput;
	var start_index = activePage * maxRows;
	for (var r = 0; r < table.rows.length; r++){
		ele = table.rows[r].innerHTML.replace(/<[^>]+>/g,"");
		// neu 14.05.2009, Filtern der Nachnamen
		if(ele.indexOf("(")>=0){
			eleTemp = ele.split(" (");
			ele = eleTemp[0];
		}
		// Ort abschneiden
		ele = trim(ele);
		eleTemp = ele.split(" - ");
		ele = eleTemp[0];
		
		ele = str_replace(" LL.M.","",ele);
		ele = str_replace(" MBA","",ele);
		ele = str_replace(" M.A.","",ele);
		ele = str_replace(" M.C.L.","",ele);
		// ende neu
		
		// Vornamen abschneiden
		ele = trim(ele);
		eleTemp = ele.split(" ");
		ele = eleTemp[eleTemp.length-1];
		
		// ele = table.rows[r].cells[cellNr].innerHTML.replace(/<[^>]+>/g,"");
        var displayStyle = 'none';
		if(words.length == 1 && words[0].toLowerCase() == 'name'){
			displayStyle = '';
		}else{
	        for (var i = 0; i < words.length; i++) {
		    	if (ele.toLowerCase().indexOf(words[i])>=0){
					displayStyle = '';
					break;
				} else {
					displayStyle = 'none';
					break;
		    	}
				temp = ele.toLowerCase().split(" - ");
				temp = temp[0].split(" ");
				tempIndex = temp.length - 1;
		    	if (temp[tempIndex].indexOf(words[i])==0){
					displayStyle = '';
					break;
				} else {
					displayStyle = 'none';
					break;
		    	}
	        }
		}
		// added
		if(displayStyle != 'none'){
			counter++;
		}
		if(counter > (maxRows+start_index) || counter <= start_index){
			displayStyle = 'none';
		}
		
		table.rows[r].style.display = displayStyle;
	}
	url = 'includes/setParam.php?lawyerName='+phrase.value;
	new Request.HTML(
		{
			method: 'get',
			url: url
		}
	).send();
	setPageBar(counter, maxRows, _id);
	return false;
}

function setPageBar(countEntries, maxRows, _id){
	var numPages = Math.ceil(countEntries/maxRows);
	var elementId = 'pageBar';
	if($(elementId)){
		var pageBar = '';
		var prevLink = '';
		var nextLink = '';
		if(numPages > 1){
			for(var i=0;i<numPages;i++){
				if(i>0){
					pageBar += ' / ';
				}
				if(i == activePage){
					pageBar += '<span class="aktiv">'+(i+1)+'</span>';
				}else{
					pageBar += '<a href="" onclick="return changePage('+ i +', \''+_id+'\')">'+(i+1)+'</a>';
				}
			}
			prevLink = '&lt;';
			nextLink = '&gt;';
			if(activePage > 0){
				prevLink = '<a href="" onclick="return changePage('+ (activePage-1) +', \''+_id+'\')">'+prevLink+'</a>';
			}
			if(activePage < (numPages-1)){
				nextLink = '<a href="" onclick="return changePage('+ (activePage+1) +', \''+_id+'\')">'+nextLink+'</a>';
			}
		}
		$(elementId).innerHTML = prevLink + ' ' + pageBar + ' ' + nextLink;
	}
	return false;
}

function changePage(newPage, _id){
	activePage = newPage;
	filter($('lawyerName'), _id, false);
	url = 'includes/setParam.php?lawyerPage='+activePage;
	new Request.HTML(
		{
			method: 'get',
			url: url
		}
	).send();
	return false;
}

function preloadLawyerImage(img){
	var elementId = 'header3';
	$(elementId).style.backgroundImage = 'url('+img+')';
}

function showNextLawyer(img, url){
	if(img.split('/')[1] == ''){
		img = 'files/03.1_anwaelte.jpg';
	}
	var speed = 1000;
	var elementId1 = 'header';
	var elementId2 = 'header2';
	var newWidth = 902;
	var newBackgroundPosition = -1*newWidth;
		
		var naUrl = url.split('-');
		var id = naUrl[0];
		var clang = naUrl[1];

	// Profil vorladen
	
	callAJAX(id, clang);
	
	
	$(elementId2).style.backgroundImage = 'url('+img+')';
	var morph = new Fx.Morph(elementId1,
		{
			duration: speed,
			onStart: function(){
				var morph2 = new Fx.Morph(elementId2,
					{
						duration: speed,
						onComplete: function(){
							$(elementId1).setStyles(
								{
									'background-image': 'url('+img+')',
									'background-position': '0 0'
								}
							);
							$(elementId2).setStyle('width', 0);
							//	window.location.href = url;
						}
					}
				);
				morph2.start(
					{
						'width': newWidth
					}
				);
			},
			onComplete: function(){
				$(elementId1).setStyles(
					{
						'background-position': '0 0'
					}
				);
				var links = $('lawyerList').getElements('a');
				links.each(
					function(link){
						if(link.get('href').split('-')[0] == url.split('-')[0]){
							link.className = 'aktiv';
						}else{
							link.className = '';
						}
					}
				);
				var options = $('lawyerSearchForm2').getElements('option');
				options.each(
					function(option){
						if(option.get('value').split('-')[0] == url.split('-')[0]){
							option.selected = 'selected';
						}else{
							option.selected = '';
						}
					}
				);
			}
		}
	);
	morph.start(
		{
			'backgroundPosition': newBackgroundPosition + ' 0'
		}
	);
	return false;
}

// Anwaltsprofil vorladen
function callAJAX(id, sprache) {
	profileDiv = 'lawyerContactProfile'
	
	var sUrl = 'index.php?article_id=484&pageid=' + id + '&clang=' + sprache;
	new Fx.Tween
	(
		'article',
		{
			onComplete: function()
			{
				new Request.HTML
				(
					{
						method: 'get',
						update: $('article'),
						url: sUrl,
						onSuccess: function(responseText, responseXML){


								$('article').innerHTML = $('article_headline').innerHTML + $('article_content').innerHTML;
								new Fx.Tween('article',
									{
										onComplete: function(){
											$$('.mainHeadline').each(
												function(headline){
													headline.setStyles(
														{
														'opacity': 1,
														'display': 'block',
														'visibility': 'visible'
													 }
													);
													if(navigator.appName.indexOf("Explorer") > -1){
														new Fx.Tween('suchformular',
														 {
															duration: 1,
															onComplete: function(){
																Cufon.refresh();
															}
														 }
														).start('opacity','1','1');
													}else{
														Cufon.refresh();
													}
												}
											);
											$('article').setStyle('visibility', 'visible');
										}
									}
								).start('opacity', '0', '1');
								$('sprache').set('href',id+'-'+(sprache == 1 ? 0 : 1)+'-');
								//Cufon.refresh();
						}
					}
				).send();
			}
		}
	).start('opacity', '1', '0');
	
	return false;
}

function getLawyerSearchResult(){
	$('lawyerSearchForm').submit();
}

function fadeBackgrounds(url, headImage, speed, newHeight1, newHeight2){
	var elementId1 = 'header';
	var elementId2 = 'content';
	var elementId3 = 'header2';
	$(elementId3).style.backgroundImage = 'url('+headImage+')';
	
	var morph3 = new Fx.Morph(elementId3,
		{
			duration: speed,
			onStart: function(){
				morph4 = new Fx.Morph(elementId1,
					{
						duration: speed,
						onStart: function(){
							var morph2 = new Fx.Morph(elementId2,
								{
									duration: speed
								}
							);
							morph2.start(
								{
									'opacity': 0
								}
							);
						}
					}
				);
				morph4.start(
					{
						'opacity': 0
					}
				);
			},
			onComplete: function(){
				window.location.href = url;
			}
		}
	);
	morph3.start(
		{
			'opacity': [0,1]
		}
	);
	
}

function moveNavigationUp(url, headImage, speed, newHeight1, newHeight2){
	var elementId1 = 'header';
	var elementId2 = 'content';
	var elementId3 = 'header2';
	$(elementId3).style.backgroundImage = 'url('+headImage+')';
	var morph = new Fx.Morph('navi',
		{
			duration: speed,
			onComplete: function(){
				fadeBackgrounds(url, headImage, speed, newHeight1, newHeight2);
			}
		}
	);
	morph.start(
		{
			'top': newHeight1
		}
	);
}

function startContentAnimation(url, headImage){
	var speed = 1000;
	var contentId1 = 'news';
	var contentId2 = 'suche';
	var contentId3 = 'article';
	
	var newHeight1 =  250;
	var newHeight2 =  554;
	
	var fadeOut = new Fx.Morph(contentId1,
		{
			duration: speed,
			onStart: function(){
				moveNavigationUp(url, headImage, speed, newHeight1, newHeight2);
				var fadeOut2 = new Fx.Morph(contentId2,
					{
						duration: speed,
						onStart: function(){
							var fadeOut3 = new Fx.Morph(contentId3,
								{
									duration: speed
								}
							);
							fadeOut3.start(
								{
									'opacity': 0
								}
							);
						}
					}
				);
				fadeOut2.start(
					{
						'opacity': 0
					}
				);
			},
			onComplete: function(){

			}
		}
	);
	fadeOut.start(
		{
			'opacity': 0
		}
	);
	return false;
}

function showLawyer(url){
	if(url != ''){
		window.location.href = url;
	}
}

function filterLawyer(){
	$('lawyerSearchForm2').submit();
}

var profileDiv = 'lawyerContactProfile';
function showDiv(id){
	var speed = 600;
	var elementId = 'profileView';
	
	var morph = new Fx.Morph(elementId,
		{
			duration: speed,
			onStart: function(){
				$('a_'+profileDiv).className = '';
				$('a_'+id).className = 'aktiv';
			},
			onComplete: function(){
				$(profileDiv).innerHTML = $(elementId).innerHTML;
				$(elementId).innerHTML = $(id).innerHTML;
				$(id).innerHTML = '';
				profileDiv = id;
				var morph2 = new Fx.Morph(elementId,
					{
						duration: speed,
						onComplete: function(){
							accordion = new Accordion($$('.row'),$$('.details'), {
								opacity: false,
								alwaysHide: true,
								show: 1000
							});
							$('schatten').style.height = 0+'px';
							$('schatten').style.height = window.getScrollHeight()+'px';
						}
					}
				);
				morph2.start(
					{
						'opacity': [0,1]
					}
				);
			}
		}
	);
	morph.start(
		{
			'opacity': [1,0]
		}
	);
	return false;
}

var publicationsDiv = '';
function showPublicationsYear(id, year, doPrint){
	var speed = 600;
	var elementId = 'publicationView';
	
	var morph = new Fx.Morph(elementId,
		{
			duration: speed,
			onStart: function(){
				$('a_'+publicationsDiv).className = '';
				$('a_'+id).className = 'aktiv';
			},
			onComplete: function(){
				$(elementId).innerHTML = $(id).innerHTML;
				publicationsDiv = id;
				var morph2 = new Fx.Morph(elementId,
					{
						duration: speed,
						onComplete: function(){
							accordion = new Accordion($$('.row'+year),$$('.details'+year), {
								opacity: false,
								alwaysHide: true,
								show: 1000
							});
							$('schatten').style.height = 0+'px';
							$('schatten').style.height = window.getScrollHeight()+'px';
							if(doPrint == 'print'){
								print();
							}
						}
					}
				);
				morph2.start(
					{
						'opacity': [0,1]
					}
				);
			}
		}
	);
	morph.start(
		{
			'opacity': [1,0]
		}
	);
	return false;
}

function setShadowHeight(newHeight){
	$('schatten').style.height = (newHeight)+'px';
}

var sitemapMorph = false;
function showSitemap_old(){

	var ScrollTop = document.body.scrollTop;
	if (ScrollTop == 0){
		if (window.pageYOffset)
	        ScrollTop = window.pageYOffset;
	    else
	        ScrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
	}
	
	var windowHeight = window.innerHeight;
	var headerHeight = $('header').offsetHeight;
	var navHeight = 25;
	var footerHeight = $('footer').offsetHeight;
	/* var sitemapHeight = 585; */
	var sitemapHeight = $('schatten').getSize().y + footerHeight - headerHeight - navHeight;
	if(sitemapHeight < 585){
		sitemapHeight = 585;
	}
	// var contentHeight = windowHeight - headerHeight - navHeight - footerHeight;
	var contentHeight = $('content').getSize().y;
	// var newTop = headerHeight + navHeight + ScrollTop;
	var newTop = headerHeight + navHeight;
	var startTop = newTop + sitemapHeight;
	if((window.getScrollHeight() - headerHeight - navHeight - footerHeight) > sitemapHeight){
		newTop = window.getScrollHeight() - sitemapHeight - footerHeight;
		startTop = window.getScrollHeight() - footerHeight;
	}
	var newHeight = sitemapHeight;
	if($('sitemap').offsetHeight > 0){
		newHeight = 0;
		newBottom = 0;
		temp = newTop;
		newTop = startTop;
		startTop = temp;
	}
	if(navigator.appName.indexOf("Explorer") != -1){
		var navi_pos = $('navi').getCoordinates().top + navHeight;
		var content_padding = $('content').getStyle('padding-top').toInt();
		var margin_top = ((-1 * contentHeight)+content_padding-35);
		$('sitemap').setStyles(
			{
				'top': margin_top
			}
		);
	}else{
		var margin_top = (-1 * contentHeight);
		$('sitemap').setStyle('margin-top',margin_top);		
	}
	if(!sitemapMorph){
		sitemapMorph = new Fx.Morph('sitemap',
			{
				duration: 1000,
				link: 'cancel'
			}
		);
	}

	if(newHeight == 0){
		var newMarginTop = 0;
	}else{
		var newMarginTop = margin_top;
	}
	sitemapMorph.start(
		{
			'height': newHeight
		}
	).chain(
		function(){
			setShadowHeight(sitemapHeight+275);
			$('sitemap').setStyle('margin-top', newMarginTop);
		}
	);
	return false;
}

function showSitemap(){
	var sitemap = $('sitemap');
	var content = $('content');
	var wrapper = $('wrapper');
	var minSitemapHeight = 605;
	var newHeight = $('schatten').getStyle('height').toInt()-255;
	var currentSitemapHeight = sitemap.getStyle('height').toInt();
	if(newHeight < minSitemapHeight){
		newHeight = minSitemapHeight;
	}
	if(currentSitemapHeight > 0){
		sitemap.get('morph').start( { 'height': 0 }).chain(
			function(){
				content.setStyles(
					{
						'position': 'relative',
						'margin-top': '',
						'top': '',
						'padding-top': ''
					}
				);
				sitemap.setStyles(
					{
						'position': 'absolute',
						'padding-top': 0
					}
				);
			}
		);
	}else{
		sitemap.setStyles(
			{
				'position': 'relative',
				'padding-top': 275
			}
		);
		content.setStyles(
			{
				'position': 'absolute',
				'margin-top': 0,
				'top': 275,
				'padding-top': 35
			}
		);
		sitemap.get('morph').start( { 'height': newHeight });
	}
	return false;
}

function checkInputValue(el){
	if(el.value == 'suchen' || el.value == 'search' ){
		el.value = '';
	}
}

function openPrintPreview(id, clang, div){
	window.open('index.php?article_id=548&clang='+clang+'&page_id='+id+'&div='+div, 'printPreview', 'width=940, height=700, scrollbars=yes, menubar=no, location=no, toolbar=no');
	return false;
}
