<?php

include_once 'config.inc';
$username = $_POST['middmediaUploadUsername'];
$directory = $_POST['middmediaUploadDirectory'];
$file = base64_encode(file_get_contents($_FILES['async-upload']['tmp_name']));
$filename = $_FILES['async-upload']['name'];
$filetype = $_FILES['async-upload']['type'];
$filesize = $_FILES['async-upload']['size'];
$response = "Success";
try {
    $client = new SoapClient(MIDDMEDIA_SOAP_WSDL);
    $types = $client->serviceGetTypes($username, 'blogs', MIDDMEDIA_SOAP_KEY);
    $extension = substr($filename, strrpos($filename, '.') + 1);
    if (in_array($extension, $types)) {
        $client->serviceAddVideo($username, 'blogs', MIDDMEDIA_SOAP_KEY, $directory, $file, $filename, $filetype, $filesize);
    } else {
        $response = $extension . " is not a supported file type.";
    }
} catch (Exception $ex) {
    $response = $ex->faultstring;
}
header('Location: ' . $_POST['_wp_http_referer'] . "&response=" . $response);
function middmedia_media_upload($middmedia)
{
    $submiturl = "/wp-content/plugins/middmedia/upload.php";
    global $current_user;
    get_currentuserinfo();
    $client = new SoapClient(MIDDMEDIA_SOAP_WSDL);
    $dirinfo = $client->serviceGetDirs($current_user->user_login, 'blogs', MIDDMEDIA_SOAP_KEY);
    $directories = array();
    foreach ($dirinfo as $directory) {
        $directories[] = $directory['name'];
    }
    // Find media and insert it into posts
    echo "<form method='post' enctype='multipart/form-data' id='file-form' action='{$submiturl}' class='media-upload-form type-form validate'>";
    echo "<p>Welcome, <span\n  id='middmediaCurrentUser'>{$current_user->user_login}</span>! Need help? View the <a href=\"http://go.middlebury.edu/middmedia?help\" target=\"_blank\">MiddMedia Documentation</a>.</p>";
    echo "<div id='deleteConfirmation'></div>";
    if (isset($_GET['response'])) {
        echo "<div id='middmediaResponse'><h3>Result</h3>" . htmlentities($_GET['response']) . "</div>";
    } else {
        echo "<div id='middmediaResponse' style='display: none;'></div>";
    }
    echo "<h3>Insert Media</h3>";
    echo "<p><select id='middmediaDirectory' name='middmediaDirectory'>";
    foreach ($directories as $directory) {
        echo "<option value='{$directory}'>{$directory}</option>";
    }
    echo "</select>";
    echo "<input class='button' type='button' name='show' value='Show Files' onclick='middmediaShowFiles()' /></p>";
    echo "<p id='middmediaFiles' style='display:none;'>";
    echo "<table id='middmediaFilesTable' width='600' cellpadding='1' cellspacing='0'><tbody id='middmediaFilesTableBody'>";
    echo "</tbody></table></p>";
    // Upload new media
    echo "<hr /><h3>Upload Media</h3>";
    echo "<p>For large files or multi-file uploads, use the central <a href=\"http://go.middlebury.edu/middmedia\" target=\"_blank\">MiddMedia Service</a>.</p>";
    $types = $client->serviceGetTypes($current_user->user_login, 'blogs', MIDDMEDIA_SOAP_KEY);
    echo "<p>Allowed file types: " . implode(", ", $types) . "</p>";
    echo "<input name='post_id' id='post_id' value='{$_GET['post_id']}' type='hidden' />";
    echo "<input name='middmediaUploadUsername' value='{$current_user->user_login}' type='hidden' />";
    echo "<input id='tab' name='tab' value='middmedia' type='hidden' />";
    $uri = $_SERVER['REQUEST_URI'];
    if (strpos($uri, '&response') !== false) {
        $uri = substr($uri, 0, strpos($uri, '&response'));
    }
    echo "<input name='_wp_http_referer' value='{$_SERVER['REQUEST_URI']}' type='hidden' />";
    echo "<p><select id='middmediaUploadDirectory' name='middmediaUploadDirectory'>";
    foreach ($directories as $directory) {
        echo "<option value='{$directory}'>{$directory}</option>";
    }
    echo "</select>";
    echo "<input id='async-upload' name='async-upload' type='file' />";
    echo "<input class='button' type='submit' name='html-upload' value='Upload File' /></p><hr />";
    // Quotas
    echo "<h3>Quota</h3><table border='1' cellpadding='5'><tr><td>Directory</td><td>Used</td><td>Remaining</td></tr>";
    foreach ($dirinfo as $dir) {
        echo "<tr><td>{$dir['name']}</td><td>" . bytes_to_readable($dir['bytesused']) . "</td><td>" . bytes_to_readable($dir['bytesavailable']) . "</td></tr>";
    }
    echo "</table>";
    echo "<br class='clear' /></form><br />";
}