
	
var dp_opts =  { 
	dateFormat: 'dd/mm/yy', 
	showAnim: 'slideDown',
	minDate: '2d',
	maxDate: '+2y',
	showOtherMonths : false,
	showOn: 'button', 
	buttonImage: PATHFIX+'img/cal-grey.gif', 
	buttonImageOnly: true
};

$(function(){ 
	$('.filtermenu').submit( jumpto );
	$('.datepicker').find('select').change( function(){ Datepicker.updateHidden(); } );
	$('input[name=search-availability]').click( toggleAvail );

	var me = {};
	
	var opts = jQuery.extend( true, {}, dp_opts );
	opts.beforeShow = function(inp){ if(inp.value==''){
		var d = $('input[name=departure]').val();
		if(d){ $(inp).datepicker('option', 'defaultDate', Datepicker.dateConvert(d)); }
		else return {};
	} };
	opts.onSelect = function(txt){
		var $sel = $(this).closest('tr').find('select');
		var sp = txt.split('/');
		$sel.eq(0).val(sp[0]);
		$sel.eq(1).val(sp[1]+'/'+sp[2]);
	}
//	opts.beforeShowDay = function(date){ return me.beforeShowDay(date); };
	opts2 = jQuery.extend( true, {}, opts );
	opts2.beforeShow = function(inp){ if(inp.value==''){
		var d = $('input[name=arrival]').val();
		if(d){ $(inp).datepicker('option', 'defaultDate', Datepicker.dateConvert(d)); }
		else return {};
	} };
	$('#inp_arrival').datepicker( opts );
	$('#inp_departure').datepicker( opts2 );
});


function jumpto(e)
{
	var f = e.target;
	var a = f.elements.area.value;
	var t = f.elements.type.value;
	var arr = f.elements.arrival.value;
	var dep = f.elements.departure.value;
	arr = arr.split('/'); arr.reverse(); arr = arr.join('');
	dep = dep.split('/'); dep.reverse(); dep = dep.join('');
	
	// check that "unset" is not selected
	if(arr.length==8 && dep.length==8){
		if(arr==dep){
			alert('Arrival and departure on the same day');
			return false;
		}
		if(arr>dep){
			alert('Departure before arrival');
			return false;
		}
	}
	
	if(!Index) return true;
	var url;
	if(Index[a]){
		if(Index[a][t]!==undefined) url = Index[a][t];
		else if(Index[a][0]!==undefined) url = Index[a][0];
	}
	if(url===undefined && Index[0]){
		if(Index[0][t]!==undefined) url = Index[0][t];
		else url = Index[0][0];
	}
	if(url!==undefined) f.action = Index.stem+url;
	handleFormTranslation(e);
	return true;
}

function toggleAvail(e)
{
	if(parseInt(e.target.value)) $('.datepicker').removeClass('fade').find('select').attr('disabled',false);
	else $('.datepicker').addClass('fade').find('select').attr('disabled',true);
}

function doReset(obj)
{
	$(obj).closest('form')
		.find('input[type=hidden]').val('').end()
		.find('select').val(0);
}

var Datepicker = {
	convertDate : function(s)
		{
			var b = s.split('-'); 
			if(b.length==3) return new Date(1*b[0],1*b[1]-1,1*b[2]);
			return null;
		},
	dateConvert : function(s)
		{
			var b = s.split(/\D/); 
			if(b.length==3) return new Date(1*b[2],1*b[1]-1,1*b[0]);
			return null;
		},
	updateHidden : function()
	{
		var $c = $('.datepicker').find('select');
		var mon = {};
		var vals = { arr : '', dep : '' };
		var $sel = $c.each(function(){
			vals[ this.name.substr(0,3) ] += this.value+'/';
		});
		$('#inp_arrival').val( vals.arr.length==11 ? vals.arr.substr(0,10) : '' );
		$('#inp_departure').val( vals.dep.length==11 ? vals.dep.substr(0,10) : '' );
	}
};
