
	var transitionDuration=200;
	
	var currentNav=[];
	var currentVideo;
	var currentURL;
	var currentSubNav;
	var defaultSubNav;
	var animSubNav;
	
	var subNavSlideDuration=200;
	var currentOverlay=null
	var loadingPage=false;

	$(function() {
		
		$('a.resume-projects, a.resume-resume, a.resume-close').live('click', function(e) {
			e.stopPropagation();
			e.stopImmediatePropagation();
			
			var link=$(this);
			
			var showSection=function(n) {
				var toShow;
				if (n=='resume-resume') {
					$('a.resume-projects').removeClass('active');
					$('a.resume-resume').addClass('active');
					toShow=$('div.actual-resume');
				} else {
					$('a.resume-resume').removeClass('active');
					$('a.resume-projects').addClass('active');
					toShow=$('div.actual-projects');
				}

				toShow.siblings().fadeOut(200, function() {
					$('#bPlayer').addClass('iemode');
					toShow.fadeIn(200);
				});
			}
			
			if (link.attr('class')=='resume-close') {		 
				$('div.resume').fadeOut(200, function() {
					$('div.actual-resume, div.actual-projects').hide();
					$('#bPlayer').removeClass('iemode');
				});
				return false;
			}
			
			if ($('div.resume').css('display')=='none') {
				$('div.resume').fadeIn(200, function() {
					showSection(link.attr('class'));
				});
			} else {
				showSection(link.attr('class'));
			}
			
			return false;
		});
		
		$('a').live('click', function() {
			var href=$(this).attr('href');
			if ($(this).hasClass('external') || $(this).attr('target')=='_blank') return true;
			if ($(this).parents('ul.overlay_select').length) {
				var overlayTransition=200;
				var newOverlay=$('#'+$(this).attr('class'));
				
				currentOverlay=null;
				$('ul.overlay_select li.selected a').each(function() {
					var overlayID=$(this).attr('class');
					currentOverlay=$('#'+overlayID);
				});
				
				if (currentOverlay) {
					currentOverlay.fadeOut(overlayTransition, function() {
						newOverlay.fadeIn(overlayTransition);
					});
				} else {
					newOverlay.fadeIn(overlayTransition);
				}
				currentOverlay=newOverlay;
				$('ul.overlay_select li').removeClass('selected');
				$(this).parent().addClass('selected');
			} else {
				if ($(this).attr('href')=='#') return false;
				loadURL($(this).attr('href'));
			}
			return false;
		});
		
		$('ul.overlay_select > a').live('click', function() {
		});
		
		// Initialise navigation
		$('div.navigation > ul.main > li > ul.sub > li').mouseenter(function(e) {
			e.stopPropagation();
			e.stopImmediatePropagation();
		});
		
		function showSubNav(s) {
			if (s.length && currentSubNav) {
				if (s.attr('id')==currentSubNav) return;
				$('#'+currentSubNav).fadeOut(subNavSlideDuration, function() {
					currentSubNav=s.attr('id');
					s.fadeIn(subNavSlideDuration);
				});
			} else if (s.length) {
				currentSubNav=s.attr('id');
				s.fadeIn(subNavSlideDuration);
			} else if (currentSubNav) {
				$('#'+currentSubNav).fadeOut(subNavSlideDuration);
				currentSubNav=null;
			}

		}
		
		$('div.navigation > ul.main > li').mouseover(function(e) {
			showSubNav($(this).children('ul.sub'));
		});
		
		$('div.navigation').mouseleave(function(e) {
			showSubNav(defaultSubNav);
		});
		
		function loadURL(url) {
			if (loadingPage) return;
			var clickedLinks=$('ul.main > li > a[href="'+url+'"]');
			
			clickedLinks.each(function() {
				var clickedID=this.id.replace('nav-', '');
				var newSubNav=$('ul.sub-'+clickedID);
			});
			
			currentURL=url;

			document.location.href='#'+currentURL;

			if (currentVideo) {
				if (currentVideo.isPlaying()) {
					currentVideo.pause();
				}
			}
			
			loadingPage=true;
			$.ajax({
				url: url+'?ajax',
				dataType: 'html',
				error: function() {
					loadingPage=false;
				},
				success: function(content) {
					var c=jQuery(content, document);
					
					currentOverlay=null;
					var transitionComplete=false;
					
					$('div#content, div.title').fadeOut(transitionDuration, function() {
						if (transitionComplete) return;
						transitionComplete=true;
						
						$('div.page-wrapper').attr('class', $('div.page-wrapper', c).attr('class'));
						
						$('div.title > h2').text($('div.title > h2', c).text());
						
						var overlayToShow='';
						$('#content div.overlay', c).each(function() {
							if ($(this).css('display')!='none') overlayToShow=$(this).attr('id');
						});
						
						$('div#content').html($('div#content', c).html());
						$('div#content div.overlay').css('display', 'none');

						if ($('div.banner', c).css('display')!=$('div.banner').css('display')) {
							if ($('div.banner', c).css('display')=='none') {
								$('div.banner').slideUp();
							} else {
								$('div.banner').slideDown();
							}
						}
						
						$('div.title').fadeIn(transitionDuration);
						$('div#content').fadeIn(transitionDuration, function() {
							if (overlayToShow!='') {
								$('#'+overlayToShow).slideDown(transitionDuration);
							}
							loadingPage=false;
							postProcess();
						});
						
					});
					
					updateNavHighlight(c);
				}
			});
			
		}
		
		function showNav(n) {
			if (currentNav.length) {
				if (currentNav.attr('id')==n.attr('id')) return;
				currentNav.fadeOut(200, function() {
					$('div#site-container').removeClass($(this).attr('id'));
					currentNav=[];
					showNav(n);
				});
				return;
			}
			currentNav=n;
			if (n.length) {
				$('div#site-container').addClass(n.attr('id'));
				n.fadeIn(200);
			}
		}
				
		function updateNavHighlight(c) {
			var currentURL=$('span.url', c).text();
			
			var dirs=[];
			var rawDirs=currentURL.split('/');
			$.each(rawDirs, function(i, v) {
				if (String(v).length!=0) dirs.push(v);
			});
			
			var currentLang='de';
			var otherLang='en';
			
			switch (dirs[0]) {
				case 'agb':
				case 'impressum':
					return;
					break;
				case 'enterprise':
				case 'clients':
				case 'samples':
				case 'contact':
					currentLang='en';
					otherLang='de';
					break;
				default:
					currentLang='de';
					otherLang='en';
			}

			if (currentLang=='en') {
				$('a.english').addClass('active');
				$('a.deutsch').removeClass('active');
			} else {
				$('a.deutsch').addClass('active');
				$('a.english').removeClass('active');
			}
			
			var currentNav=$('#'+currentLang);
			var disabledNav=$('#'+otherLang);

			showNav(currentNav);
			
			// Highlight link
			var s=[];
			$('.navigation a').each(function() {
				var thisURL=$(this).attr('href');
				if (thisURL==currentURL.substr(0, thisURL.length)) {
					s=$(this);
				} else {
					$(this).parent().removeClass('selected');
				}
			});
			
			$('.navigation a, .navigation li').removeClass('selected');
			if (s.length) {
				s.addClass('selected');
				defaultSubNav=$(s).parents('li').addClass('selected').children('ul.sub');
				showSubNav(defaultSubNav);
			}
			
		}
		
		function createVideos() {
			var playerIndex=0;
			
			$('div.player.video').each(function() {
				var url=$(this).attr('rel');
				if (url==undefined) return;
				$(this).attr('id', 'player-index-'+playerIndex++);
				var player=flowplayer($(this).attr('id'), {src: '/flash/player.swf', bgcolor: '#fff'}, {
					clip: {
						url: $(this).attr('rel'),
						scaling: 'orig'
					}
				});
				player.onLoad(function() {
					currentVideo=player;
				});
			});
						
			$('div.player.audio').each(function() {
				var url=$(this).attr('rel');
				if (url==undefined) return;
				$(this).attr('id', 'player-index-'+playerIndex++);
				var player=flowplayer($(this).attr('id'), {
						src: '/flash/player-audio.swf',
						bgcolor: '#fff'
					}, {
						clip: $(this).attr('rel')
					}
				);
				player.onLoad(function() {
					currentVideo=player;
				});
			});
		}
		
		function checkWindowHeight() {
			return;
			if ($(window).height()>820) {
				$('#site-container').not('.push').addClass('push');
			} else {
				$('#site-container.push').removeClass('push');
			}
		}
		
		function postProcess() {
			$('p.custom-pagination a').click(function() {
				var clickedLink=$(this);
				var currentlyVisible=[];
				var pages=$(this).parent().siblings('div.paginated');
				pages.each(function() {
					if ($(this).css('display')!='none') currentlyVisible=$(this);
				});
				
				var fadeInNewPage=function() {
					pages.eq(clickedLink.text()-1).fadeIn(1000);
					clickedLink.siblings().removeClass('selected');
					clickedLink.addClass('selected');
				}

				if (currentlyVisible.length) {
					currentlyVisible.hide();
				}
				
				fadeInNewPage();
			});
			
			createVideos();
		}
		
		$(window).resize(function() {
			checkWindowHeight();
		});
		
		checkWindowHeight();
		
		currentNav=$('div.navigation.selected');
		
//		$('#bPlayer').addClass('iemode');
		
		// Add IDs to subnavs
		$('div.navigation ul.sub').each(function(i, e) {
			$(e).attr('id', 'subnav-'+i);
		});
		
		if (document.location.href.indexOf('#')>-1) {
			$('#content, div.banner').hide();
			var url=document.location.href.substr(document.location.href.indexOf('#')+1);
			loadURL(url);			
		} else {
			updateNavHighlight($(this));
			postProcess();
		}
		
	});
	
