function create_cmd_output(&$action, &$a_disk, &$disk, &$partition, &$umount)
{
    $cmdout = CMDOUT_PARA;
    ob_end_flush();
    $retvalue = <<<EOD
{$cmdout}

EOD;
    switch ($action) {
        case "fsck":
            /* Get the id of the disk. */
            $id = array_search_ex($disk, $a_disk, "name");
            /* Get the filesystem type of the disk. */
            $type = $a_disk[$id]['fstype'];
            /* Check if disk is mounted. */
            $ismounted = disks_check_mount_fullname($disk . $partition);
            /* Umount disk if necessary. */
            if ($umount && $ismounted) {
                $diskinit_str = "<strong class='red'>" . gettext("Note") . ":</strong> " . gettext("The disk is currently mounted! The mount point will be removed temporary to perform selected command.") . "<br /><br />";
                $retvalue .= <<<EOD
              <div id="ismounted_out" style="font-family: Courier, monospace; font-size: small;">
              <pre style="font-family: Courier, monospace; font-size: small; font-style: italic;">{$diskinit_str}</pre>
              </div>

EOD;
                disks_umount_fullname($disk . $partition);
            }
            switch ($type) {
                case "":
                case "ufs":
                case "ufs_no_su":
                case "ufsgpt":
                case "ufsgpt_no_su":
                    $button = create_toggle_button("Checking disk", "ufsgn_fsck_out");
                    $cmd = "/sbin/fsck_ufs -y -f " . escapeshellarg($disk . $partition);
                    $out = create_cmdout_container("ufsgn_fsck_out", $cmd);
                    $retvalue .= assemble_cmdout($button, $out);
                    break;
                case "gmirror":
                case "gvinum":
                case "graid5":
                    $diskinit_str = sprintf(gettext("Use <a href='%s'>RAID tools</a> for this disk!"), "disks_raid_{$type}_tools.php");
                    $retvalue .= <<<EOD
                <div id="graid5_out" style="display: none; font-family: Courier, monospace; font-size: small;">
                <pre style="font-family: Courier, monospace; font-size: small; font-style: italic;">{$diskinit_str}</pre>
                </div>
                
EOD;
                    break;
                case "msdos":
                    $button = create_toggle_button("Checking disk", "dos_fsck_out");
                    $cmd = "/sbin/fsck_msdosfs -y -f " . escapeshellarg($disk . $partition);
                    $out = create_cmdout_container("dos_fsck_out", $cmd);
                    $retvalue .= assemble_cmdout($button, $out);
                    break;
            }
            /* Mount disk if necessary. */
            if ($umount && $ismounted) {
                disks_mount_fullname($disk . $partition);
            }
            break;
    }
    return $retvalue;
}
function create_format_output($disk, $type, $notinitmbr)
{
    $ddetails = DISK_DETAILS_PARA;
    ob_end_flush();
    $retvalue = <<<EOD
{$ddetails}

EOD;
    // Erase MBR if not checked
    if (!$notinitmbr) {
        $button = create_toggle_button("Erasing MBR and all paritions", "mbr_out");
        $cmd = "dd if=/dev/zero of=" . escapeshellarg($disk) . " bs=32k count=640";
        $out = create_cmdout_container("mbr_out", $cmd);
        $retvalue .= assemble_cmdout($button, $out);
    } else {
        $diskinit_str = "Keeping the MBR and all partitions";
        $retvalue .= <<<EOD
                <div id="mbr_out" style="font-family: Courier, monospace; font-size: small;">
                <pre style="font-family: Courier, monospace; font-size: small; font-style: italic;">{$diskinit_str}</pre>
                </div>
                
EOD;
    }
    // end if
    switch ($type) {
        case "ufs":
            $button = create_toggle_button("Creating one partition", "ufs_fdisk_out");
            /* Initialize disk */
            $cmd = "/sbin/fdisk -I -b /boot/mbr " . escapeshellarg($disk);
            $out = create_cmdout_container("ufs_fdisk_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            $button = create_toggle_button("Initializing partition", "ufs_dd_out");
            /* Initialise the partition (optional) */
            $cmd = "/bin/dd if=/dev/zero of=" . escapeshellarg($disk) . "s1 bs=32k count=16";
            $out = create_cmdout_container("ufs_dd_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            $button = create_toggle_button("Creating BSD label", "ufs_label_out");
            /* Create s1 label */
            $cmd = "/sbin/bsdlabel -w " . escapeshellarg($disk) . "s1 auto";
            $out = create_cmdout_container("ufs_label_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            $button = create_toggle_button("Creating Filesystem", "ufs_newfs_out");
            /* Create filesystem */
            $cmd = "/sbin/newfs -U " . escapeshellarg($disk) . "s1";
            $out = create_cmdout_container("ufs_newfs_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            break;
            // end case "ufs":
        // end case "ufs":
        case "ufs_no_su":
            $button = create_toggle_button("Creating one partition", "ufsn_fdisk_out");
            /* Initialize disk */
            $cmd = "/sbin/fdisk -I -b /boot/mbr " . escapeshellarg($disk);
            $out = create_cmdout_container("ufsn_fdisk_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            $button = create_toggle_button("Initializing partition", "ufsn_dd_out");
            /* Initialise the partition (optional) */
            $cmd = "/bin/dd if=/dev/zero of=" . escapeshellarg($disk) . "s1 bs=32k count=16";
            $out = create_cmdout_container("ufsn_dd_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            $button = create_toggle_button("Creating BSD label", "ufsn_label_out");
            /* Create s1 label */
            $cmd = "/sbin/bsdlabel -w " . escapeshellarg($disk) . "s1 auto";
            $out = create_cmdout_container("ufsn_label_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            $button = create_toggle_button("Creating Filesystem", "ufsn_newfs_out");
            /* Create filesystem */
            $cmd = "/sbin/newfs -m 0 " . escapeshellarg($disk) . "s1";
            $out = create_cmdout_container("ufsn_newfs_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            break;
            // end ufs_no_su
        // end ufs_no_su
        case "ufsgpt":
            $button = create_toggle_button("Destroying old GTP information", "ufsg_gptd_out");
            /* Destroy GPT partition table */
            $cmd = "/sbin/gpt destroy " . escapeshellarg($disk);
            $out = create_cmdout_container("ufsg_gptd_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            $button = create_toggle_button("Creating GPT partition", "ufsg_gptc_out");
            /* Create GPT partition table */
            $cmd = array("/sbin/gpt create -f " . escapeshellarg($disk), "/sbin/gpt add -t ufs " . escapeshellarg($disk));
            $out = create_cmdout_container("ufsg_gptc_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            $button = create_toggle_button("Creating Filesystem with Soft Updates", "ufsg_newfs_out");
            /* Create filesystem */
            $cmd = "/sbin/newfs -U " . escapeshellarg($disk) . "p1";
            $out = create_cmdout_container("ufsg_newfs_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            break;
            // end case "ufsgpt":
        // end case "ufsgpt":
        case "ufsgpt_no_su":
            $button = create_toggle_button("Destroying old GTP information", "ufsgn_gpt_out");
            /* Destroy GPT partition table */
            $cmd = "/sbin/gpt destroy " . escapeshellarg($disk);
            $out = create_cmdout_container("ufsgn_gpt_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            $button = create_toggle_button("Creating GPT partition", "ufsgn_gptc_out");
            /* Create GPT partition table */
            $cmd = array("/sbin/gpt create -f " . escapeshellarg($disk), "/sbin/gpt add -t ufs " . escapeshellarg($disk));
            $out = create_cmdout_container("ufsgn_gptc_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            $button = create_toggle_button("Creating Filesystem without Soft Updates", "ufsgn_newfs_out");
            /* Create filesystem */
            $cmd = "/sbin/newfs -m 0 " . escapeshellarg($disk) . "p1";
            $out = create_cmdout_container("ufsgn_newfs_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            break;
            // end case "ufsgpt_no_su":
        // end case "ufsgpt_no_su":
        case "softraid":
            $button = create_toggle_button("Initializing disk", "softr_fdisk_out");
            /* Initialize disk */
            $cmd = "/sbin/fdisk -I -b /boot/mbr " . escapeshellarg($disk);
            $out = create_cmdout_container("softr_fdisk_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            $button = create_toggle_button("Initializing partition", "softr_dd_out");
            /* Initialise the partition (optional) */
            $cmd = "/bin/dd if=/dev/zero of=" . escapeshellarg($disk) . "s1 bs=32k count=16";
            $out = create_cmdout_container("softr_dd_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            $button = create_toggle_button("Delete old gmirror information", "softr_dd_out");
            /* Delete old gmirror information */
            $cmd = "/sbin/gmirror clear " . escapeshellarg($disk);
            $out = create_cmdout_container("softr_dd_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            break;
            // end case "softraid":
        // end case "softraid":
        case "msdos":
            $button = create_toggle_button("Initialize disk", "dos_fdisk_out");
            /* Initialize disk */
            $cmd = "/sbin/fdisk -I -b /boot/mbr " . escapeshellarg($disk);
            $out = create_cmdout_container("dos_fdisk_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            $button = create_toggle_button("Initialize partion", "dos_dd_out");
            /* Initialise the partition (optional) */
            $cmd = "/bin/dd if=/dev/zero of=" . escapeshellarg($disk) . "s1 bs=32k count=16";
            $out = create_cmdout_container("dos_dd_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            $button = create_toggle_button("Creating BSD label", "dos_label_out");
            /* Initialise the partition (optional) */
            $cmd = "/sbin/bsdlabel -w " . escapeshellarg($disk) . "s1 auto";
            $out = create_cmdout_container("dos_label_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out);
            $button = create_toggle_button("Creating Filesystem", "dos_newfs_out");
            /* Initialise the partition (optional) */
            $a_out = "/sbin/newfs_msdos -F 32 " . escapeshellarg($disk) . "s1";
            $out = create_cmdout_container("dos_newfs_out", $cmd);
            $retvalue .= assemble_cmdout($button, $out, true);
            break;
            // end case "msdos":
    }
    // end switch
    return $retvalue;
}