(function($){

	/*-----------------------------------------------------------
		Exists
	-----------------------------------------------------------*/
	$.fn.exists = function()
	{
		return jQuery(this).length > 0;
	};
	
	
	/*-----------------------------------------------------------
		setup_scroll
	-----------------------------------------------------------*/
	function setup_scroll()
	{
		var header = $('.header');
		var home = $('.background_effect');
		
		var scrollTop = 0;
		var best_y = 0;
		
		$(window).scroll(function(){
			
			scrollTop = $(window).scrollTop();
			best_y = $(window).height() - 200;
			
			// header
			var header_opacity = (scrollTop-200) / -200;
			header.css({
				'opacity'	:	header_opacity
			});
			
			
			// body
			var home_y = parseInt(scrollTop/2);
			home.css({
				'background-position'	:	'50% -'+home_y+'px'
			});
			
			
			// left stuff
			$('#tweets .tweet').each(function(i){
				
				var o_top = $(this).offset().top - best_y;
				var margin = 0;
				var opacity = 1;
				
				if(scrollTop < o_top)
				{
					margin = (o_top - scrollTop)/2;
				}
				
				if(margin > 0)
				{
					opacity = 1 - (margin / 75);
				}
				
				$(this).css({
					'margin-left'	:	'-'+margin+'px',
					'opacity'		:	opacity
				});
				
			});
			
			// left stuff
			$('#posts .post').each(function(i){
				
				var o_top = $(this).offset().top - best_y;
				var margin = 0;
				var opacity = 1;
				
				if(scrollTop < o_top)
				{
					margin = (o_top - scrollTop)/2;
				}
				
				if(margin > 0)
				{
					opacity = 1- (margin / 75);
				}
				
				$(this).css({
					'margin-left'	:	margin+'px',
					'opacity'		:	opacity
				});
				
			});
			
		});
		
	}
	
	
	function setup_twitter()
	{
		var tweets = $('#tweets');
		var url = "http://twitter.com/status/user_timeline/elliotcondon.json?count=6&callback=?";
		
		$.getJSON(url, function(data){
		    $.each(data, function(i, item) 
		    {
		    	//console.log(item);
		    	
		    	var text = item.text.split(' ');
		    	
		    	for(var i = 0; i < text.length; i++)
	  			{
	  				if(text[i].substr(0, 1) == "@")
	  				{	
	  					var user = text[i].substr(1);
	  					var link = '<a href="http://twitter.com/'+user+'/">'+text[i]+'</a>';
	  					text[i] = link;
	  				}
	  				if(text[i].substr(0, 7) == "http://")
	  				{	
	  					text[i] = '<a href="'+text[i]+'">'+text[i]+'</a>';
	  				}
	  			}
	  			text = text.join(' ');
		    	
		    	var tweet = $('<div class="tweet"><div class="inner">'
		    		+ '<p>'+text+'</p>'
                    + '<span class="meta">'
                    + '<a href="http://twitter.com/elliotcondon/status/'+item.id+'">' 
                    + relative_time(item.created_at) 
                    + '</a> via ' 
                    + item.source
                    + '</span>'
                    + '</div></div>');
		    	
		    	tweets.append(tweet);
		    });
		});

		
	}
	
	
	function setup_posts()
	{
		var posts = $('#posts');
		var url = "http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q=http://blog.elliotcondon.com/feed/";
		
		$.getJSON(url, function(data){
		    $.each(data.responseData.feed.entries, function(i, item) 
		    {
		    	//console.log(item);
		    	
		    	var post = $('<div class="post"><div class="inner">'
		    		+ '<div class="date"><span class="day">'+item.publishedDate.substr(5,2)+'</span><span class="month">'+item.publishedDate.substr(8,3)+'</span></div>'
		    		+ '<div class="text"><h2><a href="'+item.link+'">'+item.title+'</a></h2>'
                    + '<p>'+item.contentSnippet.substr(0,110)+' <a href="'+item.link+'">...</a></p></div>'
                    + '</div></div>');
		    	
		    	posts.append(post);
		    	
		    });
		});


	}
 
 	/*-----------------------------------------------------------
		relative_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);
	  
	  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;
	}
	
	
	/*-----------------------------------------------------------
		setup_email
	-----------------------------------------------------------*/
	function setup_email()
	{
		$('a#email_elliot').click(function(){
			document.location = 'mailto:e@elliotcondon.com';
    		return false;
		})	
	}
	
	
	/*-----------------------------------------------------------
		Document Ready
	-----------------------------------------------------------*/
	$(document).ready(function()
	{
		setup_scroll();
		setup_twitter();
		setup_posts();
		setup_email();
		
		$(window).trigger('scroll');
		
	});
	
	
	$(window).load(function(){
		
		$(window).trigger('scroll');
		
	});

	
})(jQuery);
