/**********************************/
/*erst CSS abwarten, dann anpassen*/
/**********************************/
var ImagePfad;      //Pfad zum Holen von Images für Kalender
/*******************************/
/*Kalender-spezifische Elemente*/
/*******************************/
var noDate = ''; //kein Datum auswählen
var KalenderDa = false; //Boolean fürs Ausklappen vom Kalendar
var DateChosen;		//aktuell gewähltes Datum
/*******************************/
/*Elemente des Divs und Iframes*/
/*******************************/
var Anreise_TABLE, Anreise_TD;
var Abreise_TABLE, Abreise_TD;
var Anreise_IFRAME, Abreise_IFRAME;
/****************************/
/*Datum-spezifische Elemente*/
/****************************/
var RangeDown;		//untere Grenze des auszuwählendes Datums
var RangeTop;		//obere Grenze des auszuwählendes Datums
var currentDate; 	//aktuelles Datum
var Milisek =60*1000;	//Millisekunde
var Hour = Milisek*60;	//Stunde
var Day = Hour*24;	//Tag	
var DayChosen=0;	//Ausgewählter Tag
var MonthChosen=0;	//Ausgewählter Monat
var YearChosen=0;	//Ausgewähltes Jahr
var MonthChosenInt=0;   //Ausgewählter Monat als integer
var YearChosenInt=0;	//Ausgewähltes Jahr als integer	
/*****************/
var AnrObj=null;			//Anreisetabelle-Objekt(zur richtigen Layoutpositionierung)
var AbrObj=null;			//Abreisetabelle-Objekt
/**************************************************************/
/*publicHolidays = new Array();
publicHolidays[0] = new Array("Kanton Glarus", 
						"01.01.2005", "01.01.2005",
						"06.01.2005", "06.01.2005",
						"09.02.2005", "09.02.2005",
						"14.02.2005", "14.02.2005",
						"20.03.2005", "20.03.2005",
						"25.03.2005", "25.03.2005",
						"27.03.2005", "28.03.2005",
						"01.05.2005", "01.05.2005",
						"05.05.2005", "05.05.2005",
						"08.05.2005", "08.05.2005",
						"15.05.2005", "16.05.2005",
						"26.05.2005", "26.05.2004",
						"15.08.2005", "15.08.2005",
						"03.10.2005", "03.10.2005",
						"01.11.2005", "01.11.2005",
						"20.11.2005", "20.11.2005",
						"27.11.2005", "27.11.2005",
						"04.12.2005", "04.12.2005",
						"06.12.2005", "06.12.2005",
						"11.12.2005", "11.12.2005",
						"18.12.2005", "18.12.2005",
						"24.12.2005", "26.12.2005",
						"31.12.2005", "31.12.2005");*/

// request current year

var dtCurDate = new Date();
var iThisYear = dtCurDate.getYear();
var publicHolidays;

switch(iThisYear)
{
	case 2005:
		publicHolidays = new Array("1.1","1.5","3.10","25.12","26.12");
		break;
	case 2006:
		//publicHolidays = new Array("1.1","16.4","17.4","1.5","4.6","5.6","3.10","25.12","26.12");
		publicHolidays = new Array("1.1","2.1","27.2","6.4","14.4","17.4","8.5","25.5","5.6","1.8","1.11","24.12","25.12","26.12","31.12");
		break;
	case 2007:
		//publicHolidays = new Array("1.1","8.4","9.4","1.5","27.5","28.5","3.10","25.12","26.12");
		publicHolidays = new Array("1.1");
		break;
	case 2008:
		//publicHolidays = new Array("1.1","1.5","23.3","24.3","11.5","12.5","3.10","25.12","26.12");
		publicHolidays = new Array("1.1");
		break;
	case 2009:
		//publicHolidays = new Array("1.1","1.5","12.4","13.4","31.5","1.6","3.10","25.12","26.12");
		publicHolidays = new Array("1.1");
		break;
	case 2010:
		//publicHolidays = new Array("1.1","1.5","4.4","5.4","23.5","24.5","3.10","25.12","26.12");
		publicHolidays = new Array("1.1");
		break;
	case 2011:
		//publicHolidays = new Array("1.1","1.5","24.4","25.4","12.6","13.6","3.10","25.12","26.12");
		publicHolidays = new Array("1.1");
		break;
	default:
		publicHolidays = new Array("1.1","1.5","3.10","25.12","26.12");
		break;
}

/*

publicHolidays = new Array("1.1","6.1","9.2","14.2","20.3","25.3","27.3","28.3",
						   "1.5","5.5","8.5","15.5","16.5","26.5","15.8","3.10",
						   "1.11","2.11","27.11","4.12","6.12","11.12","18.12","24.12",
						   "25.12","26.12","31.12");
*/	

/***************************************************************
berechnung ostermonat/ostertag ? (wikipeda)
var g = intCurYear % 19;						   
var c = intCurYear / 100;
var h = ( c - (c/4) - ( (8*c+13)/25 ) + (19*g) + 15 ) % 30;
var i = h - (h/28)*( 1- (29/h+1) ) * (21-g)/11;
var j = (intCurYear + (intCurYear/4) + i + 2 - c + (c/4) ) % 7;
var l = i - j;
var ostermonat = 3 + (l+40)/44;
var ostertag = l + 28 - 31*(ostermonat/4);
***************************************************************/
					   
/**************************************************************/

/*Browsererkennung*/
if(navigator.userAgent.indexOf("Gecko")>0)
{//z.B Mozilla wird verwendet
	Browser="Gecko";
}
else
{//z.B IE wird verwendet
	Browser="IE";
}

//Falls Mozilla verwendet wird, insertAdjacentHTML umschreiben, da so vom Mozilla nicht unterstützt wird
if((typeof(HTMLElement)!="undefined")&&(!HTMLElement.prototype.insertAdjacentHTML))
{
	HTMLElement.prototype.insertAdjacentHTML=function(where,htmlStr)
			   			 {
							var r=this.ownerDocument.createRange();  //Range erstellen
							r.setStartBefore(this);			 //Zeitpunkt zum Hinzufügen des HTML-Code festlegen
							var parsedHTML=r.createContextualFragment(htmlStr); //Dokumentfragment erstellen
							this.appendChild(parsedHTML); //und einfügen
						 }
}

function showCalendar(DateRef,EventRef,ImagePath,hposOffset,vposOffset,layer)
{	
	// Sanity check fuer gueltiges Datum im Eingabefeld
	
	CheckInputDate(layer);


	// Starte Kalender

	if(KalenderDa)
	{
		return;
	}
	else
	{
		KalenderDa=true;  //Kalender-Layer ist auf
	}

	if(document.getElementById)
	{
		if(!Anreise_TABLE && layer == 1)    //Kalenderfläche für Anreise erstellen
		{
			currentDate=new Date();
			currentDate.setHours(0,0,0,0);
			DrawCalenderAnreise();
			Anreise_TABLE=document.getElementById("ID_Anreise"); //TABLE_ID(Anreise)
			Anreise_TD=document.getElementById("Anreise_TD"); //TD_ID (Anreise)
			Anreise_IFRAME = document.getElementsByName("iframe_an")[0]; //IFRAME(Anreise)
  		}
		if(!Abreise_TABLE && layer == 2)    //Kalenderfläche für Abreise erstellen
		{
			currentDate=new Date();
			currentDate.setHours(0,0,0,0);
			DrawCalenderAbreise();
			//wiCHTIG: vor dem abschliessendem Tag den HTML-Code, der im selectorHTML steht hinzufügen
			Abreise_TABLE=document.getElementById("ID_Abreise"); //TABLE_ID(Anreise)
			Abreise_TD=document.getElementById("Abreise_TD"); //TD_ID (Anreise)
			Abreise_IFRAME = document.getElementsByName("iframe_ab")[0]; //IFRAME(Anreise)
		}
		DateChosen=DateRef;
		ImagePfad=ImagePath;

//		RangeDown=new Date(currentDate.getTime()-(Day*184));  
//		RangeTop=new Date(currentDate.getTime()+(Day*182));
		RangeTop=new Date(currentDate.getTime()+(Day*364));
//jf		RangeTop = new Date(js_latesttime.substring(6,10),parseInt(js_latesttime.substring(3,5))-1,js_latesttime.substring(0,2))
		RangeDown=new Date(currentDate.getTime()+(3600*24));
  

		DayChosen=0;

		if(DateRef.value==noDate)
		{
			if(DateRef.defaultValue==noDate)
			{
				var arrCurrentDate=DateToString(currentDate).split(".");
				MonthChosen=arrCurrentDate[1]-1;
			}
			else
			{
				var arrCurrentDate=DateRef.defaultValue.split(".");
				DayChosen=arrCurrentDate[0];
				MonthChosen=arrCurrentDate[1]-1;
			}
		}
		else
		{
			var arrCurrentDate=DateRef.value.split(".");
			DayChosen=arrCurrentDate[0];
			MonthChosen=arrCurrentDate[1]-1;
		}

		YearChosen=arrCurrentDate[2];
		MonthChosenInt=parseInt(MonthChosen,10);
		YearChosenInt=parseInt(YearChosen,10);

		// Konvertierung von zwei-stellige auf vier-stellige Jahreszahl
		// Wird fuer die Funktionalitaet des Kalenders gebraucht
		if(YearChosenInt.toString().length <= 2)
		{
			YearChosenInt = YearChosenInt + 2000;
		}
		// Addiert einen Tag auf den jetzigen Tag
		DayChosen = (parseInt(DayChosen,10)+1).toString();

		if(layer == 1) //Kalenderfläche für Anreise mit Daten füllen
		{
			Anreise_TD.innerHTML=CreateCalendarAreaAnreise(layer);
		}
		if(layer == 2) //Kalenderfläche für Abreise mit Daten füllen
		{
			Abreise_TD.innerHTML=CreateCalendarAreaAbreise(layer);
		}

		if(Browser == "Gecko") //dynamische positionierung des Kalender-Layers (firefox)
		{
			function getScrollTop()
			{
		    	 if(document.documentElement.scrollTop) return document.documentElement.scrollTop;
			     if(document.body.scrollTop) return document.body.scrollTop;
    			 if(window.pageYOffset) return window.pageYOffset;
			     return 0;
			}

			function getWindowHeight()
			{
			     if(window.innerHeight) return window.innerHeight;
			     if(document.documentElement.clientHeight) return document.documentElement.clientHeight;
			     if(document.body.clientHeight) return document.body.clientHeight;
			     return 0;
			}		
		
		
			if(layer == 1)	//für Anreise
			{
				//automatische Positionierung des Layers (inkl. richtiger Aufklapptechnik)
				var coordLeft=0;
				var coordTop=0;
				

			 	if(!AnrObj)AnrObj=Anreise_TABLE;
			    for(var p=DateRef; p && p.tagName!='BODY'; p=p.offsetParent)
			    {
				    coordLeft+=p.offsetLeft;
				    coordTop+=p.offsetTop;
			    }
			    var offsHeight=DateRef.offsetHeight;
			    var objHeight=parseInt(AnrObj.style.height);
			    var scrollTop=getScrollTop();
			    if(coordTop-objHeight>=scrollTop && coordTop+offsHeight+objHeight>getWindowHeight()+scrollTop)
			    {
			    	coordTop-=objHeight;
			    }
				else
			    {
			   	    coordTop+=offsHeight;
			   	}
			    AnrObj.style.left=coordLeft-2+"px";
			    AnrObj.style.top=coordTop-3+"px";
			    AnrObj = null;
			}
			if(layer == 2)  //für Abreise
			{
			//automatische Positionierung des Layers (inkl. richtiger Aufklapptechnik)			 
				var coordLeft=0;
				var coordTop=0;

			 	if(!AbrObj)AbrObj=Abreise_TABLE;
			    for(var p=DateRef; p && p.tagName!='BODY'; p=p.offsetParent)
			    {
			    	 coordLeft+=p.offsetLeft;coordTop+=p.offsetTop;
			    }
			    var offsHeight=DateRef.offsetHeight;
			    var objHeight=parseInt(AbrObj.style.height);
			    var scrollTop=getScrollTop();
			    if(coordTop-objHeight>=scrollTop && coordTop+offsHeight+objHeight>getWindowHeight()+scrollTop)
			    {
			    	coordTop-=objHeight;
			    }
			    else
			    {
			        coordTop+=offsHeight;
			    }
			    AbrObj.style.left=coordLeft-2+"px";
			    AbrObj.style.top=coordTop-3+"px";			
			    AbrObj = null;
			}
		}
		else	//(IE)
		{   
		
		/*****************/
			function getScrollTop()
			{
		    	 if(document.documentElement.scrollTop) return document.documentElement.scrollTop;
			     if(document.body.scrollTop) return document.body.scrollTop;
    			 if(window.pageYOffset) return window.pageYOffset;
			     return 0;
			}

			function getWindowHeight()
			{
			     if(window.innerHeight) return window.innerHeight;
			     if(document.documentElement.clientHeight) return document.documentElement.clientHeight;
			     if(document.body.clientHeight) return document.body.clientHeight;
			     return 0;
			}		
		
		
			if(layer == 1)	//für Anreise
			{
				//automatische Positionierung des Layers (inkl. richtiger Aufklapptechnik)
				var coordLeft=0;
				var coordTop=0;
				

			 	if(!AnrObj)AnrObj=Anreise_TABLE;
			    for(var p=DateRef; p && p.tagName!='BODY'; p=p.offsetParent)
			    {
				    coordLeft+=p.offsetLeft;
				    coordTop+=p.offsetTop;
			    }
			    var offsHeight=DateRef.offsetHeight;
			    var objHeight=parseInt(AnrObj.style.height);
			    var scrollTop=getScrollTop();
			    if(coordTop-objHeight>=scrollTop && coordTop+offsHeight+objHeight>getWindowHeight()+scrollTop)
			    {
			    	coordTop-=objHeight;
			    }
				else
			    {
			   	    coordTop+=offsHeight;
			   	}
			    AnrObj.style.left=coordLeft;
			    AnrObj.style.top=coordTop+1;
			    Anreise_IFRAME.style.left=AnrObj.style.left;
				Anreise_IFRAME.style.top=AnrObj.style.top;
			    AnrObj = null;
			}
			if(layer == 2)  //für Abreise
			{
			//automatische Positionierung des Layers (inkl. richtiger Aufklapptechnik)			 
				var coordLeft=0;
				var coordTop=0;

			 	if(!AbrObj)AbrObj=Abreise_TABLE;
			    for(var p=DateRef; p && p.tagName!='BODY'; p=p.offsetParent)
			    {
			    	 coordLeft+=p.offsetLeft;coordTop+=p.offsetTop;
			    }
			    var offsHeight=DateRef.offsetHeight;
			    var objHeight=parseInt(AbrObj.style.height);
			    var scrollTop=getScrollTop();
			    if(coordTop-objHeight>=scrollTop && coordTop+offsHeight+objHeight>getWindowHeight()+scrollTop)
			    {
			    	coordTop-=objHeight;
			    }
			    else
			    {
			        coordTop+=offsHeight;
			    }
			    AbrObj.style.left=coordLeft;
			    AbrObj.style.top=coordTop+1;
			    Abreise_IFRAME.style.left=AbrObj.style.left;
				Abreise_IFRAME.style.top=AbrObj.style.top;		
				AbrObj = null;
			}
		/***********************/
		  //dynamische positionierung des Kalender-Layers (ie)

		/*     var style_top_screenY, obenaufklappen;
	    	 if(EventRef) style_top_screenY = EventRef.screenY; //Abstand zwischen FensterTop und Eingabefeld(nur beim event!!!)
		     if(style_top_screenY >= 600)
		     {
	    	 	obenaufklappen = true; //Layer muss oberhalb des eingabefeldes angezeigt werden
		     }
		     if(layer == 1)  //für Anreise
			 {   			   
				if(obenaufklappen)
				{
					Anreise_TABLE.style.top=EventRef.clientY-EventRef.offsetY-210+document.body.scrollTop+document.documentElement.scrollTop+vposOffset;
				}
				else
				{
					Anreise_TABLE.style.top=EventRef.clientY-EventRef.offsetY+10+document.body.scrollTop+document.documentElement.scrollTop+vposOffset;				
				}
				Anreise_TABLE.style.left=EventRef.clientX-EventRef.offsetX-24+document.body.scrollLeft+document.documentElement.scrollLeft+hposOffset;
				//wichtig:bei IE Iframe setzen!!!
				Anreise_IFRAME.style.left=Anreise_TABLE.style.left;
				Anreise_IFRAME.style.top=Anreise_TABLE.style.top;
			  }
		 	  if(layer == 2) //für Abreise
			  {
			 		if(!EventRef)		//1.fall abreise-layer geht nach anreise-layer auf
			 	    {
				 	    switch(param)
				 	    {
				 	     //flug_normal
				 	     case 1:	Abreise_TABLE.style.left = parseInt(Anreise_TABLE.style.left)+300;  //Anreiselayer-left um Labelgrösse(Abreise am:) verschieben
									Abreise_TABLE.style.top = Anreise_TABLE.style.top;break;			//Abreiselayer-top gleich wie Anreiselayer-top
						 //mietwagen_normal			
			 		     case 2:    Abreise_TABLE.style.left = Anreise_TABLE.style.left;  						//Anreiselayer-left gleich wie Anreiselayer-left
									Abreise_TABLE.style.top = parseInt(Anreise_TABLE.style.top)+30;break;		//Abreiselayer-top um zeilenumbruch verschieben
						 //emotional			
				 	     case 3:	Abreise_TABLE.style.left = parseInt(Anreise_TABLE.style.left)+267;  //Anreiselayer-left um Labelgrösse(Abreise am:) verschieben
									Abreise_TABLE.style.top = Anreise_TABLE.style.top;break;			//Abreiselayer-top gleich wie Anreiselayer-top
						 //hotel_normal			
				 	     default:   Abreise_TABLE.style.left = parseInt(Anreise_TABLE.style.left)+280;  //Anreiselayer-left um Labelgrösse(Abreise am:) verschieben
									Abreise_TABLE.style.top = Anreise_TABLE.style.top;break;			//Abreiselayer-top gleich wie Anreiselayer-top
			 		    }
				    }
			 		else				 //2.fall abreise-layer geht vor anreise-layer auf
					{		
						if(obenaufklappen)
						{
							Abreise_TABLE.style.top=EventRef.clientY-EventRef.offsetY-210+document.body.scrollTop+document.documentElement.scrollTop+vposOffset;
						}
						else
						{
							Abreise_TABLE.style.top=EventRef.clientY-EventRef.offsetY+10+document.body.scrollTop+document.documentElement.scrollTop+vposOffset;
						}
							Abreise_TABLE.style.left=EventRef.clientX-EventRef.offsetX-24+document.body.scrollLeft+document.documentElement.scrollLeft+hposOffset;
				    }
    				//wichtig:bei IE Iframe setzen!!!
				    Abreise_IFRAME.style.left=Abreise_TABLE.style.left;
    	            Abreise_IFRAME.style.top=Abreise_TABLE.style.top;
			  }*/
		   }
		//Kalender-Layer anschliessend anzeigen
		if(layer == 1)
		{
			Anreise_TABLE.style.display="block";
			Anreise_TABLE.style.visibility="visible";
			if(Browser != "Gecko")
			Anreise_IFRAME.style.display="block";
		}
		if(layer == 2)
		{
			Abreise_TABLE.style.display="block";
			Abreise_TABLE.style.visibility="visible";
			if(Browser != "Gecko")
			Abreise_IFRAME.style.display="block";
		}
	}


}

//Kalender nach dem Auswählen von Datum wieder zuklappen
function HideDateSelector(layer)
{
	if(Anreise_TABLE && layer == 1) //für Anreise Kalender-Layer wieder zuklappen
	{
		if(Browser=="Gecko")
		{
			Anreise_TABLE.style.visibility="hidden";
			KalenderDa=false;
			return;
		}
		else
		{
		    Anreise_TABLE.style.display = "none";
			Anreise_TABLE.style.visibility="hidden";
			Anreise_IFRAME.style.display = "none";
			KalenderDa=false;
		}
	}
	else
	{
		Anreise_TABLE=false;
	}

	if(Abreise_TABLE && layer == 2) //für Abreise Kalender-Layer wieder zuklappen
	{
		if(Browser=="Gecko")
		{
			Abreise_TABLE.style.visibility="hidden";
			KalenderDa=false;
			return;
		}
		else
		{
		    Abreise_TABLE.style.display = "none";
			Abreise_TABLE.style.visibility="hidden";
			Abreise_IFRAME.style.display = "none";
			KalenderDa=false;
		}
	}
	else
	{
		Abreise_TABLE=false;
	}
}

//beim Feiertag entsprechenden Stylesheet setzen
function isPublicHoliday(day,month)
{
	currDate = day+"."+month; //Tag im Kalender
	var newStyle;
	for( x = 1; x < publicHolidays.length; x++)
	{
		if(currDate == publicHolidays[x])
		{
//			alert("ein feiertag im angezeigten Kalender ist:"+currDate);
//			newStyle="background-image: url("+ImagePfad+"selected.gif); background-repeat:no-repeat; "
			newStyle=" bold ";
		}	
	}
	return newStyle;
}	

function isPubHoliday(day,month)
{
	currDate = day+"."+month; //Tag im Kalender
	var newStyle = 0;
	for( x = 1; x < publicHolidays.length; x++)
	{
		if(currDate == publicHolidays[x])
		{
			newStyle = 1;
		}	
	}
	return newStyle;
}	


//Erstellen von Kalenderdaten
function CreateCalendarAreaAnreise(layer)
{

	var arrDayNames=new Array("MO","DI","MI","DO","FR","SA","SO");	
	var arrMonthNames=new Array("Januar","Februar","M&auml;rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
	var arrMonthNamesBig= new Array("JANUAR", "FEBRUAR", "M&Auml;RZ", "APRIL", "MAI", "JUNI", "JULI", "AUGUST", "SEPTEMBER", "OKTOBER", "NOVEMBER", "DEZEMBER");
	var strNoValue="Kein";		//Falls kein Datum ausgewählt werden soll

	var dtFirstOfMonth=new Date(YearChosenInt,MonthChosenInt,1);	//Ersten eines Monats ermitteln

	//Berechnen wie viele Tage vom vorherigen Monat im aktuellen angezeigt werden
	switch(dtFirstOfMonth.getDay())
	{
		case 0:	var OffsetDays=6;break;	//erster Tag im Monat ist ein Sonntag
		case 1:	var OffsetDays=7;break; //erster Tag im Monat ist ein Montag
		default:var OffsetDays=dtFirstOfMonth.getDay()-1; 
	}
	var dtCalendarStart=new Date(dtFirstOfMonth.getTime()-(Day*OffsetDays)); //Ermittlung des ersten Tags der gezeichnet werden soll
	dtCalendarStart.setHours(12);
	var dtCalendarEnd=new Date(dtCalendarStart.getTime()+(Day*41));		 //Ermittlung des letzten Tags der gezeichnet werden soll
	dtCalendarEnd.setHours(12);
	//Erstellen von Wochennamen
	strCalendar='<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" width = "186" style = "border-top: 2px solid #F8EEB9;border-bottom: 2px solid #F8EEB9;height:152px;" id="innercalendar" CLASS="calendar">';
	strCalendar+="<TR CLASS='FScalendarTitles' ALIGN='center'>";
	for(var i=0;i<=6;i++)
	{
		if(i<5)
		{
			strCalendar+="<TD style='width:25px;' class='allbordered'><span class='headline'>"+arrDayNames[i]+"</span></TD>"
		}			
		if(i==5)
		{
			strCalendar+="<TD style='width:26px;' class='allbordered light2'><span class='headline'><font color=red>"+arrDayNames[i]+"</font></span></TD>"
		}
		if(i==6)
		{
			strCalendar+="<TD style='width:25px;' class='allborderedlastcol light2'><span class='headline'><font color=red>"+arrDayNames[i]+"</font></span></TD>"
		}
	}
	strCalendar+="</TR>";

	//Erstellen von Tagen
	for(var i=0;i<=41;i++)
	{
		if(i%7==0)
		{
			strCalendar+="<TR ALIGN='center'>"	//zentrieren

		}
		var StyleString="";
		var PublicHolidaysString = "";
		var PubHoliday = 0;
		var dtTheDay=new Date(dtCalendarStart.getTime()+(Day*i));	//Datum des gewählten Monats im "Sinn" haben
		dtTheDay.setHours(0,0,0,0);

		//falls in den erstellten Tagen Feiertage dabei sind: in den Style mitnehmen
		PublicHolidaysString +=isPublicHoliday(dtTheDay.getDate(), dtTheDay.getMonth()+1);
		PubHoliday = isPubHoliday(dtTheDay.getDate(), dtTheDay.getMonth()+1);

		if(dtTheDay.getTime()==currentDate.getTime())
		{		
			//heutiges Datum ist ausgewählt
			if((dtTheDay.getMonth()==MonthChosen)&&(dtTheDay.getDate()==DayChosen)&&(dtTheDay.getFullYear()==YearChosen))
			{
			    //DEAKTIVIERT
				StyleString+="background-image: url("+ImagePfad+"today_selected.gif); background-repeat:no-repeat; "
			}
			//heutiges Datum ist im ausgewählten Monat vorhanden
			else
			{
			    //DEAKTIVIERT
				StyleString+="background-image: url("+ImagePfad+"today.gif); background-repeat:no-repeat; "
			}
		}
		else 
		     if((dtTheDay.getMonth()==MonthChosen)&&(dtTheDay.getDate()==DayChosen)&&(dtTheDay.getFullYear()==YearChosen))
		     {
			    //DEAKTIVIERT
				StyleString+="background-image: url("+ImagePfad+"selected.gif); background-repeat:no-repeat; "
		     }

		     if(dtTheDay.getMonth()!=MonthChosenInt)
		     {
			//Fall:die Tage gehören zum Monat davor/danach
			var LinkClass="FSnotInMonth"
		     }
		     else
		     {
			var LinkClass="FSinMonth"

		     }
		     
		     if(((RangeDown)&&(RangeTop))&&((dtTheDay<RangeDown)||(dtTheDay>RangeTop)))
		     {
				//Fall:Die Tage dürfen nicht gewählt werden
		       if(i%7 == 5 || i%7 == 6 )
		       {
		            strCalendar+="<TD CLASS='bold FSoutOfRange' STYLE='"+StyleString+PublicHolidaysString+" '><font color=red>"+dtTheDay.getDate()+"</font></TD>"
		       }
		       else 
		       {			   
			    strCalendar+="<TD CLASS='FSoutOfRange"+PublicHolidaysString+"' STYLE='"+StyleString+PublicHolidaysString+" "
			    if(PubHoliday == 1) { strCalendar+=" color: red !important; " }
		            strCalendar+=" '>"+dtTheDay.getDate()+"</TD>"
		       }
		     }
		     else
		     {
		       // Setze Sa + So fettschrift
		       if(i%7 == 5 || i%7 == 6)
		       {
		        strCalendar+="<TD STYLE='"+StyleString+PublicHolidaysString+"'><A HREF='Javascript: void SetDate(\""+DateToString(dtTheDay)+"\","+layer+")' style='color: red;' CLASS='bold "+LinkClass+"'>"+dtTheDay.getDate()+"</A></TD>"
		        //strCalendar+="<TD STYLE='"+StyleString+PublicHolidaysString+"'><font style='color: red;' CLASS='bold'>"+dtTheDay.getDate()+"</font></TD>"
		       }
		       else
		       {
				//if(PubHoliday == 1) 
                                //{
				//  strCalendar+="<TD STYLE='"+StyleString+PublicHolidaysString+"'><font style='color: #00329B; "
                                //  strCalendar+=" color: red !important; "
				//  strCalendar+="' CLASS='"+PublicHolidaysString+"'>"+dtTheDay.getDate()+"</TD>"
                                //}
                                //else
                                //{
				  strCalendar+="<TD STYLE='"+StyleString+PublicHolidaysString+"'><A HREF='Javascript: void SetDate(\""+DateToString(dtTheDay)+"\","+layer+")' style='color: #00329B; "
				  strCalendar+="' CLASS='"+LinkClass+PublicHolidaysString+"'>"+dtTheDay.getDate()+"</A></TD>"
                                //}

			   }
		     }
		     if(i%7==6)
		     {
			strCalendar+="</TR>"	//TR-Tag abschliessen
	         }
	}
		strCalendar+="</TABLE>";

	//Left- und RightButton dynamisch erstellen
	var tempStart=new Date(dtCalendarStart.getTime()+(Day*0));		
	var tempEnd=new Date(dtCalendarStart.getTime()+(Day*41));

	var leftButton = true;
	var rightButton = true;
        //alert('RangeDown='+RangeDown);
        //alert('tempStart='+tempStart);
        //alert('tempEnd (of month to display)='+tempEnd+'\n'+'RangeTop='+RangeTop+'\n'+'tempEnd>RangeTop='+(tempEnd>RangeTop));
	if(tempStart<RangeDown)
	{
		leftButton = false;
	}
	if(tempEnd>RangeTop)
	{
		rightButton = false;
	}	         
	if(!leftButton)
	{
		leftButton = "";
		rightButton = "<INPUT TYPE='image' SRC='calendar/images/but_next_yel.gif' WIDTH='22' HEIGHT='17' HSPACE='1' onClick='AdvanceDate(1,"+layer+")'>" 		
	}
	if(!rightButton)
	{
		rightButton = "";
		leftButton = "<INPUT TYPE='image' SRC='calendar/images/but_prev_yel.gif' WIDTH='22' HEIGHT='17' HSPACE='1' onClick='AdvanceDate(-1,"+layer+")'>" 	
	}
	if(leftButton&&rightButton)		
	{
   	 	rightButton = "<INPUT TYPE='image' SRC='calendar/images/but_next_yel.gif' WIDTH='22' HEIGHT='17' HSPACE='1' onClick='AdvanceDate(1,"+layer+")'>" 	
		leftButton = "<INPUT TYPE='image' SRC='calendar/images/but_prev_yel.gif' WIDTH='22' HEIGHT='17' HSPACE='1' onClick='AdvanceDate(-1,"+layer+")'>" 	
	}

	var strMonthOptions="";
	var strSelected="";
	strMonthOptions = arrMonthNamesBig[MonthChosenInt];

//Header,Footer, Tage schreiben
	strCalendar='<TABLE BGCOLOR="#FFFFFF" BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%" HEIGHT="100%">'+
		'<TR HEIGHT="22">'+
		'<TD COLSPAN="5">'+
			'<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">'+
				'<TR HEIGHT="22">'+
					'<TD WIDTH="30"  ALIGN="left">'+leftButton+'</TD>'+
					'<TD ALIGN = "center"><font style="font-weight: bold;font-size: 10pt;color:#00329B">'+strMonthOptions+' '+YearChosenInt+'</font></TD>'+
					'<TD WIDTH="30"  ALIGN="right">'+rightButton+'</TD>'+
				'</TR>'+
			'</TABLE>'+
		'</TD>'+
		'</TR>'+			
			'<TR HEIGHT="133" BGCOLOR="#FFFFFF"><TD COLSPAN="5" ALIGN="center">'+strCalendar+'</TD></TR>'+
			'<TR HEIGHT="22">'+
				'<TD COLSPAN="5">'+
					'<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">'+
						'<TR>'+
							'<TD WIDTH="30" ALIGN="left">'+leftButton+'</TD>'+
							'<TD ALIGN="center"><A HREF="javascript:HideDateSelector('+layer+');"><font style="font-weight: bold;font-size: 10pt;color:#00329B">SCHLIESSEN</font></a></TD>'+							
							'<TD WIDTH="30" ALIGN="right">'+rightButton+'</TD>'+
						'</TR>'+
					'</TABLE>'+
				'</TD>'+
			'</TR>'+
			'<TABLE>';
	return strCalendar;

}



function CreateCalendarAreaAbreise(layer)
{

	var arrDayNames=new Array("MO","DI","MI","DO","FR","SA","SO");	
	var arrMonthNames=new Array("Januar","Februar","M&auml;rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
	var strNoValue="Kein";		//Falls kein Datum ausgewählt werden soll

	var dtFirstOfMonth=new Date(YearChosenInt,MonthChosenInt,1);	//Ersten eines Monats ermitteln

	//Berechnen wie viele Tage vom vorherigen Monat im aktuellen angezeigt werden
	switch(dtFirstOfMonth.getDay())
	{
		case 0:	var OffsetDays=6;break;	//erster Tag im Monat ist ein Sonntag
		case 1:	var OffsetDays=7;break; //erster Tag im Monat ist ein Montag
		default:var OffsetDays=dtFirstOfMonth.getDay()-1; 
	}


	var dtCalendarStart=new Date(dtFirstOfMonth.getTime()-(Day*OffsetDays)); //Ermittlung des ersten Tags der gezeichnet werden soll
	dtCalendarStart.setHours(12);
	var dtCalendarEnd=new Date(dtCalendarStart.getTime()+(Day*41));		 //Ermittlung des letzten Tags der gezeichnet werden soll
	dtCalendarEnd.setHours(12);

	//Erstellen von Wochennamen
	strCalendar='<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" width = "186" style = "border-top: 2px solid #F8EEB9;border-bottom: 2px solid #F8EEB9;height:152px;" id="innercalendar" CLASS="calendar">';
	strCalendar+="<TR CLASS='FScalendarTitles' ALIGN='center'>";
	for(var i=0;i<=6;i++)
	{
		if(i<5)
		{
			strCalendar+="<TD style='width:25px;' class='allbordered'><span class='headline'>"+arrDayNames[i]+"</span></TD>"
		}			

		if(i==5)
		{
			strCalendar+="<TD style='width:26px;' class='allbordered light2'><span class='headline'><font color=red>"+arrDayNames[i]+"</font></span></TD>"
		}
		if(i==6)
		{
			strCalendar+="<TD style='width:25px;' class='allborderedlastcol light2'><span class='headline'><font color=red>"+arrDayNames[i]+"</font></span></TD>"
		}
	}
	
	
	strCalendar+="</TR>";

	//Erstellen von Tagen
	for(var i=0;i<=41;i++)
	{
		if(i%7==0)
		{
			strCalendar+="<TR ALIGN='center'>"	//zentrieren
		}
		var StyleString="";
		var PublicHolidaysString = "";
		var PubHoliday = 0;
		var dtTheDay=new Date(dtCalendarStart.getTime()+(Day*i));	//Datum des gewählten Monats im "Sinn" haben
		dtTheDay.setHours(0,0,0,0);

		//falls in den erstellten Tagen Feiertage dabei sind: in den Style mitnehmen
		PublicHolidaysString +=isPublicHoliday(dtTheDay.getDate(), dtTheDay.getMonth()+1);
		PubHoliday = isPubHoliday(dtTheDay.getDate(), dtTheDay.getMonth()+1);

		if(dtTheDay.getTime()==currentDate.getTime())
		{
			//heutiges Datum ist ausgewählt
			if((dtTheDay.getMonth()==MonthChosen)&&(dtTheDay.getDate()==DayChosen)&&(dtTheDay.getFullYear()==YearChosen))
			{
			    //DEAKTIVIERT
				StyleString+="background-image: url("+ImagePfad+"today_selected.gif); background-repeat:no-repeat; "
			}
			//heutiges Datum ist im ausgewählten Monat vorhanden
			else
			{
			    //DEAKTIVIERT
				StyleString+="background-image: url("+ImagePfad+"today.gif); background-repeat:no-repeat; "
			}
		}
		else 
		     if((dtTheDay.getMonth()==MonthChosen)&&(dtTheDay.getDate()==DayChosen)&&(dtTheDay.getFullYear()==YearChosen))
		     {
			    //DEAKTIVIERT
			//StyleString+="background-image: url("+ImagePfad+"selected.gif); background-repeat:no-repeat; "

		     }

		     if(dtTheDay.getMonth()!=MonthChosenInt)
		     {
			//Fall:die Tage gehören zum Monat davor/danach
			var LinkClass="FSnotInMonth"
		     }
		     else
		     {
			var LinkClass="FSinMonth"

		     }
		     
		     if(((RangeDown)&&(RangeTop))&&((dtTheDay<RangeDown)||(dtTheDay>RangeTop)))
		     {
			//Fall:Die Tage dürfen nicht gewählt werden
				if(i%7 == 5 || i%7 == 6)
				{
				 strCalendar+="<TD CLASS='bold FSoutOfRange' STYLE='"+StyleString+PublicHolidaysString+" '><font color=red>"+dtTheDay.getDate()+"</font></TD>"
				}
				else
				{
				 strCalendar+="<TD CLASS='FSoutOfRange"+PublicHolidaysString+"' STYLE='"+StyleString+PublicHolidaysString+" "
				if(PubHoliday == 1) { strCalendar+=" color: red !important; " }
				 strCalendar+="'>"+dtTheDay.getDate()+"</TD>"
				}
		     }
		     else
		     {
   		       // Setze Sa + So fettschrift
		       if(i%7 == 5 || i%7 == 6)
		       {
				strCalendar+="<TD STYLE='"+StyleString+PublicHolidaysString+"'><A HREF='Javascript: void SetDate(\""+DateToString(dtTheDay)+"\","+layer+")' style='color: red;' CLASS='bold "+LinkClass+"'>"+dtTheDay.getDate()+"</A></TD>"
				//strCalendar+="<TD STYLE='"+StyleString+PublicHolidaysString+"'><font style='color: red;' CLASS='bold'>"+dtTheDay.getDate()+"</font></TD>"
		       }
		       else
		       {
				//strCalendar+="<TD STYLE='"+StyleString+PublicHolidaysString+"'><A HREF='Javascript: void SetDate(\""+DateToString(dtTheDay)+"\","+layer+")' style='color: #00329B; " 
				//if(PubHoliday == 1) { strCalendar+=" color: red !important; " }
				//if(PubHoliday == 1) 
                                //{
				//  strCalendar+="<TD STYLE='"+StyleString+PublicHolidaysString+"'><font style='color: #00329B; "
                                //  strCalendar+=" color: red !important; "
				//  strCalendar+="' CLASS='"+PublicHolidaysString+"'>"+dtTheDay.getDate()+"</TD>"
                                //}
                                //else
                                //{
				  strCalendar+="<TD STYLE='"+StyleString+PublicHolidaysString+"'><A HREF='Javascript: void SetDate(\""+DateToString(dtTheDay)+"\","+layer+")' style='color: #00329B; "
				  strCalendar+="' CLASS='"+LinkClass+PublicHolidaysString+"'>"+dtTheDay.getDate()+"</A></TD>"
                                //}
		       }
		     }
		     if(i%7==6)
		     {
			strCalendar+="</TR>"	//TR-Tag abschliessen
	             }
	}
	strCalendar+="</TABLE>";
	//Left- und RightButton dynamisch erstellen
	var tempStart=new Date(dtCalendarStart.getTime()+(Day*0));		
	var tempEnd=new Date(dtCalendarStart.getTime()+(Day*41));
	
	var leftButton = true;
	var rightButton = true;
	if(tempStart<RangeDown)
	{
		leftButton = false;
	}
	if(tempEnd>RangeTop)
	{
		rightButton = false;
	}	         
	if(!leftButton)
	{
		leftButton = "";
		rightButton = "<INPUT TYPE='image' SRC='calendar/images/but_next_yel.gif' WIDTH='22' HEIGHT='17' HSPACE='1' onClick='AdvanceDate(1,"+layer+")'>" 		
	}
	if(!rightButton)
	{
		rightButton = "";
		leftButton = "<INPUT TYPE='image' SRC='calendar/images/but_prev_yel.gif' WIDTH='22' HEIGHT='17' HSPACE='1' onClick='AdvanceDate(-1,"+layer+")'>" 	
	}
	if(leftButton&&rightButton)		
	{
	 	rightButton = "<INPUT TYPE='image' SRC='calendar/images/but_next_yel.gif' WIDTH='22' HEIGHT='17' HSPACE='1' onClick='AdvanceDate(1,"+layer+")'>" 	
		leftButton = "<INPUT TYPE='image' SRC='calendar/images/but_prev_yel.gif' WIDTH='22' HEIGHT='17' HSPACE='1' onClick='AdvanceDate(-1,"+layer+")'>" 	
	}

	var strMonthOptions="";
	var strSelected="";
	strMonthOptions = arrMonthNames[MonthChosenInt];

//Header,Footer, Tage schreiben
	strCalendar='<TABLE BGCOLOR="#FFFFFF" BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%" HEIGHT="100%">'+
		'<TR HEIGHT="22">'+
		'<TD COLSPAN="5">'+
			'<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">'+
				'<TR HEIGHT="22">'+
					'<TD WIDTH="30"  ALIGN="left">'+leftButton+'</TD>'+
					'<TD ALIGN = "center"><font style="font-weight: bold;font-size: 10pt;color:#00329B">'+strMonthOptions+' '+YearChosenInt+'</font></TD>'+				
					'<TD WIDTH="30"  ALIGN="right">'+rightButton+'</TD>'+
				'</TR>'+
			'</TABLE>'+
		'</TD>'+
		'</TR>'+			
			'<TR HEIGHT="133" BGCOLOR="#FFFFFF"><TD COLSPAN="5" ALIGN="center">'+strCalendar+'</TD></TR>'+
			'<TR HEIGHT="22">'+
				'<TD COLSPAN="5">'+
					'<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">'+
						'<TR>'+
							'<TD WIDTH="30" ALIGN="left">'+leftButton+'</TD>'+
							'<TD ALIGN="center"><A HREF="javascript:HideDateSelector('+layer+');"><font style="font-weight: bold;font-size: 10pt;color:#00329B">SCHLIESSEN</font></a></TD>'+							
							'<TD WIDTH="30" ALIGN="right">'+rightButton+'</TD>'+
						'</TR>'+
					'</TABLE>'+
				'</TD>'+
			'</TR>';
	return strCalendar;
}

//Datum setzen vom Dropdown in das Inputfeld
function SetDate(TheDate,layer)
{
	var tempArray=TheDate.split(".");
	var resultingDate=new Date(tempArray[2],tempArray[1]-1,tempArray[0]);
	if(((RangeDown)&&(RangeTop))&&((resultingDate<RangeDown)||(resultingDate>RangeTop)))
	{
		alert("Bitte ein Datum innerhalb des angegebenen Zeitraums wählen");
		return false;
	}
	//DayChosen=0;
	
	// Konvertiere 4-stellig auf 2-stellig
	//var YearInt = parseInt(tempArray[2])-2000;
	var YearInt = parseInt(tempArray[2]);
	var resultingDate=tempArray[0]+"."+tempArray[1]+"."+YearInt;
	DateChosen.value=resultingDate;
	
	//DateChosen.value=TheDate;

	HideDateSelector(layer);  //Nachdem Datum gesetzt wurde, Kalender zuklappen
	if(layer == 1)  //von anreise zu abreise switchen
	{
	
		//Formularnamen holen und den Abreisekalender aufrufen
		formbez = document.forms[0].name;

		// Setze zusaetzlich im Layer Abreise
		document[formbez].fEndDateSearched.value = DateChosen.value;
		
		if(document[formbez].fEndDateSearched.disabled == true)
		{ 
				return;
		}
		
		switch(formbez)
		{
			case "ibe.hotelDataForm": showCalendar(document['ibe.hotelDataForm'].fEndDateSearched,null,"images/",19,5,2);break;
			case "ibe.fincaDataForm": showCalendar(document['ibe.fincaDataForm'].fEndDateSearched,null,"images/",19,5,2);break;
			case "ibe.flightDataForm": showCalendar(document['ibe.flightDataForm'].fEndDateSearched,null,"images/",19,5,2);break;
			case "ibe.generalDataForm": showCalendar(document['ibe.generalDataForm'].fEndDateSearched,null,"images/",19,5,2);break;
			case "ibe.holidayTypeDetailsForm": showCalendar(document['ibe.holidayTypeDetailsForm'].fEndDateSearched,null,"images/",19,5,2);break;
			case "ibe.rentalCarForm": showCalendar(document['ibe.rentalCarForm'].fEndDateSearched,null,"images/",19,5,2);break;
			case "ibe.additionalServicesDataForm": showCalendar(document['ibe.additionalServicesDataForm'].fEndDateSearched,null,"images/",19,5,2);break;
			case "ibe.hotelChangeTravelDateForm": showCalendar(document['ibe.hotelChangeTravelDateForm'].fEndDateSearched,null,"images/",19,5,2);break;
		}
	}
}

//Anpassen des Datums durch Betätigen von Buttons(Monat vor, Monat zurück, evtl. Jahr vor, Jahr zurück)
function AdvanceDate(Adjuster,layer)
{
	if((Adjuster==12)||(Adjuster==-12))
	{
		YearChosenInt=YearChosenInt+(Adjuster/12)	//nur: Jahr dekrementieren/inkrementieren
	}
	else
	{
		MonthChosenInt=MonthChosenInt+Adjuster;
		if(MonthChosenInt==-1)	//Vom Januar zum Dezember springen, Jahr dekrementieren
		{
			MonthChosenInt=11;
			YearChosenInt--
		}
		if(MonthChosenInt==12)	//Vom Dezember zum Januar springen, Jahr inkrementieren
		{
			MonthChosenInt=0;
			YearChosenInt++
		}
	}
	if(layer == 1)
	{
		Anreise_TD.innerHTML=CreateCalendarAreaAnreise(layer); //Kalender mit neuem Monat zeichnen
	}
	if(layer == 2)
	{
       	Abreise_TD.innerHTML=CreateCalendarAreaAbreise(layer);
	}
}

//Falls im Dropdown Monate geändert wurden, anpassen
function ChangeMonth(Adjuster,layer)
{
	MonthChosenInt=Adjuster-1;
	if(layer == 1)
	{
		Anreise_TD.innerHTML=CreateCalendarAreaAnreise(layer); //Kalender mit neuem Monat zeichnen
	}
	if(layer == 2)
	{
	    Abreise_TD.innerHTML=CreateCalendarAreaAbreise(layer);
	}
}


//Anpassen des Datum und zurückliefern als String
function DateToString(TheDate)
{
	if(!TheDate)
	{
		return""
	}
	else
	{

		return(TheDate.getDate()<10?"0"+TheDate.getDate():TheDate.getDate())+"."+
		      (TheDate.getMonth()<9?"0"+(TheDate.getMonth()+1):(TheDate.getMonth()+1))+"."+
		       TheDate.getFullYear()
	}
}

//Überprüfen von Datum und Ausgabe der Fehlermeldung
function CheckDate(thisDateField)
{
//	var strFailText="Dieses Datum ist ungültig";
	var tempArray=thisDateField.value.split(".");
	var tempDate=new Date(tempArray[2],tempArray[1]-1,tempArray[0]);	
	var currentDate = new Date();
	RangeDown=new Date(currentDate.getTime());  
	RangeTop = new Date(js_latesttime.substring(6,10),parseInt(js_latesttime.substring(3,5))-1,js_latesttime.substring(0,2))

	if(tempDate<RangeDown || tempDate>RangeTop)
	{
	//	alert("Dieses Datum liegt in der Vergangenheit bzw. fernen Zukunft!");
		thisDateField.value=thisDateField.defaultValue;
	}
	if(thisDateField.value=="")
	{
		thisDateField.value=thisDateField.defaultValue
	//	thisDateField.value=noDate
	}
	if((thisDateField.value!=noDate)&&(!CheckDateFormat(thisDateField.value)))
	{
	//	alert(strFailText);
		thisDateField.value=thisDateField.defaultValue
	}	
}

//Eigentliche Überprüfung von Datum
function CheckDateFormat(thisDate)
{
	//Prüfen ob Datumformat richtig ist
	if(thisDate.indexOf(".")==-1)
	{
		return false
	}
	var ArrayDate=thisDate.split(".");
	if(ArrayDate.length!=3)
	{
		return false
	}

	//Prüfen ob Tag/Monat/Jahr kein LeerString bzw. Null sind	
	if((isNaN(ArrayDate[0]))||(ArrayDate[0]==""))
	{
		return false
	}
	if((isNaN(ArrayDate[1]))||(ArrayDate[1]==""))
	{
		return false
	}
	if((isNaN(ArrayDate[2]))||(ArrayDate[2]==""))
	{
		return false
	}
	
	//Prüfen ob der Tag gültig ist
	var daysInMonth=new Array(0,31,29,31,30,31,30,31,31,30,31,30,31);  //Anzahl von MaxTagen im Monat
	if((parseInt(ArrayDate[0],10)<1)||(parseInt(ArrayDate[0],10)>daysInMonth[parseInt(ArrayDate[1],10)]))
	{
		return false
	}
	//Prüfen ob der Tag gültig ist, spezielle für Februar(Schalt/Nichtschaltjahr)
	if((parseInt(ArrayDate[1],10)==2)&&(parseInt(ArrayDate[0],10)>DaysInFebruary(parseInt(ArrayDate[2],10))))
	{
		return false
	}
	//Prüfen ob der Monat gültig ist
	if((parseInt(ArrayDate[1],10)<1)||(parseInt(ArrayDate[1],10)>12))
	{
		return false
	}
	return true;
}

//Anzahl der Tage im Februar ermitteln
function DaysInFebruary(year)
{
	return(((year%4==0)&&((!(year%100==0))||(year%400==0)))?29:28)
}

//Kalender-Layer zeichnen(nur Tabelle)

function DrawCalenderAnreise()
{
	var selectorHTML=''+'<IFRAME src="javascript:false;" ID = "iframe_an" name="iframe_an" STYLE="display:none; position:absolute; width:200px;height:216px;z-index:99;"></IFRAME>'+
					'<DIV ID="ID_Anreise"  STYLE="display:none;border: 10px solid #F8EEB9;z-Index:100;color:blue;width:190px; height:196px; position:absolute;top:100;left:155;" >'+
					'<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="190" HEIGHT="194">'+
					'<TR><TD ID="Anreise_TD"></TD></TR>'+
				'</TABLE>'+
			    '</DIV>';
	//wiCHTIG: vor dem abschliessendem Tag den HTML-Code, der im selectorHTML steht hinzufügen
	document.body.insertAdjacentHTML("BeforeEnd",selectorHTML)
}

function DrawCalenderAbreise()
{
	var selectorHTML=''+'<IFRAME src="javascript:false;" ID = "iframe_ab" name="iframe_ab" STYLE="display:none;position:absolute; width:200px;height:216px;z-index:99;"></IFRAME>'+
					'<DIV ID="ID_Abreise" STYLE="display:none;border: 10px solid #F8EEB9;z-Index:100;color:blue;width:190px; height:196px; position:absolute;top:10;left:55" >'+
					'<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="190" HEIGHT="194">'+
					'<TR><TD ID="Abreise_TD"></TD></TR>'+
				'</TABLE>'+
			    '</DIV>';
	//wiCHTIG: vor dem abschliessendem Tag den HTML-Code, der im selectorHTML steht hinzufügen
	document.body.insertAdjacentHTML("BeforeEnd",selectorHTML)  
}
/*
//Falls die 0 beim Monat vorangestellt werden muss
function changeDateFormat(Month)
{
	return (Month<9?"0"+(Month+1):(Month+1));
}*/

function CheckInputDate(layer)
{
	var thisform;
	if(layer == 1) { thisform = document.forms[0].fStartDateSearched; }
	else { thisform = document.forms[0].fEndDateSearched; }
	
	var realdate = CheckDateFormat ( thisform.value );
	if( !realdate )
	{
		HideDateSelector(layer);
		CheckDate( thisform );
	}
	var tempArray=thisform.value.split(".");
	tempArray[2] = (parseInt(tempArray[2],10) + 2000).toString();
	var tempDate=new Date(tempArray[2],tempArray[1]-1,tempArray[0]);	
	var currentDate = new Date();
	RangeDown=new Date(currentDate.getTime());  
	RangeTop = new Date(js_latesttime.substring(6,10),parseInt(js_latesttime.substring(3,5))-1,js_latesttime.substring(0,2))
	if(tempDate<RangeDown || tempDate>RangeTop)
	{
		HideDateSelector(layer);
		thisform.value=thisform.defaultValue;
	}
}


