/*

	Calendar.js
	Copyright 2003, Qualion.nl
	
	Maakt de functie MakeCalendar 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 MakeCalendar (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 == 'de'){
		  var day_of_week = new Array('s','m','d','m','d','f','s');
		  var month_of_year = new Array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
		  var availstring = 'Verfügbarkeit';		
	  } 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 Calendar = new Date(year,month,1);
	var cal;
	var tr_start = '<tr class="CalendarRow">';
	var tr_end = '</tr>';
	var td_closed = '<td class="CalendarClosed">';
	var td_empty = '<td class="CalendarEmpty">&nbsp;</td>';
	var td_start = '<td class="CalendarCell">';
	var td_end = '</td>';
	
	// Beginnen met de kalender
	cal = '<table class="Calendar" cellspacing="1" cellpadding="1">' + tr_start;
	cal += '<th colspan="7" class="CalendarHeader">';
	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 < Calendar.getDay(); index++) {
		cal += td_empty;
	}
	
	// Dagen aflopen
	for (index=0; index < 31; index++) {
		if( Calendar.getDate() > index ) {
			// What day do you want to handle today? (tm)
			week_day =Calendar.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  = Calendar.getDate();
			
				// Closed date?
				if( closed[0] == Calendar.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...
		Calendar.setDate(Calendar.getDate()+1);
		
	}// einde 31 dagen
	
	// Laatste stukje ook opvullen
	while (week_day < 6) {
		cal += td_empty;
		week_day++;
	}
	
	// Einde tabel
	cal += '</td></tr></table>';
	
	//  Spuug...
	document.write(cal);
}