/*
	Site:		Finite Productions Ltd http://www.finiteproductions.co.uk/
	File:		/assets/scripts/global.js
	Author:		Andrew Disley, Simplified http://simplified.co.uk/
	Copyright:	2009 Andrew Disley, Simplified http://simplified.co.uk/
	Version:	2009-10-06
----------------------------------------------- */

/*	Global Configuration
----------------------------------------------- */
var $j = jQuery;
var isIE6 = false;
var isSafari = false;

/*	Global Literal Object: Site-wide functions
----------------------------------------------- */
var Global = {

	/* Utility: Browser Tests / Specific Fixes/Hooks */
	utilBrowserTests : function() {

		/* Detect if User Agent is IE6 using object detection, apply fix for background flicker bug */
		if (typeof document.body.style.maxHeight == 'undefined') { isIE6 = true; try { document.execCommand('BackgroundImageCache', false, true); } catch(e) { } }

		/* Detect if User Agent is Safari, add class '.safari' to div#Container */
		if ($j.browser.safari) { isSafari = true; $j('div#Container').addClass('safari'); }

	},

	init : function() {

		var cc = this;

		cc.utilBrowserTests();

	}

};

/*	Twitter functions
----------------------------------------------- */
String.prototype.linkify = function() {
	return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {
		return m.link(m);
	});
};
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);

	var r = '';
	if (delta < 60) {
		r = 'a minute ago';
	} else if(delta < 120) {
		r = 'couple of minutes ago';
	} else if(delta < (45*60)) {
		r = (parseInt(delta / 60)).toString() + ' minutes ago';
	} else if(delta < (90*60)) {
		r = 'an hour ago';
	} else if(delta < (24*60*60)) {
		r = '' + (parseInt(delta / 3600)).toString() + ' hours ago';
	} else if(delta < (48*60*60)) {
		r = '1 day ago';
	} else {
		r = (parseInt(delta / 86400)).toString() + ' days ago';
	}

	return r;
}
function twitter_callback() {
	return true;
}

/*	DOM Ready events
----------------------------------------------- */
$j(function() {

	Global.init();

	if ($j('.twitter').length) {
		$j('.twitter a').append(' <span class="s-i-i"></span>').after('<ul></ul>');
		var url = 'http://twitter.com/status/user_timeline/finiteprods.json?count=1&callback=?';
		$j.getJSON(url, function(data){
			$j.each(data, function(i, item) {
				$j('.twitter ul').append('<li>' + item.text.linkify() + ' <time class="time" datetime="' + item.created_at + '">' + relative_time(item.created_at) + '</time></li>');
				$j('.twitter ul').height('80px').slideDown(400);
			});
		});
	}

	if ($j('.c-video').length) {
		$j('.c-video ul').tabs('.c-video > div', {current: 'active'}).history();
	}

	if ($j('body.services #Content').length) {
		$j('body.services #Content .service ul').slideUp();
		$j('body.services #Content').tabs("body.services #Content .service ul", {current: 'active', tabs: 'h3', effect: 'slide', fadeInSpeed: 600});
	}

});
