/*** Reel ***/
function setupReel(reel, items)
{
	var reel = $(reel);
	var previous = $(reel).find('.previous');
	var next = $(reel).find('.next');
	var items = $(items);
	
	$(items).css({position:'relative'});
	
	
	var numItems = $(items).find('li').size();
	var itemWidth = $(items).find('li').first().outerWidth();
	var itemHeight = $(items).find('li').first().outerHeight();
	var itemsPerPage = 4;
	
	var numPages = Math.ceil(numItems / itemsPerPage);
	var pageWidth = itemsPerPage * itemWidth;
	var pageHeight = itemHeight;
	var page = 1;
	
	var slider = $('<div class="slider" />');
	var sliderWidth = numPages * pageWidth;
	var sliderHeight = pageHeight;
	$(slider).css({position:'relative', width:sliderWidth, height:sliderHeight});
	
	$(items).append(slider);
	$(slider).append($(items).find('li'));
	
	kill(previous);
	if (numItems <= itemsPerPage) kill(next);
	else revive(next);
	
	$(previous).click(function()
	{
		if (isDead(this)) return;
		$(slider).animate({left:'+=' + pageWidth + 'px'});
		--page;
		if (page == 1) kill(previous);
		if (page < numPages) revive(next);
	});
	
	$(next).click(function()
	{
		if (isDead(this)) return;
		$(slider).animate({left:'-=' + pageWidth + 'px'});
		++page;
		if (page == numPages) kill(this);
		if (page > 0) revive(previous);
	});
}

function kill(button) {	$(button).addClass('dead').fadeTo(0, .25).css('cursor', 'auto'); }

function revive(button) { $(button).removeClass('dead').fadeTo(0, 1).css('cursor', 'pointer'); }

function isDead(button) { return $(button).hasClass('dead'); }

/*** Gallery ***/
function setupGallery(main, thumbs)
{
	var main = $(main);
	var thumbs = $(thumbs);
	
	$(main).css('position', 'relative');
	var mainImage = $(main).find('img');
	
	$(thumbs).find('a').click(function()
	{
		var src = $(this).attr('href');
		$(mainImage).attr('src', src);
		return false;
	});
}

/*** Homepage projects ***/
function setupHomepage()
{
	$('#projects .project').hover(
		function() {
			$(this).find('.color').fadeIn();
		},
		function() {
			$(this).find('.color').fadeOut();
		}
	);
}

/*** Current projects ***/
function setupProjects()
{
	$('#current-projects .project, #past-projects .project').hover(
		function() {
			$(this).addClass('hover');
		},
		function() {
			$(this).removeClass('hover');
		}
	);
}

/*** Team hovers ***/
function setupTeam()
{
	$('#team .person').hover(
		function() {
			var desc = $(this).find('.description');
			var cont = $.trim($(desc).html());
			if (cont != '') {
				$(this).addClass('hover');
			}
		},
		function() {
			$(this).removeClass('hover');
		}
	);
}

/*** Typical concept fading ***/
function setupTypicalConcept() {
	$('#typical-concept .concept').cycle({timeout:200, speed:1500});
}

/*** Video link Fancybox popups ***/
function setupVideoPopups() {
	$('.video-link').fancybox({});
}

/*** On load ***/
jQuery(function()
{
	setupHomepage();
	setupProjects();
	setupTeam();
	setupReel('#project-reel', '#current-projects');
	setupReel('#thumbnail-reel', '#thumbnails');
	setupGallery('#main-image', '#thumbnails');
	setupTypicalConcept();
	setupVideoPopups();
});
