function changeMonth(ndate,userModCellFunc)
		{
  		ndate=ndate.split(",");
			//delet oldtbody
			cT=document.getElementById("calendarTable");
			cT.removeChild(cT.getElementsByTagName("tbody")[0]);
			//delete forward & Backward
			cNavi=$("cNav");
			cNavi=cNavi.getElementsByTagName("td");
			cNavi[0].removeChild(cNavi[0].firstChild);
			cNavi[2].removeChild(cNavi[2].firstChild);
			cNavi[1].removeChild(cNavi[1].firstChild);
			//new tbody
			tb=cEm("tbody");
			tb.id="cTbody";
			aC($("calendarTable"),tb);
			//create Calendar
			createCalendar(userModCellFunc,ndate[1],ndate[0]);
		}
		
		//alert("hallo");
		//Name of the user function , ... 
		function createCalendar(userModCellFunc,year,month)
		{
  		d = new Date();
			if(month==null) month=d.getMonth();
			if(year==null) year=d.getFullYear();
			aktMonth=month;
			cNavi=$("cNav");
			ntd=cNavi.getElementsByTagName("td");
			img1=new Image();
			img2=new Image();
			img1.src="assets/templates/cForwrd.gif";
			img2.src="assets/templates/cBack.gif";
			img1.onclick=function(e) { changeMonth(fwdMonth(month,year),userModCellFunc) }
			img2.onclick=function(e) { changeMonth(bwdMonth(month,year),userModCellFunc) }
			img1.className="cfwdImg";
			img2.className="cbwdImg";
			
			m1=fwdMonth(month,year);
			m2=bwdMonth(month,year);
			m1=m1.split(",");
			m2=m2.split(",");
			img1.title=img1.alt=returnMonthName(m1[0])+" "+m1[1];
			img2.title=img2.alt=returnMonthName(m2[0])+" "+m2[1];
			ntd[1].onclick=function(e) 
    	{
      	document.location.href="index.php?id=32&date="+year+"-"+number_format(parseInt(month)+1)+"-"+number_format(1)+"&month="+number_format(parseInt(month)+1);
    	}
			ntd[1].style.cursor="pointer";
			aC(ntd[2],img1);
			aC(ntd[1],cTn(returnMonthName(month)+" "+year));
			aC(ntd[0],img2);
			
			nd=new Date();
			first=true;
			tds=cEs("td",7);
			for(a=1;a<=returnMonthLength(month,year);a++)
			{
  			nd.setDate(a)
  			nd.setMonth(month)
  			nd.setFullYear(year)
  			aktDay=nd.getDay()-1;
				aktDay=(aktDay<0)?6:aktDay; //eng: sunday=0 monday=1 -> bullshits
				if(userModCellFunc) window[userModCellFunc](nd,tds[aktDay]);
				aC(tds[aktDay],cTn(a));
				if(aktDay==6 || a==returnMonthLength(month,year))
  			{
					//tds[0].className="first";
					//tds[6].className="sonntag";
					tr=cEm("tr");
					aCs(tr,tds,1);
					tbody=$("cTbody");
					aC(tbody,tr);
					tds=cEs("td",7);
  			}
			}
		}
		
		function checkDateActionForManager(d,cell)
		{
  		checkDateAction(d,cell,1);
		}
		
		function tkM(e)
		{
		   thisField=$(e.name);
			 document.getElementById("tkMcal").style.visibility = "visible";
			 m=getPositions(e);
			 document.getElementById("tkMcal").style.left=m.x+50+"px";
			 document.getElementById("tkMcal").style.top=m.y+20+"px";
			 outSelect("hidden");
			 
			 document.getElementById("cInf").innerHTML="<span onclick='outManagerTkCal();outSelect(\"visible\");' class='exitTk'>Abbrechen</span>";
			 
		}
		
		function outManagerTkCal()
		{
		  document.getElementById("tkMcal").style.visibility = "hidden";
		}
		
		
		function outSelect(visibility)
		{
  		sels=document.getElementsByTagName("select");
			for(i=0;i<sels.length;i++)
			{
  			sels[i].style.visibility=visibility;
			}
		}
		
		var thisField;
		
		//returns the position off an elements PARENT!!!! 
		function getPositions(el) 
		{
    	var SL = 0, ST = 0;
    	var is_div = /^div$/i.test(el.tagName);
    	if (is_div && el.scrollLeft) SL = el.scrollLeft;
			if (is_div && el.scrollTop)  ST = el.scrollTop;
			
			var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
			
    	if (el.offsetParent) {
    		var tmp = getPositions(el.offsetParent);
    		r.x += tmp.x;
    		r.y += tmp.y;
    	}
    	return r;
    };
		
		function checkDateAction(d,cell)
		{
  		var day=d.getDate();
			var month=d.getMonth();
			var year=d.getFullYear();
			var Desc=new Array();
			var Descr=new Array();
			cont=0;
			for(t=0;t<TKTERMINE.length;t++)
			{
  			tDesc=TKTERMINE[t];
				if(tDesc.indexOf(number_format(day)+"-"+number_format(month+1)+"-"+year)==-1) continue; 
  			cell.style.cursor="pointer";
				Descr=tDesc.split("|");
				Desc[Desc.length]=Descr[1];
			  //alert(TKTERMINE[t]);
				/*cell.onclick=function(e)  
    		{
        	alert(Descr);
  				document.location.href="index.php?id=32&date="+year+"-"+number_format(month+1)+"-"+number_format(day)+"&month="+number_format(month+1)+"&aktPl="+Descr[2];
    		}	*/
				cont++;
			}
			cell.className="tkEntries "+number_format(day)+number_format(month+1)+year;
			cell.onclick=function(e) 
    	{
      	//alert(Descr);
				document.location.href="index.php?id=32&date="+year+"-"+number_format(month+1)+"-"+number_format(day)+"&month="+number_format(month+1)+"&aktPl="+Descr[2];
    	}
			if(Desc.length!=0) 
			{
  			cell.style.backgroundColor="#58BFE2";
				
				//cell.style.color="#ffffff";
			}
			else return; 
			ul=cEm("ul");
    	ul.id="tkEntries"+number_format(day)+number_format(month+1)+year;
    	for(m=0;m<Desc.length;m++)
			{
  			li=cEm("li");
  			aC(li,cTn(unescape(Desc[m])));
  			aC(ul,li);
			}
			aC($("cInf2"),ul);
					
  		cell.onmouseover=function() 
			{
  			
				try
      	{
        	num=this.className.replace(" ","");
					//alert(num);
					document.getElementById(num).style.display = "block";
      		aktDiv = num;
      	}
      	catch(e) { aktDiv = false;}
			}
			cell.onmouseout=function() 
			{
  			try
      	{
        	num=this.className.replace(" ","");
				  document.getElementById(num).style.display = "none";
      		aktDiv = num;
      	}
      	catch(e) { aktDiv = false;}
			}		
		}
		
		function number_format(nr)
		{
		if(nr<10) nr="0"+nr;
		return nr;
		}
		
		function fwdMonth(m,y)
		{
			if(m==11) {m=-1;y++;}
			m++;
			return m+","+y;
		}
		
		function bwdMonth(m,y)
		{
  		if(m==0)  {m=12;y--;}
			m--;
			return m+","+y;
		}
		
		//getElementNyId
		//function $(Eid)							  {		return document.getElementById(Eid);    } 
		//createTextNode
		function cTn(tn) 							{ 	return document.createTextNode(tn); 		}
		//createElement
		function cEm(el) 							{		return document.createElement(el);			}
		//cloneNode
		function cN(el)  							{		return document.cloneNode(el);					}
		//appendChild
		function aC(pa,el)  					{		return pa.appendChild(el);							}
		
		//create 8 td elements
		function cEs(el,count) 
		{		
  		els=new Array();
			for(i=0;i<count;i++)
			{
  			els[i]=cEm(el);
			}
			return els;		
		}
		
		//append Elemenents to one child
		function aCs(pa,els,offset) 
		{		
			for(i=0;i<els.length;i++)
			{
				aC(pa,els[i]);
			}	
		}
		
		function returnDayName(day)
		{
  		if(day==1) return "Montag";
			if(day==2) return "Dienstag";
			if(day==3) return "Mittwoch";
			if(day==4) return "Donnerstag";
			if(day==5) return "Freitag";
			if(day==6) return "Samstag";
			if(day==0) return "Sonntag";
		}
		
		function returnMonthName(mnr)
		{
  		if(mnr==0) return "Januar";
			if(mnr==1) return "Februar";
			if(mnr==2) return unescape("M%E4rz");
			if(mnr==3) return "April";
			if(mnr==4) return "Mai";
			if(mnr==5) return "Juni";
			if(mnr==6) return "Juli";
			if(mnr==7) return "August";
			if(mnr==8) return "September";
			if(mnr==9) return "Oktober";
			if(mnr==10) return "November";
			if(mnr==11) return "Dezember";
		}
		
		function returnMonthLength(mnr,year)
		{
  		if(mnr==0) return 31;
			if(mnr==1) 
			{
  			r=28;
  			if (year % 4 == 0) r++;
        if (year % 100 == 0) r--;
        if (year % 400 == 0) r++;
  			return r;
			}
			if(mnr==2) return 31;
			if(mnr==3) return 30;
			if(mnr==4) return 31;
			if(mnr==5) return 30;
			if(mnr==6) return 31;
			if(mnr==7) return 31;
			if(mnr==8) return 30;
			if(mnr==9) return 31;
			if(mnr==10) return 30;
			if(mnr==11) return 31;
		}
