$(function () {
	

	
	Prolific.module('navigation', function () {
		var pages = [],
			$main = $('#main'),
			$wrapper = $('<div id="wrapper"><div id="slider"></div></div>').prependTo('body'),
			$slider = $('#slider', $wrapper).append($main),
			curPage = null;
			
			addPage({
				el: $main,
				url: null
			});
			$('#header').prependTo('body');
		
		function Page (specs) {
			var $el = specs.el || $('<div class="page" style="float: left;"></div>').load(specs.url + ' #main > *', function () {
				if (specs.url === 'testport.html') $.getScript('js/portfolio.js');
				if (specs.url === 'socialmedia.html') {
					$.getScript('http://twitter.com/javascripts/blogger.js', function () {
					 	$.getScript('http://twitter.com/statuses/user_timeline/weareprolific.json?callback=twitterCallback2&count=3');
					 });
				}
			});
					
			return {
				getIndex: function () {
					return specs.index || $el.prevAll('.page').length - 1;
				},
				getEl: function () {
					return $el;
				},
				goHere: function () {
					go(this.getIndex());
				}
			};
		}
		
		function go (i) {
			i = (typeof i === 'object'? i.getIndex(): i);
			if (i === curPage.getIndex()) return;
			
			var left = $wrapper.width() * i,
				speed = 2.5;
			$slider.animate({
				left: -left + 'px'
			}, Math.abs(curPage.getIndex() - i) * 960 / speed);
			//$wrapper.animate({
			//	height: pages[i].getEl().outerHeight() + 'px'
			//}, 400);
			curPage = pages[i];
			unselectSelected();
			return this;
		}
		
		function addPage (specs) {
			specs.index = pages.length;
			var self = Page(specs);
			pages.push(self);
			$slider.append(self.getEl());
			return self;
		}
		
		function unselectSelected () {
			$('#primary_nav li a.selected').removeClass();
		}
		
		function harvestPages () {
			$('#primary_nav a').not('#go_blog').each(function () {
				var $this = $(this),
					page = addPage({
						url: $this.attr('href')
					});
				$this.attr('href','javascript:void(0);');
				$this.click(function () {
					page.goHere();
					$this.addClass('selected');
				});
			});
		}
		
		return {
			go: go,
			init: function () {
				harvestPages();
				$main.css('float', 'left');
				$wrapper.css({
					width: $main.width() + 'px',
					overflow: 'hidden',
					position: 'relative',
				});
				$('#logo').live('click', function () {
					go(0);
					return false;
				});
				$('<img id="skyfade" src="images/skyfade.png"/>').appendTo($wrapper);
				
				$('#go_blog').tooltip('Launching in August!', {
					top: '25px'
				});
				
				curPage = pages[0];
			}()
		};
		
		
	});
	
});
