diff --git a/phpgwapi/inc/class.listbox.inc.php b/phpgwapi/inc/class.listbox.inc.php
new file mode 100755
index 0000000000..11bb101636
--- /dev/null
+++ b/phpgwapi/inc/class.listbox.inc.php
@@ -0,0 +1,86 @@
+ *
+ * Creates listboxes using templates *
+ * Copyright (C) 2000, 2001 Mark Peters *
+ * -------------------------------------------------------------------------*
+ * This library is part of the phpGroupWare API *
+ * http://www.phpgroupware.org/api *
+ * ------------------------------------------------------------------------ *
+ * This library is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as published by *
+ * the Free Software Foundation; either version 2.1 of the License, *
+ * or any later version. *
+ * This library is distributed in the hope that it will be useful, but *
+ * WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
+ * See the GNU Lesser General Public License for more details. *
+ * You should have received a copy of the GNU Lesser General Public License *
+ * along with this library; if not, write to the Free Software Foundation, *
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
+ \**************************************************************************/
+
+ /* $Id$ */
+
+ CreateObject('phpgwapi.portalbox');
+
+ class listbox extends portalbox
+ {
+ /*
+ Set up the Object. You will notice, we have not reserved
+ memory space for variables. In this circumstance it is not necessary.
+ */
+
+ /*
+ This is the constructor for the listbox. The only thing this does
+ is to call the constructor of the parent class. Why? Well, whilst
+ PHP manages a certain part of OO, one of the bits it falls down on
+ (at the moment) is constructors within sub-classes. So, to
+ be sure that the sub-class is instantiated with the constructor of
+ the parent class, I simply call the parent constructor. Of course,
+ if I then wanted to override any of the values, I could easily do so.
+ */
+ function listbox($param)
+ {
+ $this->setvar('classname','listbox');
+ $this->setvar('outerwidth',300);
+ $this->setvar('innerwidth',300);
+ $this->setvar('width',300);
+
+ @reset($param);
+ while(list($key,$value) = each($param))
+ {
+ if($key != 'title' && $key != 'primary' && $key != 'secondary' && $key != 'tertiary')
+ {
+//echo 'Setting '.$key.':'.$value."
\n";
+ $this->setvar($key,$value);
+ }
+ }
+ $this->portalbox($param['title'], $param['primary'], $param['secondary'], $param['tertiary']);
+ $this->start_template();
+ }
+
+ /*
+ This is the only method within the class. Quite simply, as you can see
+ it draws the table(s), placing the required data in the appropriate place.
+ */
+ function draw($extra_data='')
+ {
+ $this->p->parse('row','portal_listbox_header',True);
+
+ for ($x = 0; $x < count($this->data); $x++)
+ {
+ $var = Array(
+ 'text' => $this->data[$x]['text'],
+ 'link' => $this->data[$x]['link']
+ );
+ $this->p->set_var($var);
+ $this->p->parse('row','portal_listbox_link',True);
+ }
+ $this->p->parse('row','portal_listbox_footer',True);
+ $this->set_internal($extra_data);
+ return $this->draw_box();
+ }
+ }
diff --git a/phpgwapi/templates/default/images/close.button.gif b/phpgwapi/templates/default/images/close.button.gif
new file mode 100755
index 0000000000..5a8b28b8e9
Binary files /dev/null and b/phpgwapi/templates/default/images/close.button.gif differ
diff --git a/phpgwapi/templates/default/images/down.button.gif b/phpgwapi/templates/default/images/down.button.gif
new file mode 100755
index 0000000000..2d8fc00537
Binary files /dev/null and b/phpgwapi/templates/default/images/down.button.gif differ
diff --git a/phpgwapi/templates/default/images/edit.button.gif b/phpgwapi/templates/default/images/edit.button.gif
new file mode 100755
index 0000000000..5a01a5f889
Binary files /dev/null and b/phpgwapi/templates/default/images/edit.button.gif differ
diff --git a/phpgwapi/templates/default/images/question.button.gif b/phpgwapi/templates/default/images/question.button.gif
new file mode 100755
index 0000000000..1a406e2329
Binary files /dev/null and b/phpgwapi/templates/default/images/question.button.gif differ
diff --git a/phpgwapi/templates/default/images/up.button.gif b/phpgwapi/templates/default/images/up.button.gif
new file mode 100755
index 0000000000..13e21d5612
Binary files /dev/null and b/phpgwapi/templates/default/images/up.button.gif differ
diff --git a/phpgwapi/templates/default/portal.tpl b/phpgwapi/templates/default/portal.tpl
new file mode 100755
index 0000000000..12fffe3e3f
--- /dev/null
+++ b/phpgwapi/templates/default/portal.tpl
@@ -0,0 +1,39 @@
+
+
+
{title} | {portal_controls} +
+ |
+