Index: /trunk/wp-admin/admin-functions.php
===================================================================
--- /trunk/wp-admin/admin-functions.php	(revision 800)
+++ /trunk/wp-admin/admin-functions.php	(revision 800)
@@ -0,0 +1,45 @@
+<?php
+
+
+// Dandy new recursive multiple category stuff.
+function cat_rows($parent = 0, $level = 0) {
+	global $wpdb, $tablecategories, $tablepost2cat, $bgcolor;
+	$categories = $wpdb->get_results("SELECT * FROM $tablecategories WHERE category_parent = $parent ORDER BY cat_name");
+	if ($categories) {
+		foreach ($categories as $category) {
+			$count = $wpdb->get_var("SELECT COUNT(post_id) FROM $tablepost2cat WHERE category_id = $category->cat_ID");
+			$pad = str_repeat('&#8212; ', $level);
+
+        $bgcolor = ('#eee' == $bgcolor) ? 'none' : '#eee';
+        echo "<tr style='background-color: $bgcolor'><td>$pad $category->cat_name</td>
+        <td>$category->category_description</td>
+        <td>$count</td>
+        <td><a href='categories.php?action=edit&amp;cat_ID=$category->cat_ID' class='edit'>Edit</a></td><td><a href='categories.php?action=Delete&amp;cat_ID=$category->cat_ID' onclick=\"return confirm('You are about to delete the category \'". addslashes($category->cat_name) ."\' and all its posts will go to the default category.\\n  \'OK\' to delete, \'Cancel\' to stop.')\" class='delete'>Delete</a></td>
+        </tr>";
+				cat_rows($category->cat_ID, $level + 1);
+		}
+	} else {
+		return false;
+	}
+}
+
+function wp_dropdown_cats($currentcat, $currentparent = 0, $parent = 0, $level = 0) {
+	global $wpdb, $tablecategories, $tablepost2cat, $bgcolor;
+	$categories = $wpdb->get_results("SELECT * FROM $tablecategories WHERE category_parent = $parent ORDER BY cat_name");
+	if ($categories) {
+		foreach ($categories as $category) { if ($currentcat != $category->cat_ID) {
+			$count = $wpdb->get_var("SELECT COUNT(post_id) FROM $tablepost2cat WHERE category_id = $category->cat_ID");
+			$pad = str_repeat('&#8211; ', $level);
+			echo "\n\t<option value='$category->cat_ID'";
+			if ($currentparent == $category->cat_ID)
+				echo " selected='selected'";
+			echo ">$pad$category->cat_name</option>";
+			if ($currentcat != $category->cat_ID)
+				wp_dropdown_cats($currentcat, $currentparent, $category->cat_ID, $level + 1);
+		} }
+	} else {
+		return false;
+	}
+}
+
+?>
