	$("document").ready( function() 
	{
		$("#select2010").bind('change', function() { goToArchive( 2010, $("#select2010").val() ) });
		$("#select2009").bind('change', function() { goToArchive( 2009, $("#select2009").val() ) });
		$(window).scroll(moveLeftNav);
		$.getJSON("http://twitter.com/statuses/user_timeline/cheeryobs.json?callback=?&count=3", 
		twitterCallback);
	})
	
	function moveLeftNav()
	{
		var yValOfContent = $("#content")[0].offsetTop;	
		if ( $("#nav").height() < $(window).height() )
		{
			var scrollDist = Math.max( $("body")[0].scrollTop - yValOfContent, 0 );
			$('#nav').stop().animate({"marginTop": scrollDist + "px"}, "slow" );
		}
		else
		{
			$('#nav').stop().animate({"marginTop": "0px"}, "slow" );
		}
	}
	function goToArchive(year,month)
	{
		if ( month > 0)
		{
			window.location.href = "http://www.cheeryobservations.com/"+ year + "/" + month;
		}
	}
	
	
	function twitterCallback(twitters) {
	  for (var i=0; i<twitters.length; i++){
	    var username = twitters[i].user.screen_name;
	    var status = twitters[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>';
	    });
	    $('#twitter').append('<li><span>'+status+'</span> <a class="timestamp" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id+'">'+relative_time(twitters[i].created_at)+'</a></li>');
	  }
	  ;
	}

	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';
	  }
	}

