var TTKAL = {
	hin: true,
	formname: 'bengine',
	ibe: 'IBE',
	terminMin: '',
	terminMax: '',
	selTermin: null,
	showMonth: null,
	init: function (getTerminMin, getTerminMax) {
		this.terminMin = getTerminMin;
		this.terminMax = getTerminMax;
		try {
			var bform = document.forms[this.formname];
			if (this.hin) {
				var str = bform.ktag.value + "." + bform.kmonat.value;
			} else {
				var str = bform.rueckktag.value + "." + bform.rueckkmonat.value;
			}
			this.selTermin = new Date(str.split('.')[2], parseInt(str.split('.')[1], 10) - 1,parseInt(str.split('.')[0], 10), 12, 0, 0);
		} catch(e) {
			this.selTermin = new Date();
			if (this.hin) {
				this.selTermin.setTime(IBE.req.termin * 1000);
			} else {
				this.selTermin.setTime(IBE.req.ruecktermin * 1000);
			}
		}
		this.showMonth = new Date(this.selTermin.getTime());
		this.showMonth.setDate(1);
		this.showMonth.resetTime();
	},
	updateSelTermin:function(hin_bool){
		 try {
			var bform = document.forms[this.formname];
			if (hin_bool) {
				var str = bform.ktag.value + "." + bform.kmonat.value;
			} else {
				var str = bform.rueckktag.value + "." + bform.rueckkmonat.value;
			}
			this.selTermin = new Date(str.split('.')[2], parseInt(str.split('.')[1], 10) - 1, parseInt(str.split('.')[0], 10), 12, 0, 0);
		} catch(e) {
			this.selTermin = new Date();
			if (hin_bool) {
				this.selTermin.setTime(IBE.req.termin * 1000);
			} else {
				this.selTermin.setTime(IBE.req.ruecktermin * 1000);
			}
		}
		this.showMonth = new Date(this.selTermin.getTime());
		this.showMonth.setDate(1);
		this.showMonth.resetTime();
		this.showKalenderControl();
	},
	showKalenderControl: function () {
		var strInnerHTML = '';
		var divTable = document.getElementById('kalTable');
		var divTitel = document.getElementById('kalTitel');
		var strTitel = monthNames[this.showMonth.getMonth()]+" "+this.showMonth.getFullYear();
		divTitel.innerHTML = strTitel;
		var today = new Date();
		today.setHours(12,0,0,0);
		var startDate = new Date(this.showMonth.getTime());
		var diff = startDate.getDay();
		if (diff) {
			startDate.addDay(1-diff);
		} else {
			startDate.addDay(-6);
		}
		startDate.setHours(12);
		strInnerHTML += '<table cellspacing="0" cellpadding="0">';
		strInnerHTML += '<tbody>';
		for (var i = 0; i < 6; i += 1) {
			strInnerHTML += '<tr>';
			for (var j = 0; j < 7; j += 1) {
				if (
					startDate.getTime() < (this.terminMin*1000) || 
					startDate.getTime() > (this.terminMax*1000)
				) {
					if (startDate.getDay() == 0) {
						aktCss = 'klnl niedziela';	
					} else if (startDate.getDay() == 6) {
						aktCss = 'klnl sobota';
					} else {
						aktCss = 'klnl';
					}
				} else if (
					startDate.getMonth() != this.showMonth.getMonth() || 
					startDate.getFullYear() != this.showMonth.getFullYear()
				) {
					if (startDate.getDay() == 0) {
						aktCss = 'kalam niedziela';	
					} else if (startDate.getDay() == 6) {
						aktCss = 'kalam sobota';
					} else {
						aktCss = 'kalam';
					}
				} else if (startDate.getDay() == 0) {
				  aktCss = 'kalson2 niedziela';
				} else {
					if (startDate.getDay() == 0) {
						aktCss = 'kalwt niedziela';	
					} else if (startDate.getDay() == 6) {
						aktCss = 'kalwt sobota';
					} else {
						aktCss = 'kalwt';
					}
				}
				if (startDate.getTime()==this.selTermin.getTime()) {
					aktCss += '" id="today';
				}
				if (aktCss!='klnl') {
					var val = twoDigit(startDate.getDate()) + "." + twoDigit(startDate.getMonth() + 1) + "." + startDate.getFullYear();
					strLink = ' onclick="TTKAL.selectDate(\'' + val + '\');" style="cursor:pointer;"';
				} else {
					strLink = '';
				}
				strInnerHTML += '<td class="' + aktCss + '"' + strLink + '>' + startDate.getDate() + '</td>' + "\r\n";
				startDate.addDay();
			}
			strInnerHTML += '</tr>';
		}
		strInnerHTML += '</tbody>';
		strInnerHTML += '</table>';
		divTable.innerHTML = strInnerHTML;		
	},
	showNextMonth: function() {
		var tmpMonth = new Date(this.showMonth);
		tmpMonth.addMonth();
		if (tmpMonth.getTime() < (this.terminMax * 1000)) {
		  this.showMonth = tmpMonth;
		  this.showKalenderControl();
		} else {
		  alert("Późniejszy termin nie jest niestety możliwy.");
		}	
	},
	showPrevMonth: function () {
		var tmpMonth = new Date(this.showMonth);
		tmpMonth.setDate(0);tmpMonth.setDate(1);
		var firstMonth = new Date(this.terminMin * 1000);
		firstMonth.setDate(1);firstMonth.resetTime();
		if (tmpMonth.getTime() >= firstMonth.getTime()) {
		  this.showMonth = tmpMonth;
		  this.showKalenderControl();
		} else {
		  alert("Wcześniejszy termin nie jest niestety możliwy.");
		}
	},
	selectDate: function(strDate) {
		IBE.SetDatum(strDate,this.hin,'',4);
		try {
			document.getElementById('popup_kal').style.display= "none";
			document.getElementById('kalendarz1').value = document.getElementById('ktag').value + "." + document.getElementById('kmonat').value;
			document.getElementById('kalendarz2').value = document.getElementById('rueckktag').value + "." + document.getElementById('rueckkmonat').value;
		} catch(e) {}
		//self.close();
	}
};


