/******************************* CHECKDATE ***********************************************/
/* Diese Funktion überprüft, ob ein Datum korrekt eingegeben wurde.			 */
/* Die Funktion liefert zurück, ob das Datum korrekt (true) oder unkorrekt (false) ist.	 */
/*****************************************************************************************/

function checkdate(p_myDate)
{
//      window.onerror=null // for all other strange errors
   var err=0
   var psj=0; // err 0=OK ab 1 Fehler !!! Fehler wurde zum Testen ausgegeben...
   
   myDate=p_myDate.value
   if (myDate.length == 0)
   {
	return (true)
   }
   else
   {
        if (myDate.length != 10) err=1
        myDay			= myDate.substring(0, 2)	// day
        myFirstPoint		= myDate.substring(2, 3)	// '.'
        myMonth			= myDate.substring(3, 5)	// month
        mySecondPoint		= myDate.substring(5, 6)	// '.'
        myYear			= myDate.substring(6, 10)	// year

        //basic error checking
        if (myDay<1 || myDay>31) err = 1
        if (myFirstPoint != '.') err = 2
        if (myMonth<1 || myMonth>12) err = 3
        if (mySecondPoint != '.') err = 4
        if (myYear<1900 || myYear>2099) err = 5
        
        //advanced error checking

        // months with 30 days
        if (myMonth==4 || myMonth==6 || myMonth==9 || myMonth==11){
                if (myDay==31) err=6
        }

        // february, leap year
        if (myMonth==2){
                // feb
                var myMod4=parseInt(myYear/4)
                if (isNaN(myMod4)) {
                        err=7
                }

                if (myDay>29) err=8
                if (myDay==29 && ((myYear/4)!=parseInt(myYear/4))) err=9
        }

        if (err!=0)
	{
                return (false)
        }
        else{
                return (true)
        }
   }
}