
var FlightSearchFilter = new Class({
	
	Implements : [Options],
	
	options : {
		baseUrl	: '',
		filterContainer: 'filters'
	},
	
	filterContainer : null,
	
	initialize: function(options)
	{
		this.setOptions(options);
		
		if($(this.options.filterContainer))
			this.filterContainer = $(this.options.filterContainer);
	},

	update : function(filters)
	{
		var result = '';
		result += this.getDaytime(filters.daytime);
		
		if(filters.returnDaytime)
			result += this.getReturnDaytime(filters.returnDaytime);
		
		result += this.getDeparture(filters.departure);
		result += this.getDestination(filters.destination);
		result += this.getStops(filters.stops);
		result += this.getAirline(filters.airline);
		result += this.getDepartureDate(filters.departureDate);
		
		if(filters.returnDate)
			result += this.getReturnDate(filters.returnDate);
		
		result += this.getBottom();
		
		this.filterContainer.set('html', result);
	},
	
	getDaytime : function(daytime)
	{
		var ret =
			'<div class="table2">'+
				'<div class="table-left"></div>'+
				'<div class="table-title">'+MooTools.lang.get('lang','flightSearch_filter_daytime_outbound')+'</div>'+
				'<div class="table-right"></div>'+
				'<div class="filter">'+
					'<ul>';
	
		daytime.each(function(element){
			ret += this.getLinkElement(element);
		},this);
		
		ret += '</ul>';
		
		return ret;
	},
	
	getReturnDaytime : function(daytime)
	{
		return this.getDefaultFilterHtml(MooTools.lang.get('lang','flightSearch_filter_daytime_inbound'), daytime);
	},
	
	getDeparture : function(departure)
	{
		return this.getDefaultFilterHtml(MooTools.lang.get('lang','flightSearch_filter_departure'), departure);
	},
	
	getDestination : function(destination)
	{
		return this.getDefaultFilterHtml(MooTools.lang.get('lang','flightSearch_filter_destination'), destination);
	},
	
	getStops : function(stops)
	{
		var ret = '';
		if(stops.length>2)
			ret = this.getDefaultFilterHtml(MooTools.lang.get('lang','flightSearch_filter_stops'), stops);
		
		return ret;
	},
	
	getAirline : function(airline)
	{
		var ret = '';
		if(airline.length>2)
			ret = this.getDefaultFilterHtml(MooTools.lang.get('lang','flightSearch_filter_airline'), airline);
		
		return ret;
	},
	
	getDepartureDate : function(departureDate)
	{
		var ret = '';
		if(departureDate.length>2)
			ret = this.getDefaultFilterHtml(MooTools.lang.get('lang','flightSearch_filter_departureDate'), departureDate);
		
		return ret;
	},
	
	getReturnDate : function(returnDate)
	{
		var ret = '';
		if(returnDate.length>2)
			ret = this.getDefaultFilterHtml(MooTools.lang.get('lang','flightSearch_filter_returnDate'), returnDate);
		
		return ret;
	},
	
	getLinkElement : function(element)
	{
		if(element.active==false)
			return '<li class="inactive">'+element.name+'</li>';
		
		if(element.selected==true)
			return '<li class="big"><span>'+element.name+'</span><span class="listprice">'+element.price+'</span></li>';
		
		return '<li><a href="'+this.options.baseUrl+'/'+element.url+'"><span>'+element.name+'</span><span class="listprice">'+element.price+'</span></a></li>';
	},
	
	getDefaultFilterHtml : function(title,filter)
	{
		var ret = '<div class="filter-line">'+title+'</div>';
		ret += '<ul>';
			filter.each(function(element){
				ret += this.getLinkElement(element);
			},this);
		ret += '</ul>';
		
		return ret;
	},
	
	getBottom : function()
	{
		var bottom =
			'<div class="corner-bottom">'+
				'<div class="corner-left"></div>'+
				'<div class="corner-right"></div>'+
			'</div>'+
		'</div>';
		
			return bottom;
	}
});
