function api_data_preset_color_field_validate(&$_fields_data_preset_color, $data_preset_color_field_name_format) {
	require_once(CACTI_BASE_PATH . "/lib/data_preset/data_preset_color_info.php");

	if (sizeof($_fields_data_preset_color) == 0) {
		return array();
	}

	/* array containing errored fields */
	$error_fields = array();

	/* get a complete field list */
	$fields_data_preset_color = api_data_preset_color_form_list();

	/* base fields */
	while (list($_field_name, $_field_array) = each($fields_data_preset_color)) {
		if ((isset($_fields_data_preset_color[$_field_name])) && (isset($_field_array["validate_regexp"])) && (isset($_field_array["validate_empty"]))) {
			$form_field_name = str_replace("|field|", $_field_name, $data_preset_color_field_name_format);

			if (!form_input_validate($_fields_data_preset_color[$_field_name], $form_field_name, $_field_array["validate_regexp"], $_field_array["validate_empty"])) {
				$error_fields[] = $form_field_name;
			}
		}
	}

	return $error_fields;
}
function api_data_preset_color_save($data_preset_color_id, $_fields_data_preset_color) {
	require_once(CACTI_BASE_PATH . "/lib/data_preset/data_preset_color_info.php");

	/* sanity checks */
	validate_id_die($data_preset_color_id, "data_preset_color_id", true);

	/* make sure that there is at least one field to save */
	if (sizeof($_fields_data_preset_color) == 0) {
		return false;
	}

	/* field: id */
	$_fields["id"] = array("type" => DB_TYPE_INTEGER, "value" => $data_preset_color_id);

	/* convert the input array into something that is compatible with db_replace() */
	$_fields += sql_get_database_field_array($_fields_data_preset_color, api_data_preset_color_form_list());

	if (db_replace("preset_color", $_fields, array("id"))) {
		if (empty($data_preset_color_id)) {
			$data_preset_color_id = db_fetch_insert_id();
		}

		return $data_preset_color_id;
	}else{
		return false;
	}
}