function isEmpty(el)
{
	var value;

	switch (el.type) {
		case 'checkbox':
		case 'xradio':
			value = !(el.checked);
			break;
		// potreba upravit!!!
		case 'select-one':
		case 'select-multiple':
			value = !el.options[el.selectedIndex()];
			break;
		default:
			value = (el.value.replace(' ', '') == '');
			break;
	}

	return value;
}

// nutno upravit i pro select!!!
function getValue(el)
{
	var value = '';

	if (el.length > 1) {
		for (var i = 0; i < el.length; i++) {
			if (el[i].checked) {
				value = el[i].value;
				break;
			}
		}
	} else {
		value = el.value;
	}

	return value;
}

function validateForm(form)
{
	var messages = new Array();
	var required;
	var requiredValue = '';

	if (arguments.length > 1) {
		messages = arguments[1];
	}

	var el = null;
	var err = '';

	for(var i = 0; i < form.elements.length; i++) {
		el = form.elements[i];

		if ( (required = el.getAttribute('required')) != null ) {
			if (required == '0') {
				if (isEmpty(el)) {
					err += ((messages[el.name]) ? messages[el.name] : el.name) + '\n';
				}
			} else {
				requiredValue = el.getAttribute('required_value');
				if ( isEmpty(el) && (getValue(document.getElementsByName(required)) == requiredValue) ) {
					err += ((messages[el.name]) ? messages[el.name] : el.name) + '\n';
				}
			}
		}
	}

	if (err != '') {
		err = messages.errTitle + err;
		alert(err);
		return false;
	} else {
		return true;
	}
}


