if (typeof(CLARKSON) == 'undefined') {
	CLARKSON	= {};
	CLARKSON.UI	= {};
}

CLARKSON.UI.Global	= function()
{
	var contenttrack;
	var contenttruck;
	
	var imagetrack;
	var imagetruck;

	var init	= function() {
		$('body').addClass('js');
		//fixGlobalNav();
		initSlider();
		initNav();
		cssSelectors();
		
		
		/*$(window).resize(function(){
			fixGlobalNav();
		}).load(function(){
			fixGlobalNav();
			
		});*/
	};

	var initSlider = function() {

		//content
		$('<div id="contenttrack"><div id="contenttruck"></div></div>').appendTo('#slider');
		contenttrack = $('#contenttrack');
		contenttruck = $('#contenttruck');
		var max_h = contenttrack.outerHeight(true);
		$('.slidetext').appendTo(contenttruck).each(function(i, o){
			var obj = $(o);		
			if (obj.outerHeight(true) > max_h) {
				max_h = obj.outerHeight(true);
			}
		});
		$('#contenttrack, #contenttruck, .slide').css('height', max_h);
		
		//images
		$('<div id="imagetrack"><div id="imagetruck"></div></div>').prependTo('#slider');
		imagetrack = $('#imagetrack');
		imagetruck = $('#imagetruck');
		//$('.slide img').find('li:first').addClass('selected');
		var max_h = imagetrack.outerHeight(true);
		$('.slide .img').appendTo(imagetruck).each(function(i, o){
			var obj = $(o);
			var id = obj.attr('id');
			obj.attr('id', 'image-'+id);
			$('body').prepend('<span id="'+id+'" class="anchor"></span>');
			if (obj.outerHeight(true) > max_h) {
				max_h = obj.outerHeight(true);
			}
		});
		$('#imagetrack, #imagetruck, .image, .col2').css('height', max_h);
		
		$('div.slide').remove();
		

		
	};
	
	var doScroll = function() {
		var id = getUrlFragmentID();
		var slide = $('#'+id+'-text');
		var image = $('#image-'+id);
		
		/*
		contenttruck.animate({
			left: 0-(slide.position().left)
		}, 1600, 'easeInOutCubic');
		*/	

		var nl = 0-slide.position().left;

		contenttruck.fadeOut(function(){
			contenttruck.css({
				left: nl
			}).fadeIn(function(){
				if (jQuery.browser.msie) this.style.removeAttribute('filter');
			});
		});
		
		
		
		imagetruck.animate({
			left: 0-(image.position().left)
		}, 1200, 'easeInOutCubic');
	};
	
	var getUrlFragmentID = function() {
		var path = document.location.toString();
		if (path.match('#')) {
		  return path.split('#')[1];
		}
		return false;		
	};

	var setUrlFragmentID = function(val) {
		val = val.split('#')[1];
		val = val.replace('#', '');
		var path = document.location.toString();
		if (path.match('#')) {
		  path = path.split('#')[0];
		}
		document.location = path + '#' + val;		
	};
		
	var initNav = function() {
		$('<ul id="slidernav"></ul>').prependTo('#slider');
		
		$('#slider h2.n').each(function(i, o){
			var obj = $(o);
			var id = obj.parents('.slidetext').attr('id').replace('slide-', '').replace('-text', '');
			$('#slidernav').append('<li><a href="#'+id+'">'+obj.text()+'</a></li>');
		});
		
		$('#slidernav a').click(function(e){
			e.preventDefault();
			var self = $(this);	
			setUrlFragmentID(self.attr('href'));
			$('#slidernav li').removeClass('selected');
			$('#slidernav a[href='+self.attr('href')+']').parent('li').addClass('selected');
			doScroll();
		});
		
		
		if (getUrlFragmentID()) {
			window.scroll(0, 0);
			$('ul#slidernav a[href=#'+getUrlFragmentID()+']').parent('li').siblings().removeClass('selected').end().addClass('selected');
			doScroll();
		}

	};
	
	var fixGlobalNav = function() {
		var header = $('#header .inner');
		var ml = $('#main').position().left;
		header.css({
			'margin-left': ml,
			'margin-right': 0,
			'width': 'auto'
		});

		var nav = $('#nav ul').css('width', $('body').width()-($('#nav').position().left + ml));
		
		
		
	};
	
	var cssSelectors = function() {
		/*$("ul.thumbs li:nth-child(6n)").addClass("sixth");
		$("ul#videolist li:nth-child(6n)").addClass("sixth");*/
		$("#header #nav ul li:last-child , #header #nav ul li:last-child, #slidernav li:last-child").addClass("last");
		$('h1+h2').addClass("stacked");
		var h = $("#main .inner").outerHeight(false);
		$("#main .content").css({"min-height" : h});
	};
	
	

	
	return {
		init: init
	};
	
}();

jQuery.extend( jQuery.easing,
{
	easeInOutCubic: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
	}
});


jQuery(function($) { CLARKSON.UI.Global.init(); });
