var Search = new Class({
	Implements: [Options, Events, Log],
	Extends: Page,
	
	// Variables
	form: null,

	// Class instances
	
	initialize: function( name, element )
	{
		this.enableLog();
		//this.disableLog();
		this.log("Search::initialize(" + name + ", " + element + ")");

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

		this.initForm();
		this.initEvents();
	},

	/*
	 * Init account form
	 */
	initForm: function()
	{
		this.log("Search::initForm()");

		var options = {
			showLoader: true,
			allowStatus: true,
			formErrorMessage: {
				allow: false//,
				//container: this.element.getElement('.search-box .form-message-container'),
				//allowClose: false
			}
		};

		var elementOptions = {
			hintText: 'Bijv. artiestnaam, tickets etc.'
		};

		var form = new Form($('search-form-big'), options);

		var searchElement = new FormElement(form, 'search', elementOptions);
		searchElement.addValidation(Form.REGEX_TEXT, 'Vul je zoekopdracht in');
		form.addElement(searchElement);

		// Add buttons
		var submitButton = new FormSubmitButton(form, '.button', {showLoader: true});
		form.addButton(submitButton);

		// Save form
		this.form = form;
	},

	initEvents: function()
	{
		this.log("Search::initEvents()");

		this.eventsContainer = this.element.getElement('.results');

		this.eventsContainer.getElements('.programme li').each(function(element, index) {
			var eventItem = new EventItem(element);
		}.bind(this));

		this.eventsContainer.getElements('.afterglow li').each(function(element, index) {
			var eventItem = new EventItem(element);
		}.bind(this));
	}


});
