	//	********************************************************************************************************
	//		calendar.js
	//	********************************************************************************************************
	//
	//		ERSTELLT VON:	Stefan Heppenheimer (idaSys)
	//		ERSTELLT AM:	01.08.2005
	//		
	//		UPDATES:
	//
	//	--------------------------------------------------------------------------------------------------------
	//		JavaScript Funktionen zur Kalender-Realistation (muss in der Hauptseite erzeugt werden!)
	//	********************************************************************************************************
		
		
	// Monatsnamenmapping
	var monthNameArray = new Array("Januar", "Februar", "März", 
	                               "April", "Mai", "Juni", 
								   "Juli", "August", "September", 
								   "Oktober", "November", "Dezember");
	
	// Tagesnamenshortcuts 									   
	var monthShortcutArray = new Array("MO", "DI", "MI", "DO", "FR", "SA", "SO");
	
	// Standardwerte fuer das aktuell angezeigte Kalenderblatt setzen							   
	var now  = new Date();
	var actShownMonth = now.getMonth();
	var actShownYear  = now.getFullYear();	
	var minMonth      = actShownMonth;
	var maxMonth      = actShownMonth+12;
	var minYear       = actShownYear;
	var maxYear       = actShownYear;
	var minIndex      = 0;
	var maxIndex      = 0;
	var calColorGrey  = "#dddddd";
		
	// Farben (wedrden ueber calendar_setColor gesetzt)
	var calendar_highBackColor   = '#cc1f2f';
	var calendar_highColor       = '#FFFFFF';
	var calendar_normalBackColor = '#FFFFFF';
	var calendar_normalColor     = '#000000';
	
	
	// **********************************************************************************************
	// Funktionen 
	// **********************************************************************************************
		
		// -------------------------------------------------------------------------------------
		// calendar_setColor
		// -------------------------------------------------------------------------------------
		// Setzten der Auswahlfarben (Highlight und Normal)
		// -------------------------------------------------------------------------------------
		// Parameter:	myHighBack     		Mouseover-Hintergundfarbe
		//              myHighColor			Mouseover-Farbe
		//				myNormalBack		Mouseout-Hintergrundfarbe
		//				myNormalColor		Mouseout-Farbe

		function calendar_setColor(myHighBack, myHighColor, myNormalBack, myNormalColor)
		{
			calendar_highBackColor   = myHighBack;
			calendar_highColor       = myHighColor;
			calendar_normalBackColor = myNormalBack;
			calendar_normalColor     = myNormalColor;
		}

		// -------------------------------------------------------------------------------------
		// calendar_initialPage
		// -------------------------------------------------------------------------------------
		// Setzten des Start-Kalenderblatts
		// -------------------------------------------------------------------------------------
		// Parameter:	myHighBack     		Mouseover-Hintergundfarbe
		//              myHighColor			Mouseover-Farbe
		//				myNormalBack		Mouseout-Hintergrundfarbe
		//				myNormalColor		Mouseout-Farbe

		function calendar_initialPage(myDay, myMonth, myYear)
		{
			if (myMonth.substr(0,1) == "0")
				myMonth = parseInt(myMonth.substr(1,1)) - 1;
			else
				myMonth = parseInt(myMonth) - 1;
			now  = new Date(myYear, myMonth, myDay);
			actShownMonth = now.getMonth();
			actShownYear  = now.getFullYear();
		}
		
		
		// -------------------------------------------------------------------------------------
		// calendar_create
		// -------------------------------------------------------------------------------------
		// Erzeugen des Tages-Shortcut-Kopfes und der Kalenderblatt-Container
		// -------------------------------------------------------------------------------------
		// Parameter:	myID     			Kalender-ID
		//				myPraefix			Praefix der Tageskontainer
		
		function calendar_create(myID, myPraefix)
		{
			// Tagescontainer erzeugen
			myDIV = document.getElementById(myID + '_HEAD');
			myStr = "";
			
			for (i = 0; i < monthShortcutArray.length; i++)
				myStr += '<DIV STYLE="left:' + (i * 22) + 'px;" CLASS="calendar_head_cell">' + monthShortcutArray[i] + '</DIV>'
				
			myDIV.innerHTML = myStr;
			// Tages-Abkuerzungen anzeigen
			myDIV = document.getElementById(myID + '_DAYS');
			myStr = "";
			
			for (i = 0; i < 6; i++)
				for (j = 0; j < 7; j++)
					myStr += '<DIV nosel="" ID="' + myPraefix + '_PARENT_' + (i * 7 + j) + '" STYLE="top:' + (i * 18) + 'px;left:' + (j * 22) + 'px;height:17px;" CLASS="calendar_body_cell" onmouseover="if (this.getAttribute(\'nosel\') == \'\') { if (' + (i * 7 + j) + ' >= minIndex && ' + (i * 7 + j) + ' <= maxIndex) { this.style.background = calendar_highBackColor; this.style.color = calendar_highColor; }}" onmouseout="if (this.getAttribute(\'nosel\') == \'\') { if (' + (i * 7 + j) + ' >= minIndex && ' + (i * 7 + j) + ' <= maxIndex) { this.style.background = calendar_normalBackColor; this.style.color = calendar_normalColor; }}" onclick="if (this.getAttribute(\'nosel\') == \'\') { calendar_select(' + (i * 7 + j) + ' - minIndex + 1); }"><SPAN ID="' + myPraefix + '_' + (i * 7 + j) + '" CLASS="calendar_body_cell_content"></SPAN></DIV>';
					
			myDIV.innerHTML = myStr;
		}
		
	
		// -------------------------------------------------------------------------------------
		// calendar_select
		// -------------------------------------------------------------------------------------
		// Funktion, die bei der Auswahl eines Tages aufgerufen wird
		// -------------------------------------------------------------------------------------
		// Parameter:	myDay     			gewaehlter Tag (im aktuell angezeigten Kalenderblatt)
		
	
		function calendar_select(myDay)
		{
			selDay = "0" + myDay; selDay = selDay.substr(selDay.length - 2, 2);
			selMonth = "0" + (actShownMonth + 1); selMonth = selMonth.substr(selMonth.length - 2, 2);
			selYear = "" + actShownYear; selYear = selYear.substr(2, 2);
			
			hideCal(selDay +"."+ selMonth +".20"+ selYear);
		}
	
	
		// -------------------------------------------------------------------------------------
		// calendar_prevMonth
		// -------------------------------------------------------------------------------------
		// Vorheriges Kalenderblatt anzeigen
		// -------------------------------------------------------------------------------------
		// Parameter:	myID     			Kalender-ID
		
		function calendar_prevMonth(myID)
		{
			if (minMonth < actShownMonth || minYear < actShownYear)
			{
				actShownMonth -= 1;
				if (actShownMonth < 0)
				{
					actShownMonth = 11;
					actShownYear -= 1;
				}
				calendar_update(myID);
			}
		}
	
	
		// -------------------------------------------------------------------------------------
		// calendar_nextMonth
		// -------------------------------------------------------------------------------------
		// Naechstes Kalenderblatt anzeigen
		// -------------------------------------------------------------------------------------
		// Parameter:	myID     			Kalender-ID
		
		function calendar_nextMonth(myID)
		{
			if (maxMonth > actShownMonth || maxYear > actShownYear)
			{
				actShownMonth += 1;
				if (actShownMonth >= 12)
				{
					actShownMonth = 0;
					actShownYear += 1;
				}
				calendar_update(myID);
			}
		}


		// -------------------------------------------------------------------------------------
		// calendar_update
		// -------------------------------------------------------------------------------------
		// Anzeigen des aktuellen Kalenderblatts
		// -------------------------------------------------------------------------------------
		// Parameter:	myID     			Kalender-ID
				
		function calendar_update(myID)
		{
			monthName = monthNameArray[actShownMonth];
			first = new Date(actShownYear, actShownMonth, 1);
			tmpDate = new Date(actShownYear, actShownMonth, 1);
			today = new Date();
			firstDay = first.getDay();
			
			document.getElementById(myID + '_TITLE').innerHTML = monthName + " " + actShownYear;
			
			// SO = 0 / MO = 1 / DI = ...
			startIndex = firstDay - 1;
			if (firstDay < 0)
				firstDay = 6;
				
			while(startIndex < 0)
				startIndex += 7;
			
			minIndex = startIndex;
			
			for (i = 0; i < 42; i++)
			{
				if (i < startIndex)
				{
					document.getElementById(myID + '_DAY_' + i).innerHTML = '';
				}
				else 
				{
					testDate = new Date(actShownYear, actShownMonth, i - startIndex + 1); 
					if (testDate.getMonth() != actShownMonth) 
					{
						maxIndex = i - 1;
						break;
					}
					else
					{
						document.getElementById(myID + '_DAY_' + i).innerHTML = i - startIndex + 1;
						
						tmpDate = new Date(actShownYear, actShownMonth, i - startIndex + 1);
						if(tmpDate < today)
						{
							document.getElementById(myID + '_DAY_PARENT_' + i).style.color = calColorGrey;
							document.getElementById(myID + '_DAY_PARENT_' + i).setAttribute("nosel", "no");
						}
						else
						{
							document.getElementById(myID + '_DAY_PARENT_' + i).style.color = '#000000';
							document.getElementById(myID + '_DAY_PARENT_' + i).setAttribute("nosel", "");
						}
					}
				}
			}
			
			for (i = maxIndex + 1; i < 42; i++)
				document.getElementById(myID + '_DAY_' + i).innerHTML = '';
				
			if (minMonth < actShownMonth || minYear < actShownYear)
				document.getElementById('CAL_HIN_PREV').style.visibility = 'visible';
			else
				document.getElementById('CAL_HIN_PREV').style.visibility = 'hidden';
			
			if (maxMonth > actShownMonth || maxYear > actShownYear)
				document.getElementById('CAL_HIN_NEXT').style.visibility = 'visible';
			else
				document.getElementById('CAL_HIN_NEXT').style.visibility = 'hidden';				
		}
		
		


				

	
