var YEAR, MONTH, DAY, TOTALEVENTS = 0
var MONTHLIST = new Array()
var DAYLIST   = new Array()

function getTSdate(timestamp) {
	return new Date(timestamp * 1000);
}

function getMonth(monthNr)
{
	monthArray = new Array('', 'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december')
	return monthArray[monthNr]
}

function day()
{
	this.currentMonth = false
	this.dayDate = 0
	this.today = false
	this.events = 0
	this.month
	this.year
}

function makeMonth()
{
	var activeMonth = new Date()
	MONTH = (MONTH == 0 || MONTH < 1 || MONTH > 12) ? activeMonth.getMonth()+1    : MONTH
	YEAR  = (YEAR == 0 || YEAR < 1970 || YEAR > 2030)  ? activeMonth.getFullYear() : YEAR
	
	PREVYEAR    = (MONTH <= 1)  ? YEAR - 1 : YEAR
	PREVMONTH	= (MONTH <= 1)  ? 12 	   : MONTH - 1;
	NEXTYEAR	= (MONTH >= 12) ? YEAR + 1 : YEAR;
	NEXTMONTH	= (MONTH >= 12) ? 1 	   : MONTH + 1;
	
	DAYLIST[MONTH] = new Array()
	DAYLIST[PREVMONTH] = new Array()
	DAYLIST[NEXTMONTH] = new Array()
	
	var lastDay = 28, firstDayNrInMonth, compMonth = MONTH, dayDate = 1
	
	//voor het op welke dag de eerste dag van de maand valt
	//firstDayNrInMonth = hoeveelste dag in de maand, start bij 0 (maandag) eindigt bij 6 (zondag)
	var dateObj = new Date()
	dateObj.setMonth(MONTH-1)
	dateObj.setFullYear(YEAR)
	dateObj.setDate(1)			
	firstDayNrInMonth = dateObj.getDay() - 1
	
	
	//voor het vinden wat de laatste dag in de maand is
	//lastDay = Datum van de dag als int
	lastDay = getLastDayMonth(MONTH, YEAR)
	
	firstDayNrInMonth = firstDayNrInMonth == -1 ? 6 : firstDayNrInMonth
		
	//we maken 42 object voor de kalender, en we starten bij 0
	for (var i = 0; i < 42; i++)
	{
		dayObj = new day()
		
		if (i >= firstDayNrInMonth && i < lastDay+firstDayNrInMonth)
		{
			dayObj.dayDate = dayDate
			dayObj.month = MONTH
			dayObj.year = YEAR
			dayDate++
			dayObj.currentMonth = true
		}

		MONTHLIST[i] = dayObj
	}
	
	dayDate = 0
	for (var j = (lastDay+firstDayNrInMonth); j < 42; j++) {
		dayDate++
		MONTHLIST[j].dayDate = dayDate
		MONTHLIST[j].month = NEXTMONTH
		MONTHLIST[j].year = NEXTYEAR
	}
	
	monthItem = 0
	lastDayPrevMonth = getLastDayMonth(PREVMONTH, PREVYEAR)
	for (k = firstDayNrInMonth; k > 0; k--) {
		MONTHLIST[monthItem].dayDate = lastDayPrevMonth - (k-1)
		MONTHLIST[monthItem].month = PREVMONTH
		MONTHLIST[monthItem].year = PREVYEAR
		monthItem++
	}
	
	for (var l = 0; l < 42; l++) {
		listMonth = MONTHLIST[l].month
		listDay = MONTHLIST[l].dayDate
		DAYLIST[listMonth][listDay] = MONTHLIST[l]
	}
}

function setToday(todayNr, monthNr, yearNr) {	
	if (DAYLIST[monthNr] != null && DAYLIST[monthNr][todayNr] != null && yearNr == YEAR) {
		DAYLIST[monthNr][todayNr].today = true
	}
}

function setEvent(EventDayNr, Aevents) {
	DAYLIST[MONTH][EventDayNr].events = Aevents
	TOTALEVENTS += Aevents
}