// verify.js : M.Luckmann, Dynamic Software GmbH, 14.06.2000 

function isblank(str) {
  for(var i=0;i<str.length;i++) {
    var c=str.charAt(i);
    if((c!=' ')&&(c!='\n')&&(c!='\t')) return false;
  }
  return true;
}

function isnum(str) {
  for(var i=0;i<str.length;i++) {
    var c=str.charAt(i);
    if((c!=' ')&&((c<'0') || (c>'9'))) return false;
  }
  return true;
}

function verify_select_required(field) {
  if (field.selectedIndex<0 || 
      field.options[field.selectedIndex].value=='InVaLiD') {
    field.focus();
    alert(field.errmsg ? field.errmsg : 
      ((field.fieldname ? field.fieldname : field.name)+
      ': Pflichtfeld: es muss eine Auswahl getroffen werden'));
    return false;  
  } else {
    return true;  
  }
}

function verify_required(field) {
  if(field.value==null || field.value=="" || isblank(field.value)) {
    if (field.type!="hidden") {
      field.focus();
    }
    alert(field.errmsg ? field.errmsg : 
      ((field.fieldname ? field.fieldname : field.name)+
      ': Pflichtfeld darf nicht leer sein'));
    return false;  
  } else {
    return true;  
  }
}

function verify_numeric(field) {
  var s=field.value;
  if(s==null || s=="" || isblank(s)) {
    return true;  
  }
  var v=parseInt(s, 10);
  if(isNaN(v) || !isnum(s)) {
    field.focus();
    alert(field.errmsg ? field.errmsg : 
      ((field.fieldname ? field.fieldname : field.name)+
      ': Bitte eine Zahl eingeben (nur Ziffern)'));
    return false;  
  } else if (field.min != null) { if (field.min > field.value) {
     return false; }
  } else if (field.max != null) { if (field.max < field.value) {
     return false; }
  } else {
    return true;  
  }
}

function verify(pform) {
  for(var i=0;i<pform.length;i++) {
    var field=pform.elements[i];
    if (field.checkfunct) {
      if (! field.checkfunct(field,field.errmsg ? field.errmsg : 
          ((field.fieldname ? field.fieldname : field.name)+
          ': Fehlerhafte Eingabe'))) {
        return false;  
      }
    } 
    if(field.required) {
      if(field.type=="text" || field.type=="password" || 
          field.type=="textarea" || field.type=="file" || 
          field.type=="hidden") {
        if (! verify_required(field)) {
          return false;  
        }
      } else if(field.type=="select-one" || field.type=="select-multiple") {
        if (! verify_select_required(field)) {
          return false;  
        }
      }
    }
    if(field.numeric || field.min != null || field.max != null ) {
      if(field.type=="text" || field.type=="password" || 
          field.type=="textarea" || field.type=="file" || 
          field.type=="hidden") {
        if (! verify_numeric(field)) {
          return false;  
        }
      }
    }
  }
  return true;
}

