new Asset.css('/css/fest/dynamic.css');

window.addEvent('load', function() {
	var intro = new Class ({
		initialize: function() {
			this.orderForm = $('EventAddForm');
			this.intro = $('intro');
			
			this.orderForm.addClass('hide');
			
			//EventDeliveryMethod;
			
			
			this.choice = new Element('div', {'class': 'country_choice'}).inject(this.intro, 'top');
			
			this.benelux = this.intro.getElement('.benelux').addClass('hide').getElement('h2').inject(this.choice).addClass('benelux').addEvent('click', function(e){
				this.international.removeClass('selected');
				this.benelux.addClass('selected');
				this.intro.getElement('div.benelux').removeClass('hide');
				this.intro.getElement('div.international').addClass('hide');
				
				this.orderForm.removeClass('hide');
				
				$('EventDeliveryMethod').removeClass('hide');
				this.orderForm.getElement('label[for=EventDeliveryMethod]').removeClass('hide');
				
				if (this.EventDeliveryMethod) this.EventDeliveryMethod.destroy();
			}.bind(this));
			
			this.international = this.intro.getElement('.international').addClass('hide').getElement('h2').inject(this.choice).addClass('international').addEvent('click', function(e){
				this.international.addClass('selected');
				this.benelux.removeClass('selected');
				this.intro.getElement('div.benelux').addClass('hide');
				this.intro.getElement('div.international').removeClass('hide');
				
				this.orderForm.removeClass('hide');
				
				$('EventDeliveryMethod').addClass('hide');
				this.orderForm.getElement('label[for=EventDeliveryMethod]').addClass('hide');
				
				this.eventDeliveryMethodValue = $('EventDeliveryMethod').getElement('option').get('value');
				
				if (!this.EventDeliveryMethod) this.EventDeliveryMethod = new Element('input', {"type": "hidden", "value":this.eventDeliveryMethodValue, "name":"data[Event][deliveryMethod]"}).inject(this.orderForm);
			}.bind(this));
		}
	});
	
	var form = new Class ({
		initialize: function() {
			this.overview = $('overview');
			this.generate_description();
			this.activate_formitems();
		},
		generate_description: function() {
			this.arrow = new Element('div', {
				'id' : 'arrow'
			});
			this.arrow.injectBefore('overview');

			this.desc = new Element('div', {
				'id' : 'description'
			});
			this.desc.injectBefore('overview');
			
			this.desc_content = new Element('div', {
				'class' : 'content'
			});
			this.desc_content.injectInside(this.desc);
		},
		activate_formitems: function() {	
			this.overview.addEvent('mousemove', function(e){
				position = e.client.y-16+ document.body.scrollTop
							+ document.documentElement.scrollTop
				
				if (position < this.desc.getPosition().y + 2) position = this.desc.getPosition().y + 2;
				if (position > this.desc.getPosition().y + this.desc.getSize().y - 36) position = this.desc.getPosition().y+ this.desc.getSize().y - 36;
				
				this.arrow.set('styles', {
				    'top': position+'px'
				});
				
				this.resize_desc();
				
			}.bind(this));
			
			this.overview.addEvent('mouseenter', function(e) {
				this.desc.setStyle('visibility', 'visible') ;
				this.arrow.setStyle('visibility', 'visible');
				this.resize_desc();
			}.bind(this));
			
			this.overview.addEvent('mouseleave', function(e) {
				this.desc.setStyle('visibility', 'hidden') ;
				this.arrow.setStyle('visibility', 'hidden');
			}.bind(this));

			$$('tr','form_rw').each(function(formitem) {
				if (formitem.getProperty('class') != 'header') {
					formitem.addEvent('mouseenter', function(e){
						this.desc_content.set('html', formitem.getLast().innerHTML);
						
					}.bind(this));
				}
			}.bind(this));
		},
		resize_desc: function() {
			if (this.overview.getSize().y >= this.desc.getSize().y) {
				 this.desc.setStyle('height', this.overview.getSize().y+'px');	
			}
			else {
				 this.desc.setStyle('height', 'auto');						
			}
		}
	});

	if ($('overview')){
		new form;
	}
	
	if ($('intro')) {
		new intro;
	}
});