	/* Inputs */
	function inputs_select_get_values(element)
	{
		var result = new Array();

		var options = element.find("option:[value!='']");

		for (var i = 0; i < options.length; i ++)
			result[i] = options.eq(i).val();

		return result;
	}

	function inputs_checkbox_get_values(checkboxes)
	{
		var result = new Array();
		for (var i = 0; i < checkboxes.length; i ++)
		{
			var checkbox = checkboxes.eq(i);
			if (!checkbox.attr("checked"))
				continue;

			result[result.length] = checkbox.attr("value");
		}

		return result;
	}

	function inputs_checkbox_toogle(owner)
	{
		var element = $(owner.target);

		var checkboxes;
		var table = element.closest("table");
		checkboxes = table.find("input:enabled[type=checkbox]");

		checkboxes.attr("checked", element.attr("checked"));

		window.event.cancelBubble = true
	}

	function inputs_fill_values(names, xml, prefix)
	{
		for (var i = 0; i < names.length; i++)
		{
			var name = names[i];
			if (typeof prefix != "undefined")
				name = prefix + name;

			var value = xml.attr(name);
			if (typeof value == "undefined")
				continue;

			var element = $("#" + name);
			var type = element[0].type;

			switch (type)
			{
				case "text": element.val(value);
				case "checkbox": element.attr("checked", value == "1");
			}
		}
	}

	function inputs_fill_options(element, xml)
	{
		var options = xml.find("element");
		for (var i = 0; i < options.length; i++)
		{
			var option = options.eq(i);

			var name = option.attr("name");
			var value = option.attr("value");

			element.append("<option value='" + value + "'>" + name + "</option>");
		}

		if (options.length != 0)
			element.removeAttr("disabled");
	}
