public function run()
 {
     $attachedfiles = new attachedfiles();
     $attachedfiles_session = $attachedfiles->getSession();
     //Хеш безопасности целосности параметров формы
     //сейчас используется для загрузчика файлов
     $param_hash = tservices_helper::getOrderUrlHash(array((int) $this->order_id, $attachedfiles_session), $this->uid);
     //собираем шаблон
     $this->render('t-service-order-messages-form', array('order_id' => $this->order_id, 'param_hash' => $param_hash, 'is_scroll' => $this->is_scroll, 'attachedfiles_session' => $attachedfiles_session));
 }
Ejemplo n.º 2
0
function CreateCommentForm($backto, $top_id, $message_id, $commune_id, $om, $page = 0, $action = 'Create.post', $mod, $adv = 0, $draft_id = 0, $attachedfiles_session = '')
{
    global $session;
    session_start();
    commune::RestoreMarkedAttach($message_id);
    $objResponse = new xajaxResponse();
    if ($action == 'Create.post') {
        // Комментируем сообщение.
        $objResponse->assign($backto, 'style.position', 'static');
        $objResponse->assign($backto, 'innerHTML', __commPrntCommentForm($commune_id, $om, $page, $action, $top_id, NULL, $message_id, NULL, NULL, !$page ? 'Topic' : NULL, $mod));
    } else {
        // Выводим форму с атрибутами сообщения.
        $objResponse->assign($backto, 'style.position', 'static');
        $objResponse->assign($backto, 'innerHTML', __commPrntCommentForm($commune_id, $om, $page, $action, $top_id, $message_id, NULL, NULL, NULL, !$page ? 'Topic' : NULL, $mod, 0, $draft_id));
    }
    $objResponse->script(" var editMsg = document.getElementById('{$backto}');\n    if(__commLastOpenedForm!=editMsg) {\n      try { \n        if(!__commLastOpenedForm) {\n          var ___acf = document.getElementById('idAlertedCommentForm');\n          if(___acf && ___acf.parentNode)\n            __commLastOpenedForm = ___acf.parentNode;\n        }\n        __commLastOpenedForm.innerHTML = ''; __commLastOpenedForm.style.position='absolute'; \n      } catch(e) {}\n    }\n    __commLastOpenedForm  = editMsg;\n    __commLastOpenedForm.action = '{$action}';\n\t\n\tpoll.init('Commune', document.getElementById('" . $backto . "'), " . commune::POLL_ANSWERS_MAX . ", '" . $_SESSION['CommunePoll_Sess'] . "');\n\tif (document.getElementById('question')) maxChars('question', 'polls_error', " . commune::POLL_QUESTION_CHARS_MAX . ");\n\teditMsg.scrollIntoView(true);\n\t//new mAttach(document.getElementById('files_block'), " . (commune::MAX_FILES - $adv) . ");\n        //mA = new mAttach2(document.getElementById('files_block'), " . (commune::MAX_FILES - $adv) . ", {p:'btn-add', m:'btn-del', nv:true});\n  ");
    $js = "var attachedfiles_list = new Array();\n";
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/attachedfiles.php';
    $attachedfiles = new attachedfiles($attachedfiles_session);
    $attachedfiles_tmpcomm_files = commune::getAttachedFiles($message_id);
    if ($attachedfiles_tmpcomm_files) {
        $attachedfiles_comm_files = array();
        foreach ($attachedfiles_tmpcomm_files as $attachedfiles_comm_file) {
            $attachedfiles_comm_files[] = $attachedfiles_comm_file;
        }
        $attachedfiles->setFiles($attachedfiles_comm_files);
    }
    $attachedfiles_files = $attachedfiles->getFiles();
    if ($attachedfiles_files) {
        $n = 0;
        foreach ($attachedfiles_files as $attachedfiles_file) {
            $js .= "attachedfiles_list[{$n}] = new Object;\n";
            $js .= "attachedfiles_list[{$n}].id = '" . md5($attachedfiles_file['id']) . "';\n";
            $js .= "attachedfiles_list[{$n}].name = '{$attachedfiles_file['orig_name']}';\n";
            $js .= "attachedfiles_list[{$n}].path = '" . WDCPREFIX . "/{$attachedfiles_file['path']}{$attachedfiles_file['name']}';\n";
            $js .= "attachedfiles_list[{$n}].size = '" . ConvertBtoMB($attachedfiles_file['size']) . "';\n";
            $js .= "attachedfiles_list[{$n}].type = '{$attachedfiles_file['type']}';\n";
            ++$n;
        }
    }
    $js .= "attachedFiles.init('attachedfiles', \n                               '" . $attachedfiles->getSession() . "',\n                               attachedfiles_list, \n                               '" . commune::MAX_FILES . "',\n                               '" . commune::MAX_FILE_SIZE . "',\n                               '" . implode(', ', $GLOBALS['disallowed_array']) . "',\n                               'commune',\n                               '" . get_uid(false) . "'\n                            );";
    $objResponse->script($js);
    $objResponse->call('initWysiwyg');
    $objResponse->call('tawlTextareaInit');
    if ($action != 'Create.post') {
        $objResponse->script('DraftInit(4);');
    }
    return $objResponse;
}
Ejemplo n.º 3
0
    $n = 0;
    foreach ($attachedfiles_files as $attachedfiles_file) {
        echo "attachedfiles_list[{$n}] = new Object;\n";
        echo "attachedfiles_list[{$n}].id = '" . md5($attachedfiles_file['id']) . "';\n";
        echo "attachedfiles_list[{$n}].name = '{$attachedfiles_file['orig_name']}';\n";
        echo "attachedfiles_list[{$n}].path = '" . WDCPREFIX . "/{$attachedfiles_file['path']}{$attachedfiles_file['name']}';\n";
        echo "attachedfiles_list[{$n}].size = '" . ConvertBtoMB($attachedfiles_file['size']) . "';\n";
        echo "attachedfiles_list[{$n}].type = '{$attachedfiles_file['type']}';\n";
        ++$n;
    }
}
?>
                            
                            attachedFiles.initComm('attachedfiles', 
                                               '<?php 
echo $attachedfiles->getSession();
?>
',
                                               attachedfiles_list, 
                                               '<?php 
echo wizard::MAX_FILE_COUNT;
?>
',
                                               '<?php 
echo wizard::MAX_FILE_SIZE;
?>
',
                                               '<?php 
echo implode(', ', $GLOBALS['disallowed_array']);
?>
',
Ejemplo n.º 4
0
/**
* Публикация черновика
*
* @param    int     $draft_id   ID черновика
* @param    int     $type       Тип черновика
* @param    bool    $is_edit    false - публикация нового поста/прокта, true - публикация существующего поста/проекта
*/
function PostDraft($draft_id, $type, $is_edit = false)
{
    $objResponse = new xajaxResponse();
    session_start();
    $draft_id = intval($draft_id);
    $uid = get_uid(false);
    if ($uid) {
        require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/drafts.php";
        $draft = drafts::getDraft($draft_id, $uid, $type);
        if ($draft) {
            switch ($type) {
                case 2:
                    // Личка
                    require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/attachedfiles.php";
                    $attachedfiles = new attachedfiles($attachedfiles_session);
                    $attachedfiles_tmpdraft_files = drafts::getAttachedFiles($draft_id, 3);
                    if ($attachedfiles_tmpdraft_files) {
                        $attachedfiles_draft_files = array();
                        foreach ($attachedfiles_tmpdraft_files as $attachedfiles_draft_file) {
                            $attachedfiles_draft_files[] = $attachedfiles_draft_file;
                        }
                        $attachedfiles->setFiles($attachedfiles_draft_files);
                    }
                    $objResponse->assign("f_attachedfiles_session", "value", $attachedfiles->getSession());
                    $objResponse->assign("f_msg", "innerHTML", $draft['msg']);
                    $objResponse->assign("f_msg_to", "value", $draft['to_login']);
                    $objResponse->assign("f_draft_id", "value", $draft['id']);
                    $objResponse->assign("f_to_login", "value", $draft['to_login']);
                    $objResponse->script("var attrAction = document.createAttribute('action'); attrAction.value='/contacts/?from=" . $draft['to_login'] . "'; \$('f_frm').setAttributeNode(attrAction);");
                    $objResponse->script('$("f_frm").submit();');
                    break;
                case 3:
                    // Блоги
                    require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/blogs.php";
                    $objResponse->assign("f_draft_id", "value", $draft['id']);
                    $objResponse->assign("f_msg", "value", $draft['msgtext']);
                    $objResponse->assign("f_yt_link", "value", $draft['yt_link']);
                    if ($draft['is_close_comments'] == 't') {
                        $objResponse->script('$("f_is_close_comments").set("checked",true);');
                    }
                    if ($draft['is_private'] == 't') {
                        $objResponse->script('$("f_is_private").set("checked",true);');
                    }
                    $objResponse->assign("f_category", "value", $draft['category'] . '|0');
                    if ($is_edit) {
                        $blogmsg = blogs::GetMsgInfo($draft['post_id'], $error, $perm);
                        $objResponse->assign("f_msg_name", "value", $draft['title']);
                        $objResponse->assign("f_tr", "value", $blogmsg['thread_id']);
                        $objResponse->assign("f_olduser", "value", $blogmsg['fromuser_id']);
                        $objResponse->assign("f_reply", "value", $draft['post_id']);
                        $objResponse->assign("f_action", "value", 'change');
                        $objResponse->assign("f_msg_name", "value", $draft['title']);
                        $objResponse->assign("f_draft_post_id", "value", $draft['post_id']);
                        $objResponse->script("var attrAction = document.createAttribute('action'); attrAction.value='/blogs/view.php?id=" . $draft['post_id'] . "'; \$('f_frm').setAttributeNode(attrAction);");
                    } else {
                        $objResponse->assign("f_name", "value", $draft['title']);
                        $objResponse->assign("f_sub_ord", "value", 'new');
                        $objResponse->assign("f_action", "value", 'new_tr');
                        $objResponse->script("var attrAction = document.createAttribute('action'); attrAction.value='/blogs/viewgroup.php?gr=" . $draft['category'] . "&ord=new&tr='; \$('f_frm').setAttributeNode(attrAction);");
                    }
                    require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/attachedfiles.php";
                    $attachedfiles = new attachedfiles($attachedfiles_session);
                    $attachedfiles_tmpdraft_files = drafts::getAttachedFiles($draft_id, 1);
                    if ($attachedfiles_tmpdraft_files) {
                        $attachedfiles_draft_files = array();
                        foreach ($attachedfiles_tmpdraft_files as $attachedfiles_draft_file) {
                            $attachedfiles_draft_files[] = $attachedfiles_draft_file;
                        }
                        $attachedfiles->setFiles($attachedfiles_draft_files, 1);
                    }
                    $objResponse->assign("f_attachedfiles_session", "value", $attachedfiles->getSession());
                    $objResponse->assign("f_poll_question", "value", $draft['poll_question']);
                    $objResponse->assign("f_poll_type", "value", $draft['poll_type']);
                    $answers = $draft['poll_answers'];
                    if (count($answers)) {
                        $out = '';
                        foreach ($answers as $answer) {
                            $out .= '<input type="hidden" value="' . htmlspecialchars($answer, ENT_QUOTES) . '" name="answers[]" />';
                        }
                        $objResponse->assign("f_poll_answers", "innerHTML", $out);
                    }
                    $objResponse->script('$("f_frm").submit();');
                    break;
                case 4:
                    // Сообщества
                    $objResponse->assign("f_id", "value", $draft['commune_id']);
                    $objResponse->assign("f_draft_id", "value", $draft['id']);
                    $objResponse->assign("f_category_id", "value", intval($draft['category']));
                    $objResponse->assign("f_title", "value", $draft['title']);
                    $objResponse->assign("f_msgtext", "value", $draft['msg']);
                    $objResponse->assign("f_youtube_link", "value", $draft['yt_link']);
                    if ($draft['close_comments'] == 't') {
                        $objResponse->script('$("f_close_comments").set("checked",true);');
                    }
                    if ($draft['is_private'] == 't') {
                        $objResponse->script('$("f_is_private").set("checked",true);');
                    }
                    if ($is_edit) {
                        $objResponse->assign("f_draft_post_id", "value", $draft['post_id']);
                        $objResponse->assign("f_top_id", "value", $draft['post_id']);
                        $objResponse->assign("f_message_id", "value", $draft['post_id']);
                        $objResponse->assign("f_page", "value", 0);
                        $objResponse->script("var attrAction = document.createAttribute('action'); attrAction.value='" . getFriendlyURL('commune', $draft['post_id']) . "'; \$('f_frm').setAttributeNode(attrAction);");
                        $objResponse->assign("f_action", "value", "do.Edit.post");
                    } else {
                        $objResponse->script("var attrAction = document.createAttribute('action'); attrAction.value='" . getFriendlyURL('commune_commune', $draft['commune_id']) . "#o'; \$('f_frm').setAttributeNode(attrAction);");
                        $objResponse->assign("f_action", "value", "do.Create.post");
                    }
                    require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/attachedfiles.php";
                    $attachedfiles = new attachedfiles($attachedfiles_session);
                    if (!$is_edit) {
                        $attachedfiles_tmpdraft_files = drafts::getAttachedFiles($draft_id, 2);
                        if ($attachedfiles_tmpdraft_files) {
                            $attachedfiles_draft_files = array();
                            foreach ($attachedfiles_tmpdraft_files as $attachedfiles_draft_file) {
                                $attachedfiles_draft_files[] = $attachedfiles_draft_file;
                            }
                            $attachedfiles->setFiles($attachedfiles_draft_files, 1);
                        }
                    }
                    $objResponse->assign("f_attachedfiles_session", "value", $attachedfiles->getSession());
                    $objResponse->assign("f_poll_question", "value", $draft['poll_question']);
                    $objResponse->assign("f_poll_type", "value", $draft['poll_type']);
                    $answers = $draft['poll_answers'];
                    if (count($answers)) {
                        $out = '';
                        foreach ($answers as $answer) {
                            $out .= '<input type="hidden" value="' . htmlspecialchars($answer, ENT_QUOTES) . '" name="answers[]" />';
                        }
                        $objResponse->assign("f_poll_answers", "innerHTML", $out);
                    }
                    $objResponse->script('$("f_frm").submit();');
                    break;
            }
        }
    }
    return $objResponse;
}
/**
 * Новое сообщение в заказе ТУ
 * 
 * @global type $orderModel
 * @param type $order_id
 * @param type $message
 * @param type $sess
 * @return \xajaxResponse
 */
function tservicesOrdersNewMessage($order_id, $message, $sess)
{
    global $orderModel;
    $uid = get_uid(false);
    $objResponse =& new xajaxResponse();
    $orderModel->attributes(array('is_adm' => hasPermissions('tservices')));
    $orderData = $orderModel->getCard($order_id, $uid);
    //Если не существует или статус не подходящий
    if (!$orderData) {
        return $objResponse;
    }
    $author_id = $uid;
    $reciever_id = is_emp() ? $orderData['frl_id'] : $orderData['emp_id'];
    //@todo: Зачем делаем reformat? это только функция ворматирования!
    //@todo: где валидация на кол-во симолов?
    //@todo: "reformat(htmlspecialchars(strip_tags(" это для кучи?
    //если есть теги то нужно показвать их а не вырезать
    $text = reformat(htmlspecialchars(strip_tags($message)), 30);
    $modelMsg = TServiceMsgModel::model();
    $mes_id = $modelMsg->add($order_id, $uid, $reciever_id, $text);
    if (!$mes_id) {
        return $objResponse;
    }
    TServiceOrderModel::touchOrder($order_id, is_emp());
    $modelMsg->addAttached($sess, $mes_id);
    $message = $modelMsg->getCard($mes_id);
    if (!$message) {
        return $objResponse;
    }
    $attachedfiles = new attachedfiles();
    $sess = $attachedfiles->getSession();
    $objResponse->script("TServices_Order_Messages.updateAttachSession('{$sess}');");
    $sHtml = Template::render(ABS_PATH . '/tu/tpl.order-msg.php', array('messages' => array($message), 'order' => $orderData));
    $mail = new pmail();
    if ($uid != $orderData['frl_id']) {
        $mail->NewTserviceMessage($uid, $orderData['frl_id'], $orderData, stripslashes($text));
    }
    if ($uid != $orderData['emp_id']) {
        $mail->NewTserviceMessage($uid, $orderData['emp_id'], $orderData, stripslashes($text));
    }
    $objResponse->script("\$('messages').getElements('div.b-layout').removeClass('b-layout_margbot_10')" . ".removeClass('b-fon')" . ".removeClass('b-fon_bg_e4faeb')" . ".removeClass('b-fon_pad_10')" . ".addClass('b-layout_margbot_20');");
    $objResponse->prepend('messages', 'innerHTML', $sHtml);
    return $objResponse;
}
Ejemplo n.º 6
0
/**
 * Редактирование документа.
 *
 * @param int $id ID документа
 *
 * @return object xajaxResponse
 */
function editDoc($id)
{
    global $objLetters;
    $objResponse = new xajaxResponse();
    if (hasPermissions('letters') && hasPermissions('adm')) {
        $doc = $objLetters->getDocument($id);
        if ($doc) {
            if (!$doc['user_status_1']) {
                $doc['user_status_1'] = null;
            }
            if (!$doc['user_status_2']) {
                $doc['user_status_2'] = null;
            }
            if (!$doc['user_status_3']) {
                $doc['user_status_3'] = null;
            }
            $objResponse->assign('letters_doc_frm_title', 'value', $doc['title']);
            $objResponse->script("\n                                \$('letters_doc_frm_delivery_cost').set('value', '');\n                                \$('letters_doc_frm_comment').set('value', '');\n                                ComboboxManager.getInput('letters_doc_frm_group').clear();\n                                ComboboxManager.getInput('letters_doc_frm_delivery').clear();\n                                ComboboxManager.getInput('letters_doc_frm_user_1').clear();\n                                ComboboxManager.getInput('letters_doc_frm_user_2').clear();\n                                ComboboxManager.getInput('letters_doc_frm_user_3').clear();\n                                ComboboxManager.getInput('letters_doc_frm_parent').clear();\n                                \$('letters_doc_frm_user1_status_data').set('value', 0);\n                                \$('letters_doc_frm_user1_status_date_data').set('value', '');\n                                \$('letters_doc_frm_user_1_status_change_lnk').set('html', statuses_list[0]);\n                                \$('letters_doc_frm_user2_status_data').set('value', 0);\n                                \$('letters_doc_frm_user2_status_date_data').set('value', '');\n                                \$('letters_doc_frm_user_2_status_change_lnk').set('html', statuses_list[0]);\n                                \$('letters_doc_frm_user3_status_data').set('value', 0);\n                                \$('letters_doc_frm_user3_status_date_data').set('value', '');\n                                \$('letters_doc_frm_user_3_status_change_lnk').set('html', statuses_list[0]);\n                                if(\$('letters_doc_frm_user_3_div').getStyle('display')=='block') {\n                                    letters.toggleUser3();\n                                }\n                            ");
            if ($doc['user_3']) {
                $objResponse->script('letters.toggleUser3();');
                $objResponse->script('ComboboxManager.getInput("letters_doc_frm_user_3").loadRecord(' . $doc['user_3'] . ', "get_user_or_company_info", "type=' . ($doc['is_user_3_company'] == 't' ? 'company' : 'user') . '");');
            }
            if ($doc['withoutourdoc'] == 't') {
                $objResponse->script('$("letters_doc_frm_withoutourdoc").set("checked", true);');
            }
            if ($doc['user_status_1'] == 2 || $doc['user_status_1'] == 3) {
                $add_status1 = ' ' . dateFormat('d.m.Y', $doc['user_status_date_1']);
            }
            if ($doc['user_status_2'] == 2 || $doc['user_status_2'] == 3) {
                $add_status2 = ' ' . dateFormat('d.m.Y', $doc['user_status_date_2']);
            }
            if ($doc['user_status_3'] == 2 || $doc['user_status_1'] == 3) {
                $add_status3 = ' ' . dateFormat('d.m.Y', $doc['user_status_date_3']);
            }
            $objResponse->script("\$('letters_doc_frm_user_1_status_change_lnk').set('html', statuses_list[" . intval($doc['user_status_1']) . "]+'{$add_status1}')");
            $objResponse->script("\$('letters_doc_frm_user_2_status_change_lnk').set('html', statuses_list[" . intval($doc['user_status_2']) . "]+'{$add_status2}')");
            $objResponse->script("\$('letters_doc_frm_user_3_status_change_lnk').set('html', statuses_list[" . intval($doc['user_status_3']) . "]+'{$add_status3}')");
            $objResponse->assign('letters_doc_frm_user1_status_data', 'value', intval($doc['user_status_1']));
            $objResponse->assign('letters_doc_frm_user2_status_data', 'value', intval($doc['user_status_2']));
            $objResponse->assign('letters_doc_frm_user3_status_data', 'value', intval($doc['user_status_3']));
            $objResponse->assign('letters_doc_frm_user1_status_date_data', 'value', $doc['user_status_date_1'] ? dateFormat('Y-m-d', $doc['user_status_date_1']) : '');
            $objResponse->assign('letters_doc_frm_user2_status_date_data', 'value', $doc['user_status_date_2'] ? dateFormat('Y-m-d', $doc['user_status_date_2']) : '');
            $objResponse->assign('letters_doc_frm_user3_status_date_data', 'value', $doc['user_status_date_3'] ? dateFormat('Y-m-d', $doc['user_status_date_3']) : '');
            if ($doc['group_id']) {
                $objResponse->script('ComboboxManager.getInput("letters_doc_frm_group").loadRecord(' . $doc['group_id'] . ', "getlettergroupinfo");');
            }
            $objResponse->script('ComboboxManager.getInput("letters_doc_frm_user_1").loadRecord(' . $doc['user_1'] . ', "get_user_or_company_info", "type=' . ($doc['is_user_1_company'] == 't' ? 'company' : 'user') . '");');
            $objResponse->script('ComboboxManager.getInput("letters_doc_frm_user_2").loadRecord(' . $doc['user_2'] . ', "get_user_or_company_info", "type=' . ($doc['is_user_2_company'] == 't' ? 'company' : 'user') . '");');
            if ($doc['parent']) {
                $objResponse->script('ComboboxManager.getInput("letters_doc_frm_parent").loadRecord(' . $doc['parent'] . ', "getletterdocinfo");');
            }
            if ($doc['date_add']) {
                $objResponse->script('ComboboxManager.getInput("letters_doc_frm_dateadd").setDate("' . preg_replace('/ .*$/', '', $doc['date_add']) . '");');
            }
            if ($doc['file_id']) {
                $cFile = new CFIle();
                $cFile->table = 'file';
                $cFile->GetInfoById($doc['file_id']);
                require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/attachedfiles.php';
                $attachedfiles = new attachedfiles('', true);
                $asid = $attachedfiles->createSessionID();
                $attachedfiles->addNewSession($asid);
                $attachedfiles->setFiles(array($cFile->id));
                $p_name = preg_replace("/\\..*\$/", '', $cFile->name);
                ob_start();
                echo '<div id="attachedfiles">';
                require_once $_SERVER['DOCUMENT_ROOT'] . '/siteadmin/letters/tpl.attachedfiles.php';
                echo '</div>';
                echo "<input type='hidden' id='attachedfiles_uid' name='attachedfiles_uid' value='" . get_uid(false) . "'>";
                echo "<input type='hidden' id='attachedfiles_action' name='attachedfiles_action' value=''>";
                echo "<input type='hidden' id='attachedfiles_delete' name='attachedfiles_delete' value=''>";
                echo "<input type='hidden' id='attachedfiles_type' name='attachedfiles_type' value='letters'>";
                echo "<input type='hidden' id='attachedfiles_session' name='attachedfiles_session' value='" . $asid . "'>";
                echo "<iframe id='attachedfiles_hiddenframe' name='attachedfiles_hiddenframe' style='display:none;'></iframe>";
                $html = ob_get_contents();
                ob_end_clean();
                $objResponse->assign('letters_div_attach', 'innerHTML', $html);
                $objResponse->script("(function () {\n\n                                    var attachedfiles_list = new Array();\n\n                                    attachedfiles_list[0] = new Object;\n                                    attachedfiles_list[0].id = '" . md5($cFile->id) . "';\n                                    attachedfiles_list[0].name = '" . $cFile->original_name . "';\n                                    attachedfiles_list[0].path = '" . WDCPREFIX . '/' . $cFile->path . $cFile->name . "';\n                                    attachedfiles_list[0].size = '" . ConvertBtoMB($cFile->size) . "';\n                                    attachedfiles_list[0].type = '" . $cFile->getExt() . "';\n\n                                    attachedFiles.initComm( 'attachedfiles', \n                                                            '{$attachedfiles->getSession()}',\n                                                            attachedfiles_list, \n                                                            '1',\n                                                            '" . letters::MAX_FILE_SIZE . "',\n                                                            '" . implode(', ', $GLOBALS['disallowed_array']) . "',\n                                                            'letters',\n                                                            '" . get_uid(false) . "'\n                                                            );\n                                    attachedFiles.newFile(attachedfiles_list[0].id, attachedfiles_list[0].name, attachedfiles_list[0].path, attachedfiles_list[0].size, attachedfiles_list[0].type);\n                                })();\n                                \$('wd_file_add').setStyle('display', 'none');\n                                ");
                $objResponse->assign('attachedfiles_uid', 'value', get_uid(false));
                $objResponse->assign('attachedfiles_session', 'value', $attachedfiles->getSession());
                $objResponse->script("\$('f_button_actionwork').removeClass('b-button_rectangle_color_disable');");
            }
            $objResponse->script('status_can_submit = true;');
            $objResponse->script("\$('letters_add_div').getChildren('div').removeClass('b-shadow_hide');");
        }
        $objResponse->script('letters.spinner.hide();');
    }
    return $objResponse;
}
function quickprjedit_get_prj($prj_id)
{
    $objResponse = new xajaxResponse();
    if (hasPermissions('projects')) {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php';
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/country.php';
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php';
        $categories = professions::GetAllGroupsLite();
        $professions = professions::GetAllProfessions();
        array_group($professions, 'groupid');
        $professions[0] = array();
        $oprj = new new_projects();
        $project = $oprj->getPrj($prj_id);
        if ($project['id']) {
            $project_categories = $oprj->getSpecs($project['id']);
            if (empty($project_categories)) {
                $project_categories[] = array('category_id' => 0, 'subcategory_id' => 0);
            }
            $html_categories = '';
            foreach ($project_categories as $project_category) {
                $html_categories .= "<div id='category_line'>\n                                        <select name='categories[]' class='b-select__select b-select__select_width_180' onchange='popupQEditPrjRefreshSubCategory(this);'>\n                                            <option value='0'>Выберите раздел</option>\n                                     ";
                foreach ($categories as $cat) {
                    if ($cat['id'] <= 0) {
                        continue;
                    }
                    $html_categories .= "<option value='{$cat['id']}' " . ($project_category['category_id'] == $cat['id'] ? ' selected' : '') . ">{$cat['name']}</option>";
                }
                $html_categories .= "</select>\n                                        <select name='subcategories[]' class='b-select__select b-select__select_width_180'>\n                                    ";
                $categories_specs = $professions[$project_category['category_id']];
                for ($i = 0; $i < sizeof($categories_specs); ++$i) {
                    $html_categories .= "<option value='{$categories_specs[$i]['id']}'" . ($categories_specs[$i]['id'] == $project_category['subcategory_id'] ? ' selected' : '') . ">{$categories_specs[$i]['profname']}</option>";
                }
                $html_categories .= "      <option value='0' " . ($project_category['subcategory_id'] == 0 ? ' selected' : '') . '>Все специализации</option>
                                        </select>
                                     </div>
                                     ';
            }
            $countries = country::GetCountries();
            if ($project['country']) {
                $cities = city::GetCities($project['country']);
            }
            $html_location = '';
            $html_location .= "<div><select id='popup_qedit_prj_fld_country' name='country' onChange='popupQEditPrjCityUpd(this.value);'><option value='0'>Страна</option>";
            foreach ($countries as $country_id => $country) {
                $html_location .= "<option value='{$country_id}' " . ($country_id == $project['country'] ? 'selected' : '') . ">{$country}</option>";
            }
            $html_location .= '</select></div>';
            $html_location .= "<div id='frm_city'><select name='city'><option value='0'>Город</option>";
            if ($cities) {
                foreach ($cities as $city_id => $city) {
                    $html_location .= "<option value='{$city_id}' " . ($city_id == $project['city'] ? 'selected' : '') . ">{$city}</option>";
                }
            }
            $html_location .= '</select>';
            $objResponse->assign('popup_qedit_prj_fld_id', 'value', $project['id']);
            $objResponse->assign('popup_qedit_prj_fld_name', 'value', htmlspecialchars_decode($project['name'], ENT_QUOTES));
            $objResponse->assign('popup_qedit_prj_fld_descr', 'value', htmlspecialchars_decode($project['descr'], ENT_QUOTES));
            $objResponse->assign('popup_qedit_prj_fld_categories', 'innerHTML', $html_categories);
            $objResponse->assign('popup_qedit_prj_fld_location', 'innerHTML', $html_location);
            $objResponse->script('$("popup_qedit_prj_fld_kind_1").set("checked", false);');
            switch ($project['kind']) {
                case 1:
                    $objResponse->script('$("popup_qedit_prj_cal1").setStyle("display", "none");');
                    $objResponse->script('$("popup_qedit_prj_cal2").setStyle("display", "none");');
                    $objResponse->script('$("popup_qedit_prj_kind").setStyle("display", "block");');
                    $objResponse->script('$("popup_qedit_prj_fld_kind_1").set("checked", true);');
                    $objResponse->script('$("popup_qedit_prj_fld_location").setStyle("display", "none");');
                    break;
                case 2:
                    //$objResponse->script('$("sbr_text_block").setStyle("display", "none");');
                    break;
                case 4:
                    $objResponse->script('$("popup_qedit_prj_cal1").setStyle("display", "none");');
                    $objResponse->script('$("popup_qedit_prj_cal2").setStyle("display", "none");');
                    $objResponse->script('$("popup_qedit_prj_kind").setStyle("display", "block");');
                    $objResponse->script('$("popup_qedit_prj_fld_kind_2").set("checked", true);');
                    $objResponse->script('$("popup_qedit_prj_fld_location").setStyle("display", "block");');
                    break;
                case 7:
                    $objResponse->script('$("popup_qedit_prj_cal1").setStyle("display", "block");');
                    $objResponse->script('$("popup_qedit_prj_cal2").setStyle("display", "block");');
                    $objResponse->script('$("popup_qedit_prj_kind").setStyle("display", "none");');
                    $objResponse->script('$("popup_qedit_prj_fld_location").setStyle("display", "none");');
                    $objResponse->script('$("popup_qedit_prj_fld_end_date").set("value", "' . date('d-m-Y', strtotime($project['end_date'])) . '");');
                    $objResponse->script('$("popup_qedit_prj_fld_win_date").set("value", "' . date('d-m-Y', strtotime($project['win_date'])) . '");');
                    break;
            }
            if ($project['pro_only'] == 't') {
                $objResponse->script('$("popup_qedit_prj_fld_pro_only").set("checked", true);');
            } else {
                $objResponse->script('$("popup_qedit_prj_fld_pro_only").set("checked", false);');
            }
            if ($project['verify_only'] == 't') {
                $objResponse->script('$("popup_qedit_prj_fld_verify_only").set("checked", true);');
            } else {
                $objResponse->script('$("popup_qedit_prj_fld_verify_only").set("checked", false);');
            }
            if ($project['prefer_sbr'] == 't') {
                $objResponse->script('$("popup_qedit_prj_fld_prefer_sbr").set("checked", true);');
            } else {
                $objResponse->script('$("popup_qedit_prj_fld_prefer_sbr").set("checked", false);');
            }
            if ($project['strong_top'] == 1) {
                $objResponse->script('$("popup_qedit_prj_fld_strong_top").set("checked", true);');
            } else {
                $objResponse->script('$("popup_qedit_prj_fld_strong_top").set("checked", false);');
            }
            /*if($project['prefer_sbr']=='t') {
                  $objResponse->script('$("popup_qedit_prj_fld_prefer_sbr").set("checked", true);');
              } else {
                  $objResponse->script('$("popup_qedit_prj_fld_prefer_sbr").set("checked", false);');
              }*/
            $objResponse->script("var mx = new MultiInput('popup_qedit_prj_fld_categories','category_line', " . (int) ($project['is_pro'] === 't') . '); mx.init();');
            require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/attachedfiles.php';
            $attchedfiles = new attachedfiles($attachedfiles_session);
            $attachedfiles_tmpprj_files = $oprj->GetAllAttach($project['id']);
            if ($attachedfiles_tmpprj_files) {
                $attachedfiles_prj_files = array();
                foreach ($attachedfiles_tmpprj_files as $attachedfiles_prj_file) {
                    $attachedfiles_prj_files[] = $attachedfiles_prj_file['file_id'];
                }
                $attchedfiles->setFiles($attachedfiles_prj_files);
            }
            $attachedfiles_files = $attchedfiles->getFiles();
            $js_attachedfiles = 'attachedfiles_list = [];';
            if ($attachedfiles_files) {
                $n = 0;
                foreach ($attachedfiles_files as $attachedfiles_file) {
                    $js_attachedfiles .= "attachedfiles_list[{$n}] = new Object;\n";
                    $js_attachedfiles .= "attachedfiles_list[{$n}].id = '" . md5($attachedfiles_file['id']) . "';\n";
                    $js_attachedfiles .= "attachedfiles_list[{$n}].name = '{$attachedfiles_file['orig_name']}';\n";
                    $js_attachedfiles .= "attachedfiles_list[{$n}].path = '" . WDCPREFIX . "/{$attachedfiles_file['path']}{$attachedfiles_file['name']}';\n";
                    $js_attachedfiles .= "attachedfiles_list[{$n}].size = '" . ConvertBtoMB($attachedfiles_file['size']) . "';\n";
                    $js_attachedfiles .= "attachedfiles_list[{$n}].type = '{$attachedfiles_file['type']}';\n";
                    ++$n;
                }
            }
            $objResponse->script($js_attachedfiles);
            $objResponse->script("attachedFiles.init('popup_qedit_prj_attachedfiles', '" . $attchedfiles->getSession() . "', attachedfiles_list, " . tmp_project::MAX_FILE_COUNT . ', ' . tmp_project::MAX_FILE_SIZE . ",'" . implode(', ', $GLOBALS['disallowed_array']) . "', 'project', " . get_uid(false) . ');');
            if ($project['is_color'] == 't') {
                $objResponse->script("\$('popup_qedit_prj_is_color').set('checked', true); popupQEditPrjToggleIsColor();");
            } else {
                $objResponse->script("\$('popup_qedit_prj_is_color').set('checked', false); popupQEditPrjToggleIsColor();");
            }
            if ($project['is_bold'] == 't') {
                $objResponse->script("\$('popup_qedit_prj_is_bold').set('checked', true); popupQEditPrjToggleIsBold();");
            } else {
                $objResponse->script("\$('popup_qedit_prj_is_bold').set('checked', false); popupQEditPrjToggleIsBold();");
            }
            if ($project['hide'] == 't') {
                $objResponse->script("\$('popup_qedit_prj_is_hide').set('checked', true); ");
            } else {
                $objResponse->script("\$('popup_qedit_prj_is_hide').set('checked', false); ");
            }
            if ($project['urgent'] == 't') {
                $objResponse->script("\$('popup_qedit_prj_is_urgent').set('checked', true); ");
            } else {
                $objResponse->script("\$('popup_qedit_prj_is_urgent').set('checked', false); ");
            }
            $objResponse->assign('popup_qedit_prj_logolink', 'value', $project['link']);
            $key = md5(uniqid($uid));
            $tmpPrj = new tmp_project($key);
            $tmpPrj->init(1, $project['id']);
            $remTPeriod = $tmpPrj->getRemainingTopPeriod($remTD, $remTH, $remTM, $remtverb);
            $addedTD = $tmpPrj->getAddedTopDays();
            $objResponse->assign('popup_qedit_prj_fld_tmpid', 'value', $key);
            if ($remTPeriod || $addedTD) {
                $objResponse->script('$("popup_qedit_prj_top_ok").set("checked", true);');
                $objResponse->script('$("popup_qedit_prj_top_ok").set("disabled", true);');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab1_days").set("value", "1");');
                $objResponse->script('$("popup_qedit_prj_top_ok_icon").setStyle("display", "block");');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab1").setStyle("display", "none");');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab2").setStyle("display", "block");');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab1_days").set("disabled", true);');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab2_c").set("checked", false);');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab2_c").set("disabled", false);');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab2_days").set("disabled", false);');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab2_days").set("value", "1");');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab2_left").set("html", "' . $remtverb . ' ' . $remTPeriod . '");');
            } else {
                $objResponse->script('$("popup_qedit_prj_top_ok").set("checked", false);');
                $objResponse->script('$("popup_qedit_prj_top_ok").set("disabled", false);');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab1_days").set("value", "1");');
                $objResponse->script('$("popup_qedit_prj_top_ok_icon").setStyle("display", "none");');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab1").setStyle("display", "none");');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab2").setStyle("display", "none");');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab1_days").set("disabled", false);');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab2_c").set("checked", false);');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab2_c").set("disabled", true);');
                $objResponse->script('$("popup_qedit_prj_top_ok_tab2_days").set("disabled", true);');
            }
            if ($project['logo_id']) {
                $logo = $tmpPrj->getLogo();
                $objResponse->script('$("popup_qedit_prj_use_logo_src").set("href", "' . WDCPREFIX . '/' . $logo['path'] . $logo['name'] . '");');
                $objResponse->script('$("popup_qedit_prj_use_logo").set("checked", true);');
                $objResponse->script('$("popup_qedit_prj_use_logo").set("disabled", true);');
                $objResponse->script('$("popup_qedit_prj_use_logo_tab").setStyle("display", "block");');
                $objResponse->script('$("popup_qedit_prj_use_logo_tab2").setStyle("display", "none");');
            } else {
                $objResponse->script('$("popup_qedit_prj_use_logo").set("checked", false);');
                $objResponse->script('$("popup_qedit_prj_use_logo").set("disabled", false);');
                $objResponse->script('$("popup_qedit_prj_use_logo_tab").setStyle("display", "none");');
                $objResponse->script('$("popup_qedit_prj_use_logo_tab2").setStyle("display", "none");');
            }
            $tmpPrj->fix();
            $objResponse->call('center_popup', '.b-shadow_center-quick');
        }
    }
    return $objResponse;
}