/**
  * @ignore
  */
 protected function before_line()
 {
     parent::before_line();
     if ($this->_in_table) {
         // start a row
         $classes = array();
         switch ($this->_status) {
             case 'RPTHEADER':
                 $classes[] = 'rptheader';
                 $this->_idx++;
                 $classes[] = 'rptheader' . $this->_idx;
                 $this->_out .= '<tr class="' . implode(' ', $classes) . '">';
                 break;
             case 'HEADER':
                 $classes[] = 'header';
                 $this->_idx++;
                 if ($this->_curgroup) {
                     $classes[] = 'hdr-' . munge_string_to_url($this->_curgroup->get_column()) . $this->_idx;
                 }
                 $this->_out .= '<tr class="' . implode(' ', $classes) . '">';
                 break;
             case 'FOOTER':
                 $classes[] = 'footer';
                 $this->_idx++;
                 if ($this->_curgroup) {
                     $classes[] = 'ftr-' . munge_string_to_url($this->_curgroup->get_column()) . $this->_idx;
                 }
                 $this->_out .= '<tr class="' . implode(' ', $classes) . '">';
                 break;
             case 'RPTFOOTER':
                 $classes[] = 'rptfooter';
                 $this->_idx++;
                 $classes[] = 'rptfooter' . $this->_idx;
                 $this->_out .= '<tr class="' . implode(' ', $classes) . '">';
                 break;
             default:
                 $this->_out .= '<tr>';
                 break;
         }
     }
 }