function spa_display_usergroup_select($filter = false, $forum_id = 0, $showSelect = true)
{
    $usergroups = spa_get_usergroups_all();
    if ($showSelect) {
        echo spa_text('Select usergroup') . ':  ';
    }
    if ($showSelect) {
        ?>
		<select style="width:145px" class='sfacontrol' name='usergroup_id'>
<?php 
    }
    $out = '<option value="-1">' . spa_text('Select usergroup') . '</option>';
    if ($filter) {
        $perms = sp_get_forum_permissions($forum_id);
    }
    foreach ($usergroups as $usergroup) {
        $disabled = '';
        if ($filter == 1 && $perms) {
            foreach ($perms as $perm) {
                if ($perm->usergroup_id == $usergroup->usergroup_id) {
                    $disabled = 'disabled="disabled" ';
                    continue;
                }
            }
        }
        $out .= '<option ' . $disabled . 'value="' . $usergroup->usergroup_id . '">' . sp_filter_title_display($usergroup->usergroup_name) . '</option>' . "\n";
        $default = '';
    }
    echo $out;
    if ($showSelect) {
        ?>
	</select></p>
<?php 
    }
}
function spa_forums_view_forums_permission_form($forum_id)
{
    ?>
<script type="text/javascript">
    jQuery(document).ready(function() {
    	jQuery('#forumrow-<?php 
    echo $forum_id;
    ?>
').addClass('inForm');
    });
</script>
<?php 
    $forum = spdb_table(SFFORUMS, "forum_id={$forum_id}", 'row');
    spa_paint_options_init();
    spa_paint_open_tab(spa_text('Forums') . ' - ' . spa_text('Manage Groups and Forums'), true);
    spa_paint_open_panel();
    spa_paint_open_fieldset(spa_text('View Forum Permissions'), false);
    $perms = sp_get_forum_permissions($forum->forum_id);
    if ($perms) {
        ?>
					<table class="sfmaintable" cellpadding="5" cellspacing="3">
						<tr>
							<td align="center" colspan="3"><strong><?php 
        echo spa_text('Current permission set for forum') . ' ' . sp_filter_title_display($forum->forum_name);
        ?>
</strong></td>
						</tr>
<?php 
        foreach ($perms as $perm) {
            $usergroup = spa_get_usergroups_row($perm->usergroup_id);
            $role = spa_get_role_row($perm->permission_role);
            ?>
						<tr>
							<td class="sflabel"><?php 
            echo sp_filter_title_display($usergroup->usergroup_name);
            ?>
 => <?php 
            echo sp_filter_title_display($role->role_name);
            ?>
</td>
							<td align="center">
<?php 
            $base = SFHOMEURL . 'index.php?sp_ahah=forums-loader&amp;sfnonce=' . wp_create_nonce('forum-ahah');
            $target = "curperm-{$perm->permission_id}";
            $image = SFADMINIMAGES;
            ?>
								<input type="button" class="spButton-tall" value="<?php 
            echo sp_splice(spa_text('Edit Permission Set'), 0);
            ?>
" onclick="spjLoadForm('editperm', '<?php 
            echo $base;
            ?>
', '<?php 
            echo $target;
            ?>
', '<?php 
            echo $image;
            ?>
', '<?php 
            echo $perm->permission_id;
            ?>
');" />
								<input type="button" class="spButton-tall" value="<?php 
            echo sp_splice(spa_text('Delete Permission Set'), 0);
            ?>
" onclick="spjLoadForm('delperm', '<?php 
            echo $base;
            ?>
', '<?php 
            echo $target;
            ?>
', '<?php 
            echo $image;
            ?>
', '<?php 
            echo $perm->permission_id;
            ?>
');" />
							</td>
			   			</tr>
						<tr class="sfinline-form"> <!-- This row will hold hidden forms for the current forum permission set -->
						  	<td colspan="3">
								<div id="curperm-<?php 
            echo $perm->permission_id;
            ?>
">
							</td>
						</tr>
					<?php 
        }
        ?>
				<?php 
    } else {
        ?>
					<table class="sfmaintable" cellpadding="5" cellspacing="3">
						<tr>
							<td>
								<?php 
        spa_etext('No permission sets for any usergroup');
        ?>
							</td>
						</tr>
				<?php 
    }
    ?>
			   			<tr>
			   				<td colspan="3" align="center">
<?php 
    $base = SFHOMEURL . 'index.php?sp_ahah=forums-loader&amp;sfnonce=' . wp_create_nonce('forum-ahah');
    $target = "newperm-{$forum->forum_id}";
    $image = SFADMINIMAGES;
    ?>
								<input type="button" class="spButton-tall" value="<?php 
    echo sp_splice(spa_text('Add Permission'), 0);
    ?>
" onclick="spjLoadForm('addperm', '<?php 
    echo $base;
    ?>
', '<?php 
    echo $target;
    ?>
', '<?php 
    echo $image;
    ?>
', '<?php 
    echo $forum->forum_id;
    ?>
', 'sfopen');" />
			   				</td>
						</tr>
						<tr class="sfinline-form"> <!-- This row will hold ahah forms for adding a new forum permission set -->
						  	<td colspan="3">
								<div id="newperm-<?php 
    echo $forum->forum_id;
    ?>
">
								</div>
							</td>
						</tr>
					</table>
<?php 
    spa_paint_close_fieldset();
    spa_paint_close_panel();
    spa_paint_close_container();
    ?>
	<form>
		<div class="sfform-submit-bar">
		<input type="button" class="button-primary" onclick="javascript:jQuery('#forum-<?php 
    echo $forum->forum_id;
    ?>
').html('');jQuery('#forumrow-<?php 
    echo $forum_id;
    ?>
').removeClass('inForm');" id="sfgroupdel<?php 
    echo $forum->forum_id;
    ?>
" name="forumcancel<?php 
    echo $forum->forum_id;
    ?>
" value="<?php 
    spa_etext('Cancel');
    ?>
" />
		</div>
	</form>
	<?php 
    spa_paint_close_tab();
    ?>
	<div class="sfform-panel-spacer"></div>
<?php 
}
function spa_forums_check_memberships($forums)
{
    $value = sp_get_sfmeta('default usergroup', 'sfguests');
    $ugid = spdb_table(SFUSERGROUPS, "usergroup_id={$value[0]['meta_value']}", 'usergroup_id');
    if (empty($ugid)) {
        $ugid = 0;
    }
    $noMembers = array();
    foreach ($forums as $forum) {
        $has_members = false;
        $permissions = sp_get_forum_permissions($forum->forum_id);
        if ($permissions) {
            foreach ($permissions as $permission) {
                $members = spdb_table(SFMEMBERSHIPS, "usergroup_id= {$permission->usergroup_id}", 'row', '', '1');
                if ($members || $permission->usergroup_id == $ugid) {
                    $has_members = true;
                    break;
                }
            }
        }
        if (!$has_members) {
            $noMembers[] = $forum->forum_id;
        }
    }
    return $noMembers;
}
function spa_save_forums_delete_group()
{
    check_admin_referer('forum-adminform_groupdelete', 'forum-adminform_groupdelete');
    $group_id = sp_esc_int($_POST['group_id']);
    $cseq = sp_esc_int($_POST['cgroup_seq']);
    # remove permissions for each forum in group
    $forums = spa_get_forums_in_group($group_id);
    if ($forums) {
        foreach ($forums as $forum) {
            # remove permissions for this forum
            $perms = sp_get_forum_permissions($forum->forum_id);
            if ($perms) {
                foreach ($perms as $perm) {
                    spa_remove_permission_data($perm->permission_id);
                }
            }
        }
    }
    # reset auths and memberships for everyone
    sp_reset_memberships();
    sp_reset_auths();
    # select all the forums in the group
    $forums = spa_get_forums_in_group($group_id);
    # remove the topics and posts in each forum
    foreach ($forums as $forum) {
        # need to delete all topics in the forum using standard routine to clean up behind it
        $topics = spdb_table(SFTOPICS, "forum_id={$forum->forum_id}");
        if ($topics) {
            foreach ($topics as $topic) {
                sp_delete_topic($topic->topic_id, $forum->forum_id, false);
            }
        }
    }
    #now remove the forums themselves
    spdb_query('DELETE FROM ' . SFFORUMS . " WHERE group_id={$group_id}");
    # and finaly remove the group
    spdb_query('DELETE FROM ' . SFGROUPS . " WHERE group_id={$group_id}");
    # need to iterate through the groups
    $groups = spdb_table(SFGROUPS, '', '', 'group_seq');
    foreach ($groups as $group) {
        if ($group->group_seq > $cseq) {
            spa_bump_group_seq($group->group_id, $group->group_seq - 1);
        }
    }
    # remove the default permissions for the group being deleted
    spdb_query('DELETE FROM ' . SFDEFPERMISSIONS . " WHERE group_id={$group_id}");
    do_action('sph_forum_group_del', $group_id);
    # clear out group cache tpo enable change_user
    sp_flush_cache('group');
    $mess = spa_text('Group Deleted');
    return $mess;
}