function brussels_stepone_init(){
	$$('.user-brussels-pi3 input:not([class~=single_or_return])', '.user-brussels-pi3 select').each(function(elm){
		//elm.disable();
		Event.observe(elm, 'change', brussels_stepone_changeSelect);
	});
	
	$('user_brussels_pi3_single_or_return_1').checked=true;
	$$('.form-tabs a.return').invoke('addClassName', 'active');

$$('.user-brussels-pi3 a.single').first().observe('click', function(event){
 Event.stop(event);
 $('user_brussels_pi3_single_or_return_0').checked=true;
 $$('.form-tabs a').invoke('removeClassName', 'active');
 Event.findElement(event, 'a').addClassName('active');
 var arrivaldate_select = $$('.user-brussels-pi3 .arrivaldate');
if($F($('user_brussels_pi3_single_or_return_0')) == 0){
 arrivaldate_select.invoke('hide');
} else {
 arrivaldate_select.invoke('show');
}
});

$$('.user-brussels-pi3 a.return').first().observe('click', function(event){
 Event.stop(event);
 $('user_brussels_pi3_single_or_return_1').checked=true;
 $$('.form-tabs a').invoke('removeClassName', 'active');
 Event.findElement(event, 'a').addClassName('active');
 var arrivaldate_select = $$('.user-brussels-pi3 .arrivaldate');
if($F($('user_brussels_pi3_single_or_return_0')) == 0){
 arrivaldate_select.invoke('hide');
} else {
 arrivaldate_select.invoke('show');
}
});
	
	$$('.user-brussels-pi3 .radio input').invoke('observe', 'change', brussels_stepone_changeSelect);
	Event.observe('user_brussels_pi3_stepone_form', 'submit', brussels_validateFormData);
}

function brussels_steptwo_init(){
	Event.observe('user_brussels_pi3_steptwo_form', 'submit', brussels_validateFormData);
}

function brussels_stepthree_init(){
	Event.observe('user_brussels_pi3_stepthree_form', 'submit', brussels_validateFormData);
}

function brussels_stepone_changeSelect(event){
	Event.stop(event);
	
	elm = Event.findElement(event);
	
	if(elm.hasClassName('single_or_return')){
		var arrivaldate_select = $$('.user-brussels-pi3 .arrivaldate');
		$('user_brussels_pi3_departure').enable();
		if($F(elm) == 0){
			arrivaldate_select.invoke('hide');
		} else {
			arrivaldate_select.invoke('show');
		}
	} else if(elm.hasClassName('departure')){
		brussels_stepone_updateSelect('user_brussels_pi3_arrival', 'user_brussels_pi3_stepone_form');
	} else if(elm.hasClassName('arrival')){
		$$('.user-brussels-pi3 .departuredate').each(function(elm){
			elm.enable();
		});
	} else if(elm.hasClassName('departuredate')){
		if($F('user_brussels_pi3_single_or_return_1') == true){
			$$('.user-brussels-pi3 select.arrivaldate').each(function(elm){
				elm.enable();
			});
		} else {
			$('user_brussels_pi3_number_of_persons').enable();
		}
	} else if(elm.hasClassName('arrivaldate')){
		$('user_brussels_pi3_number_of_persons').enable();
	} else if(elm.hasClassName('number_of_persons')){
		$('user_brussels_pi3_stepone_submit').enable();
	}
}

function brussels_stepone_updateSelect(element, form){
	var form = $(form);
	var url = form.readAttribute('action');
	var parameters = $H(form.serialize(true));

	parameters.set('type', 543);
	parameters.set('user_brussels_pi3[action]', 'update');
	parameters.set('user_brussels_pi3[element]', element);
	
	new Ajax.Request(url, {
 		method: 'get',
 		parameters: parameters,
 		onSuccess: function(transport) {
			$(element).replace(transport.responseText);
			
			Event.observe(element, 'change', brussels_stepone_changeSelect);
			
			if(transport.responseText.endsWith('<!-- ENABLE_NEXT -->')){
				brussels_stepone_enableNext(element);
			}
		}
	});

}

function brussels_stepone_enableNext(current){
	if(current == 'user_brussels_pi3_arrival'){
		$$('.user-brussels-pi3 .departuredate').each(function(elm){
			elm.enable();
		});
	}
}

function brussels_validateFormData(event){
	Event.stop(event);
	
	form = Event.findElement(event, 'form');
	
	var url = form.readAttribute('action');
	var parameters = $H(form.serialize(true));

	parameters.set('type', 543);
	parameters.set('user_brussels_pi3[action]', 'validate');
	parameters.set('user_brussels_pi3[form]', form.readAttribute('id'));
	
	Lightview.show({
		href: url,
		rel: 'ajax',
		options: {
			autosize: true,
			topclose: false,
			keyboard: false, 
			overlayClose: false, 
			menubar: false,
			ajax: {
				method: 'get',
				parameters: parameters,
				evalScripts: true,
				onComplete: function(){
					$$('#lightview a.close').invoke('observe', 'click', function(event){
						Event.stop(event);
						Lightview.hide();
					});
					
					$$('#lightview a.submit_partner-form').invoke('observe', 'click', brussels_partnerForm);
				}
			}
		}
	});

}

function brussels_partnerForm(event){
	Event.stop(event);
	
	a = Event.findElement(event, 'a');
	
	var url = a.readAttribute('href');
	var parameters = 'type=543&user_brussels_pi3[action]=partner&user_brussels_pi3[show]=enter_flight_details'.toQueryParams();
	
	Lightview.show({
		href: url,
		rel: 'ajax',
		options: {
			autosize: true,
			topclose: true,
			keyboard: true,
			overflow: 'hidden', 
			overlayClose: false, 
			menubar: false,
			ajax: {
				method: 'get',
				parameters: parameters,
				onComplete: function(){
					$$('#lightview form').invoke('observe', 'submit', brussels_validateFormData);
				}
			}
		}
	});

}

document.observe('dom:loaded', function(){
	if($('user_brussels_pi3_stepone_form')){
		brussels_stepone_init();
	}
	if($('user_brussels_pi3_steptwo_form')){
		brussels_steptwo_init();
	}
	if($('user_brussels_pi3_stepthree_form')){
		brussels_stepthree_init();
	}
});