//-------------------------------
// Class
//-------------------------------

function BlogShowcaseController() {

	var _self = this;

	//-------------------------------
	// Constants
	//-------------------------------
	
	var JSON_PATH = "/DesktopModules/BlogShowcaseScroller/BlogShowcaseFeed.aspx";
	
	//-------------------------------
	// Properties
	//-------------------------------
	
	var _bloggerNetworkDataModel;
	
	var _blogShowcaseView;
	
	var $countdown = { count : 0, interval : 4000, timer : null };
	
	//-------------------------------
	// Constructor
	//-------------------------------
	
	function init() {
		_bloggerNetworkDataModel = new BloggerNetworkDataModel();
		_bloggerNetworkDataModel.addEventListener({ onDataComplete : onShowcaseDataComplete });
		
		_blogShowcaseView = new BlogShowcaseView();
		_blogShowcaseView.addEventListener({ onCounterReset : onCounterReset });
		
		_bloggerNetworkDataModel.loadJSON(JSON_PATH);
	};
	
	
	//-------------------------------
	// Public Methods
	//-------------------------------
	
	//-------------------------------
	// Private Methods
	//-------------------------------
	
	function showcaseCountdown(event) {
		if($countdown.count > 4) $countdown.count = 0;
		_blogShowcaseView.update($countdown.count);
		
		$countdown.count++;
	};
	
	//-------------------------------
	// Listeners
	//-------------------------------
	
	function onShowcaseDataComplete(data) {
		_blogShowcaseView.deploy(data);
		showcaseCountdown();
		
		$countdown.timer = setInterval(showcaseCountdown, $countdown.interval);
	};

	function onCounterReset(index) {
		clearInterval($countdown.timer);
		
		$countdown.count = index + 1;
		$countdown.timer = setInterval(showcaseCountdown, $countdown.interval);
	};
	
	init();
};
