//-------------------------------
// Class
//-------------------------------

function EventCalendarApp() {
	
	var _self = this;

	//-------------------------------
	// Constants
	//-------------------------------
	
	_self.JSON_PATH = "/DesktopModules/RoseQuarter/Events/EventsFeedJSON.aspx?mode=";
	
	//-------------------------------
	// Properties
	//-------------------------------
	
	var _eventCalendarDataModel;
	
	var _eventCalendarView;
	
	var _data;
	var _location = "alphabetical";
	
	//-------------------------------
	// Constructor
	//-------------------------------
	
	$(function() {
		_eventCalendarDataModel = new EventCalendarDataModel();
		
		_eventCalendarView = new EventCalendarView();
		
		$(_eventCalendarDataModel).bind(_eventCalendarDataModel.DATA_COMPLETE, onDataComplete);
		$(_eventCalendarView).bind(_eventCalendarView.SORT, onSortClick);
		
		init();
	});
	
	//-------------------------------
	// Public Methods
	//-------------------------------
	
	//-------------------------------
	// Private Methods
	//-------------------------------
	
	function init() {
		
		_eventCalendarDataModel.loadJSON(_self.JSON_PATH + _location);
	}
	

	//-------------------------------
	// Listeners
	//-------------------------------
	
	function onDataComplete(event, data) {
		_data = data;
		
		_eventCalendarView.container = $("#eventListView");
		_eventCalendarView.deploy(data);

	}
	
	function onSortClick(event, item) {
		switch($(item).attr("id")) {
			case "sort-alphabet" :
				_location = "alphabetical";
				break;
			case "sort-date" :
				_location = "chronological";
				break;
		}
		
		_eventCalendarDataModel.loadJSON(_self.JSON_PATH + _location);
	}

	
	//-------------------------------
	// Getters/Setters
	//-------------------------------
	
	//_self.varName = function() { return "variable"; }
	//_self.varName = function(setter) { "variable" = setter; }
}

