<script type="text/javascript">

    var cur_subtable = {if $cur_subtable}{$cur_subtable}{else}-1{/if};
    var last_inserted_lines_id = 2; // Последний номер вновь добавленной строки

    // массив сореджащий id  первого редактируемого поля в каждой таблице
    var first_sub_fields = { {foreach from=$all_subtables item=one_subtable}{$one_subtable.id}:{$one_subtable.first_edit_field},{/foreach} }
    ;// Первое редактируемое поле в подтаблице
    // массив содержащий id гурппируемого поля в каждой таблице
    var sub_group_fields_id = { {foreach from=$all_subtables item=one_subtable}{$one_subtable.id}:{$one_subtable.group_field}, {/foreach} }
    ;
    // массив содержащий значения сгруппированного поля для каждой группы
    var sub_groups_fields_defs = { {foreach from=$all_subtables item=one_subtable}{$one_subtable.id}:
    [{foreach from=$one_subtable.groups_fields_defs item=one_group_def}'{$one_group_def}',{/foreach}],
    {/foreach} }
    ;

    // сохранить значение
    function save_value(field_id, line_id, val) {
        $(".small_green_save").fadeIn();
        fast_edit_old = field_id + "|" + line_id + "|" + val;
        var new_val = encodeURIComponent(val);
        ajax_update.format = 0;
        ajax_update.method = "POST";
        ajax_update.call("field=" + field_id + "&line=" + line_id + "&value=" + new_val, ComRespSaveSub);
    }

    // сохранить значение мулти-селекта
    function save_value_multi(field_id, line_id, full_value) {
        $(".small_green_save").fadeIn();
        var new_val = encodeURIComponent(full_value);
        ajax_update.format = 0;
        ajax_update.method = "POST";
        ajax_update.call("field=" + field_id + "&line=" + line_id + "&value=" + new_val, ComRespSaveMultSub);
    }
    ;

    // Обновить данные на странице
    function UpdateData(resp_arr) {
        var field;
        var type_field;
        var n_tmp;
        var n;
        var n2;
        var last_select;
        var select_obj;
        var int_val;
        var dspl_val;
        for (keyVar in resp_arr) {  // меняем также значения которые изменились в результате вычислений
            if (keyVar == 0) continue; // Пропускаем первую строку
            res_arr = resp_arr[keyVar].toString().split("|");
            field_id = res_arr[1];
            line_id = res_arr[2];
            new_value = Base64.decode(res_arr[3]);
            if (res_arr[0] == "changed") {
                field = all_fields[field_id];
                type_field = field['type_field'];
                v_o = document.getElementById("fast_edit_span_" + field_id + "_" + line_id);
                if (!v_o) { // Нередактируемое поле
                    v_o = document.getElementById("sub_cell_" + field_id + "_" + line_id);
                    if (!v_o) { // Возможно изменение самой родителькой таблицы
                        v_o = document.getElementById("view_cell_" + field_id);
                        if (v_o) {
                            if ((document.getElementById("value" + field_id)) && (typeof(document.getElementById("value" + field_id).value) !== 'undefined')) {
                                document.getElementById("value" + field_id).value = new_value;
                                load_values[field_id] = new_value;
                            }
                        }
                        else
                            continue;

                    }
                    v_o.innerHTML = new_value;
                    v_o.style.background = '#fff6ad';
                    $(v_o).attr('yellow_color', '0').stop().animate({backgroundColor: '#FFFFFF'}, 1500).css('background', '');
                    if (type_field == 3) {
                        // выполняем Javascript если он вписан и поле - отображать html
                        if (field['view_html']) {
                            var re = /<script>([\s\S]*?)<\/script>/gi;
                            js_result = new_value.match(re);
                            if (js_result) {
                                var o_str, s_len = String('<script>').length;
                                for (keyVar in js_result) {
                                    if (intval(keyVar) != keyVar) continue; // Фикс для ie, т.к. могут быть не только числа
                                    o_str = js_result[keyVar];
                                    o_str = o_str.substr(s_len, o_str.length - s_len * 2 - 1);
                                    eval(o_str);
                                }
                            }
                        }
                    }
                    continue;
                }

                // Формируем вывод
                if ((type_field == 1) || (type_field == 2) || (type_field == 12) || (type_field == 3)) { // Число, строка, дата
                    if ((type_field == 2) || (type_field == 12)) new_value = new_value.substr(0, 16);
                    if (typeof(v_o.value) === 'undefined') {
                        v_o.innerHTML = new_value;
                    }
                    else
                        v_o.value = new_value;
                    v_o.style.background = '#fff6ad';
                    $(v_o).attr('yellow_color', '0').stop().animate({backgroundColor: '#FFFFFF'}, 1500).css('background', '')
                }
                if (type_field == 4) { // Список
                    if (field['mult_value'] > 0) { // Мультисписок
                        all_values = new_value.split('\r\n');
                        values_count = all_values.length;
                        n = 0;
                        // Устанавливаем значения
                        $('select[multi_select_group=' + field_id + '_' + line_id + ']').each(function (i) {
                            select_obj = this;
                            last_select = select_obj;
                            n_tmp = select_obj.nextSibling;
                            n_tmp.style.background = '#fff6ad';
                            $(n_tmp).attr('yellow_color', '0').stop().animate({backgroundColor: '#FFFFFF'}, 1500).css('background', '')
                            if (n < values_count) {  // устанавливаем значение
                                select_obj.value = all_values[n];
                                n_tmp.innerHTML = all_values[n];
                                select_obj.setAttribute("is_last", 0);
                                $(select_obj).children().each(function (y) {
                                    if (this.value != select_obj.value) { // не выбранный елемент
                                        if (in_array(this.value, all_values)) {
                                            this.style.display = 'none';
                                            this.setAttribute('disabled', 'disabled');
                                        }
                                        else {
                                            this.style.display = '';
                                            this.setAttribute('disabled', '');
                                            this.removeAttribute('disabled');
                                        }
                                    }
                                    else {
                                        this.style.display = '';
                                        this.setAttribute('disabled', '');
                                        this.removeAttribute('disabled');
                                    }
                                });
                            }
                            else if (n == values_count) { // пустое значение в конце
                                select_obj.value = "";
                                n_tmp.innerHTML = "";
                                select_obj.setAttribute("is_last", 1);
                                $(select_obj).children().each(function (y) {
                                    if (in_array(this.value, all_values)) {
                                        this.style.display = 'none';
                                        this.setAttribute('disabled', 'disabled');
                                    }
                                    else {
                                        this.style.display = '';
                                        this.setAttribute('disabled', '');
                                        this.removeAttribute('disabled');
                                    }
                                });
                            }
                            else { // лишние значения, удаляем
                                var t_span = select_obj.parentNode;
                                t_span.parentNode.removeChild(t_span);
                            }
                            n++;
                        });

                        // если новых элементов больше чем существующих - добавляем
                        for (n; n <= values_count; n++) {
                            // Создание элемента, на основе копирования последнего
                            var obj_tag_name = last_select.tagName;
                            var new_id = "fast_edit_span_" + field_id + "_" + line_id + "_" + n;
                            var newEL = document.createElement(obj_tag_name);
                            newEL.id = new_id;
                            newEL.className = "";
                            // события
                            addHandler_mult_select(newEL);

                            // атрибуты
                            newEL.setAttribute("multi_select_group", field_id + "_" + line_id);
                            newEL.setAttribute("style", last_select.getAttribute("style"));
                            newEL.style.background = '';
                            newEL.setAttribute("field_id", field_id);
                            newEL.setAttribute("line_id", line_id);
                            newEL.setAttribute("pos", n);
                            newEL.setAttribute("is_last", 1);
                            newEL.setAttribute("tabindex", last_tabindex_fast_edit);
                            $(newEL).html(last_select.innerHTML);
                            newEL.selectedIndex = -1;

                            // вставляем после текущего
                            var t_span = last_select.parentNode;
                            var next_node = t_span.nextSibling;
                            t_span.parentNode.insertBefore(newEL, next_node);
                            $(newEL).attr('add_width', '0');
                            form_fast_select_obj(newEL);

                            select_obj = newEL;
                            last_select = select_obj;
                            n_tmp = select_obj.nextSibling;

                            if (n < values_count) {  // устанавливаем значение
                                select_obj.value = all_values[n];
                                n_tmp.innerHTML = all_values[n];
                                select_obj.setAttribute("is_last", 0);
                                $(select_obj).children().each(function (y) {
                                    if (this.value != select_obj.value) { // не выбранный елемент
                                        if (in_array(this.value, all_values)) {
                                            this.style.display = 'none';
                                            this.setAttribute('disabled', 'disabled');
                                        }
                                        else {
                                            this.style.display = '';
                                            this.setAttribute('disabled', '');
                                            this.removeAttribute('disabled');
                                        }
                                    }
                                    else {
                                        this.style.display = '';
                                        this.setAttribute('disabled', '');
                                        this.removeAttribute('disabled');
                                    }
                                });
                            }
                            else if (n == values_count) { // пустое значение в конце
                                select_obj.value = "";
                                n_tmp.innerHTML = "";
                                select_obj.setAttribute("is_last", 1);
                                $(select_obj).children().each(function (y) {
                                    if (in_array(this.value, all_values)) {
                                        this.style.display = 'none';
                                        this.setAttribute('disabled', 'disabled');
                                    }
                                    else {
                                        this.style.display = '';
                                        this.setAttribute('disabled', '');
                                        this.removeAttribute('disabled');
                                    }
                                });
                            }

                        }
                    }
                    else { // Обычный список
                        v_o.value = new_value;
                        v_o.innerHTML = new_value;
                        v_o.style.background = '#fff6ad';
                        $(v_o).attr('yellow_color', '0').stop().animate({backgroundColor: '#FFFFFF'}, 1500).css('background', '')
                    }
                }
                if (type_field == 5) { // Связь
                    n_tmp = new_value.split("|");
                    int_val = n_tmp[0];
                    dspl_val = n_tmp[1];
                    v_o.setAttribute('f_value', int_val);
                    v_o.value = dspl_val;
                    v_o.style.background = '#fff6ad';
                    $(v_o).attr('yellow_color', '0').stop().animate({backgroundColor: '#FFFFFF'}, 1500).css('background', '')
                }
            }
        }
    }

    // Обработать отклик о сохранении
    function ComRespSaveSub(resp) {
        if (resp == "Invalid access.") {
            alert("Please press f5 button, for refresh login status.");
            return;
        }
        var resp_arr = resp.toString().split("\r\n");
        var res_arr = resp_arr[0].toString().split("|");
        var field_id = res_arr[2];
        var line_id = res_arr[3];
        var new_value = Base64.decode(res_arr[4]);
        var v_o;

        if (res_arr[0] == "saved") {
            // подменяем текущее значение, тем что установленно
            var new_span = document.getElementById('fast_edit_span_' + field_id + '_' + line_id)
            var field = all_fields[field_id];
            var type_field = field['type_field'];
            if ((type_field == 2) || (type_field == 12)) new_value = new_value.substr(0, 16);
            if (typeof(new_span.value) === 'undefined') {
                new_span.innerHTML = new_value;
            }
            else {
                new_span.value = new_value;
            }
            $('[yellow_color=1]').attr('yellow_color', '0').stop().animate({backgroundColor: '#FFFFFF'}, 1500).css('background', '');
            // Обновляем остальные поля
            UpdateData(resp_arr);
        }
    }

    // Обработать отклик о сохранении мултивыбора
    function ComRespSaveMultSub(resp) {
        var res_arr = resp.toString().split("|");
        var field_id = res_arr[2];
        var line_id = res_arr[3];
        var new_value = Base64.decode(res_arr[4]);
        if (res_arr[0] == "saved") {
            // Обратный отклик не реализован, просто меняем фон на белый
            $('[yellow_color=1]').attr('yellow_color', '0').stop().animate({backgroundColor: '#FFFFFF'}, 1500).css('background', '');
        }
    }

    // Пересортируем таблицу по полю
    function resort_sub_by() {
    }

    // Перезагрузить таблицу
    function reload_subtable(sub_id) {
    }
    ;

    // Добавить запись в конец
    function sub_add_new_line(group_pp) {
        $(".small_green_save").fadeIn();
        var add_group_insrt_pararms = "";

        var t_html = document.getElementById('last_subtable_tr_' + cur_subtable).innerHTML;
        var t_id = 'subtable_' + cur_subtable + "_line_-" + last_inserted_lines_id;
        var el = document.createElement('div');

        el.innerHTML = '<table><tr id="' + t_id + '">' + t_html + '</tr></table>'; // IE не позволяет менять innerHTML у TR всвязи с чем выстроено данное извращение
        var newTR = el.firstChild.rows[0];

        if ((group_pp == -1) || (group_pp == undefined)) { // Группа не задана добавляем в конец
            document.getElementById('subtable_' + cur_subtable).appendChild(newTR.parentNode.removeChild(newTR));
        }
        else {
            var insert_point = document.getElementById('subtable_' + cur_subtable + '_group_' + group_pp);
            insert_point.parentNode.insertBefore(newTR, insert_point);
            add_group_insrt_pararms = "&def_value_f" + sub_group_fields_id[cur_subtable] + "=" + sub_groups_fields_defs[cur_subtable][group_pp - 1];
        }
        newTR.style.background = '#fff6ad';

        ajax_update.format = 0;
        ajax_update.method = "POST";
        ajax_update.call("sel=insert_new_line&table_id=" + cur_subtable + "csrf={$csrf}" + "&sub_line_id={$line_id}&inserted_line=" + last_inserted_lines_id + add_group_insrt_pararms, ComRespInsrtSub);
        last_inserted_lines_id++;
    }

    function ComRespInsrtSub(resp) {
        var resp_arr = resp.toString().split("\r\n");
        var res_arr = resp_arr[0].toString().split("|");
        var instr_table_id = res_arr[1];
        var instr_line_id = res_arr[2];
        var cur_line_id = res_arr[3];
        if (res_arr[0] == "inserted") {
            var newTR = document.getElementById('subtable_' + instr_table_id + "_line_-" + cur_line_id);
            newTR.id = 'subtable_' + instr_table_id + "_line_" + instr_line_id;
            newTR.style.background = '';
            var n_html = newTR.innerHTML.replace(/_undefined_line_id_/g, instr_line_id);   // подменяем номер строки
            n_html = n_html.replace(/undefined_datepicker_class/g, 'datepicker'); // подменяем класс календаря
            n_html = n_html.replace(/undefined_fast_edit_select/g, 'fast_edit_select'); // подменяем класс селекта

            var t_id = newTR.id;
            var el = document.createElement('div');
            el.innerHTML = '<table><tr id="' + t_id + '">' + n_html + '</tr></table>'; // IE не позволяет менять innerHTML у TR всвязи с чем выстроено данное извращение
            var newTR2 = el.firstChild.rows[0];
            newTR.parentNode.replaceChild(newTR2, newTR);

            // Выставляем календарь на все невыставленные элементы
            $(".datepicker").datepicker({
                showOn: "button",
                dateFormat: lang.date_js_format,
                buttonImage: "images/calbtn.png",
                buttonImageOnly: true,
                buttonText: "{$lang.Calendar}",
                showAnim: (('\v' == 'v') ? "" : "show"),  // в ie не включаем анимацию, тормозит
            });

            // выставляем редактирование поля связь
            $(newTR2).find(".sub_edit_link_input").each(function () {
                var f_id = this.getAttribute("field_id");
                var f_width = this.getAttribute("field_width");
                var l_id = this.getAttribute("line_id");
                $(this).f_autocomplete("select_value.php?field=" + f_id + "&line=" + l_id,
                        {
                            width: f_width,
                            scroll: true,
                            scrollHeight: 300,
                            minChars: 0,
                            max: 1000,
                            formatItem: formatItem,
                            formatResult: formatResult
                        }).result(sub_fix_lnk_result);
            });

            // выполняем Javascript если он вписан
            var re = /<script>([\s\S]*?)<\/script>/gi;
            js_result = n_html.match(re);
            if (js_result) {
                var o_str, s_len = String('<script>').length;
                for (keyVar in js_result) {
                    if (intval(keyVar) != keyVar) continue; // Фикс для ie, т.к. могут быть не только числа
                    o_str = js_result[keyVar];
                    o_str = o_str.substr(s_len, o_str.length - s_len * 2 - 1);
                    eval(o_str);
                }
            }
            // Обновляем если были вычисления
            UpdateData(resp_arr);

            // ставим фокус на первое поле
            var first_field_id = first_sub_fields[instr_table_id];
            var first_field = document.getElementById("fast_edit_span_" + first_field_id + "_" + instr_line_id);
            if (first_field) {
                if ((all_fields[first_field_id]['type_field'] == 1) || (all_fields[first_field_id]['type_field'] == 3)) {
                    var evt = {currentTarget: first_field};
                    onmousedown_text(evt); // FIX IE 8, некорректно работает привязка bind на новых объектах, поэтому используем addHandler
                }
                else $(first_field).mousedown()
                $(first_field).focus();
            }

        }
    }

    // удалить строку из подтаблицы
    function sub_drop_line(line_id) {
        var t_o = document.getElementById("subtable_" + cur_subtable + "_line_" + line_id);
        t_o.style.background = '#fff6ad';
        ajax_update.format = 0;
        ajax_update.method = "POST";
        ajax_update.call("sel=delete_line&table_id=" + cur_subtable + "&line_id=" + line_id + "&csrf={$csrf}", ComRespDropSub);
    }
    ;

    function ComRespDropSub(resp) {
        var res_arr = resp.toString().split("|");
        var drop_table_id = res_arr[1];
        var drop_line_id = res_arr[2];
        if (res_arr[0] == "cancel_delete") {
            var v_o = document.getElementById('subtable_' + cur_subtable + "_line_" + drop_line_id);
            v_o.style.background = '#ffadad';
            $(v_o).stop().animate({backgroundColor: '#FFFFFF'}, 1500).css('background', '');
            // Обновляем, если были вычисления
            UpdateData(resp_arr);
        }
        if (res_arr[0] == "deleted") {
            var v_o = document.getElementById('subtable_' + cur_subtable + "_line_" + drop_line_id);
            if ((v_o) && (typeof(v_o.parentNode) !== 'undefined')) // Защита от быстрого двойного щелчка удалить
                v_o.parentNode.removeChild(v_o);
            if ($("#subtable_" + cur_subtable + " [id ^= subtable_" + cur_subtable + "_line_]").length == 0 && cur_mode == "view") $(".small_green_save").fadeOut();
            // Обновляем, если были вычисления
            UpdateData(resp_arr);
        }
    }

    // редактировать строку из подтаблицы
    function sub_edit_line(line) {
        //location.href="";
    }
    ;

    function insertTextAtCursor(text) {
        var sel, range, html;
        if (window.getSelection) {
            sel = window.getSelection();
            if (sel.getRangeAt && sel.rangeCount) {
                range = sel.getRangeAt(0);
                var t_node = document.createElement("br");
                range.insertNode(t_node);
                range.setEndAfter(t_node);
                range.setStartAfter(t_node);
                sel.removeAllRanges();
                sel.addRange(range);
            }
        } else if (document.selection && document.selection.createRange) {
            range = document.selection.createRange();
            range.pasteHTML(text);
            range.moveEnd('character', 0);
            range.select();

        }
    }

    // Вставляем стандартный перевод строки
    function insert_next_line(element) {
        insertTextAtCursor("<br>");
    }

    function sub_save_click() {
        if (cur_mode == "edit") save_line(true);
        else $(".small_green_save").fadeOut();
    }

    function switch_subtable(sub_id) {
        $(document.getElementById('tab_' + cur_subtable)).removeClass('subtabmenu_active');
        $(document.getElementById('tab_' + cur_subtable)).addClass('subtabmenu_noactive');

        $(document.getElementById('tab_' + sub_id)).removeClass('subtabmenu_noactive');
        $(document.getElementById('tab_' + sub_id)).addClass('subtabmenu_active');

        document.getElementById('sub_' + cur_subtable).style.display = 'none';
        document.getElementById('sub_' + sub_id).style.display = 'block';

        $(document.getElementById('sub_' + sub_id)).removeClass('subtable_div_hidden');
        $(document.getElementById('sub_' + cur_subtable)).addClass('subtable_div_hidden');

        document.getElementById('subtable').value = sub_id;
        $("#setting_t").attr('href', 'edit_tabrep.php?table=' + sub_id);
        cur_subtable = sub_id;
        $.cookie("subtable_id", sub_id);

        if (cur_mode == "view") $(".small_green_save").css("display", "none");
    }


    $(function () {

        $("td.subtable_head").click(function () {
            var id = $(this).attr('id').substr(4)
            var img = $(this).find('div img');
            var elem = document.getElementById('sub_' + id);

            if (elem.style.display == 'none') {
                elem.style.display = 'block';
                //img.attr('src','images/block.gif')
            }
            else {
                elem.style.display = 'none';
                //img.attr('src','images/none.gif')
            }

        });

    });

</script>
<a name="view_subtables"></a>

<table border=0 cellpadding=0 cellspacing=0 width="100%">

    {foreach from=$all_subtables item=one_subtable}
        <tr>

            <td class="subtable_head {if $one_subtable.id==$cur_subtable}subtabmenu_active{else}subtabmenu_noactive{/if}  {if $one_subtable.all_values|count_cb}subtable_header{else}subtable_empty_header{/if}"
                id="tab_{$one_subtable.id}">
                <div style="float:left;">
                    {if $lang.conf.{$one_subtable.name_table}}{$lang.conf.{$one_subtable.name_table}}{else}{$one_subtable.name_table}{/if}
                    ({$one_subtable.all_values|count_cb})
                </div>
                <div style="float:left; padding-left: 1em;">
                    {*<img src="images/none.gif">*}
                </div>
            </td>

            <td id="add_new_{$one_subtable.id}" class="subtable_head2" style="width:4em; text-align:center; padding:0;">
                <a href="view_line2.php?table={$one_subtable.id}&main_table={$table_id}&main_line={$line_id}&main_field={$one_subtable.first_link_field}{if $filter_id}&filter={$filter_id}{/if}{if $page}&page={$page}{/if}&line=new&back_url={$base64_current_url}">
                    <img src="images/green_plus.png">
                </a>
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <div id="sub_{$one_subtable.id}" {if $one_subtable.id!=$cur_subtable}class="subtable_div_hidden"{/if}
                     style="display:none; ">
                    <table width="100%" cellpadding=0 cellspacing=0 class="user_sub_table"
                           id="subtable_{$one_subtable.id}">

                        {* ==== Заголовки таблицы ==== *}

                        {* ---- Строки таблицы ----- *}
                        {assign var=editing value=0}
                        {foreach from=$one_subtable.table_fields item=one_field_rights}
                            {if $one_field_rights.view_edit}{assign var=editing value=$one_field_rights.view_edit}{/if}
                        {/foreach}
                        {foreach from=$one_subtable.all_values item=one_line key=sub_line_id}
                            <tr id="subtable_{$one_subtable.id}_line_{$sub_line_id}">
                                <td colspan="1" style="border-bottom:1px Silver solid; padding: 0.5em 0 0.5em 1em;">
                                    {counter start=0 skip=1 assign='num_val'}
                                    {foreach from=$one_line item=one_value}
                                        {if $one_value.field_id eq 0}
                                            {* Первое служебное поле *}
                                        {elseif !$one_value.hidden_tbl && !$one_value.group_field && $one_value.type_field != 7}
                                            {if $num_val > 0 and $num_val <= 3}
                                                <div class="textpad2"
                                                    id="sub_cell_{$one_value.field_id}_{$sub_line_id}">
                                                    {if $num_val ==1}<span
                                                            style="color:#0075CE; font-weight:bold;">{/if}
                                                        {$one_value.mob_value}
                                                        {if $num_val ==1}</span>{/if}
                                                </div>
                                            {/if}

                                            {counter assign='num_val'}
                                            {*if $num_val > 1 and $num_val <= 3 and $one_value.value}<br>{/if*}

                                        {/if}
                                    {/foreach}
                                </td>
                                <td class="edit_line">
                                    <a href="view_line2.php?table={$one_subtable.id}&main_table={$table_id}&main_line={$line_id}&main_field={$one_subtable.first_link_field}{if $filter_id}&filter={$filter_id}{/if}{if $page}&page={$page}{/if}&line={$sub_line_id}&view_mode&back_url={$base64_current_url}"
                                       style="text-decoration:none">
                                        <img src="images/b_view.png">
                                    </a>
                                    {if $editing}
                                        <br/>
                                        <br/>
                                        <a href="view_line2.php?table={$one_subtable.id}&main_table={$table_id}&main_line={$line_id}&main_field={$one_subtable.first_link_field}{if $filter_id}&filter={$filter_id}{/if}{if $page}&page={$page}{/if}&line={$sub_line_id}&edit_mode&back_url={$base64_current_url}">
                                            <img src="images/b_edit.png">
                                        </a>
                                    {/if}
                                </td>
                            </tr>
                        {/foreach}
                        {* ==== Строки таблицы ==== *}

                    </table>
                </div>

            </td>
        </tr>
    {/foreach}

</table>
<br>
