function countChoices(form,targetname) {
	var count = 0;
	var maxcheckboxes = 3;

	for (var i = 0; i < form.elements.length; ++i) {
		var curcheckbox = form.elements[i];

		if ((curcheckbox.name == targetname) && (curcheckbox.checked)) {
			count = count+1;
		}
		// Now, try to make the tr be some color.
		if (curcheckbox.parentNode.parentNode.nodeName == "TR") {
			if (curcheckbox.checked){
				curcheckbox.parentNode.parentNode.style.backgroundColor = "#f0fff0";
			}
			else{
				curcheckbox.parentNode.parentNode.style.backgroundColor = "#ffffff";
			}
		}
	}
	for (var i = 0; i < form.elements.length; ++i) {
		var curcheckbox = form.elements[i];

		if ((curcheckbox.name == targetname) && (!curcheckbox.checked)) {
			curcheckbox.disabled = (count >= maxcheckboxes);
		}
	}
}

function verifycount(form,targetname) {
	var count = 0;
	var mincheckboxes = 2;
	var maxcheckboxes = 3;

	for (var i = 0; i < form.elements.length; ++i) {
		var curcheckbox = form.elements[i];

		if ((curcheckbox.name == targetname) && (curcheckbox.checked)) {
			count = count+1;
		}
	}
	if (!((mincheckboxes <= count) && (count <= maxcheckboxes))) {
		var msg = "";
		if (count < mincheckboxes) msg = "You must check at least " + mincheckboxes + " items. (You've checked " + count + ")";
		if (count > maxcheckboxes) msg = "You must check at most " + maxcheckboxes + " items. (You've checked " + count + ")";
		alert(msg);
		return(false);
	}
	else return(true);
}

function uncheckall(form,targetname) {
	var count = 0;

	for (var i = 0; i < form.elements.length; ++i) {
		var curcheckbox = form.elements[i];

		if ((curcheckbox.name == targetname) && (curcheckbox.checked)) {
			curcheckbox.checked = false;
		}
	}
}

