    /** Überflüssige Leerzeichen entfernen */
function trim(strIn) {
    return(strIn.replace(/(^\s+|\s+$)/g,''));
}

  /** text-input und textarea prüfen */
function text_check(objElem, arrCheck) {
  objElem.value=trim(objElem.value);
  if (arrCheck[0] || objElem.value.length > 0) {
      if (!objElem.value.match(arrCheck[1])) {
          alert((arrCheck.length == 3) ? arrCheck[2] : strMsg );
          objElem.select();
          objElem.focus();
          return false;
      }
  }
  return true;
}

  /** boxes checken */
function box_check(objElem, arrCheck) {
  intChecked = 0;
  arrBoxes=(typeof objElem.form.elements[objElem.name].length == 'number')
              ?objElem.form.elements[objElem.name]
              :new Array(objElem);
  for (e = 0; e < arrBoxes.length; ++e) {
      intChecked+=(arrBoxes[e].checked) ? 1 : 0
  }
  if (!eval('intChecked' + arrCheck[1])) {
         alert((arrCheck.length == 3) ? arrCheck[2] : strMsg);
         arrBoxes[0].focus();
         return false;
  }
  return true;
}

  /** Listen checken */
function list_check(objElem, arrCheck) {
  if(!eval('objElem.selectedIndex' + arrCheck[1])) {
      alert((arrCheck.length == 3) ? arrCheck[2] : strMsg );
      objElem.focus();
      return false;
  }
  return true;
}

  /** befindet sich objElem in objForm? */
function in_form(objElem,objForm) {
  return(typeof objElem.form=='object' && objElem.form==objForm);
}

  /** zu prüfende Formularelemente ermitteln */
function get_field_type(objElem) {
  switch (objElem.tagName.toLowerCase()) {
      case "input":
          switch(objElem.type)
              {
              case "text":
                  strFieldType='text';
                  break;

              case "password":
                  strFieldType='text';
                  break;

              case "file":
                  strFieldType='text';
                  break;

              case "radio":
                  strFieldType='box';
                  break;

              case "checkbox":
                  strFieldType='box';
                  break;

              default:
                  strFieldType=false;
                  break;
              }
          break;
      case "select":
              strFieldType='list';
              break;
      case "textarea":
              strFieldType='text';
              break;
      default:
              strFieldType=false;
              break;
  }
  return strFieldType;
}

function check_form(objForm, strFormAction) {
  if  (!document.getElementsByName) {
      return true;
  }
  for (var strName in arrFields) {
      for(j=0;j<document.getElementsByName(strName).length;++j) {
          objElem=document.getElementsByName(strName)[j];
          if(in_form(objElem,objForm)) {
              if(!eval(get_field_type(objElem)+'_check(objElem,arrFields[strName])')) {
                  return false;
              }
              if(get_field_type(objElem)=='box') {
                  continue;
              }
          }
      }
  }
 	objForm.action=strFormAction;
  return true;
}

