$(document).ready(function() {

	// ie 6 flickering
	try {document.execCommand("BackgroundImageCache", false, true);} catch(err) {}

	// featured article hover effect
	if ($('#features ul li p.more a').length && $('#bottom ul.recent_posts p.more a').length) {
		$('#features ul li p.more a, #bottom ul.recent_posts p.more a').each(function() {
			var par_li = $(this).parent('p').parent('li');
			$(this).hover(function() {
				par_li.addClass('over');
			}, function() {
				par_li.removeClass('over');
			});
		});		
	}


	// portfolio nav
	if ($('#portfolio').length && $('.portfolio_list li').length) {
		var prev = $('<li><a>Previous</a></li>');
		prev.addClass('previous');
		prev.find('a').attr('href', '#');

		var next = $('<li><a>Next</a></li>');
		next.addClass('next');
		next.find('a').attr('href', '#');

		var nav = $('<ul></ul>');
		nav.addClass('portfolio_navigation');
		nav.append(prev).append(next);

		$('#portfolio').append(nav);

		var items = [];
		var j_items = $('.portfolio_list li');
		j_items.each(function(i) {items[i] = $(this);});

		j_items.hide();
		items[0].show();

		var prev_id = 0;
		var next_id = 0;
		next.click(function() {
			if (next_id == items.length-2) {
				next_id++;
				activateItem(next_id);
				prev_id++;
				deactivateLink(next);
			} else {
				next_id++;
				activateItem(next_id);
				prev_id++;
				activateLink(prev);
			}

			return false;
		});
		if (prev_id == 0) {deactivateLink(prev);}
		prev.click(function() {
			prev_id--;
			activateItem(prev_id);
			next_id--;
			activateLink(next);
			if (prev_id == 0) {deactivateLink(prev);}

			return false;
		});
	}

	function deactivateLink(link) {
		link.attr('id','inactive');
		link.find('a').removeAttr('href');
		link.unbind('click');
		}
	function activateLink(link) {
		link.attr('id','active');
		link.find('a').attr('href','#');
	}
	function activateItem(id) {
		j_items.hide();
		items[id].show();
	}


	// tabifier
	if ($('#bottom').length) {
		var bottom_nav = $('<ul class="bottom_navigation"></ul>');
		$('#bottom').prepend(bottom_nav);
	
		$('.tabify > li').each(function(i) {
			var title = $(this).children('h2').html();
			var clean_title = title.replace(' ','_').toLowerCase();

			var id = 'bot_'+clean_title+'_link';
			var tab = $('<li><a></a></li>');
			tab.attr('id', id);
			tab.find('a').attr('href', '#');
			bottom_nav.append(tab);
		
			var content = $(this).children('.tab_content');
			$('#bottom').append(content);
		
			content.addClass(clean_title).addClass('hide');
		
			tab.click(function() {
				tabActivator($(this));
				return false;
			});
			if (i==0 && !$.cookie('cur_tab')) {tabActivator(tab)};
			if ($.cookie('cur_tab') == clean_title) {tabActivator(tab)};
			
			// my stuff tab
			if (i==2) {
				tab.click(function() {loadDynamic()});
				if (tab.is('.active')) {loadDynamic()}
			}
			function loadDynamic() {
				loadLastfm();
			}
			function loadLastfm() {content.find('.lastfm .content').load('include/bottom/lastfm.html')}
			function loadFlickr() {content.find('.flickr .content').load('include/bottom/flickr.html')}
			function loadTwitter() {content.find('.twitter .content').load('include/bottom/twitter.html')}
			
			
			function tabActivator(tab) {
				// hide all
				bottom_nav.children('li').removeClass('active');
				$('.tab_content').addClass('hide');

				// show current
				content.removeClass('hide');
				tab.addClass('active');
				$.cookie('cur_tab', clean_title, {expires: 365});
			}		
		});
		$('.tabify').remove();
	}



	// sIFR
	var avenir = {src: '/sifr/avenir-85.swf', ratios: [9,1.16,16,1.09,24,1.06,37,1.04,74,1.02,1.01]};
	sIFR.activate(avenir);
	sIFR.replace(avenir, {
		selector: '#bottom h3',
		css: ['.sIFR-root { background-color: #6b4f2e; color: #ffffff; text-transform: uppercase; font-size: 10px; }']
	});
	sIFR.replace(avenir, {
		selector: '#sidebar h3',
		css: ['.sIFR-root { background-color: #ffffff; color: #333333; text-transform: uppercase; font-size: 11px; }']
	});
});



// twitter functions
function twitterCallback(twit) {
	var text = twit[0].text;
	var time = relative_time(twit[0].created_at);
	var twit_par = $('.twitter p');
	twit_par.html('<a><span class="twit"></span> <span class="time"></span></a>');
	twit_par.find('a').attr('href', 'http://twitter.com/thame/')
	twit_par.find('.twit').append(text);
	twit_par.find('.time').append(time);
}
function relative_time(time_value) {
	var values = time_value.split(" ");
	time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
	var parsed_date = Date.parse(time_value);
	var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
	var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
	delta = delta + (relative_to.getTimezoneOffset() * 60);

	if (delta < 60) {
		return 'less than a minute ago';
	} else if(delta < 120) {
		return 'about a minute ago';
	} else if(delta < (45*60)) {
		return (parseInt(delta / 60)).toString() + ' minutes ago';
	} else if(delta < (90*60)) {
		return 'about an hour ago';
	} else if(delta < (24*60*60)) {
		return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
	} else if(delta < (48*60*60)) {
		return '1 day ago';
	} else {
		return (parseInt(delta / 86400)).toString() + ' days ago';
	}
}
