/**
 * Displays and updates the options menu of BuddyPress Media Component
 * 
 * @since BP Media 2.0
 */
function bp_media_admin_menu()
{
    $bp_media_errors = array();
    $bp_media_messages = array();
    global $bp_media_options;
    $bp_media_options = get_option('bp_media_options', array('videos_enabled' => true, 'audio_enabled' => true, 'images_enabled' => true));
    if (array_key_exists('submit', $_POST)) {
        check_admin_referer('bp_media_update_options');
        if (array_key_exists('refresh_media_count', $_POST)) {
            if (!bp_media_update_count()) {
                $bp_media_errors[] = "Recounting Failed";
            } else {
                $bp_media_messages[] = "Recounting of media files done successfully";
            }
        }
        if (array_key_exists('remove_linkback', $_POST) && $_POST['remove_linkback'] == '1') {
            update_option('bp_media_remove_linkback', '1');
        } else {
            update_option('bp_media_remove_linkback', '0');
        }
        if (array_key_exists('enable_videos', $_POST)) {
            $bp_media_options['videos_enabled'] = true;
        } else {
            $bp_media_options['videos_enabled'] = false;
        }
        if (array_key_exists('enable_audio', $_POST)) {
            $bp_media_options['audio_enabled'] = true;
        } else {
            $bp_media_options['audio_enabled'] = false;
        }
        if (array_key_exists('enable_images', $_POST)) {
            $bp_media_options['images_enabled'] = true;
        } else {
            $bp_media_options['images_enabled'] = false;
        }
        update_option('bp_media_options', $bp_media_options);
    }
    ?>
	<div class="metabox-fixed metabox-holder alignright">
		<?php 
    bp_media_default_admin_sidebar();
    ?>
	</div>
	<div class="wrap bp-media-admin">
		<div id="icon-bp-media" class="icon32"><br/></div>
		<h2>BuddyPress Media Component Settings</h2>
		<?php 
    if (count($bp_media_errors)) {
        ?>
		<div class="error"><p><?php 
        foreach ($bp_media_errors as $error) {
            echo $error . '<br/>';
        }
        ?>
</p></div>
		<?php 
    }
    if (count($bp_media_messages)) {
        ?>
		<div class="updated"><p><?php 
        foreach ($bp_media_messages as $message) {
            echo $message . '<br/>';
        }
        ?>
</p></div>
		<?php 
    }
    ?>
		<form method="post">
			 <?php 
    wp_nonce_field('bp_media_update_options');
    ?>
			<h3>General Settings</h3>
			<table class="form-table ">
				<tbody>
					<tr valign="top">
						<th scope="row"><label for="refresh_media_count">Re-Count Media Entries</label></th>
						<td> <fieldset><legend class="screen-reader-text"><span>Re-Count Media Entries</span></legend><label for="refresh_media_count">
									<input name="refresh_media_count" type="checkbox" id="refresh_media_count" value="1">
									Check for Re-Count</label>
							</fieldset></td>
					</tr>
					<tr valign="top">
						<th scope="row"><label for="remove_linkback">Remove Linkback</label></th>
						<td>
							<fieldset>
								<legend class="screen-reader-text"><span>Remove Linkback</span></legend>
								<label for="remove_linkback"><input name="remove_linkback" type="checkbox" id="remove_linkback" value="1" <?php 
    if (get_option('bp_media_remove_linkback') == '1') {
        echo 'checked="checked"';
    }
    ?>
> Removes the link to MediaBP from footer</label>
							</fieldset>
						</td>
					</tr>
				</tbody>
			</table>
			<h3>Media Types Enabled</h3>
			<table class="form-table ">
				<tbody>
					<tr valign="top">
						<th scope="row"><label for="enable_videos">Videos</label></th>
						<td>
							<fieldset>
								<legend class="screen-reader-text"><span>Enable Videos</span></legend>
								<label for="enable_videos"><input name="enable_videos" type="checkbox" id="enable_videos" value="1" <?php 
    global $bp_media_options;
    checked($bp_media_options['videos_enabled'], true);
    ?>
> (Check to enable video upload functionality)</label>
							</fieldset>
						</td>
					</tr>
					<tr valign="top">
						<th scope="row"><label for="enable_audio">Audio</label></th>
						<td>
							<fieldset>
								<legend class="screen-reader-text"><span>Enable Audio</span></legend>
								<label for="enable_audio"><input name="enable_audio" type="checkbox" id="enable_audio" value="1" <?php 
    checked($bp_media_options['audio_enabled'], true);
    ?>
> (Check to enable audio upload functionality)</label>
							</fieldset>
						</td>
					</tr>
					<tr valign="top">
						<th scope="row"><label for="enable_images">Images</label></th>
						<td>
							<fieldset>
								<legend class="screen-reader-text"><span>Enable Images</span></legend>
								<label for="enable_images"><input name="enable_images" type="checkbox" id="enable_images" value="1" <?php 
    checked($bp_media_options['images_enabled'], true);
    ?>
> (Check to enable images upload functionality)</label>
							</fieldset>
						</td>
					</tr>
				</tbody>
			</table>
			<p class="submit"><input type="submit" name="submit" id="submit" class="button-primary" value="Save Changes"></p></form>
	</div>
	<?php 
}
function bp_media_settings_page()
{
    $tab = isset($_GET['page']) ? $_GET['page'] : "bp-media-settings";
    ?>
    <div class="wrap bp-media-admin">
        <?php 
    //screen_icon( 'buddypress' );
    ?>
        <div id="icon-buddypress" class="icon32"><br></div>
        <h2 class="nav-tab-wrapper"><?php 
    bp_core_admin_tabs(__('Media', 'bp-media'));
    ?>
</h2>
        <div class="metabox-holder columns-2"><?php 
    if (array_key_exists('bp_media_refresh_count', $_GET) && empty($_REQUEST['settings-updated'])) {
        check_admin_referer('bp_media_refresh_count', 'wp_nonce');
        if (!bp_media_update_count()) {
            $bp_media_errors[] = "Recounting Failed";
        } else {
            $bp_media_messages[] = "Recounting of media files done successfully";
        }
        if (isset($bp_media_errors) && count($bp_media_errors)) {
            ?>
                    <div class="error"><p><?php 
            foreach ($bp_media_errors as $error) {
                echo $error . '<br/>';
            }
            ?>
</p></div><?php 
        }
        if (isset($bp_media_messages) && count($bp_media_messages)) {
            ?>
                    <div class="updated"><p><?php 
            foreach ($bp_media_messages as $message) {
                echo $message . '<br/>';
            }
            ?>
</p></div><?php 
        }
    } else {
        settings_errors();
    }
    ?>

            <div class="bp-media-settings-tabs"><?php 
    // Check to see which tab we are on
    if (current_user_can('manage_options')) {
        $tabs_html = '';
        $idle_class = 'media-nav-tab';
        $active_class = 'media-nav-tab media-nav-tab-active';
        $tabs = array();
        // Check to see which tab we are on
        $tab = isset($_GET['page']) ? $_GET['page'] : "bp-media-settings";
        /* BP Media */
        $tabs[] = array('href' => bp_get_admin_url(add_query_arg(array('page' => 'bp-media-settings'), 'admin.php')), 'title' => __('BP Media Settings', 'bp-media'), 'name' => __('Settings', 'bp-media'), 'class' => $tab == 'bp-media-settings' ? $active_class : $idle_class . ' first_tab');
        $tabs[] = array('href' => bp_get_admin_url(add_query_arg(array('page' => 'bp-media-addons'), 'admin.php')), 'title' => __('BP Media Addons', 'bp-media'), 'name' => __('Addons', 'bp-media'), 'class' => $tab == 'bp-media-addons' ? $active_class : $idle_class);
        $tabs[] = array('href' => bp_get_admin_url(add_query_arg(array('page' => 'bp-media-support'), 'admin.php')), 'title' => __('BP Media Support', 'bp-media'), 'name' => __('Support', 'bp-media'), 'class' => $tab == 'bp-media-support' ? $active_class : $idle_class . ' last_tab');
        $pipe = '|';
        $i = '1';
        foreach ($tabs as $tab) {
            if ($i != 1) {
                $tabs_html .= $pipe;
            }
            $tabs_html .= '<a title=""' . $tab['title'] . '" " href="' . $tab['href'] . '" class="' . $tab['class'] . '">' . $tab['name'] . '</a>';
            $i++;
        }
        echo $tabs_html;
    }
    ?>
            </div>

            <div id="bp-media-settings-boxes">

                <form id="bp_media_settings_form" name="bp_media_settings_form" action="options.php" method="post" enctype="multipart/form-data">
                    <?php 
    settings_fields('bp_media_options_settings');
    do_settings_fields('bp_media_options_settings', '');
    do_meta_boxes('bp-media-settings', 'normal', '');
    ?>

                    <script type="text/javascript">
                        //<![CDATA[
                        jQuery(document).ready( function($) {
                            // close postboxes that should be closed
                            $('.if-js-closed').removeClass('if-js-closed').addClass('closed');
                            // postboxes setup
                            postboxes.add_postbox_toggles('bp-media-settings');
                        });
                        //]]>
                    </script>
                </form>
            </div><!-- .bp-media-settings-boxes -->
            <div class="metabox-fixed metabox-holder alignright bp-media-metabox-holder">
                    <?php 
    bp_media_default_admin_sidebar();
    ?>
            </div>
        </div><!-- .metabox-holder -->
    </div><!-- .bp-media-admin --><?php 
}