var ie=false
var ns6=false
var n=false
var bFirefox=false
if (document.all)
	{ie=true;}
if (document.getElementById && !document.all)
	{ns6=true;}
if (document.layers)
	{n=true;}
if (navigator.userAgent.indexOf("Firefox") > -1)
	{bFirefox = true;}
	
var bIsHoliday=false

if (ie||ns6)    {fShow="visible";fHide="hidden";}
if (n) {fShow="show"; fHide="hide";}

var MonthNames = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
var nCurrentYear = 0;
var nCurrentMonth = 0;

var nWidth  = 20;
var nHeight = 18;

var leftX;
var rightX
var topY;
var bottomY;


function Calendar()
{

var HTMLstr = "";

HTMLstr += "<table width='183px' cellspacing='0' cellpadding='0' border='0'>\n";
/* HTMLstr += "<tr><td bgcolor=rgb(137,170,214)>\n"; */
//HTMLstr += "<tr><td bgcolor=rgb(170,170,170)>\n";
HTMLstr += "<tr><td bgcolor='darkgray'>\n";
HTMLstr += "\n";
HTMLstr += "<table border='0' cols='3' width='99%'>\n";
HTMLstr += "<tr>\n";
HTMLstr += "<td><b><font color='white'>Jahr:</font></b></td>\n";
HTMLstr += "\n";
if (n)
{
	HTMLstr += "<td align='right' width='65'>\n";
	HTMLstr += "<a href=\"javascript:prevYear();\"><font color='white' size=-1>&laquo;</font></a>\n";
	HTMLstr += "<a href=\"javascript:nextYear();\"><font color='white' size=-1>&raquo;</font></a>\n";
}
if (ie||ns6)
{
	HTMLstr += "<td align='right' width='65'>\n";
HTMLstr += "<a href=\"javascript:prevYear();\" style='text-decoration: none;'><font color='white' size=-1>&laquo;</font></a>\n";
HTMLstr += "<a href=\"javascript:nextYear();\" style='text-decoration: none;'><font color='white' size=-1>&raquo;</font></a>\n";
}
HTMLstr += "</td>\n";
HTMLstr += "\n";
HTMLstr += "<td align='left'>";

if (n) HTMLstr += "<ilayer id='main'><layer id='idYear' top='0' left='0'>\n";
if (ie||ns6)HTMLstr += "<div id='main' style='position: relative'>\n";
HTMLstr += "<font color='#000000'><b>1999</b></font>\n";
if (n) HTMLstr += "</layer></ilayer>\n";
if (ie||ns6)HTMLstr += "</div>\n";
HTMLstr += "</td>\n";
HTMLstr += "</tr>\n";
HTMLstr += "<tr>\n";
HTMLstr += "<td><b><font color='white'>Monat:</font></b></td>\n";
HTMLstr += "\n";
HTMLstr += "<td align='right'>\n";
if (n)
{
	HTMLstr += "<a href=\"javascript:prevMonth();\"><font color='white' size=-1>&laquo;</font></a>\n";
	HTMLstr += "<a href=\"javascript:nextMonth();\"><font color='white' size=-1>&raquo;</font></a>\n";
}
if (ie||ns6)
{
HTMLstr += "<a href=\"javascript:prevMonth();\" style='text-decoration: none;'><font color='white' size=-1>&laquo;</font></a>\n";
HTMLstr += "<a href=\"javascript:nextMonth();\" style='text-decoration: none;'><font color='white' size=-1>&raquo;</font></a>\n";
}
HTMLstr += "</td>\n";
HTMLstr += "\n";
HTMLstr += "<td align='left'>\n";
if (ie||ns6)HTMLstr += "<div id='main2' style='position=relative;'>";
if (n) HTMLstr += "<ilayer id='main2'><layer id='idMonth' top='0' left='0'>\n";
HTMLstr += "<font color='#000000'><b>Dezember</b></font>\n";
if (ie||ns6) HTMLstr += "<div>\n";
if (n) HTMLstr += "</layer></ilayer>\n";
HTMLstr += "</td>\n";
HTMLstr += "\n";
HTMLstr += "</tr>\n";
HTMLstr += "</table>\n";
HTMLstr += "\n";
HTMLstr += "</td></tr>\n";
HTMLstr += "\n";
HTMLstr += "<tr height='125px' width='182px'><td valign=\"top\">\n";
HTMLstr += "\n";
HTMLstr += "<table width=182px border=0 cols=7>\n";
HTMLstr += "<table width=182px border=0 cols=7>\n";
HTMLstr += "<tr>\n";
HTMLstr += "<td width='31px'><b>&nbsp;Mo</b></td>\n";
HTMLstr += "<td width='22px'><b>Di</b></td>\n";
HTMLstr += "<td width='22px'><b>Mi</b></td>\n";
HTMLstr += "<td width='23px'><b>Do</b></td>\n";
HTMLstr += "<td width='23px'><b>Fr</b></td>\n";
HTMLstr += "<td width='23px'><b>Sa</b></td>\n";
HTMLstr += "<td width='23px'><b>So</b></td>\n";
HTMLstr += "</tr>\n";
HTMLstr += "<tr>\n";
HTMLstr += "<td colspan=7>\n";
if (ie||ns6) HTMLstr += "<div style='position: relative;'>";
if (n) HTMLstr += "<ilayer id='idMenuContainer' height='125px' width='182px'>\n";

  var sTag = 1;
  for (var date=1; date <= 31; date++)
  {
	sTag = date;
	if (date > 0 && date < 10)
	{ sTag = "&nbsp;&nbsp;" + sTag; }
if (n)
{
	HTMLstr += "  <layer id=\"idDate"+date+"\" val="+date+" visibility=\"hide\">\n";
	// HTMLstr += "    <layer><b>"+date+"</b></layer>\n";
	HTMLstr += "    <layer><b>"+sTag+"</b></layer>\n";
	HTMLstr += "  </layer>\n";
}
if (ie||ns6)
{
	HTMLstr += "  <div id=\"idDate"+date+"\" val="+date+" style=\"position: absolute; visibility: hidden\">\n";
	// HTMLstr += "    <b>"+date+"</b>\n";
	HTMLstr += "    <b>"+sTag+"</b>\n";
	HTMLstr += "  </div>\n";
}
  }

  // alert("ie: " + ie + "\n" + "ns6: " + ns6 + "\n" + "n:  " + n + "\n" + "Agent: " + navigator.userAgent);
  
if (ie||ns6)HTMLstr += "</div>";
if (n) HTMLstr += "</ilayer>\n";
HTMLstr += "</td></tr>\n";
HTMLstr += "</table>\n";
HTMLstr += "\n";
HTMLstr += "</td></tr>\n";
HTMLstr += "</table>\n";

if (!bFirefox)
{
	document.writeln(HTMLstr);
	buildMonthMenu(HTMLstr);
}
}


function setCurrentMonth()
{
  date = new Date();
  currentyear=date.getYear()
  if (currentyear < 1000)
  currentyear+=1900
  setYearMonth(currentyear, date.getMonth()+1);
}

function setMonth(nMonth)
{
	setYearMonth(nCurrentYear, nMonth);
}

function Holiday(xDate)
{
   nJahr = xDate.getFullYear();
   nMonat = xDate.getMonth() + 1;
   nTag = xDate.getDate();

   if (nMonat == 1 && nTag == 1)
     return true;
   if (nMonat == 5 && nTag == 1)
     return true;
   if (nMonat == 10 && nTag == 3)
     return true;
   if (nMonat == 12 && nTag == 25)
     return true;
   if (nMonat == 12 && nTag == 26)
     return true;

   if (nJahr == 2009)
   {
      if (nMonat == 4 && nTag == 10)  // Karfreitag
	     return true;
      if (nMonat == 4 && nTag == 13)  // Ostermontag
	     return true;
      if (nMonat == 6 && nTag == 1)  // Pfingstmontag
	     return true;
      if (nMonat == 6 && nTag == 11)  // Fronleichnam
	     return true;
   }
   return false;
}

function istDatumHeute(xDate)
{
	var yDate = new Date();
	//alert(xDate + "\n" + yDate);
	if (xDate.getFullYear() == yDate.getFullYear() && 
		xDate.getMonth() == yDate.getMonth() &&
		xDate.getDate() == yDate.getDate())
		   {return true;}
	else
	   {return false;}
}

function setYearMonth(nYear, nMonth)
{
//if (bFirefox)
//   {return;}
   
if (ie||ns6)
{
  nCurrentYear = nYear;
  nCurrentMonth = nMonth;
  var cross_obj=ns6? document.getElementById("main"): document.all["main"]
  var cross_obj2=ns6? document.getElementById("main2"): document.all["main2"]
  cross_obj.innerHTML  = "<font color=\"#000000\"><b>"+nCurrentYear+"</b></font>";
  cross_obj2.innerHTML = "<a href=\"javascript:showMonthMenu()\" style=\"text-decoration:none\"><font color=\"#000000\"><b>"+MonthNames[nCurrentMonth-1]+"</b></font></a>\n";

  var date   = new Date(nCurrentYear, nCurrentMonth-1, 1);
  var nWeek  = 1;
  var nDate;

  while (date.getMonth() == nCurrentMonth-1)
  {
	nDate = date.getDate();
	nLastDate = nDate;
	
	var posDay = date.getDay()-1;
	if (posDay == -1) posDay=6;
	var posLeft = posDay*(nWidth+5)+5;
	var posTop  = (nWeek-1)*nHeight;
        var cross_obj3=ns6 ? document.getElementById("idDate"+nDate).style : document.all["idDate"+nDate].style
	cross_obj3.left = posLeft;
	cross_obj3.top  = posTop;
	bIsHoliday = Holiday(date);
	if (date.getDay() == 0 || bIsHoliday)
		cross_obj3.color  = "red";
	else if (date.getDay() == 6 && !bIsHoliday)
		cross_obj3.color  = "darkgray";
	else if (date.getDay() != 0 && date.getDay() != 6 && !bIsHoliday)
		cross_obj3.color  = "black";
	if (istDatumHeute(date))
		cross_obj3.background  = "lightblue";
	else
		cross_obj3.background = "rgb(235,235,235)";
	cross_obj3.visibility = "visible";
	date = new Date(nCurrentYear, date.getMonth(), date.getDate()+1);
	bIsHoliday = false;
	
	if (posDay == 6) nWeek++;
  }
  for (++nDate; nDate <= 31; nDate++){
        cross_obj3= ns6 ? document.getElementById("idDate"+nDate).style : document.all["idDate"+nDate].style
	cross_obj3.visibility = "hidden";
      }
}
  if (n)
{
  // Verify parameters
  if (nMonth < 1 || nMonth > 12) {alert("Function: setYearMonth()\nERROR: Incorrect month "+nMomth);}

  nCurrentYear = nYear;
  nCurrentMonth = nMonth;

  document.main.document.idYear.document.open();
  document.main.document.idYear.document.write("<font color=\"#99ffff\"><b>"+nCurrentYear+"</b></font>");
  document.main.document.idYear.document.close();

  document.main2.document.idMonth.document.open();
  document.main2.document.idMonth.document.write("<a href=\"javascript:showMonthMenu()\" style=\"text-decoration:none\"><font color=\"#99ffff\"><b>"+MonthNames[nCurrentMonth-1]+"</b></font></a>");
  document.main2.document.idMonth.document.close();

  var date   = new Date(nYear, nMonth-1, 1);
  var nWeek  = 1;
  var nDate;

  while (date.getMonth() == nMonth-1)
  {
	nDate = date.getDate();
	nLastDate = nDate;

	var posDay = date.getDay()-1;
	if (posDay == -1) posDay=6;
	var posLeft = posDay*(nWidth+5)+5;
	var posTop  = (nWeek-1)*nHeight;

	document.layers["idMenuContainer"].document.layers["idDate"+nDate].left = posLeft;
	document.layers["idMenuContainer"].document.layers["idDate"+nDate].top  = posTop;
	if (date.getDay() == 0 || date.getDay() == 6)
		document.layers["idMenuContainer"].document.layers["idDate"+nDate].color  = "red";
	else
		document.layers["idMenuContainer"].document.layers["idDate"+nDate].color  = "black";
	document.layers["idMenuContainer"].document.layers["idDate"+nDate].visibility = "visible";
	date = new Date(nCurrentYear, date.getMonth(), date.getDate()+1);
	if (posDay == 6) nWeek++;
  }
  for (++nDate; nDate <= 31; nDate++)
	document.layers["idMenuContainer"].document.layers["idDate"+nDate].visibility = "hidden";
}
}

function nextMonth()
{
  nCurrentMonth++;
  if (nCurrentMonth > 12)
  {
	nCurrentMonth -= 12;
	nextYear();
  }
  
  setYearMonth(nCurrentYear, nCurrentMonth);
}


function prevMonth()
{
  nCurrentMonth--;
  if (nCurrentMonth < 1)
  {
	nCurrentMonth += 12;
	prevYear();
  }
  setYearMonth(nCurrentYear, nCurrentMonth);

}

function prevYear()
{
  nCurrentYear--;
  setYearMonth(nCurrentYear, nCurrentMonth);
}

function nextYear()
{
  nCurrentYear++;
  setYearMonth(nCurrentYear, nCurrentMonth);
}

////////////////////////////////////////////////////

function updateIt(e)
{
//  var x = e.pageX;
//  var y = e.pageY;

//  if (x > rightX || x < leftX) hideMonthMenu();
//  else if (y > bottomY || y < topY) hideMonthMenu();
}

function hideMonthMenu()
{
  document.layers["idMonthMenu"].visibility="hide";
}

function showMonthMenu()
{
if (!n) return;
  topY    = document.layers["main2"].pageY-50;
  bottomY = document.layers["main2"].pageY + document.layers["idMonthMenu"].clip.height+50;
  leftX   = document.layers["main2"].pageX-50;
  rightX  = document.layers["main2"].pageX + document.layers["idMonthMenu"].clip.width+50;

  document.layers["idMonthMenu"].top = document.layers["main2"].pageY+document.layers["main2"].clip.height;
  document.layers["idMonthMenu"].left = document.layers["main2"].pageX;
  document.layers["idMonthMenu"].visibility="show";
}

function buildMonthMenu()
{
if (!n) return;
  var HTML = "";
  HTML += "<layer id=\"idMonthMenu\" visibility=\"hide\" width=\"120\" bgcolor=\"darkblue\">\n";
  HTML += "<table border=\"1\" cellspacing=\"0\" cellpading=\"0\">\n";
  for (var month=0; month<12;)
  {
	HTML += "<tr>\n";
	for (var i = 0; i < 3; i++)
	{
		var nMonth = month+1;
		HTML += "<td><a href=\"javascript:hideMonthMenu();setMonth("+nMonth+");\"><font color=\"white\" size=-1><b>"+MonthNames[month]+"</b></font></a></td>\n";
		month++;
	}
	HTML += "</tr>\n";
  }
  HTML += "</table>";
  HTML += "</layer>";
  document.writeln(HTML);
}
