var EventCalendarController = new Class({
	
	Extends: CalendarController,
	
	initialize: function(container, initCalendarDate, endCalendarDate, options)
	{
		this.parent(container, initCalendarDate, endCalendarDate, options);
		this.secondHeader 		= new Element("h1", {"class":"stepTitle"}).inject(this.container);
		this.secondTitleHeader	= new Element("span", {"class":"title", "html":"<span>Eventos durante las fechas del evento</span>"}).inject(this.secondHeader);
		this.eventsListWrapper = new Element("div", {id:"eventListContainer"}).inject(this.container);
		this.eventsListContainer = new Element("div", {id:"eventList"}).inject(this.eventsListWrapper);
		this.eventsList = new EventsList(this.eventsListContainer);
		$(document.body).addClass("events");
	},
	
	setCalendar: function(calendarObject)
	{
		this.calendar 	= new EventCalendar(calendarObject);
	},
	
	recoverData: function()
	{
		new Request.JSON({url:"public/datescontroller/getdates", onComplete: function(response){
			this.loaded();
			if($type(response) == "string")
			{
				var response = JSON.decode(response);
			}
			
			var falseResponse 	= ($defined(response.ANSWER.result) && response.ANSWER.result == false);
			if(falseResponse)
			{
				this.maximize(undefined, true);
				return false;
			}
			
			this.firstSelection = false;
			this.calendarDone(true);
			this.calendar.selections.createRange(response.ANSWER.result.init, response.ANSWER.result.end);
			this.calendar.rangeSelection(this.calendar.getCurrentRange());
			this.minimize();
			
		}.bind(this)}).send();
	},
	
	minimizeComplete: function()
	{
	},
	
	maximizeComplete: function()
	{
		if(!$defined(this.eventsList.scroll))
		{
			this.eventsList.scroll = new MooScroll();
			var firstElement = $$("#eventList ul.eventList li")[0];
			
			if(firstElement)
			{
				this.eventsList.scroll.smoothMooScroll.toElement(firstElement);
			}
			
			
		}
	}
	
});