fields = new Array();

fields[0] = Array(
	'Name',
	1,
	'.*',
	'text');
fields[1] = Array(
	'Vorname',
	1,
	'.*',
	'text');
fields[2] = Array(
	'email',
	1,
	'^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$',
	'text');
fields[3] = Array(
	'Mitteilung',
	1,
	'.*',
	'text');



function checkFields() {
	var isOk = true;

	for (var field in fields) {
		var type = fields[field][3];
                var name = fields[field][0];

		if (type == 'text' || type == 'file' || type == 'password' || type == 'textarea') {

			value = document.getElementById(name).value;

			if (value == "" && isRequiredNorm(fields[field][1], value)) {
				isOk = false;
				document.getElementById(name).style.border = "red 1px solid";
			} else if (value != "" && !matchType(fields[field][2], value)) {
				isOk = false;
				document.getElementById(name).style.border = "red 1px solid";
			} else {
				document.getElementById(name).style.borderColor = '';
			}
		} else if (type == 'checkbox') {
			if (!isRequiredCheckbox(fields[field][1], field)) {
				isOk = false;
			}
		} else if (type == 'checkboxGroup') {
			if (!isRequiredCheckBoxGroup(fields[field][1], field)) {
				isOk = false;
			}
		} else if (type == 'radio') {
			if (!isRequiredRadio(fields[field][1], field)) {
				isOk = false;
			}
		}
	}

	if (!isOk) {
		document.getElementById('contactFormError').style.display = "block";
	}
	return isOk;
}
function isRequiredNorm(required, value) {
	if (required == 1) {
		if (value == "") {
			return true;
		}
	}
	return false;
}
function matchType(pattern, value) {
	var reg = new RegExp(pattern);
	if (value.match(reg)) {
		return true;
	}
	return false;
}
function isRequiredCheckbox(required, field) {
	if (required == 1) {
		if (!document.getElementById('contactFormField_' + field)[0].checked) {
			document.getElementById('contactFormField_' + field)[0].style.border = "red 1px solid";
			return false;
		}
	}
	document.getElementById('contactFormField_' + field)[0].style.borderColor = '';

	return true;
}
function isRequiredCheckBoxGroup(required, field) {
	if (required == true) {
		var boxes = document.getElementById('contactFormField_' + field + '[]');
		var checked = false;
		for (var i = 0; i < boxes.length; i++) {
 			if (boxes[i].checked) {
				checked = true;
			}
		}
		if (checked) {
			setListBorder('contactFormField_' + field + '[]', false);
			return true;
		} else {
			setListBorder('contactFormField_' + field + '[]', '1px red solid');
			return false;
		}
	} else {
		return true;
	}
}
function isRequiredRadio(required, field) {
	if (required == 1) {
		var buttons = document.getElementById('contactFormField_' + field);
		var checked = false;
		for (var i = 0; i < buttons.length; i++) {
			if (buttons[i].checked) {
				checked = true;
			}
		}
		if (checked) {
			setListBorder('contactFormField_' + field, false);
			return true;
		} else {
			setListBorder('contactFormField_' + field, '1px red solid');
			return false;
		}
	} else {
		return true;
	}
}
function setListBorder(field, borderColor) {
	var boxes = document.getElementById(field);
	for (var i = 0; i < boxes.length; i++) {
		if (borderColor) {
			boxes[i].style.border = borderColor;
		} else {
			boxes[i].style.borderColor = '';
		}
	}
}
