function agentTest(name) {
	var agent = navigator.userAgent.toLowerCase();
	if(agent.indexOf(name) > -1) return true;
	return false;
}

function platformTest(name) {
	var platform = navigator.platform.toLowerCase();
	if(platform.indexOf(name) > -1) return true;
	return false;
}

/*****************************************************/
/*  overlay Funktion allen Elementen hinzufügen      */
/*****************************************************/
Element.extend({
			   overlay: function(el, index) {
						var cords = this.getCoordinates();
						var styles = this.getStyles('borderTop',
													'borderBottom', 
													'width', 
													'height', 
													'marginTop', 
													'marginBottom');
						
						el.setStyles({
							//border: '1px solid',
							width: styles['width'],
							height: styles['height'],
							top: cords['top'],
							left: cords['left'],
							position: 'absolute',
							background: '#fff',
							borderTop: styles['borderTop'],
							borderBottom: styles['borderBottom'],
							marginTop: styles['marginTop'],
							marginBottom: styles['marginBottom'],
							zIndex: index
						});
					}
				});


/*****************************************************/
/*  Klasse Site für die Mootoolsfunktionen           */
/*****************************************************/
var Site = {
	
        flashed: false,
        
	start: function(){
		
		if ($('overview')){
			Site.morphImage();
		}
		
		if ($('bilderanimation')){
			
			bilderArray.each(function(el,i){
				// bilderArray[i] = './files/' + el;
				bilderArray[i] = 'index.php?rex_resize=950c__470h__' + el;
			});
			
			var images = new Asset.images(bilderArray, {
    			onComplete: function(){
					window.setTimeout("Site.bilderanimation()", 2000);
    			}
			});
			
			images.each(function(img,i){
				img.style.visibility = 'hidden';
				img.style.display = 'none';
				$('bilderanimation').appendChild(img);
			});
		}
	},

	bilderanimation: function(){
		if(typeof(bilderArray)!="undefined")
		{ 
			var l1 = $('bilderanimationL1');
			var l2 = $('bilderanimationL2');
			var imageText = $('imageText');
			var imageLink1 = $('projectLink1');
			var imageLink2 = $('projectLink2');
			var fx;
			var speed = 1200;
			if(bildAktiv != 1){
				speed = 250;
			}

			fx = new Fx.Morph(l2, {
				  duration: speed,
				  transition: Fx.Transitions.linear,
				  wait: false
				  });

			fx.addEvent('onComplete', function(e){
				bildIndex++;
				if(bildAktiv==1){
					bildAktiv = 2;
				} else {
					bildAktiv = 1;
				}

				if(bildIndex==(bilderArray.length-1)) bildIndex=-1;
				window.setTimeout("Site.bilderanimation()", 4000);
			});

			if(bildAktiv==1){
				l2.src = bilderArray[bildIndex+1];
				l1.get('morph').start({'opacity': 0}).chain(
					function(){
						fx.start({'opacity': [0.0, 1.0]});	
					}
				);
			//	fx.start({'opacity': [0.0, 1.0]});
			} else {
				l1.src = bilderArray[bildIndex+1];
				fx.start({'opacity': [1.0, 0.0]}).chain(
					function(){
						l1.get('morph').start({'opacity': 1});
					}
				);
			}
			imageText.innerHTML = (textArray[bildIndex+1] != '' ? textArray[bildIndex+1] : '&nbsp;');
			imageLink1.href = linkArray[bildIndex+1];
			imageLink2.href = linkArray[bildIndex+1];
		}
	},

	appearText: function(){

		var timer = 0;
		var sideblocks = $$('#subnavi_animated li');
		var slidefxs = [];
		sideblocks.each(function(el, i){

			el.setStyle('margin-top', -50);
			slidefxs[i] = new Fx.Style(el, 'margin-top', {
				duration: 707,
				transition: Fx.Transitions.Back.easeOut,
				wait: false
			});

		}, this);

		slidefxs.reverse();

		slidefxs.each(function(fx){
			fx.start(0);
		}, this);
	},

	morphImage: function()
	{
		
		var sideblocks = $$('#overview td');
		sideblocks.each(function(el, i)
		{
                
			var img = $E('img', el);
			
			if(img)
			{
				
				var overfxs = new Fx.Morph(img, {duration: 100, transition: Fx.Transitions.linear, wait: false});
			
				new Asset.image(img.src,
				{
				   onload: function(){
				   
				      var ratio = parseInt(img.width) / parseInt(img.height);
				      
				      el.addEvent('click', function(e){
				      	loadUrl(morphParameter[i][1]);		   
				      });
	    	        
				      el.addEvent('mouseenter', function(e){
				      	if(ratio >= 1.0){
				      		overfxs.start({
				      			width: 68
				      		});	
				      	} else {
				      		overfxs.start({	
				      			height: 68
				      		});
				      	}
				      	changeHeadline(morphParameter[i][0]);
				      });
	    	       
				      el.addEvent('mouseleave', function(e){
				      	if(ratio >= 1.0){
				      		overfxs.start({
				      			width: 60
				      		});
				      	} else {
	    	        
				      		overfxs.start({
				      			height: 60
				      		});
				      	}
				      	changeHeadline('');
				      });
				   }
				});
				
    	} //end if flashed
    	
		}, this);
	}
};

window.addEvent('domready', Site.start);

// Image Slider
var activeSlideElement = 0;
var pageX = 0;
var pageY = 0;

function showSlideElement(position){
	var container = this;
	var slideElements = this.getChildren('div');
	var num_slideElements = slideElements.length;
	var anchor = 0;
	if($('previous')){
		$('previous').parentNode.removeChild($('previous'));
	}
	if($('next')){
		$('next').parentNode.removeChild($('next'));
	}
	window.removeEvents('keypress');
	for(var i=0;i<num_slideElements;i++){
		slideElement = slideElements[i];
		if(i == position){
			slideElement.style.display = 'block';
			slideElement.set('morph', {duration: 'long', transition: 'quart:out'});
			if(position > activeSlideElement){
				slideElement.get('morph').start({'width' : [950,950], 'opacity': [0,1], 'right': [-100, 0]}); // 850 / 0
			}else{
				slideElement.get('morph').start({'width' : [950,950], 'opacity': [0,1], 'right': [100, 0]});
			}
		//	if(i > 0){
			anchor = new Element('a');
			anchor.setAttribute('id','previous');
			anchor.setAttribute('href','#');
			anchor.setStyle('visibility','hidden');
			if(i > 0){
				anchor.addEvent('click',showSlideElement.bind(this, position - 1));
				anchor.addEvent('click',highlightSquareElement.bind($('referenceNavigation'), position - 1));
				this.appendChild(anchor);
				window.addEvent('keypress',
					function(evt){
						if(evt.key == 'left'){
							showSlideElement.bind(container, position - 1).delay(1);
							highlightSquareElement.bind($('referenceNavigation'), position - 1).delay(1);
						}
					}
				);
			}else{
				anchor.addEvent('click',showPreviousProject.bind(this));
				window.addEvent('keypress',
					function(evt){
						if(evt.key == 'left'){
							showPreviousProject.bind(container).delay(1);
						}
					}
				);
				if(previousArticle != ''){
					this.appendChild(anchor);
				}	
			}
			if($('previous')){
				$('previous').get('morph').start({ 'opacity': [0,0] });
			}
		//	}
		//	if( (i+1) < num_slideElements && i != 0){
			anchor = new Element('a');
			anchor.setAttribute('id','next');
			anchor.setAttribute('href','#');
			anchor.setStyle('visibility','hidden');
			if(position == 0){
				anchor.setStyle('width',23);	
			}
			if( (i+1) < num_slideElements && i != 0){
				anchor.addEvent('click',showSlideElement.bind(this, position + 1));
				anchor.addEvent('click',highlightSquareElement.bind($('referenceNavigation'), position + 1));
				this.appendChild(anchor);
				window.addEvent('keypress',
					function(evt){
						if(evt.key == 'right'){
							showSlideElement.bind(container, position + 1).delay(1);
							highlightSquareElement.bind($('referenceNavigation'), position + 1).delay(1);
						}
					}
				);
			}else{
				anchor.addEvent('click',showNextProject.bind(this));
				if(nextArticle != ''){
					this.appendChild(anchor);
					window.addEvent('keypress',
						function(evt){
							if(evt.key == 'right'){
								showNextProject.bind(container).delay(1);
							}
						}
					);
				}
			}
			if($('next')){
				$('next').get('morph').start({ 'opacity': [0,0] });
			}
		//	}
			activeSlideElement = position;
			slideElement.getParent('div').addEvent('mousemove',
				function(event){
					pageX = event.page.x;
					pageY = event.page.y;
				}
			);
			slideElement.getParent('div').addEvent('mousemove',showBars.bind(slideElement));
			slideElement.getParent('div').addEvent('mouseleave',hideBars.bind(slideElement));
		}else{
			slideElement.get('morph').start({'opacity': 0}).chain(
				function(){
					this.start({'width': 0});
				}
			);
			slideElement.getParent('div').removeEvent('mouseenter');
			slideElement.getParent('div').removeEvent('mouseleave');
		}
	}
	return false;
}

function showPreviousProject(){
	$('referenceObject').style.overflow = 'hidden';
	$('referenceObject').get('morph').start( { 'height': 0 } ).chain(
		function(){
			window.location.href = previousArticle + '?animateProject=1';
		}
	);
	return false;
}

function showNextProject(){
	$('referenceObject').style.overflow = 'hidden';
	$('referenceObject').get('morph').start( { 'height': 0 } ).chain(
		function(){
			window.location.href = nextArticle + '?animateProject=1';
		}
	);
	return false;
}

function showProjectAnimation(height){
	$('referenceObject').get('morph').start( { 'height': height, 'padding-bottom': 2 } );
}

function showBars(){
	var coordinates = this.getParent('div').getCoordinates();
	var size = this.getParent('div').getSize();
	var positionX = pageX - coordinates.left;
	var positionY = coordinates.top - pageY;
	if($('next') && (positionX > size.x/2) && $('next').style.visibility == 'hidden'){
		$('next').get('morph').start({ 'opacity': [1,1] });
		if($('previous')){
			$('previous').get('morph').start({ 'opacity': 0 });
		}
	}
	if($('previous') && (positionX < size.x/2) && $('previous').style.visibility == 'hidden'){
		$('previous').get('morph').start({ 'opacity': [1,1] });
		if($('next')){
			$('next').get('morph').start({ 'opacity': 0 });
		}
	}
}

function hideBars(){
	if($('next')){
		$('next').get('morph').start({ 'opacity': 0 });
	}
	if($('previous')){
		$('previous').get('morph').start({ 'opacity': 0 });
	}
}

function highlightSquareElement(position){
	var slideNavigationAnchors = this.getChildren('div')[2].getChildren('ul')[0].getChildren('li');
	var num_slideNavigationAnchors = slideNavigationAnchors.length;
	var image;
	var anchor;
	for(var i=0;i<num_slideNavigationAnchors;i++){
		anchor = slideNavigationAnchors[i].getChildren('a')[0];
		if(anchor){
			image = anchor.getChildren('img')[0];
			if(i == position){
				if(i > 0){
					image.src = './pics/square_aktiv.gif';
				}else{
					image.src = './pics/square_text_aktiv.gif';
				}
			}else{
				if(i > 0){
					image.src = './pics/square_black.gif';
				}else{
					image.src = './pics/square_text_black.gif';
				}
			}
		}
	}

}

function startGallery(container, navigation) {
	var slideElements = container.getChildren('div');
	var num_slideElements = slideElements.length;
	for(var i=1;i<num_slideElements;i++){
		slideElement = slideElements[i];
		slideElement.style.position = 'absolute';
		slideElement.style.width = '0px';
	}

	var slideNavigationAnchors = navigation.getChildren('div')[2].getChildren('ul')[0].getChildren('li');
	var num_slideNavigationAnchors = slideNavigationAnchors.length;
	var anchor;
	for(var i=0;i<num_slideNavigationAnchors;i++){
		anchor = slideNavigationAnchors[i].getChildren('a')[0];
		if(anchor){
			anchor.addEvent('click', showSlideElement.bind(container, i));
			anchor.addEvent('click', highlightSquareElement.bind(navigation, i));
		}
	}

	anchor = new Element('a');
	anchor.setAttribute('id','previous');
	anchor.setAttribute('href','#');
	anchor.setStyle('visibility','hidden');
	anchor.addEvent('click',showPreviousProject.bind(this));
	if(previousArticle != ''){
		container.appendChild(anchor);
	}
	if($('previous')){	
		$('previous').get('morph').start({ 'opacity': [0,0] });
		window.addEvent('keypress',
			function(evt){
				if(evt.key == 'left'){
					showPreviousProject.bind(this).delay(1);
				}
			}
		);
	}
	anchor = new Element('a');
	anchor.setAttribute('id','next');
	anchor.setAttribute('href','#');
	anchor.setStyle('visibility','hidden');
	if(activeSlideElement == 0){
		anchor.setStyle('width',23);
		$('referenceInformation').addEvent('click',showSlideElement.bind(container, 1));
		$('referenceInformation').addEvent('click',highlightSquareElement.bind($('referenceNavigation'), 1));
		var anchorsInside = $('referenceInformation').getElements('a');
		var num_anchorsInside = anchorsInside.length;
		for(var i=0;i<num_anchorsInside;i++){
			anchorInside = anchorsInside[i];
			if(anchorInside.id == ''){
				anchorInside.addEvents(
					{
						'mouseenter': function(){
							$('referenceInformation').removeEvents('click');
						},
						'mouseleave': function(){
							$('referenceInformation').addEvent('click',showSlideElement.bind(container, 1));
							$('referenceInformation').addEvent('click',highlightSquareElement.bind($('referenceNavigation'), 1));
						}
					}
				);
			}
		}
	}
	if(num_slideElements > 1){
		anchor.addEvent('click',showSlideElement.bind(container, 1));
		anchor.addEvent('click',highlightSquareElement.bind($('referenceNavigation'), 1));
	}else{
	//	anchor.removeEvents('click');
		anchor.addEvent('click', showNextProject.bind(container));
	}
	container.appendChild(anchor);
	if($('next')){
		$('next').get('morph').start({ 'opacity': [0,0] });
		window.addEvent('keypress',
			function(evt){
				if(evt.key == 'right'){
					showSlideElement.bind(container, 1).delay(1);
					highlightSquareElement.bind($('referenceNavigation'), 1).delay(1);
				}
			}
		);
	}
	container.addEvent('mousemove',
		function(event){
			pageX = event.page.x;
			pageY = event.page.y;
		}
	);
	container.addEvent('mousemove',showBars.bind(slideElements[0]));
	container.addEvent('mouseleave',hideBars.bind(slideElements[0]));
}

function setPhilosophieBarsAnimation(){
	if($('previousStep')){
		$('image_left').addEvent('mousemove',
			function(){
				$('previousStep').get('morph').start( { 'opacity': [1,1] } );
			}
		);
		$('image_left').addEvent('mouseleave',
			function(){
				$('previousStep').get('morph').start( { 'opacity': 0 } );
			}
		);
	}
}

// Tooltip for Links
function showTooltip(anchor){
	var coordinates = anchor.getCoordinates($('content'));
	var tooltip = $$('.tooltip')[0];
	var size = tooltip.getSize();
	var anchorSize = anchor.getSize();
	tooltip.addEvent('mouseleave',hideTooltip.bind(anchor));
	tooltip.get('morph').start({ 'left': [coordinates.left,coordinates.left], 'top': [coordinates.top-size.y+anchorSize.y,coordinates.top-size.y+anchorSize.y], 'opacity': [1,1] });
	return false;
}

function hideTooltip(){
	var tooltip = $$('.tooltip')[0];
	tooltip.get('morph').start({ 'opacity': [1,0] });
	return false;
}

// Cufon.replace('#navigation a',{ hover: true, hoverables: { a: true } });
window.addEvent('domready', function(){
	// start classes, set animation functions
	var navigationClass = new Navigation('navigation');
	if($('referenceList')){
		var referenceListClass = new referenceList('referenceList');
	}
	if($('referenceObject') && $('referenceNavigation') && !$('referenceObject').hasClass('download')){
		startGallery($('referenceObject'), $('referenceNavigation'));
	}
	if($('publicationsList')){
		var publicationsListClass = new publicationsList('publicationsList');
	}
	if($('philosophie')){
		setPhilosophieBarsAnimation();
	}
	// Einblenden der Ebenen bei Philosophie
	if($('image_left')){
		var speed = 2000;
		var delay = 500;
		var fx2 = function(){
			$('overlay').set('morph', {duration: speed});
			$('overlay').get('morph').start({'opacity':[0,1]}).chain(
				function(){
					var speed = 1000;
					var fadeInOutAnimation;
					var fadeInOut = 0;
					var fx3 =  function(){
						$('nextStep').set('morph',{ duration: speed });
						$('nextStep').get('morph').start( { 'opacity': [0,1] } );
						fadeInOutAnimation = window.setInterval(function(){
							$('nextStep').set('morph',{ duration: speed });
							$('nextStep').get('morph').start( { 'opacity': fadeInOut } );
							fadeInOut = (fadeInOut == 0 ? 1 : 0); 
						},speed);
					}
					var useragent = navigator.userAgent;
					var pos = useragent.indexOf('MSIE');
					var browser_version =  parseFloat(navigator.userAgent.substring(pos+4));
				//	if(navigator.appName.indexOf("Explorer") != -1 && browser_version < 7){
				//		$('nextStep').setStyle('opacity', 1);
				//	}else{
						fx3.delay(delay);
				//	}
				}
			);
		}
		var fx = function(){
			if($('image_right')){
				var image_right = $('image_right');
				image_right.set('morph', {duration: speed});
				image_right.get('morph').start({'opacity':[0,1]}).chain(
					function(){
						fx2.delay(delay);
					}
				);
			}
		}
		var image_left = $('image_left');
		image_left.set('morph', {duration: speed});
		image_left.get('morph').start({'opacity':[0,1]}).chain(
			function(){
				fx.delay(delay);
			}
		);
	}
	
	// fading des image overlays im Pressebereich
	var projects = $$('.imagesDownload');
	var num_projects = projects.length;
	var project;
	var images;
	var num_images = 0;
	var overlay;
	for(var i=0;i<num_projects;i++){
		project = projects[i];
		imageBlocks = project.getChildren('div');
		num_imageBlocks = imageBlocks.length;
		for(var j=0;j<num_imageBlocks;j++){
			imageBlock = imageBlocks[j];
			imageBlock.addEvents(
				{
					'mouseenter': function(){
						overlay = this.getChildren('div')[0];
						overlay.get('morph').start( { 'opacity': [1,1] } );
					},
					'mouseleave': function(){
						overlay = this.getChildren('div')[0];
						overlay.get('morph').start( { 'opacity': 0 } );
					}
				}
			);
		}
	}
});

window.addEvent('domready',function() {
	// image austauschen (pulsierender Pfeil)
	window.setTimeout(
			function()
			{
				if($('image_animate'))
				{
					$('image_animate').src='pics/bullet_animate.gif';
				}
			}, 7000);
			if($('image_animate_white'))
			{
				var linkTarget = $('image_animate_white').getParent('a').href;
				$('content').addEvent('click',
					function(){
						window.location.href = linkTarget;
					}
				);
			//	$('image_animate_white').src='pics/bullet_animate_white.gif';
			}

	// link fading
	$each($$('a'),
		function(anchor){
			var original = anchor.getStyle('color');
			var morph = new Fx.Morph(anchor,
				{
					'link': 'cancel'
				}
			);
			if(anchor.className == ''){
				anchor.addEvents(
					{
						'mouseenter': function(){
							morph.start( { 'color': ['#000000','#000000'] } );
						},
						'mouseleave': function(){
							morph.start( { 'color': original } );
						}
					}
				);
			}
		}
	);
});

/* var hyphenatorSettings = {
	onhyphenationdonecallback : function () {
		$('content').setStyle('visibility', 'visible');
	}
}
Hyphenator.config(hyphenatorSettings); */
Hyphenator.run();
