// ** Deze js is voor de kalender-class **
function calendarClass() {

	this.buildCal = function(m, y) {
		var cM="main";
		var cH="month";
		var cDW="daysofweek";
		var cD="days";
		var brdr=1;
		
		// set ons maand als number
		this.month_number = m;
		// set ons jaar als number
		this.year_number = y;
		
		var mn=['januari','februari','maart','april','mei','juni','juli','augustus','september','oktober','november','december'];
		var dim=[31,0,31,30,31,30,31,31,30,31,30,31];

		var oD = new Date(y, m-1, 1); //DD replaced line to fix date bug when current day is 31st
		oD.od=oD.getDay()+1; //DD replaced line to fix date bug when current day is 31st

		var todaydate=new Date() //DD added
		var scanfortoday=(y==todaydate.getFullYear() && m==todaydate.getMonth()+1)? todaydate.getDate() : 0 //DD added

		dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;
		// set ons maand als string
		this.month_string = mn[m-1];
		var s=0;
		s=0;
		var days_temp = 0;
		var month_temp = "";
		for(i=1;i<=42;i++) {
			s++;
			if (s>7) s=1;
			if (s==1) { month_temp = "sunday"; }
			if (s==2) { month_temp = "monday"; }
			if (s==3) { month_temp = "tuesday"; }
			if (s==4) { month_temp = "wednesday"; }
			if (s==5) { month_temp = "thursday"; }
			if (s==6) { month_temp = "friday"; }
			if (s==7) { month_temp = "saturday"; }
			var x=((i-oD.od>=0)&&(i-oD.od<dim[m-1]))? i-oD.od+1 : '&nbsp;';
			if (x != "&nbsp;") {
				this.month_day_array[x] = month_temp;
				days_temp++;
			}
			if (x==scanfortoday) { 
				this.thisDayNumber = x;
				x='<span id="today">'+x+'</span>' //DD added
			}
		}
		this.month_days = days_temp;
	}
	
	this.getDaysOfMonth = function() {
		return(this.month_days);
	}
	
	this.getWeekdayOfMonth = function(temp) {
		return(this.month_day_array[temp]);
	}
	
	this.getShortWeekdayOfMonth = function(temp) {
		var retval;
		if (this.month_day_array[temp] == "sunday") {
			retval = "zo";
		}
		if (this.month_day_array[temp] == "monday") {
			retval = "ma";
		}
		if (this.month_day_array[temp] == "tuesday") {
			retval = "di";
		}
		if (this.month_day_array[temp] == "wednesday") {
			retval = "wo";
		}
		if (this.month_day_array[temp] == "thursday") {
			retval = "do";
		}
		if (this.month_day_array[temp] == "friday") {
			retval = "vr";
		}
		if (this.month_day_array[temp] == "saturday") {
			retval = "za";
		}
		return(retval);
	}
	
	this.getWeekdayOfToday = function() {
		return(this.month_day_array[this.thisDayNumber]);
	}
	
	this.getThisDayNumber = function() {
		return(this.thisDayNumber);
	}
	
	this.getYear = function() {
		return(this.year_number);
	}
	
	this.getMonthString = function() {
		return(this.month_string);
	}
	
	this.getMonthNumber = function() {
		return(this.month_number);
	}
	
	this.setMonth = function(num) {
		this.buildCal(num, this.year_number);
	}
	
	this.setPreviousMonth = function() {
		if (this.month_number == 1) {
			this.buildCal(12, this.year_number-1);
		} else {
			this.buildCal(this.month_number-1, this.year_number);
		}
	}
	
	this.setNextMonth = function() {
		if (this.month_number == 12) {
			this.buildCal(1, this.year_number+1);
		} else {
			this.buildCal(this.month_number+1, this.year_number);
		}
	}
	
	this.getTodayDate = function() {
		return(todaydate);
	}

	this.isFuture = function(tDay, tMonth, tYear) {
		//alert(tDay + "." + tMonth + "." + tYear);
		if (tYear > this.year_number) {
			return(true);
		}
		if (tYear == this.year_number) {
			if (tMonth > this.month_number) {
				return(true);
			}
		}
		if (tYear == this.year_number) {
			if (tMonth == this.month_number) {
				if (tDay > this.thisDayNumber) {
					return(true);
				}
			}
		}
		// in the end it's false
		return(false);
	}
	
	// ** variablen van deze class **
	var thisDayNumber;
	var month_number;
	var year_number;
	var month_string;
	var month_days;
	this.month_day_array = new Array();
	
	// ** eerst ons object op de actuele maand (en datum) zetten
	var todaydate=new Date();
	this.buildCal(todaydate.getMonth()+1, todaydate.getFullYear());

}

