function formchecker(theForm) {
	var allvalid = true;
	var alertstr = "";
	var num_of_elements = theForm.length;
	var radios = "";
	var checkboxes = "";
	var firstbad = "";

	for (var i=0; i<num_of_elements; i++) {
		var theElement = theForm.elements[i];
		theElement.style.border = '';
		var element_type = theElement.type;
		var element_name = theElement.name;
		var element_value = theElement.value;
		var element_required = (element_name.indexOf ("_required") > 0) ? true : false;

// Muss dieses element geprueft werden?
		if (element_required) {

// Textfelder pruefen...
			if (element_type == "text") {
				if (element_value.length == 0) {
					alertstr += "Prosíme vyplòte pole '" + element_name.replace(/ _required/, '').replace(/_required/, '') + "'.\n\n";
					theElement.style.border = '2px solid red';
					if (!firstbad) firstbad = theElement;
					allvalid = false;
				}
			}

// Mehrzeilige Textfelder pruefen...
			if (element_type == "textarea") {
				if (element_value.length == 0) {
					alertstr += "Prosíme vyplòte pole '" + element_name.replace(/ _required/, '').replace(/_required/, '') + "'.\n\n";
					theElement.style.border = '2px solid red';
					if (!firstbad) firstbad = theElement;
					allvalid = false;
				}
			}

// Dropdown-Menues pruefen...
			if (element_type.indexOf("select") > -1) {
				var index = theElement.selectedIndex;
				if (index <= 0) {
					alertstr += "Prosíme vyplòte volbu '" + element_name.replace(/ _required/, '').replace(/_required/, '') + "'.\n\n";
					theElement.style.border = '2px solid red';
					if (!firstbad) firstbad = theElement;
					allvalid = false;
				}
			}

// Radio-buttons pruefen...
			if (element_type == "radio" ) {
				if (theElement.checked == true) {
					radios += element_name;
				}
			}

// Checkboxen pruefen...
			if (element_type == "checkbox") {
				if (theElement.checked == true) {
					checkboxes += element_name;
				}
			}

// Buttons pruefen...
			if (element_type == "button") {
				// Buttons nicht pruefen - onClick event verwenden, um Functionen aufzurufen.
			}

// Ende des zu pruefenden Bereichs?
		}

 	// .... Ende der Schleife durch die einzelnen Form-Elemente ....
	}

// Erneute Schleife durch Radio-Buttons und Checkboxen fuer die erneute Pruefung
	for (var i=0; i<num_of_elements; i++) {
		var theElement = theForm.elements[i];
		var element_type = theElement.type;
		var element_name = theElement.name;
		var element_required = (element_name.indexOf ("_required") > 0) ? true : false;
		if (element_type == "radio" && element_required && radios.indexOf (element_name) == -1) {
			alertstr += "Prosíme vyplòte volbu '" + element_name.replace(/ _required/, '').replace(/_required/, '') + "'.\n\n";
			radios += element_name;
			allvalid = false;
		}
		if (element_type == "checkbox" && element_required && checkboxes.indexOf (element_name) == -1) {
			alertstr += "Prosíme vyplòte volbu '" + element_name.replace(/ _required/, '').replace(/_required/, '') + "'.\n\n";
			checkboxes += element_name;
			allvalid = false;
		}
	}


// Alle Elemente wurden geprueft - jetzt wird ermittelt, ob das Formular korrekt ausgefuellt wurde oder nicht...
	if (allvalid) {
		return true;
	} else {
	  if (firstbad) firstbad.focus();
		alert (alertstr);
		return false;
	}
}

