
// Wrapper-Funktion zu "document.getElementById"
function loco_getid(strElem) {
	var theElem;
	if (theElem = document.getElementById(strElem)) {
	    return theElem;
	}
	return false;
}

// sorgt dafür, dass in einem Eingabefeld nur Zahlen stehen
function loco_nur_zahlen(strTest) {
	var strRes = '';
	strRes = strRes + strTest;
	if (strRes != '') {
		return strRes.replace(/[^0-9]/g, '');
	}
	return strRes;
}

// überprüft (vereinfacht) auf gültiges Datums-Format TT.MM.JJJJ
function loco_datumsformat(strTest) {
	var res = strTest.match(/\d\d\.\d\d\.\d\d\d\d/);
	if (res) {
	    return true;
	}
	return false;
}

// Hauptfunktion, welche vor dem Absenden des Formulars aufgerufen wird
function loco_checkformular() {
	var theObj = false;
	var theVal = '';
	var errCount = 0;
	var errInfos = [];
	
	// Schritt1: dort wo nur Zahlen stehen sollen/dürfen wird alles weitere entfernt
	for (var i=1; i<6; i++) {
		if (theObj = loco_getid('menge-' + i)) {
		    theObj.value = loco_nur_zahlen(theObj.value);
		}
	}
	if (theObj = loco_getid('kundennr')) {
		theObj.value = loco_nur_zahlen(theObj.value);
	}
	if (theObj = loco_getid('plz')) {
		theObj.value = loco_nur_zahlen(theObj.value);
	}
	if (theObj = loco_getid('liefer_plz')) {
		theObj.value = loco_nur_zahlen(theObj.value);
	}
	
	// Schritt 2: Pflichtfelder der Orden
	for (var i=1; i<6; i++) {
		if (theObj = loco_getid('menge-' + i)) {
		    theVal = theObj.value;
		    if (theVal != '') {
		        theVal = parseInt(theVal);
		        if (theVal < 50) {
		            errInfos[errCount] = 'Orden ' + i + ': Mindestbestellmenge';
		            errCount++;
				}
				theObj = loco_getid('farbe' + i + '1');
				if (theObj.selectedIndex == 0) {
				    errInfos[errCount] = 'Orden ' + i + ': Farbe 1';
				    errCount++;
				}
				theObj = loco_getid('farbe' + i + '2');
				if (theObj.selectedIndex == 0) {
				    errInfos[errCount] = 'Orden ' + i + ': Farbe 2';
				    errCount++;
				}
				theObj = loco_getid('farbe' + i + '3');
				if (theObj.selectedIndex == 0) {
				    errInfos[errCount] = 'Orden ' + i + ': Farbe 3';
				    errCount++;
				}
				theObj = loco_getid('termin' + i);
				if (loco_datumsformat(theObj.value) == false) {
				    errInfos[errCount] = 'Orden ' + i + ': Liefertermin';
				    errCount++;
				}
				theObj = loco_getid('notizen' + i);
				if (theObj.value == '') {
				    errInfos[errCount] = 'Orden ' + i + ': Orden-Text';
				    errCount++;
				}
			}
		}
	}
	
	//Schritt 3: gültige Kundennummer oder Anschrift
	theObj = loco_getid('kundennr');
	if (theObj.value.length != 6) {
	    if (loco_getid('anrede1').checked == false && loco_getid('anrede2').checked == false) {
	        errInfos[errCount] = 'Anschrift: Anrede nicht angegeben';
	        errCount++;
		}
		if (loco_getid('name').value == '') {
		    errInfos[errCount] = 'Anschrift: Name nicht angegeben';
		    errCount++;
		}
		if (loco_getid('firma').value == '') {
		    errInfos[errCount] = 'Anschrift: Firma nicht angegeben';
		    errCount++;
		}
		if (loco_getid('strasse1').value == '') {
		    errInfos[errCount] = 'Anschrift: Strasse nicht angegeben';
		    errCount++;
		}
		if (loco_getid('plz').value == '') {
		    errInfos[errCount] = 'Anschrift: PLZ nicht angegeben';
		    errCount++;
		}
		if (loco_getid('ort').value == '') {
		    errInfos[errCount] = 'Anschrift: Ort nicht angegeben';
		    errCount++;
		}
		if (loco_getid('land').value == '') {
		    errInfos[errCount] = 'Anschrift: Land nicht angegeben';
		    errCount++;
		}
	}
	
	// Schritt 4: Wenn Lieferanschrift, dann die dazugehörigen Pflichtfelder prüfen
	if (loco_getid('liefer_name').value != '' || loco_getid('liefer_firma').value != ''
		|| loco_getid('liefer_strasse1').value != '' || loco_getid('liefer_plz').value != ''
		|| loco_getid('liefer_ort').value != '' || loco_getid('liefer_land').value != '') {
	    if (loco_getid('liefer_anrede1').checked == false && loco_getid('liefer_anrede1').checked == false) {
	        errInfos[errCount] = 'Lieferanschrift: Anrede nicht angegeben';
	        errCount++;
		}
		if (loco_getid('liefer_name').value == '') {
		    errInfos[errCount] = 'Lieferanschrift: Name nicht angegeben';
		    errCount++;
		}
		if (loco_getid('liefer_firma').value == '') {
		    errInfos[errCount] = 'Lieferanschrift: Firma nicht angegeben';
		    errCount++;
		}
		if (loco_getid('liefer_strasse1').value == '') {
		    errInfos[errCount] = 'Lieferanschrift: Strasse nicht angegeben';
		    errCount++;
		}
		if (loco_getid('liefer_plz').value == '') {
		    errInfos[errCount] = 'Lieferanschrift: PLZ nicht angegeben';
		    errCount++;
		}
		if (loco_getid('liefer_ort').value == '') {
		    errInfos[errCount] = 'Lieferanschrift: Ort nicht angegeben';
		    errCount++;
		}
		if (loco_getid('liefer_land').value == '') {
		    errInfos[errCount] = 'Lieferanschrift: Land nicht angegeben';
		    errCount++;
		}
	}
	
	// Schritt 5: falls vorhanden, Fehler ausgeben
	if (errCount > 0) {
	    var errMsg = '';
	    for (var msg in errInfos) {
	        errMsg = errMsg + errInfos[msg] + "\n";
		}
	    alert(errMsg);
	    return false;
	}

	return true;
}


