/*
when any of the datefileds is changed
if arrival changed
	check if departure is at least 2 days ahead, if not, change
if departure changed
	check if arrival is at least 2 days before, if not, change
*/

/*
Update 2006-07-25: on special events change the date to 5 days difference
*/

function make_2_days_difference(set_which)
{
	if (set_which != 'arr' && set_which != 'dep')
	{
		return;
	}
	
	// dates of 5 day diff
	var specialdays = new Array();
	
	specialdays[0] = new Object();
	//// 23.12. to 6.1. 
	specialdays[0]['start'] = new Date(document.buscador.anho_llegada.value * 1 + 2000,12 * 1 - 1,23);  
	specialdays[0]['end'] = new Date(document.buscador.anho_llegada.value * 1 + 2001,1 * 1 - 1,6);  
	
	//specialdays[1] = new Object();
	//// 16.02. to 19.02. 
	//specialdays[1]['start'] = new Date(document.buscador.anho_llegada.value * 1 + 2000,2 * 1 - 1,16);  
	//specialdays[1]['end'] = new Date(document.buscador.anho_llegada.value * 1 + 2000,2 * 1 - 1,19); 

	
	var arr_date = new Date(document.buscador.anho_llegada.value * 1 + 2000, document.buscador.mes_llegada.value * 1 - 1, document.buscador.dia_llegada.value);
	var dep_date = new Date(document.buscador.anho_salida.value * 1 + 2000, document.buscador.mes_salida.value * 1 - 1, document.buscador.dia_salida.value);

	diff = (dep_date.getTime() - arr_date.getTime()) / 1000 / 60 / 60 / 24;
	changeto = 3;
	diff_value=4;
	
	for (var i = 0; i < specialdays.length; i++) {
	  if( ( arr_date.getTime() >= specialdays[i]['start'].getTime()-259200000 && 
	        arr_date.getTime() <= specialdays[i]['end'].getTime() ) 
		  || 
	      ( dep_date.getTime() >= specialdays[i]['start'].getTime() && 
	      dep_date.getTime() <= specialdays[i]['end'].getTime()+259200000 ) ){
	    changeto = 5;
		diff_value=6;
	  }
	}

	if (diff < diff_value)
	{
		switch (set_which)
		{
			case 'dep':
			var new_dep = new Date(document.buscador.anho_llegada.value * 1 + 2000, document.buscador.mes_llegada.value * 1 - 1, document.buscador.dia_llegada.value * 1 + changeto);
			document.buscador.anho_salida.value = new_dep.getFullYear().toString().substr(2, 2);
			document.buscador.mes_salida.value = new_dep.getMonth() + 1;
			document.buscador.dia_salida.value = new_dep.getDate();
			break;

			case 'arr':
			var new_arr = new Date(2000 + document.buscador.anho_salida.value * 1, document.buscador.mes_salida.value * 1 - 1, document.buscador.dia_salida.value * 1 - changeto);
			document.buscador.anho_llegada.value = new_arr.getFullYear().toString().substr(2, 2);
			document.buscador.mes_llegada.value = new_arr.getMonth() + 1;
			document.buscador.dia_llegada.value = new_arr.getDate();
			break;
		}
	}
}
