/*regExp.js
==================================================
Anwendung: - Formularfelder auf korrekte Eingabe testen
==================================================
Copyright (c) 2004 by Horst Gärtner, Kurort Jonsdorf.
Alle Rechte vorbehalten.

Version:     1.0
Datum:       12.01.2004

Aenderungen:13.12.2007
***************************************************/
function openAlert(txt){
         Dialog.alert(txt,
             {windowParameters: {className: "alphacube",
                                 title: "Fehler bei der Eingabe!",
                                 width:300
                                },
                                okLabel: "OK",
                                ok:function(win)
                                {return true;}});
       }
var inf="Die Eingabe ist nicht korrekt!",z;
var regName    = /[a-zA-ZöüäÖÜÄ_]/;        //regulärer Ausdruck (Zeichenklasse)
var regBst     = /[0-9A-Z,_]/;              // Bausteinziffer & Buchstabe
var regStr     = /[\w\#ZöüäÖÜÄß,]/;        //regulärer Ausdruck (Zeichenklasse)
var regZahl    = /[0-9,]/;                      //regulärer Ausdruck
var regDezZahl = /^\d+[,\.]{1}\d{1,2}$/;    //regulärer Ausdruck als Formatvorlage
var regTel     =/[0-9_()\/\[\]]/;           //regulärer Ausdruck (Zeichenklasse)
var regPlz     =/^\d{5}$/;                  //regulärer Ausdruck als Formatvorlage
var regEmail=/^([\w-]+)(\.[\w-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,4})$/;
var regHome=/^(www\.)([a-zA-Z0-9]+)([a-zA-Z0-9-]+)\.([a-z]{2,3})$/;
// Leerzeichen und '-' mit '_' tauschen
function encryptText (tx) {
 tx=tx.replace(/ /g, "_");
 tx=tx.replace(/-/g, "_");
 tx=tx.replace(/\./g, "_");
 return tx;
}
// einzelne Zeichen mit regularen Ausdruck vergleichen
function checkChar (txt,reg) {
 z=0;
 //alert(txt.length);
 txt = encryptText(txt);
 for (i=0; i<txt.length ; i++ ) {
     if (reg.test(txt.charAt(i))== false){
     //alert(txt.charAt(i))
     z=i+1; return false;
     break;
     }
 }
 return true;
}
// regulaere Ausdruecke testen
function check(inp,o) {
//alert("Test= "+sb.test(encryptText(NAME)));
//prüfen nach nicht alphanumerische Zeichen oder ob Feld leer ist
// Name, Ort oder andere alphanumerische Zeichen
  if(inp=='name'&& o.value!="") {
     if (checkChar(o.value,regName)==false){
     //alert(regName);
        openAlert(inf+'\nAn '+z+'. Stelle\nsteht ein unerlaubtes Zeichen!'+o.value);
        o.value="";
        o.focus();
     }
  }
// Name, Ort oder andere alphanumerische Zeichen
  if(inp=='vname'&& o.value!="") {
     if (checkChar(o.value,regName)==false){
        openAlert(inf+'\nAn '+z+'. Stelle\nsteht ein unerlaubtes Zeichen!'+o.value);
        o.value="";
        o.focus();
     }
  }
// Bausteine
  if(inp=='bst'&& o.value!="") {
      if (checkChar(o.value,regBst)==false){
        openAlert(inf+'\nAn '+z+'. Stelle\nsteht ein unerlaubtes Zeichen!\n '+o.value);
        o.value="";
        o.focus();
     }
  }

// Telefonnummer
  if(inp=='tel'&& o.value!="") {
    if(checkChar(o.value,regTel)==false){
      openAlert(inf+'\nAn '+z+'. Stelle\nsteht ein unerlaubtes Zeichen!'+o.value);
      o.value="";
      o.focus();
    }
  }
//PLZ
  if(inp=='plz'&& o.value!="") {
    if (regPlz.test(o.value)==false) {
       openAlert("Bitte geben Sie eine korrekte PLZ ein!");
       o.value="";
       o.focus();
    }
  }
// E-Mail
 if(inp=='mail'&& o.value!="") {
    if (regEmail.test(o.value)==false) {
      openAlert("Bitte geben Sie Ihre E-Mail Adresse korrekt ein!");
      o.value="";
      o.focus();
    }
 }
 // Homepage
 if(inp=='homepage'&&document.forms[0].homepage.value!="") {
    if (regHome.test(document.forms[0].homepage.value)==false) {
      openAlert("Bitte geben Sie Ihre Internetadresse korrekt ein!");
      document.forms[0].homepage.value="";
      document.forms[0].homepage.focus();
    }
 }
// Strasse, Ort
  if(inp=='str'&& o.value!="") {
    if(checkChar(o.value,regStr)==false){
      openAlert(inf+'\nAn '+z+'. Stelle\nsteht ein unerlaubtes Zeichen!');
      o.value="";
      o.focus();
    }
  }
// Butget, Teilnehmerzahl, EZ, DZ, Tagungsraeume, Gruppenr.
  if(inp=='num'&& o.value!="") {
// alert(o.name);
     if (checkChar(o.value,regZahl)==false){
        openAlert(inf+'\nAn '+z+'. Stelle\nsteht ein unerlaubtes Zeichen!');
        o.value="";
        o.focus();
     }
  }
}//ende check