function validate(f){
	var validators = new Array();
	validators['default'] = function(fld){return true};
	validators['email'] = function(fld){var expr = /^[a-z0-9\.\-_]+@[a-z0-9\.\-_]+\.[a-z]{2,}$/; return expr.test(fld.value)};
	validators['integer'] = function(fld){var expr = /^[0-9]+$/; return expr.test(fld.value)};
	validators['number'] = function(fld){var expr = /^-?[0-9]+([\.,][0-9]+)?$/; var val=fld.value.replace(',','.'); if(expr.test(val)){fld.value=val; return true}else return false;};
	validators['phone'] = function(fld){var expr = /^[0-9\+ \(\)]+$/; return expr.test(fld.value)};
	var fail = function(elm, msg){alert(msg); Field.activate(elm); return false;};
	var elms = f.elements;
	var radios = new Array();
	for(index=0;index<elms.length;index++){
		var elm = elms[index];
		if(!elm.disabled){
			if(elm.type != 'radio'){
				//if((elm.type != 'checkbox') && (elm.type != 'submit')){
				if(['checkbox','submit'].indexOf(elm.type) == -1){
					if(elm.attributes['validation']){
						var parts = elm.attributes['validation'].value.split(':');
						elm.plainName = parts[0];
						elm.required = (parts[1]=='required');
						elm.validator = (['optional','required'].indexOf(parts[1]) > -1) ? ((parts.length > 2)? parts[2] : 'default') : parts[1];
						if(elm.type == 'select-one'){
							if(elm.required && (elm.selectedIndex == 0)) return fail(elm, 'Du skal vælge '+ elm.plainName);
						} else {
							if(elm.required && (elm.value == '')) return fail(elm, 'Du skal udfylde feltet '+ elm.plainName);
							if(elm.value!=''){
								if(validators[elm.validator]){
									if(!validators[elm.validator](elm)) return fail(elm, elm.plainName + ' er ikke udfyldt korrekt');
								} else {
									var expr = new RegExp(elm.validator);
									if(!expr.test(elm.value)) return fail(elm, elm.plainName + ' er ikke udfyldt korrekt');
								}
							}
						}
					}
				}
			} else {
				if(radios.indexOf(elm.name) == -1){
					radios[radios.length] = elm.name;
					var flds = Form.getInputs(f, 'radio', elm.name);
					if(flds.all(function(fld, indx){return !fld.checked})) return fail(elm, 'Du skal vælge ' + elm.name);
				}
			}
		}
	}
	return true;
}

