	
function pullTweets(twitterID, count){
	var tweetAmt = count;
	var TweetHTML = "<ul>";
	var tweeturl = "http://twitter.com/statuses/user_timeline/" + twitterID + ".json?count=10&callback=?";

	$.ajax({
		url: tweeturl,
		cache: false,
		dataType: "json",
		timeout: 2000,
		success: function(d){
			
			$.each(d, function(i, item){
				if(i < tweetAmt){
					TweetHTML += "<li>";
					TweetHTML += "<span class='tweet'>" + linkify(item.text) + "<\/span>";
					TweetHTML += "<span class='date'>" + relative_time(item.created_at) + "<\/span>";
					TweetHTML += "<\/li>";
				}
			});

			TweetHTML += "<\/ul>";
			$(".twitter_feed .cont").html(TweetHTML);
			$(".twitter_feed .cont").removeClass("loading");
			$(".twitter_feed .cont").fadeIn();
		},
		error: function(XHR, textStatus, errorThrown){
			TweetHTML += "<h4>Sorry, Twitter is currently down.<\/h4>";
			$(".twitter_feed .cont").html(TweetHTML);
			$(".twitter_feed .cont").removeClass("loading");
			$(".twitter_feed .cont").fadeIn();
		}
	});
}


function pullWPPosts(count, truncateCount){
	var postAmt = count;
	var postHTML = "<ul>";
	var wpAPIurl = "http://blog.lockandmane.com/api/get_recent_posts/?json=1&count=3";

	$.ajax({
		url: wpAPIurl,
		cache: false,
		dataType: "jsonp",
		timeout: 2000,
		success: function(d){
			$.each(d.posts, function(i, item){
				postHTML += "<li>";
				postHTML += "<div class='photo'><a href='" + item.url + "'><img src='" + item.attachments[0].images.thumbnail.url + "' width='63' height='63' border='0'><\/a><\/div>";
				postHTML += "<div class='post_text'><a href='" + item.url + "'><h4 class='title'>" + item.title + "<\/h4><\/a>";
				var strippedContent = item.content.replace(/(<([^>]+)>)/ig,"");
				var truncateContent = strippedContent.substring(0, truncateCount);
				postHTML += "<div class='body_text'>" + truncateContent + "...<\/div>";
				postHTML += "<a href='" + item.url + "' class='link'>Continue Reading<\/a>";
				postHTML += "<\/div>";
				postHTML += "<div class='clearDiv'><\/div>";
				postHTML += "<\/li>";
			});

			postHTML += "<\/ul>";
			$(".wp_feed .cont").html(postHTML);
			$(".wp_feed .cont .body_text img").remove();
			$(".wp_feed .cont").removeClass("loading");
			$(".wp_feed .cont").fadeIn();
		},
		error: function(XHR, textStatus, errorThrown){
			postHTML += "<h4>Sorry, our blog is temporarily down.<\/h4>";
			$(".wp_feed .cont").html(postHTML);
			$(".wp_feed .cont").removeClass("loading");
			$(".wp_feed .cont").fadeIn();
		}
	});
}

function relative_time(time_value) {
        var values = time_value.split(" "),
            parsed_date = Date.parse(values[1] + " " + values[2] + ", " + values[5] + " " + values[3]),
            date = new Date(parsed_date),
            relative_to = (arguments.length > 1) ? arguments[1] : new Date(),
            delta = parseInt((relative_to.getTime() - parsed_date) / 1000),
            r = '';
        
        function formatTime(date) {
            var hour = date.getHours(),
                min = date.getMinutes() + "",
                ampm = 'AM';
            
            if (hour == 0) {
                hour = 12;
            } else if (hour > 12) {
                hour -= 12;
                ampm = 'PM';
            }
            
            if (min.length == 1) {
                min = '0' + min;
            }
            
            return hour + ':' + min + ' ' + ampm;
        }
        
        function formatDate(date) {
            var ds = date.toDateString().split(/ /),
                mon = ds[1],
                day = ds[2],
                dayi = parseInt(day),
                year = date.getFullYear(),
                thisyear = (new Date()).getFullYear(),
                th = 'th';
            
            // anti-'th' - but don't do the 11th, 12th or 13th
            if ((dayi % 10) == 1 && day.substr(0, 1) != '1') {
                th = 'st';
            } else if ((dayi % 10) == 2 && day.substr(0, 1) != '1') {
                th = 'nd';
            } else if ((dayi % 10) == 3 && day.substr(0, 1) != '1') {
                th = 'rd';
            }
            
            if (day.substr(0, 1) == '0') {
                day = day.substr(1);
            }
            
            return mon + ' ' + day + th + (thisyear != year ? ', ' + year : '');
        }
        
        delta = delta + (relative_to.getTimezoneOffset() * 60);

        if (delta < 5) {
            r = 'less than 5 seconds ago';
        } else if (delta < 30) {
            r = 'half a minute ago';
        } else if (delta < 60) {
            r = 'less than a minute ago';
        } else if (delta < 120) {
            r = '1 minute ago';
        } else if (delta < (45*60)) {
            r = (parseInt(delta / 60)).toString() + ' minutes ago';
        } else if (delta < (2*90*60)) { // 2* because sometimes read 1 hours ago
            r = 'about 1 hour ago';
        } else if (delta < (24*60*60)) {
            r = 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
        } else {
            if (delta < (48*60*60)) {
                r = formatTime(date) + ' yesterday';
            } else {
                r = formatTime(date) + ' ' + formatDate(date);
                // r = (parseInt(delta / 86400)).toString() + ' days ago';
            }
        }

        return r;
    }
    
function linkify(s) {
	var entities = {
		'"' : '&quot;',
		'&' : '&amp;',
		'<' : '&lt;',
		'>' : '&gt;'
	};
	
	return s.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/g, function(m) {
		return m.link(m);
	}).replace(/(^|[^\w])(@[\d\w\-]+)/g, function(d, m1, m2) {
		return m1 + '@<a href="http://twitter.com/' + m2.substr(1) + '">' + m2.substr(1) + '</a>';
	}).replace(/"&<>/, function (m) {
		return entities[m];
	});
}
