function initSpecifyInput(selectedOption, textbox) {
	if (Element.hasClassName(selectedOption, "specify"))
		Form.Element.enable(textbox);
	else
		Form.Element.disable(textbox);
}

function initRadioSelect(el) {
	Element.descendants(el).each(function(el) {
		if (Element.match(el, "input.source")) {
			var targetEl = Element.down(Element.up(el, "tr"), "select.target");
			if (el.checked)
				Form.Element.enable(targetEl);
			else
				Form.Element.disable(targetEl);
		}
	});
}

Event.observe(window, "load", function() {
	$$("div.specify").each(function(el) {
		var selectEl = Element.down(el, "select");
		
		initSpecifyInput(selectEl.options[selectEl.selectedIndex], Element.down(el, "input"));
		Event.observe(selectEl, "change", function(e) {
			var selectEl = Event.element(e);
			initSpecifyInput(selectEl.options[selectEl.selectedIndex], Element.next(selectEl, "input", 0));
		});
	});

	$$("table.radioselect").each(function(el) {
		initRadioSelect(el);
		Element.descendants(el).each(function(el) {
			if (Element.match(el, "input.source"))
				Event.observe(el, "click", function(e) {
					initRadioSelect(Element.up(Event.element(e), "table.radioselect"));
				});
		});
	});
});
