// Node Select

function Node (id, label) {
	this.id = id;
	this.label = label;
	this.children = new Array ();
}

function nodeSelectBox (nodes, element_id, selected_id, all_text, disabled) {
	var element = document.getElementById(element_id);
	var select = $.SELECT({id: element_id, name: element_id});
	var child_nodes = new Array ();

	if (all_text) {
		select.appendChild ($.OPTION({
			text: all_text,
			innerText: all_text,
			value: 0,
			selected: !selected_id
		}));
	}
	
	if (!all_text && !selected_id) selected_id = nodes[0].id;

	for (var i = 0; i < nodes.length; i++) {
		var selected = (selected_id && nodes[i].id == selected_id);
		if (selected) child_nodes = nodes[i].children;

		select.appendChild ($.OPTION({
			text: nodes[i].label,
			innerText: nodes[i].label,
			value: nodes[i].id,
			selected: selected
		}));

	}

	if (disabled) select.disabled = true;
	element.parentNode.replaceChild (select, element);
	return child_nodes;
}