//JavaScript für die Kundenanmeldung
//Letzte Änderung: 11.05.2006
//Author: Stefan Fuchsberger

// Beschaffen des AJAX-Objektes
var xmlHttp = false;
// Mozilla, Opera, Safari sowie Internet Explorer 7
if ((typeof(XMLHttpRequest) != 'undefined') && 
   (navigator.appName != 'Konqueror')) {
  xmlHttp = new XMLHttpRequest();
}
if (!xmlHttp) {
  // Internet Explorer 6 und älter
  try {
    xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
  } catch(e) {
    try {
      xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e) {
      xmlHttp  = false;
    }
  }
}

function checkAnmeldeTyp() {
	if (document.form1.anmeldeTyp[0].checked != true) {
		alert("Bitte wählen Sie den Benutzerkontentyp 'privat'.");
		return false;
	}
	return true;
}

function checkLand() {
  if ((document.form1.land[0].checked != true) && 
      (document.form1.land[1].checked != true) && 
      (document.form1.land[2].checked != true)) {
    alert("Bitte wählen Sie Ihr Land aus den oberen Landesflaggen aus.");
    return false;
  }
  return true;
}

function checkVorname() {
  var regnum = /\d/;
  if (document.form1.vorname.value.length < 2) {
    alert("Bitte geben Sie Ihren vollständigen Vornamen ein.");
    return false;
  } else if (regnum.exec(document.form1.vorname.value)) {
    alert("Bitte verwenden Sie bei Eingabe des Vornamens keine Ziffern.");
    return false;
  }
  return true;
}

function checkNachname() {
  var regnum = /\d/;
  if (document.form1.nachname.value.length < 2) {
    alert("Bitte geben Sie Ihren vollständigen Nachnamen ein.");
    return false;
  } else if (regnum.exec(document.form1.nachname.value)) {
    alert("Bitte verwenden Sie bei Eingabe des Nachnamens keine Ziffern.");
    return false;
  }
  return true;
}

function checkVorwahl(Nummer) {
  var regnum = /^\d*$/;
  if (Nummer.length == 0) {
    return true;
  } else if ((Nummer.length > 6) || (Nummer.length < 2 )) {
    alert("Bitte Telefonvorwahl korrigieren!");
    return false;
  } else if(!regnum.exec(Nummer)) {
    alert("Die Telefonvorwahl darf nur Ziffern enthalten!");
    return false;
  }
  return true;
}

function checkVorwahlNeu(Nummer) {
  var regnum = /^\d*$/;
  if ((Nummer.length > 6) || (Nummer.length < 2 )) {
    alert("Bitte Telefonvorwahl korrigieren!");
    return false;
  } else if(!regnum.exec(Nummer)) {
    alert("Die Telefonvorwahl darf nur Ziffern enthalten!");
    return false;
  }
  return true;
}
            
function checkRufnummer(Nummer) {
  var regnum = /^\d*$/;
  if (Nummer.length == 0) {
    return true;
  } else if ((Nummer.length > 13) || (Nummer.length < 3 )) {
    alert("Bitte Rufnummer korrigieren!");
    return false;
  } else if(!regnum.exec(Nummer)) {
    alert("Die Rufnummer darf nur Ziffern enthalten!");
    return false;
  }
  return true;
}

function checkRufnummerNeu(Nummer) {
  var regnum = /^\d*$/;
  if ((Nummer.length > 13) || (Nummer.length < 3 )) {
    alert("Bitte Rufnummer korrigieren!");
    return false;
  } else if(!regnum.exec(Nummer)) {
    alert("Die Rufnummer darf nur Ziffern enthalten!");
    return false;
  }
  return true;
}
                              
function checkTelefon() {
  var regnum = /^\d*$/;
  if (document.form1.tel.value.length == 0) {
    return true;
  } else if ((document.form1.tel.value.length > 22) || 
             (document.form1.tel.value.length < 5 )) {
    alert("Bitte Telefonnummer korrigieren!");
    document.form1.tel.focus();
    return false;
  } else if(!regnum.exec(document.form1.tel.value)) {
    alert("Die Telefonnummer darf nur Ziffern enthalten!");
    document.form1.tel.focus();
    return false;
  }
  return true;
}

function checkEmail() {
  if (document.form1.email.value.length == 0) {
    alert("Bitte geben Sie eine gültige E-Mail-Adresse an!");
    return false;
  } else {
    return true;
  }
}

function checkGeburtstag() {
  if (document.form1.tag_geburtstag.value == "00") {
    alert("Bitte Geburtstag eingeben!");
    document.form1.tag_geburtstag.focus();
    return false;
  } else if (document.form1.monat_geburtstag.value == "00") {
    alert("Bitte Geburtsmonat eingeben!");
    document.form1.monat_geburtstag.focus();
    return false;
  } else if (document.form1.jahr_geburtstag.value == "0000") {
    alert("Bitte Geburtsjahr eingeben!");
    document.form1.jahr_geburtstag.focus();
    return false;
  }
  return true;
}

function checkStrasse() {
  if (document.form1.strasse.value.length < 3) {
    alert("Bitte geben Sie Strasse und Hausnummer ein.");
    return false;
  }
  return true;
}

function checkPlz() {
  var regnum = /^\d*$/;
  if ((document.form1.plz.value.length != 5) && 
      (document.form1.land[0].checked == true)) {
    alert("Die Postleitzahl muss 5 Stellen haben!");
    return false;
  } else if ((document.form1.plz.value.length != 4) && 
             ((document.form1.land[1].checked == true) || 
              (document.form1.land[2].checked == true))) {
    alert("Die Postleitzahl muss 4 Stellen haben!");
    return false;
  } else if (!regnum.exec(document.form1.plz.value)) {
    alert("Die Postleitzahl darf nur Ziffern enthalten!");
    return false;
  }
  return true;
}

function checkPlzNeu() {
  var regnum = /^\d*$/;
  if (document.form1.plz.value.length < 4) {
    alert("Bitte Postleitzahl korrigieren!");
    return false;
  } else if (!regnum.exec(document.form1.plz.value)) {
    alert("Die Postleitzahl darf nur Ziffern enthalten!");
    return false;
  }
  return true;
}
function checkOrt() {
  if (document.form1.ort.value.length < 2) {
    alert ("Bitte überprüfen Sie die Eingabe Ihres Wohnortes.");
    return false;
  }
  return true;
}

function checkUsername() {
  var regnum = /^\w.+-*\w.+$/;
  if (document.form1.username.value.length == 0) {
    return true;
  } else if ((document.form1.username.value.length < 3) || 
             (document.form1.username.value.length > 20)) {
    alert("Bitte Usernamen eingeben (min. 3 Zeichen)!");
    document.form1.username.focus();
    return false;
  } else if (!regnum.exec(document.form1.username.value)) {
    alert("Bitte nur Ziffern und Buchstaben (keine Umlaute) im Usernamen " +
          "verwenden!");
    document.form1.username.focus();
    return false;
  } else {
    xmlHttp.open('get', '/libs/ajax_methods.php?method=1&name=' + 
                 document.form1.username.value);
    xmlHttp.onreadystatechange = handleResponse;
    xmlHttp.send(null);
    return true;
  }
}
  
function checkUsernameSender() {
  var regnum = /^\w.+-*\w.+$/;
  if (document.form1.beratername.value.length == 0) {
    return true;
  } else if ((document.form1.beratername.value.length < 3) || 
             (document.form1.beratername.value.length > 20)) {
    alert("Bitte Usernamen eingeben (min. 3 Zeichen)!");
    document.form1.beratername.focus();
    return false;
  } else if (!regnum.exec(document.form1.beratername.value)) {
    alert("Bitte nur Ziffern und Buchstaben (keine Umlaute) im Usernamen " +
          "verwenden!");
    document.form1.beratername.focus();
    return false;
  } else {
    xmlHttp.open('get', '/libs/ajax_methods.php?method=1&name=' + 
                 document.form1.beratername.value);
    xmlHttp.onreadystatechange = handleResponseSender;
    xmlHttp.send(null);
    return true;
  }
}

function handleResponse() {
  if (xmlHttp.readyState == 4) {
    if (xmlHttp.responseText == "true") {
      alert("Username ist bereits vergeben!");
      document.form1.username.focus();
      return false;
    }
  }
  return true;
}

function handleResponseSender() {
  if (xmlHttp.readyState == 4) {
    if (xmlHttp.responseText == "true") {
      alert("Username ist bereits vergeben!");
      document.form1.beratername.focus();
      return false;
    }
  }
  return true;
}

function checkPW() {
  var regnum = /^\d*$/;
  if (document.form1.passwort.value != document.form1.passwort_wh.value) {
    alert("Ihr Passwort stimmt nicht mit der Wiederholung überein.");
    return false;
  }
  if (document.form1.passwort.value.length != 5) {
    alert("Bitte geben Sie ein 5-stelliges Passwort ein.");
    return false;
  } else if (!regnum.exec(document.form1.passwort.value)) {
    alert("Bitte geben Sie nur Ziffern als Passwort ein.");
    return false;
  }
  return true;
}

function checkKontoverbindung() {
  var regnum = /^\d*$/;
  if (((document.form1.kontonr.value.length > 10) || 
       (document.form1.kontonr.value.length < 2)) && 
      (document.form1.land[0].checked == true)) {
    alert("Bitte geben Sie eine gültige Kontonummer ein.");
    document.form1.kontonr.focus();
    return false;
  } else if (((document.form1.kontonr.value.length > 11) || 
              (document.form1.kontonr.value.length < 2)) && 
             (document.form1.land[1].checked == true)) {
    alert("Bitte geben Sie eine gültige Kontonummer ein.");
    document.form1.kontonr.focus();
    return false;
  } else if (!regnum.exec(document.form1.kontonr.value)) {
    alert("Bitte verwenden Sie nur Ziffern für die Eingabe der Kontonummer!");
    document.form1.kontonr.focus();
    return false;
  } else if ((document.form1.blz.value.length != 8) && 
             (document.form1.land[0].checked == true)) {
    alert("Bitte geben Sie eine gültige Bankleitzahl ein.");
    document.form1.blz.focus();
    return false;
  } else if ((document.form1.blz.value.length != 5) && 
             (document.form1.land[1].checked == true)) {
    alert("Bitte geben Sie eine gültige Bankleitzahl ein.");
    document.form1.blz.focus();
    return false;
  } else if (!regnum.exec(document.form1.blz.value)) {
    alert("Bitte verwenden Sie nur Ziffern für die Eingabe der Bankleitzahl!");
    document.form1.blz.focus();
    return false;
  }
  return true;
}

function checkKontoverbindungNeu() {
  var regnum = /^\d*$/;
  if ((document.form1.kontonr.value.length > 11) || 
       (document.form1.kontonr.value.length < 2)) {
    alert("Bitte geben Sie eine gültige Kontonummer ein.");
    document.form1.kontonr.focus();
    return false;
  } else if (!regnum.exec(document.form1.kontonr.value)) {
    alert("Bitte verwenden Sie nur Ziffern für die Eingabe der Kontonummer!");
    document.form1.kontonr.focus();
    return false;
  } else if ((document.form1.blz.value.length < 5) || 
             (document.form1.blz.value.length > 8)) { 
    alert("Bitte geben Sie eine gültige Bankleitzahl ein.");
    document.form1.blz.focus();
    return false;
  } else if (!regnum.exec(document.form1.blz.value)) {
    alert("Bitte verwenden Sie nur Ziffern für die Eingabe der Bankleitzahl!");
    document.form1.blz.focus();
    return false;
  }
  return true;
}

function checkVornameKonto() {
  var regnum = /\d/;
  if (document.form1.kontoinh_vorname.value.length < 2) {
    alert("Bitte geben Sie den vollständigen Vornamen des Kontoinhabers ein.");
    return false;
  } else if (regnum.exec(document.form1.kontoinh_vorname.value)) {
    alert("Bitte verwenden Sie im Vornamen des Kontoinhabers keine Ziffern.");
    return false;
  }
  return true;
}

function checkNachnameKonto() {
  var regnum = /\d/;
  if (document.form1.kontoinh_nachname.value.length < 2) {
    alert("Bitte geben Sie den vollständigen Nachnamen des Kontoinhabers ein.");
    return false;
  } else if (regnum.exec(document.form1.kontoinh_nachname.value)) {
    alert("Bitte verwenden Sie im Nachnamen des Kontoinhabers keine Ziffern.");
    return false;
  }
  return true;
}

function checkAGB() {
  if (document.form1.agb.checked != true) {
    alert("Bitte lesen und bestätigen Sie unsere AGBs");
    return false;
  }
  return true;
}

function checkELV() {
  if (document.form1.elv.checked != true) {
    alert("Bitte stimmen Sie dem elektronischen Lastschriftenverfahren zu");
    return false;
  }
  return true;
}

function checkGratis() {
  if (document.form1.gratis.checked != true) {
    alert("Bitte lesen und bestätigen Sie unsere Informationen zu " +
          "Gratisgesprächen");
    return false;
  }
  return true;
}

function checkGeschlecht() {
  if ((document.form1.geschlecht.value != "w") && 
      (document.form1.geschlecht.value != "m")) {
    alert("Bitte geben Sie Ihr Geschlecht an!");
    return false;
  }
  return true;
}

/*function checkGewerbescheinnummer() {
  for (var i = 0; i < document.form1.gewerbescheinnummer.value.length; i++) {
    if (((document.form1.gewerbescheinnummer.value.charAt(i) < "0") || 
         (document.form1.gewerbescheinnummer.value.charAt(i) > "9")) && 
        (document.form1.gewerbescheinnummer.value.charAt(i) != "/") && 
        (document.form1.gewerbescheinnummer.value.charAt(i) != " ")) {
      alert ("Bitte geben Sie eine nur aus Zahlen, Leerzeichen und / " +
             "bestehende Gewerbescheinnummer ein.");
      return false;
    }
  }
  return true;
}

function checkSteuernummer() {
  for (var i = 0; i < document.form1.steuernummer.value.length; i++) {
    if (((document.form1.steuernummer.value.charAt(i) < "0") || 
         (document.form1.steuernummer.value.charAt(i) > "9")) && 
        (document.form1.steuernummer.value.charAt(i) != "/")) {
      alert ("Bitte geben Sie Ihre Steuernummer ein. Diese darf nur aus " +
             "Zahlen und dem Zeichen / bestehen und muss mindestenst 8 " +
             "Zeichen lang sein.");
      return false;
    }
  }
  return true;
}

function checkUstid() {
  for (var i = 0; i < document.form1.ustid.value.length; i++) {
    if (((document.form1.ustid.value.charAt(i) < "0") || 
         (document.form1.ustid.value.charAt(i) > "9")) && 
        (document.form1.ustid.value.charAt(i) != "/")) {
      alert ("Bitte geben Sie Ihre Umsatzsteuer-ID ein. Diese darf nur aus " +
             "Zahlen und dem Zeichen / bestehen und muss mindestenst 8 " +
             "Zeichen lang sein.");
      return false;
    }
  }
  return true;
}*/
  
function submitCustomerSeite1() {
	if (!checkAnmeldeTyp()) {
		document.form1.anmeldeTyp[0].focus();
		return false;
	} else if (!checkVorname()) {
    document.form1.vorname.focus();
    return false;
  } else if (!checkNachname()) {
    document.form1.nachname.focus();
    return false;
  } else if (!checkGeburtstag()) {
    return false;
  } else if (!checkEmail()) {
    document.form1.email.focus();
    return false;
  } else if (!checkVorwahlNeu(document.form1.telVorwahl.value)) {
    document.form1.telVorwahl.focus();
    return false;
  } else if (!checkRufnummerNeu(document.form1.telNr.value)) {
    document.form1.telNr.focus();
    return false;
  } else if (!checkVorwahlNeu(document.form1.testTelVorwahl.value)) {
    document.form1.testTelVorwahl.focus();
    return false;
  } else if (!checkRufnummerNeu(document.form1.testTelNr.value)) {
    document.form1.testTelNr.focus();
    return false;
  } else if (document.form1.telVorwahl.value != document.form1.testTelVorwahl.value) {
    alert("Ortsvorwahl und Wiederholung stimmen nicht überein!");
    document.form1.testTelVorwahl.focus();
    return false;
  } else if (document.form1.telNr.value != document.form1.testTelNr.value) {
    alert("Rufnummer und Wiederholung stimmen nicht überein!");
    document.form1.testTelNr.focus();
    return false;
  } else if (!checkStrasse()) {
    document.form1.strasse.focus();
    return false;
  } else if (!checkPlzNeu()) {
    document.form1.plz.focus();
    return false;
  } else if (!checkOrt()) {
    document.form1.ort.focus();
    return false;
  } else if (!checkUsername()) {
    return false;
  } else if (!checkPW()) {
    document.form1.passwort.focus();
    return false;
  } else {
    return true;
  }
}

function submitCustomerSeite2() {
  if (!checkKontoverbindungNeu()) {
    return false;
  } else if (!checkVornameKonto()) {
    document.form1.kontoinh_vorname.focus();
    return false;
  } else if (!checkNachnameKonto()) {
    document.form1.kontoinh_nachname.focus();
    return false;
  } else if (!checkAGB()) {
    document.form1.agb.focus();
    return false;
  } else {
    return true;
  }
  return false;
}

function submitCustomer() {
  if (!checkLand()) {
    return false;
  } else if(!checkVorname()) {
    document.form1.vorname.focus();
    return false;
  } else if(!checkNachname()) {
    document.form1.nachname.focus();
    return false;
  } else if(!checkVorwahl(document.form1.telVorwahl.value)) {
    document.form1.telVorwahl.focus();
    return false;
  } else if(!checkRufnummer(document.form1.telNr.value)) {
    document.form1.telNr.focus();
    return false;
  } else if(!checkGeburtstag()) {
    return false;
  } else if(!checkStrasse()) {
    document.form1.strasse.focus();
    return false;
  } else if(!checkPlz()) {
    document.form1.plz.focus();
    return false;
  } else if(!checkOrt()) {
    document.form1.ort.focus();
    return false;
  } else if(!checkUsername()) {
    return false;
  } else if(!checkPW()) {
    document.form1.passwort.focus();
    return false;
  } else if(!checkKontoverbindung()) {
    return false;
  } else if (!checkVornameKonto()) {
    document.form1.kontoinh_vorname.focus();
    return false;
  } else if (!checkNachnameKonto()) {
    document.form1.kontoinh_nachname.focus();
    return false;
  } else if (!checkAGB()) {
    document.form1.agb.focus();
    return false;
  } else if (!checkELV()) {
    document.form1.elv.focus();
    return false;
  } else if(!checkGratis()) {
    document.form1.gratis.focus();
    return false;
  } else {
    document.form1.intVorwahl.disabled = false;
    return true;
  }
}

function submitFormPD() {
  if (!checkLand()) {
    return false;
  } else if (!checkVorname()) {
    document.form1.vorname.focus();
    return false;
  } else if (!checkNachname()) {
    document.form1.nachname.focus();
    return false;
  } else if(!checkVorwahl(document.form1.telVorwahl.value)) {
    document.form1.telVorwahl.focus();
    return false;
  } else if(!checkRufnummer(document.form1.telNr.value)) {
    document.form1.telNr.focus();
    return false;
//  } else if(!checkEmail()) {
//    return false;
  } else if ((document.form1.telVorwahl.value != 
              document.form1.testTelVorwahl.value) ||
             (document.form1.telNr.value != 
              document.form1.testTelNr.value)) {
    alert("Bitte bestätigen Sie Ihre Telefonnummer!");
    return false;
  } else if (!checkGeburtstag()) {
    return false;
  } else if (!checkGeschlecht()) {
    return false;
  } else if (!checkStrasse()) {
    document.form1.strasse.focus();
    return false;
  } else if (!checkPlz()) {
    document.form1.plz.focus();
    return false;
  } else if (!checkOrt()) {
    document.form1.ort.focus();
    return false;
  } else if (!checkKontoverbindung()) {
    return false;
  } else if(!accepted) {
    alert("Bitte markieren Sie, dass Sie die AGB\nsowie die Hausordnung " +
          "von Vistano akzeptieren.");
  } else {
    document.form1.submittyp.value = "weiter";
    document.form1.intVorwahl.disabled = false;
    document.form1.telefon.value = document.form1.telVorwahl.value + 
                                   document.form1.telNr.value;
    document.form1.submit();
  }
}

function submitFormBD() {
  document.form1.submittyp.value = "weiter";
  if (!checkPW()) {
    document.form1.passwort.focus();
    return false;
  } else if (document.form1.beratername.value == "") {
    alert("Bitte geben Sie einen Usernamen ein!");
    return false;
  } else if (!checkUsernameSender()) {
    return false;
  } else if (!berechne_Preise()) {
    return false;
  } else if ((document.form1.tel1Vorwahl.value != 
             document.form1.testTel1Vorwahl.value) ||
             (document.form1.tel1Nr.value != 
              document.form1.testTel1Nr.value)) {
    alert("Bitte bestätigen Sie Ihre erste Telefonnummer!");
    return false;
  } else if ((document.form1.tel2Vorwahl.value != 
             document.form1.testTel2Vorwahl.value) ||
             (document.form1.tel2Nr.value != 
              document.form1.testTel2Nr.value)) {
    alert("Bitte bestätigen Sie Ihre zweite Telefonnummer!");
    return false;
  } else if (!accepted) {
    alert("Bitte markieren Sie, dass Sie die AGB\nsowie die Hausordnung " +
          "von Vistano akzeptieren.");
    return false;
  } else {
    document.form1.mobiltelefonkosten.disabled = false;
    document.form1.telefonkosten.disabled = false;
    document.form1.tel1_intvorwahl.disabled = false;
    document.form1.tel2_intvorwahl.disabled = false;
    document.form1.submit();
    return true;
  }
}
 

