
function hasValue(obj){
	var type = obj.type;

	if(!type && obj.length){	//compensate for radio button weirdness
		type=obj[0].type;
	}
	if (type == "text" || type == "textarea" || type == "password" || type == 'file'){
		if (obj.value.length == 0) return false;
		else return true;
	} else if (type == "select" || type == "select-one" || type == "select-multiple"){
		for (i=0; i < obj.length; i++){
			if (obj.options[i].selected)
				return true;
		}
	   	return false;
	} else if (type == "checkbox"){
		if (obj.checked) return true;
		else return false;
	} else if (type == "radio"){
		for (i=0; i < obj.length; i++){
			if (obj[i].checked) return true;
		}
	   	return false;
	}

	return true;
//alert("input type not handled in hasValue(), type = "+type);
}

function checkRequired(){
	var required = document.forms[0].elements['required'];
	if(!required)	return true;
	if(required.value==null){	//multiple vals for this obj
		for (var j=0; j < required.length; j++) {
			var fields = required[j].value.split(',');
			for (var i=0; i < fields.length; i++) {
				if(!hasValue(document.forms[0].elements[fields[i]])){
					alert("Missing required value "+fields[i]);
					return false;
				}
			}
		}
	} else {
		var fields = required.value.split(',');
		for (var i=0; i < fields.length; i++) {
			if(!hasValue(document.forms[0].elements[fields[i]])){
				alert("Missing required value "+fields[i]);
				return false;
			}
		}	
	}
	return true;
}

