}
} elseif (Tools::isSubmit('quote_project')) {
    Tools::safePostVars();
    $args = $module_instance->formatProjectArguments();
    $id_product = Tools::getValue('id_product');
    $price = $module_instance->quoteProject($args, false, $id_product);
    die(Tools::jsonEncode(array('success' => true, 'project_price' => $price)));
} elseif (isset($_POST['get_document'])) {
    $messages = '';
    $id_document = Tools::getValue('id_document');
    $document = new TextMasterDocument($id_document);
    if (in_array($document->getStatus(), array('in_progress', 'in_review', 'incomplete'))) {
        Context::getContext()->smarty->assign('messages', $document->getComments());
        $messages = Context::getContext()->smarty->fetch(TEXTMASTER_TPL_DIR . 'admin/project/messages.tpl');
    }
    die(Tools::jsonEncode(array('api' => $document->getApiData(), 'id_document' => $id_document, 'comments' => $messages)));
} elseif (isset($_POST['submitComment'])) {
    $id_document = (int) Tools::getValue('id_document');
    if (!($message = pSQL(Tools::getValue('message')))) {
        $result = $module_instance->l('Comment cannot be empty', 'textmaster.ajax');
    } else {
        $document = new TextMasterDocument($id_document);
        $result = $document->comment($message);
    }
    if ($result === true) {
        Context::getContext()->smarty->assign('messages', $document->getComments());
        $messages = Context::getContext()->smarty->fetch(TEXTMASTER_TPL_DIR . 'admin/project/messages.tpl');
        die(Tools::jsonEncode(array('errors' => false, 'messages' => $messages)));
    } else {
        die(Tools::jsonEncode(array('errors' => true, 'error' => $result)));
    }