/**
 * Show the details of the current setup in the Sidebar.
 */
function cpm_show_comicpress_details()
{
    global $cpm_config, $wpmu_version;
    $all_comic_dates_ok = true;
    $all_comic_dates = array();
    foreach ($cpm_config->comic_files as $comic_file) {
        if (($result = cpm_breakdown_comic_filename(pathinfo($comic_file, PATHINFO_BASENAME))) !== false) {
            if (isset($all_comic_dates[$result['date']])) {
                $all_comic_dates_ok = false;
                break;
            }
            $all_comic_dates[$result['date']] = true;
        }
    }
    $subdir_path = '';
    if (($subdir = cpm_get_subcomic_directory()) !== false) {
        $subdir_path .= '/' . $subdir;
    }
    ?>
    <!-- ComicPress details -->
    <div id="comicpress-details">
      <h2 style="padding-right: 0"><?php 
    _e('ComicPress Details', 'comicpress-manager');
    ?>
</h2>
      <ul style="padding-left: 30px; margin: 0">
        <li><strong><?php 
    _e("Configuration method:", 'comicpress-manager');
    ?>
</strong>
          <?php 
    if ($cpm_config->config_method == "comicpress-config.php") {
        ?>
            <a href="?page=<?php 
        echo plugin_basename(__FILE__);
        ?>
-config"><?php 
        echo $cpm_config->config_method;
        ?>
</a>
            <?php 
        if ($cpm_config->can_write_config) {
            ?>
              <?php 
            _e('(click to edit)', 'comicpress-manager');
            ?>
            <?php 
        } else {
            ?>
              <?php 
            _e('(click to edit, cannot update automatically)', 'comicpress-manager');
            ?>
            <?php 
        }
        ?>
          <?php 
    } else {
        ?>
            <?php 
        echo $cpm_config->config_method;
        ?>
          <?php 
    }
    ?>
        </li>
        <li><strong><?php 
    _e('Comics folder:', 'comicpress-manager');
    ?>
</strong>
                    <?php 
    echo $cpm_config->properties['comic_folder'] . $subdir_path;
    ?>
<br />
            <?php 
    $too_many_comics_message = "";
    if (!$all_comic_dates_ok) {
        ob_start();
        ?>
                  , <a href="?page=<?php 
        echo plugin_basename(__FILE__);
        ?>
-status"><em><?php 
        _e("multiple files on the same date!", 'comicpress-manager');
        ?>
</em></a>
                <?php 
        $too_many_comics_message = trim(ob_get_clean());
    }
    ?>

            <?php 
    printf(_n('(%d comic in folder%s)', '(%d comics in folder%s)', count($cpm_config->comic_files), 'comicpress-manager'), count($cpm_config->comic_files), $too_many_comics_message);
    ?>
        </li>

        <?php 
    foreach (array('archive' => __('Archive folder:', 'comicpress-manager'), 'rss' => __('RSS feed folder:', 'comicpress-manager'), 'mini' => __('Minithumb folder:', 'comicpress-manager')) as $type => $title) {
        $realpath = realpath(CPM_DOCUMENT_ROOT . '/' . $cpm_config->properties["{$type}_comic_folder"] . $subdir_path);
        ?>
          <li><strong><?php 
        echo $title;
        ?>
</strong> <?php 
        echo $cpm_config->properties["{$type}_comic_folder"] . $subdir_path;
        ?>
            <?php 
        if ($cpm_config->get_scale_method() != CPM_SCALE_NONE && cpm_option("cpm-{$type}-generate-thumbnails") == 1 && $cpm_config->separate_thumbs_folder_defined[$type] && $cpm_config->thumbs_folder_writable[$type]) {
            ?>
              (<em><?php 
            _e('generating', 'comicpress-manager');
            ?>
</em>)
            <?php 
        } else {
            $reasons = array();
            if ($cpm_config->get_scale_method() == CPM_SCALE_NONE) {
                $reasons[] = __("No scaling software", 'comicpress-manager');
            }
            if (cpm_option("cpm-{$type}-generate-thumbnails") == 0) {
                $reasons[] = __("Generation disabled", 'comicpress-manager');
            }
            if (!$cpm_config->separate_thumbs_folder_defined[$type]) {
                $reasons[] = __("Same as comics folder", 'comicpress-manager');
            }
            if (!$cpm_config->thumbs_folder_writable[$type]) {
                $reasons[] = __("Not writable", 'comicpress-manager');
            }
            ?>
              (<em style="cursor: help; text-decoration: underline" title="<?php 
            echo implode(", ", $reasons);
            ?>
">not generating</em>)
            <?php 
        }
        ?>
            <?php 
        if ($realpath !== false) {
            printf(__("(<em>%d files in folder</em>)", 'comicpress-manager'), count(glob($realpath . "/*")));
        } else {
            _e('(<em>folder not found</em>)', 'comicpress-manager');
        }
        ?>
          </li>
        <?php 
    }
    ?>

        <li><strong>
          <?php 
    if (is_array($cpm_config->properties['comiccat']) && count($cpm_config->properties['comiccat']) != 1) {
        _e("Comic categories:", 'comicpress-manager');
    } else {
        _e("Comic category:", 'comicpress-manager');
    }
    ?>
</strong>
          <?php 
    if (is_array($cpm_config->properties['comiccat'])) {
        ?>
            <ul>
              <?php 
        foreach ($cpm_config->properties['comiccat'] as $cat_id) {
            ?>
                <li><a href="<?php 
            echo get_category_link($cat_id);
            ?>
"><?php 
            echo get_cat_name($cat_id);
            ?>
</a>
                <?php 
            printf(__('(ID %s)', 'comicpress-manager'), $cat_id);
            ?>
</li>
              <?php 
        }
        ?>
            </ul>
          <?php 
    } else {
        ?>
            <a href="<?php 
        echo get_category_link($cpm_config->properties['comiccat']);
        ?>
"><?php 
        echo $cpm_config->comic_category_info['name'];
        ?>
</a>
            <?php 
        printf(__('(ID %s)', 'comicpress-manager'), $cpm_config->properties['comiccat']);
        ?>
          <?php 
    }
    ?>
        </li>
        <li><strong><?php 
    _e('Blog category:', 'comicpress-manager');
    ?>
</strong> <a href="<?php 
    echo get_category_link($cpm_config->properties['blogcat']);
    ?>
">
            <?php 
    echo $cpm_config->blog_category_info['name'];
    ?>
</a> <?php 
    printf(__('(ID %s)', 'comicpress-manager'), $cpm_config->properties['blogcat']);
    ?>
</li>

        <?php 
    if (!$wpmu_version) {
        ?>
          <li><strong><?php 
        _e("PHP Version:", 'comicpress-manager');
        ?>
</strong> <?php 
        echo phpversion();
        ?>
              <?php 
        if (substr(phpversion(), 0, 3) < 5.2) {
            ?>
                (<a href="http://gophp5.org/hosts"><?php 
            _e("upgrade strongly recommended", 'comicpress-manager');
            ?>
</a>)
              <?php 
        }
        ?>
          </li>
          <li>
            <strong><?php 
        _e('Theme folder:', 'comicpress-manager');
        ?>
</strong>
            <?php 
        $theme_info = get_theme(get_current_theme());
        if (!empty($theme_info['Template'])) {
            echo $theme_info['Template'];
        } else {
            echo __("<em>Something's misconfigured with your theme...</em>", 'comicpress-manager');
        }
        ?>
          </li>
          <?php 
        if (count($cpm_config->detailed_warnings) != 0) {
            ?>
             <li>
                <strong><?php 
            _e('Additional, non-fatal warnings:', 'comicpress-manager');
            ?>
</strong>
                <ul>
                  <?php 
            foreach ($cpm_config->detailed_warnings as $warning) {
                ?>
                    <li><?php 
                echo $warning;
                ?>
</li>
                  <?php 
            }
            ?>
                </ul>
             </li>
          <?php 
        }
        ?>
          <li>
            <strong><a href="#" onclick="Element.show('debug-info'); $('cpm-right-column').style.minHeight = $('cpm-left-column').offsetHeight + 'px'; return false"><?php 
        _e('Show debug info', 'comicpress-manager');
        ?>
</a></strong> (<em><?php 
        _e("this data is sanitized to protect your server's configuration", 'comicpress-manager');
        ?>
</em>)
            <?php 
        echo cpm_show_debug_info();
        ?>
          </li>
        <?php 
    }
    ?>
      </ul>
    </div>
  <?php 
}
/**
 * The main manager screen.
 */
function cpm_manager_index()
{
    global $cpm_config;
    if (cpm_get_subcomic_directory() !== false) {
        $cpm_config->messages[] = sprintf(__("<strong>Reminder:</strong> You are managing the <strong>%s</strong> comic subdirectory.", 'comicpress-manager'), get_cat_name(get_option('comicpress-manager-manage-subcomic')));
    }
    $cpm_config->need_calendars = true;
    $example_date = cpm_generate_example_date(CPM_DATE_FORMAT);
    $example_real_date = date(CPM_DATE_FORMAT);
    $zip_extension_loaded = extension_loaded('zip');
    if (cpm_option('cpm-skip-checks') != 1) {
        if (!function_exists('get_comic_path')) {
            $cpm_config->warnings[] = __('<strong>It looks like you\'re running an older version of ComicPress.</strong> Storyline, hovertext, and transcript are fully supported in <a href="http://comicpress.org/">ComicPress 2.7</a>. You can use hovertext and transcripts in earlier themes by using <tt>get_post_meta($post->ID, "hovertext", true)</tt> and <tt>get_post_meta($post->ID, "transcript", true)</tt>.', 'comicpress-manager');
        }
    }
    if (count($_POST) == 0 && isset($_GET['upload'])) {
        $cpm_config->warnings[] = sprintf(__("Your uploaded files were larger than the <strong><tt>post_max_size</tt></strong> setting, which is currently <strong><tt>%s</tt></strong>. Either upload fewer/smaller files, upload them via FTP/SFTP, or increase your server's <strong><tt>post_max_size</tt></strong>.", 'comicpress-manager'), ini_get('post_max_size'));
    }
    ob_start();
    ?>
    <p>
      <strong>
        <?php 
    _e("ComicPress Manager manages your comics and your time.", 'comicpress-manager');
    ?>
      </strong>
      <?php 
    _e("It makes uploading new comics, importing comics from a non-ComicPress setup, and batch uploading a lot of comics at once, very fast and configurable.", 'comicpress-manager');
    ?>
    </p>

    <p>
      <strong>
        <?php 
    _e("ComicPress Manager also manages yours and your Website's sanity.", 'comicpress-manager');
    ?>
      </strong>

      <?php 
    printf(__("It can check for misconfigured ComicPress setups, for incorrectly-named files (remember, it's <em>%s-single-comic-title.ext</em>) and for when you might be duplicating a post. You will also be shown which comic will appear with which blog post in the Post editor.", 'comicpress-manager'), $example_date);
    ?>
    </p>

    <p>
      <?php 
    printf(__("<strong>Single comic titles</strong> are generated from the incoming filename.  If you've named your file <strong>%s-my-new-years-day.jpg</strong> and create a new post for the file, the post title will be <strong>My New Years Day</strong>.  This default should handle the majority of cases.  If a comic file does not have a title, the date in <strong>MM/DD/YYYY</strong> format will be used.", 'comicpress-manager'), $example_real_date);
    ?>
    </p>

    <p>
      <?php 
    _e("<strong>Upload image files</strong> lets you upload multiple comics at a time, and add a default post body for each comic.", 'comicpress-manager');
    ?>
      <?php 
    if ($zip_extension_loaded) {
        ?>
        <?php 
        _e("You can <strong>upload a Zip file and create new posts</strong> from the files contained within the Zip file.", 'comicpress-manager');
        ?>
      <?php 
    } else {
        ?>
        <?php 
        _e("<strong>You can't upload a Zip file</strong> because you do not have the PHP <strong>zip</strong> extension installed.", 'comicpress-manager');
        ?>
      <?php 
    }
    ?>
    </p>

    <p>
      <?php 
    _e("Has ComicPress Manager saved you time and sanity?  <strong>Donate a few bucks to show your appreciation!</strong>", 'comicpress-manager');
    ?>
      <span style="display: block; text-align: center">
        <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
        <input type="hidden" name="cmd" value="_s-xclick">
        <input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----MIIHdwYJKoZIhvcNAQcEoIIHaDCCB2QCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYBt5XgClPZfdf9s2CHnk4Ka5NQv+Aoswm3efVANJKvHR3h4msnSWwDzlJuve/JD5aE0rP4SRLnWuc4qIhOeeAP+MEGbs8WNDEPtUopmSy6aphnIVduSstqRWWSYElK5Wij/H8aJtiLML3rVBtiixgFBbj2HqD2JXuEgduepEvVMnDELMAkGBSsOAwIaBQAwgfQGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIlFUk3PoXtLKAgdAjA3AjtLZz9ZnJslgJPALzIwYw8tMbNWvyJXWksgZRdfMw29INEcgMrSYoWNHY4AKpWMrSxUcx3fUlrgvPBBa1P96NcgKfJ6U0KwygOLrolH0JAzX0cC0WU3FYSyuV3BZdWyHyb38/s9AtodBFy26fxGqvwnwgWefQE5p9k66lWA4COoc3hszyFy9ZiJ+3PFtH/j8+5SVvmRUk4EUWBMopccHzLvkpN2WALLAU4RGKGfH30K1H8+t8E/+uKH1jt8p/N6p60jR+n7+GTffo3NahoIIDhzCCA4MwggLsoAMCAQICAQAwDQYJKoZIhvcNAQEFBQAwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMB4XDTA0MDIxMzEwMTMxNVoXDTM1MDIxMzEwMTMxNVowgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBR07d/ETMS1ycjtkpkvjXZe9k+6CieLuLsPumsJ7QC1odNz3sJiCbs2wC0nLE0uLGaEtXynIgRqIddYCHx88pb5HTXv4SZeuv0Rqq4+axW9PLAAATU8w04qqjaSXgbGLP3NmohqM6bV9kZZwZLR/klDaQGo1u9uDb9lr4Yn+rBQIDAQABo4HuMIHrMB0GA1UdDgQWBBSWn3y7xm8XvVk/UtcKG+wQ1mSUazCBuwYDVR0jBIGzMIGwgBSWn3y7xm8XvVk/UtcKG+wQ1mSUa6GBlKSBkTCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCBXzpWmoBa5e9fo6ujionW1hUhPkOBakTr3YCDjbYfvJEiv/2P+IobhOGJr85+XHhN0v4gUkEDI8r2/rNk1m0GA8HKddvTjyGw/XqXa+LSTlDYkqI8OwR8GEYj4efEtcRpRYBxV8KxAW93YDWzFGvruKnnLbDAF6VR5w/cCMn5hzGCAZowggGWAgEBMIGUMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDkwMTA2MDAyOTQwWjAjBgkqhkiG9w0BCQQxFgQUITTqZaXyM43N5f08PBPDuRmzzdEwDQYJKoZIhvcNAQEBBQAEgYAV0szDQPbcyW/O9pZ7jUghTRdgHbCX4RyjPzR35IrI8MrqmtK94ENuD6Xf8PxkAJ3QdDr9OvkzWOHFVrb6YrAdh+XxBsMf1lD17UbwN3XZFn5HqvoWNFxNr5j3qx0DBsCh5RlGex+HAvtIoJu21uGRjbOQQsYFdlAPHxokkVP/Xw==-----END PKCS7-----
        ">
        <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="">
        <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
        </form>
      </span>
    </p>
  <?php 
    $help_content = ob_get_clean();
    ob_start();
    ?>

  <h2 style="padding-right:0;">
    <?php 
    if ($zip_extension_loaded) {
        _e("Upload Image &amp; Zip Files", 'comicpress-manager');
    } else {
        _e("Upload Image Files", 'comicpress-manager');
    }
    ?>
  </h2>
  <h3>&mdash;
    <?php 
    if (cpm_option('cpm-obfuscate-filenames-on-upload') === "none") {
        ?>
      <?php 
        _e("any existing files with the same name will be overwritten", 'comicpress-manager');
        ?>
    <?php 
    } else {
        ?>
      <?php 
        _e("uploaded filenames will be obfuscated, therefore no old files will be overwritten after uploading", 'comicpress-manager');
        ?>
    <?php 
    }
    ?>
  </h3>

  <?php 
    $target_url = add_query_arg("upload", "1");
    ?>

  <form onsubmit="$('submit').disabled=true" action="<?php 
    echo $target_url;
    ?>
" method="post" enctype="multipart/form-data">
    <input type="hidden" name="action" value="multiple-upload-file" />
    <input type="hidden" name="MAX_FILE_SIZE" value="<?php 
    echo cpm_short_size_string_to_bytes(ini_get('upload_max_filesize'));
    ?>
" />
    <div id="multiple-file-upload">
    </div>
    <div style="text-align: center">
      [<a href="#" onclick="add_file_upload(); return false"><?php 
    _e("Add file to upload", 'comicpress-manager');
    ?>
</a>]
    </div>

    <table class="form-table">
      <tr>
        <th scope="row"><?php 
    _e("Destination for uploaded files:", 'comicpress-manager');
    ?>
</th>
        <td>
          <select name="upload-destination" id="upload-destination">
            <option value="comic"><?php 
    _e("Comics folder", 'comicpress-manager');
    ?>
</option>
            <option value="archive_comic"><?php 
    _e("Archive folder", 'comicpress-manager');
    ?>
</option>
            <option value="rss_comic"><?php 
    _e("RSS feed folder", 'comicpress-manager');
    ?>
</option>
          </select>
        </td>
      </tr>
      <?php 
    if (count($cpm_config->comic_files) > 0) {
        ?>
        <tr id="overwrite-existing-holder">
          <th scope="row"><?php 
        _e("Overwrite an existing file:", 'comicpress-manager');
        ?>
</th>
          <td>
            <select name="overwrite-existing-file-choice" id="overwrite-existing-file-choice">
              <option value=""><?php 
        _e("-- no --", 'comicpress-manager');
        ?>
</option>
              <?php 
        foreach ($cpm_config->comic_files as $file) {
            $basename = pathinfo($file, PATHINFO_BASENAME);
            ?>
                <option value="<?php 
            echo $basename;
            ?>
"
                <?php 
            echo $_GET['replace'] == $basename ? "selected" : "";
            ?>
><?php 
            echo $basename;
            ?>
</option>
              <?php 
        }
        ?>
            </select>
          </td>
        </tr>
        <tr id="rebuild-thumbnails">
          <th scope="row"><?php 
        _e("Rebuild thumbnails?", 'comicpress-manager');
        ?>
</th>
          <td>
            <label>
              <input type="checkbox" id="replace-comic-rebuild-thumbnails" name="replace-comic-rebuild-thumbnails" value="yes" checked />
              <em>(if replacing a comic in the <strong>comic</strong> folder, you can also regenerate thumbnails)</em>
            </label>
          </td>
        </tr>
      <?php 
    }
    ?>
      <tr>
        <td align="center" colspan="2">
          <input class="button" id="submit" type="submit" value="<?php 
    if (extension_loaded("zip")) {
        _e("Upload Image &amp; Zip Files", 'comicpress-manager');
    } else {
        _e("Upload Image Files", 'comicpress-manager');
    }
    ?>
" />
        </td>
      </tr>
    </table>

    <div id="upload-destination-holder">
      <table class="form-table">
        <tr>
          <th scope="row"><?php 
    _e("Generate new posts for each uploaded file:", 'comicpress-manager');
    ?>
</th>
          <td>
            <input id="multiple-new-post-checkbox" type="checkbox" name="new_post" value="yes" checked />
            <label for="multiple-new-post-checkbox"><em>(if you only want to upload a series of files to replace others, leave this unchecked)</em></label>
          </td>
        </tr>
      </table>

      <div id="multiple-new-post-holder">
        <table class="form-table" id="specify-date-holder">
          <tr>
            <th scope="row"><?php 
    _e("Date for uploaded file:", 'comicpress-manager');
    ?>
</th>
            <td>
              <div class="curtime"><input type="text" id="override-date" name="override-date" /> <?php 
    _e("<em>(click to open calendar. for single file uploads only. can accept any date format parseable by <a href=\"http://us.php.net/strtotime\" target=\"php\">strtotime()</a>)</em>", 'comicpress-manager');
    ?>
</div>
            </td>
          </tr>
        </table>

        <?php 
    cpm_post_editor(420);
    ?>

        <table class="form-table">
          <tr>
            <td align="center">
              <input class="button" id="top-submit" type="submit" value="<?php 
    if (extension_loaded("zip")) {
        _e("Upload Image &amp; Zip Files", 'comicpress-manager');
    } else {
        _e("Upload Image Files", 'comicpress-manager');
    }
    ?>
" />
            </td>
          </tr>
        </table>
      </div>
    </div>
  </form>
  <script type="text/javascript">
    Calendar.setup({
      inputField: "override-date",
      ifFormat: "%Y-%m-%d",
      button: "override-date"
    });
  </script>

  <?php 
    $activity_content = ob_get_clean();
    cpm_wrap_content($help_content, $activity_content);
}
/**
 * Show the comic in the Post editor.
 */
function cpm_show_comic()
{
    global $post, $cpm_config;
    $form_target = plugin_basename(realpath(dirname(__FILE__) . "/../comicpress_manager_admin.php"));
    read_current_theme_comicpress_config();
    $has_comic_file = false;
    $in_comics_category = false;
    $thumbnails_to_generate = cpm_get_thumbnails_to_generate();
    $post_categories = array();
    $comic_categories = array();
    extract(cpm_normalize_storyline_structure());
    foreach ($category_tree as $node) {
        $comic_categories[] = end(explode("/", $node));
    }
    if ($post->ID !== 0) {
        $post_time = time();
        foreach (array('post_date', 'post_modified', 'post_date_gmt', 'post_modified_gmt') as $time_value) {
            if (($result = strtotime($post->{$time_value})) !== false) {
                $post_time = $result;
                break;
            }
        }
        $post_categories = wp_get_post_categories($post->ID);
        if (isset($cpm_config->properties['comiccat'])) {
            $in_comics_category = count(array_intersect($comic_categories, $post_categories)) > 0;
        }
        $ok = true;
        if (cpm_get_subcomic_directory() !== false) {
            $ok = in_array(get_option('comicpress-manager-manage-subcomic'), wp_get_post_categories($post->ID));
        }
        if ($ok) {
            if (($comic = find_comic_by_date($post_time)) !== false) {
                $comic_uri = cpm_build_comic_uri($comic);
                $comic_filename = preg_replace('#^.*/([^\\/]*)$#', '\\1', $comic_uri);
                $link = "<strong><a target=\"comic_window\" href=\"{$comic_uri}\">{$comic_filename}</a></strong>";
                $date_root = substr($comic_filename, 0, strlen(date(CPM_DATE_FORMAT)));
                $thumbnails_found = cpm_find_thumbnails_by_filename($comic);
                $icon_file_to_use = $comic;
                foreach (array('rss', 'archive') as $type) {
                    if (isset($thumbnails_found[$type])) {
                        $icon_file_to_use = $thumbnails_found[$type];
                    }
                }
                $icon_uri = cpm_build_comic_uri($icon_file_to_use);
                $has_comic_file = true;
            }
        }
    }
    ?>

  <script type="text/javascript">
    function show_comic() {
      if ($('comic-icon').offsetWidth > $('comic-icon').offsetHeight) {
        $('preview-comic').width = 400;
      } else {
        $('preview-comic').height = 400;
      }
      Element.clonePosition('comic-hover', 'comic-icon', { setWidth: false, setHeight: false, offsetTop: -((Element.getDimensions('comic-hover')['height'] - Element.getDimensions('comic-icon')['height'])/2) });
      $('comic-hover').show();
    }

    function hide_comic() { $('comic-hover').hide(); }

    var all_comic_categories = [ <?php 
    echo implode(",", $comic_categories);
    ?>
 ];
    var storyline_enabled = <?php 
    echo get_option('comicpress-enable-storyline-support') == 1 ? 'true' : 'false';
    ?>
;

    Event.observe(window, 'load', function() {
      $('post').encoding = "multipart/form-data";
    });
  </script>

  <?php 
    if (count($cpm_config->comic_files) == 0) {
        ?>
    <div style="border: solid #daa 1px; background-color: #ffe7e7; padding: 5px">
      <strong>It looks like this is a new ComicPress install.</strong> You should test to make
      sure uploading works correctly by visiting <a href="admin.php?page=<?php 
        echo plugin_basename(realpath(dirname(__FILE__) . '/../comicpress_manager_admin.php'));
        ?>
">ComicPress -> Upload</a>.
    </div>
  <?php 
    }
    ?>
  <?php 
    if ($has_comic_file) {
        ?>
    <div id="comic-hover" style="border: solid black 1px; position: absolute; display: none" onmouseout="hide_comic()">
      <img id="preview-comic" src="<?php 
        echo $comic_uri;
        ?>
" />
    </div>
    <a href="#" onclick="return false" onmouseover="show_comic()"><img id="comic-icon" src="<?php 
        echo $icon_uri;
        ?>
" height="100" align="right" /></a>
    <p>
      <?php 
        printf(__("The comic that will be shown with this post is %s.", 'comicpress-manager'), $link);
        ?>
      <?php 
        _e("Mouse over the icon to the right to see a larger version of the image.", 'comicpress-manager');
        ?>
    </p>

    <?php 
        if (cpm_get_subcomic_directory() !== false) {
            printf(__("Comic files will be uploaded to the <strong>%s</strong> comic subdirectory.", 'comicpress-manager'), get_cat_name(get_option('comicpress-manager-manage-subcomic')));
        }
        ?>

    <?php 
        if (count($thumbnails_found) > 0) {
            ?>
      <p><?php 
            _e("The following thumbnails for this comic were also found:", 'comicpress-manager');
            ?>
        <?php 
            foreach ($thumbnails_found as $type => $file) {
                ?>
          <a target="comic_window" href="<?php 
                echo cpm_build_comic_uri(CPM_DOCUMENT_ROOT . '/' . $file);
                ?>
"><?php 
                echo $type;
                ?>
</a>
        <?php 
            }
            ?>
      </p>
    <?php 
        }
        ?>
  <?php 
    }
    ?>

  <?php 
    if (cpm_option("cpm-edit-post-integrate") == 1) {
        ?>
    <p><em><strong>ComicPress Manager Edit Post file management is enabled.</strong></em> Any changes to post date, or deleting this post, will affect any associated comic files.</p>
  <?php 
    }
    ?>

  <p><strong>NOTE: Upload errors will not be reported.</strong> If you are having trouble uploading files, use the <a href="admin.php?page=<?php 
    echo plugin_basename(realpath(dirname(__FILE__) . '/../comicpress_manager_admin.php'));
    ?>
">ComicPress -> Upload</a> screen.</p>

  <table class="form-table">
    <tr>
      <th scope="row">
        <?php 
    if ($has_comic_file) {
        ?>
          <?php 
        _e("Replace This Image", 'comicpress-manager');
        ?>
        <?php 
    } else {
        ?>
          <?php 
        _e("Upload a New Single Image", 'comicpress-manager');
        ?>
        <?php 
    }
    ?>
      </th>
      <td>
        <input type="hidden" name="MAX_FILE_SIZE" value="<?php 
    echo cpm_short_size_string_to_bytes(ini_get('upload_max_filesize'));
    ?>
" />
        <input type="file" id="comicpress-replace-image" name="comicpress-replace-image" class="button" /> <?php 
    echo empty($thumbnails_to_generate) ? "" : __("<em>(thumbnails will be generated)</em>", 'comicpress-manager');
    ?>
<br />
        <?php 
    if ($has_comic_file) {
        ?>
          <input type="hidden" name="overwrite-existing-file-choice" value="<?php 
        echo $comic_filename;
        ?>
" />
        <?php 
    }
    ?>
        <input type="hidden" name="upload-destination" value="comic" />
        <input type="hidden" name="thumbnails" value="yes" />
      </td>
      <script type="text/javascript">
        var handle_click = function() {
          var any_checked = false
          $$('input[name="post_category[]"]').each(function(i) {
            if (i.type == "radio") {
              if (i.checked) {
                any_checked = true;
              }
            }
          });

          if (!any_checked) {
            var has_checked = false;
            $$('input[name="post_category[]"]').each(function(i) {
              if (!has_checked) {
                if (i.type == "radio") {
                  i.checked = true;
                  has_checked = true;
                }
              }
            });
          }
        };

        [ 'click', 'blur' ].each(function(w) { $('comicpress-replace-image').observe(w, handle_click); });
      </script>
    </tr>
    <?php 
    if (cpm_option('cpm-skip-checks') != 1) {
        if (!function_exists('get_comic_path')) {
            ?>
          <tr>
            <td colspan="2" style="background-color: #fee; border: solid #daa 1px">
              <?php 
            _e('<strong>It looks like you\'re running an older version of ComicPress.</strong> Storyline, hovertext, and transcript are fully supported in <a href="http://comicpress.org/">ComicPress 2.7</a>. You can use hovertext and transcripts in earlier themes by using <tt>get_post_meta($post->ID, "hovertext", true)</tt> and <tt>get_post_meta($post->ID, "transcript", true)</tt>.', 'comicpress-manager');
            ?>
            </td>
          </tr>
        <?php 
        }
    }
    ?>
    <?php 
    if (get_option('comicpress-enable-storyline-support') == 1) {
        ?>
      <tr>
        <th scope="row">
          <?php 
        if (count($category_tree) > 1) {
            _e("Storyline", 'comicpress-manager');
        } else {
            _e("Category", 'comicpress-manager');
        }
        ?>
        </th>
        <td>
          <?php 
        cpm_display_storyline_checkboxes($category_tree, $post_categories, null, "post_category");
        ?>
        </td>
      </tr>
    <?php 
    }
    ?>
    <tr>
      <th scope="row"><?php 
    _e('&lt;img title&gt;/hover text', 'comicpress-manager');
    ?>
</th>
      <td><input type="text" name="comicpress-img-title" style="width:99%" value="<?php 
    echo get_post_meta($post->ID, 'hovertext', true);
    ?>
" /></td>
    </tr>
    <tr>
      <th scope="row"><?php 
    _e("Transcript", 'comicpress-manager');
    ?>
</th>
      <td>
        <textarea name="comicpress-transcript" rows="8" style="width:99%"><?php 
    echo get_post_meta($post->ID, 'transcript', true);
    ?>
</textarea>
        <?php 
    if (!is_plugin_active('what-did-they-say/what-did-they-say.php')) {
        ?>
          <p>
            <?php 
        _e('Want even better control over your transcripts? Try <a href="http://wordpress.org/extend/plugins/what-did-they-say/" target="wdts">What Did They Say?!?</a>', 'comicpress-manager');
        ?>
          </p>
        <?php 
    }
    ?>
      </td>
    </tr>
  </table>
  
  <?php 
}
/**
 * The generate thumbnails dialog.
 */
function cpm_manager_thumbnails()
{
    global $cpm_config;
    $help_content = __("<p><strong>Generate thumbnails</strong> lets you regenerate thumbnails for comic files.  This is useful if an import is not functioning because it is taking too long, or if you've changed your size or quality settings for thumbnails.</p>", 'comicpress-manager');
    ob_start();
    ?>
  
  <h2 style="padding-right:0;"><?php 
    _e("Generate Thumbnails", 'comicpress-manager');
    ?>
</h2>

  <?php 
    $ok_to_generate_thumbs = false;
    $is_generating = array();
    if ($cpm_config->get_scale_method() != CPM_SCALE_NONE) {
        foreach ($cpm_config->thumbs_folder_writable as $type => $value) {
            if ($value) {
                if ($cpm_config->separate_thumbs_folder_defined[$type] !== false) {
                    if (cpm_option("cpm-{$type}-generate-thumbnails") == 1) {
                        $ok_to_generate_thumbs = true;
                        $is_generating[] = sprintf(__('<strong>%1$s thumbnails</strong> that are <strong>%2$s</strong> pixels wide', 'comicpress-manager'), $type, $cpm_config->properties["{$type}_comic_width"]);
                    }
                }
            }
        }
    }
    if ($ok_to_generate_thumbs) {
        if (count($cpm_config->comic_files) > 0) {
            ?>
        <form onsubmit="$('submit').disabled=true" action="" method="post">
          <input type="hidden" name="action" value="generate-thumbnails" />

          <p><?php 
            printf(__("You'll be generating %s.", 'comicpress-manager'), implode(__(" and ", 'comicpress-manager'), $is_generating));
            ?>
</p>

          <?php 
            _e("Thumbnails to regenerate (<em>to select multiple comics, [Ctrl]-click on Windows &amp; Linux, [Command]-click on Mac OS X</em>):", 'comicpress-manager');
            ?>
          <br />
          <select style="height: auto; width: 445px" id="select-comics-dropdown" name="comics[]" size="<?php 
            echo min(count($cpm_config->comic_files), 30);
            ?>
" multiple>
            <?php 
            foreach ($cpm_config->comic_files as $file) {
                $filename = pathinfo($file, PATHINFO_BASENAME);
                $any_thumbs = false;
                foreach (array('rss', 'archive') as $type) {
                    $thumb_file = str_replace($cpm_config->properties['comic_folder'], $cpm_config->properties["{$type}_comic_folder"], $file);
                    if (file_exists($thumb_file)) {
                        $any_thumbs = true;
                        break;
                    }
                }
                ?>
<option value="<?php 
                echo $filename;
                ?>
"><?php 
                echo $filename . ($any_thumbs ? " (*)" : "");
                ?>
</option>
            <?php 
            }
            ?>
          </select>
          <div style="text-align: center">
            <input class="button" type="submit" id="submit" value="<?php 
            _e("Generate Thumbnails for Selected Comics", 'comicpress-manager');
            ?>
" />
          </div>
        </form>
      <?php 
        } else {
            ?>
        <p><?php 
            _e("You haven't uploaded any comics yet.", 'comicpress-manager');
            ?>
</p>
      <?php 
        }
    } else {
        ?>
      <p>
        <?php 
        _e("<strong>You either aren't able to generate any thumbnails for your comics, or you have disabled thumbnail generation.</strong> This may be caused by a configuration error. Have you set up your RSS and archive directories and <a href=\"?page=" . plugin_basename(realpath(dirname(__FILE__) . '/../comicpress_manager_admin.php')) . "-config\">configured your ComicPress theme to use them</a>? Do you have either the GD library or Imagemagick installed?", 'comicpress-manager');
        ?>
      </p>
    <?php 
    }
    ?>

  <?php 
    $activity_content = ob_get_clean();
    cpm_wrap_content($help_content, $activity_content);
}
/**
 * The config editor dialog.
 */
function cpm_manager_cpm_config()
{
    global $cpm_config, $wpmu_version;
    include realpath(dirname(__FILE__)) . '/../cpm_configuration_options.php';
    $is_table = false;
    ob_start();
    ?>

  <h2 style="padding-right:0;"><?php 
    _e("Edit ComicPress Manager Config", 'comicpress-manager');
    ?>
</h2>

  <form action="" method="post" id="config-editor">
    <input type="hidden" name="action" value="update-cpm-config" />
      <?php 
    foreach ($configuration_options as $option) {
        $ok = true;
        if ($wpmu_version) {
            $ok = !isset($option['strip-wpmu']);
        }
        if ($option['type'] == "categories") {
            $ok = count($category_checkboxes = cpm_generate_additional_categories_checkboxes($option['id'], explode(",", $result))) > 0;
        }
        if ($ok) {
            ?>
          <?php 
            if (is_string($option)) {
                ?>
            <?php 
                if ($is_table) {
                    ?>
              </table></div>
              <?php 
                    $is_table = false;
                }
                ?>
            <h3><?php 
                echo $option;
                ?>
</h3>
          <?php 
            } else {
                if (!$is_table) {
                    ?>
              <div style="overflow: hidden"><table class="form-table">
              <?php 
                    $is_table = true;
                }
                ?>
            <tr>
              <th scope="row"><?php 
                echo $option['name'];
                ?>
</th>
              <td>
                <?php 
                $result = cpm_option($option['id']);
                switch ($option['type']) {
                    case "checkbox":
                        $ok = true;
                        if (isset($option['imagemagick-only'])) {
                            $ok = $cpm_config->get_scale_method() == CPM_SCALE_IMAGEMAGICK;
                        }
                        if ($ok) {
                            ?>
                        <input type="checkbox" id="<?php 
                            echo $option['id'];
                            ?>
" name="<?php 
                            echo $option['id'];
                            ?>
" value="yes" <?php 
                            echo $result == 1 ? " checked" : "";
                            ?>
 />
                      <?php 
                        }
                        break;
                    case "text":
                        ?>
                      <input type="text" size="<?php 
                        echo isset($option['size']) ? $option['size'] : 10;
                        ?>
" name="<?php 
                        echo $option['id'];
                        ?>
" value="<?php 
                        echo $result;
                        ?>
" />
                      <?php 
                        break;
                    case "textarea":
                        ?>
                      <textarea name="<?php 
                        echo $option['id'];
                        ?>
" rows="4" cols="30"><?php 
                        echo $result;
                        ?>
</textarea>
                      <?php 
                        break;
                    case "dropdown":
                        $dropdown_parts = array();
                        foreach (explode("|", $option['options']) as $dropdown_option) {
                            $parts = explode(":", $dropdown_option);
                            $key = array_shift($parts);
                            $dropdown_parts[$key] = implode(":", $parts);
                        }
                        ?>
                      <select name="<?php 
                        echo $option['id'];
                        ?>
">
                        <?php 
                        foreach ($dropdown_parts as $key => $value) {
                            ?>
                          <option value="<?php 
                            echo $key;
                            ?>
" <?php 
                            echo $result == $key ? " selected" : "";
                            ?>
><?php 
                            echo $value;
                            ?>
</option>
                        <?php 
                        }
                        ?>
                      </select>
                      <?php 
                        break;
                    case "categories":
                        echo implode("\n", $category_checkboxes);
                        break;
                }
                ?>
                <em><label for="<?php 
                echo $option['id'];
                ?>
">(<?php 
                echo $option['message'];
                ?>
)<label></em>
              </td>
            </tr>
          <?php 
            }
            ?>
        <?php 
        }
        ?>
      <?php 
    }
    ?>
      <tr>
        <td colspan="2" align="center">
          <input class="button" type="submit" value="Change Configuration" />
        </td>
      </tr>
    </table></div>
  </form>

  <div id="first-run-holder">
    <p><strong>Re-run the &quot;First Run&quot; action? This will attempt to create the default comic folders on your site.</strong></p>

    <form action="<?php 
    echo $target_page;
    ?>
" method="post">
      <input type="hidden" name="action" value="do-first-run" />
      <input class="button" type="submit" value="Yes, try and make my comic directories" />
    </form>
  </div>

  <?php 
    $activity_content = ob_get_clean();
    cpm_wrap_content(null, $activity_content);
}
/**
 * Write Comic Post is the QuomicPress panel on the Dashboard..
 */
function cpm_manager_write_comic($form_target, $show_header = true)
{
    global $cpm_config;
    $ok_to_generate_thumbs = false;
    $thumbnails_to_generate = array();
    $cpm_config->need_calendars = true;
    $thumbnails_to_generate = cpm_get_thumbnails_to_generate();
    $go_live_time_string = cpm_option('cpm-default-post-time') == "now" ? __("<strong>now</strong>", 'comicpress-manager') : sprintf(__("at <strong>%s</strong>", 'comicpress-manager'), cpm_option('cpm-default-post-time'));
    cpm_write_global_styles_scripts();
    ?>
  <div class="wrap">
    <?php 
    cpm_handle_warnings();
    ?>
    <?php 
    if (count($cpm_config->errors) == 0) {
        ?>
      <?php 
        if ($show_header) {
            ?>
        <h2><?php 
            _e("Write Comic Post", 'comicpress-manager');
            ?>
</h2>
      <?php 
        }
        ?>

      <?php 
        if (count($cpm_config->comic_files) == 0 && cpm_get_subcomic_directory() === false) {
            ?>
        <div style="border: solid #daa 1px; background-color: #ffe7e7; padding: 5px">
          <strong>It looks like this is a new ComicPress install.</strong> You should test to make
          sure uploading works correctly by visiting <a href="admin.php?page=<?php 
            echo plugin_basename(realpath(dirname(__FILE__) . '/../comicpress_manager_admin.php'));
            ?>
">ComicPress -> Upload</a>.
        </div>
      <?php 
        }
        ?>

      <p>
        <?php 
        printf(__("<strong>Upload a single comic file</strong> and immediately start editing the associated published post. Your post will be going live %s on the provided date and will be posted in the <strong>%s</strong> category.", 'comicpress-manager'), $go_live_time_string, generate_comic_categories_options('category'));
        ?>

        <?php 
        if (cpm_get_subcomic_directory() !== false) {
            printf(__("Comic files will be uploaded to the <strong>%s</strong> comic subdirectory.", 'comicpress-manager'), get_cat_name(get_option('comicpress-manager-manage-subcomic')));
        }
        ?>

        <?php 
        if (!empty($thumbnails_to_generate)) {
            $thumbnail_strings = array();
            foreach ($thumbnails_to_generate as $type) {
                $thumbnail_strings[] = sprintf(__("<strong>%s</strong> thumbnails that are <strong>%spx</strong> wide", 'comicpress-manager'), $type, $cpm_config->properties["{$type}_comic_width"]);
            }
            ?>
          <?php 
            printf(__("You'll be generating: %s.", 'comicpress-manager'), implode(", ", $thumbnail_strings));
            ?>
        <?php 
        }
        ?>
      </p>

      <form action="?page=<?php 
        echo $form_target;
        ?>
" method="post" enctype="multipart/form-data">
        <input type="hidden" name="MAX_FILE_SIZE" value="<?php 
        echo cpm_short_size_string_to_bytes(ini_get('upload_max_filesize'));
        ?>
" />
        <input type="hidden" name="action" value="write-comic-post" />
        <input type="hidden" name="upload-destination" value="comic" />
        <input type="hidden" name="thumbnails" value="yes" />
        <input type="hidden" name="new_post" value="yes" />
        <?php 
        echo generate_comic_categories_options('in-comic-category[]', false);
        ?>
        <input type="hidden" name="time" value="<?php 
        echo cpm_option('cpm-default-post-time');
        ?>
" />

        <table class="form-table">
          <tr>
            <th scope="row"><?php 
        _e('File:', 'comicpress-manager');
        ?>
</th>
            <td><input type="file" name="upload" /></td>
          </tr>
          <?php 
        if (count($category_checkboxes = cpm_generate_additional_categories_checkboxes()) > 0) {
            ?>
            <tr>
              <th scope="row"><?php 
            _e("Additional Categories:", 'comicpress-manager');
            ?>
</th>
              <td><?php 
            echo implode("\n", $category_checkboxes);
            ?>
</td>
            </tr>
          <?php 
        }
        ?>
          <tr>
            <th scope="row"><?php 
        _e("Post date (leave blank if already in filename):", 'comicpress-manager');
        ?>
</th>
            <td>
              <div class="curtime"><input type="text" id="override-date" name="override-date" /></div>
            </td>
          </tr>
          <tr>
            <td colspan="2"><input type="submit" class="button" value="Upload Comic File and Edit Post" /></td>
          </tr>
        </table>
      </form>
      <script type="text/javascript">
        Calendar.setup({
          inputField: "override-date",
          ifFormat: "%Y-%m-%d",
          button: "override-date"
        });
      </script>
    <?php 
    }
    ?>
  </div>

  <?php 
}
function cpm_action_change_dates()
{
    global $cpm_config;
    $comic_posts_to_date_shift = array();
    $comic_files_to_date_shift = array();
    $comic_post_target_date_counts = array();
    $wp_date_string_length = strlen(date("Y-m-d"));
    $cpm_date_string_length = strlen(date(CPM_DATE_FORMAT));
    $cpm_config->is_cpm_managing_posts = true;
    // find all comic files that will be shifted
    foreach ($cpm_config->comic_files as $comic_file) {
        $comic_filename = pathinfo($comic_file, PATHINFO_BASENAME);
        $filename_info = cpm_breakdown_comic_filename($comic_filename);
        $key = md5($comic_file);
        if (isset($_POST['dates'][$key])) {
            if ($_POST['dates'][$key] != $filename_info['date']) {
                $timestamp = strtotime($_POST['dates'][$key]);
                if ($timestamp !== false && $timestamp !== -1) {
                    $target_date = date(CPM_DATE_FORMAT, $timestamp);
                    $new_comic_filename = $target_date . substr($comic_filename, $cpm_date_string_length);
                    $comic_posts_to_date_shift[strtotime($filename_info['date'])] = $timestamp;
                    if (!isset($comic_post_target_date_counts[$timestamp])) {
                        $comic_post_target_date_counts[$timestamp] = 0;
                    }
                    $comic_post_target_date_counts[$timestamp]++;
                    if (!isset($comic_files_to_date_shift[$timestamp])) {
                        $comic_files_to_date_shift[$timestamp] = array($comic_filename, $new_comic_filename);
                    }
                }
            }
        }
    }
    $comic_posts_to_change = array();
    $all_posts = cpm_query_posts();
    // get the target dates for all files to move
    if (count($comic_posts_to_date_shift) > 0) {
        foreach ($all_posts as $comic_post) {
            $post_date_day = substr($comic_post->post_date, 0, $wp_date_string_length);
            $post_date_day_timestamp = strtotime($post_date_day);
            if (isset($comic_posts_to_date_shift[$post_date_day_timestamp])) {
                if ($comic_post_target_date_counts[$comic_posts_to_date_shift[$post_date_day_timestamp]] == 1) {
                    $new_post_date = date("Y-m-d", $comic_posts_to_date_shift[$post_date_day_timestamp]) . substr($comic_post->post_date, $wp_date_string_length);
                    $comic_posts_to_change[$comic_post->ID] = array($comic_post, $new_post_date);
                }
            }
        }
    }
    $final_post_day_counts = array();
    // intersect all existing and potential new posts, counting how many
    // posts occur on each day
    foreach ($all_posts as $comic_post) {
        if (isset($comic_posts_to_change[$comic_post->ID])) {
            $date_to_use = $comic_posts_to_change[$comic_post->ID][1];
        } else {
            $date_to_use = $comic_post->post_date;
        }
        $day_to_use = strtotime(substr($date_to_use, 0, $wp_date_string_length));
        if (!isset($final_post_day_counts[$day_to_use])) {
            $final_post_day_counts[$day_to_use] = 0;
        }
        $final_post_day_counts[$day_to_use]++;
    }
    $posts_moved = array();
    // move what can be moved
    foreach ($comic_posts_to_change as $id => $info) {
        list($comic_post, $new_post_date) = $info;
        $new_post_day = strtotime(substr($new_post_date, 0, $wp_date_string_length));
        if ($final_post_day_counts[$new_post_day] == 1) {
            $old_post_date = $comic_post->post_date;
            $comic_post->post_date = $new_post_date;
            $comic_post->post_date_gmt = get_gmt_from_date($new_post_date);
            wp_update_post($comic_post);
            $cpm_config->messages[] = sprintf(__('<strong>Post %1$s moved to %2$s.</strong>', 'comicpress-manager'), $id, date("Y-m-d", $new_post_day));
            $posts_moved[$new_post_day] = array($comic_post, $old_post_date);
        } else {
            $cpm_config->warnings[] = sprintf(__('<strong>Moving post %1$s to %2$s would cause two comic posts to exist on the same day.</strong>  This is not allowed in the automated process.', 'comicpress-manager'), $id, date("Y-m-d", $new_post_day));
        }
    }
    // try to move all the files, and roll back any changes to files and posts that fail
    foreach ($comic_post_target_date_counts as $target_date => $count) {
        if (!isset($final_post_day_counts[$target_date]) || $final_post_day_counts[$target_date] == 1) {
            if ($count > 1) {
                $cpm_config->warnings[] = sprintf(__("<strong>You are moving two comics to the same date: %s.</strong>  This is not allowed in the automated process.", 'comicpress-manager'), $target_date);
            } else {
                list($comic_filename, $new_comic_filename) = $comic_files_to_date_shift[$target_date];
                $roll_back_change = false;
                $calculate_do_move = array();
                foreach (array(array(__('comic folder', 'comicpress-manager'), 'comic_folder', ""), array(__('RSS feed folder', 'comicpress-manager'), 'rss_comic_folder', "rss"), array(__('Mini thumb folder', 'comicpress-manager'), 'mini_comic_folder', "rss"), array(__('archive folder', 'comicpress-manager'), 'archive_comic_folder', "archive")) as $folder_info) {
                    list($name, $property, $type) = $folder_info;
                    $do_move = true;
                    if ($type != "") {
                        if ($cpm_config->separate_thumbs_folder_defined[$type]) {
                            if ($cpm_config->thumbs_folder_writable[$type]) {
                                $do_move = cpm_option("{$type}-generate-thumbnails") == 1;
                            }
                        }
                        $calculate_do_move[$type] = $do_move;
                    }
                    if ($do_move) {
                        $path = CPM_DOCUMENT_ROOT . '/' . $cpm_config->properties[$property];
                        if (!file_exists($path)) {
                            $cpm_config->errors[] = sprintf(__('The %1$s <strong>%2$s</strong> does not exist.', 'comicpress-manager'), $name, $cpm_config->properties[$property]);
                            $roll_back_change = true;
                        } else {
                            if (file_exists($path . '/' . $comic_filename)) {
                                if (@rename($path . '/' . $comic_filename, $path . '/' . $new_comic_filename)) {
                                    $cpm_config->messages[] = sprintf(__('<strong>Rename %1$s file %2$s to %3$s.</strong>', 'comicpress-manager'), $name, $comic_filename, $new_comic_filename);
                                } else {
                                    $cpm_config->warnings[] = sprintf(__('<strong>The renaming of %1$s to %2$s failed.</strong>  Check the permissions on %3$s', 'comicpress-manager'), $comic_filename, $new_comic_filename, $path);
                                    $roll_back_change = true;
                                }
                            }
                        }
                    }
                }
                if ($roll_back_change) {
                    foreach (array(array(__('comic folder', 'comicpress-manager'), 'comic_folder', ""), array(__('RSS feed folder', 'comicpress-manager'), 'rss_comic_folder', "rss"), array(__('Mini thumb folder', 'comicpress-manager'), 'mini_comic_folder', "rss"), array(__('archive folder', 'comicpress-manager'), 'archive_comic_folder', "archive")) as $folder_info) {
                        list($name, $property) = $folder_info;
                        $do_move = isset($calculate_do_move[$type]) ? $calculate_do_move[$type] : true;
                        if ($do_move) {
                            $path = CPM_DOCUMENT_ROOT . '/' . $cpm_config->properties[$property];
                            if (file_exists($path . '/' . $new_comic_filename)) {
                                @rename($path . '/' . $new_comic_filename, $path . '/' . $comic_filename);
                                $cpm_config->messages[] = sprintf(__("<strong>Rolling back %s.</strong>", 'comicpress-manager'), $new_comic_filename);
                            }
                        }
                    }
                    if (isset($posts_moved[$target_date])) {
                        list($comic_post, $old_post_date) = $posts_moved[$target_date];
                        $comic_post->post_date = $old_post_date;
                        $comic_post->post_date_gmt = get_gmt_from_date($old_post_date);
                        wp_update_post($comic_post);
                        $cpm_config->messages[] = sprintf(__('<strong>Rename error, rolling back post %1$s to %2$s.</strong>', 'comicpress-manager'), $comic_post->ID, $old_post_date);
                    }
                }
            }
        }
    }
    $cpm_config->comic_files = cpm_read_comics_folder();
}
/**
 * The generate status dialog.
 */
function cpm_manager_status()
{
    global $cpm_config;
    $cpm_config->need_calendars = true;
    if (cpm_get_subcomic_directory() !== false) {
        $cpm_config->messages[] = sprintf(__("<strong>Reminder:</strong> You are managing the <strong>%s</strong> comic subdirectory.", 'comicpress-manager'), get_cat_name(get_option('comicpress-manager-manage-subcomic')));
    }
    if (cpm_option('cpm-skip-checks') != 1) {
        if (!function_exists('get_comic_path')) {
            $cpm_config->warnings[] = __('<strong>It looks like you\'re running an older version of ComicPress.</strong> Storyline, hovertext, and transcript are fully supported in <a href="http://comicpress.org/">ComicPress 2.7</a>. You can use hovertext and transcripts in earlier themes by using <tt>get_post_meta($post->ID, "hovertext", true)</tt> and <tt>get_post_meta($post->ID, "transcript", true)</tt>.', 'comicpress-manager');
        }
    }
    ob_start();
    ?>
  
  <h2 style="padding-right:0;"><?php 
    _e("Bulk Edit", 'comicpress-manager');
    ?>
</h2>
  <p><strong>ComicPress-related information, such as transcripts and Storyline categories for posts, and thumbnail regeneration, can be bulk edited here.</strong> To edit post-specific information, such as title and publishing date, use <strong><a href="edit.php">Edit Posts</a></strong>.

  <?php 
    $data_by_date = array();
    $dates_per_page = 15;
    foreach ($cpm_config->comic_files as $comic_filepath) {
        $comic_file = pathinfo($comic_filepath, PATHINFO_BASENAME);
        if (($result = cpm_breakdown_comic_filename($comic_file)) !== false) {
            $timestamp = strtotime($result['date']);
            $comic_date = date("Y-m-d", $timestamp);
            if (!isset($data_by_date[$comic_date])) {
                $data_by_date[$comic_date] = array();
            }
            $comic_info = array('type' => 'comic', 'timestamp' => $timestamp, 'comic_file' => $comic_file, 'file_title' => $result['converted_title'], 'comic_uri' => cpm_build_comic_uri($comic_filepath, CPM_DOCUMENT_ROOT));
            if (count($thumbnails_found = cpm_find_thumbnails_by_filename($comic_filepath)) > 0) {
                foreach ($thumbnails_found as $thumb_type => $thumb_filename) {
                    $comic_info["thumbnails_found_{$thumb_type}"] = cpm_build_comic_uri(CPM_DOCUMENT_ROOT . $thumb_filename, CPM_DOCUMENT_ROOT);
                }
            }
            $icon_file_to_use = $comic_filepath;
            foreach (array('rss', 'archive', 'mini') as $type) {
                if (isset($thumbnails_found[$type])) {
                    $icon_file_to_use = CPM_DOCUMENT_ROOT . $thumbnails_found[$type];
                }
            }
            $comic_info['icon_uri'] = cpm_build_comic_uri($icon_file_to_use, CPM_DOCUMENT_ROOT);
            $data_by_date[$comic_date][] = $comic_info;
        }
    }
    foreach (cpm_query_posts() as $comic_post) {
        $ok = true;
        if (cpm_get_subcomic_directory() !== false) {
            $ok = in_array(get_option('comicpress-manager-manage-subcomic'), wp_get_post_categories($comic_post->ID));
        }
        if ($ok) {
            $timestamp = strtotime($comic_post->post_date);
            $post_date = date("Y-m-d", $timestamp);
            if (!isset($data_by_date[$post_date])) {
                $data_by_date[$post_date] = array();
            }
            $post_info = array('type' => 'post', 'timestamp' => $timestamp, 'post_id' => $comic_post->ID, 'post_title' => $comic_post->post_title, 'post_object' => (array) $comic_post);
            $data_by_date[$post_date][] = $post_info;
        }
    }
    krsort($data_by_date);
    $all_months = array();
    foreach (array_keys($data_by_date) as $date) {
        list($year, $month, $day) = explode("-", $date);
        $key = "{$year}-{$month}";
        if (!isset($all_months[$key])) {
            $all_months[$key] = date("F Y", strtotime($date));
        }
    }
    krsort($all_months);
    if (isset($_POST['dates'])) {
        if ($_POST['dates'] != -1) {
            $new_data_by_date = array();
            foreach ($data_by_date as $date => $data) {
                if (strpos($date, $_POST['dates']) === 0) {
                    $new_data_by_date[$date] = $data;
                }
            }
            $data_by_date = $new_data_by_date;
        }
    }
    if (!isset($_GET['paged'])) {
        $_GET['paged'] = 1;
    }
    $page_links = paginate_links(array('base' => add_query_arg('paged', '%#%'), 'format' => '', 'prev_text' => __('&laquo;'), 'next_text' => __('&raquo;'), 'total' => ceil(count($data_by_date) / $dates_per_page), 'current' => $_GET['paged']));
    $total_data_by_date = count($data_by_date);
    $data_by_date = array_slice($data_by_date, ($_GET['paged'] - 1) * $dates_per_page, $dates_per_page);
    extract(cpm_normalize_storyline_structure());
    $comic_categories = array();
    foreach ($category_tree as $node) {
        $comic_categories[] = end(explode("/", $node));
    }
    $thumbnail_writes = cpm_get_thumbnails_to_generate();
    if ($total_data_by_date > 0) {
        $displaying_num_content = sprintf(__("Displaying %d-%d of %d", 'comicpress-manager'), ($_GET['paged'] - 1) * $dates_per_page + 1, min($total_data_by_date, ($_GET['paged'] - 1) * $dates_per_page + $dates_per_page), $total_data_by_date);
    } else {
        $displaying_num_content = __('No items to display', 'comicpress-manager');
    }
    ?>

  <style type="text/css">
    .storyline-checklist {
      overflow-y: scroll;
      border: solid #ddd 1px;
      height: 12em
    }

    #wpbody-content .bulk-edit-row-post .inline-edit-col-right {
      width: 42%
    }
  </style>
  <div id="table-holder">
    <form id="bulk-form" action="" method="post">
      <input type="hidden" name="action" value="batch-processing" />
      <div class="tablenav">
        <div class="alignleft actions">
          <select id="bulk-action" name="bulk-action">
            <option selected value="-1">Bulk Actions</option>
            <option value="individual">Submit Individual Changes</option>
            <option value="edit">Edit Selected</option>
            <option value="delete">Delete Selected</option>
            <option value="import">Create Posts for Selected Files</option>
            <option value="regen-thumbs">Regenerate Thumbs</option>
          </select>
          <input id="doaction" class="button-secondary action" type="submit" value="Apply" />
          <select id="dates" name="dates">
            <option selected value="-1">Show all dates</option>
            <?php 
    foreach ($all_months as $key => $date) {
        ?>
              <option value="<?php 
        echo $key;
        ?>
"<?php 
        echo $key == $_POST['dates'] ? " selected" : "";
        ?>
><?php 
        echo $date;
        ?>
</option>
            <?php 
    }
    ?>
          </select>
          <input id="dofilter" class="button-secondary action" type="submit" value="Filter" />
        </div>
        <div class="tablenav-pages">
          <span class="displaying-num"><?php 
    echo $displaying_num_content;
    ?>
</span>
          <?php 
    echo $page_links;
    ?>
        </div>
      </div>
      <table class="widefat fixed" id="status-table">
        <thead>
          <tr>
            <th class="check-column" width="3%">
              <input type="checkbox" name="toggle-all" class="batch-all" value="yes" />
            </th>
            <th width="12%"><?php 
    _e("Date", 'comicpress-manager');
    ?>
</th>
            <th width="34%"><?php 
    _e("Object Info", 'comicpress-manager');
    ?>
</th>
            <th width="61%"><?php 
    _e("Operations", 'comicpress-manager');
    ?>
</th>
          </tr>
        </thead>
        <tfoot>
          <tr>
            <th class="check-column">
              <input type="checkbox" name="toggle-all" class="batch-all" value="yes" />
            </th>
            <th><?php 
    _e("Date", 'comicpress-manager');
    ?>
</th>
            <th><?php 
    _e("Object Info", 'comicpress-manager');
    ?>
</th>
            <th><?php 
    _e("Operations", 'comicpress-manager');
    ?>
</th>
          </tr>
        </tfoot>
        <tbody>
          <tr style="display: none" id="bulk-edit" class="inline-edit-row inline-edit-row-post bulk-edit-row bulk-edit-row-post inline-editor">
            <td colspan="4">
              <fieldset class="inline-edit-col-left">
                <div class="inline-edit-col">
                  <h4>Bulk Edit Comic Posts</h4>
                  <div id="bulk-title-div">
                    <div id="bulk-titles" />
                  </div>
                </div>
              </fieldset>
              <fieldset class="inline-edit-col-center inline-edit-categories">
                <div class="inline-edit-col">
                  <span class="title inline-edit-categories-label">
                    Storyline
                  </span>
                  <div class="storyline-checklist">
                    <?php 
    cpm_display_storyline_checkboxes($category_tree, array(), "bulk-storyline");
    ?>
                  </div>
                </div>
              </fieldset>
              <fieldset class="inline-edit-col-right">
                <label>
                  <span class="title" style="width: auto; margin-right: 5px">&lt;img title&gt;/hovertext</span>
                  <input type="text" name="bulk-hovertext" style="width: 100%" />
                </label>
                <label>
                  <span class="title" style="width: auto; margin-right: 5px">Transcript</span>
                  <textarea name="bulk-transcript" style="height: 7em"></textarea>
                </label>
              </fieldset>
              <p class="submit inline-edit-save">
                <a id="cancel" class="button-secondary cancel alignleft" title="Cancel" href="#">Cancel</a>
                <input class="button-primary alignright" id="bulk-edit-submit" type="submit" value="Update Comic Posts" name="bulk-comic-edit" />
                <br class="clear" />
              </p>
            </td>
          </tr>
          <?php 
    $is_grey = false;
    $image_index = 0;
    foreach ($data_by_date as $date => $data) {
        $all_objects_by_type = array();
        foreach ($data as $object) {
            if (!isset($all_objects_by_type[$object['type']])) {
                $all_objects_by_type[$object['type']] = array();
            }
            $all_objects_by_type[$object['type']][] = $object;
        }
        $classes = array("data-row");
        if ($is_grey) {
            $classes[] = "grey";
        }
        $is_first_row = true;
        foreach ($data as $object) {
            ?>
              <tr class="<?php 
            echo implode(" ", $classes);
            ?>
">
                <?php 
            if ($is_first_row) {
                ?>
                  <td align="center" rowspan="<?php 
                echo count($data);
                ?>
">
                    <input id="batch-<?php 
                echo $date;
                ?>
" type="checkbox" class="batch" name="batch-<?php 
                echo $date;
                ?>
" value="yes" />
                  </td>
                  <td rowspan="<?php 
                echo count($data);
                ?>
"><?php 
                echo $date;
                ?>
</td>
                  <?php 
                $is_first_row = false;
            }
            ?>
                <td class="<?php 
            echo $object['type'];
            ?>
">
                  <?php 
            switch ($object['type']) {
                case "comic":
                    ?>
                        <div style="overflow: hidden">
                          <div><strong>
                            Comic: <?php 
                    echo empty($object['file_title']) ? $object['comic_file'] : $object['file_title'];
                    ?>
                          </strong></div>

                          <a href="<?php 
                    echo $object['comic_uri'];
                    ?>
"><img style="float: right; display: inline; margin-right: 5px; max-height: 100px" id="comic-icon-<?php 
                    echo $image_index;
                    ?>
" src="<?php 
                    echo $object['icon_uri'];
                    ?>
" /></a>

                        <?php 
                    $all_found = array();
                    foreach (array('rss', 'archive', 'mini') as $type) {
                        if (isset($object["thumbnails_found_{$type}"])) {
                            $all_found[$type] = $object["thumbnails_found_{$type}"];
                        }
                    }
                    if (count($all_found) > 0) {
                        ?>
                            [
                              <?php 
                        foreach ($all_found as $type => $uri) {
                            ?>
                                <a href="<?php 
                            echo $uri;
                            ?>
"><?php 
                            echo $type;
                            ?>
</a>
                              <?php 
                        }
                        ?>
                            ]
                          <?php 
                    } else {
                        ?>
                            [ No thumbnails found ]
                          <?php 
                    }
                    $image_index++;
                    ?>
                        </div>
                        <?php 
                    break;
                case "post":
                    if (isset($object['post_id'])) {
                        ?>
                          <strong>Post: <?php 
                        echo $object['post_title'];
                        ?>
</strong>
                          <em>(<?php 
                        echo $object['post_id'];
                        ?>
)</em><br />
                          [ <?php 
                        echo generate_view_edit_post_links($object['post_object']);
                        ?>
 ]
                        <?php 
                    }
                    break;
            }
            ?>
                </td>
                <td class="individual-operations <?php 
            echo $object['type'];
            ?>
">
                  <?php 
            switch ($object['type']) {
                case "comic":
                    ?>
                        <input type="hidden" name="file,<?php 
                    echo $date;
                    ?>
,<?php 
                    echo $object['comic_file'];
                    ?>
" value="yes" />

                        <?php 
                    if (count($all_objects_by_type['post']) == 0) {
                        ?>
                          <label><input type="checkbox" name="generate-post-<?php 
                        echo $object['comic_file'];
                        ?>
" value="yes" /> Generate a Post <em>(as a draft)</em></label><br />
                        <?php 
                    }
                    ?>

                        <?php 
                    if (count($thumbnail_writes) > 0) {
                        ?>
                          <label><input type="checkbox" name="regen-<?php 
                        echo $object['comic_file'];
                        ?>
" value="yes" /> Regenerate Thumbs</label><br />
                        <?php 
                    }
                    ?>

                        <label><input type="checkbox" class="delete-file" name="delete-file-<?php 
                    echo $object['comic_file'];
                    ?>
" value="yes" /> Delete Comic</label><br />
                        <!-- <input type="checkbox" id="do-redate-file-<?php 
                    echo $object['comic_file'];
                    ?>
" name="do-redate-file-<?php 
                    echo $object['comic_file'];
                    ?>
" /> Move to: <input class="needs-calendar" id="redate-file-<?php 
                    echo $object['comic_file'];
                    ?>
" type="text" name="redate-file-<?php 
                    echo $object['comic_file'];
                    ?>
" value="<?php 
                    echo $date;
                    ?>
" /> -->

                        <?php 
                    break;
                case "post":
                    $post_categories = array_intersect(wp_get_post_categories($object['post_id']), $comic_categories);
                    $post_category_names = array();
                    foreach ($post_categories as $category_id) {
                        $post_category_names[] = get_cat_name($category_id);
                    }
                    ?>
                        <input type="hidden" name="post,<?php 
                    echo $date;
                    ?>
,<?php 
                    echo $object['post_id'];
                    ?>
" value="yes" />
                        <label><input type="checkbox" class="delete-post" name="delete-post-<?php 
                    echo $object['post_id'];
                    ?>
" value="yes" /> Delete Post</label><br />
                        <!-- <input type="checkbox" id="do-redate-post-<?php 
                    echo $object['post_id'];
                    ?>
" name="do-redate-post-<?php 
                    echo $object['post_id'];
                    ?>
" /> Move to: <input type="text" class="needs-calendar" id="redate-post-<?php 
                    echo $object['post_id'];
                    ?>
" name="redate-post-<?php 
                    echo $object['post_if'];
                    ?>
" value="<?php 
                    echo $date;
                    ?>
" /><br /> -->

                        <?php 
                    $hovertext = get_post_meta($object['post_id'], 'hovertext', true);
                    if (!empty($hovertext)) {
                        ?>
                          <strong>&lt;img title&gt;/hovertext:</strong> <?php 
                        echo $hovertext;
                        ?>
<br />
                        <?php 
                    }
                    ?>

                         <?php 
                    $transcript = get_post_meta($object['post_id'], 'transcript', true);
                    if (!empty($transcript)) {
                        ?>
                          <strong>Transcript:</strong>
                          <div class="transcript-holder"><?php 
                        echo $transcript;
                        ?>
</div>
                        <?php 
                    }
                    ?>

                        <strong>Storyline:</strong> <span class="category-names"><?php 
                    echo implode(", ", $post_category_names);
                    ?>
</span> [ <a href="#" id="category-<?php 
                    echo $object['post_id'];
                    ?>
" class="category">Edit</a> ]
                        <div id="category-holder-<?php 
                    echo $object['post_id'];
                    ?>
" style="display: none">
                          <?php 
                    cpm_display_storyline_checkboxes($category_tree, $post_categories, $object['post_id']);
                    ?>
                        </div>

                        <?php 
                    break;
            }
            ?>
                </td>
              </tr>
            <?php 
        }
        $is_grey = !$is_grey;
    }
    ?>
        </tbody>
      </table>
      <div class="tablenav">
        <div class="alignleft actions">
          <select id="linked-bulk-action" name="linked-bulk-action">
            <option selected value="-1">Bulk Actions</option>
            <option value="individual">Submit Individual Changes</option>
            <option value="edit">Edit Selected</option>
            <option value="delete">Delete Selected</option>
            <option value="import">Create Posts for Selected Files</option>
            <option value="regen-thumbs">Regenerate Thumbs</option>
          </select>
          <input id="linked-doaction" class="button-secondary action" type="submit" value="Apply" />
        </div>
        <div class="tablenav-pages">
          <span class="displaying-num"><?php 
    echo $displaying_num_content;
    ?>
</span>
          <?php 
    echo $page_links;
    ?>
        </div>
      </div>
    </form>
    <script type="text/javascript">
      Event.observe(window, 'load', function() {
        Event.observe($('linked-bulk-action'), 'change', function() {
          $('bulk-action').selectedIndex = $('linked-bulk-action').selectedIndex;
        });

        Event.observe($('bulk-action'), 'change', function() {
          $('linked-bulk-action').selectedIndex = $('bulk-action').selectedIndex;
        });

        $$('.needs-calendar').each(function(element) {
          Calendar.setup({
            inputField: element.id,
            ifFormat: "%Y-%m-%d",
            button: element.id
          });

          Event.observe(element, 'click', function(e) {
            var element = Event.element(e);
            $("do-" + element.id).checked = true;
          });
        });

        $$('a.category').each(function(element) {
          Event.observe(element, 'click', function(e) {
            Event.stop(e);
            Element.toggle("category-holder-" + Event.element(e).id.replace(/^.*\-([0-9]+)$/, '$1'));
          });
        });
      });

      $$('.batch-all').each(function(element) {
        Event.observe(element, 'change', function(e) {
          $$('.batch').each(function(b) { b.checked = element.checked; });
          $$('.batch-all').each (function(b) { b.checked = element.checked; });
        });
      });

      $$('.individual-operations input[type=checkbox]').each(function(element) {
        Event.observe(element, 'click', function(e) {
          $('bulk-action').selectedIndex = 1;
          $('linked-bulk-action').selectedIndex = 1;
        });
      });

      var ok_to_submit = false;

      Event.observe($('bulk-form'), 'submit', function(e) {
        return ok_to_submit;
      });

      Event.observe($('bulk-edit-submit'), 'click', function(e) {
        ok_to_submit = true;
        $('bulk-form').submit();
      });

      Event.observe($('cancel'), 'click', function(e) {
        Event.stop(e);
        $('bulk-edit').hide();
        $('bulk-action').selectedIndex = 0;
      });

      Event.observe($('dofilter'), 'click', function(e) {
        Event.stop(e);
        $('bulk-action').selectedIndex = 0;
        ok_to_submit = true;
        $('bulk-form').submit();
      });

      ['doaction', 'linked-doaction'].each(function(which) {
        Event.observe($(which), 'click', function(e) {
          Event.stop(e);

          switch ($F('bulk-action')) {
            case -1:
            case "-1":
              break;
            case "edit":
              $('bulk-titles').innerHTML = "";
              var any_checked = false;
              $$('.batch').each(function(element) {
                if (element.checked) {
                  any_checked = true;
                  /\-(.*)$/.test(element.id);
                  var date = RegExp.$1;

                  var node = Builder.node("div", [
                    Builder.node("a", { id: date, className: "ntdelbutton", title: "Remove From Bulk Edit" }, [ "X" ]),
                    date
                  ]);

                  $('bulk-titles').insert(node);

                  Event.observe(node, 'click', function(evt) {
                    var node = Event.element(evt);
                    $('batch-' + node.id).checked = false;
                    Element.remove(node.parentNode);

                    var any_checked = false;
                    $$('.batch').each(function(n) {
                      if (n.checked) { any_checked = true; }
                    });

                    if (!any_checked) { $('bulk-edit').hide(); }
                  });
                }
              });

              if (any_checked) { $('bulk-edit').show(); }

              break;
            case "delete":
              if (confirm("<?php 
    _e('You are about to delete the selected posts and comic files. Are you sure?', 'comicpress-manager');
    ?>
")) {
                ok_to_submit = true;
                $('bulk-form').submit();
              }
              break;
            default:
              ok_to_submit = true;
              $('bulk-form').submit();
              break;
          }
        });
      });
    </script>
  </div>

  <?php 
    $activity_content = ob_get_clean();
    cpm_wrap_content($help_content, $activity_content, false);
}
function cpm_get_thumbnails_to_generate()
{
    global $cpm_config;
    $thumbnails_to_generate = array();
    if ($cpm_config->get_scale_method() != CPM_SCALE_NONE) {
        foreach ($cpm_config->thumbs_folder_writable as $type => $value) {
            if ($value) {
                if ($cpm_config->separate_thumbs_folder_defined[$type] !== false) {
                    if (cpm_option("cpm-{$type}-generate-thumbnails") == 1) {
                        $thumbnails_to_generate[] = $type;
                    }
                }
            }
        }
    }
    return $thumbnails_to_generate;
}
/**
 * The import dialog.
 */
function cpm_manager_import()
{
    global $cpm_config;
    if (cpm_get_subcomic_directory() !== false) {
        $cpm_config->messages[] = sprintf(__("<strong>Reminder:</strong> You are managing the <strong>%s</strong> comic subdirectory.", 'comicpress-manager'), get_cat_name(get_option('comicpress-manager-manage-subcomic')));
    }
    if (cpm_option('cpm-skip-checks') != 1) {
        if (!function_exists('get_comic_path')) {
            $cpm_config->warnings[] = __('<strong>It looks like you\'re running an older version of ComicPress.</strong> Storyline, hovertext, and transcript are fully supported in <a href="http://comicpress.org/">ComicPress 2.7</a>. You can use hovertext and transcripts in earlier themes by using <tt>get_post_meta($post->ID, "hovertext", true)</tt> and <tt>get_post_meta($post->ID, "transcript", true)</tt>.', 'comicpress-manager');
        }
    }
    ob_start();
    ?>
    <p>
      <?php 
    _e("<strong>Create missing posts for uploaded comics</strong> is for when you upload a lot of comics to your comic folder and want to generate generic posts for all of the new comics, or for when you're migrating from another system to ComicPress.", 'comicpress-manager');
    ?>
    </p>

    <p>
      <?php 
    $link_text = __("Bulk Edit page", 'comicpress-manager');
    $link = "<a href=\"?page=" . plugin_basename(realpath(dirname(__FILE__) . '/../comicpress_manager_admin.php')) . "-status\">{$link_text}</a>";
    printf(__("<strong>Generating thumbnails on an import is a slow process.</strong>  Some Webhosts will limit the amount of time a script can run.  If your import process is failing with thumbnail generation enabled, disable thumbnail generation, perform your import, and then visit the %s to complete the thumbnail generation process.", 'comicpress-manager'), $link);
    ?>
    </p>
  <?php 
    $help_content = ob_get_clean();
    ob_start();
    ?>
  
  <h2 style="padding-right:0;"><?php 
    _e("Create Missing Posts For Uploaded Comics", 'comicpress-manager');
    ?>
</h2>
  <h3>&mdash; <?php 
    _e("acts as a batch import process", 'comicpress-manager');
    ?>
</h3>

  <div id="import-count-information">
    <?php 
    if ($cpm_config->import_safe_exit === true) {
        _e("<strong>You are in the middle of an import operation.</strong> To continue, click the button below:", 'comicpress-manager');
        ?>
          <form action="" method="post">
            <?php 
        foreach ($_POST as $key => $value) {
            if (is_array($value)) {
                foreach ($value as $subvalue) {
                    ?>
                  <input type="hidden" name="<?php 
                    echo $key;
                    ?>
[]" value="<?php 
                    echo $subvalue;
                    ?>
" />
                <?php 
                }
            } else {
                ?>
                <input type="hidden" name="<?php 
                echo $key;
                ?>
" value="<?php 
                echo $value;
                ?>
" />
              <?php 
            }
        }
        ?>
            <input type="submit" class="button" value="Continue Creating Posts" />
          </form>
        <?php 
    } else {
        $execution_time = ini_get("max_execution_time");
        $max_posts_imported = (int) ($execution_time / 2);
        if ($execution_time == 0) {
            _e("<strong>Congratulations, your <tt>max_execution_time</tt> is 0</strong>. You'll be able to import all of your comics in one import operation.", 'comicpress-manager');
        } else {
            if ($max_posts_imported == 0) {
                _e("<strong>Something is very wrong with your configuration!.</strong>", 'comicpress-manager');
            } else {
                printf(__("<strong>Your <tt>max_execution_time</tt> is %s</strong>. You'll be able to safely import %s comics in one import operation.", 'comicpress-manager'), $execution_time, $max_posts_imported);
            }
        }
    }
    ?>
  </div>

  <table class="form-table">
    <tr>
      <th scope="row">
        <?php 
    _e("Count the number of missing posts", 'comicpress-manager');
    ?>
      </th>
      <td>
        <a href="#" onclick="return false" id="count-missing-posts-clicker"><?php 
    _e("Click here to count", 'comicpress-manager');
    ?>
</a> (<?php 
    _e("may take a while", 'comicpress-manager');
    ?>
): <span id="missing-posts-display"></span>
      </td>
    </tr>
  </table>

  <div id="create-missing-posts-holder">
    <form onsubmit="$('submit').disabled=true" action="" method="post" style="margin-top: 10px">
      <input type="hidden" name="action" value="create-missing-posts" />

      <?php 
    cpm_post_editor(435, true);
    ?>

      <table class="form-table">
        <tr>
          <td align="center">
            <input class="button" type="submit" id="submit" value="<?php 
    _e("Create posts", 'comicpress-manager');
    ?>
" />
          </td>
        </tr>
      </table>
    </form>
  </div>

  <?php 
    $activity_content = ob_get_clean();
    cpm_wrap_content($help_content, $activity_content);
}