$(function(){	
	
	var $container = $('#container');
	$container.css({'position':'absolute','margin':'0 auto'}).center();
	$(window).resize(function() {
		$container.center();
	});
	
	var current_request;
	var $projectType = $('#projectType');
	var $projectCategory = $('#projectCategory');
	var $projectName = $('#projectName');
	
	function getNav(params){
		var params = params;
		if(current_request) current_request.abort();
		
		current_request = $.post("/index.php?/ajax/nav", {type:params.type, category:params.category},function(data){
			$projectType.find('.loading').removeClass('loading');
			$projectCategory.find('.loading').removeClass('loading');
			$projectName.find('.loading').removeClass('loading');
			var liHtml = '';
			if(params.clicked == 'type'){ //retrived new categories
				$projectType.find('span.title').html( $projectType.find('a.selected').html() );
				$projectCategory.addClass('reveal').find('span.title').html( '2. project category' );
				$projectName.find('span.title').html( '3. project name' );
				for(var key in data.categories){
					liHtml += '<li><a href="/index.php?/explore/projects/'+$projectType.find('a.selected').attr('rel')+'/'+data.categories[key].category_url_name+'/" rel="'+data.categories[key].category_url_name+'">'+data.categories[key].category+'</a></li>';
				}
				$projectCategory.addClass('active').find('ul.dropdown').html(liHtml);
			} else { //retrieved new names
				$projectName.addClass('reveal').find('span.title').html( '3. project name' );
				$projectCategory.find('span.title').html( $projectCategory.find('a.selected').html() );
				for(var key in data.names){
					liHtml += '<li><a href="/index.php?/explore/projects/'+$projectType.find('a.selected').attr('rel')+'/'+$projectCategory.find('a.selected').attr('rel')+'/'+data.names[key].project_url_name+'" rel="'+data.names[key].project_url_name+'">'+data.names[key].project+'</a></li>';
				}
				$projectName.addClass('active').find('ul.dropdown').html(liHtml);
				
			}
		}, 'json');
		
	}
	
	$('#projectType .dropdown li a').live('mouseenter', function(e){
		e.preventDefault();
		var $this = $(e.target);
		if (!$this.data('init')) {  
			$this.data('init', true);  
			$this.hoverIntent(
				function(){  
					clicked = 'type';
					$projectType.find('.loading').removeClass('loading');
					$projectCategory.find('.loading').removeClass('loading');
					$projectName.find('.loading').removeClass('loading');
					
					$projectType.find('a.selected').removeClass('selected');
					$projectCategory.removeClass('active').find('ul.dropdown').html('');
					$projectName.removeClass('active').find('ul.dropdown').html('');
	
					$this.addClass('loading').addClass('selected').parent().parent().addClass('loading');
					
					getNav({ 'type': ($projectType.find('a.selected').attr('rel') === undefined)? type: $projectType.find('a.selected').attr('rel') , 'category':$projectCategory.find('a.selected').attr('rel'), 'clicked':clicked });
				},  
				function(){  
					/* mouseout logic */  
				}
			);  
			$this.trigger('mouseover');  
		} 
	}).live('click', function(e){
		e.preventDefault();
		var $this = $(e.target);
		clicked = 'type';
		$projectType.find('.loading').removeClass('loading');
		$projectCategory.find('.loading').removeClass('loading');
		$projectName.find('.loading').removeClass('loading');
		
		$projectType.find('a.selected').removeClass('selected');
		$projectCategory.removeClass('active').find('ul.dropdown').html('');
		$projectName.removeClass('active').find('ul.dropdown').html('');
		
		$this.addClass('loading').addClass('selected').parent().parent().addClass('loading');
		
		getNav({ 'type': ($projectType.find('a.selected').attr('rel') === undefined)? type: $projectType.find('a.selected').attr('rel') , 'category':$projectCategory.find('a.selected').attr('rel'), 'clicked':clicked});
	});
	
	$('#projectCategory .dropdown li a').live('mouseenter', function(e){
		e.preventDefault();
		var $this = $(e.target);
		if (!$this.data('init')) {  
			$this.data('init', true);  
			$this.hoverIntent(
				function(){  
					clicked = 'category';
					$projectType.find('.loading').removeClass('loading');
					$projectCategory.find('.loading').removeClass('loading');
					$projectName.find('.loading').removeClass('loading');
					
					$projectCategory.find('a.selected').removeClass('selected');
					$projectName.removeClass('active').find('ul.dropdown').html('');
	
					$this.addClass('loading').addClass('selected').parent().parent().addClass('loading');
					
					getNav({ 'type': ($projectType.find('a.selected').attr('rel') === undefined)? type: $projectType.find('a.selected').attr('rel') , 'category':$projectCategory.find('a.selected').attr('rel'), 'clicked':clicked });
				},  
				function(){  
					/* mouseout logic */  
				}
			);  
			$this.trigger('mouseover');  
		} 
	}).live('click', function(e){
		e.preventDefault();
		var $this = $(e.target);
		clicked = 'category';
		$projectType.find('.loading').removeClass('loading');
		$projectCategory.find('.loading').removeClass('loading');
		$projectName.find('.loading').removeClass('loading');
		
		$projectCategory.find('a.selected').removeClass('selected');
		$projectName.removeClass('active').find('ul.dropdown').html('');

		$this.addClass('loading').addClass('selected').parent().parent().addClass('loading');
		
		getNav({ 'type': ($projectType.find('a.selected').attr('rel') === undefined)? type: $projectType.find('a.selected').attr('rel') , 'category':$projectCategory.find('a.selected').attr('rel'), 'clicked':clicked });
	});
	
	$('#projectCategory, #projectName').live('mouseover', function(e){
		$projectCategory.removeClass('reveal')	;
		$projectName.removeClass('reveal')	;
	});
	
	
	$('.cycle #gallery').cycle({
		//pause				:true,
		fx					:'scrollHorz',
		easing				:'easeOutCubic',
		speed				:850,
		timeout				:0,
		pauseOnPagerHover	:true,
		next				:'#next, .projects #gallery',
		prev				:'#prev',
		after				: function onAfter(curr,next,opts) {
									var caption = '(image ' + (opts.currSlide + 1) + ' of ' + opts.slideCount + ')';
									$('#totalImages').html(caption);
									$nextProject = $("#container aside .nextProject");
									if((opts.currSlide + 1) == opts.slideCount && $nextProject.length > 0){
										$('#realnext').click(function(){
											$('#next').unbind('click');
											window.location = $("#container aside .nextProject").attr('href');
										}) 
									} else {
										$('#realnext').unbind('click');	
									}
								}
	});
})
