/*
 *
 * Author: Marijn Scholtus
 * http://thinkbright.nl | hello@thinkbright.nl
 *
 */

$(document).ready(function() {
	
	init();
	
	function init() {
		// Callback function is outside of document.ready
		var callback = 'setVimeoHeight';
		$(document).find('.player').each(function() {
			var url = 'http://vimeo.com/api/v2/video/'+$(this).attr('id')+'.json?callback='+callback;
			$('head').append('<script src="'+url+'">');
		});
		
		$carousel = $('#carousel');
		$controls = $carousel.find('a.control');
		var cylceItems;
		startCycle();
		
		if($('article.case').length > 12)
		{
			$('article.case').slice(12, $('article.case').length).hide().addClass('hide');
			$('#morecases').css('display', 'block');
		}
	}
	
	$carousel.delegate('a.control', 'click', function(e){
		e.preventDefault();
		clearInterval(cycleItems);
		var curr = $carousel.find('li.active');
		$(curr).removeClass('active');	
		$(curr).find('figure').hide();
		$(this).parent().find('figure').fadeIn('400');
		$(this).parent().addClass('active');
		startCycle();
	});
	
	$('#main').delegate('#morecases', 'click', function(e){
		e.preventDefault();
		$('article.case.hide').slice(0, 9).fadeIn('400').removeClass('hide');
		if (!$('article.case.hide').length)
		{
			$('#morecases').css('display', 'none');
		}
	});
	
	function startCycle() {
		cycleItems = setInterval(nextItem, 5000);
	}
	
	function nextItem () {
	      		var curr = $carousel.find('li.active');
	      		if($carousel.find('li:last').hasClass('active'))
	      			var next = $carousel.find('li:first');
	      		else
	      			var next = $(curr).next();
	      			
	      		$(next).find('figure').fadeIn('400');
	      		$(next).addClass('active');
	      		$(curr).removeClass('active');	
	      		$(curr).find('figure').hide();
	 }
	 
	 $(window).scroll(function(){
	 
	 	var total = $('article.case').length;
	 	var loading = false;
	 	
	    if ($('article.case.hide').length)
	    {
	    	if(!loading && $(this).scrollTop() == $(document).height() - $(this).height())
	    	{
	        	loading = true;	        
	        	$('article.case.hide').slice(0, 9).fadeIn('400').removeClass('hide');
	        	loading = false;
	        }       
	    }
	    else
	    {
	    	$('#morecases').css('display', 'none');
	    }
	 });
	 
});

//Outside of document.ready, otherwise the callback isn't picked up
function setVimeoHeight(video)
{
	var v = video[0];
	var newHeight = Math.floor(($('#'+v.id).width() * v.height)/v.width);
	$('#'+v.id).height(newHeight);
}
