function requiredFilled(frm) {

	var i, j, el, add;
	var radio = new Array();
	
	// check elements
	for (i = 0 ; i < frm.elements.length ; i++) {
		el = frm.elements[i];
		if (el.id != "required") {
			continue;
		}
		if ((el.type == "text" || el.type == "textarea") && !el.value) {
			return false;
		}
		if (el.type == "checkbox" && !el.checked) {
			return false;
		}
		if ((el.type == "select-one" || el.type == "select-multiple") && !el.selectedIndex) {
			return false;
		}
		if (el.type == "radio") {
			add = true;
			for (j = 0 ; j < radio.length ; j++) {
				if (radio[j][0] == el.name) {
					if (radio[j][1] == false) {
						radio[j][1] = el.checked;
					}
					add = false;
				}
			}
			if (add) {
				radio[radio.length] = new Array(el.name, el.checked);
			}
		}
	}
	
	// check radio buttons
	for (i = 0 ; i < radio.length ; i++) {
		if (radio[i][1] == false) {
			return false;
		}
	}
	
	// all filled
	return true;
	
}
