//--------------------------------------------------
// Author: Chris Lock
// Copyright (c) 2009
//--------------------------------------------------

//--------------------------------------------------
// GLOBAL
//--------------------------------------------------
	var scrollPosition = $('html, body').scrollTop();


//--------------------------------------------------
// START
//--------------------------------------------------
function start() {
	$('div#slide').css('overflow', 'hidden');
	$('div.panel-projects').css('position', 'absolute');
}


//--------------------------------------------------
// PANEL HEIGHT
//--------------------------------------------------
function panelHeight() {
	var panelHeight = $('div#current-panel').height();
	var panelPadding = parseInt( $('div#slide div.panel').css('padding-bottom') );
	
	$('div#slide').css('height', panelHeight + panelPadding);
}


//--------------------------------------------------
// MENU
//--------------------------------------------------
function menuHover() {
	$('h1#logo, ul#menu').hover( function() {
		$('.main-content').stop().fadeTo(500, 0.25);
	}, function() {
		$('.main-content').stop().fadeTo(500, 1.0);
	});
}


//--------------------------------------------------
// LOGO POSITION
//--------------------------------------------------
function logoPosition() {
	var slideHeight = $('div#slide').height();
	var slidePadding = parseInt( $('div#slide').css('padding-bottom') );
	var winHeight = $(window).height();
	
	if ( winHeight < slideHeight + slidePadding ) {
		$('h1#logo, ul#menu').css('position', 'fixed');
		$('h1#logo a').attr('class', 'down');
	}
	
	else {
		$('h1#logo, ul#menu').css('position', 'absolute');
		$('h1#logo a').removeClass('down');
	}
}


//--------------------------------------------------
// PANEL SLIDE
//--------------------------------------------------
function panelSlide() {
	$('ul#menu a').click( function() {
		$(this).blur();
	});
	
	$('ul#menu li.panel-link a').click( function() {
		var linkClass = $(this).attr('class');
		var ifActive = $(this).parent('li').attr('class');
		
		var logo = $('h1#logo');
		var logoTop = $('h1#logo').position().top;
		var logoBottom = parseInt( $('h1#logo').css('bottom') );
		var menu = $('ul#menu');
		var menuTop = $('ul#menu').position().top;
		var menuBottom = parseInt( $('ul#menu').css('bottom') );
		
		var currentHeight = $('div#slide div#current-panel').height();
		var newHeight = $('div#slide div.panel-' + linkClass).height();
		var winHeight = $(window).height();
		var panelPadding = parseInt( $('div#slide div.panel').css('padding-bottom') );
		var startPosition = '-100%';
		var finishPosition = '100%';
		
		if ( linkClass == 'projects') {
			var startPosition = '100%';
			var finishPosition = '-100%';
		}
		
		var slideXTime = 1500;
		var fadeTime = 500;
		
		if ( ifActive !== 'active' ) {
			$('ul#menu li.active').removeClass('active');
			$(this).parent('li').addClass('active');
			
			$('div#slide div#current-panel').attr('id', 'old-panel');
			$('div#slide div.panel-' + linkClass).attr('id', 'current-panel').css('left', startPosition).animate( { left: '0%' }, slideXTime);
			$('div#slide div#old-panel').css('left', '0%').animate( { left: finishPosition }, slideXTime, function() {
				$('div#slide div#old-panel').attr('id', '').css('left', '0%');
				
				if ( currentHeight > newHeight ) {
					$('div#slide').css('height', newHeight + panelPadding);
				}
			});
			
			if ( currentHeight < newHeight ) {
				$('div#slide').css('height', newHeight + panelPadding);
			}
			
			$(logo).css( { position: 'absolute', top: logoTop + 'px', bottom: '' } ).fadeOut(fadeTime, function () {
				$(logo).remove();
				$('div#slide div#current-panel').prepend(logo);
				$(logo).css( { top: '', bottom: logoBottom + 'px' } ).hide();
				logoPosition();
				
				if ( newHeight + panelPadding > winHeight ) {
					$(logo).css('position', 'fixed');
					$(logo).children('a').attr('class', 'down');
				}
				
				else {
					$(logo).css('position', 'absolute');
					$(logo).children('a').attr('class', '');
				}
				
				setTimeout( function() {
					$(logo).fadeIn(fadeTime);
				}, slideXTime - fadeTime);
			});
			
			$(menu).css( { position: 'absolute', top: menuTop + 'px', bottom: '' } ).fadeOut(fadeTime, function () {
				$(menu).remove();
				$('div#slide div#current-panel').prepend(menu);
				$(menu).css( { top: '', bottom: menuBottom + 'px' } ).hide();
				panelSlide();
				
				if ( newHeight + panelPadding > winHeight ) {
					$(menu).css('position', 'fixed');
					$(menu).children('a').attr('class', 'down');
				}
				
				else {
					$(menu).css('position', 'absolute');
					$(menu).children('a').attr('class', '');
				}
				
				setTimeout( function() {
					$(menu).fadeIn(fadeTime);
					menuHover();
				}, slideXTime - fadeTime);
			});
			
			$('html, body').animate( { scrollTop: 0 }, slideXTime);
		}
	});
}


//--------------------------------------------------
// START
//--------------------------------------------------
Cufon.replace('#about-content');
$(document).ready( function() {
	$('html, body').attr('scrollTop', 0);
	start();
	panelHeight();
	logoPosition();
	panelSlide();
	menuHover();


//--------------------------------------------------
// RESIZE
//--------------------------------------------------
	$(window).bind('resize', function() { 
		panelHeight();
		logoPosition();
	});
});


