
	var EMSG_DATE = "Bitte das Datum in der Form: TT.MM.JJJJ eingeben!"
	var EMSG_DAY1 = "Bitte geben Sie den Tag als ein- oder zweistellige Zahl an!" 
	var EMSG_DAY2 = "Der Tag muß zwischen 1 und 31 liegen!"
	var EMSG_YEAR1 = "Bitte geben Sie das Jahr 4-stellig an!"
	var EMSG_MONTH1= "Bitte geben Sie den Monat als ein- oder zweistellige Zahl an!" 
	var EMSG_MONTH2= "Der Monat liegt nicht zwischen 1 und 12!"
	var EMSG_COMBI_JMD ="Der von Ihnen angegebene Monat hat nur "	
	
	//***********************
	//* Fenster schließen 
	//***********************
	function closeWindow()
	{
		self.close()
	}

	//***********************************************
	//* Anzahl Tage eines Monats bestimmen 
	//***********************************************
	function daysOfMonth(y,m)
	{
	  	days = 0
                
       	if(m == 2) 
		{
             		leapYear= false;

                    if( y%4==0 ) leapYear= true
                    if( y%100==0 && y%400!=0 ) leapYear= false

                    if( leapYear ) return 29
			else                 return 28
        	}
      		else if( m < 7) {
                        if( (m%2) == 1) return 31
                        else return 30
                }
                else {
                        if(m == 7) 
                                return 31
                        else if ( (m%2) == 1) 
                                return 30
                        else return 31
                }
	}

	//************************************
	//* Liefert den Tag aus einem
	//* Datums-String der Form (TT.MM.JJJJ)
	//* Führende Nullen werden berücksichtigt
	//* Ausgabe: Tag als Integer (1..99) oder 
	//* 0 : Länge ist kleiner 1 oder größer 2
	//* -1: Tag ist keine Zahl (z.B. Mo)
	//* -2: Tag ist kleiner 1 oder größer 31
	//************************************
	function _getDay(str)
	{
		var string = str.substring(0,str.indexOf(".",0))
		
		// 1.Test:  Länge>1 && <3 ?
		if ( (string.length<1) || (string.length>2) ) return 0
				
		var iday = parseInt(string,10)
		
		// 2.Test: Ist iday eine Zahl?
		if (isNaN(iday)) return -1
				
		// 3.Test: liegt Zahl zwischen 1 und 31 ?
		if ( (iday<1) || (iday>31) ) return -2
		
		// Zahl zwischen 1 und 31 zurückgeben
		return iday
	}

	//******************************************
	//* Liefert das Jahr aus einem Datums-String
	//* der Form TT.MM.JJJJ
	//* Das Jahr muß 4-stellig sein.
	//* Ausgabe: Integer oder 
	//* 0: Jahr nicht 4-stellig
	//* -1: Jahr ist keine Zahl
	//******************************************
	function _getYear(str)
	{
		//*** Jahr extrahieren (4 Zeichen von rechts, bis Punkt)
		var point2
		for (point2=str.length; (str.charAt(point2)!=".") && (point2>0);point2--){}
		point2++
		var string = str.substring(point2, str.length)
		
		// 1.Test: Hat das Jahr 4 Zeichen? 
		if (string.length!=4) return 0
		
		var iyear  = parseInt(string,10)
		
		// 2.Test: Ist der String eine Zahl?
		if (isNaN(iyear)) return -1
		
		return iyear
	}

	//*****************************
	//* Liefert den Monat eines Datum-Strings
	//* (TT.MM.JJJJ). Das Jahr muß 4-stellig sein!
	//* Ausgabe: 1..12 oder
	//* 0: Monat nicht gefunden/Nicht 1-2 Stellen
	//* -1: Monat ist keine Zahl
	//* -2: Monat liegt nicht zwischen 1..12
	//******************************
	function _getMonth(str)
	{
		//*** Monat extrahieren
		var point1 = str.indexOf(".",0)
		var point2 = str.lastIndexOf(".",str.length)
		
		// 1.Test: Zwei Punkte vorhanden?
		if (point1 == point2) return 0
		
		var string = str.substring(point1+1,point2)
		
		// 2.Test: Monat 1..2 Stellen?
		if ( (string.length<1) || (string.length>2) ) return 0

		var imon = parseInt(string,10)
		
		// 3.Test: ist imon eine Zahl
		if (isNaN(imon)) return -1
		
		// 4.Test: liegt Zahl zwischen 1 und 12?
		if ( (imon<1) || (imon>12) ) return -2
		
		// Integer zwischen 1 und 12 zurückgeben
		return imon
	}
		
	//****************************************************
	//* Datum auf korrekte Schreibweise
	//* und Kombination von Tag, Monat und Jahr
	//* überprüfen
	//* Ausgabe: TRUE, falls Datum korrekt
	//****************************************************
	function verifyDate(form)
	{
		//*** Tag testen ***

		var day = _getDay(form.value)
		
		if (day == 0)
		{
			alert(EMSG_DATE)
			form.focus()
			form.select()
			return false
		}
		
		if (day == -1)
		{
			alert(EMSG_DAY1)
			form.focus()
			form.select()
			return false
		}
		
		if (day == -2)
		{
			alert(EMSG_DAY2)
			form.focus()
			form.select()
			return false
		}
					
		//*** Jahr testen ***
		
		var year = _getYear(form.value)
		
		if (year == 0)
		{
			alert(EMSG_YEAR1)
			form.focus()
			form.select()
			return false
		}
		
		if (year==-1)
		{
			alert(EMSG_DATE)
			form.focus()
			form.select()
			return false
		}
		
		//*** Monat testen ***
		var month = _getMonth(form.value)
		
		if (month==0)
		{
			alert(EMSG_DATE)
			form.focus()
			form.select()
			return false
		}
		
		if (month == -1)
		{
			alert(EMSG_MONTH1)
			form.focus()
			form.select()
			return false
		}
	
		if (month == -2)
		{
			alert(EMSG_MONTH2)
			form.focus()
			form.select()
			return false
		}
		
		//*** Prüfen, ob Kombination Jahr, Monat, Tag gültig
		var tdm = daysOfMonth(year,month)
		if (day>tdm)
		{
			var str = new String()
			str+=EMSG_COMBI_JMD
			str+=tdm
			str+=" Tage!"
			
			alert(str)
			form.focus()
			form.select()
			return false
		}
				
						
		//*** Datum ist KORREKT
		return true
	}
	
	//*************************************************
	//* Vergleich zweier Daten der Form TT.MM.JJJJ
	//* Ausgabe: 	0, wenn date1=date2
	//*         		-1, wenn date1<date2
	//*				1, wenn date1>date2
	//*************************************************
	function compareDates(date1,date2)
	{
		//*** ist Jahr größer => alles klar!
		var year1 = _getYear(date1.value)
		var year2 = _getYear(date2.value)
		if (year1<year2) return -1
		if (year1>year2) return 1
		
		//*** jahr1 und jahr2 sind gleich => was ist mit Monat?
		var month1 = _getMonth(date1.value)
		var month2 = _getMonth(date2.value)
		if (month1<month2) return -1
		if (month1>month2) return 1
		
				
		//*** Monat1 = Monat2, was ist mit Tag?
		var day1 = _getDay(date1.value)
		var day2 = _getDay(date2.value)
		if (day1<day2) return -1
		if (day1>day2) return 1
		
		return 0
	}
	
	function IsTextFieldValid( fld, mess )
	{
		if (fld.value.length==0)
		{
			alert(mess)
			fld.focus()
			fld.select()
			return false
		}
		return true;
	}
	
	
	function checkDatesAndPersons(date1, date2, erw)
	{
			// Datum der Buchung überprüfen
			if (date1.value.length==0)
			{		
				alert("Sie haben kein Anreise-Datum angegeben!")
				date1.focus()
				date1.select()			
				return false
			}
					
			if (verifyDate(date1)==false)
			{
//				alert("Bitte korrigieren Sie das Anreisedatum!")
				return false
			}
			
			if (date2.value.length==0)
			{		
				alert("Sie haben kein Abreise-Datum angegeben!")
				date2.focus()
				date2.select()			
				return false
			}
			
			if (verifyDate(date2)==false)
			{
//				alert("Bitte korrigieren Sie das Abreisedatum!")
				return false
			}
	
			if (compareDates(date1,date2)==1)
			{
				alert("Das Abreise-Datum liegt vor dem Anreise-Datum")
				date2.focus()
				date2.select()
				return false
			}
			
			if (compareDates(date1,date2)==0)
			{
				alert("Bei gleichem An- und Abreise-Datum brauchen Sie keine Übernachtung!")
				date2.focus()
				date2.select()
				return false
			}

			// es sollte zumindest einen Erwachsenen geben
			var personval = parseInt(erw.value);

			if ( isNaN(personval))	
			{
				alert("Bitte geben Sie die Anzahl der Personen an!");
				//document.fax_form.faxerwachsene.focus();
				//document.fax_form.faxerwachsene.select();
				erw.focus();
				erw.select();
				return false;
			}
	
			if (personval<1)	
			{
				alert("Bitte geben Sie die Anzahl der Personen an!");
				//document.fax_form.faxerwachsene.focus();
				//document.fax_form.faxerwachsene.select();
				erw.focus();
				erw.select();
				return false;
			}


		return true
	}

