
var ArrivalDay;
var ArrivalMonth;
var ArrivalYear;
var ArrivalDate;
var DepartureDay;
var DepartureMonth;
var DepartureYear;
var DepartureDate;
var AantalDagen;
var Vandaag;

function SetWaarden(form)
{
 	Vandaag 		= new Date();

	ArrivalDay 		= form.arrivalday.options	[form.arrivalday.selectedIndex].value;
	ArrivalMonth 	= form.arrivalmonth.options	[form.arrivalmonth.selectedIndex].value -1;
	ArrivalYear 	= form.arrivalyear.options	[form.arrivalyear.selectedIndex].value;

	ArrivalDate		= new Date( ArrivalYear, ArrivalMonth, ArrivalDay);

	//afvangen als de datum niet bestaat bv 31 feb
	if (ArrivalDate.getMonth() != ArrivalMonth)
	{
		ArrivalDate		= new Date( ArrivalYear, ArrivalMonth + 1, 0);
	}
	
	ArrivalDate.setHours(22); //ivm overgang zomer en wintertijd
	
	if (soort != "ARR")
	{
		AantalDagen 	= form.aantaldagen.options[form.aantaldagen.selectedIndex].value
	
		DepartureDay 	= form.departureday.options		[form.departureday.selectedIndex].value;
		DepartureMonth 	= form.departuremonth.options	[form.departuremonth.selectedIndex].value -1;
		DepartureYear 	= form.departureyear.options	[form.departureyear.selectedIndex].value;
		DepartureDate	= new Date(DepartureYear, DepartureMonth, DepartureDay);

		//afvangen als de datum niet bestaat bv 31 feb
		if (DepartureDate.getMonth() != DepartureMonth)
		{
			DepartureDate		= new Date( DepartureYear, DepartureMonth  + 1, 0);
		}
	}
}

function ChangeArrival(form, t)
{
	SetWaarden(form);

	if (soort != "ARR")
	{
		var NewDepartureDate = new Date();
		NewDepartureDate.setTime( ArrivalDate.getTime() + ( 86400000 * AantalDagen ) ) ;
			
			if (NewDepartureDate.getFullYear() > Vandaag.getFullYear())	{
			
				/*ArrivalDate.setTime( DepartureDate.getTime() - ( 86400000 * AantalDagen ) ) ;
				form.arrivalday.selectedIndex 	= ArrivalDate.getDate()-1;
				form.arrivalmonth.selectedIndex = ArrivalDate.getMonth();
				form.arrivalyear.selectedIndex 	= ArrivalDate.getFullYear()-Vandaag.getYear();*/
			}
		DepartureDate.setTime( ArrivalDate.getTime() + ( 86400000 * AantalDagen ) ) ;
		
		SetDagenCombo(form, form.departureday, DepartureDate.getMonth(), DepartureDate.getFullYear());
		
		//als maand veranderd?? Dan moet ook het cmb met dagen veranderen. Gaat nu fout.
		form.departureday.selectedIndex 	= DepartureDate.getDate()-1;
		form.departuremonth.selectedIndex 	= DepartureDate.getMonth();
		form.departureyear.selectedIndex 	= DepartureDate.getFullYear()-Vandaag.getFullYear();
		
		SetDagImage(document.images.imgDepartureDag, "departure", document.frmBoekData);
	}
	else
	{
		//Geen vertrek bij arrangementen
		/*if (ArrivalDate < Vandaag.getTime()-86400000)
		{
			form.arrivalday.selectedIndex 	= Vandaag.getDate()-1; /*-1 voor de selectedindex
			form.arrivalmonth.selectedIndex = Vandaag.getMonth();
			form.arrivalyear.selectedIndex 	= Vandaag.getFullYear()-Vandaag.getYear();
		}*/
	}
	
	SetDagenCombo(form, form.arrivalday, ArrivalDate.getMonth(),  ArrivalDate.getFullYear());
	SetDagImage(document.images.imgArrivalDag, "arrival", document.frmBoekData);
}
 
function ChangeDeparture(form, t)
{
 	SetWaarden(form);
		
	if ( /*DepartureDate < Vandaag.getTime()+86400000 ||*/ DepartureDate < ArrivalDate.getTime() + 86400000 )
	{
		DepartureDate.setTime( ArrivalDate.getTime() + ( 86400000 * AantalDagen ) ) ;

		form.departureday.selectedIndex 	= DepartureDate.getDate()-1;
		form.departuremonth.selectedIndex 	= DepartureDate.getMonth();
		form.departureyear.selectedIndex 	= DepartureDate.getFullYear()-Vandaag.getFullYear();
		
		var verschil = (DepartureDate / 86400000) - (ArrivalDate / 86400000);
		form.aantaldagen.selectedIndex = verschil-1;
	}

	else
	{
		var verschil = (DepartureDate / 86400000) - (ArrivalDate / 86400000);

		if ( verschil <= form.aantaldagen.length)
		{
			form.aantaldagen.selectedIndex = verschil-1;
		}
		else
		{			
			DepartureDate.setTime( ArrivalDate.getTime() + ( 86400000 * form.aantaldagen.length -1)) ;

			form.departureday.selectedIndex 	= DepartureDate.getDate();
			form.departuremonth.selectedIndex 	= DepartureDate.getMonth();
			form.departureyear.selectedIndex 	= DepartureDate.getFullYear()-Vandaag.getFullYear();
			
			form.aantaldagen.selectedIndex = form.aantaldagen.length-1;
		}
	}
	
	/**/
	SetDagenCombo(form, form.departureday, DepartureDate.getMonth(), DepartureDate.getFullYear());
		
	SetDagImage(document.images.imgDepartureDag, "departure", document.frmBoekData);
}
 
function ChangeAantalDagen(form)
{
	//Eerst de maand zetten
	SetWaarden(form);	
	
	DepartureDate.setTime( ArrivalDate.getTime() + ( 86400000 * AantalDagen ) ) 
		
	SetDagenCombo(form, form.departureday,  DepartureDate.getMonth(),  DepartureDate.getFullYear());
	
	form.departureday.selectedIndex = DepartureDate.getDate()-1;
	form.departuremonth.selectedIndex = DepartureDate.getMonth();
	
	SetDagImage(document.images.imgDepartureDag, "departure", document.frmBoekData);
}

var minYear=1900;
var maxYear=2100;


function aantalDagenInMaand(jaar , m) 
{
	return new Date(jaar, m+1 , 0).getDate();
}

function IsGeldigeDatum (dd, mm, yyyy) 
{
	return (dd <= aantalDagenInMaand(yyyy,mm)) && (mm >= 0) && (mm < 13) && (yyyy >= minYear) && (yyyy < maxYear);
}

function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function daysElapsed(date2,date1) {
    var difference =
        Date.UTC(y2k(date1.getYear()),date1.getMonth(),date1.getDate(),0,0,0)
      - Date.UTC(y2k(date2.getYear()),date2.getMonth(),date2.getDate(),0,0,0);
    return difference/1000/60/60/24;
}

function SetDagenCombo(form, DayCombo, Month, Year)
{
	var i, Selected, Aantal;
	
	Selected 	= DayCombo.selectedIndex;
	Aantal		= aantalDagenInMaand(Year , Month);
	
	if (Aantal <= Selected) 
		Selected = Aantal-1;

	removeAll(DayCombo);
		
	for (i=1;i<=Aantal;i++)
	{
		DayCombo.options[DayCombo.options.length] = new Option(i, i);
	}
	
	DayCombo.options[Selected].selected = true;	
}

function removeAll(selectList)
{
	var i = 0;
	lCount = selectList.length;

	for (i = lCount; i >= 0; i--)
	{
		selectList.options[i] = null;
	}
}

