(function ($) {


	$.fn.exists = function()
	{
		return $(this).length>0;
	};
	
	
	$(document).ready(function()
	{
		setup_nav();
		setup_folio();
		setup_clients();		
	});
	
	
	
/*-  Title 
--------------------------------------------------------------------------------------------*/
	
		function clearText(theField) {
			if (theField.defaultValue == theField.value)
			theField.value = ''; }
					
		function addText(theField) {
			if (theField.value == '')
					theField.value = theField .defaultValue; }
					
		$(document).ready(function() {
					   
			$('#new1').css({opacity: 0}, 1000);
			$('#new2').css({opacity: 0}, 1400);
			$('#new3').css({opacity: 0}, 1800);
			$('#new4').css({opacity: 0}, 2200);
					   
			$('#new1').animate({opacity: 0}, 1000);
			$('#new2').animate({opacity: 0}, 1500);
			$('#new3').animate({opacity: 0}, 2000);
			$('#new4').animate({opacity: 0}, 2500);
	
			$('#new1').animate({left: '80px',opacity: 1}, 400);
			$('#new2').animate({left: '80px',opacity: 1}, 400);
			$('#new3').animate({left: '80px',opacity: 1}, 400);
			$('#new4').animate({left: '80px',opacity: 1}, 400);
		
 });
	
/*-  Navigation
--------------------------------------------------------------------------------------------*/
	
	function setup_nav()
	{
		// elements
		var nav = $('#nav');
		var nav_ul = $('#nav ul');
		var fake_nav = $('#black_navigation');
		var nav_orig_y = nav.position().top;

		// vars
		var window_y = 0;
		var nav_ul_visible = false;
		
		nav.find('h3').stop().css({'opacity' : '0'});
		
		$(window).scroll(function(){
			
			window_y = $(window).scrollTop();
			
			// fake nav
			if(window_y >= (nav_orig_y - 40))
			{
				
				if(!nav_ul_visible)
				{
					nav_ul_visible = true;
					
					nav.find('h2').animate({'margin-left' : '95px', 'opacity' : 0.5}, 300, function(){
						if(nav_ul_visible)
						{
							nav.find('h3').animate({'opacity' : '1'}, 300);
						}
					});
					
					fake_nav.css({'display' : 'none'});
					nav_ul.animate({'opacity' : 1}, 300);
				}
			}
			else if(window_y < (nav_orig_y - 40))
			{
				
				if(nav_ul_visible)
				{
					nav_ul_visible = false;
					
					nav.find('h3').stop().animate({'opacity' : '0'}, 300);
					nav.find('h2').animate({'margin-left' : '0px', 'opacity' : 1}, 300);
					
					fake_nav.css({'display' : 'block'});
					nav_ul.animate({'opacity' : 0}, 300);
				}
			}
			
			// nav
			if(window_y >= nav_orig_y)
			{
				nav.css({'position' : 'fixed', 'top' : 0});
			}
			else if(window_y < nav_orig_y)
			{
				nav.css({'position' : 'absolute', 'top' : 'auto'});
			}
			
		
		}).trigger('scroll');
		
		$('.nav a').click(function(){
			
			var id = $(this).attr('rel');
			if(!$(id).exists()){
				return true;
			}
			var scroll_y = $(id).offset().top;
			var minus = (id == '#folio') ? 50 : 35;
			
			if($('#folio_single').height() > 0)
			{
				$('#folio_close').trigger('click');
				setTimeout(function(){
					scroll_y = $(id).offset().top;
					$('body, html').stop().animate({'scrollTop' : scroll_y - minus}, 500);
				}, 500);
			}
			else
			{
				$('body, html').stop().animate({'scrollTop' : scroll_y - minus}, 500);
			}

			return false;
			
		});
	}
	

/*-  Portfolio
--------------------------------------------------------------------------------------------*/
	
	function setup_folio()
	{
		
		var folio = $('#folio');
		var folio_single = $('#folio_single');
		var folio_nav = $('#folio_nav');
		var ajax_response = $('#ajax_response');
		var folio_projects = $('#folio_projects');
		var temp_project = $('#temp_project');
		
		var active = false;
		var scroll_nav = true;
		var project_1 = false;
		var project_2 = false;
		
		folio_projects.find('.project').hover(function(){
			$(this).find('img').animate({opacity : 0}, 250);
		}, function(){
			$(this).find('img').animate({opacity : 1}, 250);
		});

		if(!folio_nav.exists())
		{
			return false;
		}
		
		folio_projects.find('.project a').click(function(){
			
			$(this).parent().addClass('active');
			
			var ajax_url = $(this).attr('href').replace('/projects/', '/projects-ajax/');
			
			var data = {
				url : ajax_url
			};
			
			load_project(data);
			
			return false;
			
		});
		

		function load_project(options)
		{
			
			var defaults = {
				direction	:	'left',
				url : "/folio-ajax/"
			};
			
			options  = $.extend(defaults, options);
			
			$.ajax({
				url: options.url,
				context: document.body,
				success: function(data){
					
					$('#folio_next, #folio_prev').removeClass('loading');
					
					temp_project.html(data);
					var call_limit = 0;
					
					function slide_in_content(){
						
						call_limit++;
						
						$('body, html').animate({'scrollTop' : folio_single.position().top - 50}, 500);
							
							if(temp_project.height() < 100)
							{
								// something has gone wrong!
								if(call_limit < 10)
								{
									setTimeout(function(){
								
										slide_in_content();
									
									}, 100); 
								}
								return false;
							}
							
							var new_height = temp_project.height() + 70; 
							new_height = temp_project.height() + 70;
							new_height = temp_project.height() + 70;
							
							folio_single.animate({'height' : new_height}, 500);
							
							if(active)
							{
								project_1 = project_2;
								
								project_2 = false;
	
								project_1.addClass('last_active');
								
								project_2 = $('<div class="project ' + options.direction + '"></div>');
								project_2.html(data);
								
								ajax_response.append(project_2);
								project_2.animate({'left' : '0%'}, 750, function(){
									project_1.remove();								
								});
														
							}
							else
							{
								ajax_response.find('.project').remove();
								
								project_2 = $('<div class="project"></div>');
								project_2.html(data);
								
								ajax_response.append(project_2);
								project_2.css({'left' : '0%'});
									
								$('.section_mask').animate({'height' : 'toggle'}, 500);
							}
							
							active = true;
					}
					
					setTimeout(function(){
					
						slide_in_content();
					
					}, 100); 
					
							
				}
			});
			
			
		}
		
		folio_nav.find('a#folio_close').click(function(){
			
			folio_projects.find('.project.active').removeClass('active');
			
			$('body, html').animate({'scrollTop' : folio.position().top - 50}, 500);
			
			close_project();
			
			return false;
			
					
		});
				

		function close_project()
		{

			folio_single.animate({'height' : 0}, 500, function(){
				active = false;
			});
			
			$('.section_mask').animate({'height' : 'toggle'}, 500);
			
		}
		
		

		folio_nav.find('a#folio_prev').click(function(){
			
			$(this).addClass('loading');
			
			var active = folio_projects.find('.project.active');
			if (active.length == 0) active = folio_projects.find('.project:first');
			
			var prev =  active.prev('.project').length ? active.prev('.project') : folio_projects.find('.project:last');

        	active.removeClass('active');
        	
        	prev.addClass('active');
			
			var ajax_url = prev.children('a').attr('href').replace('/projects/', '/projects-ajax/');
			
			var data = {
				url : ajax_url,
				direction : 'right'
			};
			
			load_project(data);
			
			return false;
			
					
		});
		
		folio_nav.find('a#folio_next').click(function(){
			
			$(this).addClass('loading');
			
			var active = folio_projects.find('.project.active');
			if (active.length == 0) active = folio_projects.find('.project:last');
			
			var next =  active.next('.project').length ? active.next('.project') : folio_projects.find('.project:first');

        	active.removeClass('active');
        	
        	next.addClass('active');
			
			var ajax_url = next.children('a').attr('href').replace('/projects/', '/projects-ajax/');
			
			var data = {
				url : ajax_url,
				direction : 'left'
			};
			
			load_project(data);
			
			return false;
			
		});
		
		
		$(window).scroll(function(){
			
			if(!active) return false;
			
			window_y = $(window).scrollTop();
			var folio_y = (folio_single.offset().top  + folio_single.height());
			
			if(window_y > (folio_single.position().top - 50))
			{
			
				folio_nav.css({'position' : 'fixed', 'top' : '50px'});
			}
			else
			{
				folio_nav.css({'position' : 'absolute', 'top' : '0px'});
			}
			
			var nav_y = (folio_nav.position().top + folio_nav.outerHeight());
			
			if(nav_y > folio_y)
			{
				folio_nav.css({'position' : 'absolute', 'top' : (folio_single.height() - folio_nav.outerHeight()) + 'px'});
			}
						
		});
		
		
	}
	
/*-  Clients
--------------------------------------------------------------------------------------------*/
	
	function setup_clients()
	{
		var clients = $('#clients');
		
		clients.find('.client a').hover(function(){
			$(this).find('img').animate({opacity : 0}, 250);
		}, function(){
			$(this).find('img').animate({opacity : 1}, 250);
		});
	}




	
	
})(jQuery);
