var DateHelper = {
  // http://37signals.com/svn/posts/1557-javascript-makes-relative-times-compatible-with-caching
  // Takes the format of "Jan 15, 2007 15:45:00 GMT" and converts it to a relative time
  // Ruby strftime: %b %d, %Y %H:%M:%S GMT
  time_ago_in_words_with_parsing: function(from) {
    var date = new Date;
    date.setTime(Date.parse(from));
    return this.time_ago_in_words(date);
  },
  
  time_ago_in_words: function(from) {
    return this.distance_of_time_in_words(new Date, from);
  },
 
  distance_of_time_in_words: function(to, from) {
    var distance_in_seconds = ((to - from) / 1000);
    var distance_in_minutes = Math.floor(distance_in_seconds / 60);
 
    if (distance_in_minutes == 0) { return 'less than a minute ago'; }
    if (distance_in_minutes == 1) { return 'a minute ago'; }
    if (distance_in_minutes < 45) { return distance_in_minutes + ' minutes ago'; }
    if (distance_in_minutes < 90) { return 'about 1 hour ago'; }
    if (distance_in_minutes < 1440) { return 'about ' + Math.floor(distance_in_minutes / 60) + ' hours ago'; }
    if (distance_in_minutes < 2880) { return '1 day ago'; }
    if (distance_in_minutes < 43200) { return Math.floor(distance_in_minutes / 1440) + ' days ago'; }
    if (distance_in_minutes < 86400) { return 'about 1 month ago'; }
    if (distance_in_minutes < 525960) { return Math.floor(distance_in_minutes / 43200) + ' months ago'; }
    if (distance_in_minutes < 1051199) { return 'about 1 year ago'; }
 
    return 'over ' + Math.floor(distance_in_minutes / 525960) + ' years ago';
  }
};

function dateStr(from) {
  return DateHelper.time_ago_in_words_with_parsing(from);
}

function statusLink(id) {
  return '<br><a href="http://www.twitter.com/isaacezer/statuses/5115232094">>></a> '
}
function twitterUser(obj, tDiv) {

    //start the ul	
    tDiv.innerHTML = "<ul>"	
    for (i=0;i<obj.length;i++) {
        var status = obj[i]
        var createdAt = status.created_at
	var text = status.text
	var user = status.user
        var userName = user.name
	var userURL = user.url
	var id = status.id
   	tDiv.innerHTML +="<li><strong>"+text+"</strong>"+statusLink(id)+"<span class='time'>"+dateStr(createdAt)+"</span> </li>";
	}	
    //and close the UL
    tDiv.innerHTML += "</ul>";
}

function userCallback( obj ) {
    //this is the div I'm writing the content to	
    var tDiv = document.getElementById("twitter")
    twitterUser (obj, tDiv)	
}

function mentionsCallback( obj ) {
    //this is the div I'm writing the content to	
    var tDiv = document.getElementById("isaacMentions");	
    twitterUser( obj, tDiv )
}

function makeRequest(url) {
    var twitterJSON = document.createElement("script"); 
    twitterJSON.type="text/javascript" 
    //here's the search URL
    twitterJSON.src=url
    document.getElementsByTagName("head")[0].appendChild(twitterJSON);
    return false;
}

function twitter() {
    makeRequest( "http://twitter.com/statuses/user_timeline/isaacezer.json?callback=userCallback&count=2" )
}
