diff --git a/livesupport/src/modules/htmlUI/var/ui_browse.class.php b/livesupport/src/modules/htmlUI/var/ui_browse.class.php
index 648c4748d..b79ab293d 100644
--- a/livesupport/src/modules/htmlUI/var/ui_browse.class.php
+++ b/livesupport/src/modules/htmlUI/var/ui_browse.class.php
@@ -1,6 +1,12 @@
 <?php
 class uiBrowse
 {
+    var $Base; // uiBase object
+    var $prefix;
+    var $col;
+    var $criteria;
+    var $reloadUrl;
+
     function uiBrowse(&$uiBase)
     {
         $this->Base       =& $uiBase;
@@ -10,19 +16,25 @@ class uiBrowse
         #$this->results    =& $_SESSION[constant('UI_'.$this->prefix.'_SESSNAME')]['results'];
         $this->reloadUrl  = UI_BROWSER.'?popup[]=_reload_parent&popup[]=_close';
 
-        if (empty($this->criteria['limit']))     $this->criteria['limit']    = UI_BROWSE_DEFAULT_LIMIT;
-        if (empty($this->criteria['filetype']))  $this->criteria['filetype'] = UI_FILETYPE_ANY;
+        if (empty($this->criteria['limit'])) {
+            $this->criteria['limit']    = UI_BROWSE_DEFAULT_LIMIT;
+        }
+        if (empty($this->criteria['filetype'])) {
+            $this->criteria['filetype'] = UI_FILETYPE_ANY;
+        }
 
         if (!is_array($this->col)) {
             ## init Categorys
             $this->setDefaults();
         }
-    }
+    } // constructor
+
 
     function setReload()
     {
         $this->Base->redirUrl = $this->reloadUrl;
-    }
+    } // fn setReload
+
 
     function setDefaults($reload=FALSE)
     {
@@ -32,11 +44,11 @@ class uiBrowse
         $this->col[2]['value'][0] = '%%all%%';
         $this->col[3]['category'] = UI_BROWSE_DEFAULT_KEY_3;
         $this->col[3]['value'][0] = '%%all%%';
-        
-        for ($col=1; $col<=3; $col++) {
-            $this->setCategory(array('col' => $col, 'category' => $this->col[$col]['category'], 'value' => array(0 => '%%all%%')));
-
 
+        for ($col = 1; $col <= 3; $col++) {
+            $this->setCategory(array('col' => $col,
+                                     'category' => $this->col[$col]['category'],
+                                     'value' => array(0 => '%%all%%')));
             $this->setValue(
                 array('col'      => $col,
                       'category' => $this->col[$col]['category'],
@@ -45,35 +57,43 @@ class uiBrowse
             );
         }
 
-        if ($reload === TRUE) $this->setReload();
-    }
+        if ($reload === TRUE) {
+            $this->setReload();
+        }
+    } // fn setDefaults
+
 
     function getCriteria()
     {
         return $this->criteria;
-    }
+    } // fn getCriteria
 
 
     function getResult()
-    {   
+    {
         $this->searchDB();
         return $this->results;
-    }
+    } // fn getResult
 
 
     function browseForm($id, $mask2)
-    {   
+    {
         include dirname(__FILE__).'/formmask/metadata.inc.php';
         #$mask2['browse_columns']['category']['options'][0] = tra('Select a Value');
-        foreach ($mask['pages'] as $key=>$val) {
+        foreach ($mask['pages'] as $key => $val) {
             foreach ($mask['pages'][$key] as $v){
-                if ($v['type']) $mask2['browse_columns']['category']['options'][$this->Base->_formElementEncode($v['element'])] = tra($v['label']);
+                if (isset($v['type']) && $v['type']) {
+                    $tmp = $this->Base->_formElementEncode($v['element']);
+                    $mask2['browse_columns']['category']['options'][$tmp] = tra($v['label']);
+                }
             }
         };
 
-        for($n=1; $n<=3; $n++) {
+        for ($n = 1; $n <= 3; $n++) {
             $form = new HTML_QuickForm('col'.$n, UI_STANDARD_FORM_METHOD, UI_HANDLER);
-            $form->setConstants(array('id' => $id, 'col' => $n, 'category' => $this->Base->_formElementEncode($this->col[$n]['category'])));
+            $form->setConstants(array('id' => $id,
+                                      'col' => $n,
+                                      'category' => $this->Base->_formElementEncode($this->col[$n]['category'])));
             $mask2['browse_columns']['value']['options'] = $this->options($this->col[$n]['values']['results']);
             $mask2['browse_columns']['value']['default'] = $this->col[$n]['form_value'];
             $this->Base->_parseArr2Form($form, $mask2['browse_columns']);
@@ -93,30 +113,41 @@ class uiBrowse
         $output['global']['dynform'] = $renderer->toArray();
 
         return $output;
-    }
+    } // fn browseForm
 
 
+    /**
+     * @param array $parm
+     * @return void
+     */
     function setCategory($parm)
     {
         $which = $parm['col'];
         $this->col[$which]['category'] = $this->Base->_formElementDecode($parm['category']);
-        $this->col[$which]['values']   = $this->Base->gb->browseCategory($this->col[$which]['category'], $this->col[$which]['criteria'], $this->Base->sessid);
+        $criteria = isset($this->col[$which]['criteria']) ? $this->col[$which]['criteria'] : null;
+        $this->col[$which]['values'] = $this->Base->gb->browseCategory($this->col[$which]['category'], $criteria, $this->Base->sessid);
 
         $this->Base->redirUrl = UI_BROWSER.'?act='.$this->prefix;
 
         $this->clearHierarchy($which);
         #print_r($this->col);
-    }
+    } // fn setCategory
 
+
+    /**
+     * Enter description here...
+     *
+     * @param array $parm
+     */
     function setValue($parm)
     {
         $this->criteria['offset'] = 0;
         $which = $parm['col'];
         $next  = $which + 1;
         $this->col[$which]['form_value'] =  $parm['value'][0];
-        if ($parm['value'][0] == '%%all%%') { 
+        if ($parm['value'][0] == '%%all%%') {
             $this->col[$next]['criteria'] = array('operator' => 'and', 'filetype' => $this->criteria['filetype']);
-        } else { 
+        } else {
             $this->col[$next]['criteria'] = array(
                 'operator' => 'and',
                 'filetype' => $this->criteria['filetype'],
@@ -131,7 +162,9 @@ class uiBrowse
                 )
             );
         }
-        $this->col[$next]['values'] = $this->Base->gb->browseCategory($this->col[$next]['category'], $this->col[$next]['criteria'], $this->Base->sessid);
+        $nextCriteria = isset($this->col[$next]['criteria']) ? $this->col[$next]['criteria'] : null;
+        $category = isset($this->col[$next]['category']) ? $this->col[$next]['category'] : null;
+        $this->col[$next]['values'] = $this->Base->gb->browseCategory($category, $nextCriteria, $this->Base->sessid);
 
         #echo "cat: ".$this->col[$next]['category']."\n";
         #echo "criteria: "; print_r($this->col[$next]['criteria']);
@@ -142,19 +175,21 @@ class uiBrowse
         #$this->searchDB();
         $this->Base->redirUrl = UI_BROWSER.'?act='.$this->prefix;
         #$this->setReload();
-    }
+    } // fn setValue
 
 
     function options($arr)
-    {   
+    {
         $ret['%%all%%'] = '---all---';
         if (is_array($arr)) {
-            foreach ($arr as $val)
+            foreach ($arr as $val) {
                 $ret[$val]  = $val;
+            }
         }
 
         return $ret;
-    }
+    } // fn options
+
 
     function clearHierarchy($which)
     {
@@ -165,18 +200,19 @@ class uiBrowse
             $this->col[$col]['values']      = NULL;
             $this->col[$col]['form_value']  = NULL;
         }
-    }
-    
+    } // fn clearHierarchy
+
+
     function setCriteria() {
         //$this->criteria['conditions'] = array();
         unset($this->criteria['conditions']);
-        for($col=3; $col>=1; $col--) {
+        for ($col=3; $col>=1; $col--) {
             if (is_array($this->col[$col]['criteria'])) {
                 $this->criteria = array_merge ($this->col[$col]['criteria'], $this->criteria);
                 break;
             }
         }
-    }
+    } // fn setCriteria
 
 
     function searchDB()
@@ -184,11 +220,11 @@ class uiBrowse
         $this->results = array('page' => $this->criteria['offset']/$this->criteria['limit']);
 
         $results = $this->Base->gb->localSearch($this->criteria, $this->Base->sessid);
-        
+
         if (!is_array($results) || !count($results)) {
-            return false;    
+            return false;
         }
-        
+
         $this->results['cnt'] = $results['cnt'];
         foreach ($results['results'] as $rec) {
             $tmpId = $this->Base->gb->_idFromGunid($rec["gunid"]);
@@ -217,7 +253,7 @@ class uiBrowse
         #print_r($this->criteria);
         #print_r($this->results);
         return TRUE;
-    }
+    } // fn searchDB
 
 
     function pagination(&$results)
@@ -240,11 +276,18 @@ class uiBrowse
         $deltaUpper = UI_BROWSERESULTS_DELTA;
         $start = $currp;
 
-        if ($start+$delta-$maxp > 0) $deltaLower += $start+$delta-$maxp;  ## correct lower boarder if page is near end
+        if ($start+$delta-$maxp > 0) {
+            // correct lower border if page is near end
+            $deltaLower += $start+$delta-$maxp;
+        }
 
         for ($n = $start-$deltaLower; $n <= $start+$deltaUpper; $n++) {
-            if ($n <= 0)            $deltaUpper++;                        ## correct upper boarder if page is near zero
-            elseif ($n <= $maxp)    $this->results['pagination'][$n] = $n;
+            if ($n <= 0) {
+                // correct upper border if page is near zero
+                $deltaUpper++;
+            } elseif ($n <= $maxp) {
+                $this->results['pagination'][$n] = $n;
+            }
         }
 
         #array_pop($this->results['pagination']);
@@ -253,22 +296,23 @@ class uiBrowse
         $this->results['next']  = $results['cnt'] > $this->criteria['offset'] + $this->criteria['limit'] ? TRUE : FALSE;
         $this->results['prev']  = $this->criteria['offset'] > 0 ? TRUE : FALSE;
         ksort($this->results['pagination']);
-    }
+    } // fn pagination
 
 
     function reOrder($by)
     {
         $this->criteria['offset'] = NULL;
 
-        if ($this->criteria['orderby'] == $by && !$this->criteria['desc'])
+        if ($this->criteria['orderby'] == $by && !$this->criteria['desc']) {
             $this->criteria['desc'] = TRUE;
-        else
+        } else {
             $this->criteria['desc'] = FALSE;
+        }
 
         $this->criteria['orderby'] = $by;
         $this->setReload();
         #$this->searchDB();
-    }
+    } // fn reOrder
 
 
     function setOffset($page)
@@ -285,29 +329,31 @@ class uiBrowse
         }
         $this->setReload();
         #$this->searchDB();
-    }
+    } // fn setOffset
+
 
     function setLimit($limit)
-    {   
+    {
         $this->criteria['limit'] = $limit;
         $this->setReload();
         #$this->searchDB();
-    }
+    } // fn setLimit
+
 
     function setFiletype($filetype)
-    {  
-        $this->criteria['filetype'] = $filetype; 
+    {
+        $this->criteria['filetype'] = $filetype;
         $this->criteria['offset'] = 0;
-        
+
         for ($n=1; $n<=3; $n++) {
-             $this->col[$n]['criteria']['filetype'] = $filetype;  
-             
+            $this->col[$n]['criteria']['filetype'] = $filetype;
+
             $this->col[$n]['values'] = $this->Base->gb->browseCategory($this->col[$n]['category'], $this->col[$n]['criteria'], $this->Base->sessid);
             $this->clearHierarchy($n);
         }
-        
+
         $this->setReload();
         #$this->searchDB();
-    }
-}
+    } // fn setFiletype
+} // class uiBrowse
 ?>
\ No newline at end of file