/**********************************/
/*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
var currentLayer; // Layer des aktuell geöffneten Kalenders
/*******************************/
/*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("Bundesweit", 
						"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");
		break;
	case 2007:
		publicHolidays = new Array("1.1","8.4","9.4","1.5","27.5","28.5","3.10","25.12","26.12");
		break;
	case 2008:
		publicHolidays = new Array("1.1","1.5","23.3","24.3","11.5","12.5","3.10","25.12","26.12");
		break;
	case 2009:
		publicHolidays = new Array("1.1","1.5","12.4","13.4","31.5","1.6","3.10","25.12","26.12");
		break;
	case 2010:
		publicHolidays = new Array("1.1","1.5","4.4","5.4","23.5","24.5","3.10","25.12","26.12");
		break;
	case 2011:
		publicHolidays = new Array("1.1","1.5","24.4","25.4","12.6","13.6","3.10","25.12","26.12");
		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)
{	
	currentDate=new Date();
	currentDate.setHours(0,0,0,0);
	
	// Sanity check fuer gueltiges Datum im Eingabefeld
	
	CheckInputDate(layer);


	// Starte Kalender

	if(KalenderDa)
	{
		if (currentLayer==layer){
			// nix zu tun
			 return;
		} else {
			// Versuch neuen Kalender zu öffnen während ein anderer noch offen ist
			// alten Kalender zumachen
			HideDateSelector(currentLayer);
			KalenderDa=true;  //Kalender-Layer wieder auf offen setzen
			currentLayer=layer; // currentLayer umsetzen
			// weitermachen...
		}
		
		
	}
	else
	{
		KalenderDa=true;  //Kalender-Layer ist auf
		currentLayer=layer; // aktuellen Layer merken
	}

	if(document.getElementById)
	{
		if(!Anreise_TABLE && layer == 1)    //Kalenderfl?che f?r Anreise erstellen
		{
			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)
			RangeDown = getRangeDownAnreise();
			RangeTop = getRangeTopAnreise();
  		}
		if(!Abreise_TABLE && layer == 2)    //Kalenderfl?che f?r Abreise erstellen
		{
			DrawCalenderAbreise();
			//wiCHTIG: vor dem abschlie?endem 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)
			RangeDown = getRangeDownAbreise();
			RangeTop = getRangeTopAbreise();
		}
		DateChosen=DateRef;
		ImagePfad=ImagePath;

//		RangeDown=new Date(currentDate.getTime()-(Day*184));  
//		RangeTop=new Date(currentDate.getTime()+(Day*182));
//		RangeDown=new Date(currentDate.getTime()+(3600*24));  
//		RangeTop = new Date(js_latesttime.substring(6,10),parseInt(js_latesttime.substring(3,5))-1,js_latesttime.substring(0,2))

		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??e(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??e(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??e(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 anschlie?end 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)
{
	//alert("Hide\n" + "layer=" + layer + "\ncurrentLayer=" +currentLayer);
	if(Anreise_TABLE && layer == 1) //f?r Anreise Kalender-Layer wieder zuklappen
	{
		if(Browser=="Gecko")
		{
			Anreise_TABLE.style.visibility="hidden";
			KalenderDa=false;
			currentLayer=0;
			
			return;
		}
		else
		{
		    Anreise_TABLE.style.display = "none";
			Anreise_TABLE.style.visibility="hidden";
			Anreise_IFRAME.style.display = "none";
			KalenderDa=false;
			currentLayer=0;
		}
	}
	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])
		{
//			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>"
		       }
		       else
		       {
				strCalendar+="<TD STYLE='"+StyleString+PublicHolidaysString+"'><A HREF='Javascript: void SetDate(\""+DateToString(dtTheDay)+"\","+layer+")' style='color: #00329B; "
				if(PubHoliday == 1) { strCalendar+=" color: red !important; " }
				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='gfx/but_next_yel.gif' WIDTH='22' HEIGHT='17' HSPACE='1' onClick='AdvanceDate(1,"+layer+")'>" 		
	}
	if(!rightButton)
	{
		rightButton = "";
		leftButton = "<INPUT TYPE='image' SRC='gfx/but_prev_yel.gif' WIDTH='22' HEIGHT='17' HSPACE='1' onClick='AdvanceDate(-1,"+layer+")'>" 	
	}
	if(leftButton&&rightButton)		
	{
   	 	rightButton = "<INPUT TYPE='image' SRC='gfx/but_next_yel.gif' WIDTH='22' HEIGHT='17' HSPACE='1' onClick='AdvanceDate(1,"+layer+")'>" 	
		leftButton = "<INPUT TYPE='image' SRC='gfx/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+'</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>"
		       }
		       else
		       {
				strCalendar+="<TD STYLE='"+StyleString+PublicHolidaysString+"'><A HREF='Javascript: void SetDate(\""+DateToString(dtTheDay)+"\","+layer+")' style='color: #00329B; " 
				if(PubHoliday == 1) { strCalendar+=" color: red !important; " }
				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='gfx/but_next_yel.gif' WIDTH='22' HEIGHT='17' HSPACE='1' onClick='AdvanceDate(1,"+layer+")'>" 		
	}
	if(!rightButton)
	{
		rightButton = "";
		leftButton = "<INPUT TYPE='image' SRC='gfx/but_prev_yel.gif' WIDTH='22' HEIGHT='17' HSPACE='1' onClick='AdvanceDate(-1,"+layer+")'>" 	
	}
	if(leftButton&&rightButton)		
	{
	 	rightButton = "<INPUT TYPE='image' SRC='gfx/but_next_yel.gif' WIDTH='22' HEIGHT='17' HSPACE='1' onClick='AdvanceDate(1,"+layer+")'>" 	
		leftButton = "<INPUT TYPE='image' SRC='gfx/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+'</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)))
	{
		return false;
	}
	//DayChosen=0;
	
	// Konvertiere 4-stellig auf 2-stellig
//	var YearInt = parseInt(tempArray[2])-2000;
//	var resultingDate=tempArray[0]+"."+tempArray[1]+".0"+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.forms[0].Abreise_am.value = DateChosen.value;
		
		//if(document[formbez].Abreise_am.disabled == true)
		//{ 
		//		return;
		//}
		
		//switch(formbez)
		//{
		//	case "ibe.hotelDataForm": showCalendar(document['ibe.hotelDataForm'].Abreise_am,null,"gfx/",19,5,2);break;
		//	case "ibe.fincaDataForm": showCalendar(document['ibe.fincaDataForm'].Abreise_am,null,"gfx/",19,5,2);break;
		//	case "ibe.flightDataForm": showCalendar(document['ibe.flightDataForm'].Abreise_am,null,"gfx/",19,5,2);break;
		//	case "ibe.generalDataForm": showCalendar(document['ibe.generalDataForm'].Abreise_am,null,"gfx/",19,5,2);break;
		//	case "ibe.holidayTypeDetailsForm": showCalendar(document['ibe.holidayTypeDetailsForm'].Abreise_am,null,"gfx/",19,5,2);break;
		//	case "ibe.rentalCarForm": showCalendar(document['ibe.rentalCarForm'].Abreise_am,null,"gfx/",19,5,2);break;
		//	case "ibe.additionalServicesDataForm": showCalendar(document['ibe.additionalServicesDataForm'].Abreise_am,null,"gfx/",19,5,2);break;
		//	case "ibe.hotelChangeTravelDateForm": showCalendar(document['ibe.hotelChangeTravelDateForm'].Abreise_am,null,"gfx/",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, layer)
{
	if (null == js_latesttime) {
		return;
	}
//	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();
	if (layer == 1) {
		RangeDown=getRangeDownAnreise(); 
		RangeTop = getRangeTopAnreise();
	} else {
		RangeDown=getRangeDownAbreise(); 
		RangeTop = getRangeTopAbreise();
	}

	if(tempDate<RangeDown || tempDate>RangeTop)
	{
		thisDateField.value=thisDateField.defaultValue;
	}
	if(thisDateField.value=="")
	{
		thisDateField.value=thisDateField.defaultValue
	//	thisDateField.value=noDate
	}
	if((thisDateField.value!=noDate)&&(!CheckDateFormat(thisDateField.value)))
	{
		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 ibeagent = navigator.userAgent.toLowerCase();
	var layer = '';
	if (ibeagent.indexOf("opera") != -1) {
		layer = '<IFRAME src="javascript:false;" ID = "iframe_an" name="iframe_an" STYLE="display:none;position:absolute; width:0px;height:0px;z-index:99;filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);"></IFRAME>';
	}	
	else {
		layer = '<IFRAME src="javascript:false;" ID = "iframe_an" name="iframe_an" STYLE="display:none;position:absolute; width:200px;height:216px;z-index:99;filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);"></IFRAME>';
	}
	var selectorHTML=''+
					'<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>';
	var resultingString = layer+selectorHTML;	
	document.body.insertAdjacentHTML("BeforeEnd",resultingString)  
}

function DrawCalenderAbreise()
{
	var ibeagent = navigator.userAgent.toLowerCase();
	var layer = '';
	if (ibeagent.indexOf("opera") != -1) {
		layer = '<IFRAME src="javascript:false;" ID = "iframe_ab" name="iframe_ab" STYLE="display:none;position:absolute; width:0px;height:0px;z-index:99;filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);"></IFRAME>';
	}	
	else {
		layer = '<IFRAME src="javascript:false;" ID = "iframe_ab" name="iframe_ab" STYLE="display:none;position:absolute; width:200px;height:216px;z-index:99;filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);"></IFRAME>';
	}
	var selectorHTML=''+
					'<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>';	
	var resultingString = layer+selectorHTML;	
	document.body.insertAdjacentHTML("BeforeEnd",resultingString)  
}
/*
//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].Anreise_am; }
	else { thisform = document.forms[0].Abreise_am; }
	
	if (null == thisform) {
		return;
	}
	
	var realdate = CheckDateFormat ( thisform.value );
	if( !realdate )
	{
		HideDateSelector(layer);
		CheckDate( thisform , layer);
	}
	var tempArray=thisform.value.split(".");
	// mv - added %2000
	tempArray[2] = ((parseInt(tempArray[2],10) % 2000) + 2000).toString();
	var tempDate=new Date(tempArray[2],tempArray[1]-1,tempArray[0]);	
	var currentDate = new Date();
	if (layer == 1) {
		RangeDown=getRangeDownAnreise(); 
		RangeTop = getRangeTopAnreise();
	} else {
		RangeDown=getRangeDownAbreise(); 
		RangeTop = getRangeTopAbreise();
	}
	if(tempDate<RangeDown || tempDate>RangeTop)
	{
		HideDateSelector(layer);
		thisform.value=thisform.defaultValue;
	}
}

function getRangeTopAnreise(){
	if (document.forms[0].Hotel && document.forms[0].Hotel.value != '') {
		var index = document.forms[0].Hotel.selectedIndex;
		var key = document.forms[0].Hotel.value;
		var datum = findHotelEndDatum(key);
		if (datum != null) {
			return str2Date(datum);
		}
	}
	if (maxAnreise != '') {
		return str2Date(maxAnreise);
	} else {
		return str2Date(js_latesttime);
	}
}

function getRangeTopAbreise(){
	if (document.forms[0].Hotel && document.forms[0].Hotel.value != '') {
		var index = document.forms[0].Hotel.selectedIndex;
		var key = document.forms[0].Hotel.value;
		var datum = findHotelEndDatum(key);
		if (datum != null) {
			return str2Date(datum);
		}
	}
	if (maxAbreise != '') {
		return str2Date(maxAbreise);
	} else {
		return str2Date(js_latesttime);
	}
}

function getRangeDownAnreise(){
	if (document.forms[0].Hotel && document.forms[0].Hotel.value != '') {
		var index = document.forms[0].Hotel.selectedIndex;
		var key = document.forms[0].Hotel.value;
		var datum = findHotelStartDatum(key);
		if (datum != null) {
			if (minAnreise != '') {
				datum = str2Date(maxStrDate(datum, minAnreise));
			} else {
				datum = str2Date(datum);
			}
		}
	} else if (minAnreise != '') {
		datum = str2Date(minAnreise);
	} else {
		datum = new Date(currentDate.getTime()+(3600*24));  
	}
//	alert("RangeDownAnreise: " + maxStrDate(date2Str(new Date()), date2Str(datum)));
	return str2Date(maxStrDate(date2Str(new Date()), date2Str(datum)));
}

function getRangeDownAbreise(){
	if (document.forms[0].Hotel && document.forms[0].Hotel.value != '') {
		var index = document.forms[0].Hotel.selectedIndex;
		var key = document.forms[0].Hotel.value;
		var datum = findHotelStartDatum(key);
		if (datum != null) {
			if (minAbreise != '') {
				datum = str2Date(maxStrDate(datum, minAbreise));
			} else {
				datum = str2Date(datum);
			}
		}
	} else if (minAbreise != '') {
		datum = str2Date(minAbreise);
	} else {
		datum = new Date(currentDate.getTime()+(3600*24));  
	}
//	alert("RangeDownAbreise: " + maxStrDate(date2Str(new Date()), date2Str(datum)))
	return str2Date(maxStrDate(date2Str(new Date()), date2Str(datum)));
}

function findHotelStartDatum(key) {
	for(i = 0; i < date_Liste_Hotels.length; i++){
		if (date_Liste_Hotels[i][0] == key){
			return date_Liste_Hotels[i][1];
		}
	}
	return null;
}
function findHotelEndDatum(key) {
	for(i = 0; i < date_Liste_Hotels.length; i++){
		if (date_Liste_Hotels[i][0] == key){
			return date_Liste_Hotels[i][2];
		}
	}
	return null;
}
