var nbsp = 160;    
var node_text = 3; 
var emptyString = /^\s*$/

function trim(str) {
  return str.replace(/^\s+|\s+$/g, '')
};

function msg(vfld,msgtype,message) {
  var dispmessage;
  if (emptyString.test(message)) 
    dispmessage = String.fromCharCode(nbsp);    
  else 
    dispmessage = message;

  vfld.className = msgtype;
  vfld.title = message;  
};

function check(vfld,rexp) {
  if (!rexp.test(vfld.value)) {
    vfld.className = "error";
    return false;
  }
  vfld.className = "validated";
  return true;
}

function validate(vfld,rexp,dispmsg) {
  if (!check(vfld,rexp)) {
    vfld.className = "error";
    msg (vfld,"error",dispmsg);  
    return false;
  }
  else
  {
    vfld.className = "validated";
    msg (vfld,"validated","");  
    return true;
  }
}

function commonCheck(vfld,reqd) {
  if (!document.getElementById) return true;  
  if (emptyString.test(vfld.value)) {
    if (reqd) {
      msg (vfld, "error", "Eingabe erforderlich");  
      vfld.focus();
      return false;
    } else {
      msg (vfld, "validated", "");   // OK
      return true;  
    }
  }
  return 2;
}

function validateField(vfld,rexp,emsg,reqd) {
  var stat = commonCheck (vfld,  reqd);
  if (stat != 2) return stat;
  var tfld = trim(vfld.value);
  if (!rexp.test(tfld)) {
    msg (vfld,"error", emsg);
    //vfld.focus();
    return false;
  }
  msg (vfld,"validated", "");
  return true;
}

