/*
	Calender.js
	Copyright 2003, Qualion.nl

	Maakt de functie MakeCalender beschikbaar,
	die een kalender voor een opgegeven maand/jaar maakt,
	in de gewenste taal, met closed days.
	
    Parameters:
	month:  De maand
	year:   Het jaar
	lang:   Taal
	closed: de closed days, als kommagescheiden *string*.
	
*/

function MakeCalender (month,year,lang,closed) {
	if (lang == 'nl') {
		var day_of_week   = new Array('z','m','d','w','d','v','z');
		var month_of_year = new Array('Januari','Februari','Maart','April','Mei','Juni','Juli','Augustus','September','Oktober','November','December');
		var availstring   = 'Beschikbaarheid';		
	} else if (lang == 'fr') {
		var day_of_week   = new Array('d','l','m','m','j','v','s');
		var month_of_year = new Array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');
		var availstring   = 'Disponibilité';		
	} else {
		var day_of_week   = new Array('s','m','t','w','t','f','s');
		var month_of_year = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
		var availstring   = 'Availability';		
	}

	// De maand 1 verlagen
	month--;

	// Closed days in een array zetten
	closed = closed.split(',');

	// Kalender aanmaken, paar variabelen instellen
	var Calender = new Date(year,month,1);
	var cal;
	var tr_start  = '<tr class="CalenderRow">';
	var tr_end    = '</tr>';
	var td_closed = '<td class="CalenderClosed">';
	var td_empty  = '<td class="CalenderEmpty">-</td>';
	var td_start  = '<td class="CalenderCell">';
	var td_end    = '</td>';

	// Beginnen met de kalender
	cal  = '<table class="Calender" cellspacing="1" cellpadding="1">' + tr_start;
	cal += '<th colspan="7" class="CalenderHeader">';
	cal += month_of_year[month]  + '   ' + year; // Het kopje
	cal += '<br />' + availstring;
	cal += '</th>' + tr_end + tr_start;

	// Dagkopjes
	for (index=0; index < 7; index++) {
		cal += td_start + day_of_week[index] + td_end;
	}

	// ...volgende regel...
	cal += td_end + tr_end;
	cal += tr_start;

	// Lege vakjes tot de 1e van de maand
	for (index=0; index < Calender.getDay(); index++) {
		cal += td_empty;
	}

	// Dagen aflopen
	for (index=0; index < 31; index++) {
		if( Calender.getDate() > index ) {
			// What day do you want to handle today? (tm)
			week_day = Calender.getDay();

			// Voor de eerste dag van de week een nieuwe regel
			if(week_day == 0) {
				cal += tr_start;
			}

			if(week_day != 7) {
				// Weekdag is ook daadwerkelijk een weekdag
				var day  = Calender.getDate();

				// Closed date?
				if( closed[0] == Calender.getDate() ) {
					// Yup, X
					cal += td_closed + day + td_end;
					closed.shift();
				} else {
					// Nope, dag
					cal += td_start + day + td_end;
				}
			}
			// Einde regel
			if(week_day == 7)
			cal += tr_end;
		}

		// Volgende...
		Calender.setDate(Calender.getDate()+1);

	}// einde 31 dagen

	// Laatste stukje ook opvullen
	while (week_day < 6) {
		cal += td_empty;
		week_day++;
	}

	// Einde tabel
	cal += "</td></tr></table>\n";

	// Toon tabel
	//document.write(cal);
	return cal;
}
