var statusSkyline 		= 'in';
var statusSubNavigation = 'out';
var statusContent		= 'out';

var skylineFade;
var contentFade;
var subNavigationFade;
var chainSkyline;
var chainText;
var timerSkyline;
var timerText;
var scrollSkyline;
var scrollText;

var whereAmI = 0;

var Site = {
	
	init: function(){
		Site.removeBlur();
		
		skylineFade = new Fx.Styles($('skylineScroller'), {
			duration: 1000,
			transition: Fx.Transitions.linear
		});
		
		contentFade = new Fx.Styles($('realContent'), {
			duration: 1000,
			transition: Fx.Transitions.linear
		}).set(0);
		
		subNavigationFade = new Fx.Style($('subNavigation'), 'opacity', {
			duration: 500,
			wait: false
		});
		
		$('imprint').addEvent('click', function(e){
			e = new Event(e).stop();
			
			Site.imprint();
		});
		
	},
	
	removeBlur: function(){
		$$('a').each(function(el){
			el.addEvent('focus', function(){
				el.blur();
			});
		});
	},
	
	start: function(){
		if ($('skylineScroller')) Site.startSkylineScroller();
		
		if ($('overlay')) Site.startTextScroller();
		
		Site.initNavigation();
		
		Site.centerWindow();
		
		Site.positionContent();
		
		Site.controller();
		
		Site.main1();
	},
	
	centerWindow: function(){
		if (window.getHeight() <= $('centered').getStyle('height').replace(/px/, '')) {
			var top = 10;
		} else {
			var top = Math.round((window.getHeight()-$('centered').getStyle('height').replace(/px/, ''))/2);
		}
		
		var left = Math.round((window.getWidth()-$('content').getStyle('width').replace(/px/, ''))/2);

		$('content').setStyles({
			'margin-top': top+'px',
			'visibility': 'visible'
		});

		var offset = -40;
		
		$('sub1').setStyles({
			'top': $('main2').getCoordinates().top+offset+'px',
			'left': $('main2').getCoordinates().left+'px'
		});
		
		$('sub2').setStyles({
			'top': $('main3').getCoordinates().top+offset+'px',
			'left': $('main3').getCoordinates().left+'px'
		});
		
		$('sub3').setStyles({
			'top': $('main4').getCoordinates().top+offset+'px',
			'left': $('main4').getCoordinates().left+'px'
		});
		
		$('sub4').setStyles({
			'top': $('main5').getCoordinates().top+offset+'px',
			'left': ($('main5').getCoordinates().left)-74+'px',
			'text-align': 'right'
		});
	},
	
	positionContent: function(){
		var coords = $('logo').getCoordinates();
		
		$('position').setStyles({
			'top': coords.top+130+'px',
			'left': coords.left+'px'
		});
	},
	
	startSkylineScroller: function(){
		var myChain = new Chain();
		var i = 0;
		
		chainSkyline = function() {
			if (i == 929) {
				$('skylineScroller').scrollTo(0, 0);
				
				i = 0;
			} else {
				i++;
			
				$('skylineScroller').scrollTo(i, 0);
				$('skylineScroller').setStyle('z-index', 1000);
			}
		}
		
		timerSkyline = chainSkyline.periodical(100);
	},
	
	startTextScroller: function(){
		var myChain = new Chain();
		var i = 0;
		
		chainText = function() {
			if (i == 135) {
				$('textScroller').scrollTo(0, 0);
				
				i = 0;
			} else {
				i++;
	
				$('textScroller').scrollTo(0, i);
			}
		}
		
		timerText = chainText.periodical(200);
	},
	
	initNavigation: function(){
		$('main2').addEvent('mouseover', function(){
			$('sub1').setStyle('visibility', 'visible');
		});
		
		$('main2').addEvent('mouseout', function(){
			$('sub1').setStyle('visibility', 'hidden');
		});
		
		$('main3').addEvent('mouseover', function(){
			$('sub2').setStyle('visibility', 'visible');
		});
		
		$('main3').addEvent('mouseout', function(){
			$('sub2').setStyle('visibility', 'hidden');
		});
		
		$('main4').addEvent('mouseover', function(){
			$('sub3').setStyle('visibility', 'visible');
		});
		
		$('main4').addEvent('mouseout', function(){
			$('sub3').setStyle('visibility', 'hidden');
		});
		
		$('main5').addEvent('mouseover', function(){
			$('sub4').setStyle('visibility', 'visible');
		});
		
		$('main5').addEvent('mouseout', function(){
			$('sub4').setStyle('visibility', 'hidden');
		});
	},
	
	fadeOutTooltips: function(){
		$('sub1').setStyle('visibility', 'hidden');
		$('sub2').setStyle('visibility', 'hidden');
		$('sub3').setStyle('visibility', 'hidden');
		$('sub4').setStyle('visibility', 'hidden');
	},
	
	fadeSubNavigation: function(type){
		switch(type) {
			case 'in':
				if (statusSubNavigation == 'out') {
					subNavigationFade.start({
						'opacity': [0, 1]
					});
					
					statusSubNavigation = 'in';
				}
			break;
			case 'out':
				$('subNavigation').setHTML('');
			break;
		}
	},
	
	fadeSkyline: function(type){
		switch(type) {
			case 'in':
				if (statusSkyline == 'out') {
					skylineFade.start({
						'opacity': [0.2, 1]
					});
			
					statusSkyline = 'in';
				}
			break;
			case 'out':
				if (statusSkyline == 'in') {
					skylineFade.start({
						'opacity': [1, 0.1]
					});
					
					statusSkyline = 'out';
				}
			break;
		}
	},
	
	fadeContent: function(type){
		switch(type) {
			case 'in':
				if (statusContent == 'out') {
					contentFade.start({
						'opacity': [0, 1]
					});

					statusContent = 'in';
				}
			break;
			case 'out':
				if (statusContent == 'in') {
					contentFade.start({
						'opacity': [1, 0]
					});
					
					statusContent = 'out';
				}
			break;
		}
	},
	
	hideTextScroller: function(){
		$('textScrollerContainer').setStyle('display', 'none');
	},
	
	showTextScroller: function(){
		$('textScrollerContainer').setStyle('display', 'block');
		
		$('teaser').setHTML('');
		$('teaser').setStyle('display', 'none');
	},
	
	showProject: function(id){
		if (whereAmI != 2) {
			whereAmI = 2;
		
			setActive(2);
	
			Site.fadeOutTooltips();
			
			Site.fadeContent('in');
			
			new Ajax(base_url+'site/sub', {
				method: 'post',
				data: 'main=2',
				update: $('subNavigation'),
				evalScripts: true,
				onComplete: function(){
					Site.fadeSubNavigation('in');
					
					setSubActive(2);
	
					new Ajax(base_url+'site/loader', {
						method: 'post',
						data: 'load=list',
						update: $('middle'),
						evalScripts: true
					}).request();
				}
			}).request();	
		}
		
		Site.fadeSkyline('out');
		
		setSubActive(2);
		
		Site.randomProject();
		
		Site.hideTextScroller();
		
		new Ajax(base_url+'site/loader', {
			method: 'post',
			data: 'load=project&project='+id,
			update: $('realContent'),
			evalScripts: true,
			onComplete: function(){
				Site.fadeContent('in');
			}
		}).request();
		
		new Ajax(base_url+'site/loader', {
			method: 'post',
			data: 'load=pdf&project='+id,
			update: $('teaser'),
			evalScripts: true,
			onComplete: function(){
				$('teaser').setStyle('display', 'block');
			}
		}).request();
	},
	
	randomProject: function(){
		new Ajax(base_url+'site/loader', {
			method: 'post',
			data: 'load=teaser',
			update: $('bottomRight'),
			evalScripts: true
		}).request();
	},
	
	lastNews: function(){
		new Ajax(base_url+'site/loader', {
			method: 'post',
			data: 'load=news',
			update: $('bottomRight'),
			evalScripts: true
		}).request();
	},
	
	showWelcome: function(){
		new Ajax(base_url+'site/loader', {
			method: 'post',
			data: 'load=welcome',
			update: $('middle'),
			evalScripts: true
		}).request();
	},
	
	showNews: function(id){
		if (whereAmI != 2) {
			Site.main2();
			
			Site.fadeSkyline('out');

			new Ajax(base_url+'site/loader', {
				method: 'post',
				data: 'load=aktuelles',
				update: $('realContent'),
				evalScripts: true,
				onComplete: function(){
					Site.fadeContent('in');
					
					setSubActive(1);
					
					new Ajax(base_url+'site/loader', {
						method: 'post',
						data: 'load=text&news='+id,
						update: $('news'),
						evalScripts: true
					}).request();
				}
			}).request();
		} else {
			new Ajax(base_url+'site/loader', {
				method: 'post',
				data: 'load=text&news='+id,
				update: $('news'),
				evalScripts: true
			}).request();
		}
	},
	
	controller: function()
	{
		$('main1').addEvent('click', function(e){
			e = new Event(e).stop();
			
			Site.main1();
		});
		
		$('main2').addEvent('click', function(e){
			e = new Event(e).stop();
			
			Site.main2();
		});
		
		$('main3').addEvent('click', function(e){
			e = new Event(e).stop();
			
			Site.main3();
		});
		
		$('main4').addEvent('click', function(e){
			e = new Event(e).stop();
			
			Site.main4();
		});
		
		$('main5').addEvent('click', function(e){
			e = new Event(e).stop();
			
			Site.main5();
		});
	},
	
	main1: function(){
		whereAmI = 1;
		
		setActive(1);
		
		Site.fadeSkyline('in');
		
		Site.fadeContent('out');
		
		if ($('subNavigation')) {
			$('subNavigation').setHTML('');
		}
		
		Site.showTextScroller();
		
		Site.lastNews();
		
		Site.showWelcome();
	},
	
	main2: function(){
		whereAmI = 2;
		
		setActive(2);

		Site.fadeSkyline('out');
		
		Site.fadeOutTooltips();
		
		Site.showTextScroller();
		
		Site.randomProject();
		
		new Ajax(base_url+'site/sub', {
			method: 'post',
			data: 'main=2',
			update: $('subNavigation'),
			evalScripts: true,
			onComplete: function(){
				new Ajax(base_url+'site/loader', {
					method: 'post',
					data: 'load=list',
					update: $('middle'),
					evalScripts: true
				}).request();
				
				setSubActive(1);
				
				new Ajax(base_url+'site/loader', {
					method: 'post',
					data: 'load=aktuelles',
					update: $('realContent'),
					evalScripts: true,
					onComplete: function(){
						Site.showNews(0);
						Site.fadeContent('in');
					}
				}).request();
			}
		}).request();	
	},
	
	main3: function(){
		whereAmI = 3;
		
		setActive(3);
		
		Site.fadeSkyline('out');
		
		Site.fadeOutTooltips();
		
		Site.showTextScroller();
		
		Site.randomProject();
		
		Site.showWelcome();
		
		new Ajax(base_url+'site/sub', {
			method: 'post',
			data: 'main=3',
			update: $('subNavigation'),
			evalScripts: true,
			onComplete: function(){
				setSubActive(1);
				
				new Ajax(base_url+'site/loader', {
					method: 'post',
					data: 'load=verantwortung',
					update: $('realContent'),
					evalScripts: true,
					onComplete: function(){
						Site.fadeContent('in');
					}
				}).request();
			}
		}).request();	
	},
	
	main4: function(){
		whereAmI = 4;
		
		setActive(4);
		
		Site.fadeSkyline('out');
		
		Site.fadeOutTooltips();
		
		Site.showTextScroller();
		
		Site.randomProject();
		
		Site.showWelcome();
		
		new Ajax(base_url+'site/sub', {
			method: 'post',
			data: 'main=4',
			update: $('subNavigation'),
			evalScripts: true,
			onComplete: function(){
				setSubActive(1);
				
				new Ajax(base_url+'site/loader', {
					method: 'post',
					data: 'load=philosophie',
					update: $('realContent'),
					evalScripts: true,
					onComplete: function(){
						Site.fadeContent('in');
					}
				}).request();
			}
		}).request();	
	},
	
	main5: function(){
		whereAmI = 5;
		
		setActive(5);
		
		Site.fadeSkyline('out');
		
		Site.fadeOutTooltips();
		
		Site.fadeSubNavigation('out');
		
		Site.showTextScroller();
		
		Site.randomProject();
		
		Site.showWelcome();
		
		new Ajax(base_url+'site/loader', {
			method: 'post',
			data: 'load=kontakt',
			update: $('realContent'),
			evalScripts: true,
			onComplete: function(){
				Site.fadeContent('in');
			}
		}).request();	
	},
	
	imprint: function(){
		whereAmI = 0;
		
		Site.fadeSkyline('out');
		
		Site.fadeContent('in');
		
		Site.fadeSubNavigation('out');
		
		Site.showTextScroller();
		
		Site.lastNews();
		
		Site.showWelcome();
		
		new Ajax(base_url+'site/loader', {
			method: 'post',
			data: 'load=impressum',
			update: $('realContent'),
			evalScripts: true
		}).request();
	}

};

function tooltip(html){
	if ($('tooltip')) {
		$('tooltip').setHTML(html);
	}
}

function setActive(id){
	$$('.navActive').each(function(el){
		el.removeClass('navActive').addClass('nav');
	});
	
	if ($('subNavigation')) {
		$('subNavigation').setOpacity(1);
	}
	
	if ($('sub'+id)) {
		$('sub'+id).setStyle('visibility', 'hidden');
	}
	
	allowFade = false;
	
	$('main'+id).removeClass('nav').addClass('navActive');
}

function setSubActive(id){
	$$('.subNavActive').each(function(el){
		el.removeClass('subNavActive').addClass('subNav');
	});
	
	if ($('subnav'+id)) {
		$('subnav'+id).removeClass('subNav').addClass('subNavActive');
	}
}

window.addEvent('domready', Site.init);
window.addEvent('load', Site.start);
window.addEvent('resize', function(){
	Site.centerWindow();
	
	Site.positionContent();
});
