var DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var lDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var moty = ["Januar","Februar","M?rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"];
var tage = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
var date = new Date();
var curr_dy = date.getDate(); 
var m = date.getMonth();
var y = date.getFullYear();
var curr_mn = date.getMonth();
var curr_yr = date.getFullYear();


function kalender(m, y) {
	if (isNaN(m)) m = date.getMonth();
	if (isNaN(y)) y = date.getFullYear(); 
	var dayNo = figureDOTW(m, 1, y);
	var monthNo = Calendar_get_daysofmonth(m, y);
	var dayCount = 1;
	var nMonth = getNextMonth(m, y, +1);
	var pMonth = getNextMonth(m, y, -1);


	//event.cancelBubble = true;
	//aufheben();

	var mutter = document.getElementById('pos');	
	//mutter.setAttribute("style", "position:absolute; width:188px; heigth: 188px; top:360px;");	
	kill_kids(mutter);
	
	//var DOMLayer = document.createElement('LAYER');
	//DOMLayer.setAttribute("OnMouseout", "kill_kal('"+welcher+"');");
	//DOMLayer.setAttribute("style", "position:relative; width:188px; heigth: 160px; top:0px; left: 0px");
	//DOMLayer.onmousout = alert("hallo");
	//DOMLayer.setCapture;
	//DOMLayer.releaseCapture;
	
	//DOMLayer.ClickHandler = Demo_ClickHandler; 
	//XBrowserAddHandler(DOMLayer,"mouseout","ClickHandler"); 	
	
	var kalender = document.createElement('TABLE');
	
	//window.document.captureEvents(Event.MOUSEOUT);
	//window.document.onclick = stopit;
	//kalender.addEventListener("onmouseout", stopit, true);
	//removeEvent(kalender, "mouseout", stopit)
	
	mutter.appendChild(kalender);

	kalender.setAttribute("width", 188);
	kalender.setAttribute("border", 1);
	kalender.setAttribute("rules", "all");
	kalender.setAttribute("cellspacing", 1);
	kalender.setAttribute("cellpadding", 1);
	//kalender.setAttribute("z-index", 3);
	//kalender.setAttribute("id", welcher);
	
	kalender.setAttribute("style", "font-size: 10px; font-family: verdana; height: 140px; background-color: #ffffff; cursor: pointer; position:relative; top: 0px; margin:0 0 0 0;");	
	//DOMLayer.appendChild(kalender);
	
	var TBody = document.createElement('TBODY');
	kalender.appendChild(TBody);
	
	var navTR = document.createElement('TR');
	navTR.setAttribute("style", "background-color:#bbbbbb;");
	TBody.appendChild(navTR);
	
	var navTD = document.createElement('TD');
	navTD.setAttribute("align", "center");
	if (curr_yr < y-1) {
		navTD.innerHTML = '<a href="javascript:void(0)" title="Ein Jahr zur?ck" onclick="kalender('+m+','+(y-1)+')"><<</a>';
	} else {
		navTD.innerHTML = "";
	}
	navTR.appendChild(navTD);
	navTD = document.createElement('TD');
	navTD.setAttribute("align", "center");
	if (curr_mn < m || curr_yr != y) {
		navTD.innerHTML = '<a href="javascript:void(0)" title="Einen Monat zur?ck" onclick="kalender('+pMonth[0]+','+pMonth[1]+')"><</a>';
	} else {
		navTD.innerHTML = "";
	}
	navTR.appendChild(navTD);
	navTD = document.createElement('TD');
	navTD.setAttribute("align", "center");
	navTD.innerHTML = moty[m] +'<br/>'+y;
	navTD.setAttribute("style", "background-color:#dddddd;");
	navTD.setAttribute("colspan", 3);
	navTD.setAttribute('width', 100);
	navTR.appendChild(navTD);
	navTD = document.createElement('TD');
	navTD.setAttribute("align", "center");
	navTD.innerHTML = '<a href="javascript:void(0)" title="Einen Monat vor" onclick="kalender('+nMonth[0]+','+nMonth[1]+')">></a>';
	navTR.appendChild(navTD);
	navTD = document.createElement('TD');
	navTD.setAttribute("align", "center");
	navTD.innerHTML = '<a href="javascript:void(0)" title="Ein Jahr vor" onclick="kalender('+m+','+(y+1)+')">>></a>';
	navTR.appendChild(navTD);
		
	navTR = document.createElement('TR');
	navTR.setAttribute("style", "background-color:#cccccc;");
	navTR.setAttribute("align", "center");
	
	for(var i=0; i<tage.length; i++) {
		navTD = document.createElement('TD');
		var navTD_text = document.createTextNode(tage[i]);
		navTD.appendChild(navTD_text);
		navTR.appendChild(navTD);
		
	}
	TBody.appendChild(navTR);
	
	for (i=0; i<6; i++){ 
		var calTR = document.createElement('TR');
		calTR.setAttribute("align", "center");
		var calTDtext;
		
		for (var j=0; j<7; j++){
		
			var calTD = document.createElement('TD');
			if (j == 0 || j == 6 ) //wochenende
				calTD.style.backgroundColor = '#ffffff';
			if ((i==0 && j < dayNo) || dayCount > monthNo) // if this is the first row....
				calTDtext = document.createElement('BR');
			else  {
				calTDtext = document.createTextNode(dayCount.toString());
				
				if (dayCount == curr_dy && m == curr_mn && y == curr_yr)
					calTD.style.color = '#f00f00';
				dayCount++;
			}
			calTD.appendChild(calTDtext);
			if (curr_dy >= dayCount && (m == curr_mn && y == curr_yr)) {
				calTD.setAttribute("style", "background-color:#000000");
			} else {
				calTD.setAttribute("OnClick","set_datum('"+(dayCount-1)+"."+(m+1)+"."+(y)+"');");
			}
			calTD.setAttribute('width','14%');
			calTR.appendChild(calTD);
		}
		TBody.appendChild(calTR);
	}

}

function figureDOTW(m,d,y){
	var tDate = new Date(); 
	tDate.setDate(d); 
	tDate.setMonth(m); 
	tDate.setYear(y); 
	return tDate.getDay();
}

function Calendar_get_daysofmonth(monthNo, p_year) {
	if ((p_year % 4) == 0) {
		if ((p_year % 100) == 0 && (p_year % 400) != 0)
			return DOMonth[monthNo];
		return lDOMonth[monthNo];
	} else
		return DOMonth[monthNo];
}

function getNextMonth(m,y,incr){
	var ret_arr = new Array();
	ret_arr[0] = m + incr; 
	ret_arr[1] = y;
	if (ret_arr[0] == 12){ 
		ret_arr[0]=0; 
		ret_arr[1]=ret_arr[1]+1; 
	}
	if (ret_arr[0] == -1){ 
		ret_arr[0]=11; 
		ret_arr[1]=ret_arr[1]-1; 
	}
	return ret_arr;
}

function set_datum(datum) {	
	document.getElementById('termin_datum').value = datum;	
}

function kill_kids(mutter){ // t?ten aller kinder der mutter
	var anzahl = mutter.childNodes.length;
	for (i=0;i<anzahl;i++) { 
		mutter.removeChild(mutter.childNodes[0]); 
	}
}


