var t,m,j,e,d,ad,at,am,hm,ht,hj,heute,datum,td,kalobj;

function inMyDate(myDate)
{
   for(f=0;f<elements_start.length;f++) {
       if (myDate >= elements_start[f] && myDate <= elements_end[f]) return true;
   }
	return false;
}

function _myDate(m, j)
{
	monat = m;
	jahr  = j;
}
var d;
var ns6;
var monthLabel;
var elements_start = new Array();
var elements_end = new Array();
var _done = false;

function initCal()
{
  d=new _myDate("","");
  ns6=document.getElementById&&!document.all;
  monthLabel = new Array('Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember');

  if (actDate.length>0) {
	  
	  sm=actDate.substring(3,5); 
	  if (sm.substring(0,1)=="0") sm=sm.substring(1,2);
	  
	  m = parseInt(sm);
	  j = parseInt(actDate.substring(6,10));
	  
	  if (m<1) m=new Date().getMonth()+1;
  }
  else {
	  m=new Date().getMonth()+1;
	  j=new Date().getFullYear();
  }
  
  d.monat=m;
  d.jahr=j;
  Kalender();
  
  _done=true;
}

function Kalender()
{
 if(document.getElementById && document.getElementsByTagName || navigator.userAgent.indexOf("Opera 7")!=-1)
 {
  // Werte fuer Monat (m) und Jahr (j) auslesen
  
  mydate 	= ""+d.jahr+""+d.monat;
  myintdate	= -1;
  
  m=parseInt(d.monat);
  j=parseInt(d.jahr);

  // t=Anzahl der Tage im aktuellen Monat
  t=31;
  t=(new Date(j,m-1,t).getDate()==t)?t:30;
  t=(new Date(j,m-1,t).getDate()==t)?t:29;
  t=(new Date(j,m-1,t).getDate()==t)?t:28;

  // e=Wochentag des Monatsersten (0=Sonntag bis 6)
  e=new Date(j,m-1,1).getDay();

  // at=aktuelles Datum
  ad=new Date();

  ht=ad.getDate().toString();
  ht=(ht.length==2)?ht:"0"+ht;
  hm=(ad.getMonth()+1).toString();
  hm=(hm.length==2)?hm:"0"+hm;
  hj=ad.getFullYear().toString();
  heute=ht+"."+hm+"."+hj;

  cross_el=ns6? document.getElementById("calname") : document.all.calname;
  cross_el.innerHTML = "<a href=\"javascript:momDate();\" title=\"Alle Veranstaltungen in diesem Monat anzeigen\">"+monthLabel[m-1]+" "+d.jahr+"</a>";

  kalobj=document.getElementById("kalender").getElementsByTagName("td");

  // Felder leeren
  for(i=0;i<kalobj.length;i++)
  {
    kalobj[i].style.color="#E6E6E5";
    kalobj[i].style.backgroundColor="#FFFFFF";
    kalobj[i].style.textDecoration="none";
    kalobj[i].firstChild.nodeValue=" ";
    kalobj[i].title="";
  }



  // Datumswerte einzeln abfragen, abgelaufene Tage durchstreichen, Sonntage rot markieren,
  // das jeweilige Datum mittels title als td-Tooltip setzen
  for(i=0;i<t;i++)
  {

	if (elements_start.length>0 && elements_end.length >0) {
		mydate = ""+d.jahr;
		if (m<10) mydate=mydate+"0"+d.monat; else mydate=mydate+d.monat;
		if (i<10) mydate=mydate+"0"+i; else mydate=mydate+i;
		if (i>0) myintdate = parseInt(mydate)+1; else myintdate=-1;
	}
	  
    if(e==0)k=i+6;
    else k=i+e-1;

    kalobj[k].style.fontWeight="normal";
    kalobj[k].firstChild.nodeValue=i+1;

	kalobj[k].style.backgroundColor="#E6E6E5";

    td=new Date(j,m-1,i+2);
    if(td-ad>=0)kalobj[k].style.color="#000000";
    else {kalobj[k].style.color="#A4A5A6";kalobj[k].style.textDecoration="line-through";}
//    if(k>0 && k % 7 == 0)kalobj[k-1].style.color="#A4A5A6";
    if(k==34)kalobj[k].style.color="#A4A5A6";
	
    at=(i+1).toString();
    at=(at.length==2)?at:"0"+at;
    am=m.toString();
    am=(am.length==2)?am:"0"+am;
    datum=at+"."+am+"."+j
    kalobj[k].title=datum;

    // aktuellen Tag hervorheben
    if(datum==heute){kalobj[k].style.color="#000000";kalobj[k].style.fontWeight="bold";}
	
	if (myintdate>0 && inMyDate(myintdate)) kalobj[k].style.color="#FF6600";
	
  }

//  if(kalobj[35].firstChild.nodeValue=="")document.getElementsByTagName("tr")[6].style.display="none";
//  else if(document.all)document.getElementsByTagName("tr")[6].style.display="block";
//  else document.getElementsByTagName("tr")[6].style.display="table-row";
 }
}

function TagMarkieren(par, col)
{
  if (!_done) return;
  // fuer IE
  if (col==null) col = "#FFCC00";
  
  if(par==1 && window.event)
  {
    if(window.event.srcElement.tagName=="TD")
    {
      // bei MouseOver Hintergrundfarbe aendern
      if(window.event.srcElement.firstChild.nodeValue!=" ") { window.event.srcElement.style.backgroundColor=col; window.event.srcElement.style.cursor="hand";}
    }
  }  
  else if(par==0 && window.event && window.event.srcElement.tagName=="TD" && window.event.srcElement.firstChild.nodeValue!=" ") window.event.srcElement.style.backgroundColor="#E6E6E5";
}

function Datum2Textfeld(datum,lt, sFrame)
{
	if (datum==null || datum=="" || datum.length<10) return;
	
	d = datum.substring(0,2);
	m = datum.substring(3,5);
	y = datum.substring(6,10);
	
	_datum = y+m+d; _datum1 = y+m+"01"; _datum2 = y+m+"31";

	_datum1 = y+m;
	_datum2 = y+m+d;
	_datum	= d+"."+m+"."+y;
	_display=datum;
	
	url = "/validate.html?node="+tableid+"&session="+tablesession+"&_cal.date="+_datum1+"&_caldis.date="+_datum2+"&_date="+_datum+"&_display="+_display+"&_calendar.stylesheet="+actStyle+"&portal.highlights.src="+actHighlights;
	document.location=url;
	// && lt=="none" wenn nicht vergangene
//  if(datum!="" && lt=="none")document.forms[1].elements[0].value=datum;
}

function momDate() 
{
	// Werte fuer Monat (m) und Jahr (j) auslesen
	m=parseInt(d.monat);
	j=parseInt(d.jahr);

	d.monat=""+m; 	if (d.monat.length<2) d.monat="0"+d.monat;
	d.jahr=""+j;
	
	_display= d.monat+"."+d.jahr;
	_datum1 = d.jahr+d.monat;	
	_datum	= "01."+d.monat+"."+d.jahr;
	
	document.location="/validate.html?node="+tableid+"&session="+tablesession+"&_cal.date="+_datum1+"&_caldis.date="+_datum1+"&_date="+_datum+"&_display="+_display+"&_calendar.stylesheet="+actStyle+"&portal.highlights.src="+actHighlights;

//	Kalender();
}

function lastDate() 
{
	// Werte fuer Monat (m) und Jahr (j) auslesen
	m=parseInt(d.monat);
	j=parseInt(d.jahr);
	m--;
	if (m<1) { m=12; j--; }
	
	d.monat=""+m; 	if (d.monat.length<2) d.monat="0"+d.monat;
	d.jahr=""+j;
	
	_display= d.monat+"."+d.jahr;
	_datum1 = d.jahr+d.monat;	
	_datum	= "01."+d.monat+"."+d.jahr;
	
	document.location="/validate.html?node="+pageId+"&_template="+tempId+"&session="+tablesession+"&_cal.date="+_datum1+"&_caldis.date="+_datum1+"&_date="+_datum+"&_display="+_display+"&_calendar.stylesheet="+actStyle+"&portal.highlights.src="+actHighlights;

//	Kalender();
}

function nextDate() 
{
	// Werte fuer Monat (m) und Jahr (j) auslesen
	m=parseInt(d.monat);
	j=parseInt(d.jahr);
	m++;
	if (m>12) { m=1; j++; }
	
	d.monat=""+m; if (d.monat.length<2) d.monat="0"+d.monat;
	d.jahr=""+j;

	_display= d.monat+"."+d.jahr;
	_datum1 = d.jahr+d.monat;	
	_datum	= "01."+d.monat+"."+d.jahr;
	
	document.location="/validate.html?node="+pageId+"&_template="+tempId+"&session="+tablesession+"&_cal.date="+_datum1+"&_caldis.date="+_datum1+"&_date="+_datum+"&_display="+_display+"&_calendar.stylesheet="+actStyle+"&portal.highlights.src="+actHighlights;

//	Kalender();
}
