function checkdate(objSrc) {

	if(objSrc == null)
		return;
		
	var dtNow = new Date();
	var strCurrentYear = dtNow.getYear();
	var strCurrentMonth = dtNow.getMonth() + 1;
	if (strCurrentMonth < '10') strCurrentMonth = '0' + strCurrentMonth;
	var strCurrentDay = dtNow.getDate();
    if (strCurrentDay < '10') strCurrentDay = '0' + strCurrentDay;
	
	if(objSrc.value == " "){
		objSrc.value = strCurrentDay + "." + strCurrentMonth + "." + strCurrentYear;
		return true;
	}
	
	return Validcheckdate(objSrc);
}

function Validcheckdate(objSrc) {
  var datefield = objSrc;
  if (chkdate(objSrc) == false) {
     datefield.select();
     alert("Datum ist ungueltig.");
     datefield.focus();
     return false;
  }
  else {
     return true;
  }
}

function chkdate(objSrc) {
  var strDate;
  var strDateArray;
  var strDay;
  var strMonth;
  var strYear;
  var intday;
  var intMonth;
  var intYear;
  var booFound = false;
  var datefield = objSrc;
  var strSeparatorArray = new Array("-"," ","/",".");
  var intElementNr;
  var err = 0;
  strDate = datefield.value;
  if (strDate.length < 1) {
     return true;
  }

  for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
    if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
      strDateArray = strDate.split(strSeparatorArray[intElementNr]);

		var runTime = new Date();

      if (strDateArray.length == 1) {
			strDay = strDateArray[0];
			strMonth = runTime.getMonth() + 1;
			strYear = runTime.getYear();
      }
      else if (strDateArray.length == 2) {
			strDay = strDateArray[0];
			if(strDateArray[1] == "")
				strDateArray[1] = runTime.getMonth() + 1;
			strMonth = strDateArray[1];
			strYear = runTime.getYear();
      }
      else if (strDateArray.length == 3) {
			strDay = strDateArray[0];
			strMonth = strDateArray[1];
			strYear = strDateArray[2];
      }
      else{
        err = 1;
        return false;
      }
     
      booFound = true;
    }
  }
  
  if (booFound == false) {
    if (strDate.length > 5) {
      strDay = strDate.substr(0, 2);
      strMonth = strDate.substr(2, 2);
      strYear = strDate.substr(4);
    }
    
    if ((strDate.length == 1) || (strDate.length == 2)) {
		var runTime = new Date();
		strDay = strDate;
		strMonth = runTime.getMonth() + 1;
		strYear = runTime.getYear();
    }
  }

  intday = parseInt(strDay, 10);
  if (isNaN(intday)) {
    err = 2;
    return false;
  }
  intMonth = parseInt(strMonth, 10);
  if (isNaN(intMonth)) {
    err = 3;
    return false;
  }
  intYear = parseInt(strYear, 10);
  if (isNaN(intYear)) {
    err = 4;
    return false;
  }
  if (strYear.length == 2) {
	if (strYear < '48')
		strYear = '20' + strYear;
	else
		strYear = '19' + strYear;
  }
  else {
	if ((intYear < 1850) || (intYear > 2050)) {
		err = 11;
		return false;
	}
  }
  if (intMonth > 12 || intMonth < 1) {
    err = 5;
    return false;
   }
  if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
    err = 6;
    return false;
  }
  if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
    err = 7;
    return false;
  }
  if (intMonth == 2) {
    if (intday < 1) {
      err = 8;
      return false;
    }
    if (LeapYear(intYear) == true) {
      if (intday > 29) {
        err = 9;
        return false;
      }
    }
    else {
      if (intday > 28) {
        err = 10;
        return false;
      }
    }
  }

  // Datum formatieren
  var strDay, strMonth;
  strDay = intday.toString();
  strMonth = intMonth.toString();
  
  if (intday < 10) strDay = '0' + strDay;
  if (intMonth < 10) strMonth = '0' + strMonth;
  datefield.value = strDay + "." + strMonth + "." + strYear;
  
  return true;
}


function LeapYear(intYear) {
  if (intYear % 100 == 0) {
    if (intYear % 400 == 0) { return true; }
  }
  else {
    if ((intYear % 4) == 0) { return true; }
  }
  return false;
}


