private function parsemenu(&$str)
 {
     $result =& $this->theme->templates;
     $s = $this->parsetag($str, 'menulist', '$template.menu');
     if ($s == '') {
         return $this->copy('menu');
     }
     $default =& $this->default->templates;
     $item = trim($this->parsetag($s, 'item', '$item'));
     $result['menu.item.submenu'] = $this->parsetag($item, 'submenu', '$submenu', $default['menu.item.submenu']);
     $result['menu.item'] = $item != '' ? $item : $default['menu.item'];
     $result['menu.current'] = $this->parsetag($s, 'current', '', $default['menu.current']);
     //fix old version
     if ($this->fixold) {
         if (strpos($result['menu.item.submenu'], '%')) {
             $result['menu.item.submenu'] = sprintf($result['menu.item.submenu'], '$items');
         }
         if (strpos($result['menu.item'], '%')) {
             $result['menu.item'] = sprintf($result['menu.item'], '$link', '$title', '$submenu');
         }
         if (strpos($result['menu.current'], '%')) {
             $result['menu.current'] = sprintf($result['menu.current'], '$link', '$title', '$submenu');
         }
     }
     //hover
     $nohover = '<!--nohover-->';
     if (is_int($i = strpos($s, $nohover))) {
         $result['menu.hover'] = 'false';
         $s = substr_replace($s, '', $i, strlen($nohover));
     } elseif ($id = tcontentfilter::getidtag('*', $s)) {
         preg_match('/\\<(\\w*)/', $item, $t);
         $tag = $t[1];
         $result['menu.hover'] = 'true';
         $js = sprintf('		<script type="text/javascript">
   $(document).ready(function() {
 $("#%s %s").hover(function(){$(this).addClass("jshover");}, function(){$(this).removeClass("jshover");});
   });
   </script>', $id, $tag);
         $s = $js . $s;
     }
     $s = $this->deletespaces($s);
     if ($s == '') {
         if (!isset($result['menu.hover'])) {
             $result['menu.hover'] = $menu->hover;
         }
         $result['menu'] = $default['menu'];
     } else {
         if (!isset($result['menu.hover'])) {
             $result['menu.hover'] = 'false';
         }
         $result['menu'] = $s;
     }
 }