//	Formular Validierungsroutinen
//	Version: 	1.0
//	Datum:		2000
//	Ersteller:	A. Di Pasquale

document.onmousedown=rightClick;
var version = parseInt(navigator.appVersion);

function ae_PrePic() {return false;}
function goToBild() {return false;}
function ae_SwapPic() {return false;}

function parseHTMLZeichen() {
var Suchen = '¢|€|£|¥|¦|§|¨|©|ª|«|­|®|°|±|²|³|´|µ|¶|·|¹|»|¼|½|¾|À|Á|Â|Ã|Ä|Å|Æ|Ç|È|É|Ê|Ë|Ì|Í|Î|Ï|Ð|Ñ|Ò|Ó|Ô|Õ|Ö|×|Ø|Ù|Ú|Û|Ü|Ý|ß|à|á|â|ã|ä|å|æ|ç|è|é|ê|ë|ì|í|î|ï|ð|ñ|ò|ó|ô|õ|ö|÷|ø|ù|ú|û|ü|ý|þ|ÿ|';
var Ersetzen = '&cent;|&euro;|&pound;|&yen;|&brvbar;|&sect;|&uml;|&copy;|&ordf;|&laquo;|&shy;|&reg;|&deg;|&plusmn;|&sup2;|&sup3;|&acute;|&micro;|&para;|&middot;|&sup1;|&raquo;|&frac14;|&frac12;|&frac34;|&Agrave;|&Aacute;|&Acirc;|&Atilde;|&Auml;|&Aring;|&AElig;|&Ccedil;|&Egrave;|&Eacute;|&Ecirc;|&Euml;|&Igrave;|&Iacute;|&Icirc;|&Iuml;|&ETH;|&Ntilde;|&Ograve;|&Oacute;|&Ocirc;|&Otilde;|&Ouml;|&times;|&Oslash;|&Ugrave;|&Uacute;|&Ucirc;|&Uuml;|&Yacute;|&szlig;|&agrave;|&aacute;|&acirc;|&atilde;|&auml;|&aring;|&aelig;|&ccedil;|&egrave;|&eacute;|&ecirc;|&euml;|&igrave;|&iacute;|&icirc;|&iuml;|&eth;|&ntilde;|&ograve;|&oacute;|&ocirc;|&otilde;|&ouml;|&divide;|&oslash;|&ugrave;|&uacute;|&ucirc;|&uuml;|&yacute;|&thorn;|&yuml;|';
var aSuchen = Suchen.split("|");
var aErsetzen = Ersetzen.split("|");
var Anz = aSuchen.length;
var AnzTA = document.forms[0].elements.length;
var el = document.forms[0].elements;
var reg = new RegExp(".", "g");
var Wert = "";
for (x=0; x<AnzTA;x++) {
if (el[x].type=="textarea") {
Wert = el[x].value;
for (i=0; i<Anz;i++) {
reg.compile(aSuchen[i], "g");
Wert = Wert.replace(reg,aErsetzen[i]);
}
el[x].value = Wert;
}
}
return true;
}

function rightClick(e) {
var button = 0;
var nav = false;
if (navigator.appName == "Netscape" && version <= 4 && (e.which == 2 || e.which == 3)) {
return false;
}
if (navigator.appName == "Netscape") {
nav = true;
button = e.which;
} else if (navigator.appName == "Microsoft Internet Explorer") {
nav = true;
button = event.button;
}

if (nav && (button == 2 || button == 3)) {
neuesFenster = open("","displayWindow","height=100,width=100");
neuesFenster.document.open();
with (neuesFenster.document) {
write("<html><head><title>----> Right-Click <----</title></head>");
}
neuesFenster.document.close();
neuesFenster.close();
alert("Don't imitate - innovate!\nSorry...");
}
return true;
}

function fncGetElementIdByName(FieldName)
{
// Ermittelt die Element-Id eines Objekts über dessen
// Objekt-Namen.
// Aufruf:  return fncGetElementIdByName("txt0")
// A. Di Pasquale, 2000

var x		= 0;
var Text 	= "Ein Formularobjekt mit dem Namen '" + FieldName + "' existiert nicht - bitte überprüfen Sie den Feldnamen!";
var Dummy	= -1;
var ObjektName	= "";

for (x=0; x < document.forms[0].elements.length; x++) {
ObjektName = document.forms[0].elements[x].name;
if (ObjektName.toLowerCase() == FieldName.toLowerCase()) {
Dummy = x;
x = document.forms[0].elements.length;	
return Dummy;
}
}

if (Dummy == -1) {
alert(Text);
return Dummy;
}
}

function fncSetFocusOnElement(FieldName)
{
// Setzt den Focus auf das Element, welches im
// Parameter FieldName mitgegeben wird.
// Aufruf:  return fncSetFocusOnElement("txt0")
// A. Di Pasquale, 2000

var Typ 	= "";
var nElement 	= -1;

nElement = fncGetElementIdByName(FieldName);
if (nElement == -1) {
return false;
}

Typ = document.forms[0].elements[nElement].type;

document.forms[0].elements[nElement].focus();
if (Typ.indexOf("text") >= 0) {
document.forms[0].elements[nElement].select();
}
return true;
}

function fncElementIsMandatory(sArg)
{
// Prüft, ob die "Elements" welche in sArg übergeben werden
// gefüllt sind, oder nicht.
// Wenn sie nicht gefüllt sind, erscheint eine Fehlermeldung
// und der Focus wird auf das entsprechende Element gesetzt.

// Mandatory kann für Text, Textarea und Select-Objekte überprüft
// werden!

// Aufruf:  return fncElementIsMandatory("txt0;Name","txt1;Vorname","txt2;Ort")
// A. Di Pasquale, 2000


var i 		= 0;
var x 		= -1;
var Texta 	= "Das Feld: '";
var Textb 	= "' ist zwingend erforderlich!";
var Text;
var FeldName;
var Bezeichnung;
var Delimiter;
var ArgLength;
var Dummy;

for (i=0; i < fncElementIsMandatory.arguments.length; i++) {
Delimiter 	= fncElementIsMandatory.arguments[i].indexOf(";");
ArgLength 	= fncElementIsMandatory.arguments[i].length;
FeldName 	= fncElementIsMandatory.arguments[i].substring(0, Delimiter);
Bezeichnung 	= fncElementIsMandatory.arguments[i].substring(Delimiter+1,ArgLength);
Text		= Texta + Bezeichnung + Textb;


x = fncGetElementIdByName(FeldName);
if (x == -1) {
return false;
}

if (document.forms[0].elements[x].name == FeldName) {
Dummy = document.forms[0].elements[x].type
if (Dummy.indexOf("text") == 0) {
if (document.forms[0].elements[x].value == "") {
alert(Text);
fncSetFocusOnElement(FeldName);
i = fncElementIsMandatory.arguments.length;
x = document.forms[0].elements.length;
return false;
}
}
if (Dummy.indexOf("password") == 0) {
if (document.forms[0].elements[x].value == "") {
alert(Text);
fncSetFocusOnElement(FeldName);
i = fncElementIsMandatory.arguments.length;
x = document.forms[0].elements.length;
return false;
}
}
if (Dummy.indexOf("select") == 0) {
if (document.forms[0].elements[x].selectedIndex == -1) {
alert(Text);
fncSetFocusOnElement(FeldName);
i = fncElementIsMandatory.arguments.length;
x = document.forms[0].elements.length;
return false;
}
}
}
// bei der ersten Prüfung werden HTML-Sonderzeichen eliminiert
if (i==fncElementIsMandatory.arguments.length-1) {
parseHTMLZeichen();
}
}
return true;
}

function fncStringMinLenght(FieldName, sBezeichnung, nMinLength) {
// Mit dieser Routine werden 'Textfelder' auf deren
// Länge hin überprüft.
// Aufruf:  return fncStringMaxLength('txtFeld', 250)
//
// A. Di Pasquale, 2000

var nElement	= -1;
var Dummy	= "";

nElement = fncGetElementIdByName(FieldName);
if (nElement == -1) {
return false;
}

Dummy	= document.forms[0].elements[nElement].value;
if (Dummy.length < nMinLength) {
alert("Das Feld '" + sBezeichnung + "' muss mindestens  " + nMinLength + "-Zeichen lang sein!");
return false;
}
return true;
}

function fncStringMaxLength(FieldName, sBezeichnung, nMaxLength) {
// Mit dieser Routine werden 'Multiline-Textfelder' auf deren
// Länge hin überprüft.
// Aufruf:  return fncStringMaxLength('txtFeld', 250)
//
// A. Di Pasquale, 2000

var nElement	= -1;
var Dummy	= "";

nElement = fncGetElementIdByName(FieldName);
if (nElement == -1) {
return false;
}

Dummy	= document.forms[0].elements[nElement].value;
if (Dummy.length > nMaxLength) {
alert("Der Inhalt des Feldes '" + sBezeichnung + "' enthält zur Zeit " + Dummy.length + " Zeichen.\nErlaubten sind jedoch nur " + nMaxLength + " Zeichen! Bitte kürzen Sie den Inhalt.");
return false;
}
return true;
}

function fncCompDate(Datum1, Datum2, sVergleich)
{
// Zwei Daten werden vergleichen.
// Für Datum1 resp. Datum2 wird der jeweilige Objekt-Name
// bzw. die Konstante "Now" (Tagesdatum) übergeben.
//
// Der Vergleich erfolgt immer mit folgendem System:
//			Datum1 Vergleich Datum2
// Beispiel:		15.05.2000 <= 18.05.2000
//
// Wenn Datum2 ein bestimmtes Datum sein soll Bsp: >= 01.01.1900,
// dann soll ein "Hidden-Field" verwendet werden, welches mit dem
// gewünschten Wert initalisiert ist.
//
// Mögliche Vergleiche: >, <, >=, <=, =
//
// Aufruf:  return fncCompDate("dDatumAb", "dDatumBis", ">=")
//
// A. Di Pasquale, 2000

var Datum1Name = Datum1;
var Datum2Name = Datum2;
var newDate1;
var Tag1;
var Monat1;
var Jahr1;
var newDate2;
var Tag2;
var Monat2;
var Jahr2;
var Merker1 	= 0;
var Merker2 	= 0;
var Differenz;
var nElement1	= -1;
var nElement2	= -1;
var Text	= "";
var Dummy	= "";

if (Datum1 != "Now") {
nElement1 = fncGetElementIdByName(Datum1);
if (nElement1 == -1) {
return false;
}
}

if (Datum2 != "Now") {
nElement2 = fncGetElementIdByName(Datum2);
if (nElement2 == -1) {
return false;
}
}

if (Datum1 == "Now") {
Datum1 = new Date();
Dummy  = Datum1.getMonth()+1;
Datum1.setMonth(Dummy);
Dummy = Datum1.getYear();
if (Dummy <= 1000) {
Dummy = Dummy + 1900;
Datum1.setYear(1900 + Dummy);
}	
Merker1 = 1;
}

if (Merker1 == 0) {
if (document.forms[0].elements[nElement1].values == "") {
Datum1 = new Date();
Dummy  = Datum1.getMonth()+1;
Datum1.setMonth(Dummy);		
Merker1 = 1;
}
}

if (Datum2 == "Now") {
Datum2 = new Date();
Dummy  = Datum2.getMonth()+1;
Datum2.setMonth(Dummy);		
Dummy = Datum2.getYear();
if (Dummy <= 1000) {
Dummy = Dummy + 1900;
Datum2.setYear(Dummy);
}
Merker2 = 1;
}

if (Merker2 == 0) {
if (document.forms[0].elements[nElement2].value == "") {
Datum2 = new Date();
Dummy  = Datum2.getMonth()+1;
Datum2.setMonth(Dummy);		
Merker2 = 1;
}
}

if (Merker1 == 1) {
Datum1 = Datum1.getDate() + "." + Datum1.getMonth() + "." + Dummy;
} else {
Datum1 	= document.forms[0].elements[nElement1].value;
}

if (Merker2 == 1) {
Datum2 = Datum2.getDate() + "." + Datum2.getMonth() + "." + Dummy;
} else {
Datum2 	= document.forms[0].elements[nElement2].value;
}

Text 	= "Datum: '" + Datum1 + "' muss " + sVergleich + " '" + Datum2 + "' sein!";

if (Datum1Name == "Now") {
Text 	= "Datum: '" + Datum2 + "' muss " + sVergleich + " 'heute' sein!";
}
if (Datum2Name == "Now") {
Text 	= "Datum: '" + Datum1 + "' muss " + sVergleich + " 'heute' sein!";
}

lDatum 		= new objDate(Datum1);
rDatum 		= new objDate(Datum2);

newDate1 	= new Date();
newDate1.setYear(lDatum.Jahr);
newDate1.setMonth(lDatum.Monat);
newDate1.setDate(lDatum.Tag);

newDate2 	= new Date();
newDate2.setYear(rDatum.Jahr);
newDate2.setMonth(rDatum.Monat);
newDate2.setDate(rDatum.Tag);

Differenz = newDate1.getTime() - newDate2.getTime();

if (sVergleich == ">") {
if (Differenz <= 0) {
alert(Text);
if (Merker2 == 0) {
fncSetFocusOnElement(Datum2Name);
} else {
fncSetFocusOnElement(Datum1Name);
}
return false;
}
}	

if (sVergleich == ">=") {
if (Differenz < 0) {
alert(Text);
if (Merker2 == 0) {
fncSetFocusOnElement(Datum2Name);
} else {
fncSetFocusOnElement(Datum1Name);
}
return false;
}
}

if (sVergleich == "=") {
if (Differenz != 0) {
alert(Text);
if (Merker2 == 0) {
fncSetFocusOnElement(Datum2Name);
} else {
fncSetFocusOnElement(Datum1Name);
}
return false;
}
}

if (sVergleich == "<") {
if (Differenz >= 0) {
alert(Text);
if (Merker2 == 0) {
fncSetFocusOnElement(Datum2Name);
} else {
fncSetFocusOnElement(Datum1Name);
}
return false;
}
}

if (sVergleich == "<=") {
if (Differenz > 0) {
alert(Text);
if (Merker2 == 0) {
fncSetFocusOnElement(Datum2Name);
} else {
fncSetFocusOnElement(Datum1Name);
}
return false;
}
}
return true;
}

function fncCompToZero(FieldName, sBezeichnung, sVergleich)
{
// Prüft, ob ein bestimmtes Objekt sich gemäss "sVergleich"
// zur Zahl 0 (Zero) verhällt.
// Möglicher Vergleich: "= > >= < <= !="
//
// Aufruf:  return fncCompToZero("txtMenge", "Produktemenge", ">=")
//
// A. Di Pasquale, 2000

var Text = "Das Feld " + sBezeichnung + " muss " + sVergleich + " als 0 (Zero) sein!";
var nElement = -1;
var Vergleich = "=,!=,>,>=,<,<=";
var ret = false;
var found;

nElement = fncGetElementIdByName(FieldName);
if (nElement == -1) {
return false;
}

if (document.forms[0].elements[nElement].value == "") {
return true;
}

if (Vergleich.indexOf(sVergleich) < 0) {
alert("Der Vergleichsoperator '" + sVergleich + "' ist nicht erlaubt!");
return false;
}

ret = eval(document.forms[0].elements[nElement].value + " " + sVergleich + "0");
if (ret == false) {
alert(Text);
fncSetFocusOnElement(FieldName);
}
return ret;
}

function fncIsDate(FieldName)
{
// Ermittelt, ob ein String ein gültiges Datum enthällt.
// Unterstützte Formate: dd.mm.jjjj - mm/dd/yyyy - dd-mm-jjjj
// Gleichzeitig wird das Datum jeweils richtig formatiert.
//
// Aufruf:  return fncIsDate("dGueltigAb")
//
// A. Di Pasquale, 2000

var Datum	= "";
var Tag 	= "";
var Monat 	= "";
var Jahr 	= "";
var Tag2 	= "";
var Monat2 	= "";
var Jahr2 	= "";
var Text;
var Del		= "";
var Del1;
var Del2;
var nElement 	= -1;

nElement = fncGetElementIdByName(FieldName);
if (nElement == -1) {
return false;
}

Datum = document.forms[0].elements[nElement].value;
Text = "Ungültiges Datum: '" + Datum + "' - Format tt.mm.jjjj oder mm/tt/yyyy";

if (Datum == "") {
return true;
}

if (Datum.length >= 1 && Datum.length <= 2) {
var Dummy = new Date();
var Dummy1 = Dummy.getYear();
if (Dummy1 <= 1000) {Dummy1 = 1900 + Dummy.getYear()};

if (Datum.indexOf(".")) {Del = "."};
if (Datum.indexOf("-")) {Del = "-"};
if (Del != -1) {
Datum	= Datum + "." + (parseInt(Dummy.getMonth()) +1) + "." + Dummy1;
}
Del = "";
}

if (Datum.indexOf(".") >= 0) {
Del	= ".";
Del1	= Datum.indexOf(".");
Del2	= Datum.lastIndexOf(".");
Tag 	= Datum.substring(0,Del1);
Monat 	= Datum.substring((Del1+1),Del2)-1;
Monat	= String(Monat);
Jahr 	= Datum.substring((Del2+1),15);
}

if (Datum.indexOf("/") >= 0) {
Del 	= "/";
Del1	= Datum.indexOf("/");
Del2	= Datum.lastIndexOf("/");
Monat 	= Datum.substring(0,Del1)-1;
Monat	= String(Monat);
Tag 	= Datum.substring((Del1+1),Del2);
Jahr 	= Datum.substring((Del2+1),15);
}

if (Datum.indexOf("-") >= 0) {
Del	= "-";
Del1	= Datum.indexOf("-");
Del2	= Datum.lastIndexOf("-");
Tag 	= Datum.substring(0,Del1);
Monat 	= Datum.substring((Del1+1),Del2)-1;
Monat	= String(Monat);
Jahr 	= Datum.substring((Del2+1),15);
}

if (Tag.length == 0) {
alert(Text);
fncSetFocusOnElement(FieldName);
return false;
}

if (Monat.length == 0) {
alert(Text);
fncSetFocusOnElement(FieldName);
return false;
}

if (Jahr.length < 2) {
alert(Text);
fncSetFocusOnElement(FieldName);
return false;
}

if (Jahr.length > 4) {
alert(Text);
fncSetFocusOnElement(FieldName);
return false;
}

if (Jahr.length == 2) {
if (Jahr <= 20) {
Jahr = "20" + String(Jahr);
} else {
Jahr = "19" + String(Jahr);
}
}

Datum 	= new Date(Jahr, Monat, Tag);
Tag2 	= Datum.getDate();
Monat2	= Datum.getMonth();
Jahr2	= Datum.getYear();
Tag = Tag * 1;		// parseInt hat bei Tag 08 und 09 nicht funktioniert ??

Tag2	= parseInt(Tag2);
Monat	= parseInt(Monat);
Monat2	= parseInt(Monat2);
Jahr	= parseInt(Jahr);

if (Jahr2 < 2000) {
Jahr2	= 1900 + Jahr2;
}

if (Tag != Tag2) {
if (Tag == 31 && Tag2 != 1) {
alert(Text);
fncSetFocusOnElement(FieldName);
return false;
}
}

if (Monat != Monat2) {
alert(Text);
fncSetFocusOnElement(FieldName);
return false;
}

if (Jahr != Jahr2) {
alert(Text);
fncSetFocusOnElement(FieldName);
return false;
}

Tag	= parseInt(Tag);
if (Tag < 10) {
Tag 	= "0" + String(Tag);
} else {
Tag	= String(Tag);
}

Monat	= parseInt(Monat) +1;
if (Monat < 10) {
Monat 	= "0" + String(Monat);
} else {
Monat	= String(Monat);
}

if (Del != "/") {
document.forms[0].elements[nElement].value = Tag + Del + Monat + Del + Jahr;
} else {
document.forms[0].elements[nElement].value = Monat + Del + Tag + Del + Jahr;
}
return true;
}

function fncIsEMailAdress(FieldName)
{
// Ermittelt, ob eine gültige E-Mail Adresse erfasst wurde
//
// Aufruf:  return fncIsEMailAdress("txtEMail")
//
// A. Di Pasquale, 2000

var Text 	= "";
var nElement 	= -1;
var EMail 	= "";
var Error	= 0;
var a;
var b;
var c;
var d;
var e;

nElement = fncGetElementIdByName(FieldName);
if (nElement == -1) {
return false;
}

EMail = document.forms[0].elements[nElement].value;
Text = EMail + " ist keine gültige EMail-Adresse!";

a = EMail.lastIndexOf("@");
b = EMail.lastIndexOf(".");
c = EMail.substring(b+1, EMail.length);
c = c.length;
d = EMail.substring(a+1, b);
d = d.length;
e = EMail.substring(0, a);
e = e.length;

if (a == -1) {Error++};		
if (b == -1) {Error++};
if (a > b) {Error++};	
if (c < 2) {Error++};	
if (d < 2) {Error++};	
if (e < 1) {Error++};	
if (EMail.indexOf("<") != -1) {Error++};
if (EMail.indexOf(">") != -1) {Error++};
if (EMail.indexOf('"') != -1) {Error++};
if (EMail.indexOf("'") != -1) {Error++};
if (EMail.indexOf("[") != -1) {Error++};
if (EMail.indexOf("]") != -1) {Error++};
if (EMail.indexOf("{") != -1) {Error++};
if (EMail.indexOf("}") != -1) {Error++};
if (EMail.indexOf("/") != -1) {Error++};
if (EMail.indexOf(":") != -1) {Error++};
if (EMail.indexOf(" ") != -1) {Error++};
if (EMail.indexOf("*") != -1) {Error++};
if (EMail.indexOf("~") != -1) {Error++};
if (EMail.indexOf("|") != -1) {Error++};
if (EMail.indexOf(",") != -1) {Error++};
// if (EMail.indexOf(";") != -1) {Error++};
if (EMail.indexOf("#") != -1) {Error++};
if (EMail.indexOf("^") != -1) {Error++};

if (Error > 0) {
alert(Text);
fncSetFocusOnElement(FieldName);
return false;
}
return true;
}

function fncIsFloat(FieldName, sBezeichnung)
{
// Prüft, ob ein bestimmtes Objekt eine Fliesskomma-Zahlen enthällt.
// Ansonsten wird der Focus auf das Feld gesetzt und eine Fehlermeldung ausgegeben
//
// Aufruf:  return fncIsFloat("txtPreis", "Feld xyz")
//
// A. Di Pasquale, 2000

var Texta 	= "Das Feld '";
var Textb 	= "' enthällt keine gültige Fliesskommazahl!";
var Dummy;
var ret;
var nElement 	= -1;

nElement = fncGetElementIdByName(FieldName);
if (nElement == -1) {
return false;
}

if (document.forms[0].elements[nElement].value == "") {
return true;
}

ret = fncIsNumeric(FieldName, sBezeichnung);
if (ret == true) {
Dummy = document.forms[0].elements[nElement].value;
if (Dummy.indexOf(".") <= 0) {
alert(Texta + sBezeichnung + Textb);
fncSetFocusOnElement(FieldName);
ret = false;
} else {
ret = true;
}
}
return ret;
}

function fncIsInteger(FieldName, sBezeichnung)
{
// Prüft, ob ein bestimmtes Element nur Integer-Zahlen enthällt.
// Ansonsten wird der Focus auf das Feld gesetzt und eine Fehlermeldung ausgegeben.
//
// Aufruf:  return fncIsInteger("txtTest", "Feld xyz")
//
// A. Di Pasquale, 2000

var Texta 	= "Das Feld '";
var Textb 	= "' enthällt keine gültige Ganzzahl!";
var Dummy;
var ret;
var nElement 	= -1;

nElement = fncGetElementIdByName(FieldName);
if (nElement == -1) {
return false;
}

if (document.forms[0].elements[nElement].value == "") {
return true;
}

ret = fncIsNumeric(FieldName, sBezeichnung);
if (ret == true) {
Dummy = document.forms[0].elements[nElement].value;
if (Dummy.indexOf(".") >= 0) {
alert(Texta + sBezeichnung + Textb);
fncSetFocusOnElement(FieldName);
ret = false;
} else {
ret = true;
}
}
return ret;
}

function fncIsNumeric(FieldName, sBezeichnung)
{
// Prüft, ob ein bestimmtes Elment nur Zahlen enthällt.
// Ansonsten wird der Focus auf das Feld gesetzt und eine Fehlermeldung ausgegeben.
//
// Aufruf:  return fncIsNumeric("txtZahl","Feld xyz")
//
// A. Di Pasquale, 2000

var Texta 	= "Das Feld '";
var Textb 	= "' enthällt keine gültige Zahl!"
var Number 	= "0123456789.-";
var Zeichen;
var String;
var i = 0;
var ret;
var nElement 	= -1;

nElement = fncGetElementIdByName(FieldName);
if (nElement == -1) {
return false;
}

String = document.forms[0].elements[nElement].value;

if (String == "") {
return true;
}

for (i=0; i < String.length; i++) {
Zeichen = String.substring(i,i+1);
if (Number.indexOf(Zeichen) < 0) {
alert(Texta + sBezeichnung + Textb);
fncSetFocusOnElement(FieldName);
i = String.length;
ret = false;
} else {
ret = true;
}
}

i = String.indexOf(".");
i = String.substring(i+1, String.length);
if (i.indexOf(".") != -1) {
alert(Texta + sBezeichnung + Textb);
fncSetFocusOnElement(FieldName);
ret = false;
}
return ret;
}


function fncNumberRange(FieldName, sBezeichnung, nMin, nMax)
{
// Prüft, ob ein bestimmtes Elment nur Zahlen enthällt.
// und ob der Inhalt innerhalb eines bestimmten Range ist.
//
// Aufruf:  return fncNumberRange("txtZahl", "Feld xyz")
//
// A. Di Pasquale, 2000

var Texta 	= "Das Feld '";
var Textb 	= "' muss zwischen '" + nMin + "' und '" + nMax + "' sein!";
var ret;
var nElement 	= -1;
var Error	= 0;

nElement = fncGetElementIdByName(FieldName);
if (nElement == -1) {
return false;
}

var String = document.forms[0].elements[nElement].value;

if (String == "") {
return true;
}

ret = fncIsNumeric(FieldName, sBezeichnung);
if (ret == false) {
return false;
}

if (String < nMin) {Error=1};
if (String > nMax) {Error=1};

if (Error == 1) {
alert(Texta + sBezeichnung + Textb);
fncSetFocusOnElement(FieldName);
ret = false;
}
return ret;
}

function objDate(Datum)
{
// Ermittelt, ob ein String ein gültiges Datum enthällt
//
// Methoden: objekt.Tag
//	     objekt.Monat
//	     objekt.Jahr
//
// Aufruf:  objDate(dDatumAb)
//
// A. Di Pasquale, 2000

var Del1;
var Del2;

if (Datum.indexOf(".") >= 0) {
Del1		= Datum.indexOf(".");
Del2		= Datum.lastIndexOf(".");
this.Tag 	= Datum.substring(0,Del1);
Monat 		= Datum.substring((Del1+1),Del2)-1;
this.Monat	= String(Monat);
this.Jahr 	= Datum.substring((Del2+1),15);
}

if (Datum.indexOf("/") >= 0) {
Del1		= Datum.indexOf("/");
Del2		= Datum.lastIndexOf("/");
Monat 		= Datum.substring(0,Del1)-1;
this.Monat	= String(Monat);
this.Tag 	= Datum.substring((Del1+1),Del2);
this.Jahr 	= Datum.substring((Del2+1),15);
}

if (Datum.indexOf("-") >= 0) {
Del1		= Datum.indexOf("-");
Del2		= Datum.lastIndexOf("-");
this.Tag 	= Datum.substring(0,Del1);
Monat 		= Datum.substring((Del1+1),Del2)-1;
this.Monat	= String(Monat);
this.Jahr 	= Datum.substring((Del2+1),15);
}
objDate.Tag 	= Tag;
objDate.Monat 	= Monat;
objDate.Jahr	= Jahr;
}


function Tag() {
// Methode von objDate

return this.Tag;
}

function Monat() {
// Methode von objDate

return this.Monat;
}

function Jahr () {
// Methode von objDate

return this.Jahr;
}



