//Mussfeld Stichwort
function absendenStichwortOK() {
	formAuswertung = checkForm("suchform","Stichwort","stichwort","stw")
	return formAuswertung
}

//Mussfeld Stichwort
function absendenLoginOK() {
	formAuswertung = checkForm("loginform","E-Mail-Adresse","email","@","Passwort","passwort","pw")
	return formAuswertung
}

//Mussfelder Kontakt
function absendenKontaktOK() {
	formAuswertung = checkForm("kontaktform","Anrede","anrede","an","Vorname","vorname","txt","Nachname","nachname","txt","E-Mail","email","@","Meine Anfrage","kommentar","txt")
	return formAuswertung
}

//Mussfelder Neukunden
function absendenRechnungsdatenOK() {
	formAuswertung = checkForm("rechnungsdaten","E-Mail-Adresse (E-Mail)","email","@",'Passwort','passwort_1','pw1','Passwort','passwort_2','pw2',"Anrede","anrede","an","Vorname","vorname","txt","Nachname","nachname","txt","Straße","strasse","txt","Postleitzahl (PLZ)","plz","txt","Ort","ort","txt","Land","land","txt")
	return formAuswertung
}

//Mussfelder EditRechnungsdaten
function absendenEditRechnungsdatenOK() {
	formAuswertung = checkForm('rechnungsdaten',"Anrede","anrede","an","Vorname","vorname","txt","Nachname","nachname","txt","Straße","strasse","txt","Postleitzahl (PLZ)","plz","txt","Ort","ort","txt","Land","land","txt")
	return formAuswertung
}

//Mussfelder Lieferdaten
function absendenLieferdatenOK() {
	formAuswertung = checkForm("lieferdaten","Name des Empfängers","lieferName","txt","Straße","lieferStrasse","txt","Postleitzahl (PLZ)","lieferPlz","txt","Ort","lieferOrt","txt")
	return formAuswertung
}

//Mussfelder Kontodaten
function absendenKontodatenOK() {
	formAuswertung = checkForm("kontodaten","Name des Kontoinhabers","kontoInhaber","txt","Konto-Nummer","kontoNummer","txt","Bankleitzahl Ihrer Bank","kontoBlz","txt")
	return formAuswertung
}

//Mussfeld Allgemeine Geschäftsbedingungen
function passwortdatenOK() {
	formAuswertung = checkForm("passwortdaten","E-Mail-Adresse","email","@")
	return formAuswertung
}

//Mussfeld Allgemeine Geschäftsbedingungen
function absendenBestellzusatzOK() {
	formAuswertung = checkForm("zusatzdaten","Anmerkungen","kommentar","max","Allgemeine Geschäftsbedingungen","agb","agb")
	return formAuswertung
}



/* Copyright Lutz Eymers <ixtab@polzin.com>, 1997
   Polzin GmbH, Duesseldorf   */

/********************************************/
/* E-Mail-Adresse auf Gültigkeit überprüfen */
/********************************************/

  function isDigit( ch )
  {
    if ( (ch >= '0') && (ch <= '9') )
      return true;
    else
      return false;
  }


  function isAlpha( ch )
  {
    if ( ((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) )
      return true;
    else
      return false;
  }


  function isAlnum( ch )
  {
    if ( isAlpha( ch ) || isDigit( ch ) )
      return true;
    else
      return false;
  }


  function notIn( str1, str2 )
  {
    var i = 0;
    var j = str2.length;
    for( ; i<j; i++ )
    {
      var str3 =  str2.charAt(i);
      if( str1.indexOf( str3 ) != -1 )
        return false;
    }
    return true;
  }


  function checkUsername( username, mustBeQuoted )
  {
    var i = 0;
    var j = username.length;
	if ( username.charAt(0) != '"' )
    {
      if ( (username.charAt(0) <  ' ') || (username.charAt(0) >  '~')
            || !notIn( mustBeQuoted, username.charAt(0) ) )
        return false;
      for( i=1; i<j; i++ )
      {
        if ( ( (username.charAt(i) < ' ') || (username.charAt(i) >  '~')
              || !notIn ( mustBeQuoted, username.charAt(i) ) )
             && ( username.charAt(i-1) != '\\' ) )
          return false;
      }
    }
    else
    {
      if ( username.charAt( j-1 ) != '"' )
        return false;
      for( i=1; i<j-1; i++ )
      {
        if ( ( (username.charAt(i) == '\n') || (username.charAt(i) == '\r')
              || (username.charAt(i) == '\"') )
            && (username.charAt(i-1) != '\\') )
          return false;
      }

    }
    return true;
  }


  function checkNr ( nr )
  {
    var i=0;
    var j=nr.length;

    if( j < 1 )
      return false;

    for( ; i<j; i++ )
      if( ( nr.charAt(i) < '0' ) || ( nr.charAt(i) > '9' ) )
        return false;

    return true;
  }


  function checkIpnr( ipnr )
  {
    var iL=0;
    var iC=0;
    var i=0;
    var sNr = "";

    for( ; i< ipnr.length; i++ )
    {
      if ( ipnr.charAt(i) == '.' )
      {
        if ( !iL || (iL> 3) || parseInt( sNr,10 ) > 255 )
          return false;
        iC++;
        iL = 0;
        sNr = "";
        continue;
      }
      if ( isDigit ( ipnr.charAt(i) ) )
      {
        iL++;
        sNr = sNr + ipnr.charAt(i);
        continue;
      }
      return false;
    }

    if ( parseInt( sNr,10 ) > 255 )
      return false;
    if ( ( (iC==3) && (iL>=1) && (iL<=3) ) || ( (iC==4) && (!iL) )  )
      return true;
    else
      return false;
  }


  function checkFqdn( fqdn )
  {
    var iL=0;
    var iC=0;
    var i=fqdn.length-1;

    if ( (fqdn.charAt(0) == '.') || (fqdn.charAt(0) == '-') )
      return false;
    if ( fqdn.charAt(i) == '.' )
      i=i-1;

    for( ; i>=0; i-- )
    {
      if ( fqdn.charAt(i) == '.' )
      {
        if ( iL < 2 && iC < 2 )
          return false;
        if ( fqdn.charAt(i-1) == '-' )
          return false;
        iC++;
        iL = 0;
        continue;
      }
      if ( isAlnum ( fqdn.charAt(i) ) )
      {
        iL++;
        continue;
      }
      if ( fqdn.charAt(i) == '-' )
      {
        if ( !iL )
          return false;
        iL++;
        continue;
      }
      return false;
    }

    if ( !iC || ( iL == 1 && iC < 2 ) || ( !iL && iC==1 ) ) {
      return false;
    }

    return true;

  }


  function checkHostname( hostname )
  {
    if ( hostname.charAt(0) == '[' )
    {
      if ( hostname.charAt(hostname.length-1) != ']' )
        return false;
      var ipnr = hostname.substring( 1, hostname.length -1 );
        return checkIpnr( ipnr );
    }

    if ( hostname.charAt(0) == '#' )
    {
      var nr = hostname.substring( 1, hostname.length );
        return checkNr( nr );
    }

	// edited by interact
    var seperate = hostname.lastIndexOf(".");
    if ( seperate == -1 )
      return false;

    tld = hostname.substring(seperate+1, hostname.length );

	if ((tld.length > 6 ))
      return false;

	if ((tld.length > 4 )) {
	return confirm("Achtung: die Domain Ihrer E-Mail-Adresse lautet ." + tld + ". Sind Sie sicher?");
//return true;
	}
// end edited

	return checkFqdn( hostname );
  }


  function checkEmailAdr( address )
  {
    var status = true;
    var username = "";
    var hostname = "";

    if ( address.length < 8 )
      return false;

    var seperate = address.lastIndexOf("@");
    if ( seperate == -1 )
      return false;

    username = address.substring(0, seperate );
    if ( ! checkUsername( username, "<>!§$%&/=?`´*~+'#|üäöß^°µ€()[],;:@\" " ) )
      return false;

    hostname = address.substring(seperate+1, address.length );
    if ( ! checkHostname( hostname ) )
      return false;

	// edited by interact
	if ((address.indexOf('..')) > -1 || (address.indexOf('.@')) > -1 || (address.indexOf('\\')) > -1 )
      return false;
	// end edited

    return true;
  }


  function checkEmail( email, allowFullname )
  {
    var existFullname = false;
    var status = true;
    var fullname = "";
    var adress = "";
    if ( email.length < 8 )
      return false;
    var emailBegin = email.indexOf("<");
    var emailEnd = email.lastIndexOf(">");

    if ( (emailBegin == -1) && (emailEnd == -1) )
      return checkEmailAdr( email );

    if ( ( (emailBegin == -1) && (emailEnd != -1) )
        || ( (emailBegin != -1) && (emailEnd == -1) ) )
      return false;

    adress = email.substring( emailBegin+1, emailEnd );

    if ( ! checkEmailAdr( adress ) )
      return false;

    if ( email.length == adress.length + 2 )
      return true;
    else
      if ( ! allowFullname )
        return false;

    if ( emailEnd == email.length - 1 )
    {
      if ( emailBegin == 0 )
        return true;
      if ( email.charAt( emailBegin -1 ) != ' ' )
        return false;
      fullname = email.substring( 0, emailBegin-1 );
      return checkUsername ( fullname, "<>!§$%&/=?`´*~+'#|üäöß^°µ€()[],;:@\" " );
    }

    return false ;

  }







//Formular (Achtung: evtl. übergebenen Feldnamen mit folgenden Variablen vergleichen)
function checkForm() {

	checkFormValue=true
	parameter=checkForm.arguments
	parameter_anzahl=parameter.length
	formularname=parameter[0]
	fehler='Bitte prüfen Sie im Formular folgende Felder:\n\n'

	for (i=1; i<(parameter_anzahl-2); i+=3) {
			feedbackTitel=parameter[i]
			feldname=parameter[i+1]

			eval('feldinhalt=document.' + formularname + '.' + feldname + '.value');

			switch (parameter[i+2]) {
				case 'txt':
					if (trim(feldinhalt).length < 2) {
						//fehler+=(' - ' + feedbackTitel +' bitte korrekt angeben!\n')
						fehler+=(' - ' + feedbackTitel +'\n')
						checkFormValue=false;
					}			
					break;
				case 'max':
					if (trim(feldinhalt).length > 200) {
						//fehler+=(' - ' + feedbackTitel +' bitte korrekt angeben!\n')
						fehler+=(' - Das Feld ' + feedbackTitel +' darf max. 200 Zeichen enthalten!\n')
						checkFormValue=false;
					}			
					break;
				case 'stw':
					if (trim(feldinhalt).length < 3) {
						fehler+=(' - Bitte im Feld ' + feedbackTitel +' mindestens drei Zeichen angeben!\n')
						checkFormValue=false;
					}			
					break;

				case 'pw':
					if ((trim(feldinhalt).length < 4) || (feldinhalt=='Passwort')) {
						fehler+=(' - ' + feedbackTitel +' bitte korrekt angeben!\n')
						checkFormValue=false;
					} 
					break;

				case 'pw1':
					if (trim(feldinhalt).length < 4) {
						fehler+=(' - ' + feedbackTitel +' bitte korrekt angeben!\n')
						checkFormValue=false;
					} else {

						//Passwort2
						feedbackTitel2=parameter[i+3]
						feldname=parameter[i+4]
						eval('feldinhalt2=document.' + formularname + '.' + feldname + '.value');
						if (feldinhalt != feldinhalt2) {
							fehler+=(' - Bitte zweimal das selbe Passwort angeben!\n')
							checkFormValue=false;
						}
					}
					break;

				case '@':
//					if ((feldinhalt.length < 5) || (parseInt(feldinhalt.indexOf('@')) < 0) || (parseInt(feldinhalt.indexOf('.')) < 0)) {
//						fehler+=(' - ' + feedbackTitel +' bitte korrekt angeben.\n')
//						checkFormValue=false;
//					}		
					if (checkEmail(feldinhalt, true ) == false) {
						fehler+=(' - ' + feedbackTitel +' bitte korrekt angeben....\n')
						checkFormValue=false;
					}
					break;
				case 'an':

					if (feldinhalt=='?') {
						fehler+=(' - Anrede bitte auswählen.\n')
						checkFormValue=false;
					}
					break;
				case 'agb':
					eval('feldinhalt = document.' + formularname + '.' + feldname + '.checked')
					if (feldinhalt != true) {
						fehler+=(' - ' + feedbackTitel +' bitte durch Anwählen des Kontrollfedes akzeptieren.\n')
						checkFormValue=false;
					}
				}	
	}


		if (checkFormValue==false) {
		  alert(fehler)
		}
		return checkFormValue;
}
