function ZahlArt2Text(option1checked){
var tmp = "";
if (option1checked == true)
 {tmp = "per Überweisung auf das Konto Nr. 000 1949 888, BLZ 210 906 19, APO-Bank Kiel"}
else
 {tmp = "durch KZV-Abbuchung von meinem/unserem KZV-Konto (KZV-Nr.: "+this.ZAET2007Anmeldung['KZVNummer'].value+")";}
return tmp;
}

function Status2Text(whatstate){
var tmp = "";

switch(whatstate)
{
case "1":
 tmp = "niedergel./angest. Zahnärztin/Zahnarzt"
 break
case "2":
 tmp = "Assistent(in)"
 break
case "3":
 tmp = "Mitarbeiter(in)"
 break
case "4":
 tmp = "Student(in) o. Azubi (mit gült. Ausweis!)"
 break
default:
 tmp = ""
 break
}
return tmp;
}

function DelRow(whatrow){
this.ZAET2007Anmeldung['Titel'+whatrow].value = "";
this.ZAET2007Anmeldung['Name'+whatrow].value = "";
this.ZAET2007Anmeldung['Vorname'+whatrow].value = "";
check();
}

function DisableEnable(mode){
var setdisabled;
if (mode="disable")
 {setdisabled = true;}
else
 {setdisabled = false;}
/* jetzt alle Objekte des Formulars dis- oder enablen */
/* oberer Block */
this.ZAET2007Anmeldung['Name'].disabled = setdisabled;
this.ZAET2007Anmeldung['Vorname'].disabled = setdisabled;
this.ZAET2007Anmeldung['Titel'].disabled = setdisabled;
this.ZAET2007Anmeldung['Strasse'].disabled = setdisabled;
this.ZAET2007Anmeldung['PLZ'].disabled = setdisabled;
this.ZAET2007Anmeldung['Ort'].disabled = setdisabled;
this.ZAET2007Anmeldung['Telefon'].disabled = setdisabled;
/* 10er Block */
for (var i = 1; i <= 10; i++){

 this.ZAET2007Anmeldung['Titel'+i].disabled = setdisabled;
 this.ZAET2007Anmeldung['Name'+i].disabled = setdisabled;
 this.ZAET2007Anmeldung['Vorname'+i].disabled = setdisabled;
 this.ZAET2007Anmeldung['Status'+i].disabled = setdisabled;
 this.ZAET2007Anmeldung['Gebuehr'+i].disabled = setdisabled;
}
/* unterer Block */
this.ZAET2007Anmeldung['SummeGebuehren'].disabled = setdisabled;
this.ZAET2007Anmeldung.Zahlung[0].disabled = setdisabled;
this.ZAET2007Anmeldung.Zahlung[1].disabled = setdisabled;
this.ZAET2007Anmeldung['KZVNummer'].disabled = setdisabled;
this.ZAET2007Anmeldung['AddComment'].disabled = setdisabled;
this.ZAET2007Anmeldung['Errors'].disabled = setdisabled;
}

function BuildBody(){
/* Zusammenführen sämtlicher Infos */
var mytext = "";
var a = 0;
mytext = "Name: "+this.ZAET2007Anmeldung['Name'].value;
mytext = mytext + "\rVorname: "+this.ZAET2007Anmeldung['Vorname'].value;
mytext = mytext + "\rTitel: "+this.ZAET2007Anmeldung['Titel'].value;
mytext = mytext + "\rStrasse: "+this.ZAET2007Anmeldung['Strasse'].value;
mytext = mytext + "\rOrt: "+this.ZAET2007Anmeldung['PLZ'].value+' '+this.ZAET2007Anmeldung['Ort'].value;
mytext = mytext + "\rTelefon: "+this.ZAET2007Anmeldung['Telefon'].value;
mytext = mytext + "\rE-Mail: "+this.ZAET2007Anmeldung['E-Mail'].value;
mytext = mytext + "\r";
mytext = mytext + "\rHiermit melde ich zum ZahnÄrztetag 2010 folgende Personen verbindlich an:";
/* jetzt 10* loopen */
for (var i = 1; i <= 10; i++){

 if (Number(this.ZAET2007Anmeldung['Status'+i].value)>0)
  {
  a = a + 1;
  mytext = mytext + "\r"+a+". Teilnehmer: "+this.ZAET2007Anmeldung['Titel'+i].value+" "+
  this.ZAET2007Anmeldung['Name'+i].value+", "+this.ZAET2007Anmeldung['Vorname'+i].value+
  " Status: "+Status2Text(this.ZAET2007Anmeldung['Status'+i].value)+" zum Preis von "+
  this.ZAET2007Anmeldung['Gebuehr'+i].value+" €";
  
  }
}  
/* nun den Rest... */
mytext = mytext + "\r";
mytext = mytext + "\rDie Teilnehmergebühren in Höhe von : "+this.ZAET2007Anmeldung['SummeGebuehren'].value+" € bezahle ich";
mytext = mytext + "\r"+ZahlArt2Text(this.ZAET2007Anmeldung.Zahlung[0].checked);
mytext = mytext + "\r";
mytext = mytext + "\rZusätzliche Bemerkungen:";
mytext = mytext + "\r"+this.ZAET2007Anmeldung['AddComment'].value;
this.ZAET2007Anmeldung['Mailbody'].value = mytext;
/* */
DisableEnable("disable");
this.ZAET2007Anmeldung.submit();
DisableEnable("enable");
}

function preparecombos(){
for (var i = 1; i <= 10; i++){
 var elOptNew;
 /* 5. Option */
 elOptNew = document.createElement('option');
 elOptNew.text = Status2Text("4");
 elOptNew.value = 4;
 this.ZAET2007Anmeldung['Status'+i].add(elOptNew,0);
 /* 4. Option */
 elOptNew = document.createElement('option');
 elOptNew.text = Status2Text("3");
 elOptNew.value = 3;
 this.ZAET2007Anmeldung['Status'+i].add(elOptNew,0);
 /* 3. Option */
 elOptNew = document.createElement('option');
 elOptNew.text = Status2Text("2");
 elOptNew.value = 2;
 this.ZAET2007Anmeldung['Status'+i].add(elOptNew,0);
 /* 2. Option */
 elOptNew = document.createElement('option');
 elOptNew.text = Status2Text("1");
 elOptNew.value = 1;
 this.ZAET2007Anmeldung['Status'+i].add(elOptNew,0);
 /* 1. Option */
 elOptNew = document.createElement('option');
 elOptNew.text = '';
 elOptNew.value = 0;
 this.ZAET2007Anmeldung['Status'+i].add(elOptNew,0);
 }

}
function Sayerror (errtxt,mode) {
if (mode=="1"){this.ZAET2007Anmeldung.Errors.value = "";}
else	
 {this.ZAET2007Anmeldung.Errors.value = this.ZAET2007Anmeldung.Errors.value+errtxt+'\r';}	
}	

function setData2firstline(){
this.ZAET2007Anmeldung['Titel1'].value = this.ZAET2007Anmeldung['Titel'].value;
this.ZAET2007Anmeldung['Name1'].value = this.ZAET2007Anmeldung['Name'].value;
this.ZAET2007Anmeldung['Vorname1'].value = this.ZAET2007Anmeldung['Vorname'].value;
check();
}

function check(){
var allgreen = true;
var onegreen = false;

this.ZAET2007Anmeldung.Mailbody.value = "";
for (var i = 1; i <= 10; i++){
 if (this.ZAET2007Anmeldung['Titel'+i].value != "" || this.ZAET2007Anmeldung['Name'+i].value != "" || this.ZAET2007Anmeldung['Vorname'+i].value != "")
  {
  this.ZAET2007Anmeldung['Status'+i].disabled = false;
  
  }
 else
  {
   this.ZAET2007Anmeldung['Status'+i].disabled = true;
   this.ZAET2007Anmeldung['Status'+i].selectedIndex = 0;
  }

}
calculate();

this.ZAET2007Anmeldung.KZVNummer.disabled = this.ZAET2007Anmeldung.Zahlung[0].checked;
Sayerror("",1);
/* den Absendebutton disablen wenn nicht alle Rahmenbedingungen erfüllt sind */
/* ist NAME ausgefüllt? */
onegreen = this.ZAET2007Anmeldung['Name'].value.length > 0;
if (onegreen == false){Sayerror("Die Information im Pflichtfeld NAME fehlt!",0);}
allgreen = allgreen && onegreen;
/* ist VORNAME ausgefüllt? */
onegreen = this.ZAET2007Anmeldung['Vorname'].value.length > 0;
if (onegreen == false){Sayerror("Die Information im Pflichtfeld VORNAME fehlt!",0);}
allgreen = allgreen && onegreen;
/* ist STRASSE ausgefüllt? */
onegreen = this.ZAET2007Anmeldung['Strasse'].value.length > 0;
if (onegreen == false){Sayerror("Die Information im Pflichtfeld STRASSE fehlt!",0);}
allgreen = allgreen && onegreen;
/* check der PLZ - Syntax */
onegreen = ((this.ZAET2007Anmeldung['PLZ'].value.length > 0) && (isNaN(Number(this.ZAET2007Anmeldung['PLZ'].value)) == false) && (Number(this.ZAET2007Anmeldung['PLZ'].value) >= 1000));
if (onegreen == false){Sayerror("Die Information im Pflichtfeld PLZ fehlt oder ist syntaktisch falsch!",0);}
allgreen = allgreen && onegreen;
/* ist ORT ausgefüllt? */
onegreen = this.ZAET2007Anmeldung['Ort'].value.length > 0;
if (onegreen == false){Sayerror("Die Information im Pflichtfeld ORT fehlt!",0);}
allgreen = allgreen && onegreen;
/* ist TELEFON ausgefüllt? */
onegreen = this.ZAET2007Anmeldung['Telefon'].value.length > 0;
if (onegreen == false){Sayerror("Die Information im Pflichtfeld TELEFON fehlt!",0);}
allgreen = allgreen && onegreen;
/* ist EMAIL ausgefüllt und syntaktisch okay? */
onegreen = ((this.ZAET2007Anmeldung['E-Mail'].value.length > 0) && (checkEmail(this.ZAET2007Anmeldung['E-Mail'].value,true) == true));
if (onegreen == false){Sayerror("Die Information im Pflichtfeld E-MAIL fehlt oder ist syntaktisch falsch!",0);}
allgreen = allgreen && onegreen;
/* ist mindestens ein Teilnehmer vollständig? Check über die Summe aller Gebühren */
onegreen = Number(this.ZAET2007Anmeldung.SummeGebuehren.value.replace(/\,/,".")) > 0;
if (onegreen == false){Sayerror("Die Angaben zu mindestens einem Teilnehmer fehlen bzw. sind unvollständig!",0);}
allgreen = allgreen && onegreen;
/* ist die KZVNummer ausgefüllt wenn radiobutton[1] gecheckt ist? */
if (this.ZAET2007Anmeldung.Zahlung[0].checked)
 {onegreen = true;}
else
 {onegreen = ((this.ZAET2007Anmeldung['KZVNummer'].value.length > 0) && (isNaN(Number(this.ZAET2007Anmeldung['KZVNummer'].value)) == false));}
if (onegreen == false){Sayerror("Die Information KZV-Nummer fehlt oder ist syntaktisch falsch!",0);} 
allgreen = allgreen && onegreen;
/* Ende der Checks */
this.ZAET2007Anmeldung.send.disabled = ! allgreen;
}
		
function calculate(){
 var Summe = 0;
 var singlevalue = 0;
 var tmp = 0;
 var countMA = 0;
 for (var i = 1; i <= 10; i++){
  singlevalue = Number(this.ZAET2007Anmeldung['Status'+i].value);
  switch(singlevalue)
   {
   case 1: 
    tmp = 75
    break
   case 2: 
    tmp = 50
    break
   case 3:
    countMA = countMA + 1
    switch(countMA)
     {
      case 1:
       tmp = 50
       break
      case 2: 
       tmp = 37.5
       break
      default:
       tmp = 25;
       break
     }
     break   
   case 4:
    tmp = 15
    break
   default:
    tmp = 0
    break
   }
  Summe = Summe + tmp; 
  
  if (tmp == 0){this.ZAET2007Anmeldung['Gebuehr'+i].value = "";} else
   {this.ZAET2007Anmeldung['Gebuehr'+i].value = String(tmp.toFixed(2).replace(/\./,","));}

 }
 this.ZAET2007Anmeldung.SummeGebuehren.value = String(Summe.toFixed(2)).replace(/\./,",");


}
		
function isDigit( ch )  {
return ((ch >= '0') && (ch <= '9'));
}

function isAlpha( ch )  {
return ( ((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) );
}

function isAlnum( ch )  {
return ( isAlpha( ch ) || isDigit( ch ) );
}

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 );
    }

    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;

    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 ;

  }

