function CheckAll(fieldname, checked)
{
	var fields = document.getElementsByTagName('input');
	for (var i=0; i < fields.length; i++)
	{
		var field = fields[i];
		if (field.name==fieldname) { field.checked = checked; }
	}
}

function toggleElement(element_id, show_function, hide_function, opts)
{
	var elm = document.getElementById(element_id);
	if (!elm) { return; }

	if (elm.style.display == 'none') { show_function(element_id, opts); }
	else { hide_function(element_id, opts); }
}

function GetFieldValue(field_name, frm) {

	var parent_node = frm!=null ? frm : document;
	var input_fields = parent_node.getElementsByTagName('input');
	var select_fields = parent_node.getElementsByTagName('select');
	var textarea_fields = parent_node.getElementsByTagName('textarea');
	
	var results = [];
	
	for (var i=0; i < input_fields.length; i++) {
		var field = input_fields[i];
		if (field.name==field_name)
		{
			if (field.type == 'checkbox' || field.type == 'radio') { if (field.checked) { results.push(field.value); } }
			else { results.push(field.value); }
		}
	}
	
	for (var i=0; i < select_fields.length; i++) {
		var field = select_fields[i];
		if (field.name==field_name)
		{
			var opts = field.getElementsByTagName('option');
			for (var j=0; j < opts.length; j++) {
				var opt = opts[j];
				if (opt.selected) { results.push(opt.value); }
			}
		}
	}
	
	for (var i=0; i < textarea_fields.length; i++) {
		var field = textarea_fields[i];
		if (field.name==field_name) { results.push(field.value); }
	}

	return results;	
}

function GetAjaxResponseNode(xml, node_name, return_all)
{
	return_all = return_all ? true : false;
	var nodes = xml.responseXML.getElementsByTagName(node_name);
	if (nodes.length > 0 && return_all) {
		var values = [];
		for (var n=0; n < nodes.length; n++) { values.push(nodes[n].firstChild.nodeValue); }
		return values;
	}
	else if (nodes.length > 0 && nodes[0].firstChild) { return nodes[0].firstChild.nodeValue; }
	else { return null; }
}
