// JavaScript Document
jQuery(document).ready(function(){
	var picture = facebookFetch("http://graph.facebook.com/100000099565082");
	twitterFetch("http://twitter.com/status/user_timeline/MonklandMA.json?count=5&callback=?", picture);
});

function facebookFetch(url)
{
	jQuery.getJSON(url + '/feed?limit=4&callback=?',function(fbjson){
		var html = "<ul>";
		jQuery.each(fbjson.data,function(i,fb){
			html += '<li style="background-image:url(' + fb.icon + ')">';
			if(fb.link != undefined)
			{
				html += '<a href="' + fb.link + '" target="_blank">' + fb.message + '</a></li>';
			}
			else
			{
				html += fb.message + '</li>';
			}
		});
		html += "</ul>";
		jQuery('#facebook').animate({opacity:0}, 500, function(){
			html = '<img src="' + url + '/picture" class="head"><h3><a href="http://www.facebook.com/people/Monkland-Merchants/100000099565082?sk=wall">Monkland Merchants on <img src="images/facebook.gif"></a></h3><hr>' + html;
			jQuery('#facebook').html(html);
		});
		jQuery('#facebook').animate({opacity:1}, 500);
	});
	return url + '/picture';
}

function twitterFetch(url, user_pic)
{
	jQuery.getJSON(url,function(twtjson){
		var profile_image = '';
		var html = "<ul>";
		jQuery.each(twtjson,function(i, twt){
			html += '<li style="background-image:url(' + twt.user.profile_image_url + ')">' + twt.text.linkify() + ' <i>' + relative_time(twt.created_at) + '</i></li>';
		});
		html += "</ul>";
		jQuery('#twitter').animate({opacity:0}, 500, function(){
			html = '<img src="' + user_pic + '" class="head"><h3><a href="http://twitter.com/MonklandMA">Monkland Merchants on <img src="images/twitter.jpg"></a></h3><hr>' + html;
			jQuery('#twitter').html(html);
		});
		jQuery('#twitter').animate({opacity:1}, 500);
	});
}

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 dump(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects 
		for(var item in arr) {
			var value = arr[item];
			
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}
