// creating a new mini_news object




// creating a new mini_news loader object


mini_news.loader = function(o){

	this._self = this;
	
	
	//Check for dom
	this._dom = new newsi.HTML.DOM();
	if(!this._dom.isW3C()) return false;
		
	// Data source options
	this._feedURL	= o.feedURL;
	this._data		= null;
	this._self		= this;
		
	// Dataloader options
	this._callback		= o.callback;
	this._callbackName 	= o.callbackName;
	this._dataLoader	= null;
	
	this._elementId	= o.elementId;
	this._innerId = o.innerId;
	

	this._numElms = o.numElms;
	
	
	this._fallbackState 	= "";
	
	this._contentName = o.contentName;
	this._homepageURL = o.homepageURL;
	


}

mini_news.loader.prototype.init = function() {


	
	var _self = this;
	

	
	// Get initial state of container for fallback
	//this._fallbackState = newsi.gebid(this._elementId).innerHTML;
	this._fallbackState = 'This feed is currently unavailable, visit <a href="'+this._homepageURL+'">'+this._contentName+'</a> for the latest headlines.'
	

	
	// Show loader
	this._loading(true);



	this._dataLoader = new mini_news.JSONScriptFeed(this._feedURL, this._callback, this._callbackName);
	this._dataLoader.onSuccess( function(data){_self.success(data)} );
	this._dataLoader.onError(function(data){_self.error(data, {})});
	
	
	
	_self._dataLoader.load();
	
	
}

mini_news.loader.prototype.success = function(data) {
	
	this._data = data;
	
	
	this._loadStackRenderer({data:this._data,num:this._numElms,element:this._elementId,innerId:this._innerId});
				

}

mini_news.loader.prototype._updateContainer = function(content) {
	this._dom.gebid(this._elementId).innerHTML = content;
}

mini_news.loader.prototype._loadStackRenderer = function(o){
	
	var _data 			= o.data
	var _numstories 	= o.num
	var _element 		= o.element
	var _innerId		= o.innerId
	

	
	new StackRenderer({data:_data,rtelm:_element,nojs:_innerId}).init(_numstories);
	new ToggleMenu(_element );
	
}
mini_news.loader.prototype._loading = function(loading) {
	var loader = '<img src="http://newsimg.bbc.co.uk/newsbeat/img/mini_news_loader.gif" alt="Loading headlines..."></img>';
	if(loading) {
		// show loading bar
		this._updateContainer(loader);
		
	} else {
		
	}
}
mini_news.loader.prototype.error = function(data, errorHandler) {
	this._updateContainer(this._fallbackState);
}
mini_news.loader.prototype._updateContainer = function(content) {
	this._dom.gebid(this._innerId).innerHTML = content;
}


