var sections,slideTimer;
var fadeSpeed = 500;
var navHashControl = false;
var currentURI = '';
var navigating = false;

$(document).ready(function()
{	
	$('#logo').hide();
	//black_bg();
	// hide images!
	$('body').addClass('black');
	init_nav(); 
	init_text_links();
	check_path();
	$(window).bind('hashchange', function () {
		if(!navHashControl) {
			load_from_hash();
			_gaq.push(['_trackPageview', location.pathname]);
		}
		else navHashControl = false;
	});
	
	
	if(navigator.platform == 'iPad' || navigator.platform == 'iPhone' || navigator.platform == 'iPod')
	{
    	 $('#nav-container,#nav-bg').css('position','absolute');
    	 $('#nav-container,#nav-bg').css('bottom','auto');
    	 $('#nav-container,#nav-bg').css('top',($(window).height() - 130) + 'px');
    	 $(window).scroll(function()
    	 {
    	 	fixNav();
    	 });
    	 fixNav();
	};

});

var fixNav = function()
{
	var zoom = document.documentElement.clientWidth / window.innerWidth;
	var show = $('#images').is(':visible');
	if(!show)
	{
		if(zoom > 1)
		{
			var h = $(document).height() - 130;
			$('#nav-container,#nav-bg').css('top',h+'px');
		} else
		{
			var h = document.documentElement.clientHeight - 130;
			$('#debug').html(zoom);
			$('#nav-container,#nav-bg').css('top',h);
			var h = ($(window).height() - 130);
			var st = $(window).scrollTop() > 0 ? $(window).scrollTop() + 190 : 0;
			var pos = h + st;
			$('#nav-container,#nav-bg').css('top',pos+'px');
			navPos = pos;
		}
	} else {
		var h = $(window).height() - 130;
		$('#nav-container,#nav-bg').css('top',h+'px');
	}
}

var init_site = function()
{

}

var black_bg = function()
{
	$('#logo').fadeOut(fadeSpeed,function()
	{
		$('body').animate({backgroundColor: "#000000"},fadeSpeed);
		$('#nav-bg').animate({backgroundColor: "#000000"},fadeSpeed,function()
		{
			//$(this).hide();
		});
	});
}

var plain_bg = function()
{
	$('#nav-bg').animate({backgroundColor: "#a69c78"},fadeSpeed);
	$('body').animate({backgroundColor: "#a69c78"},fadeSpeed,function()
	{
		$('#logo').fadeIn();
	});
}

var check_path = function()
{
	var url = document.location.pathname;
	if(url.length > 1)
	{
		location = '/#' + url;
	}
}

var init_search = function()
{
	$('#search_text').each(function()
	{
		$(this).data('orig',$(this).attr('value'));
		$(this).focus(function()
		{
			if(this.value == $(this).data('orig')) this.value = '';
		});
		$(this).blur(function()
		{
			if(this.value == '') this.value = $(this).data('orig');
		});
	});
	
	$('#search-form').submit(function()
	{
		var q = $(this).children('input').attr('value');
		$.post('/ajax/search/' + doctype,{query:q,tagpath:tagpath},function(result)
		{
			$('#description').fadeOut(fadeSpeed,function()
			{
				$(this).html(result);
				init_text_links();
				$(this).fadeIn();
			});
		});
	});
}

var init_gallery = function()
{
	mainImage = $('#images img').first();
	fsImage = mainImage;
	fullscreen();
	if($('#images img').length > 1)
	{
		init_slideshow();
	} else {
		selectedLink = $('.image-nav a').first();
		selectedLink.addClass('selected');
		$('.image-nav a').click(function()
		{
			if(desc_open) hide_description();
			$('.image-nav a').removeClass('selected');
			$(this).addClass('selected');
			selectedLink = $(this);
		});
		//$('#logo').fadeIn();
	}
	// show images!
	mainImage.show();
	show_images();
}

var hide_images = function()
{
	$('#images').css('visibility','hidden');
}

var show_images = function()
{
	$('#images').hide().css('visibility','visible').fadeIn(fadeSpeed);
}

var init_slideshow = function()
{
	mainImage.show();
	var desc = mainImage.attr('alt');
	$('#captions').hide().html('<p>' + desc + '</p>').fadeIn(fadeSpeed);
	clearInterval(slideTimer);
	slideTimer = setInterval(function()
	{
		var next = mainImage.next('img');
		if(!next.length) next = $('#images img').first();
		var desc = next.attr('alt');
		
		$('#captions').fadeOut(fadeSpeed,function()
		{
			$('#captions').html('<p>' + desc + '</p>').fadeIn(300);
		});
		mainImage.fadeOut(fadeSpeed);
		fsImage = next;
		fullscreen();
		next.fadeIn(fadeSpeed,function()
		{
			mainImage = $(this);
		});
			//$('#logo').fadeIn();
	},6000);
}

var load_image = function(src,link)
{
	var newImage = new Image();
	$(newImage).load(function()
	{
		mainImage.fadeOut(fadeSpeed,function()
		{
			mainImage.attr('src',src).fadeIn(fadeSpeed);
		});
		
	});
	newImage.src = src;
	selectedLink = $(link);
}

var load_next_image = function()
{
	var next = selectedLink.next();
	if(next.length)
	{
		next.click();
	}
}

var load_prev_image = function()
{
	var prev = selectedLink.prev();
	if(prev.length)
	{
		prev.click();
	}
}

var init_text_links = function()
{
	$('#text a[target!="_blank"]').click(function(e)
	{
		if(!$(this).hasClass('blank'))
		{
			if(navigating) return false;
			navHashControl = true;
			var href = $(this).attr('href');
			e.preventDefault(); 
			//console.log('loading from inline');
			load_page(href);
			$('title').html($(this).attr('title') + ' &mdash; Dan Pearson Studio');
		}	
	});
}

var init_nav = function()
{
	//console.log('initialising navigation');
	$('#content').hide();
	$('#navigation ul ul').css('bottom','-200px');
	sections = $('#navigation li.section');
	$('#navigation a').unbind('click');
	$('#navigation a').each(function()
	{
		//console.log('adding click to: ' + $(this).attr('title'));
		$(this).bind('click',function(e)
		{
			if(navigating) return false;
			//alert('clicked ' + $(this).attr('title'));
			e.preventDefault();
			if(($(this).attr('href') == currentURI)) return 0;
			navHashControl = true;
			//$('#project-nav').fadeOut(300);
			$('#project-nav').detach();
			var parent = $(this).parent();
			parent.siblings('li').removeClass('selected').addClass('unselected');
			parent.removeClass('unselected');
			parent.addClass('selected');
			if(parent.hasClass('section')) {
				show_child(parent);
			} else { 
				//console.log('loading page from link: ' + $(this).attr('title'));
				load_page($(this).attr('href'));
				$('title').html($(this).attr('title') + ' &mdash; Dan Pearson Studio');
				show_child(parent);
			}
		});
	});
	
	
	$('h1 a').click(function(e)
	{
		if(navigating) return false;
		e.preventDefault();
		load_page($(this).attr('href'));
		hide_nav();
		$('title').html('Home &mdash; Dan Pearson Studio');
		$('#navigation li').removeClass('unselected');
	});
	
	load_from_hash();
}

var load_from_hash = function()
{
	var hash = location.hash.replace('#','');
	if(hash.length > 1)
	{
		load_page(hash);
		//$('#navigation a[href="' + hash + '"]').click();
		var parts = hash.split('/');
		var uri = '';
		var title = '';
		for(var i=1;i<(parts.length-1);i++)
		{
			uri += ('/' + parts[i]);
			var href = uri + '/';
			var linkObj = $('#navigation a[href="' + href + '"]');
			linkObj.parent().addClass('selected');
			linkObj.parent().siblings('li').addClass('unselected');
			linkObj.parent().parent().animate({	'bottom':'0px' },300,'easeOutQuad');
			title = linkObj.attr('title');
		}
		$('title').html(title + ' &mdash; Dan Pearson Studio');
	} else {
		$('#images img').imgpreload(function()
		{
			$('#content').css('visibility','hidden').show();
			init_gallery();
			$('#content').hide().css('visibility','visible');
			$('#content').fadeIn(300);
		});	
	}
}

var hide_nav = function()
{
	$('#project-nav').fadeOut(fadeSpeed,function()
	{
		$(this).detach();
	});
	$('#navigation ul li').each(function()
	{
		$(this).removeClass('selected').find('ul').animate({'bottom':'-200px' },fadeSpeed,'easeOutQuad');
	});
	
}

var show_child = function(parent)
{
	var others = parent.siblings('li').find('ul');
	if(others.length)
	{
		others.animate({'bottom':'-200px' },fadeSpeed,'easeOutQuad',function()
		{
			others.find('li').removeClass('selected').removeClass('unselected');
			parent.children('ul').animate({	'bottom':'0px' },fadeSpeed,'easeOutQuad');
		});
	} else
	{
		parent.children('ul').animate({	'bottom':'0px' },fadeSpeed,'easeOutQuad');
	}
}

var load_page = function(uri)
{
	//console.log('loading a page: ' + uri);
	navigating = true;
	clearInterval(slideTimer);
	location.hash = '#' + uri;
	currentURI = uri;
	clearInterval(slideTimer);
	$('#captions').fadeOut();
	$.post(uri,{ ajax:true },function(data)
	{
		var switcher = false;
		if($(data).find('#images').length)
		{
			
		} else {
			switcher = true;
		}
		$('#content').fadeOut(fadeSpeed,function()
		{
			$('#content').html(data);
			if(switcher)
			{
				//$('#logo').show();
				//$('body').removeClass('black');
				plain_bg();
			} else {
				black_bg();
				
			}
			if($('#content #project-nav').length)
			{
				var n = $('#content #project-nav').hide().detach();
				//console.log('appending project nav');
				$('#navigation').append(n);
				$('#navigation #project-nav').hide().fadeIn(fadeSpeed);
				//black_bg();
			} else {
				//plain_bg();
			}
			
			// hide images!
			hide_images();
			set_text_height();
			$('#content').fadeIn(fadeSpeed,function()
			{
				init_gallery();
				init_text_links();
				init_search();
				navigating = false;
			});
		});
			
	});
	
	//$('#nav-container').removeClass('text');
}

var set_text_height = function()
{
	var h = $(window).height();
	//alert(h + '/' + $('#text').height());
	if($('#text').height() < h) $('#text').css('height',h+'px');
}

var desc_open = false;

var show_description = function()
{
	$('.desc-link').addClass('selected');
	//$('#logo').fadeIn(fadeSpeed);
	plain_bg();
	$('#image-wrapper').fadeOut(fadeSpeed);
	desc_open = true;
	
}

var hide_description = function()
{
	$('.desc-link').removeClass('selected');
	black_bg();
	$('#image-wrapper').fadeIn(fadeSpeed);
	desc_open = false;
}
