var pageOpen = Object();
var oldtext = '';

Object.extend(Element, {
	nextSib: function(element,cntTag) {
		if (!isNaN(parseInt(cntTag))) {
			for (i=0;i<cntTag;i++) {	
				element = element.nextSibling; 	
				while ((element) && (element.nodeType!=1)) {
					element = element.nextSibling;
				}	
			}
		}
		else {
				element = element.nextSibling; 	
				while ((element) && (element.nodeType!=1)) {
					element = element.nextSibling;
				}			
		}
		return element;
	},
	prevSib: function(element,cntTag) {
		if (!isNaN(parseInt(cntTag))) {
			for (i=0;i<cntTag;i++) {
				element = element.previousSibling; 	
				while ((element) && (element.nodeType!=1)) {
					element = element.previousSibling;
				}	
			}
		}
		else {
				element = element.previousSibling; 	
				while ((element) && (element.nodeType!=1)) {
					element = element.previousSibling;
				}				
		}
		return element;
	}
});

function UnCryptMailto( s, sh ) {
		var n = 0;
		var r = "";
		for( var i = 0; i < s.length; i++)
		{
				n = s.charCodeAt( i );
				if( n >= 8364 )
				{
						n = 128;
				}
				r += String.fromCharCode( n - sh );
		}
		return r;
}
	
function lnkTrans(s, sh)	{
	location.href = 'mailto:'+UnCryptMailto(s, sh);
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}
	
function getOffsetTop(obj) {
	tmp = obj;
	offsetTop=old=0;
	for (i=0;i<20;i++) {
		if (tmp.parentNode) {
			if (parseInt(tmp.offsetTop)!=old) {
				offsetTop+=parseInt(tmp.offsetTop);				
			}	
			old=parseInt(tmp.offsetTop);
			tmp = tmp.parentNode;		
		}
		else
			break;		
	}

	return offsetTop;
}

function doScroll(offsetTop,isOffsetTop) {
	isOffsetTop= isOffsetTop+(offsetTop/10);	
	window.scrollTo(0,isOffsetTop);
	
	if (Math.round(isOffsetTop)<offsetTop) {
		
		//window.setTimeout(function () {doScroll(offsetTop,isOffsetTop)},10);
		window.setTimeout(function () {doScroll(offsetTop,isOffsetTop)},10);
	}	
	else
		window.scrollTo(0,offsetTop);
}



function showPage(obj,objClicked) {
	
	tmp = $$('div.content_inner');
	for (i=0;i<tmp.length;i++)  {
		if (tmp[i].offsetHeight>0) {
			tmp[i].style.display='none';
			tmp[i].style.height='auto';
			tmp[i].style.marginBottom='2px';
			tmp[i].style.marginTop='0px';
		}	
	}	


	tmp = $$('div.bar_small_left');
	for (i=0;i<tmp.length;i++) 
		tmp[i].style.visibility='hidden';	
	
		
	if (pageOpen != obj) {
		pageOpen = obj;

		$('nav').style.position='static';
		$('nav_footer').style.position='static';	
		
		for (i=0;i<obj.childNodes.length;i++) {
			if (obj.childNodes[i].nodeType==1 && obj.childNodes[i].className == 'content_inner') {

				obj.childNodes[i].style.display='block';
				obj.childNodes[i].getElementsByTagName('div')[1].style.display='block';

				if (obj.childNodes[i].childNodes.length>=3) {
			
					obj.childNodes[i].childNodes[2].style.display='block';
				}		
				orgHeight = obj.childNodes[i].offsetHeight;					
				obj.childNodes[i].style.height="0px";				
				obj.childNodes[i].style.overflow="hidden";
											
				/*new Effect.Morph(obj.childNodes[i], {
					style: {
						height: parseInt(orgHeight)+'px',
						marginTop:'7px',
						marginBottom:'70px',
						overflow:'visible'
					}, // CSS Properties
					duration: 0.3, 
					transition: Effect.Transitions.sinoidal
				});*/
				obj.childNodes[i].style.height = parseInt(orgHeight)+'px';
				obj.childNodes[i].style.marginTop= '7px';
				obj.childNodes[i].style.marginBottom = '70px';
				obj.childNodes[i].style.overflow = 'visible';
			}	

			if (obj.childNodes[i].nodeType==1 && obj.childNodes[i].className == 'bar_small') 		
				if (obj.childNodes[i].firstChild.nodeType==1 && obj.childNodes[i].firstChild.className == 'bar_small_left')  					
					obj.childNodes[i].firstChild.style.visibility='visible';

		}
		setTimeout(function(){for (i=0;i<obj.childNodes.length;i++) {if (obj.childNodes[i].nodeType==1 && obj.childNodes[i].className == 'content_inner') obj.childNodes[i].style.overflow="visible"}},300);
	
		
		if (objClicked.className == 'bar_small' || objClicked.className == 'content_inner_top')  {
			nodeAList = objClicked.getElementsByTagName('a');	
		
			setTimeout(function(){
				if (navigator.appName != 'Opera')
					window.location.hash='#'+nodeAList[0].getAttribute('name');
				if (navigator.appVersion.indexOf('Safari')>0 || navigator.appName == 'Opera') {
					
					offsetTop = getOffsetTop(Element.prevSib(objClicked.parentNode))+parseInt(nodeAList[0].offsetTop);
					if (navigator.appName == 'Opera')
						offsetTop+=15;
					doScroll(offsetTop-2,0);
				}
				elementOpening=false;
			//},350);		
			},100);
			if (navigator.appVersion.indexOf('Safari')<=0 && navigator.appName != 'Opera')
				setTimeout(function(){window.scrollBy(0,-2)},500);
		}	
		else {

			//setTimeout(function(){offsetTop = getOffsetTop(objClicked);doScroll(offsetTop-2,0);},300);
			//setTimeout(function(){offsetTop = getOffsetTop(objClicked);doScroll(offsetTop-2,0);},0);
			setTimeout(function(){tmpOT = findPos(objClicked);doScroll(tmpOT[1]-2,0);},0);
		}		
		//if (document.getElementsByTagName('APPLET')[0].parentNode.style.visibility=='hidden')
		//	setTimeout(function(){document.getElementsByTagName('APPLET')[0].parentNode.style.visibility='visible'},1000);
	}		
	else {
		pageOpen = Object();
		window.scrollTo(0,0);		
		elementOpening = false;	
		$('nav').style.position='absolute';
		$('nav_footer').style.position='absolute';
	}	
	
}


function showNav(obj,doOpen) {

	for (i=0;i<obj.getElementsByTagName('ul').length;i++) {
		tmp = obj.getElementsByTagName('ul')[i]; 
		if (tmp)
			if (doOpen==1)
				tmp.style.display='block';
			else
				tmp.style.display='none';	
	}

}

function waitForImg(toWait) {
	var imgLoaded = 0;
	tmp = $$('img');
	for (i=0;i<tmp.length;i++) {
		if (!tmp[i].complete) {
			imgLoaded++;
		}		
	}	

	if (imgLoaded && (navigator.appName != 'Opera')) 
		setTimeout(function() {waitForImg(toWait)},toWait);
	else
		goToAnker2();
}

function goToAnker() {

	if (document.location.hash!='')
		waitForImg(50);	
}	

function goToAnker2() {

	if (document.location.hash!='') {

		nodeAList = document.getElementsBySelector('div.bar_small_left a');
		for (i=0;i<nodeAList.length;i++) {
			
			if ('#'+nodeAList[i].getAttribute('name')==document.location.hash) {
				elementOpening = true;	
				
				tmp = nodeAList[i].parentNode.parentNode.parentNode;			
				showPage(tmp,nodeAList[i].parentNode.parentNode);					
				return false;
			}	
		}

		nodeAList = $$('div.bar_container a');

		for (i=0;i<nodeAList.length;i++) {
			
			if ('#'+nodeAList[i].getAttribute('name')==document.location.hash) {
				
				elementOpening = true;	
				if (nodeAList[i].parentNode.className=='bar_small_left') {				
					//tmp = Element.nextSib(Element.nextSib(nodeAList[i]));		
					tmp1 = Element.next(nodeAList[i]);
					tmp = Element.next(tmp1);		

					showPage(tmp,Element.nextSib(nodeAList[i]));	
				}
				else {				
					
					//tmp = Element.getParentNode(nodeAList[i],5);
					//tmp2 = Element.prevSib(nodeAList[i].parentNode.parentNode);
					
					if (nodeAList[i].parentNode.parentNode.parentNode.parentNode.parentNode.tagName!='BODY') {
						tmp = nodeAList[i].parentNode.parentNode.parentNode.parentNode.parentNode;	
						tmp2 = nodeAList[i].parentNode;
					}
					else {
						tmp = Element.nextSib(Element.nextSib(nodeAList[i]));			
						tmp2 = Element.nextSib(nodeAList[i]);
					}
					showPage(tmp,tmp2);	
				
				
				}
				return false;
			}	
		}		
		
	}

}

function switchGalleryImage(obj) {
	tmp = $$('.imgGallery');
	for (i=0;i<tmp.length;i++) {
		tmp[i].style.visibility = 'visible';
		if (tmp[i]==obj)
				tmp[i].style.visibility = 'hidden';
	}	
	params = 'entryId='+obj.getAttribute('id').split('_')[1];
	new Ajax.Updater('', "ajax/getImageGallery.php5", {parameters: params, method:"get",evalScripts:true, onComplete:function (req) {if (req.responseText) showGalleryImage(req)}, onFailure:show_failure, onException:show_exception });		
	
}

function showGalleryImage(req) {
	if (req.responseXML) {
		tmp = req.responseXML.getElementsByTagName('ajax');
		if (tmp[0]) {
			
			for (i=0;i<tmp[0].childNodes.length;i++)	{
					
				cn = tmp[0].childNodes[i];
			
				if (cn.hasChildNodes()) {
					
					if ($('imgGallery'+cn.tagName)) {
								
						$('imgGallery'+cn.tagName).innerHTML = '';	
						
						if (cn.firstChild.nodeType==3) {
							
							if (cn.tagName=='Photo')
								$('imgGallery'+cn.tagName).innerHTML = 'Künstler: '+cn.firstChild.data;
							else
								$('imgGallery'+cn.tagName).innerHTML = cn.firstChild.data;
							
						}	
						else	{
							
							if (!document.all && !navigator.appVersion.indexOf('Safari')) {
							
								$('imgGallery'+cn.tagName).insert(cn.firstChild);
								//Element.insert($('imgGallery'+cn.tagName),cn.firstChild);
								//new Insertion.Top($('imgGallery'+cn.tagName),cn.firstChild);
							}	
							else {		
									
								indexTmp = req.responseText.search('<'+cn.tagName+'>');
								indexEndTmp = req.responseText.search('</'+cn.tagName+'>');

								innerTmp = req.responseText.substring((indexTmp+cn.tagName.length+2),indexEndTmp);
								$('imgGallery'+cn.tagName).insert(innerTmp);						
								
							}		
							
						}		
						
					}		
					else if (cn.tagName=='Image') {
						$('imgGalleryImg').src = cn.firstChild.data;				
					}	
					else if (cn.tagName=='Link') {
						//lnkTxt = document.createTextNode(cn.firstChild.data);
						lnkTxt = document.createTextNode("Weblink");
						lnk = document.createElement('a');
						lnk.setAttribute('href',cn.firstChild.data);
						lnk.setAttribute('target','_blank');
						//lnk.href = cn.firstChild.data;
						lnk.appendChild(lnkTxt);
						
						$('imgGalleryLnk').innerHTML = '';
						$('imgGalleryLnk').appendChild(lnk);	
						
					}	
						
				}	
				else if ($('imgGallery'+cn.tagName))  {		
				
					$('imgGallery'+cn.tagName).innerHTML = '';	
					
				}	
				else if (cn.tagName=='Link')  {				
					$('imgGalleryLnk').innerHTML = '';					
				}				
			
			}		
			
		}
	}
}



var FHM_FORM_checkboxActive = "fileadmin/template/img/cbActive.gif";		// checkbox checked
var FHM_FORM_checkboxInactive = "fileadmin/template/img/cbInActive.gif";		// checkbox unchecked
var FHM_FORM_radioActive = "fileadmin/template/img/radioActive.gif";		// checkbox checked
var FHM_FORM_radioInactive = "fileadmin/template/img/radioInActive.gif";		// checkbox unchecked

function show_exception( requestObject, ex) {
	alert("Keine AJAX-Anfrage an " + requestObject.url + " moeglich: " + ex);
}

function show_failure( requestObject ) {
	alert("Error from Server:" + requestObject.statusText);
}
