/* Author: 

*/

// Menu script
jQuery('#'+page+'_page').addClass('current_page_item');


// Map Toggle
function toggleMap(){
	$('#mapbtn').toggleClass('closemap');
	if($('#map').is(':visible')){
		$('#map').slideUp();
	}else{
		$('#map').slideDown();
		$("body").animate({scrollTop: $("#mapbtn").offset().top});
	}	 
}

// Twitter stuff
var twitterUsername = 'HeathTax'; // Your twitter username
var tweetCount = 2;						// The number of tweets to show, set to 0 to prevent twitter loading

// Get the latest Tweets
function getTweets()
{	
	if (twitterUsername && tweetCount > 0) {
		(function() {
			var t = document.createElement('script'); t.type = 'text/javascript'; t.src = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' + twitterUsername + '&count=' + tweetCount + '&include_rts=1&callback=setTweets';
			var h = document.getElementsByTagName('head')[0]; h.appendChild(t);
		})();
	}
}

// Set the Tweets (callback from getTweets())
function setTweets(twitters)
{
	fetchedTweets = twitters;
	showTweets();
}

// Show the Tweets
function showTweets()
{	
	if (!(twitterUsername && tweetCount > 0)) {
		return;
	}
	
	var tweets = [];
	
	if (fetchedTweets == null) {
		if (fetchWaitCount < 50) {
			// The tweets haven't arrived yet try again in 200ms
			setTimeout(showTweets, 200);
			fetchWaitCount++;
			return;
		} else {
			// We've waited more than 10 seconds for the Tweets so bail out to stop an infinite loop
			tweets.push('<li><span>I spent too long looking for tweets so I\'m giving up</span></li>');
		}
	} else if (fetchedTweets.length > 0) {
		for (var i = 0; i < fetchedTweets.length; i++) {
			var username = fetchedTweets[i].user.screen_name;
			var status = fetchedTweets[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
				return '<a href="'+url+'">'+url+'</a>';
			}).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
				return reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
			});
			tweets.push('<li><span>'+status+'</span> <a style="font-size:85%" href="http://twitter.com/'+username+'/statuses/'+fetchedTweets[i].id+'">'+relative_time(fetchedTweets[i].created_at)+'</a></li>');
		}
	} else {
		// The returned tweets were empty
		tweets.push('<li><span>I couldn\'t find any tweets</span></li>');
	}
	
	
	$('#twitter_div').css('height', $('#twitter_div').height());
	$('#twitter_update_list').html(tweets.join(''));
	$('#twitter_div').wrapInner('<div/>');
	$('#twitter_div').animate({height: $('div:first', $('#twitter_div')).height()}, 400);
}

// Get the age of the Tweet relative to now
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 < (60*60)) {
		return (parseInt(delta / 60)).toString() + ' minutes ago';
	} else if(delta < (120*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';
	}
}


$(window).load(function() {
	getTweets();
});




















