		/**
		*	Load the feedlist
		*	@param {None}
		*	@return 
		*/
		var loadFeedsListener = new Object();
		var instance = this;
		var global_reference_to_this;
		
		function onLoad(obj){
			global_reference_to_this.onLoad(obj);
		}
		
		function jsonFlickrFeed(obj){
			global_reference_to_this.onLoad(obj);
		}
		/**
		 * Called when the manager wants to notify you of a significant process
		 * @param {Object} loaderManagerErrorObject
		 */
		loadFeedsListener.onOperationError = function(loaderManagerErrorObject){
			outputStr = loaderManagerErrorObject.description;
			//instance.updateScreen(outputStr)
		}
		
		/**
		 * Called when data is received from a process
		 * @param {Object} loaderManagerObject
		 */
		loadFeedsListener.onData = function(loaderManagerObject){
			outputStr = loaderManagerObject.data.id + " : " + loaderManagerObject.data.success + "; " + loaderManagerObject.data.content;
			
			
			if(loaderManagerObject.data.success){
				if(loaderManagerObject.data.id == "tmstwitter"){
						instance.tmstwitter.showTwitter(loaderManagerObject.data.content);
				}		
			}
			else{
				//handle error
				if(loaderManagerObject.data.id == "tmstwitter"){ 
					instance.tmstwitter.noTwitter();
					
				}
			}
					
		}
		
		/**
		 * Handle clean-up
		 * @param {Object} loadManagerObject
		 */
		loadFeedsListener.onComplete = function(loadManagerObject){
			outputStr = "Operation Complete";
			feedsLoader.cancelTimer();
			feedsLoader.removeListener(this);
		}
			
		var feedsLoader = new newsi.JsodLoadManager(
			new Array(
{url:"http://twitter.com/statuses/user_timeline/14698606.json?callback=onLoad&count=1",name:"tmstwitter",callback:"onLoad"}
),
				5, 
				10, 
				true,
				false
			);

			
		feedsLoader.addListener(loadFeedsListener);
 
		function updateScreen(outputStr){
			document.getElementById("debug_output").innerHTML += outputStr + "<br />";
		}
		
		//////////////////////////////////////////////////////////////////////////////////
		
		
		
		function jsonDisplay(){
			this.dom=new newsi.HTML.DOM();
		};
		
		tmstwitter=new jsonDisplay();
		
		jsonDisplay.prototype.removeElement = function(el){
			var d = this.dom.gebid(el);
			d.parentNode.removeChild( d );
		}
		
		
		
		/*jsonDisplay.prototype.onProcessError = function(){
			this.noTwitter();
		}*/
		
		
		/* ###############################################################################  TWITTER */
		
		jsonDisplay.prototype.showTwitter = function(obj){
		
		
		
			var slot=this.dom.gebid("twitter");// Check the div is on the page
			if(slot==null) return;
			
			var id = obj[0].user.id;
			this.dom.gebid("twitter_status").innerHTML = obj[0].text;
			this.dom.gebid("twitter_time").innerHTML = this.relative_time(obj[0].created_at);
			
			/* Complete - remove script tag from head */
			this.removeElement("feedId_tmstwitter");

			
		}
		
		jsonDisplay.prototype.relative_time = function(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 < (45*60)) {
		      return (parseInt(delta / 60)).toString() + ' minutes ago';
		    } else if(delta < (90*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';
		    }
		 }
  		
		jsonDisplay.prototype.noTwitter = function(){
			var slot=this.dom.gebid("twitter");// Check the div is on the page
			if(slot==null) return;
			
			this.dom.gebid("twitter_status").innerHTML = "This content is temporarily unavailable. Please try again later";
			this.dom.gebid("twitter_time").innerHTML = "unavailable";
		}
