{$context->oPage->requireJSResource('thirdpartyjs/MochiKit/Base.js')}
{$context->oPage->requireJSResource('thirdpartyjs/MochiKit/Async.js')}
{$context->oPage->requireJSResource('thirdpartyjs/MochiKit/Iter.js')}
{$context->oPage->requireJSResource('thirdpartyjs/MochiKit/DateTime.js')}
{$context->oPage->requireJSResource('thirdpartyjs/MochiKit/DOM.js')}

<!-- unforunate, but (currently) necessary -->

{$context->oPage->requireJSResource('resources/js/taillog.js')}
{$context->oPage->requireJSResource('resources/js/conditional_usage.js')}

{$context->oPage->requireCSSResource('resources/css/kt-treewidget.css')}

{capture assign=sJavascript}
{literal}
function swapInItem(elementId, req) {
    var cp = getElement(elementId);
    cp.innerHTML = req.responseText;
    initialiseConditionalFieldsets();
}

function xmlFailure(err) {
    ; // bad me - fail silently.
}

function handleErrorsInResponse(req) { 
    ; // bad me - fail silently.
}

function swapElementFromRequest(elementId, url) {
    var deff = doSimpleXMLHttpRequest(url);
    var cp = getElement(elementId);
    cp.innerHTML="loading...";
    deff.addCallback(partial(swapInItem, elementId));
    deff.addErrback(handleErrorsInResponse);
}

function getMetadataForType(id) {
    swapElementFromRequest('type_metadata_fields', '{/literal}{$rootUrl}{literal}/presentation/lookAndFeel/knowledgeTree/documentmanagement/getTypeMetadataFields.php?fDocumentTypeID=' + id);
}

function document_type_changed() {
    typeselect = getElement('add-document-type');
    getMetadataForType(typeselect.value);
}

function startupMetadata() {
    typeselect = getElement('add-document-type');
    addToCallStack(typeselect, "onchange", document_type_changed, false);
    document_type_changed();
}

addLoadEvent(startupMetadata);
{/literal}
{/capture}
{$context->oPage->requireJSStandalone($sJavascript)}

<h2>{i18n}Add a document{/i18n}</h2>

<form method="POST" action="{$smarty.server.PHP_SELF|addQueryString:"postExpected=1&fFolderId="}{$context->oFolder->getId()}" enctype="multipart/form-data">
<fieldset><legend>{i18n}Add a document{/i18n}</legend>
<input type="hidden" name="action" value="upload">
<input type="hidden" name="fFolderId" value="{$context->oFolder->getId()}">

{foreach from=$add_fields item=oWidget }
  {$oWidget->render()}
{/foreach}

<p class="descriptiveText">{i18n}If you do not need to modify any the metadata
for this document (see below), then you can simply click "Add" here to finish the
process and add the document.{/i18n}</p>
<input type="submit" name="submit" value="{i18n}Add{/i18n}" />

<hr />

<h3>{i18n}Additional Information about this Document{/i18n}</h3>
<p class="descriptiveText">{i18n}Document Metadata allows you to provide additional,
important information about this document that can be used to classify and report
on its contents.  The exact information required depends on the <strong>Document Type</strong>
you selected above.  Some of this information may be <strong>required</strong>, so please
review the list of requested information carefully before finishing the process.{/i18n}</p>

<div id="generic_metadata_fields">
{foreach item=oFieldset from=$generic_fieldsets}
    {$oFieldset->renderEdit($document_data)}
{/foreach}
</div>

<div id="type_metadata_fields">
{$type_metadata_fields}
</div>

<div class="form_actions">
  <input type="submit" name="submit" value="{i18n}Add{/i18n}" />
</div>
<input type="hidden" name="postReceived" value="1" />
</form>
