/* -------------------------------------------------------------------
*
*	 Diese Methode prüft, ob der Benutzer die beiden Checkboxen für die 
*	 Regeln und die Mehrfachteilnahme bestätigt hat.
*
* -------------------------------------------------------------------*/
function checkAcceptanceRegeln(){
	
		if (document.regeln.regel_akzeptiert.checked)
			document.forms[0].submit();
		else {
			alert("Um die Registrierung abzuschliessen, müssen die angeführten Bedingungen\nakzeptiert werden!");
		}
	
}

function checkModifiedData(){
	
	document.forms[0].submit();
}

function checkAuszahlung(gutscheinpartner_radios, saldo, auszuzahlende_punkte){
	
	
	if ((auszuzahlende_punkte/100) != (Math.ceil(auszuzahlende_punkte/100))){
		
		alert("Die Auszahlung muß einen ganzzahligen Euro-Betrag ergeben!\nBitte geben Sie einen Betrag in 100-er Schritten ein!");
		return;
		
	}
	

	if (saldo < 1000){
		alert("Sie müssen mehr als 1000 Punkte für eine Auszahlung besitzen!");
		return;
		
	}
	
	
	if (auszuzahlende_punkte == "" || auszuzahlende_punkte <= 0){
		alert("Bitte geben Sie die Anzahl der auszuzahlenden Punkte an!");
		return;
	}
	
	errorString = checkRadioButtonsFilled(gutscheinpartner_radios);
	if (errorString != "OK"){
		alert("Bitte wählen Sie einen Gutschein aus!");
	}else {
		
		// Check auf Saldoüberschreitung
		if (saldo < auszuzahlende_punkte)
			alert("Sie können sich max. " + saldo + " Punkte auszahlen lassen!");
		else
			document.forms[0].submit();
	}
	
}

function checkAcceptanceMehrfachteilnahme(){
		
		if (document.regeln.mehrfach_teilnahmeregel_akzeptiert.checked)
			document.forms[0].submit();
		else {
			alert("Um die Registrierung abzuschliessen, müssen die angeführten Bedingungen\nakzeptiert werden!");
		}
	
}


function checkAbteilung(abteilung_radios, abteilung_sonstig){
	
	var errorString = checkRadioButtonsFilled(abteilung_radios);
	
	if (errorString != "OK") {
		
		if (abteilung_sonstig == "")
			alert("Bitte eine Abteilung auswählen!");
		else
			document.forms[0].submit();
	}else
		document.forms[0].submit();
	
}

function checkStellenbeschreibung(stellenbeschreibung_radios, beschreibung_sonstig){
	
	var errorString = checkRadioButtonsFilled(stellenbeschreibung_radios);
	
	if (errorString != "OK") {
		
		if (beschreibung_sonstig == "")
			alert("Bitte eine Beschreibung auswählen!");
		else
			document.forms[0].submit();
	}else
		document.forms[0].submit();
	
}


function checkLeitungsFunktion(leitungsfunktion_radios){
	
	var errorString = checkRadioButtonsFilled(leitungsfunktion_radios);
	
	if (errorString != "OK") {
		alert("Bitte eine Auswahl treffen!");
		
	}else
		document.forms[0].submit();
	
	
}



function checkFreiberuflichTyp(freiberuflichTyp_radios, freiberuf_sonstig){
	
	var errorString = checkRadioButtonsFilled(freiberuflichTyp_radios);
	
	if (errorString != "OK") {
		
		if (freiberuf_sonstig == "")
			alert("Bitte eine Tätigkeit auswählen!");
		else
			document.forms[0].submit();
	}else
		document.forms[0].submit();
	
		
}

function checkUserdaten(username, passwort, passwort_best) {
	
	var errorString = "Folgende Fehler sind aufgetreten:\n";
	var error = false;
	
	if(username.match(/\s/) ) {
      		alert("Bitte keine Leerzeichen eingeben im Benutzernamen!");
            
		      return;
	}
	
	if(passwort.match(/\s/) ) {
      		alert("Bitte keine Leerzeichen eingeben im Passwort!");
            
		      return;
	}
	
	
	
	if (username == ""){
		error = true;
		errorString += "Bitte Benutzername angeben!\n";
	}
	
	if (passwort == ""){
		error = true;
		errorString += "Bitte Passwort angeben!\n";
	}
	if (passwort_best == ""){
		error = true;
		errorString += "Bitte Passwort bestätigen!\n";
	}
	
	if (passwort != passwort_best){
		
		error = true;
		errorString += "Das bestätigte Passwort stimmt nicht überein!\n";
	}
	
	
	if (error == true)
		alert(errorString)
	else
		document.forms[0].submit();
	
		
	
	
}

function checkRadioButtonsFilled(radios){
	
	var errorString = "Folgende Fehler sind aufgetreten:\n";
	var error = false;
	var selection = null;
	
	for (i=0;i< radios.length;i++) {
	 	if (radios[i].checked) {
			selection = radios[i].value;
		}
	}
	
	if (selection == null || selection=="") {
		errorString += "Es wurde keine Auswahl getroffen!\n";
		error=true
	}
	
	if (error == true)
		return errorString;
	else
		return "OK";
	
}

function checkBranchenAuswahl(branche_radios, branche_sonstig){
	
	var errorString = checkRadioButtonsFilled(branche_radios);
	
	if (errorString != "OK") {
		
		if (branche_sonstig == "")
			alert("Bitte ein Branche auswählen!");
		else
			document.forms[0].submit();
	}else
		document.forms[0].submit();
	
	
}

function checkEntscheidungen(e_ausruestung, entscheidung_sonstig){
	
		document.forms[0].submit();
}

function checkBLInternationalHQ(bundesland_radios, international_radios, hq_at_radios){
	
	var errorString1 = checkRadioButtonsFilled(bundesland_radios);
	var errorString2 = checkRadioButtonsFilled(international_radios);
	var errorString3 = checkRadioButtonsFilled(hq_at_radios);
	
	var errorString = "";
	
	if (errorString1 != "OK")
		errorString += "Bitte wählen Sie ein Bundesland aus!\n";
	if (errorString2 != "OK")
		errorString += "Bitte beantworten Sie die Frage nach der Internatiolität des Unternehmens!\n";
	if (errorString3 != "OK")
		errorString += "Bitte beantworten Sie die Frage nach dem Hauptsitz des Unternehmens!\n";
	
	if (errorString == "")
		document.forms[0].submit();
	else 
		alert(errorString);
	
}


function checkGroesse(groesse_radios){
	
	var errorString = checkRadioButtonsFilled(groesse_radios);
	
	if (errorString  != "OK")
		alert("Bitte geben Sie die Unternehmensgröße an!")
	else
		document.forms[0].submit();
	
}


function checkBranchenTyp(branchenTyp_radios){
	
	var errorString = checkRadioButtonsFilled(branchenTyp_radios);
	
	if (errorString  != "OK")
		alert(errorString)
	else
		document.forms[0].submit();
}

function checkBerufstaetigkeit(berufJN_radios){
	
		var error = false
		var errorString = ""
		var beruf = null
		
		if (berufJN_radios == null || berufJN_radios =="" || berufJN_radios.length==0) {
			errorString += "Bitte geben Sie eine Information bezüglich Ihrer Berufstätigkeit an!\n";
			error=true
		}
		
		for (i=0;i< berufJN_radios.length;i++) {
			if (berufJN_radios[i].checked) {
				beruf = berufJN_radios[i].value;
			}
		}
		
		if (beruf == null){
				error=true
				errorString += "Bitte geben Sie eine Information bezüglich Ihrer Berufstätigkeit an!\n";
		}
	
		if(!error)
			document.forms[0].submit();
		else
			alert(errorString)
}

function checkBankdaten(kontonummer, blz, bankname){
	
	var errorString = "Folgende Fehler sind aufgetreten:\n";
	var error = false;
	
	if (kontonummer == null || kontonummer=="") {
		errorString += "Es wurde keine Kontonummer angegeben!\n";
		error=true
	}
	
	if (blz == null || blz=="") {
		errorString += "Es wurde keine Bankleitzahl angegeben!\n";
		error=true
	}
	
	if (bankname == null || bankname=="") {
		errorString += "Es wurde kein Bankname angegeben!\n";
		error=true
	}
	
	
	if (!error)
		document.forms[0].submit();
	else
		alert(errorString);
	
	
	
}


function checkEntscheidungBrancheGroesse(entscheidung_radios, branche_radios, groesse_radios){
	
	var errorString = "Folgende Fehler sind aufgetreten:\n";
	var error = false;
	
	var entscheidung=null;
	var branche =null;
	var groesse = null;
	
	for (i=0;i< entscheidung_radios.length;i++) {
		if (entscheidung_radios[i].checked) {
			entscheidung = entscheidung_radios[i].value;
		}
	}
	
	if (entscheidung == null || entscheidung=="") {
		errorString += "Es wurde kein Entscheidungs-Typ angegeben!\n";
		error=true
	}
	
	for (i=0;i< branche_radios.length;i++) {
		if (branche_radios[i].checked) {
			branche = branche_radios[i].value;
		}
	}
	
	if (branche == null || branche=="") {
		errorString += "Es wurde keine Branche angegeben!\n";
		error=true
	}
	
	
	for (i=0;i< groesse_radios.length;i++) {
		if (groesse_radios[i].checked) {
			groesse = groesse_radios[i].value;
		}
	}
	
	if (groesse == null || groesse =="") {
		errorString += "Es wurde keine Unternehmensgröße angegeben!\n";
		error=true
	}
	
	
	if (!error)
		document.forms[0].submit();
	else
		alert(errorString);
	
	
	
}



function checkFunktionUndUmfeld(typ_radios, leitungsfunktion_radios){
	
	// während Testphase mache keine Checks!
	document.forms[0].submit();
	
	/*var errorString = "Folgende Fehler sind aufgetreten:\n";
	var error = false;
	
	var typ=null;
	var leitungsfunktion =null;
	for (i=0;i< typ_radios.length;i++) {
		if (typ_radios[i].checked) {
			typ = typ_radios[i].value;
		}
	}
	
	if (typ == null || typ=="") {
		errorString += "Es wurde kein Berufstyp angegeben!\n";
		error=true
	}
	
	for (i=0;i< leitungsfunktion_radios.length;i++) {
		if (leitungsfunktion_radios[i].checked) {
			leitungsfunktion = leitungsfunktion_radios[i].value;
		}
	}
	
	if (leitungsfunktion == null || leitungsfunktion=="") {
		errorString += "Es wurde keine Leitungsfunktion angegeben!\n";
		error=true
	}
	
	
	
	if (!error)
		document.forms[0].submit();
	else
		alert(errorString);
	
	*/
}


function checkBerufsstellung(berufstyp_radios){
	
	
	var errorString = "Folgende Fehler sind aufgetreten:\n";
	var error = false;
	var berufstyp = null;
	
	for (i=0;i< berufstyp_radios.length;i++) {
	 	if (berufstyp_radios[i].checked) {
			berufstyp = berufstyp_radios[i].value;
		}
	}
	
	if (berufstyp == null || berufstyp=="") {
		errorString += "Es wurde keine Auswahl getroffen!\n";
		error=true
	}
	
	if (error == true)
		alert(errorString)
	else
		document.forms[0].submit();
	
	
}

function checkAdressData(anrede_radios, titel, name, strasse, plz, ort, landradios, email, gebjahr, land_non_at, firmenname, rechtsform){
	
	
	var errorString = "Folgende Fehler sind aufgetreten:\n";
	var error = false;
	var land=null;
	var anrede=null;
	
	for (i=0;i< anrede_radios.length;i++) {
	 	if (anrede_radios[i].checked) {
		anrede = anrede_radios[i].value;
		}
	}
	
	if (anrede == null || anrede=="") {
		errorString += "Es wurde keine Anrede angegeben!\n";
		error=true
	}
	
	if (titel == null || titel=="") {
		errorString += "Es wurde kein Titel angegeben!\n";
		error=true
	}
	
	if (name == null || name==""){
		errorString += "Es wurde kein Name angegeben!\n";
		error=true
	}
	
	if (strasse == null || strasse=="") {
		errorString += "Es wurde keine Strasse angegeben!\n";
		error=true
	}
	
	if (plz == null || plz=="") {
		errorString += "Es wurde keine PLZ angegeben!\n";
		error=true
	}
	
	if (plz.length > 4) {
		errorString += "Es wurde keine gültige österr. Postleitzahl angegeben!\n";
		error=true
	}
	
	if (ort == null || ort=="") {
		errorString += "Es wurde kein Ort angegeben!\n";
		error=true
	}
	
	for (i=0;i< landradios.length;i++) {
		if (landradios[i].checked) {
			land = landradios[i].value;
		}
	}
	
	if (land == null ) {
		errorString += "Es wurde kein Land angegeben!\n";
		error=true
	}

	// Prüfe den Fall, dass ein "non-AT" Land gewählt wurde. 
	// Wenn ja, muß das non_AT_Textfeld Feld gefüllt sein.
	if (land == "NON-AT"){
		if (land_non_at == null || land_non_at == ""){
			errorString += "Es wurde kein Nicht-Österreichisches Land angegeben!\n";
			error=true
		}
		
	}
	
	
	if (email == null || email=="") {
			errorString += "Es wurde kein Email angegeben!\n";
			error=true
	}

	if (email != "") {
		if (checkEmailPattern(email) == false){
			error = true;
		}
	}
	if (gebjahr == null || gebjahr == ""){
		errorString += "Es wurde kein Geburtsjahr angegeben!\n";
		error=true
		
	}
	
	if (firmenname == null || firmenname == ""){
		errorString += "Es wurde kein Firmenname angegeben!\n";
		error=true
	}
	
	
	
	if (!error)
		document.forms[0].submit();
	else
		alert(errorString);
}

function checkNameUndEmail(name, vorname, email){
	
	var errorString = "Folgende Fehler sind aufgetreten:\n";
	var error = false;
	
	if (name == null || name=="") {
		errorString += "Es wurde kein Nachname angegeben!";
		error=true
	}
		
	if (vorname == null || vorname == ""){
		errorString += "Es wurde kein Vorname angegeben!";
		error=true
	}
	
	if (checkEmailPattern(email) == false){
		error = true;
	}
	
	if (error==true)
		alert(errorString);
	else
		document.forms[0].submit();
}

function checkEmail(emailStr) {
	
	if (checkEmailPattern(emailStr) == true)
		document.forms[0].submit();
	/*else
		alert("Für die Abwicklung Ihrer Bestellung benötigen wir eine korrekte Emailadresse");*/
	
}

/* 1.1.2: Fixed a bug where trailing . in e-mail address was passing
            (the bug is actually in the weak regexp engine of the browser; I
            simplified the regexps to make it work).
   1.1.1: Removed restriction that countries must be preceded by a domain,
            so abc@host.uk is now legal.  However, there's still the 
            restriction that an address must end in a two or three letter
            word.
     1.1: Rewrote most of the function to conform more closely to RFC 822.
     1.0: Original  */
function checkEmailPattern(emailStr){
	
	
/* The following pattern is used to check if the entered e-mail address
   fits the user@domain format.  It also is used to separate the username
   from the domain. */
var emailPat=/^(.+)@(.+)$/
/* The following string represents the pattern for matching all special
   characters.  We don't want to allow special characters in the address. 
   These characters include ( ) < > @ , ; : \ " . [ ]    */
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
/* The following string represents the rangfe of characters allowed in a 
   username or domainname.  It really states which chars aren't allowed. */
var validChars="\[^\\s" + specialChars + "\]"
/* The following pattern applies if the "user" is a quoted string (in
   which case, there are no rules about which characters are allowed
   and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
   is a legal e-mail address. */
var quotedUser="(\"[^\"]*\")"
/* The following pattern applies for domains that are IP addresses,
   rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
   e-mail address. NOTE: The square brackets are required. */
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
/* The following string represents an atom (basically a series of
   non-special characters.) */
var atom=validChars + '+'
/* The following string represents one word in the typical username.
   For example, in john.doe@somewhere.com, john and doe are words.
   Basically, a word is either an atom or quoted string. */
var word="(" + atom + "|" + quotedUser + ")"
// The following pattern describes the structure of the user
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
/* The following pattern describes the structure of a normal symbolic
   domain, as opposed to ipDomainPat, shown above. */
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")


/* Finally, let's start trying to figure out if the supplied address is
   valid. */

/* Begin with the coarse pattern to simply break up user@domain into
   different pieces that are easy to analyze. */
var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
  /* Too many/few @'s or something; basically, this address doesn't
     even fit the general mould of a valid e-mail address. */
	alert("Die Email Adresse scheint inkorrekt zu sein (prüfen Sie @ und .)")
	return false;
}
var user=matchArray[1]
var domain=matchArray[2]

// See if "user" is valid 
if (user.match(userPat)==null) {
    // user is not valid
    alert("Der Benutzername scheint nicht richtig zu sein!");
    return false;
}

/* if the e-mail address is at an IP address (as opposed to a symbolic
   host name) make sure the IP address is valid. */
var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
    // this is an IP address
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	        alert("Ziel IP Adresse ist ungültig!")
					return false;
	    }
    }
    
    
}

// Domain is symbolic name
var domainArray=domain.match(domainPat)
if (domainArray==null) {
	alert("Der Domain-Name scheint ungültig zu sein!")
  return false;   
}

/* domain name seems valid, but now make sure that it ends in a
   three-letter word (like com, edu, gov) or a two-letter word,
   representing country (uk, nl), and that there's a hostname preceding 
   the domain or country. */

/* Now we need to break up the domain to get a count of how many atoms
   it consists of. */
var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 || 
    domArr[domArr.length-1].length>3) {
   // the address must end in a two letter or three letter word.
   alert("Die Adresse muß in einer 3-Zeichen Domain oder in einem 2-Zeichen Ländercode enden!")
   return false;
}

// Make sure there's a host name preceding the domain.
if (len<2) {
   var errStr="Dieser Adresse fehlt der Hostname!"
   alert(errStr)
   return false;
}

// If we've gotten this far, everything's valid!
return true;
}
	
	
	
