// JavaScript Document

$(document).ready(function(){
	
	/* Show reel action */
	$("#show_reel_button").click(function(event){
		if($('#show_reel').hasClass('open'))
		{
			$('#show_reel').slideUp();
			$('#show_reel').addClass('closed');
			$('#show_reel').removeClass('open');
			$('#show_reel_button').removeClass('open');
		
		}else{
			$('#show_reel').slideDown();
			$('#show_reel').addClass('open');
			$('#show_reel').removeClass('closed');
			$('#show_reel_button').addClass('open');		
		}
	});
	
	/* Carousel */
	$('#carousel').jcarousel({
		scroll: 1
    });
	
	function show(){
		$('#carousel').slideDown('slow');
	}

	$('#project_carousel').jcarousel({
		scroll: 1,
		initCallback: project_initCallback,
		itemFirstInCallback: project_itemFirstInCallback
    });
	
	activate_link_hover();

			function mycarousel_itemLoadCallback(carousel, state)
			{
				
				var per_page = carousel.last - carousel.first + 1;
				var currPage = 0;
				var f,l;
				var cr = carousel;
				
				for (var i = carousel.first; i <= carousel.last; i++) {
					var page = Math.ceil(i / per_page);
			 
					if (currPage != page) {
						currPage = page;
			 
						f = ((page - 1) * per_page) + 1;
						l = f + per_page - 1;
			 
						f = f < carousel.first ? carousel.first : f;
						l = l > carousel.last ? carousel.last : l;
			 
						if (carousel.has(f, l)) {
							continue;
						}
			 
						mycarousel_makeRequest(carousel, f, l, per_page, page);
					}
				}
			};
			 
			function mycarousel_makeRequest(carousel, first, last, per_page, page)
			{
				// Lock carousel until request has been made
				carousel.lock();
			 	
				var url = window.location.pathname;
				
				if(page != 1){
					var offset = (page-1)*6;
				}else{
					var offset = 0;
				}
				
				$('#project_carousel_loading').show();
				
				jQuery.get(
					url,
					{
						'offset': offset
					},
					function(data) {
						mycarousel_itemAddCallback(carousel, first, last, data, page);
					}
				);
			};
			 
			function mycarousel_itemAddCallback(carousel, first, last, data, page)
			{
				// Unlock
				carousel.unlock();
													   
				for (var i = carousel.first; i <= carousel.last; i++) {
					// Check if the item already exists
					if (!carousel.has(i)) {
						// Add the item
						//alert(i+' '+first+' '+last+' '+page);
						carousel.add(i, data);
						$('#project_carousel_loading').hide();
						$('.jcarousel-item-'+i+' .project_thumb').fadeIn('slow');
					}
				}
				
				activate_link_hover();
			};
			
			var num_projects = $(".project_control > a").size();
			
			jQuery('#project_carousel2').jcarousel({
				scroll: 1,
				size: num_projects,
				itemLoadCallback: mycarousel_itemLoadCallback,
				initCallback: project_initCallback,
				itemFirstInCallback: project_itemFirstInCallback
			});

	/* Page markers (bullets) navigation */
	
	function project_initCallback(carousel) {
		/*$('.project_control a:first').addClass("active");*/
		
		$('.project_control a').bind('click', function() {
			$(".project_control a").removeClass("active");
			$(this).addClass("active");
			carousel.scroll(jQuery.jcarousel.intval(jQuery(this).text()));
			return false;
		});
	}
	
	/* On page change set markers (bullets) active */
	
	function project_itemFirstInCallback(carousel, ob, index, state) {
		var index = index -1;
		$(".project_control a").removeClass("active");
		$('.project_control a:eq('+index+')').addClass("active");
	}
	
	$(".project_control a:first").addClass("active");
	
	
	function activate_link_hover() {
		var projects = $(".project_thumb");
		var categories = $(".categories a");
		
		/* Work thumb hover */
		$(".project_thumb a").mouseenter(function(){
			var project = $(this).parent();
			$(projects).stop(true);
			$(categories).stop(true);
			
			$(projects).not(project).animate({"opacity": 0.3}, "fast");  
			$(project).animate({"opacity": 1}, "fast");  
			
			var selected_categories = $(this).attr('rel');
			selected_categories = selected_categories.split(',');
			
			$(categories).animate({"opacity": 0.2}, "fast");  
			
			$.each(selected_categories,function( intIndex, objValue ){
				$("."+objValue).not(selected_categories).animate({"opacity": 1}, "fast");  
			});
		});
		
		$(".project_thumb a").mouseleave(function(){
			$(projects).stop(true);
			$(categories).stop(true);
			$(categories).animate({"opacity": 1}, "fast");  
			$(projects).animate({"opacity": 1}, "fast");  
		});
	}
	

});



