    var EMSG_DAY1 = "Bitte geben Sie den Tag als ein- oder zweistellige Zahl an!";
    var EMSG_DAY2 = "Der Tag muss 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 ";
    var EMSG_PLEASE_CR = "Bitte korrigieren Sie die Reisedaten!";

    function _getEMSG_DATE(delimiter)
    {
      return ("Bitte das Datum in der Form: TT"+delimiter+"MM"+delimiter+"JJJJ eingeben!");
    }

    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;
                }
    }

    function _getDay(str)
    {
        return _getDayI(str,".");
    }


    function _getDayI(str,delimiter)
    {
        var string = str.substring(0,str.indexOf(delimiter,0));
        
        if ( (string.length<1) || (string.length>2) ) return 0;

        var iday = parseInt(string,10);
        
        if (isNaN(iday)) return -1;
        
        if ( (iday<1) || (iday>31) ) return -2;
        
        return iday;
    }

    function _getYear(str)
    {
       return _getYearI(str,".");
    }

    function _getYearI(str,delimiter)
    {
        var point2;
        for (point2=str.length; (str.charAt(point2)!=delimiter) && (point2>0);point2--){}
        point2++;
        var string = str.substring(point2, str.length);
        
                
        var iyear = parseInt(string,10);
        
        if (isNaN(iyear)) return -1;
        
        if(iyear < 0)  return -1; 
        if(iyear < 99) return iyear + 2000; 
        if(iyear < 100) return iyear + 1900;    
        if(iyear < 1999) return 0;

        return iyear;
    }

    function _getMonth(str)
    {
       return _getMonthI(str,".");
    }

    function _getMonthI(str,delimiter)
    {
        var point1 = str.indexOf(delimiter,0);
        var point2 = str.lastIndexOf(delimiter,str.length);
        
        if (point1 == point2) return 0;
        
        var string = str.substring(point1+1,point2);
        
        if ( (string.length<1) || (string.length>2) ) return 0;

        var imon = parseInt(string,10);
        
        if (isNaN(imon)) return -1;
        
        if ( (imon<1) || (imon>12) ) return -2;
        
        return imon;
    }

    function verifyDate(form)
    {
        return verifyDateI(form,".");
    }

    function verifyDateI(form,delimiter)
    {

        var day = _getDayI(form.value,delimiter);
        
        if (day == 0)
        {
            alert(_getEMSG_DATE(delimiter));
            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;
        }
                    
        var year = _getYearI(form.value,delimiter);
        
        if (year == 0)
        {
            alert(EMSG_YEAR1);
            form.focus();
            form.select();
            return false;
        }
        
        if (year==-1)
        {
            alert(_getEMSG_DATE(delimiter));
            form.focus();
            form.select();
            return false;
        }

        var month = _getMonthI(form.value,delimiter);
        
        if (month==0)
        {
            alert(_getEMSG_DATE(delimiter));
            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;
        }
        
        var tdm = daysOfMonth(year,month);
        if (day>tdm)
        {
            var str = new String();
            str+=EMSG_COMBI_JMD;
            str+=tdm;
            str+=" Tage! ";
            str+=EMSG_PLEASE_CR;
            alert(str);
            form.focus();
            form.select();
            return false;
        }
        return true;
    }


