// Regexps von Astropartner **************************************************

// Name: Erster Buchstabe kein Sonderzeichen oder Leerzeichen 
regex_name=/^[^-'´`?+*#.:,; ][^´`'",;]*$/;
// Empty: empty string or spaces
regex_leer=/^\s*$/;
// well-formed email address: UNIX word letters with . and - etc.
regex_email = /^[\wÖÄÜöäüß][\w\.\-ÖÄÜöäüß]+@[\wÖÄÜöäüß][\w\.\-ÖÄÜöäüß]+\.[a-zA-Z]{2,4}$/;

// Cookie-Verwaltung *********************************************************

function CookieHolen (cookieName) {
  var mein_cookie = document.cookie; 

  if (mein_cookie.indexOf(cookieName) == -1) 
    return null;

  // Wert auslesen. Syntax: "name=wert". Achtung: Wenn kein wert, dann "name" (IE) / "name=" (Firefox)
  var anfang = mein_cookie.indexOf(cookieName) + cookieName.length;

  if (mein_cookie.charAt(anfang) == "=")
    anfang++;   

  var ende = mein_cookie.indexOf(";", anfang);

  if (ende == -1)
    ende = mein_cookie.length;

  var laenge = ende - anfang;
  return decodeURI(mein_cookie.substr(anfang, laenge));
}


function CookieSetzen (cookieName, wert) {
  var lebensdauer = 1000 * 60 * 60 * 24 * 365; // ms * s * m * h * t = 1 Jahr
  var jetzt = new Date();
  var verfall = new Date(jetzt.getTime() + lebensdauer);
  document.cookie = cookieName + "=" + wert + "; expires=" + verfall.toGMTString() + ";";
}

function InputCookieSetzen (inputName) {
  if (document.getElementsByName(inputName)[0])
    CookieSetzen(inputName, document.getElementsByName(inputName)[0].value);
}

function CheckCookieSetzen (inputName) {
  if (document.getElementsByName(inputName)[0])
    CookieSetzen(inputName, document.getElementsByName(inputName)[0].checked);
}

function RadioCookieSetzen (inputName) {
  if (document.getElementsByName(inputName)[0] && document.getElementsByName(inputName)[1]) {
    if(document.getElementsByName(inputName)[0].checked)
      CookieSetzen(inputName, 0);
    else
      CookieSetzen(inputName, 1);
  }
}

function LandCookiesSetzen () {
  inputName = "continent";

  if (document.getElementsByName(inputName)[0] && document.getElementById(document.getElementsByName(inputName)[0].value)) {
    CookieSetzen(inputName, document.getElementsByName(inputName)[0].selectedIndex);
    // Land extrahieren
    var land = document.getElementById(document.getElementsByName(inputName)[0].value);
    CookieSetzen("land", land.selectedIndex);
  }
}

function WerteSpeichern () {
  InputCookieSetzen("vorname");
  InputCookieSetzen("nachname");
  InputCookieSetzen("tag");
  InputCookieSetzen("monat");
  InputCookieSetzen("jahr");
  InputCookieSetzen("uhrzeit");
  InputCookieSetzen("kennung");
  RadioCookieSetzen("geschlecht");
  RadioCookieSetzen("www");
  LandCookiesSetzen();
  InputCookieSetzen("ort_neu");
  InputCookieSetzen("sommerzeit");
  InputCookieSetzen("zeitdifferenz");
  InputCookieSetzen("zeitzone");
  InputCookieSetzen("mailadresse");
  CheckCookieSetzen("newsletter");
}

function InputWertHolen (inputName) {
  if (document.getElementsByName(inputName)[0]) {
    var wert = CookieHolen(inputName);
  
    if (wert)
      document.getElementsByName(inputName)[0].value = wert;
  }
}

function CheckWertHolen (inputName) {
  if (document.getElementsByName(inputName)[0]) {
    var wert = CookieHolen(inputName);

    if (wert) {
      if (wert == "true")
        document.getElementsByName(inputName)[0].checked = "checked";
      else
        document.getElementsByName(inputName)[0].checked = null;
    }
  }
}

function RadioWertHolen (inputName) {
  if (document.getElementsByName(inputName)[0] && document.getElementsByName(inputName)[1]) {
    var wert = CookieHolen(inputName);
  
    if (wert) {
      if(wert == 0)
        document.getElementsByName(inputName)[0].checked = true;
      else
        document.getElementsByName(inputName)[1].checked = true;
    }
  }
}

function LandWerteHolen () {
  inputName = "continent";

  if (document.getElementsByName(inputName)[0]) {
    var contIndex = CookieHolen(inputName);

    if (contIndex && document.getElementById(document.getElementsByName(inputName)[0].value)) {
      document.getElementsByName(inputName)[0].selectedIndex = contIndex;
      // Richtige Länder sichtbar machen (ohne Sommerzeit zu setzen)
      changeContinent(0);
      // Land extrahieren
      var land = document.getElementById(document.getElementsByName(inputName)[0].value);
      land.selectedIndex = CookieHolen("land");
    }
  }
}

function WerteHolen () {
  InputWertHolen("vorname");
  InputWertHolen("nachname");
  InputWertHolen("tag");
  InputWertHolen("monat");
  InputWertHolen("jahr");
  InputWertHolen("uhrzeit");
  InputWertHolen("kennung");
  RadioWertHolen("geschlecht");
  RadioWertHolen("www");
  LandWerteHolen();
  // unbedingt nach Kontinent/Land, da sonst gelöscht:
  InputWertHolen("ort_neu");
  InputWertHolen("sommerzeit");
  InputWertHolen("zeitdifferenz");
  InputWertHolen("zeitzone");
  InputWertHolen("mailadresse");
  CheckWertHolen("newsletter");
  
  if (document.thales.language) {
    if (document.thales.language.value == 'fr') {
      SetNee();
    }
  }
}

function ReferrerPruefen() {
  if (horoskopiframe && horoskopiframe.document.thales.firma) {
    regex_t_online=/t-online\.ch/;
    
    if (regex_t_online.test(document.referrer)) {
      CookieSetzen("firma", "TCH");
      horoskopiframe.document.thales.firma.value = "TCH";
    
    } else {
      var wert = CookieHolen("firma");
      if (wert)
        horoskopiframe.document.thales.firma.value = wert;
    }
    //alert(wert + "Redirect von " + document.referrer + horoskopiframe.document.thales.firma.value);
  }
}

// Funktion SetNee: Setzt nee/ne je nach geschlecht ***************************
function SetNee() {
  if (document.getElementById("ne")) {
    nee = true;
    
    if (document.thales.geschlecht2)
      sex = document.thales.geschlecht2[0].checked;
    else if (document.thales.geschlecht)
      sex = document.thales.geschlecht[0].checked;
    else
      nee = false;

    if (nee) {
      document.getElementById("ne").style.display = 'none';
      document.getElementById("nee").style.display = 'none';
  
      if (sex) {
        document.getElementById("ne").style.display = 'inline';
      } else
        document.getElementById("nee").style.display = 'inline';
    }
  }
}

// ************** SetSummertime FUNCTION *****************************************
// modifiziert im Vgl. zu früher, weil Sommerzeit keine Radiobuttons, sondern hidden text!
// Danach Zeitzone aufrufen!

function SetSummertime() {
  var tag, monat, jahr, zeit, sommerzeit;
  
  if (document.thales.tag2 && document.thales.monat2 && document.thales.jahr2 && document.thales.uhrzeit2) {
    tag        = document.thales.tag2.value,
    monat      = document.thales.monat2.value,
    jahr       = document.thales.jahr2.value,
    zeit       = document.thales.uhrzeit2.value;
  } else {
    tag        = document.thales.tag.value,
    monat      = document.thales.monat.value,
    jahr       = document.thales.jahr.value,
    zeit       = document.thales.uhrzeit.value;
  }
  
  kontinent  = document.thales.continent.value;

  // Zuerst sommerzeit auf 0 setzen
  sommerzeit = 0;

  // Land extrahieren  
  land = document.getElementById(document.thales.continent.value);
  var selected = land.selectedIndex;
  var country_code = land[selected].value.substring(0, 2);

  // Europa: Wie Deutschland
  if (kontinent == "Europe") {
    if (jahr >= 1996) {
      // Ungefähr (alt):
      //if (monat > 3 && monat < 10 || monat == 3 && tag >= 28 || monat == 10 && tag < 28)
      // Genaue Berechnung: letzter Sonntag im März 2 Uhr bis letzter Sonntag im Oktober 3 Uhr
      var i = zeit.indexOf(":") + zeit.indexOf(".") + 1;
      if (i != -1 && zeit.length > 0)
        zeit = zeit.substring(0, i);
      var DatumAkt     = new Date(jahr, monat - 1, tag, zeit, 0, 0);
      var DatumStartSZ = new Date(jahr, 2, 31);
      var DatumStartSZ = new Date(jahr, 2, 31 - DatumStartSZ.getDay(), 3, 0, 0); // 3 Uhr nach SZ
      var DatumEndeSZ  = new Date(jahr, 9, 31);
      var DatumEndeSZ  = new Date(jahr, 9, 31 - DatumEndeSZ.getDay(), 3, 0, 0);
      if (DatumStartSZ <= DatumAkt && DatumAkt < DatumEndeSZ)
        sommerzeit = 1;
    } else if (jahr >= 1980 && jahr <= 1995) {
      if (monat > 3 && monat < 9 || monat == 3 && tag >= 28 || monat == 9 && tag < 28)
        sommerzeit = 1;
    } else if (jahr >= 1946 && jahr <= 1949) {
      if (monat > 4 && monat < 10 || monat == 4 && tag >= 12 || monat == 10 && tag < 10)
        sommerzeit = 1;
    } else if (jahr >= 1943 && jahr <= 1945) {
      if (monat >= 4 && monat <= 9)
        sommerzeit = 1;
    } else if (jahr >= 1940 && jahr <= 1942) {
      if (jahr == 1941 || jahr == 1940 && monat >= 4 || jahr == 1942 && monat <= 10)
        sommerzeit = 1;
    } else if (jahr >= 1916 && jahr <= 1918) {
      if (monat > 4 && monat < 9 || monat == 4 && tag >= 20 || monat == 9 && tag < 21)
        sommerzeit = 1;
    }
  }
  // USA
  else if (kontinent == "USA") {
    if (jahr >= 1987) {
      if (monat > 4 && monat < 10 || monat == 4 && tag >= 4 || monat == 10 && tag < 28)
        sommerzeit = 1;
    } else if (jahr >= 1976 && jahr <= 1986) {
      if (monat > 4 && monat < 10 || monat == 4 && tag >= 28 || monat == 10 && tag < 28)
        sommerzeit = 1;
    } else if (jahr >= 1974 && jahr <= 1975) {
      if (jahr == 1974 || monat < 5)
        sommerzeit = 1;
    } else if (jahr >= 1946 && jahr <= 1973) {
      if (monat > 4 && monat < 10 || monat == 4 && tag >= 28 || monat == 10 && tag < 28)
        sommerzeit = 1;
    } else if (jahr >= 1942 && jahr <= 1945) {
      if (monat > 1 && monat < 10)
        sommerzeit = 1;
    } else if (jahr >= 1918 && jahr <= 1919) {
      if (monat > 3 && monat < 10 || monat == 3 && tag >= 28 || monat == 10 && tag < 28)
        sommerzeit = 1;
    }
  }
  // China
  else if (kontinent == "China" || country_code == "CH") {
    if (jahr >= 1935 && jahr <= 1951) {
      if (monat > 4 && monat < 10)
        sommerzeit = 1;
    } else if (jahr == 1952) {
      if (monat > 2 && monat < 11)
        sommerzeit = 1;
    } else if (jahr >= 1953 && jahr <= 1954) {
      if (monat > 3 && monat < 11)
        sommerzeit = 1;
    } else if (jahr >= 1955 && jahr <= 1956) {
      if (monat > 4 && monat < 10)
        sommerzeit = 1;
    } else if (jahr >= 1957 && jahr <= 1959) {
      if (monat > 3 && monat < 10)
        sommerzeit = 1;
    } else if (jahr >= 1960 && jahr <= 1961) {
      if (monat > 5 && monat < 10)
        sommerzeit = 1;
    } else if (jahr >= 1974 && jahr <= 1975) {
      if (monat > 3 && monat < 11)
        sommerzeit = 1;
    } else if (jahr == 1979) {
      if (monat > 6 && monat < 10)
        sommerzeit = 1;
    } else if (jahr == 1986) {
      if (monat > 4 && monat < 9 || monat == 4 && tag >= 13 || monat == 9 && tag < 14)
        sommerzeit = 1;
    } else if (jahr == 1987) {
      if (monat > 4 && monat < 9 || monat == 4 && tag >= 12 || monat == 9 && tag < 13)
        sommerzeit = 1;
    } else if (jahr == 1988) {
      if (monat > 4 && monat < 9 || monat == 4 && tag >= 10 || monat == 9 && tag < 11)
        sommerzeit = 1;
    } else if (jahr == 1989) {
      if (monat > 4 && monat < 9 || monat == 4 && tag >= 16 || monat == 9 && tag < 17)
        sommerzeit = 1;
    } else if (jahr == 1990) {
      if (monat > 4 && monat < 9 || monat == 4 && tag >= 15 || monat == 9 && tag < 16)
        sommerzeit = 1;
    } else if (jahr == 1991) {
      if (monat > 4 && monat < 9 || monat == 4 && tag >= 14 || monat == 9 && tag < 15)
        sommerzeit = 1;
    }
  }
  // Russland, Australien, Neuseeland, Kanada, Iran: Wie Europa, aber erst ab 1986
  else if (kontinent == "Russia" || country_code == "AS" || country_code == "NZ"
           || country_code == "CA" || country_code == "IR") {
    if (jahr >= 1996) {
      if (monat > 3 && monat < 10 || monat == 3 && tag >= 28 || monat == 10 && tag < 28)
        sommerzeit = 1;
    } else if (jahr >= 1986 && jahr <= 1995) {
      if (monat > 3 && monat < 9 || monat == 3 && tag >= 28 || monat == 9 && tag < 28)
        sommerzeit = 1;
    }
  }

  // Jetzt Feld setzen
  if (document.thales.sommerzeit2) {
    document.thales.sommerzeit2.value = sommerzeit;
  } else {
    document.thales.sommerzeit.value = sommerzeit;
  }

  // Nun noch Zeitzone aufrufen, weil Sommerzeit mit eingearbeitet wird!
  Zeitzone();
}


// Andere Zeitzone eingegeben:
function Zeitzone() {
  if (document.thales.zeitdifferenz2 && document.thales.zeitzone2 && document.thales.sommerzeit2)
    document.thales.zeitdifferenz2.value =
      - document.thales.zeitzone2.value - document.thales.sommerzeit2.value;
  else
    document.thales.zeitdifferenz.value =
      - document.thales.zeitzone.value - document.thales.sommerzeit.value;
}


function istLeer(string) {
  return (string.length == 0 || string == "null");
}

function istKeinName(string) {
  return (!regex_name.test(string)); // von Astropartner
}

function istKeineZahl(string) {
  var i, ret;
  ret = istLeer(string);
  if (ret) return ret;
  for (i=0; i<string.length; i++) {
    ret = (string.charAt(i) == "1");
    if (i==0) ret = (ret || string.charAt(i) == "-");
    ret = (ret || string.charAt(i) == "2");
    ret = (ret || string.charAt(i) == "3");
    ret = (ret || string.charAt(i) == "4");
    ret = (ret || string.charAt(i) == "5");
    ret = (ret || string.charAt(i) == "6");
    ret = (ret || string.charAt(i) == "7");
    ret = (ret || string.charAt(i) == "8");
    ret = (ret || string.charAt(i) == "9");
    ret = (ret || string.charAt(i) == "0");
    ret = (ret || string.charAt(i) == ".");
    if (!ret) return !ret;
  }
  // Zwei Punkte drin?
  if (string.indexOf(".") != string.lastIndexOf(".")) return 1;
  return !ret;
}


function changeContinent(withCheckCountry) {
  // Default-Argument: 1, also mit Check (bei Cookies ohne!)
  // unelegant: withCheckCountry = (typeof(withCheckCountry) == 'undefined') ? withCheckCountry : 1;
  withCheckCountry = withCheckCountry || 1;
  
  // Weil Europe manchmal Dummy-Element, auch America rein (also einfach 2 Elemente):
  if (document.getElementById && document.getElementById('Europe') && document.getElementById('America')) {
    document.getElementById('Europe').style.display = 'none';
    if (document.getElementById('China'))
      document.getElementById('China').style.display = 'none';
    document.getElementById('Africa').style.display = 'none';
    document.getElementById('America').style.display = 'none';
    document.getElementById('Asia').style.display = 'none';
    document.getElementById('USA').style.display = 'none';
    document.getElementById('Australia').style.display = 'none';
    document.getElementById('Russia').style.display = 'none';
    document.getElementById(document.thales.continent.value).style.display = 'inline';
  }
  // Nun auch Zeitzone vom neuen Defaultland übernehmen!
  if (withCheckCountry)
    CheckCountry();

  land.focus();
}


function CheckCountry() {
  // Alles OK: Zeitzone übernehmen
  if (document.getElementById(document.thales.continent.value)) {
    land = document.getElementById(document.thales.continent.value);
  
    if (land.selectedIndex) {
      var selected = land.selectedIndex;
      var country_code = land[selected].value;
      zone = country_code.substring(2, country_code.length);
      
      if (document.thales.zeitzone2)
        document.thales.zeitzone2.value = zone * 1; // Mit "*" in Zahl umwandeln!!!
      else
        document.thales.zeitzone.value = zone * 1; // Mit "*" in Zahl umwandeln!!!
        
      // Und totale Zeitzone auf Hidden Field setzen (wird leider so nicht getriggert!)
      SetSummertime();
      document.thales.ort_neu.value = "";
    }
  }
}

// Beim Laden dieses Files Meldungen für Sprachen initialisieren:
var meldung = new Array();
meldung[0] = new Object();
meldung[0]["de"] = "Geben Sie bitte mindestens den ersten Buchstaben\n\ndes gewünschten Orts ein!";
meldung[0]["en"] = "Please give a minimum of the first letter\n\nof the desired location!";
meldung[0]["cn"] = "ÇëÖÁÉÙ¸ø³öËùÐèµØµãµÄµÚÒ»¸ö×ÖÄ¸£¡";
meldung[1] = new Object();
meldung[1]["de"] = "Geben Sie bitte einen Vornamen ohne zu spezielle Zeichen ein!";
meldung[1]["en"] = "Please enter your first name without too special characters.";
meldung[1]["cn"] = "ÇëÊäÈëÄúµÄÐÕÊÏ¡£";
meldung[2] = new Object();
meldung[2]["de"] = "Geben Sie bitte einen Nachnamen ohne zu spezielle Zeichen ein!";
meldung[2]["en"] = "Please enter your last name without too special characters.";
meldung[2]["cn"] = "ÇëÊäÈëÄúµÄÃû×Ö¡£";
meldung[3] = new Object();
meldung[3]["de"] = "Geben Sie den Tag bitte als gültige Zahl ein!";
meldung[3]["en"] = "Please enter the day as a valid number.";
meldung[3]["cn"] = "ÇëÊäÈëÓÐÐ§µÄÈÕÆÚ¡£";
meldung[4] = new Object();
meldung[4]["de"] = "Geben Sie den Monat bitte als gültige Zahl ein!";
meldung[4]["en"] = "Please enter the month as a valid number.";
meldung[4]["cn"] = "ÇëÊäÈëÓÐÐ§µÄÔÂ·Ý¡£";
meldung[5] = new Object();
meldung[5]["de"] = "Geben Sie die Jahreszahl bitte im Format JJJJ ein!\n"
                    + "Jahre vor 1000 sind nicht zulässig.";
meldung[5]["en"] = "Please enter the year in format YYYY.\n"
                    + "Years prior to 1000 are not admissible.";
meldung[5]["cn"] = "ÇëÒÔ YYYY µÄ¸ñÊ½ÊäÈëÄê·Ý¡£\n"
                    + "¹«Ôª1000ÄêÒÔÇ°ÊÇ²»¿É½ÓÊÜµÄ¡£";
meldung[6] = new Object();
meldung[6]["de"] = "Geben Sie die Uhrzeit bitte im Format H.MM oder H:MM ein!";
meldung[6]["en"] = "Please enter the time in format H.MM or H:MM.";
meldung[6]["cn"] = "ÇëÒÔ H.MM »òÕß H:MM µÄ¸ñÊ½ÊäÈëÊ±¼ä¡£";
meldung[7] = new Object();
meldung[7]["de"] = "Die Uhrzeit muss zwischen 0 und 24 liegen!";
meldung[7]["en"] = "The time must lie between 0 and 24.";
meldung[7]["cn"] = "Ê±¼ä±ØÐëÊÇÔÚ0ºÍ24Ð¡Ê±Ö®¼äµÄ¡£";
meldung[8] = new Object();
meldung[8]["de"] = "Geben Sie bitte das Geschlecht an!";
meldung[8]["en"] = "Please specify the gender.";
meldung[8]["cn"] = "ÇëÖ¸¶¨ÄúµÄÐÔ±ð¡£";
meldung[9] = new Object();
meldung[9]["de"] = "Geben Sie bitte die Version an!";
meldung[9]["en"] = "Pelase enter the version.";
meldung[9]["cn"] = "ÇëÊäÈëÏëÒªµÄ°æ±¾¡£";
meldung[10] = new Object();
meldung[10]["de"] = "Die Emailadresse entspricht nicht dem Standard für Emailadressen.";
meldung[10]["en"] = "The email address is not well-formed.";
meldung[10]["cn"] = "The email address is not well-formed.";

meldung[0]["fr"] = "Veuillez SVP saisir au moins la première lettre\nde la ville souhaitée !"; 
meldung[1]["fr"] = "Veuillez SVP saisir un prénom\nsans caractères trop spéciaux !"; 
meldung[2]["fr"] = "Veuillez SVP saisir un nom de famille\nsans caractères trop spéciaux !"; 
meldung[3]["fr"] = "Veuillez SVP saisir le jour avec un chiffre valable !"; 
meldung[4]["fr"] = "Veuillez SVP saisir le mois avec un chiffre valable !"; 
meldung[5]["fr"] = "Veuillez SVP saisir l’année au format JJJJ !\n" 
                    + "Les années antérieures à 1000 ne seront pas acceptées."; 
meldung[6]["fr"] = "Veuillez SVP saisir l’heure au format H.MM ou H:MM !"; 
meldung[7]["fr"] = "L’heure doit se situer entre 0 et 24 !"; 
meldung[8]["fr"] = "Veuillez SVP indiquer le sexe !"; 
meldung[9]["fr"] = "Veuillez SVP indiquer la version !";
meldung[10]["fr"] = "The email address is not well-formed.";

function CheckFields() {
  var vorname, nachname, tag, monat, jahr, zeit;
  
  if (document.thales.tag2 && document.thales.monat2 && document.thales.jahr2 && document.thales.uhrzeit2) {
    vorname    = document.thales.vorname2.value,
    nachname   = document.thales.nachname2.value,
    tag        = document.thales.tag2.value,
    monat      = document.thales.monat2.value,
    jahr       = document.thales.jahr2.value,
    zeit       = document.thales.uhrzeit2.value;

  } else {
    vorname    = document.thales.vorname.value,
    nachname   = document.thales.nachname.value,
    tag        = document.thales.tag.value,
    monat      = document.thales.monat.value,
    jahr       = document.thales.jahr.value,
    zeit       = document.thales.uhrzeit.value;
  }

  if (document.thales.ort_neu.value == "") {
    alert(meldung[0][document.thales.language.value]);
    return false;
  }
  //}
  // Vorname ok?
  if (istKeinName(vorname)) {
    alert(meldung[1][document.thales.language.value]);
    return false;
  }
  // Name ok?
  if (istKeinName(nachname)) {
    alert(meldung[2][document.thales.language.value]);
    return false;
  }
  // Tag ok?
  if (istKeineZahl(tag) || tag > 31 || tag < 1) {
    alert(meldung[3][document.thales.language.value]);
    return false;
  }
  // Monat ok?
  if (istKeineZahl(monat) || monat > 12 || monat < 1) {
    alert(meldung[4][document.thales.language.value]);
    return false;
  }
  // Jahreszahl ok?
  if (istKeineZahl(jahr) || jahr < 1000) {
    alert(meldung[5][document.thales.language.value]);
    return false;
  }
  // Zeit im Format x:xx wird zu x.xx:
  i = zeit.indexOf(":");
  if (i != -1 && zeit.length > 0) {
    zeit = zeit.substring(0,i) + "." + zeit.substring(i+1,zeit.length)
    if (document.thales.uhrzeit2)
      document.thales.uhrzeit2.value = zeit;
    else
      document.thales.uhrzeit.value = zeit;
  }
  // Zeit eine Zahl?
  if (istKeineZahl(zeit)) {
    alert(meldung[6][document.thales.language.value]);
    return false;
  }
  // Zeit zwischen 0 und 24?
  if (zeit < 0 || zeit >= 24) {
    alert(meldung[7][document.thales.language.value]);
    return false;
  }
  typ = document.thales.typ.value;
  
  // ********* BESTIMMTE FELDER NUR FüR BESTIMMTE HOROSKOPTYPEN ***************************************
  // Falls Geschlecht nötig: ok?
  if (document.thales.geschlecht2) {
    if (document.thales.geschlecht2.value == null) {
      if (document.thales.geschlecht2[0].checked != true && document.thales.geschlecht2[1].checked != true) {
        alert(meldung[8][document.thales.language.value]);
        return false;
      }
    }
  }
  if (document.thales.geschlecht) {
    if (document.thales.geschlecht.value == null) {
      if (document.thales.geschlecht[0].checked != true && document.thales.geschlecht[1].checked != true) {
        alert(meldung[8][document.thales.language.value]);
        return false;
      }
    }
  }
  // Falls Versionsangabe nötig: ok?
  if (document.thales.www) {
    if (document.thales.www.value == null) {
      if (document.thales.www[0].checked != true && document.thales.www[1].checked != true) {
        alert(meldung[9][document.thales.language.value]);
        return false;
      }
    }
  }
  // Falls Startdatum nötig: ok?
  if (document.thales.starttag) {
    // Tag ok?
    if (istKeineZahl(document.thales.starttag.value)) {
      alert(meldung[3][document.thales.language.value]);
      return false;
    }
    // Monat ok?
    if (istKeineZahl(document.thales.startmonat.value)) {
      alert(meldung[4][document.thales.language.value]);
      return false;
    }
    // Jahreszahl ok?
    if (istKeineZahl(document.thales.startjahr.value)
        || document.thales.startjahr.value<1000)
    {
      alert(meldung[5][document.thales.language.value]);
      return false;
    }
  }
  // Falls Email angegeben: Nur auf Sonderzeichen testen!!!
  if (document.thales.mailadresse) {
    if (!istLeer(document.thales.mailadresse.value) &&
        !regex_name.test(document.thales.mailadresse.value))
    {
      alert(meldung[10][document.thales.language.value]);
      return false;
    }
  }
  
  // Bei Mondhoroskop haben Datum etc. andere Bedeutung!
  if (document.getElementsByName("typ")[0].value != "mond")
    WerteSpeichern();
    
  return true;
}


// Für Flirt-Horoskop
function CheckInput() {
  if (!CheckFields())
    return false;
  else
    document.thales.submit();
}  


function CheckAndOpen(fenstername) {
  // Default-Argument: 'Horoskopausgabe'
  // unelegant: fenstername = (typeof(fenstername) == 'undefined') ? fenstername : 1;
  fenstername = fenstername || 'Horoskopausgabe';

  if (!CheckFields())
    return false;
  else {
    fenster = window.open('about:blank', fenstername,
      'width=710,height=570,scrollbars=yes,status=yes,resizable=yes,menubar=yes,toolbar=yes');
    document.thales.submit();
    fenster.focus();
  }
}  
