
function checkNotNull(field){
  if (field) {
    if (field.value.length > 0 )
      return true;
    else
      return false;
  }
  return true;
}


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 checkLength(field, min, max){
  if(field) {
    if (field.value.length >= min && field.value.length <= max )
      return true;
    else
      return false;
  } 
  return true;
}


function checkNumber(field){
  if(field) {
    if (isNaN(field.value))
      return false;
    else
      return true;
  } 
  return true;
}


function checkNumberLength(field, min, max){
  return checkLength(field, min, max) && checkNumber(field);
}


function isValidEmail(field){
  if (field.value != "") {
    if (    (field.value.indexOf ('@') == -1)
         || (field.value.indexOf ('.') == -1) ){
      return false;
    }
    else
      return true;
  }
  else
    return true;
}


function isValidDate(dateString){
  // Tag und Monat koennen einstellig, Jahr muss 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;
}

//
// Prüft Felder der Volltextsuche auf Korrektheit.
// Liefert true zurueck, wenn das Feld OK ist; sonst false.
//
function checkFulltextSearchField(field) {
  fieldTest = field.replace(/\W+/,"").replace(/_+/,"");
  if (fieldTest.length<2) { return false; }
  var error = field.match(/.* [^-] .*/);
  error = error || field.match(/^[^-] .*/);
  error = error || field.match(/.* [^"]$/);
  error = error || field.match(/.* -[^"] .*/);
  error = error || field.match(/^-[^"] .*/);
  error = error || field.match(/^-.$/);
  error = error || field.match(/.* -.$/);
  return !error;
}
