/*
Name: Common
Version: 1.0
Description: Common functions used across the site.
*/


/**
 * Homepage Slideshow
 */
var slideshow = {
	timer : null,
	t : 0,

	init : function()
	{
		slideshow.show = $('#slideshow');
		slideshow.slides = $('#slideshow img');
		slideshow.slides.not(':first').hide();
		slideshow._automate();
	},

	_automate : function()
	{
		var most = slideshow.slides.length;
		target = $('#slideshow img:eq('+ slideshow.t +')');
		slideshow._slide(target);
		slideshow.t++;
		if ( slideshow.t == most )
			slideshow.t = 0;
		slideshow.timer = setTimeout( function(){ slideshow._automate() }, 6000 );
	},

	_stop : function()
	{
		slideshow.timer = clearTimeout(slideshow.timer);
	},

	_slide : function(el)
	{
		$(el).fadeIn('normal');
		$(slideshow.slides).not(':hidden').not(el).fadeOut('normal');
	}
}


/**
 * Portfolio Slider
 */
var portfolio = {
	
	index : 0,
	item_count : 0,
	
	init : function()
	{
		portfolio.port = $('#portfolio');
		portfolio.items = $('#portfolio .item');
		portfolio.nav = $('#portfolio_nav');
		portfolio.current = $('#portfolio .item:first');
		portfolio.items.not(portfolio.current).css({'left':'800px'});
		
		// Build items.
		var margin = (((640 - (portfolio.items.length * 10)) / portfolio.items.length) / 2);
		$(portfolio.items).each( function() {
			var target = this, title = $(this).find('h2').text();
			var link = $('<a>').attr('href','#').attr('title',title).bind( 'click', function() {
				portfolio._slide(this, target); return false;
			});
			var button = $('<li>').append(link).css({'margin-left':margin+'px', 'margin-right':margin+'px'}).addClass('item');
			$('#portfolio_nav li:first').after(button);
			portfolio.item_count++;
		});

		$('#portfolio_nav li.item a').popTip({
			showURL		: false,
			x			: 'center',
			y			: 'above',
			xAdjust		: 0,
			yAdjust		: 25
		});
		
		$('#portfolio_nav li.item a:first').click();
		$('#portfolio_nav #nav_prev a').bind( 'click', function(){
			var index = $('#portfolio_nav li.item a').index( $('#portfolio_nav li.item a.active') );
			var ind = (index == 0) ? (portfolio.item_count-1) : index-1;
			$('#portfolio_nav li.item a:eq('+ ind +')').click();
			return false;
		});
		$('#portfolio_nav #nav_next a').bind( 'click', function(){
			var index = $('#portfolio_nav li.item a').index( $('#portfolio_nav li.item a.active') );
			var ind = (index == (portfolio.item_count-1)) ? 0 : index+1;
			$('#portfolio_nav li.item a:eq('+ ind +')').click();
			return false;
		});
	},
	
	_slide : function( elem, target )
	{
		if( portfolio.current == target ) return false;

		var ind = $('#portfolio_nav li a').index(elem);
		$(elem).addClass('active');
		$('#portfolio_nav li a').not(elem).removeClass('active');
		
		var dir = (ind > portfolio.index) ? '-800px' : '800px';
		var start = (ind > portfolio.index) ? '800px' : '-800px';
		
		$(portfolio.current).stop().animate({'left':dir}, 'normal', 'easeOutCirc' );
		$(target).stop().css({'left':start}).animate({'left':'0px'}, 'normal', 'easeOutCirc' );
		
//		console.log( elem, ind, dir,  portfolio.current, elem );
		portfolio.index = ind;
		portfolio.current = target;
	}
}


var biotoggle = {
	
	init : function()
	{
		biotoggle.bios = $('.toggle');
		biotoggle.bios.each( function(){
			$(this).hide();
			var info = this;
			var link = $('<a>').attr('href','#').text('Read Details').bind('click', function(){
				$(info).toggle(0, function(){ 
					var txt = $(link).text() == 'Read Details' ? 'Hide Details' : 'Read Details';
					$(link).text(txt);
				});
				return false;
			});
			$(this).after(link);
		});
	}
}

/**
 * Initiate scripts on load.
 */
$(document).ready( function(){
	
	// Navigation
	$('#main_navigation>ul>li>ul').show();
	$('#main_navigation>ul').accordion( {
		event		: 'click',
		collabsible	: true,
		animated	: 'jswing',
		duration	: 350,
		autoHeight	: false,
		active		: '.selected',
		navigation	: true,
		changestart	: function(event, ui) {
			if( ui.newContent.length > 0 )
				$(ui.newHeader).addClass('active');
			$(ui.oldHeader).removeClass('active');
		}
	});
	
	// Slideshow
	slideshow.init();
	
	// Portfolio
	portfolio.init();

	// Bios toggle
	biotoggle.init();
	
});

