jQuery(document).ready(function(){
	if ( jQuery('#fastsearch').length == 1 ) {
		jQuery(fastsearchData.airports).each(function(i,el){
			jQuery('#fastsearch-airport').append('<option value="'+el.id+'">'+el.name+'</option>');
		});

		for ( var i = 0; i < fastsearchData.regions.length; i++ ) {
			var destination = fastsearchData.regions[i];
			jQuery('#fastsearch-destination').append('<option value="'+destination.id+'">'+destination.name+'</option>');
		}

		jQuery('#fastsearch-region').addClass('grouped');
		for ( var j = 0; j < fastsearchData.regions.length; j++ ) {
			var destination = fastsearchData.regions[j];
			var optgroup = jQuery('#fastsearch-region').append('<optgroup label="'+destination.name+'"></optgroup>');

			for ( var k = 0; k < fastsearchData.subregions[destination.id].length; k++ ) {
				var region = fastsearchData.subregions[destination.id][k];
				optgroup.append('<option value="'+region.id+'">'+region.name+'</option>');
			}
		}

		jQuery('#fastsearch-destination').bind({
			'change': function(e){
				var selectedDestination = jQuery(this).val();
				jQuery('#fastsearch-region').empty().append('<option value="0">alle Regionen</option>').removeClass('grouped');
				if ( selectedDestination != 0 ) {
					for ( var i = 0; i < fastsearchData.subregions[selectedDestination].length; i++ ) {
						var region = fastsearchData.subregions[selectedDestination][i];
						jQuery('#fastsearch-region').append('<option value="'+region.id+'">'+region.name+'</option>');
					}
				} else {
					jQuery('#fastsearch-region').addClass('grouped');
					for ( var j = 0; j < fastsearchData.regions.length; j++ ) {
						var destination = fastsearchData.regions[j];
						var optgroup = jQuery('#fastsearch-region').append('<optgroup label="'+destination.name+'"></optgroup>');

						for ( var k = 0; k < fastsearchData.subregions[destination.id].length; k++ ) {
							var region = fastsearchData.subregions[destination.id][k];
							optgroup.append('<option value="'+region.id+'">'+region.name+'</option>');
						}
					}
				}
			}
		});

		jQuery('.tabs a').bind({
			'click': function(e){
				e.preventDefault();
				var target = jQuery(this).attr('href').replace('#','');
				switch (target){
					case "last-minute":
						jQuery('#fastsearch').attr('action', formAction.lastMinute);
						jQuery('.advanced-search a').attr('href', advancedSearchTarget.lastMinute);
					break;
					case "inclusive":
						jQuery('#fastsearch').attr('action', formAction.inclusive);
						jQuery('.advanced-search a').attr('href', advancedSearchTarget.inclusive);
					break;
				}
				jQuery('.tabs .active').removeClass('active');
				jQuery(this).parent().addClass('active');
			}
		});
		jQuery('.tabs a:first').trigger('click');

		jQuery('#fastsearch').submit(function(e){
			e.preventDefault();
			var locationTarget = jQuery(this).attr('action');
			var destination = jQuery('#fastsearch-destination');
			var region = jQuery('#fastsearch-region');
			var airport = jQuery('#fastsearch-airport');
			var duration = jQuery('#fastsearch-duration');
			var adults = jQuery('#fastsearch-adults');
			var child_1 = jQuery('#fastsearch-child-1');
			var child_2 = jQuery('#fastsearch-child-2');
			var child_3 = jQuery('#fastsearch-child-3');
			var startdate = jQuery('#fastsearch-startdate');
			var enddate = jQuery('#fastsearch-enddate');

			var parameter = "&showresult=1";
			if ( destination.is(':visible') && destination.val() != 0 && region.is(':visible') && region.val() == 0 ) parameter += "&topRegion=" + destination.val();
			if ( region.is(':visible') && region.val() != 0 ) {
				parameter += "&topRegion=" + region.val() + "&detail=hotel";
			} else {
				parameter += "&detail=zielgebiet";
			}
			if ( airport.is(':visible') && airport.val() != 0 ) parameter += "&abflughafen=" + airport.val();
			if ( duration.val() != 0 ) parameter += "&dauer=" + duration.val();
			parameter += "&personen=";
			if ( adults.val() != 0 ) parameter += adults.val() + ";";
			if ( child_1.val() != 0 ) parameter += child_1.val() + ";";
			if ( child_2.val() != 0 ) parameter += child_2.val() + ";";
			if ( child_3.val() != 0 ) parameter += child_3.val() + ";";
			if ( startdate.val() != '' ) {
				var splittedStartDate = startdate.val().split('.');
				parameter += "&termin=" + new Date(splittedStartDate[2],splittedStartDate[1]-1,splittedStartDate[0]).getTime() / 1000;
			}
			if ( enddate.val() != '' ) {
				var splittedEndDate = enddate.val().split('.');
				parameter += "&ruecktermin=" + new Date(splittedEndDate[2],splittedEndDate[1]-1,splittedEndDate[0]).getTime() / 1000;
			}

			location.href = locationTarget + encodeURI(parameter);
		});
	}
});
