// JavaScript Document

function PaginaLaden() {
	Zet_AankomstDatum();
	Zet_VertrekDatum();
	document.Selectiecriteria.AankomstDag.focus();
	if (true)
		KortingVenster();
	}

//	---

function SubmitForm() {
	var isOK = true;
	if (isOK)
		with (document.Selectiecriteria.aankomst)
			if (selectedIndex>= 0)
				if (!(isOK = (options[selectedIndex].value != '-' )))
					alert("Ongeldige aankomstdatum");
	if (isOK)
		with (document.Selectiecriteria.vertrek)
			if (selectedIndex>= 0)
				if (!(isOK = (options[selectedIndex].value != '-' )))
					alert("Ongeldige vertrekdatum");
	return( isOK );}

//	---

function Chg_AankDag() {
	Zet_AankomstDatum();
	Chg_AankDatum(); }

// ---

function Chg_AankDatum() {
	Chg_VertDag(); }

// ---

function Chg_VertDag() {
	Zet_VertrekDatum(); }

// ---

function Zet_AankomstDatum() {
	var today= new Date();
	with (document.Selectiecriteria.AankomstDag)
		var aankomstDag = options[selectedIndex].value;
	with (document.Selectiecriteria.aankomst)
		var optLen= options.length;
		
	var the_array = weekArray( today, aankomstDag, false );
	SetOptionProp( document.Selectiecriteria.aankomst, the_array );

	//	Default waarde
	with (document.Selectiecriteria.aankomst)
		if (selectedIndex< 0 || selectedIndex== optLen- 1)
			{
			var DeflDatum= new Date(2002, 2, 30);	//	22 dec 2001
			if (today.getTime()< DeflDatum.getTime()) {
				var dagen= (str2WeekDag(aankomstDag) + 7 - DeflDatum.getDay()) % 7;
				var datum= new Date(DeflDatum.getFullYear(), DeflDatum.getMonth(), DeflDatum.getDate());
				datum.setDate( datum.getDate() + dagen );
				datumTekst= formatDatum(datum);
			
				var found= false;
				var n= 0;
				while (!found && n< options.length)
					if (datumTekst == options[n].text)
						found= true;
					else
						n+= 1;
				selectedIndex= (found)?n:0;
				}
			else
				selectedIndex= 0;	 }; }

//	---

function Zet_VertrekDatum() {
	with (document.Selectiecriteria.aankomst)
		aankomstDatum= mdyToDate( options[selectedIndex].value );
	with (document.Selectiecriteria.VertrekDag)
		var vertrekDag= options[selectedIndex].value;
	with (document.Selectiecriteria.vertrek)
		var optLen= options.length;

	var vroegsteDatum = new Date( aankomstDatum.getFullYear(), aankomstDatum.getMonth(), aankomstDatum.getDate())
	//	Minimaal 7 nachten blijven
	vroegsteDatum.setDate(vroegsteDatum.getDate() + 7);

	var the_array= weekArray( vroegsteDatum, vertrekDag, true);
	SetOptionProp( document.Selectiecriteria.vertrek, the_array );

	//	Default waarde
   	with (document.Selectiecriteria.vertrek)
   	   	if (selectedIndex< 0 || selectedIndex== optLen- 1)
			selectedIndex= 0; }

// ---

function SetOptionProp(the_select, the_array) {
	for (loop=0; loop < the_array.length; loop++) {
		if ((loop+1)> the_select.options.length) {
			opt= new Option('text', 'value');
			the_select[the_select.options.length]= opt; };

		if (the_array[loop].length == 1 ) {
			the_select.options[loop].text = the_array[loop];
			the_select.options[loop].value= the_array[loop]; }
		else {
			the_select.options[loop].text = the_array[loop][0];
			the_select.options[loop].value= the_array[loop][1]; }; };

	if (the_select.options.length > the_array.length) {
		loop = the_select.options.length - 1;
		while (loop >= the_array.length) {
			the_select.options[loop]= null;
			loop -= 1; }; }; }

//	---

function weekArray( vroegsteDatum, weekDag, isVertrek ) {
	var the_array= new Array();

	curDatum= new Date(vroegsteDatum.getFullYear(), vroegsteDatum.getMonth(), vroegsteDatum.getDate());
	var dagen= (str2WeekDag(weekDag) + 7 - curDatum.getDay()) % 7;
	curDatum.setDate( curDatum.getDate() + dagen );

	var loop= 0;
	var maxWeken= (isVertrek)?(4):(53);	//	Maximaal aantal regels
	while (loop< maxWeken) {
		the_array[loop] = new Array( 2 );
		the_array[loop][0] = formatDatum( curDatum );
		the_array[loop][1] = DateTomdy( curDatum );
		curDatum.setDate(curDatum.getDate()+ 7);
		loop++; };

	the_array[loop]= new Array( replicate('-', 30), '-');
	return( the_array ); }

//	---

function str2WeekDag( dagNaam ) {
	var WeekDag;
	if (dagNaam== "Maandag")
		WeekDag = 1;
	else
		if (dagNaam== "Dinsdag")
			WeekDag = 2;
		else
			if (dagNaam== "Woensdag")
				WeekDag = 3;
			else
				if (dagNaam== "Donderdag")
					WeekDag = 4;
				else
					if (dagNaam== "Vrijdag")
						WeekDag = 5;
					else
						if (dagNaam== "Zaterdag")
							WeekDag = 6;
						else
							if (dagNaam== "Zondag")
								WeekDag = 7;
	return( WeekDag ); }

//	---

function formatDatum( datum ) {
	var mdyString= DateTomdy(datum);
	var dag= mdyString.substring(3, 5);
	if (dag.substring(0,1)== "0")
		dag= mdyString.substring(4, 5);
	var maand= Maand(mdyString.substring(0, 2)- 1);
	var jaar= mdyString.substring(6, 10);
	var retval= dag + ' ' + maand + ', ' + jaar;
	return( retval ); }

//	---

function DateTomdy( datum ) {	
	var jaar = datum.getFullYear();	
	jaar += (jaar < 100)?1900:0;
	var maand = datum.getMonth() + 1;
	var dag = datum.getDate();	
	retval = padleft( String( maand ), 2, "0") + "/" + padleft( String( dag ), 2, "0") + "/" + jaar;
	return( retval ); }

//	---

function mdyToDate( datumstr ){
	return( new Date( datumstr.substring(6,10), datumstr.substring(0,2)- 1, datumstr.substring(3,5) ) ); }

//	---

function padleft( str, resultLen, padChar ) {
	var count = resultLen - str.length;
	return( replicate( padChar, count) + str ); }

//	---

function replicate( kar, width ) {
	var replStr= "";
	for (var loop=0; loop < width; loop++)
		replStr= replStr+ kar;
	return( replStr ); }

//	---

function Maand( maandNr) {
	var MaandNaam = new Array( 'Januari','Februari','Maart','April','Mei','Juni','Juli','Augustus','September','Oktober','November','December');
	return( MaandNaam [maandNr] ); }

//-->