var Formulartyp;

function falscheZahl(eString, laengeMax, wertMin, wertMax) {
	rueckgabeWert = false;
	while(eString.substring(0,1) == " ") { eString = eString.substring(1) }
	while(eString.substring(eString.length - 1) == " ") { eString = eString.substring(0,eString.length - 1)	}
	for(i = 0; i < eString.length; i++) {
		if(eString.substring(i,i+1) <= "9") {
			if(eString.substring(i,i+1) >= "0") {
			} else { rueckgabeWert = true }
		} else { rueckgabeWert = true }
	}
	if(eString == "") { rueckgabeWert = true }
	if(eString.length > laengeMax) { rueckgabeWert = true }
	if(eString < wertMin) {	rueckgabeWert = true	}
	if(eString > wertMax) {	rueckgabeWert = true	}
	return rueckgabeWert;
}

function invalidDatum(theForm) {
	var monat = -1;
	var tag = -1;
	var jahr = -1;
	for (var i = 1;  i < 13;  i++) {
		if (theForm.Monat[i].selected) { monat = i }
	}
	if (monat == -1) { return (true) }
	for (var j = 1;  j < 32;  j++) {
		if (theForm.Tag[j].selected) { tag = j }
	}
	if (tag == -1) { return (true) }
	for (var k = 1; k< 3;  k++) {
		if (theForm.Jahr[k].selected) { jahr = k }
	}
	if (jahr == -1) { return (true) }

	// Februar
	if ((tag >= 29) && (monat == 2)) { return (true) }
	// Apr, Jun, Sep, Nov
	if ((tag == 31) && ((monat == 4) || (monat == 6) || (monat ==9) || (monat == 11))) { return (true) }

	heute = new Date();

	termin = new Date(theForm.Jahr[jahr].value, theForm.Monat[monat].value-1, theForm.Tag[tag].value);
	if (heute >= termin) { return (true) } 

	// alles ok
	return(false)
}

function noAngebotselected(theForm) {
	if ( theForm.Laser.checked || theForm.Tintendrucker.checked || theForm.Matrixdrucker.checked ||
	theForm.Zeilendrucker.checked || theForm.Farbdrucker.checked || theForm.Etiketten.checked ||
	theForm.Toner.checked || theForm.Tinte.checked || theForm.Farbband.checked )
	{ return(false) }
	return(true);
}

function noBeratungselected(theForm) {
	if ( theForm.Laser.checked || theForm.Tintendrucker.checked || theForm.Matrixdrucker.checked ||
	theForm.Zeilendrucker.checked || theForm.Farbdrucker.checked || theForm.Etiketten.checked ||
	theForm.Verbrauchsmaterialien.checked || theForm.Sonstiges.checked)
	{ return(false) }
	return(true);
}

function setBeratung() {
	Formulartyp = "Beratung";
}

function setAngebot() {
	Formulartyp = "Angebot";
}

// *********************************
function FormularPruefung(theForm) {
// *********************************

if (Formulartyp == "Beratung") {
	if (noBeratungselected(theForm)) {
		alert("Was können wir für Sie tun?");
		theForm.Laser.focus();
		return(false);
	}
	if (theForm.Themen.value == "") {
		alert("Geben Sie uns bitte einige Informationen über Ihren erwartete Druck-Anwendung.");
		theForm.Themen.focus();
		return (false);
  	}
	if (invalidDatum(theForm)) {
		alert ("Bitte geben Sie uns Ihren zukünftigen Wunschtermin an.");
		theForm.Tag.focus();
		return (false);
	}  
} // Ende Beratungsspezifische Abfragen

if (Formulartyp == "Angebot") {
	if (noAngebotselected(theForm)) {
		alert("Was können wir für Sie tun?");
		theForm.Laser.focus();
		return(false);
	}
	if (theForm.Laser.checked) {
		var radioSelected = false;
		for (var i = 0; i < theForm.LaserGeschwindigkeit.length; i++) {
			if (theForm.LaserGeschwindigkeit[i].checked) { radioSelected = true }
		}
	        if (!radioSelected) {
			alert("Bitte geben Sie die gewünschte Geschwindigkeit des Druckers an.");
			theForm.LaserGeschwindigkeit[0].focus();
			return (false);
        	}
	}
	if (theForm.Matrixdrucker.checked) {
		var radioSelected = false;
		for (var i = 0; i < theForm.MatrixGeschwindigkeit.length; i++) {
			if (theForm.MatrixGeschwindigkeit[i].checked) { radioSelected = true }
		}
		if (!radioSelected) {
			alert("Bitte geben Sie die gewünschte Geschwindigkeit des Druckers an.");
			theForm.MatrixGeschwindigkeit[0].focus();
			return (false);
		}
	}
	if (theForm.Zeilendrucker.checked) {
		var radioSelected = false;
		for (var i = 0; i < theForm.ZeilenGeschwindigkeit.length; i++) {
			if (theForm.ZeilenGeschwindigkeit[i].checked) { radioSelected = true }
		}
	        if (!radioSelected) {
			alert("Bitte geben Sie die gewünschte Geschwindigkeit des Druckers an.");
			theForm.ZeilenGeschwindigkeit[0].focus();
			return (false);
		}
	}
	if (theForm.Farbdrucker.checked) {
		var radioSelected = false;
		for (var i = 0; i < theForm.FarbeFormat.length; i++) {
			if (theForm.FarbeFormat[i].checked) { radioSelected = true }
		}
		if (!radioSelected) {
			alert("Bitte geben Sie das gewünschte Seitenformat an.");
			theForm.FarbeFormat[0].focus();
			return (false);
		}
	}
	if (theForm.Tintendrucker.checked) {
		var radioSelected = false;
		for (var i = 0; i < theForm.TinteFormat.length; i++) {
			if (theForm.TinteFormat[i].checked) { radioSelected = true }
		}
		if (!radioSelected) {
			alert("Bitte geben Sie das gewünschte Seitenformat an.");
			theForm.TinteFormat[0].focus();
			return (false);
		}
	}
	if (theForm.Etiketten.checked) {
		var radioSelected = false;
		for (var i = 0; i < theForm.EtiketteFormat.length; i++) {
			if (theForm.EtiketteFormat[i].checked) { radioSelected = true }
		}
		if (!radioSelected) {
			alert("Bitte geben Sie die gewünschte Etikettengröße an.");
			theForm.EtiketteFormat[0].focus();
			return (false);
		}
	}
	if (theForm.Toner.checked) {
		if (theForm.TonerHersteller.selectedIndex <= 0) {
			alert("Bitte wählen Sie einen Hersteller aus.");
			theForm.TonerHersteller.focus();
			return (false);
		}
		if (theForm.TonerModell.value == "") {
			alert("Bitte geben Sie den Modellnamen an.");
			theForm.TonerModell.focus();
			return (false);
		}
		if (theForm.TonerAnzahl.value == "" ||  falscheZahl(theForm.TonerAnzahl.value,4,0,9999)) {
			alert("Bitte geben Sie die gewünschte Stückzahl an.");
			theForm.TonerAnzahl.focus();
			return (false);
		}
	}
	if (theForm.Tinte.checked) {
		if (theForm.TinteHersteller.selectedIndex <= 0) {
			alert("Bitte wählen Sie einen Hersteller aus.");
			theForm.TinteHersteller.focus();
			return (false);
		}
		if (theForm.TinteModell.value == "") {
			alert("Bitte geben Sie den Modellnamen an.");
			theForm.TinteModell.focus();
			return (false);
		}
		if (theForm.TinteAnzahl.value == "" || falscheZahl(theForm.TinteAnzahl.value,4,0,9999)) {
			alert("Bitte geben Sie die gewünschte Stückzahl an.");
			theForm.TinteAnzahl.focus();
			return (false);
		}
	}
	if (theForm.Farbband.checked) {
		if (theForm.FarbbandHersteller.selectedIndex <= 0) {
			alert("Bitte wählen Sie einen Hersteller aus.");
			theForm.FarbbandHersteller.focus();
			return (false);
		}
		if (theForm.FarbbandModell.value == "") {
			alert("Bitte geben Sie den Modellnamen an.");
			theForm.FarbbandModell.focus();
			return (false);
		}
		if (theForm.FarbbandAnzahl.value == "" || falscheZahl(theForm.FarbbandAnzahl.value,4,0,9999)) {
			alert("Bitte geben Sie die gewünschte Stückzahl an.");
			theForm.FarbbandAnzahl.focus();
			return (false);
		}
	}
	if (theForm.DruckLeistung.value != "") {
		if (falscheZahl(theForm.DruckLeistung.value,8,0,99999999)) {
			alert("Bitte geben Sie die erwartete Druckleistung in Ziffern an.");
			theForm.DruckLeistung.focus();
			return(false);
		}
	}
} // Ende Angebotsspezifische Abfragen

if (theForm.Firma.value == "") {
	alert("Geben Sie uns den Namen Ihres Unternehmens bekannt.");
	theForm.Firma.focus();
	return (false);
}
if (theForm.Ansprechpartner.value == "") {
	alert("Wir benötigen einen Ansprechpartner für eventuelle Rückfragen.");
	theForm.Ansprechpartner.focus();
	return (false);
}
if (theForm.Strasse.value == "") {
	alert("Ohne Angabe der Strasse ist Ihre Adresse unvollständig.");
	theForm.Strasse.focus();
	return (false);
}
if (theForm.PLZ.value == "" || falscheZahl(theForm.PLZ.value,5,1000,99999 )) {
	alert("Ohne Angabe einer Postleitzahl z.B. 4020 für Linz ist Ihre Adresse unvollständig. Bitte maximal 5 Ziffern eingeben.");
	theForm.PLZ.focus();
	return (false);
}
if (theForm.Land.selectedIndex < 0) {
	alert("Ohne Angabe eines Länderangabe Ihre Adresse unvollständig.");
	theForm.Land.focus();
	return (false);
}
if (theForm.Ort.value == "") {
	alert("Ohne Ortsangabe ist Ihre Adresse unvollständig.");
	theForm.Ort.focus();
	return (false);
}
if (theForm.Vorwahl.value == "" || falscheZahl(theForm.Vorwahl.value,5,0,9999)) {
	alert("Wir benötigen Ihre Telefonnummer für eventuelle Rückfragen. Bitte geben Sie nur Ziffern ein.");
	theForm.Vorwahl.focus();
	return (false);
} 
if (theForm.Nummer.value == "" || falscheZahl(theForm.Nummer.value,20,0,99999999999999999999)) {
	alert("Wir benötigen Ihre Telefonnummer für eventuelle Rückfragen. Bitte geben Sie nur Ziffern ein.");
	theForm.Nummer.focus();
	return (false);
}
if ((theForm.EMail.value == "") || (theForm.EMail.value.indexOf('@')=='-1') || (theForm.EMail.value.indexOf('.')=='-1')) {
	alert("Bitte geben Sie eine gültige E-Mail-Adresse an.");
	theForm.EMail.focus();
	return (false);
} else {
	return (true);
}
} // end function FormularPruefung
