//
// Function 'Test Javascript Connection'
//
function test()
{
	document.write("Dit is een Javascript connectie test.");
}

//
// Function 'Fills calendar table with year, month, daynumbers and weekdays'
//
function fillcalendar() {
//
// initialize variables
//
	var calendar = window.calendar;
	var reccnt = window.reccnt;
	var lang = window.lang;
	var pos = 0;

	for (n=0; n<reccnt; n++) {
//
// convert running counter to a 2-digit string variable
//
		var cnt = n.toString();
		if (n < 10) cnt = "0" + n;
//
// select year, month and the available/occupied strings for each apartment from the calendar string
//
		var yr = calendar.substr(pos,4);
		pos = pos + 4;
		var mon = calendar.substr(pos,2);
		pos = pos + 2;
		var app1 = calendar.substr(pos,31);
		pos = pos + 31;
		var app2 = calendar.substr(pos,31);
		pos = pos + 31;
		var app3 = calendar.substr(pos,31);
		pos = pos + 31;
		var app4 = calendar.substr(pos,31);
		pos = pos + 31;
		var app5 = calendar.substr(pos,31);
		pos = pos + 31;
		fillmonth(yr,mon,lang,cnt,app1,app2,app3,app4,app5);
	}
}

function fillmonth(yr,mon,lang,cnt,app1,app2,app3,app4,app5) {
	var hdrcnt = "H" + cnt;
	var rowcnt = "R" + cnt;
	var weekday = new Array(7);
	var month = new Array(12);
	if (lang == "DE") {
		weekday[0] = "So ";
		weekday[1] = "Mo ";
		weekday[2] = "Di ";
		weekday[3] = "Mi ";
		weekday[4] = "Do ";
		weekday[5] = "Fr ";
		weekday[6] = "Sa ";
		month[0] = "J&#228;n ";
		month[1] = "Feb ";
		month[2] = "Mrz ";
		month[3] = "Apr ";
		month[4] = "Mai ";
		month[5] = "Juni ";
		month[6] = "Juli ";
		month[7] = "Aug ";
		month[8] = "Sep ";
		month[9] = "Okt ";
		month[10] = "Nov ";
		month[11] = "Dez ";
	}
	if (lang == "EN") {
		weekday[0] = "Su ";
		weekday[1] = "Mo ";
		weekday[2] = "Tu ";
		weekday[3] = "We ";
		weekday[4] = "Th ";
		weekday[5] = "Fr ";
		weekday[6] = "Sa ";
		month[0] = "Jan ";
		month[1] = "Feb ";
		month[2] = "Mar ";
		month[3] = "Apr ";
		month[4] = "May ";
		month[5] = "June ";
		month[6] = "July ";
		month[7] = "Aug ";
		month[8] = "Sep ";
		month[9] = "Oct ";
		month[10] = "Nov ";
		month[11] = "Dec ";
	}
	if (lang == "NL") {
		weekday[0] = "Zo ";
		weekday[1] = "Ma ";
		weekday[2] = "Di ";
		weekday[3] = "Wo ";
		weekday[4] = "Do ";
		weekday[5] = "Vr ";
		weekday[6] = "Za ";
		month[0] = "Jan ";
		month[1] = "Feb ";
		month[2] = "Mrt ";
		month[3] = "Apr ";
		month[4] = "Mei ";
		month[5] = "Juni ";
		month[6] = "Juli ";
		month[7] = "Aug ";
		month[8] = "Sep ";
		month[9] = "Okt ";
		month[10] = "Nov ";
		month[11] = "Dec ";
	}
//
// set max number of days + 1 per month
//
	var maxday = new Array();
	for (i=1; i<=12; i++) {
		maxday[i] = 32;
		if (i == 4 || i == 6 || i == 9 || i == 11) maxday[i] = 31;
	}
	maxday[2] = 29;
	if (yr%4 == 0) maxday[2] = 30;
//
// set short for apartment depending on language
//
	var app = "App";
	if (lang == "EN") app = "Apt";
	var x = document.getElementById(hdrcnt).cells;
	x[1].innerHTML = app;
//
// set cleartext month + numeric year in vertical header
//
	var rowheader = month[mon-1];
	rowheader = rowheader + yr;
	var row = rowcnt + "0";
	x = document.getElementById(row).cells;
	x[0].innerHTML = rowheader;
//
// set shorts for days + daynumbers in header
//
	var day = 0;
	var daynr = "";
	var colday = new Date();
	var mm = mon - 1;
	var max = maxday[mm+1];
	for (day=1; day<max; day++) {
		colday.setFullYear(yr,mm,day);
		daynr = day.toString();
		if (daynr < 10) daynr = "0" + day;
		var dd = colday.getDay();
		var colheader = weekday[dd];
		colheader = colheader + daynr;
		x = document.getElementById(hdrcnt).cells;
		x[day+2].innerHTML = colheader;
	}
//
// initialize variables for setting available/occupied for the apartments
//
	var classtype = new Array(5)
	classtype[0] = "BB";
	classtype[1] = "BR";
	classtype[2] = "RR";
	classtype[3] = "RB";
	classtype[4] = "ZZ";
	var cell = 0;
	var cellnr = 0;
	var cellbackground = "";
	var type = "";
	var x = "";
//
// set available/occupied for App 1
//
	row = "R" + cnt + "0";
	x = document.getElementById(row);
	for (y=0; y<31; y++) {
		type = app1.substr(y,1);
		cellbackground = classtype[type];
		cell = x.getElementsByTagName("td");
		cellnr = y + 3;
		cell[cellnr].className = cellbackground;
	}
//
// set available/occupied for App 2
//
	row =  "R" + cnt + "1";
	x = document.getElementById(row);
	for (y=0; y<31; y++) {
		type = app2.substr(y,1);
		cellbackground = classtype[type];
		cell = x.getElementsByTagName("td");
		cellnr = y + 2;
		cell[cellnr].className = cellbackground;
	}
//
// set available/occupied for App 3
//
	row =  "R" + cnt + "2";
	x = document.getElementById(row);
	for (y=0; y<31; y++) {
		type = app3.substr(y,1);
		cellbackground = classtype[type];
		cell = x.getElementsByTagName("td");
		cellnr = y + 2;
		cell[cellnr].className = cellbackground;
	}
//
// set available/occupied for App 4
//
	row =  "R" + cnt + "3";
	x = document.getElementById(row);
	for (y=0; y<31; y++) {
		type = app4.substr(y,1);
		cellbackground = classtype[type];
		cell = x.getElementsByTagName("td");
		cellnr = y + 2;
		cell[cellnr].className = cellbackground;
	}
//
// set available/occupied for Studio
//
	row =  "R" + cnt + "4";
	x = document.getElementById(row);
	for (y=0; y<31; y++) {
		type = app5.substr(y,1);
		cellbackground = classtype[type];
		cell = x.getElementsByTagName("td");
		cellnr = y + 2;
		cell[cellnr].className = cellbackground;
	}
}
function init() {
	window.app1 = "";
	window.app2 = "";
	window.app3 = "";
	window.app4 = "";
	window.app5 = "";
	window.bday = 0;
	window.bmon = 0;
	window.byear = 0;
	window.eday = 0;
	window.emon = 0;
	window.eyear = 0;
	window.action = "";
}
function appselect(appnr) {
	if (appnr == 1)	window.app1 = "Y";
	if (appnr == 2)	window.app2 = "Y";
	if (appnr == 3)	window.app3 = "Y";
	if (appnr == 4)	window.app4 = "Y";
	if (appnr == 5)	window.app5 = "Y";
}
function appunselect(appnr) {
	if (appnr == 1)	window.app1 = "N";
	if (appnr == 2)	window.app2 = "N";
	if (appnr == 3)	window.app3 = "N";
	if (appnr == 4)	window.app4 = "N";
	if (appnr == 5)	window.app5 = "N";
}
function change() {
	var calendar = window.calendar;
	var reccnt = window.reccnt;
	var app1 = window.app1;
	var app2 = window.app2;
	var app3 = window.app3;
	var app4 = window.app4;
	var app5 = window.app5;
	var error = "";
	if (app1 != "Y" && app2 != "Y" && app3 != "Y" && app4 != "Y" && app5 != "Y") error = "er is geen appartement geselecteerd!";
	var action = window.action;
	if (action != "free" && action != "occupy") error = "vrijgeven / bezetten niet geselecteerd!";
	var firstdate = window.firstdate;
	var lastdate = window.lastdate;
	if (error == "") error = checkdate("begdat");
	if (error == "") error = checkdate("enddat");
	var bday = window.bday;
	var bmon = window.bmon;
	var byear = window.byear;
	var eday = window.eday;
	var emon = window.emon;
	var eyear = window.eyear;
	var help = byear * 100 + bmon;
	var begin = help.toString(10);
	var help = eyear * 100 + emon;
	var end = help.toString(10);
	x = document.getElementById("message").cells;
	x[0].innerHTML = error;

	if (error == "") {
		var totlen = calendar.length;						//	total length of calendar string
		var begpos = calendar.indexOf(begin,0) + 5 + bday;	//	position of first day to be changed
		var endpos = calendar.indexOf(end,0) + 5 + eday;	//	position of last day to be changed
		var value = 0;
		var apps = new Array();
		apps[0] = app1;
		apps[1] = app2;
		apps[2] = app3;
		apps[3] = app4;
		apps[4] = app5;
// change first day, looping through 5 apartments
		for (i=0; i<5; i++) {
			value = calendar.charAt(begpos);
			if (apps[i] == "Y" && action == "free") {
				if ( value == "0" || value == "1") calendar = calendar.substr(0,begpos) + 0 + calendar.substr(begpos+1);
				if ( value == "2" || value == "3") calendar = calendar.substr(0,begpos) + 3 + calendar.substr(begpos+1);
			}
			if (apps[i] == "Y" && action == "occupy") {
				if ( value == "0" || value == "1") calendar = calendar.substr(0,begpos) + 1 + calendar.substr(begpos+1);
				if ( value == "2" || value == "3") calendar = calendar.substr(0,begpos) + 2 + calendar.substr(begpos+1);
			}
			begpos = begpos + 31;
		}
// change last day, looping through 5 apartments
		for (i=0; i<5; i++) {
			value = calendar.charAt(endpos);
			if (apps[i] == "Y" && action == "free") {
				if ( value == "0" || value == "3") calendar = calendar.substr(0,endpos) + 0 + calendar.substr(endpos+1);
				if ( value == "1" || value == "2") calendar = calendar.substr(0,endpos) + 1 + calendar.substr(endpos+1);
			}
			if (apps[i] == "Y" && action == "occupy") {
				if ( value == "0" || value == "3") calendar = calendar.substr(0,endpos) + 3 + calendar.substr(endpos+1);
				if ( value == "1" || value == "2") calendar = calendar.substr(0,endpos) + 2 + calendar.substr(endpos+1);
			}
			endpos = endpos + 31;
		}
// change days between first and last day
		var nextpos = calendar.indexOf(begin,0) + 6 + bday;		// position of the day after the first day
		var nextmonpos = calendar.indexOf(begin,0) + 167;		// position of first day of next month
		var nextposcopy = nextpos;
		var begindate = Date.UTC(byear,bmon-1,bday);
		var enddate = Date.UTC(eyear,emon-1,eday);
		var one_day = 1000 * 60 * 60 * 24;						// nr of milliseconds in one day
		var nrofdays = (enddate - begindate) / one_day - 1;		// nr of days between first and last day
		var remain = 31 - bday;									// remaining days in the begin month		
		if (nrofdays > 0) {
			for (n=0; n<nrofdays; n++) {
				if (remain > 0) {
					value = calendar.charAt(nextpos);
//					alert(nextpos + " | " + remain + " | " + nrofdays + " | " + n + " | " + value);
					for (i=0; i<5; i++) {
						if (apps[i] == "Y" && value < 4 && action == "occupy") calendar = calendar.substr(0,nextpos) + 2 + calendar.substr(nextpos+1);
						if (apps[i] == "Y" && value < 4 && action == "free") calendar = calendar.substr(0,nextpos) + 0 + calendar.substr(nextpos+1);
						nextpos = nextpos + 31;
					}
					if (value == 4) nrofdays = nrofdays + 1;
					nextpos = nextposcopy + 1;
					nextposcopy = nextpos;
					remain = remain - 1;
				}
				else {
					nextpos = nextmonpos;						// switch over to next month: position index at first day of that month
					nextmonpos = nextmonpos + 161				// shift the position of next month by one month
					nextposcopy = nextpos;
					remain = 31;
					n = n - 1;
				}
			}
		}
	}
	window.calendar = calendar;
	document.getElementById("calendarupd").value = calendar;
	document.getElementById("recs").value = reccnt;
	fillcalendar();
}

function checkdate(dateField) {
	var error = "";
	var help = document.getElementById(dateField).value;
	var date = help.split(".");
	if (date.length != 3) {
		if (dateField == "begdat") {
			error = "formaat begin datum niet correct!";
		}
		else {
			error = "formaat eind datum niet correct!";
		}
	}
	else {
		var dd = parseInt(date[0],10);
		var mm = parseInt(date[1],10);
		var yr = date[2];
		if (yr.length < 4) yr = 2000 + parseInt(date[2],10);
		if (yr.length == 4 ) yr = parseInt(date[2],10);
		var maxday = new Array();
		for (i=1; i<=12; i++) {
			maxday[i] = 31;
			if (i == 4 || i == 6 || i == 9 || i == 11) maxday[i] = 30;
			if (i==2 && yr%4 != 0) maxday[2] = 28;
			if (i==2 && yr%4 == 0) maxday[2] = 29;
		}
		var error = "";
		if (dd < 1 || dd > maxday[mm] || mm < 0 || mm > 12 || isNaN(dd) || isNaN(mm) || isNaN(yr)) {
			if (dateField == "begdat") {
				error = "begin datum of het formaat daarvan niet correct!";
			}
			else {
				error = "eind datum of het formaat daarvan niet correct!";
			}
		}
		if (error == "") {
			var hlp = yr * 100 + mm;
			var help = hlp.toString(10);
			var firstdate = window.firstdate;
			var lastdate = window.lastdate;
			if (help < firstdate || help > lastdate) {
				if (dateField == "begdat") {
					error = "begin datum valt buiten de kalender grenzen!";
				}
				else {
					error = "eind datum valt buiten de kalender grenzen!";
				}
			}
		}
	}
	var x = document.getElementById("message").cells;
	x[0].innerHTML = error;
	if (error == "" && dateField == "begdat") {
		window.bday = dd;
		window.bmon = mm;
		window.byear = yr;
	}
	if (error == "" && dateField == "enddat") {
		window.eday = dd;
		window.emon = mm;
		window.eyear = yr;
	}
	return error;
}

function radioaction(a) {
	window.action = a;
}

function move(direction) {
	var maxday = new Array();
	for (i=1; i<=12; i++) {
		maxday[i] = 31;
		if (i == 4 || i == 6 || i == 9 || i == 11) maxday[i] = 30;
	}
	maxday[2] = 28;
	var mon = "0000000000000000000000000000000";
	var nonexist = "44444";
	var calendar = window.calendar;
	var firstdate = window.firstdate;
	var lastdate = window.lastdate;
	var len = calendar.length;
	var calendarchop = "";
	if (direction == "backwards") {
		calendarchop = calendar.substring(0,len-161);
		var yr = firstdate.substring(0,4);
		var mm = firstdate.substring(4);
		var yrnum = parseInt(yr,10);
		if (yrnum%4 == 0) maxday[2] = 29;
		var mnum = parseInt(mm,10);
		mnum = mnum - 1;
		if (mnum < 1) {
			mnum = 12;
			yrnum = yrnum - 1;
		}
		var help = yrnum * 100 + mnum
		var date = help.toString(10);
		window.firstdate = date;
		var dnum = maxday[mnum];
		var app = mon.substring(0,dnum) + nonexist.substring(0,31-dnum);
		var month = date.concat(app,app,app,app,app);
		var yr = lastdate.substring(0,4);
		var mm = lastdate.substring(4);
		var yrnum = parseInt(yr,10);
		var mnum = parseInt(mm,10);
		mnum = mnum - 1;
		if (mnum < 1) {
			mnum = 12;
			yrnum = yrnum - 1;
		}
		var help = yrnum * 100 + mnum
		var date = help.toString(10);
		window.lastdate = date;
		calendar = month.concat(calendarchop);
	}
	if (direction == "forwards") {
		calendarchop = calendar.substring(161);
		var yr = lastdate.substring(0,4);
		var mm = lastdate.substring(4);
		var yrnum = parseInt(yr,10);
		if (yrnum%4 == 0) maxday[2] = 29;
		var mnum = parseInt(mm,10);
		mnum = mnum + 1;
		if (mnum > 12) {
			mnum = 1;
			yrnum = yrnum + 1;
		}
		var help = yrnum * 100 + mnum
		var date = help.toString(10);
		window.lastdate = date;
		var dnum = maxday[mnum];
		var app = mon.substring(0,dnum) + nonexist.substring(0,31-dnum);
		var month = date.concat(app,app,app,app,app);
		var yr = firstdate.substring(0,4);
		var mm = firstdate.substring(4);
		var yrnum = parseInt(yr,10);
		var mnum = parseInt(mm,10);
		mnum = mnum + 1;
		if (mnum > 12) {
			mnum = 1;
			yrnum = yrnum + 1;
		}
		var help = yrnum * 100 + mnum
		var date = help.toString(10);
		window.firstdate = date;
		calendar = calendarchop.concat(month);
	}
	window.calendar = calendar;
	document.getElementById("calendarupd").value = calendar;
	document.getElementById("recs").value = reccnt;
	fillcalendar();
}

function showTicker(tickerText) {
	var mode = document.documentMode;
	if (mode == 8) {
		document.getElementById("tickerRule").style.borderWidth="2 0 2 0";
	}
	else {
		document.getElementById("tickerRule").style.borderWidth="1 0 1 0";
	}
	tickerText = tickerText.replace(/%%/gi,'&nbsp;&nbsp;&nbsp;&nbsp;<img src="/wp-content/images/Bullet.jpg" /> &nbsp;');
	var anchor1 = '<a class="ticker" style="background-color:transparent; color:#8080FF;" href="/?page_id=';
	var anchor2 = "";
	var lang = window.lang;
	if (lang == "DE") anchor2 = '/"> [mehr...] </a>';
	if (lang == "EN") anchor2 = '/"> [more...] </a>';
	if (lang == "NL") anchor2 = '/"> [meer...] </a>';
	var pos = 0;
	var index = 0;
	var linknr = 0;
	var help = "";
	var anchor = "";
	var searchItem = "";
	var flag = 1;
	while (flag == 1) {
		index = tickerText.indexOf("##",pos);
		pos = index + 7;
		if (index >= 0) {
			help = tickerText.substr(index+2,5);
			linknr = parseInt(help,10);
			anchor = anchor1 + linknr + anchor2;
			searchItem = "##" + help;
			tickerText = tickerText.replace(searchItem,anchor);
		}
		else {
			flag = 0;
		}
	}
	window.tickerText = tickerText;
	scrollPrefix(220,50);
}

function scrollPrefix(prefixLen,delay) {
	if (prefixLen <= 0) {
		var tickerText = window.tickerText;
		scrollText(tickerText,90);
		return;
	}
	var scrollTicker = window.scrollTicker;
	if (scrollTicker == 1) {
		var cnt = prefixLen;
		var prefix = "";
		for (i=0; i<prefixLen; i++) prefix = prefix  + "&nbsp;";
		var tickerText = window.tickerText;
		tickerText = prefix + tickerText;
		document.getElementById("tickerDiv").innerHTML = tickerText;
		funcDef = "scrollPrefix("+(prefixLen-1)+","+delay+");";
	}
	else {
		funcDef = "scrollPrefix("+prefixLen+","+delay+");";
	}
	setTimeout(funcDef,delay);
	return;
}

function scrollText(tickerText,delay) {
	var tickerLen = tickerText.length;
	if (tickerLen <= 0) { 
		scrollPrefix(220,50);
		return;
	}
	var scrollTicker = window.scrollTicker;
	if (scrollTicker == 1) {
		var help = tickerText.substr(0,6);
		var offset = 1;
		if (help == "&nbsp;") offset = 6;
		if (help == "<img s") {
			var index = tickerText.indexOf(" />",20);
			offset = index + 7;
			pause(2,1500);
		}
		if (help == "<a cla") {
			var index = tickerText.indexOf("</a>",70);
			offset = index + 4;
		}
		tickerText = tickerText.substr(offset);
		if (help != "<img s") {
			document.getElementById("tickerDiv").innerHTML = tickerText;
		}
	}
	funcDef = "scrollText('" + tickerText + "'," + delay + ");";
	setTimeout(funcDef,delay);
	return;
}
function pause(flag,delay) {
	if (flag <= 0) {
		window.scrollTicker = 1;
		return;
	}
	window.scrollTicker = 0;
	funcDef = "pause(" + (flag-1) + "," + delay + ");";
	setTimeout(funcDef,delay);
}

//
// Function 'Change tariffs for year n'
//
function chTariff(n)
{
	if (n == 1) {
		var tariffString1 = "";
		var baseTariff = document.getElementById("11WH").value;
		var baseTariff = parseInt(baseTariff,10);
		var help = "";
		var tariff = baseTariff;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("11WH").value = help;
		tariffString1 = tariffString1 + help;
		var tariff = baseTariff - 5;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("11WL").value = help;
		tariffString1 = tariffString1 + help;
		var tariff = baseTariff - 12;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("11SH").value = help;
		tariffString1 = tariffString1 + help;
		var tariff = baseTariff - 17;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("11SL").value = help;
		tariffString1 = tariffString1 + help;
		var help = document.getElementById("11CLN").value;
		tariffString1 = tariffString1 + help;
		var tariff = baseTariff - 13;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("12WH").value = help;
		tariffString1 = tariffString1 + help;
		var tariff = baseTariff - 18;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("12WL").value = help;
		tariffString1 = tariffString1 + help;
		var tariff = baseTariff - 25;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("12SH").value = help;
		tariffString1 = tariffString1 + help;
		var tariff = baseTariff - 30;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("12SL").value = help;
		tariffString1 = tariffString1 + help;
		var help = document.getElementById("12CLN").value;
		tariffString1 = tariffString1 + help;
		var tariff = baseTariff + 13;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("13WH").value = help;
		tariffString1 = tariffString1 + help;
		var tariff = baseTariff + 8;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("13WL").value = help;
		tariffString1 = tariffString1 + help;
		var tariff = baseTariff + 1;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("13SH").value = help;
		tariffString1 = tariffString1 + help;
		var tariff = baseTariff - 4;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("13SL").value = help;
		tariffString1 = tariffString1 + help;
		var help = document.getElementById("13CLN").value;
		tariffString1 = tariffString1 + help;
		var tariff = baseTariff - 13;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("14WH").value = help;
		tariffString1 = tariffString1 + help;
		var tariff = baseTariff - 18;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("14WL").value = help;
		tariffString1 = tariffString1 + help;
		var tariff = baseTariff - 25;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("14SH").value = help;
		tariffString1 = tariffString1 + help;
		var tariff = baseTariff - 30;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("14SL").value = help;
		tariffString1 = tariffString1 + help;
		var help = document.getElementById("14CLN").value;
		tariffString1 = tariffString1 + help;
		var help = document.getElementById("15WH").value;
		tariffString1 = tariffString1 + help;
		var help = document.getElementById("15WL").value;
		tariffString1 = tariffString1 + help;
		var help = document.getElementById("15SH").value;
		tariffString1 = tariffString1 + help;
		var help = document.getElementById("15SL").value;
		tariffString1 = tariffString1 + help;
		var help = document.getElementById("15CLN").value;
		tariffString1 = tariffString1 + help;
	}
	if (n == 2) {
		var tariffString2 = "";
		var baseTariff = document.getElementById("21WH").value;
		var baseTariff = parseInt(baseTariff,10);
		var help = "";
		var tariff = baseTariff;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("21WH").value = help;
		tariffString2 = tariffString2 + help;
		var tariff = baseTariff - 5;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("21WL").value = help;
		tariffString2 = tariffString2 + help;
		var tariff = baseTariff - 12;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("21SH").value = help;
		tariffString2 = tariffString2 + help;
		var tariff = baseTariff - 17;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("21SL").value = help;
		tariffString2 = tariffString2 + help;
		var help = document.getElementById("21CLN").value;
		tariffString2 = tariffString2 + help;
		var tariff = baseTariff - 13;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("22WH").value = help;
		tariffString2 = tariffString2 + help;
		var tariff = baseTariff - 18;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("22WL").value = help;
		tariffString2 = tariffString2 + help;
		var tariff = baseTariff - 25;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("22SH").value = help;
		tariffString2 = tariffString2 + help;
		var tariff = baseTariff - 30;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("22SL").value = help;
		tariffString2 = tariffString2 + help;
		var help = document.getElementById("22CLN").value;
		tariffString2 = tariffString2 + help;
		var tariff = baseTariff + 13;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("23WH").value = help;
		tariffString2 = tariffString2 + help;
		var tariff = baseTariff + 8;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("23WL").value = help;
		tariffString2 = tariffString2 + help;
		var tariff = baseTariff + 1;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("23SH").value = help;
		tariffString2 = tariffString2 + help;
		var tariff = baseTariff - 4;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("23SL").value = help;
		tariffString2 = tariffString2 + help;
		var help = document.getElementById("23CLN").value;
		tariffString2 = tariffString2 + help;
		var tariff = baseTariff - 13;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("24WH").value = help;
		tariffString2 = tariffString2 + help;
		var tariff = baseTariff - 18;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("24WL").value = help;
		tariffString2 = tariffString2 + help;
		var tariff = baseTariff - 25;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("24SH").value = help;
		tariffString2 = tariffString2 + help;
		var tariff = baseTariff - 30;
		if (tariff < 10) help = "0O" + tariff;
		if (tariff < 100) help = "0" + tariff;
		if (tariff > 99) help = tariff.toString();
		document.getElementById("24SL").value = help;
		tariffString2 = tariffString2 + help;
		var help = document.getElementById("24CLN").value;
		tariffString2 = tariffString2 + help;
		var help = document.getElementById("25WH").value;
		tariffString2 = tariffString2 + help;
		var help = document.getElementById("25WL").value;
		tariffString2 = tariffString2 + help;
		var help = document.getElementById("25SH").value;
		tariffString2 = tariffString2 + help;
		var help = document.getElementById("25SL").value;
		tariffString2 = tariffString2 + help;
		var help = document.getElementById("25CLN").value;
		tariffString2 = tariffString2 + help;
	}
}

//
// Function 'Set number to x digits'
//
function xDigit(n,x)
{
	var help = document.getElementById(n).value;
	var len = help.length;
	if (x == 2) {
		if (len == 1) help = "0" + help;
	}
	if (x == 3) {
		if (len == 1) help = "00" + help;
		if (len == 2) help = "0" + help;
	}
	if (x == 4) {
		if (len == 1) help = "000" + help;
		if (len == 2) help = "00" + help;
		if (len == 3) help = "0" + help;
	}
	if (x == "year") {
		if (len == 1) help = "200" + help;
		if (len == 2) help = "20" + help;
		if (len == 3) help = "2" + help;
	}	
	document.getElementById(n).value = help;
}

//
// Function 'Fill a calendar with actions and seasons'
//
function fillseasons()
{
	var actions = window.actions;
	var seasons = window.seasons;
//
// set class codes for actions and seasons
//
	var actionClass = new Array(10);
	actionClass[0] = "kk";
	actionClass[1] = "fk";
	actionClass[2] = "kf";
	actionClass[3] = "ff";
	actionClass[4] = "sk";
	actionClass[5] = "ks";
	actionClass[6] = "ss";
	actionClass[7] = "nk";
	actionClass[8] = "kn";
	actionClass[9] = "nn";
	var seasonClass = new Array(10);
	seasonClass[0] = "WHH";
	seasonClass[1] = "WHL";
	seasonClass[2] = "WLH";
	seasonClass[3] = "WLL";
	seasonClass[4] = "WLSL";
	seasonClass[5] = "SHH";
	seasonClass[6] = "SHL";
	seasonClass[7] = "SLH";
	seasonClass[8] = "SLL";
	seasonClass[9] = "SLWL";
//
// set first and second year
//
	var year1 = window.year1;
	var x = document.getElementById("Year1").cells;
	x[0].innerHTML = year1;
	window.firstdate = year1 + "01";
	var year2 = window.year2;
	var x = document.getElementById("Year2").cells;
	x[0].innerHTML = year2;
	window.lastdate = year2 + "12";

//
// set actions for first and second year
//
	var month = "";
	var type = 0;
	var offset = 0;
	for (i=0; i<2; i++) {
		for (j=1; j<13; j++) {
			if (j < 10) month = "0" + j;
			if (j == 10) month = "10";
			if (j == 11) month = "11";
			if (j == 12) month = "12";
			row = "A" + i + month;
			offset = 6 + (j-1)*37;
			if (i > 0) offset = offset + 444;
			x = document.getElementById(row);
			for (y=0; y<31; y++) {
				type = actions.substr(offset+y,1);
				if (type == "n") cellbackground = "kk";
				if (type != "n") cellbackground = actionClass[type];
				cell = x.getElementsByTagName("td");
				cellnr = y + 1;
				cell[cellnr].className = cellbackground;
			}
		}
	}
//
// set seasons for first and second year
//
	var month = "";
	var type = 0;
	var offset = 0;
	for (i=0; i<2; i++) {
		for (j=1; j<13; j++) {
			if (j < 10) month = "0" + j;
			if (j == 10) month = "10";
			if (j == 11) month = "11";
			if (j == 12) month = "12";
			row = "S" + i + month;
			offset = 6 + (j-1)*37;
			if (i > 0) offset = offset + 444;
			x = document.getElementById(row);
			for (y=0; y<31; y++) {
				type = seasons.substr(offset+y,1);
				if (type == "n") cellbackground = "kk";
				if (type != "n") cellbackground = seasonClass[type];
				cell = x.getElementsByTagName("td");
				cellnr = y;
				cell[cellnr].className = cellbackground;
			}
		}
	}
}

//
// Function 'alter the entered actions and seasons'
//
function alter() {
	var actions = window.actions;
	var seasons = window.seasons;
	var error = "";
	var action = window.action;
	if (action != "closed" && action != "FF" && action != "sevenfive" && action != "remove" && action != "WH" && action != "WL" && action != "SH" && action != "SL") error = "er is geen actie of seizoen geselecteerd!";
	var firstdate = window.firstdate;
	var lastdate = window.lastdate;
	if (error == "") error = checkdate("begdat");
	if (error == "") error = checkdate("enddat");
	var bday = window.bday;
	var bmon = window.bmon;
	var byear = window.byear;
	var eday = window.eday;
	var emon = window.emon;
	var eyear = window.eyear;
	var help = byear * 100 + bmon;
	var begin = help.toString(10);
	var help = eyear * 100 + emon;
	var end = help.toString(10);
	var between = "";
	x = document.getElementById("message").cells;
	x[0].innerHTML = error;
	if (error == "") {
// set variables for altering the days between first and last day
		var begindate = Date.UTC(byear,bmon-1,bday);
		var enddate = Date.UTC(eyear,emon-1,eday);
		var one_day = 1000 * 60 * 60 * 24;						// nr of milliseconds in one day
		var nrofdays = (enddate - begindate) / one_day - 1;		// nr of days between first and last day
		var remain = 31 - bday;									// remaining days in the begin month
		var between = "";
// alter actions
		if (action == "closed" || action == "FF" || action == "sevenfive" || action == "remove") {
			var begpos = actions.indexOf(begin,0) + 5 + bday;	//	position of first day to be changed
			var endpos = actions.indexOf(end,0) + 5 + eday;		//	position of last day to be changed
			var value = actions.charAt(begpos);
// change first action day 
			if (action == "closed") {
				actions = actions.substr(0,begpos) + "8" + actions.substr(begpos+1);
				between = "9";
			}
			if (action == "FF") {
				actions = actions.substr(0,begpos) + "2" + actions.substr(begpos+1);
				between = "3";
			}
			if (action == "sevenfive") {
				actions = actions.substr(0,begpos) + "5" + actions.substr(begpos+1);
				between = "6";
			}
			if (action == "remove") {
				actions = actions.substr(0,begpos) + "0" + actions.substr(begpos+1);
				between = "0";
			}
// change last action day 
			if (action == "closed") actions = actions.substr(0,endpos) + "7" + actions.substr(endpos+1);
			if (action == "FF") actions = actions.substr(0,endpos) + "1" + actions.substr(endpos+1);
			if (action == "sevenfive") actions = actions.substr(0,endpos) + "4" + actions.substr(endpos+1);
			if (action == "remove") actions = actions.substr(0,endpos) + "0" + actions.substr(endpos+1);
// change days between first and last day in actions
			var nextpos = actions.indexOf(begin,0) + 6 + bday;		// position of the day after the first day
			var nextmonpos = actions.indexOf(begin,0) + 43;			// position of first day of next month
			var nextposcopy = nextpos;
			if (nrofdays > 0) {
				for (n=0; n<nrofdays; n++) {
					if (remain > 0) {
						value = actions.charAt(nextpos);
						if (value != "n") actions = actions.substr(0,nextpos) + between + actions.substr(nextpos+1);
						if (value == "n") nrofdays = nrofdays + 1;
						nextpos = nextposcopy + 1;
						nextposcopy = nextpos;
						remain = remain - 1;
					}
					else {
						nextpos = nextmonpos;						// switch over to next month: position index at first day of that month
						nextmonpos = nextmonpos + 37;				// shift the position of next month by one month
						nextposcopy = nextpos;
						remain = 31;
						n = n - 1;
					}
				}
			}
		}
// alter seasons
		if (action == "WH" || action == "WL" || action == "SH" || action == "SL") {
			var begpos = seasons.indexOf(begin,0) + 5 + bday;	//	position of first day to be changed
			var endpos = seasons.indexOf(end,0) + 5 + eday;		//	position of last day to be changed
			var value = seasons.charAt(begpos);
// change first season day 
			if (action == "WH") {
				between = "0";
				if (value == "0" || value == "1") seasons = seasons.substr(0,begpos) + "0" + seasons.substr(begpos+1);
				else if (value == "2" || value == "3" || value == "4") seasons = seasons.substr(0,begpos) + "2" + seasons.substr(begpos+1);
			}
			if (action == "WL") {
				between = "3";
				if (value == "0" || value == "1") seasons = seasons.substr(0,begpos) + "1" + seasons.substr(begpos+1);
				else if (value == "2" || value == "3" || value == "4") seasons = seasons.substr(0,begpos) + "3" + seasons.substr(begpos+1);
				else if (value == "7" || value == "8" || value == "9") seasons = seasons.substr(0,begpos) + "9" + seasons.substr(begpos+1);
			}
			if (action == "SH") {
				between = "5";
				if (value == "5" || value == "6") seasons = seasons.substr(0,begpos) + "5" + seasons.substr(begpos+1);
				else if (value == "7" || value == "8" || value == "9") seasons = seasons.substr(0,begpos) + "7" + seasons.substr(begpos+1);
			}
			if (action == "SL") {
				between = "8";
				if (value == "5" || value == "6") seasons = seasons.substr(0,begpos) + "6" + seasons.substr(begpos+1);
				else if (value == "7" || value == "8" || value == "9") seasons = seasons.substr(0,begpos) + "8" + seasons.substr(begpos+1);
				else if (value == "2" || value == "3" || value == "4") seasons = seasons.substr(0,begpos) + "4" + seasons.substr(begpos+1);
			}
// change last season day
			if (action == "WH") {
				if (value == "0" || value == "2") seasons = seasons.substr(0,endpos) + "0" + seasons.substr(endpos+1);
				else if (value == "1" || value == "3") seasons = seasons.substr(0,endpos) + "1" + seasons.substr(endpos+1);
			}
			if (action == "WL") {
				if (value == "0" || value == "2") seasons = seasons.substr(0,endpos) + "2" + seasons.substr(endpos+1);
				else if (value == "1" || value == "3") seasons = seasons.substr(0,endpos) + "3" + seasons.substr(endpos+1);
				else if (value == "6" || value == "8") seasons = seasons.substr(0,endpos) + "4" + seasons.substr(endpos+1);
			}
			if (action == "SH") {
				if (value == "5" || value == "7") seasons = seasons.substr(0,endpos) + "5" + seasons.substr(endpos+1);
				else if (value == "6" || value == "8" || value == "9") seasons = seasons.substr(0,endpos) + "6" + seasons.substr(endpos+1);
			}
			if (action == "SL") {
				if (value == "5" || value == "7") seasons = seasons.substr(0,endpos) + "7" + seasons.substr(endpos+1);
				else if (value == "6" || value == "8") seasons = seasons.substr(0,endpos) + "8" + seasons.substr(endpos+1);
				else if (value == "1" || value == "3" || value == "9") seasons = seasons.substr(0,endpos) + "9" + seasons.substr(endpos+1);
			}
// change days between first and last day in seasons
			var nextpos = seasons.indexOf(begin,0) + 6 + bday;		// position of the day after the first day
			var nextmonpos = seasons.indexOf(begin,0) + 43;			// position of first day of next month
			var nextposcopy = nextpos;
			if (nrofdays > 0) {
				for (n=0; n<nrofdays; n++) {
					if (remain > 0) {
						value = seasons.charAt(nextpos);
						if (value != "n") seasons = seasons.substr(0,nextpos) + between + seasons.substr(nextpos+1);
						if (value == "n") nrofdays = nrofdays + 1;
						nextpos = nextposcopy + 1;
						nextposcopy = nextpos;
						remain = remain - 1;
					}
					else {
						nextpos = nextmonpos;						// switch over to next month: position index at first day of that month
						nextmonpos = nextmonpos + 37;				// shift the position of next month by one month
						nextposcopy = nextpos;
						remain = 31;
						n = n - 1;
					}
				}
			}
		}
	}
	window.actions = actions;
	document.getElementById("actiondata").value = actions;
	window.seasons = seasons;
	document.getElementById("seasondata").value = seasons;
	fillseasons();
}

//
// Function 'shift calendar with actions and seasons 1 year forward'
//
function moveseasons() {
	var year1 = window.year2;
	window.year1 = year1;
	var year2Int = parseInt(year1,10);
	year2Int = year2Int + 1;
	year2 = year2Int.toString();
	window.year2 = year2;
	nextyear = year2 + "010000000000000000000000000000000";
	nextyear = nextyear + year2 + "020000000000000000000000000000";
	if (year2Int%4 != 0) nextyear = nextyear + "nnn";
	if (year2Int%4 == 0) nextyear = nextyear + "0nn";
	nextyear = nextyear + year2 + "030000000000000000000000000000000";
	alert(nextyear);
	nextyear = nextyear + year2 + "04000000000000000000000000000000n";
	nextyear = nextyear + year2 + "060000000000000000000000000000000";
	nextyear = nextyear + year2 + "06000000000000000000000000000000n";
	nextyear = nextyear + year2 + "070000000000000000000000000000000";
	nextyear = nextyear + year2 + "080000000000000000000000000000000";
	nextyear = nextyear + year2 + "09000000000000000000000000000000n";
	nextyear = nextyear + year2 + "100000000000000000000000000000000";
	nextyear = nextyear + year2 + "11000000000000000000000000000000n";
	nextyear = nextyear + year2 + "120000000000000000000000000000000";
	var actions = window.actions;
	actions = actions.substr(444,444);
	actions = actions + nextyear;
	window.actions = actions;
	document.getElementById("actiondata").value = actions;
	var seasons = window.seasons;
	seasons = seasons.substr(444,444);
	seasons = seasons + nextyear;
	window.seasons = seasons;
	document.getElementById("seasondata").value = seasons;
	fillseasons();
}

function datePickerClosed(dateField,flag) {
	var inputdate = "";
	if (flag == 1) {
		inputdate = dateField;
	}
	else { 
		inputdate = dateField.name;
	}
	var error = "";
	var help = document.getElementById(inputdate).value;
	var date = help.split(".");
	if (date.length != 3) {
		if (inputdate == "begdat") error = "formaat begindatum is niet correct!";
		if (inputdate == "enddat") error = "formaat einddatum is niet correct!";
	}
	if (error == "") {
		var dd = parseInt(date[0],10);
		var mm = parseInt(date[1],10);
		var yr = date[2];
		if (yr.length < 4) yr = 2000 + parseInt(date[2],10);
		if (yr.length == 4) yr = parseInt(date[2],10);
		var maxday = new Array();
		for (i=1; i<=12; i++) {
			maxday[i] = 31;
			if (i == 4 || i == 6 || i == 9 || i == 11) maxday[i] = 30;
			if (i==2 && yr%4 != 0) maxday[2] = 28;
			if (i==2 && yr%4 == 0) maxday[2] = 29;
		}
		if (dd < 1 || dd > maxday[mm] || mm < 0 || mm > 12 || isNaN(dd) || isNaN(mm) || isNaN(yr)) {
			if (inputdate == "begdat") error = "begindatum of het formaat daarvan is niet correct!";
			if (inputdate == "enddat") error = "einddatum of het formaat daarvan is niet correct!";
		}
	}
	if (error == "") {
		var dat = yr * 10000 + mm * 100 + dd;
		if (inputdate == "begdat") {
			window.begdat = dat;
		}
		if (inputdate == "enddat")  {
			window.enddat = dat;
		}
	}
	x = document.getElementById("message").cells;
	x[0].innerHTML = error;
}
