diff --git a/presentation/lookAndFeel/knowledgeTree/documentmanagement/downloadBL.php b/presentation/lookAndFeel/knowledgeTree/documentmanagement/downloadBL.php
new file mode 100644
index 0000000..9e39088
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/documentmanagement/downloadBL.php
@@ -0,0 +1,74 @@
+, Jam Warehouse (Pty) Ltd, South Africa
+ * @package presentation.lookAndFeel.knowledgeTree.documentmanagement
+ */
+
+require_once("../../../../config/dmsDefaults.php");
+
+require_once("$default->fileSystemRoot/lib/security/permission.inc");
+require_once("$default->fileSystemRoot/lib/documentmanagement/PhysicalDocumentManager.inc");
+require_once("$default->fileSystemRoot/lib/documentmanagement/DocumentTransaction.inc");
+require_once("$default->fileSystemRoot/lib/documentmanagement/Document.inc");
+require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
+
+if (checkSession()) {
+ if (isset($fDocumentID)) {
+ $oDocument = Document::get($fDocumentID);
+ if (Permission::userHasDocumentReadPermission($fDocumentID)) {
+ if (isset($fForInlineView)) {
+ $oDocumentTransaction = & new DocumentTransaction($fDocumentID, "Inline view", VIEW);
+ $oDocumentTransaction->create();
+ PhysicalDocumentManager::inlineViewPhysicalDocument($fDocumentID);
+ } else {
+ //if the user has document read permission, perform the download
+ if (isset($fVersion)) {
+ // we're downloading an old version of the document
+ $oDocumentTransaction = & new DocumentTransaction($fDocumentID, "Document version $fVersion downloaded", DOWNLOAD);
+ $oDocumentTransaction->create();
+
+ // if the document is currently checked out, and we're the version we're downloading
+ // is the same as the current version, then download the current version of the document
+ if ($oDocument->getIsCheckedOut() && ($fVersion == $oDocument->getVersion())) {
+ PhysicalDocumentManager::downloadPhysicalDocument($fDocumentID);
+ } else {
+ PhysicalDocumentManager::downloadVersionedPhysicalDocument($fDocumentID, $fVersion);
+ }
+ } else {
+ // download the current version
+ $oDocumentTransaction = & new DocumentTransaction($fDocumentID, "Document downloaded", DOWNLOAD);
+ $oDocumentTransaction->create();
+ PhysicalDocumentManager::downloadPhysicalDocument($fDocumentID);
+ }
+ }
+ } else {
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ $oPatternCustom = new PatternCustom();
+ if ($oDocument) {
+ $oPatternCustom->setHtml("getFolderID()) . "\">
graphicsUrl/widgets/back.gif\" border=\"0\" />\n");
+ } else {
+ $oPatternCustom->setHtml("
graphicsUrl/widgets/back.gif\" border=\"0\" />\n");
+ }
+ $main->setErrorMessage("Either you do not have permission to view this document, or the document you have chosen no longer exists on the file system.");
+ $main->setCentralPayload($oPatternCustom);
+ $main->render();
+ }
+ } else {
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ $oPatternCustom = new PatternCustom();
+ $oPatternCustom->setHtml("
graphicsUrl/widgets/back.gif\" border=\"0\" />\n");
+ $main->setErrorMessage("You have not chosen a document to view");
+ $main->setCentralPayload($oPatternCustom);
+ $main->render();
+ }
+}
+?>
\ No newline at end of file