dbTwitterBadge = function(){
  
  		var badge = document.getElementById("dbTwitter");
  		if (badge) {
    		var link = badge.getElementsByTagName('a')[0];
			if(link) {
				
				//set a shortcut to the document head
				var head = document.getElementsByTagName("head")[0];
				//set the amount of tweets to be displayed.
				var numTweets = 1;
				
				//Find the user name and assemble the REST url to get the twitter data
      			var name = link.href.split('/');
	  			var resturl = 'http://twitter.com/statuses/user_timeline/' + name[name.length-1] + '.json?callback=dbTwitterBadge.show&count=' + numTweets;
      			
				//create the script element
				var script = document.createElement('script');
				script.src = resturl;
      			script.type = 'text/javascript';
			
				//Our callback function
      			function show(result){
        		
        			var tweets = document.createElement('ul');
        			tweets.id = "dbTweets";
			
					//alert(result.length);
			
        			for(var i=0,j=result.length;i<j;i++){
				
          				var username = result[i].user.screen_name;
          				var li = document.createElement('li');
          				var p = document.createElement('p');
          				p.innerHTML = '<strong>' + username + ' says:</strong> ' + result[i].text + ' ';
          				li.appendChild(p);
						
						p = document.createElement('p');
						p.className = "tweetTime";
          				p.appendChild(document.createTextNode('posted  ' + relative_time(result[i].created_at) + ' via '));
          				var link = document.createElement('a');
          				link.setAttribute('href','http://twitter.com/' + username + '/statuses/'+result[i].id);
          				link.appendChild(document.createTextNode('Twitter'));
          				p.appendChild(link);
						li.appendChild(p);
						
          				tweets.appendChild(li);
        			}	
        			badge.appendChild(tweets);
					
				}
				
			}
			
		}
	  
	  //relative_time method is taken from the original twitter badge
      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';
        }
		
      }

  return {
    show:show,
    init:function(){
      head.appendChild(script);
    }
  };
}();
dbTwitterBadge.init();