<?php

namespace DynamicOOOS\Mpdf\Tag;

use DynamicOOOS\Mpdf\Css\Border;
class Tr extends Tag
{
    public function open($attr, &$ahtml, &$ihtml)
    {
        $this->mpdf->lastoptionaltag = 'TR';
        // Save current HTML specified optional endtag
        $this->cssManager->tbCSSlvl++;
        $this->mpdf->row++;
        $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['nr']++;
        $this->mpdf->col = -1;
        $properties = $this->cssManager->MergeCSS('TABLE', 'TR', $attr);
        if (!$this->mpdf->simpleTables && (!isset($this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['borders_separate']) || !$this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['borders_separate'])) {
            if (!empty($properties['BORDER-LEFT'])) {
                $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['trborder-left'][$this->mpdf->row] = $properties['BORDER-LEFT'];
            }
            if (!empty($properties['BORDER-RIGHT'])) {
                $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['trborder-right'][$this->mpdf->row] = $properties['BORDER-RIGHT'];
            }
            if (!empty($properties['BORDER-TOP'])) {
                $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['trborder-top'][$this->mpdf->row] = $properties['BORDER-TOP'];
            }
            if (!empty($properties['BORDER-BOTTOM'])) {
                $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['trborder-bottom'][$this->mpdf->row] = $properties['BORDER-BOTTOM'];
            }
        }
        if (isset($properties['BACKGROUND-COLOR'])) {
            $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['bgcolor'] = $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['bgcolor'] ? $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['bgcolor'] : [];
            $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['bgcolor'][$this->mpdf->row] = $properties['BACKGROUND-COLOR'];
        } elseif (isset($attr['BGCOLOR'])) {
            $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['bgcolor'] = $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['bgcolor'] ? $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['bgcolor'] : [];
            $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['bgcolor'][$this->mpdf->row] = $attr['BGCOLOR'];
        }
        /* -- BACKGROUNDS -- */
        if (isset($properties['BACKGROUND-GRADIENT']) && !$this->mpdf->kwt && !$this->mpdf->ColActive) {
            $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['trgradients'][$this->mpdf->row] = $properties['BACKGROUND-GRADIENT'];
        }
        // FIXME: undefined variable $currblk
        if (!empty($properties['BACKGROUND-IMAGE']) && !$this->mpdf->kwt && !$this->mpdf->ColActive) {
            $ret = $this->mpdf->SetBackground($properties, $currblk['inner_width']);
            if ($ret) {
                $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['trbackground-images'][$this->mpdf->row] = $ret;
            }
        }
        /* -- END BACKGROUNDS -- */
        if (isset($properties['TEXT-ROTATE'])) {
            $this->mpdf->trow_text_rotate = $properties['TEXT-ROTATE'];
        }
        if (isset($attr['TEXT-ROTATE'])) {
            $this->mpdf->trow_text_rotate = $attr['TEXT-ROTATE'];
        }
        if ($this->mpdf->tablethead) {
            $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['is_thead'][$this->mpdf->row] = \true;
        }
        if ($this->mpdf->tabletfoot) {
            $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['is_tfoot'][$this->mpdf->row] = \true;
        }
    }
    public function close(&$ahtml, &$ihtml)
    {
        if ($this->mpdf->tableLevel) {
            // If Border set on TR - Update right border
            if (isset($this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['trborder-left'][$this->mpdf->row])) {
                $c =& $this->mpdf->cell[$this->mpdf->row][$this->mpdf->col];
                if ($c) {
                    if ($this->mpdf->packTableData) {
                        $cell = $this->mpdf->_unpackCellBorder($c['borderbin']);
                    } else {
                        $cell = $c;
                    }
                    $cell['border_details']['R'] = $this->mpdf->border_details($this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['trborder-right'][$this->mpdf->row]);
                    $this->mpdf->setBorder($cell['border'], Border::RIGHT, $cell['border_details']['R']['s']);
                    if ($this->mpdf->packTableData) {
                        $c['borderbin'] = $this->mpdf->_packCellBorder($cell);
                        unset($c['border'], $c['border_details']);
                    } else {
                        $c = $cell;
                    }
                }
            }
            $this->mpdf->lastoptionaltag = '';
            unset($this->cssManager->tablecascadeCSS[$this->cssManager->tbCSSlvl]);
            $this->cssManager->tbCSSlvl--;
            $this->mpdf->trow_text_rotate = '';
            $this->mpdf->tabletheadjustfinished = \false;
        }
    }
}
