function isValidDate(dateString){
  // Tag und Monat koennen einstellig, Jahr muß vierstellig sein: (D[D].M[M].YYYY)
  // Datum darf auch leer sein
  var month_length= new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
  var point_count=0;
  var points = new Array();
  if(dateString.length==0)
    return true;

  for(i=0;i<dateString.length;i++){
    if(dateString.charAt(i)=="."){
      points[point_count]=i;
      point_count++;
    }
  }
  if(!(point_count!=2)){
    var day=parseInt(dateString.substring(0,points[0]),10);
    var month=parseInt(dateString.substring(points[0]+1,points[1]),10);
    var year=parseInt(dateString.substring(points[1]+1,dateString.length),10);
    var yearString=dateString.substring(points[1]+1,dateString.length);
    if (!(yearString.length!=4||year<0 || year>9999||isNaN(year))){
      if (year%4==0){
        if(!((year%100==0)&&(year%400!=0)))
          month_length[2] = 29;
      }
      if (!(month<1 || month>12 ||isNaN(month))){
        if (!(day<1 || day> month_length[month]||isNaN(day))){
          if (day<10)
            day="0"+ day;
          if (month<10)
            month="0"+ month;
          dateString=day+"."+month+"."+year;
          return true;
        }
      }
    }
  }
  return false;
}

function isValidTime(timeString){
  // Stunde kann einstellig, Minute muß zweistellig sein: (H[H].M[M])
  var point_count=0;
  var points = new Array();
  if(timeString.length==0)
    return true;

  for(i=0;i<timeString.length;i++){
    if(timeString.charAt(i)=="."){
      points[point_count]=i;
      point_count++;
    }
  }

	if(!(point_count!=1)){
    var hour=parseInt(timeString.substring(0,points[0]),10);
    var minute=parseInt(timeString.substring(points[0]+1,timeString.length),10);
		var minuteString=timeString.substring(points[0]+1,timeString.length);

   if (hour < 24 && minute < 60 && minuteString.length == 2){
	  return true;
   	}
	}
  return false;
}

function isValidOpeningTime(timeString){
  // Stunde kann einstellig, Minute muß zweistellig sein: (H[H]:M[M])
  var point_count=0;
  var points = new Array();
  if(timeString.length==0)
    return true;

  for(i=0;i<timeString.length;i++){
    if(timeString.charAt(i)==":" || timeString.charAt(i)=="."){
      points[point_count]=i;
      point_count++;
    }
  }

	if(!(point_count!=1)){
    var hour=parseInt(timeString.substring(0,points[0]),10);
    var minute=parseInt(timeString.substring(points[0]+1,timeString.length),10);
		var minuteString=timeString.substring(points[0]+1,timeString.length);

   if (hour < 24 && minute < 60 && minuteString.length == 2){
	  return true;
   	}
	}
  return false;
}
