function plausi(akob, ip_func, untergrenze, obergrenze){
if(ip_func=="email"){
ip_email_ck(akob, untergrenze, obergrenze);
}
else if(ip_func=="url"){
ip_url_ck(akob, untergrenze, obergrenze);
}
else if(ip_func=="integer"){
ip_integer_ck(akob, untergrenze, obergrenze);
}
else if(ip_func=="decimal"){
ip_decimal_ck(akob, untergrenze, obergrenze);
}
else if(ip_func=="telephone"){
ip_telephone_ck(akob, untergrenze, obergrenze);
}
else if(ip_func=="date"){
ip_date_ck(akob, untergrenze, obergrenze);
}
else{
if(ip_istleer(akob.value)==true){
fehlermeld(3);
akob.focus();
}
}
}
function ip_telephone_ck(akob, untergrenze, obergrenze){
var moeglich, eingeg, laenge, c, d;
moeglich="0123456789/-()+";
eingeg=akob.value;
laenge=eingeg.length;
if(laenge>obergrenze){
fehlermeld(2);
akob.focus();
}
if (ip_istleer(eingeg)==true){
fehlermeld(26);
akob.focus();
}
else{
for (c=0; c<laenge; c++){
d=eingeg.charAt(c);
if (moeglich.indexOf(d)==-1){
fehlermeld(27);
akob.focus();
break;
}
}
}
}
function ip_url_ck(akob, untergrenze, obergrenze){
var eingeg, laenge, c, d, platz1_7, platz1_6, protok_gopher, filename, rechnername;
var slash;
eingeg=akob.value;
laenge=eingeg.length;
platz1_7=eingeg.substring(0, 7);
protok_gopher=eingeg.substring(0,6);
platz1_6=eingeg.substring(0, 6);
slash="/";
if(laenge<untergrenze){
fehlermeld(1);
akob.focus();
}
if(laenge>obergrenze){
fehlermeld(2);
akob.focus();
}
if (platz1_7=="http://"){
for (c=7; c<=laenge; c++){
d=eingeg.charAt(c);
if (d==slash || c==laenge){
rechnername=eingeg.substring(7,c);
filename=eingeg.substring(c,laenge);
if(ip_rechnername_ck(rechnername)==0 || ip_rechnername_ck(rechnername)==1){
fehlermeld(11);
akob.focus();
}
if(ip_filename_ck(filename)==false){
fehlermeld(12);
akob.focus();
}
break;
}
}
}
else if(platz1_6=="ftp://"){
for (c=6; c<=laenge; c++){
d=eingeg.charAt(c);
if (d==slash || c==laenge){
rechnername=eingeg.substring(6,c);
filename=eingeg.substring(c,laenge);
if(ip_rechnername_ck(rechnername)==0 || ip_rechnername_ck(rechnername)==1){
fehlermeld(11);
akob.focus();
}
if(ip_filename_ck(filename)==false){
fehlermeld(12);
akob.focus();
}
break;
}
}
}
else{
fehlermeld(13);
akob.focus();
}
				
}
function ip_email_ck(akob, untergrenze, obergrenze){
var nmoeglichvorat, muss, eingeg, laenge, atistbei, c, d, rrr;
nmoeglichvorat="<>[]'\"}{";
muss="@";
eingeg=akob.value;
laenge=eingeg.length;
if (ip_istleer(eingeg)==true){
fehlermeld(6);
akob.focus();
}
else{
if(laenge<untergrenze){
fehlermeld(1);
akob.focus();
}
if(laenge>obergrenze){
fehlermeld(2);
akob.focus();
}
atistbei=eingeg.indexOf(muss);
if (atistbei==-1){
fehlermeld(5);
akob.focus();
}
else {
for (c=0; c<atistbei; c++){
d=eingeg.charAt(c);
if (nmoeglichvorat.indexOf(d)>-1){
fehlermeld(7);
akob.focus();
break;
}
}
				
rechnername=eingeg.substring(atistbei+1,laenge);
rrr=ip_rechnername_ck(rechnername);
if (rrr==0){
fehlermeld(9);
akob.focus();
}
else if(rrr==1){
fehlermeld(8);							   
akob.focus();
}
}
}
}
function ip_decimal_ck(akob, untergrenze, obergrenze){
var moeglich, eingeg, laenge, muss, c, d, pp, vorkomma, nachkomma;
moeglich=".0123456789-";
eingeg=akob.value;
laenge=eingeg.length;
muss=".";
if (ip_istleer(eingeg)==true){
fehlermeld(15);
akob.focus();
}
else{
for (c=0; c<laenge; c++){
d=eingeg.charAt(c);
if (moeglich.indexOf(d)==-1){
fehlermeld(20);
akob.focus();
break;
}
}
pp=eingeg.indexOf(muss);
if (pp==-1){
return ip_integer_ck(akob, untergrenze, obergrenze);
}
else {
vorkomma=eingeg.substring(0,pp);
nachkomma=eingeg.substring(pp+1,laenge);
if (ip_istleer(nachkomma)==true){
fehlermeld(25);
akob.focus();
}
else if(nachkomma.length>2){
fehlermeld(21);
akob.focus();
}
if (ip_istleer(vorkomma)==true){
fehlermeld(24);
akob.focus();
}
else if(vorkomma.length>4){
fehlermeld(22);
akob.focus();
}
}
}
}
function ip_date_ck(akob, untergrenze, obergrenze){
var ziffi, eingeg, laenge, c, d;
ziffi="0123456789";
eingeg=akob.value;
laenge=eingeg.length;
if(laenge>obergrenze){
fehlermeld(30);
akob.focus();
}
if(laenge<untergrenze){
fehlermeld(30);
akob.focus();
}
if ((eingeg.charAt(4)=="-" && eingeg.charAt(7)=="-")
  ||(eingeg.charAt(4)=="/" && eingeg.charAt(7)=="/")){
for (c=0; c<4; c++){
d=eingeg.charAt(c);
if (ziffi.indexOf(d)==-1){
fehlermeld(31);
akob.focus();
break;
} 									  
}
 for (c=5; c<7; c++){
d=eingeg.charAt(c);
if (ziffi.indexOf(d)==-1){
fehlermeld(31);
akob.focus();
break;
} 									  
}
for (c=8; c<10; c++){
d=eingeg.charAt(c);
if (ziffi.indexOf(d)==-1){
fehlermeld(31);
akob.focus();
break;
} 									  
}
}
else{
fehlermeld(30);
akob.focus();
}
			
}
function ip_integer_ck(akob, untergrenze, obergrenze){
var moeglich, eingeg, laenge, c, d;
moeglich="0123456789";
eingeg=akob.value;
laenge=eingeg.length;
if(eingeg>obergrenze){
fehlermeld(17);
akob.focus();
}
if (ip_istleer(eingeg)==true){
fehlermeld(15);
akob.focus();
}
else{
for (c=0; c<laenge; c++){
d=eingeg.charAt(c);
if (moeglich.indexOf(d)==-1){
fehlermeld(16);
akob.focus();
break;
}
}
}
				
}
function ip_istleer(akob){
for(var i=0; i < akob.length; i++) {
var c = akob.charAt(i);
if ((c!='') && (c != '\n') && (c !='\t')) return false;
} 
return true;
}
function ip_rechnername_ck(r_name){
var moeglich, laenge, c, d;
moeglich="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-1234567890";
laenge=r_name.length;
if(laenge==0){
return 0;
}
else{
for (c=0; c<laenge; c++){
d=r_name.charAt(c);						
if (moeglich.indexOf(d)==-1){
return 1;
break;
}
}
return 2;
}
}
function ip_filename_ck(f_name){
var nicht_moeglich, laenge, c, d;
nicht_moeglich="<>[]'\"}{()";
laenge=f_name.length;
for (c=0; c<laenge; c++){
d=f_name.charAt(c);
if (nicht_moeglich.indexOf(d)!=-1){
return false;
break;
}
}
}
function fehlermeld(fehlernummer){
if (plausi_fehlertext[fehlernummer]!=undefined){
alert(plausi_fehlertext[fehlernummer]);
}else{
alert(plausi_fehlertext_engl[fehlernummer]);
}
}
var plausi_fehlertext=new Array();
plausi_fehlertext[0]="    Fehler ";
plausi_fehlertext[1]=" Es wurden zu wenige Zeichen eingegeben !";
plausi_fehlertext[2]=" Es wurden zu viele Zeichen eingegeben !";
plausi_fehlertext[3]=" Bitte geben Sie Ihre Daten ein"; 
plausi_fehlertext[4]=" Hier fehlen noch Eingaben !";
plausi_fehlertext[5]="Ihre email Adresse muss ein @-Zeichen beinhalten !";
plausi_fehlertext[6]="Bitte geben Sie Ihre email Adresse ein !";
plausi_fehlertext[7]="Der User Name der eingegebenen Email-Adresse enthält ein ungültiges Zeichen";
plausi_fehlertext[8]="Der Rechnername der eingegebene Email-Adresse enthält ein ungültiges Zeichen";
plausi_fehlertext[9]="Bitte geben Sie den Namen Ihres Rechners ein ";
plausi_fehlertext[10]="Bitte geben Sie die URL ein !";
plausi_fehlertext[11]="Der Rechnername der eingegebenen URL ist ungültig";
plausi_fehlertext[12]="Der Filename der eingegebenen URL ist ungültig";
plausi_fehlertext[13]="Bitte geben sie nur die Protokolle 'http' oder 'ftp' ein !";
plausi_fehlertext[14]="deutsche Fehlermeld 15.";
plausi_fehlertext[15]="Bitte geben Sie die Ziffern ein";
plausi_fehlertext[16]="Bitte geben Sie nur Ziffern ein";
plausi_fehlertext[17]="Bitte geben Sie einen kleineren Wert ein !";
plausi_fehlertext[18]="Bitte geben Sie einen größeren Wert ein !";
plausi_fehlertext[19]="deutsche Fehlermeld 20.";
plausi_fehlertext[20]="Bitte nur Ziffern und Dezimal-Punkt eingeben !";
plausi_fehlertext[21]="Nach dem Dezimal-Punkt bitte nur 2 Ziffern eingeben";
plausi_fehlertext[22]="Vor dem Dezimal-Punkt bitte maximal 4 Ziffern eingeben";
plausi_fehlertext[23]="Es wurde kein Dezimal-Punkt eingegeben";
plausi_fehlertext[24]="Es wurden keine Eingaben vor dem Dezimal-Punkt genmacht";
plausi_fehlertext[25]="Es wurden keine Eingaben nach dem Dezimal-Punkt gemacht";
plausi_fehlertext[26]="Bitte geben Sie die Telefon-Nummer ein !";
plausi_fehlertext[27]="Bitte nur Ziffern die Zeichen  /,-,+,) oder ( eingeben";
plausi_fehlertext[28]="deutsche Fehlermeld 29.";
plausi_fehlertext[29]="deutsche Fehlermeld 30.";
plausi_fehlertext[30]="Bitte geben Sie das Datum nur im Format YYYY-MM-DD  ein !";
plausi_fehlertext[31]="Bitte nur Ziffern eingeben !";
plausi_fehlertext[32]="deutsche Fehlermeld 33.";
var plausi_fehlertext_engl=new Array();
plausi_fehlertext_engl[0]="dies ist die englische  Fehlermeldung der Nummer 1";
plausi_fehlertext_engl[1]="Please";
plausi_fehlertext_engl[2]="Please";
plausi_fehlertext_engl[3]="Please enter your email address !";
plausi_fehlertext_engl[4]="Please";
plausi_fehlertext_engl[5]="Your email address must include a '@'-character ";
plausi_fehlertext_engl[6]="Please";
plausi_fehlertext_engl[7]="no special charakters please !";
plausi_fehlertext_engl[8]="there is a invalid charakter in the email address you entered, please try again";
plausi_fehlertext_engl[9]="Please";
plausi_fehlertext_engl[10]="Please";
plausi_fehlertext_engl[11]="Please";
plausi_fehlertext_engl[110]="Pleaseplease more";
function ip_letzter(){
var eingeg, a, elemzahl;
elemzahl=39;
for(a=1; a<elemzahl; a++){
eingeg=window.document.forms[0].elements[a].value;
fe_typ=window.document.forms[0].elements[a].type;
if(fe_typ=="text" || fe_typ=="textarea"){
if(ip_istleer(eingeg)==true){
fehlermeld(4);
window.document.forms[0].elements[a].focus();
return false;
}
}
}
}
