var ProgrammeDetail = new Class({
	Implements: [Options, Events, Log],
	Extends: Page,
	
	// Constants
	MAX_ATTENDEES: 30,
	ATTENDEES_COLS: 5,
	
	// Variables
	eventFacebookId: null,


	// Class instances
	tellAFriendOverlay: null,
	attendForm: null,
	commentForm: null,

	initialize: function( name, element, options )
	{
		this.enableLog();
		//this.disableLog();
		this.log("ProgrammeDetail::initialize(" + name + ", " + element + ", " + options + ")");

		// Invoke parent method
		this.parent( name, element, options );

		// Event data
		this.eventId = this.element.get('class').split('event-')[1].split(' ')[0];
		this.eventFacebookId = this.element.getElement('#event-data-form input[name=event-facebook-id]').value;
		
		// Tell a friend
		var eventFacebookPage = this.element.getElement('#event-data-form input[name=event-facebook-page]').value;
		var eventName = this.element.getElement('#event-data-form input[name=event-name]').value;
		var eventDate = this.element.getElement('#event-data-form input[name=event-date]').value;
		var eventMessage = this.element.getElement('#event-data-form input[name=event-message]').value;
		var event = {
			id: this.eventId,
			facebook: eventFacebookPage,
			name: eventName,
			date: eventDate,
			message: eventMessage
		};

		this.log("this.eventId: " + this.eventId);
		this.log("this.eventFacebookId: " + this.eventFacebookId);
		this.log("evenFacebookPage: " + eventFacebookPage);
		this.log("evenName: " + eventName);
		this.log("evenDate: " + eventDate);
		this.log("evenMessage: " + eventMessage);

		// Header event item
		var header = this.element.getElement('.header');
		var eventItem = new EventItem(header);

		// Attend form
//		this.attendingContainer = this.element.getElement('.attending .people');
//		this.initAttendForm();
		var attendOptions = {
			maxAttendees: this.MAX_ATTENDEES,
			attendeesCols: this.ATTENDEES_COLS,
			attendingText: 'Ik ga ook!',
			declinedText: 'Ik ga niet meer'
		};
		var attendContainer = this.element.getElement('.attending');
		if(attendContainer)
		{
			this.attendForm = new AttendForm(attendContainer, this.eventFacebookId, attendOptions);
		}
		
		// Invite button
		this.tellAFriendOverlay = new OverlayTellAFriendProgramme(event);
		this.element.getElement('.invite-friends .invite').addEvent('click', function(event) {
			event.preventDefault();

			this.tellAFriendOverlay.show();

		}.bind(this));

		// Comments
		var commentsContainer = this.element.getElement('.event-comments');
		var commentsRequestUrl = this.application.getConfig().requestPath.programme.comment;
		this.commentForm = new CommentForm( commentsContainer, commentsRequestUrl, this.eventId );
	}

});
