	function get_selected_value( selected_object) 
	{
		var selected_values = [] ;
		
		for ( var i=0; i < selected_object.length; i++ )
			if ( selected_object.options[i].selected ) 
			{
				selected_values[ selected_values.length ]  = selected_object.options[i].value ;
				
			}
		
		if ( 0 == selected_values.length  )
			return null ;//nothing found
		else if ( 1 == selected_values.length  )
			return selected_values[0] ;//just one value
		else
			return selected_values ;		
	}
	
	function delete_leading_zero( str_number )
	{
		if ( 
				   ( str_number.length > 0 )
				&& ( '0' == str_number.substr( 0, 1 ) )
			)
			return str_number.substr( 1, str_number.length-1 ) ;
		else
			return str_number ;
	}
	
	function get_date( day_widget_name, ym_widget_name )
	{
		var flights_form = document.flight_form ;
		
		var day_object = flights_form.elements[ day_widget_name ] ;
		var ym_object = flights_form.elements[ ym_widget_name ] ;

		var ym = get_selected_value( ym_object ) ;

		var date = new Object() ;		
		date.day   = parseInt( delete_leading_zero( get_selected_value( day_object ) ) ) ;
		date.month = parseInt( delete_leading_zero( ym.substr( 0, 2 ) ) ) ;
		date.year  = parseInt( delete_leading_zero( ym.substr( 3, 4 ) ) ) ;
		
		return date ;
	}//function get_date

	function get_checked_value( radio_widget ) 
	{
		if ( undefined == radio_widget )
			return undefined ;
			
		for (var i = 0; i < radio_widget.length; i++) 
		{	
			if ( radio_widget[i].checked) 
			{
				return radio_widget[i].value
			}
		}
		
		return undefined ;
	}

	var to_check_dates = true ;
	
	function check_dates( can_dates_be_the_same_day )
	{
		
		if ( !to_check_dates )
		{
			return true ;
		}

		var form = document.flight_form ;
		if (
			   undefined != form.trip_type 
			&& 'one_way_trip' == get_checked_value( form.trip_type ) 
			)
		{
			return true ;//it's one-way trip: no use of checking it
		}
		
		
		var departure_date = get_date( 'from_mday', 'from_month_year' ) ;
		var return_date    = get_date( 'to_mday', 'to_month_year' ) ;
//alert(departure_date.day) ;
//alert(departure_date.month) ;
//alert(departure_date.year) ;
//alert(return_date.day) ;
//alert(return_date.month) ;
//alert(return_date.year) ;
//alert( can_dates_be_the_same_day ) ;
		var r = true ;//assume everything is alright
		r = 
			!(
				   ( departure_date.year > return_date.year ) 
				|| ( ( departure_date.year == return_date.year ) && ( departure_date.month > return_date.month ) )
				|| ( 
					   ( departure_date.year == return_date.year ) 
					&& ( departure_date.month == return_date.month ) 
					&& ( 
							(
								   can_dates_be_the_same_day
								&& departure_date.day > return_date.day 
							) 
						|| (
								   !can_dates_be_the_same_day
								&& departure_date.day >= return_date.day 
						   )
						)
					)
			)  ;

		if ( false == r )
		{
			if ( can_dates_be_the_same_day )
			{
				alert( 'Please, select right dates.\nThe departure date should be bigger or equal than return-date.' ) ;
			}
			else
			{
				alert( 'Please, select right dates.\nThe departure date should be bigger than return-date.' ) ;
			}
		}
		else
		{//r==true
			//check passengers number
			r = check_passengers_number( form ) ;
		}
		
		return r ; 
	}//function check_dates