[20863] Delete obsolete

Sigurd Nes <[email protected]>
Newsgroups gmane.comp.web.phpgroupware.cvs
Message-ID <[email protected]>
Revision: 20863
          http://svn.sv.gnu.org/viewvc/?view=rev&root=phpgroupware&revision=20863
Author:   sigurdne
Date:     2009-11-20 12:34:05 +0000 (Fri, 20 Nov 2009)
Log Message:
-----------
Delete obsolete

Modified Paths:
--------------
    people/sigurdne/modules/phpgwapi/trunk/inc/class.db.inc.php

Removed Paths:
-------------
    people/sigurdne/modules/phpgwapi/trunk/doc/adodb.diff
    people/sigurdne/modules/phpgwapi/trunk/doc/soap/nusoap2phpgwapi
    people/sigurdne/modules/phpgwapi/trunk/inc/adodb/drivers/adodb-oci8.old.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.icalendar.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.nusoap_base.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.nusoap_client.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.phpgw_soapval.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.soap_XMLSchema.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.soap_fault.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.soap_parser.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.soap_server.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.soap_transport_http.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.soapclient.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.soapmsg.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.soapval.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.translation_sql.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.wsdl.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.xmlrpc_server.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.xmlrpcmsg.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.xmlrpcresp.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/class.xmlrpcval.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/phpmailer/docs/timeoutfix.diff
    people/sigurdne/modules/phpgwapi/trunk/inc/xml_functions.inc.php
    people/sigurdne/modules/phpgwapi/trunk/inc/xmlrpc.interop.php
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/README-phpGroupWare.txt
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/animation/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/assets/skins/sam/transparent.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/autocomplete/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/base/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/button/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/button/button-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/button/button-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/button/button-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/calendar/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/charts/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/charts/charts-experimental-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/charts/charts-experimental-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/charts/charts-experimental.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/charts-experimental.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/colorpicker/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/colorpicker/colorpicker-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/colorpicker/colorpicker-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/colorpicker/colorpicker-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/connection/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/container/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/cookie/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/cookie/cookie-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/cookie/cookie-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/cookie/cookie-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/cookie-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datasource/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datasource/datasource-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datasource/datasource-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datasource/datasource-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datasource-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datatable/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datatable/datatable-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datatable/datatable-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datatable/datatable-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datatable-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/dom/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/dragdrop/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor/editor-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor/editor-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor/editor-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor/simpleeditor-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor/simpleeditor-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor/simpleeditor-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/element/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/element/element-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/element/element-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/element/element-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/element-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/event/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/fonts/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/get/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/grids/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/history/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/history/history-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/history/history-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/history/history-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imagecropper/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imagecropper/imagecropper-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imagecropper/imagecropper-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imagecropper/imagecropper-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imagecropper-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imageloader/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imageloader/imageloader-experimental-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imageloader/imageloader-experimental-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imageloader/imageloader-experimental.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/json/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/layout/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/layout/layout-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/layout/layout-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/layout/layout-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/layout-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/log.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/logger/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/menu/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profiler/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profiler/profiler-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profiler/profiler-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profiler/profiler-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profiler-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profilerviewer/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profilerviewer/profilerviewer-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profilerviewer/profilerviewer-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profilerviewer/profilerviewer-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profilerviewer-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/reset/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/reset-fonts/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/reset-fonts-grids/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/resize/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/resize/resize-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/resize/resize-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/resize/resize-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/resize-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/selector/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/selector/selector-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/selector/selector-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/selector/selector-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/selector-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/slider/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tabview/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/YUI.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/animation.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/assets/xframe.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/autocomplete.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/calendar.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/colorpicker.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/config.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/datasource.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/datatable.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/datemath.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/dom.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/dragdrop.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/editor.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/element.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/imageloader.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/logger.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/module.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/tabview.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/yahoo.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/yuiloader.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/yuiloader_config.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/yuiloader_rollup.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/yuitest.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/treeview/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/uploader/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/uploader/uploader-experimental-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/uploader/uploader-experimental-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/uploader/uploader-experimental.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/uploader-experimental.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/utilities/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yahoo/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yahoo-dom-event/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/animation/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/animation/animation-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/animation/animation-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/animation/animation.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/autocomplete/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/autocomplete/autocomplete-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/autocomplete/autocomplete-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/autocomplete/autocomplete.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/assets/calendar.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/assets/callt.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/assets/calrt.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/assets/calx.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/calendar-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/calendar-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/calendar.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/connection/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/connection/connection-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/connection/connection-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/connection/connection.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/alrt16_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/blck16_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/close12_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/container.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/hlp16_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/info16_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/tip16_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/warn16_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/container-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/container-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/container.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/container_core-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/container_core-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/container_core.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dom/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dom/dom-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dom/dom-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dom/dom.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dragdrop/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dragdrop/dragdrop-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dragdrop/dragdrop-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dragdrop/dragdrop.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/event/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/event/event-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/event/event-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/event/event.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/fonts/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/fonts/fonts-min.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/fonts/fonts.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/grids/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/grids/grids-min.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/grids/grids.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/logger/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/logger/assets/logger.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/logger/logger-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/logger/logger-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/logger/logger.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menu.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuarodwn8_dim_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuarodwn8_hov_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuarodwn8_nrm_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuarorght8_dim_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuarorght8_hov_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuarorght8_nrm_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuchk8_dim_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuchk8_hov_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuchk8_nrm_1.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/menu-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/menu-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/menu.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/reset/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/reset/reset-min.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/reset/reset.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/slider/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/slider/slider-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/slider/slider-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/slider/slider.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/lm.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/lmh.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/ln.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/loading.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/lp.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/lph.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/tm.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/tmh.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/tn.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/tp.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/tph.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/tree.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/vline.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/treeview-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/treeview-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/treeview.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/yahoo/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/yahoo/yahoo-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/yahoo/yahoo-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/yahoo/yahoo.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Anim.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Anim.init.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.AnimMgr.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Bezier.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.ColorAnim.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Dom.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Easing.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Motion.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Point.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Region.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Scroll.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/allclasses-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/allclasses-noframe.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/index-all.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-Anim.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-AnimMgr.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-Bezier.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-ColorAnim.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-Dom.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-Easing.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-Motion.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-Region.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-Scroll.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-Anim.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-AnimMgr.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-Bezier.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-ColorAnim.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-Dom.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-Easing.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-Motion.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-Region.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-Scroll.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-tree.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/stylesheet.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/dialog_example.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/dpSyntaxHighlighter.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/dpSyntaxHighlighter.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/examples.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/menu_example.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/panel_example.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/simpledialog_example.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/tooltip_example.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/yui-0.11-cheatsheets.zip
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/yui-cheat-sheets-0.10.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/yui-utilities-0.10-cheatsheets.zip
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/YAHOO.widget.AutoComplete.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/YAHOO.widget.DS_JSArray.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/YAHOO.widget.DS_JSFunction.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/YAHOO.widget.DS_XHR.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/YAHOO.widget.DataSource.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/YAHOO.widget.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/allclasses-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/allclasses-noframe.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/index-all.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/overview-AutoComplete.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/overview-DataSource.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/overview-summary-AutoComplete.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/overview-summary-DataSource.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/overview-summary.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/overview-tree.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/stylesheet.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/YAHOO.widget.Calendar.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/YAHOO.widget.Calendar2up.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/YAHOO.widget.Calendar2up_Cal.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/YAHOO.widget.CalendarGroup.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/YAHOO.widget.Calendar_Core.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/YAHOO.widget.DateMath.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/YAHOO.widget.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/allclasses-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/allclasses-noframe.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/index-all.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-Calendar.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-Calendar2up.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-CalendarGroup.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-Calendar_Core.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-DateMath.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-summary-Calendar.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-summary-Calendar2up.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-summary-CalendarGroup.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-summary-Calendar_Core.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-summary-DateMath.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-summary.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-tree.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/stylesheet.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/connection/YAHOO.util.Connect.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/connection/index-all.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/connection/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/connection/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/connection/overview-summary-connection.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/connection/overview-tree.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/connection/stylesheet.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.util.Config.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.util.KeyListener.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.util.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.ContainerEffect.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.Dialog.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.Module.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.Overlay.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.OverlayManager.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.Panel.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.SimpleDialog.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.Tooltip.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/allclasses-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/allclasses-noframe.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/index-all.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-Config.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-ContainerEffect.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-Dialog.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-KeyListener.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-Module.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-Overlay.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-OverlayManager.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-Panel.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-SimpleDialog.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-Tooltip.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-Config.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-ContainerEffect.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-Dialog.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-KeyListener.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-Module.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-Overlay.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-OverlayEffect.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-OverlayManager.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-Panel.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-SimpleDialog.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-Tooltip.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-tree.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/stylesheet.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/YAHOO.util.Dom.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/YAHOO.util.Point.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/YAHOO.util.Region.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/YAHOO.util.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/allclasses-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/allclasses-noframe.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/index-all.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/overview-Dom.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/overview-Region.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/overview-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/overview-summary-Dom.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/overview-summary-Region.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/overview-summary.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/overview-tree.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/stylesheet.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/YAHOO.util.DD.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/YAHOO.util.DDProxy.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/YAHOO.util.DDTarget.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/YAHOO.util.DragDrop.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/YAHOO.util.DragDropMgr.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/YAHOO.util.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/allclasses-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/allclasses-noframe.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/index-all.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-DD.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-DDProxy.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-DDTarget.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-DragDrop.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-DragDropMgr.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-summary-DD.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-summary-DDProxy.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-summary-DDTarget.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-summary-DragDrop.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-summary-DragDropMgr.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-summary.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-tree.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/stylesheet.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/YAHOO.util.CustomEvent.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/YAHOO.util.Event.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/YAHOO.util.Subscriber.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/YAHOO.util.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/allclasses-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/allclasses-noframe.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/index-all.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/overview-CustomEvent.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/overview-Event.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/overview-summary-CustomEvent.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/overview-summary-Event.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/overview-summary.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/overview-tree.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/stylesheet.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/YAHOO.widget.LogReader.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/YAHOO.widget.LogWriter.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/YAHOO.widget.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/allclasses-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/allclasses-noframe.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/index-all.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-LogReader.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-LogWriter.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-Logger.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-summary-LogReader.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-summary-LogWriter.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-summary-Logger.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-summary.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-tree.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/stylesheet.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.ContextMenu.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.ContextMenuItem.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.Menu.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.MenuBar.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.MenuBarItem.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.MenuItem.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.MenuModule.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.MenuModuleItem.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/allclasses-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/allclasses-noframe.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/index-all.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-contextmenu.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-contextmenuitem.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-menu.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-menubar.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-menubaritem.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-menuitem.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-menumodule.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-menumoduleitem.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-contextmenu.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-contextmenuitem.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-menu.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-menubar.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-menubaritem.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-menuitem.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-menumodule.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-menumoduleitem.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-tree.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/stylesheet.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/YAHOO.widget.Slider.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/YAHOO.widget.SliderThumb.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/YAHOO.widget.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/allclasses-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/allclasses-noframe.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/index-all.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/overview-summary-Slider.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/overview-summary.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/overview-tree.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/stylesheet.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.HTMLNode.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.MenuNode.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.Node.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.RootNode.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.TVAnim.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.TVFadeIn.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.TVFadeOut.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.TextNode.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.TreeView.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/allclasses-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/allclasses-noframe.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/index-all.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-HTMLNode.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-MenuNode.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-Node.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-RootNode.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-TVAnim.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-TVFadeIn.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-TVFadeOut.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-TextNode.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-TreeView.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-HTMLNode.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-MenuNode.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-Node.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-RootNode.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-TVAnim.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-TVFadeIn.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-TVFadeOut.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-TextNode.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-TreeView.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-tree.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/stylesheet.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/YAHOO.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/allclasses-frame.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/allclasses-noframe.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/index-all.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/overview-summary-YAHOO.js.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/overview-summary.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/overview-tree.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/stylesheet.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/anim_basic.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/anim_from.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/anim_size.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/anim_size_plus.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/anim_size_plus_alt.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/anim_units.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/colors.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/css/demo.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/easing.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/fade.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/img/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/motion_basic.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/motion_by.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/motion_control.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/motion_controls.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/motion_plus.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/scroll_by.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/scroll_horiz.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/scroll_vert.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/css/examples.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/customize.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/flickr_xml.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/img/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/js/json.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/js/states_jsfunction.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/states_jsarray.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/states_jsfunction.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/ysearch_flat.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/ysearch_json.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/ysearch_xml.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/calendar/css/examples.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/calendar/img/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/calendar/img/pdate.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/calendar/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/connection/abort.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/connection/get.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/connection/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/connection/post.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/connection/weather.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/css/example.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/css/module.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/css/panel-aqua.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/css/panel-xp.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/css/photobox.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/dialog.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/aqua-bg.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/aqua-hd-bg.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/aqua-hd-close-over.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/aqua-hd-close.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/aqua-hd-lt.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/aqua-hd-rt.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/bg.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/ctx.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-bl.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-border-rt.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-br.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-brdr-lt.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-brdr-rt.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-close.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-ft.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-hd.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-tl.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-tr.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/ybox-back.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/ybox-close.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/ybox-next.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/js/PanelEffect.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/js/PhotoBox.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/keylistener.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/module.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/overlay-manager.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/overlay.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/panel-aqua.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/panel-photo.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/panel-wait.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/panel-xp.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/panel.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/simpledialog-async.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/simpledialog.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/tooltip.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/addclass.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/css/dom.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/getelementsbyclassname.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/getstyle.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/getxy.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/hasclass.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/img/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/removeclass.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/setstyle.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/setxy.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/css/ie.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/css/screen.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/drag.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/grid.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/bullet.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/channel.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/grid.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/hline.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/horizBg.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/horizSlider.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/horizSlider_on.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/hue.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/lthumb.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/navHover2.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/pickerbg.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/qbottom.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/qmiddle.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/qtop.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/select.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/select.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/sortList.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/sq1.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/sq2.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/sq3.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/vertBg.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/vertSlider.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/vertSlider_on.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/vline.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/interface.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDList.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDMy.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDMy2.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDOnTop.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDPlayer.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDResize.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDResize2.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDSwap.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/color.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/key.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/log.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/list.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/multihandle.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/ontop.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/proxy.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/resize.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/slider.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/targetable.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/fonts/default.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/fonts/fontfamily.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/fonts/fontsize.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t1.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g1.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g10.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g2.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g3.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g4.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g5.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g6.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g7.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g8.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g9.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t3.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t4.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t5.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t6.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t7.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/logger/autocomplete.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/logger/css/examples.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/logger/img/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/logger/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/logger/readlogs.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/logger/readlogscustom.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/logger/writelogs.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/applicationmenubar.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/contextmenu.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example01.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example02.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example03.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example04.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example05.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example06.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example07.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example08.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example09.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example10.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example11.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example12.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/img/dolly.jpg
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/leftnav.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/programsmenu.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/topnav.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/basic.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/css/screen.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/bullet.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/greybg.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/header.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/hline.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/horizBg.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/horizSlider.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/horizSlider_on.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/hue.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/lthumb.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/navHover2.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/pickerbg.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/qbottom.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/qmiddle.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/qtop.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/select.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/select.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/vertBg.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/vertSlider.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/vertSlider_on.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/vline.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/js/color.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/js/key.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/js/log.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/js/logger.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/rgb.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/rgb2.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/anim.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/check.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/css/code.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/css/screen.css
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/default.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/dynamic.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/folders.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/html.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/bullet.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/greybg.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/header.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/logo.gif
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/navHover2.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/qbottom.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/qmiddle.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/qtop.png
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/index.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/js/CheckOnClickNode.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/js/TaskNode.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/js/dpSyntaxHighlighter.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/js/json.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/js/key.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/js/log.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/menu.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/multi.html
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuiloader/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuiloader/yuiloader-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuiloader/yuiloader-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuiloader/yuiloader-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuiloader-beta.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuiloader-dom-event/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuitest/README
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuitest/yuitest-beta-debug.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuitest/yuitest-beta-min.js
    people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuitest/yuitest-beta.js
    people/sigurdne/modules/phpgwapi/trunk/templates/desktop/nextmatchs.tpl
    people/sigurdne/modules/phpgwapi/trunk/templates/idots/nextmatchs.tpl
    people/sigurdne/modules/phpgwapi/trunk/templates/probusiness/nextmatchs.tpl

Deleted: people/sigurdne/modules/phpgwapi/trunk/doc/adodb.diff
===================================================================
--- people/sigurdne/modules/phpgwapi/trunk/doc/adodb.diff	2009-11-20 12:33:35 UTC (rev 20862)
+++ people/sigurdne/modules/phpgwapi/trunk/doc/adodb.diff	2009-11-20 12:34:05 UTC (rev 20863)
@@ -1,8912 +0,0 @@
-diff -aburN --exclude='.svn*' inc/adodb5/adodb-active-record.inc.php inc/adodb/adodb-active-record.inc.php
---- inc/adodb5/adodb-active-record.inc.php	2008-10-29 18:14:48.000000000 +1100
-+++ inc/adodb/adodb-active-record.inc.php	1970-01-01 10:00:00.000000000 +1000
-@@ -1,882 +0,0 @@
--<?php
--/*
--
--@version V5.06 16 Oct 2008   (c) 2000-2008 John Lim (jlim#natsoft.com). All rights reserved.
--  Latest version is available at http://adodb.sourceforge.net
-- 
--  Released under both BSD license and Lesser GPL library license. 
--  Whenever there is any discrepancy between the two licenses, 
--  the BSD license will take precedence.
--  
--  Active Record implementation. Superset of Zend Framework's.
--  
--  Version 0.90
--  
--  See http://www-128.ibm.com/developerworks/java/library/j-cb03076/?ca=dgr-lnxw01ActiveRecord 
--  	for info on Ruby on Rails Active Record implementation
--*/
--
--
--global $_ADODB_ACTIVE_DBS;
--global $ADODB_ACTIVE_CACHESECS; // set to true to enable caching of metadata such as field info
--global $ACTIVE_RECORD_SAFETY; // set to false to disable safety checks
--global $ADODB_ACTIVE_DEFVALS; // use default values of table definition when creating new active record.
--
--// array of ADODB_Active_DB's, indexed by ADODB_Active_Record->_dbat
--$_ADODB_ACTIVE_DBS = array();
--$ACTIVE_RECORD_SAFETY = true;
--$ADODB_ACTIVE_DEFVALS = false;
--
--class ADODB_Active_DB {
--	var $db; // ADOConnection
--	var $tables; // assoc array of ADODB_Active_Table objects, indexed by tablename
--}
--
--class ADODB_Active_Table {
--	var $name; // table name
--	var $flds; // assoc array of adofieldobjs, indexed by fieldname
--	var $keys; // assoc array of primary keys, indexed by fieldname
--	var $_created; // only used when stored as a cached file
--	var $_belongsTo = array();
--	var $_hasMany = array();
--}
--
--// returns index into $_ADODB_ACTIVE_DBS
--function ADODB_SetDatabaseAdapter(&$db)
--{
--	global $_ADODB_ACTIVE_DBS;
--	
--		foreach($_ADODB_ACTIVE_DBS as $k => $d) {
--			if (PHP_VERSION >= 5) {
--				if ($d->db === $db) return $k;
--			} else {
--				if ($d->db->_connectionID === $db->_connectionID && $db->database == $d->db->database) 
--					return $k;
--			}
--		}
--		
--		$obj = new ADODB_Active_DB();
--		$obj->db = $db;
--		$obj->tables = array();
--		
--		$_ADODB_ACTIVE_DBS[] = $obj;
--		
--		return sizeof($_ADODB_ACTIVE_DBS)-1;
--}
--
--
--class ADODB_Active_Record {
--	static $_changeNames = true; // dynamically pluralize table names
--	static $_foreignSuffix = '_id'; // 
--	var $_dbat; // associative index pointing to ADODB_Active_DB eg. $ADODB_Active_DBS[_dbat]
--	var $_table; // tablename, if set in class definition then use it as table name
--	var $_tableat; // associative index pointing to ADODB_Active_Table, eg $ADODB_Active_DBS[_dbat]->tables[$this->_tableat]
--	var $_where; // where clause set in Load()
--	var $_saved = false; // indicates whether data is already inserted.
--	var $_lasterr = false; // last error message
--	var $_original = false; // the original values loaded or inserted, refreshed on update
--
--	var $foreignName; // CFR: class name when in a relationship
--
--	static function UseDefaultValues($bool=null)
--	{
--	global $ADODB_ACTIVE_DEFVALS;
--		if (isset($bool)) $ADODB_ACTIVE_DEFVALS = $bool;
--		return $ADODB_ACTIVE_DEFVALS;
--	}
--
--	// should be static
--	static function SetDatabaseAdapter(&$db) 
--	{
--		return ADODB_SetDatabaseAdapter($db);
--	}
--	
--	
--	public function __set($name, $value)
--	{
--		$name = str_replace(' ', '_', $name);
--		$this->$name = $value;
--	}
--	
--	// php5 constructor
--	function __construct($table = false, $pkeyarr=false, $db=false)
--	{
--	global $ADODB_ASSOC_CASE,$_ADODB_ACTIVE_DBS;
--	
--		if ($db == false && is_object($pkeyarr)) {
--			$db = $pkeyarr;
--			$pkeyarr = false;
--		}
--		
--		if (!$table) { 
--			if (!empty($this->_table)) $table = $this->_table;
--			else $table = $this->_pluralize(get_class($this));
--		}
--		$this->foreignName = strtolower(get_class($this)); // CFR: default foreign name
--		if ($db) {
--			$this->_dbat = ADODB_Active_Record::SetDatabaseAdapter($db);
--		} else
--			$this->_dbat = sizeof($_ADODB_ACTIVE_DBS)-1;
--		
--		
--		if ($this->_dbat < 0) $this->Error("No database connection set; use ADOdb_Active_Record::SetDatabaseAdapter(\$db)",'ADODB_Active_Record::__constructor');
--		
--		$this->_table = $table;
--		$this->_tableat = $table; # reserved for setting the assoc value to a non-table name, eg. the sql string in future
--
--		$this->UpdateActiveTable($pkeyarr);
--	}
--	
--	function __wakeup()
--	{
--  		$class = get_class($this);
--  		new $class;
--	}
--	
--	function _pluralize($table)
--	{
--		if (!ADODB_Active_Record::$_changeNames) return $table;
--
--		$ut = strtoupper($table);
--		$len = strlen($table);
--		$lastc = $ut[$len-1];
--		$lastc2 = substr($ut,$len-2);
--		switch ($lastc) {
--		case 'S':
--			return $table.'es';	
--		case 'Y':
--			return substr($table,0,$len-1).'ies';
--		case 'X':	
--			return $table.'es';
--		case 'H': 
--			if ($lastc2 == 'CH' || $lastc2 == 'SH')
--				return $table.'es';
--		default:
--			return $table.'s';
--		}
--	}
--	
--	// CFR Lamest singular inflector ever - @todo Make it real!
--	// Note: There is an assumption here...and it is that the argument's length >= 4
--	function _singularize($tables)
--	{
--	
--		if (!ADODB_Active_Record::$_changeNames) return $table;
--	
--		$ut = strtoupper($tables);
--		$len = strlen($tables);
--		if($ut[$len-1] != 'S')
--			return $tables; // I know...forget oxen
--		if($ut[$len-2] != 'E')
--			return substr($tables, 0, $len-1);
--		switch($ut[$len-3])
--		{
--			case 'S':
--			case 'X':
--				return substr($tables, 0, $len-2);
--			case 'I':
--				return substr($tables, 0, $len-3) . 'y';
--			case 'H';
--				if($ut[$len-4] == 'C' || $ut[$len-4] == 'S')
--					return substr($tables, 0, $len-2);
--			default:
--				return substr($tables, 0, $len-1); // ?
--		}
--	}
--
--	function hasMany($foreignRef, $foreignKey = false)
--	{
--		$ar = new ADODB_Active_Record($foreignRef);
--		$ar->foreignName = $foreignRef;
--		$ar->UpdateActiveTable();
--		$ar->foreignKey = ($foreignKey) ? $foreignKey : $foreignRef.ADODB_Active_Record::$_foreignSuffix;
--		$table =& $this->TableInfo();
--		$table->_hasMany[$foreignRef] = $ar;
--	#	$this->$foreignRef = $this->_hasMany[$foreignRef]; // WATCHME Removed assignment by ref. to please __get()
--	}
--
--	function belongsTo($foreignRef,$foreignKey=false, $parentKey='')
--	{
--		global $inflector;
--
--		$ar = new ADODB_Active_Record($this->_pluralize($foreignRef));
--		$ar->foreignName = $foreignRef;
--		$ar->parentKey = $parentKey;
--		$ar->UpdateActiveTable();
--		$ar->foreignKey = ($foreignKey) ? $foreignKey : $foreignRef.ADODB_Active_Record::$_foreignSuffix;
--		
--		$table =& $this->TableInfo();
--		$table->_belongsTo[$foreignRef] = $ar;
--	#	$this->$foreignRef = $this->_belongsTo[$foreignRef];
--	}
--
--	/**
--	 * __get Access properties - used for lazy loading
--	 * 
--	 * @param mixed $name 
--	 * @access protected
--	 * @return mixed
--	 */
--	 function __get($name)
--	{
--		return $this->LoadRelations($name, '', -1, -1);
--	}
--	
--	/**
--	 * @param string $name 
--	 * @param string $whereOrderBy : eg. ' AND field1 = value ORDER BY field2'
--	 * @param offset
--	 * @param limit
--	 * @return mixed
--	 */
--	function LoadRelations($name, $whereOrderBy='', $offset=-1,$limit=-1)
--	{
--		$extras = array();
--		$table = $this->TableInfo();
--		if ($limit >= 0) $extras['limit'] = $limit;
--		if ($offset >= 0) $extras['offset'] = $offset;
--		
--		if (strlen($whereOrderBy)) 
--			if (!preg_match('/^[ \n\r]*AND/i',$whereOrderBy))
--				if (!preg_match('/^[ \n\r]*ORDER[ \n\r]/i',$whereOrderBy))
--					$whereOrderBy = 'AND '.$whereOrderBy;
--				
--		if(!empty($table->_belongsTo[$name]))
--		{
--			$obj = $table->_belongsTo[$name];
--			$columnName = $obj->foreignKey;
--			if(empty($this->$columnName))
--				$this->$name = null;
--			else
--			{
--				if ($obj->parentKey) $key = $obj->parentKey;
--				else $key = reset($table->keys);
--				
--				$arrayOfOne = $obj->Find($key.'='.$this->$columnName.' '.$whereOrderBy,false,false,$extras);
--				if ($arrayOfOne) {
--					$this->$name = $arrayOfOne[0];
--					return $arrayOfOne[0];
--				}
--			}
--		}
--		if(!empty($table->_hasMany[$name]))
--		{	
--			$obj = $table->_hasMany[$name];
--			$objs = $obj->Find($obj->foreignKey.'='.$this->id. ' '.$whereOrderBy,false,false,$extras);
--			if (!$objs) $objs = array();
--			$this->$name = $objs;
--			return $objs;
--		}
--		
--		return array();
--	}
--	//////////////////////////////////
--	
--	// update metadata
--	function UpdateActiveTable($pkeys=false,$forceUpdate=false)
--	{
--	global $ADODB_ASSOC_CASE,$_ADODB_ACTIVE_DBS , $ADODB_CACHE_DIR, $ADODB_ACTIVE_CACHESECS;
--	global $ADODB_ACTIVE_DEFVALS;
--
--		$activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
--
--		$table = $this->_table;
--		$tables = $activedb->tables;
--		$tableat = $this->_tableat;
--		if (!$forceUpdate && !empty($tables[$tableat])) {
--
--			$tobj = $tables[$tableat];
--			foreach($tobj->flds as $name => $fld) {
--			if ($ADODB_ACTIVE_DEFVALS && isset($fld->default_value)) 
--				$this->$name = $fld->default_value;
--			else
--				$this->$name = null;
--			}
--			return;
--		}
--		$db = $activedb->db;
--		$fname = $ADODB_CACHE_DIR . '/adodb_' . $db->databaseType . '_active_'. $table . '.cache';
--		if (!$forceUpdate && $ADODB_ACTIVE_CACHESECS && $ADODB_CACHE_DIR && file_exists($fname)) {
--			$fp = fopen($fname,'r');
--			@flock($fp, LOCK_SH);
--			$acttab = unserialize(fread($fp,100000));
--			fclose($fp);
--			if ($acttab->_created + $ADODB_ACTIVE_CACHESECS - (abs(rand()) % 16) > time()) { 
--				// abs(rand()) randomizes deletion, reducing contention to delete/refresh file
--				// ideally, you should cache at least 32 secs
--				$activedb->tables[$table] = $acttab;
--				
--				//if ($db->debug) ADOConnection::outp("Reading cached active record file: $fname");
--			  	return;
--			} else if ($db->debug) {
--				ADOConnection::outp("Refreshing cached active record file: $fname");
--			}
--		}
--		$activetab = new ADODB_Active_Table();
--		$activetab->name = $table;
--		
--		
--		$cols = $db->MetaColumns($table);
--		if (!$cols) {
--			$this->Error("Invalid table name: $table",'UpdateActiveTable'); 
--			return false;
--		}
--		$fld = reset($cols);
--		if (!$pkeys) {
--			if (isset($fld->primary_key)) {
--				$pkeys = array();
--				foreach($cols as $name => $fld) {
--					if (!empty($fld->primary_key)) $pkeys[] = $name;
--				}
--			} else	
--				$pkeys = $this->GetPrimaryKeys($db, $table);
--		}
--		if (empty($pkeys)) {
--			$this->Error("No primary key found for table $table",'UpdateActiveTable');
--			return false;
--		}
--		
--		$attr = array();
--		$keys = array();
--		
--		switch($ADODB_ASSOC_CASE) {
--		case 0:
--			foreach($cols as $name => $fldobj) {
--				$name = strtolower($name);
--                if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
--                    $this->$name = $fldobj->default_value;
--                else
--					$this->$name = null;
--				$attr[$name] = $fldobj;
--			}
--			foreach($pkeys as $k => $name) {
--				$keys[strtolower($name)] = strtolower($name);
--			}
--			break;
--			
--		case 1: 
--			foreach($cols as $name => $fldobj) {
--				$name = strtoupper($name);
--               
--                if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
--                    $this->$name = $fldobj->default_value;
--                else
--					$this->$name = null;
--				$attr[$name] = $fldobj;
--			}
--			
--			foreach($pkeys as $k => $name) {
--				$keys[strtoupper($name)] = strtoupper($name);
--			}
--			break;
--		default:
--			foreach($cols as $name => $fldobj) {
--				$name = ($fldobj->name);
--                
--                if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
--                    $this->$name = $fldobj->default_value;
--                else
--					$this->$name = null;
--				$attr[$name] = $fldobj;
--			}
--			foreach($pkeys as $k => $name) {
--				$keys[$name] = $cols[$name]->name;
--			}
--			break;
--		}
--		
--		$activetab->keys = $keys;
--		$activetab->flds = $attr;
--
--		if ($ADODB_ACTIVE_CACHESECS && $ADODB_CACHE_DIR) {
--			$activetab->_created = time();
--			$s = serialize($activetab);
--			if (!function_exists('adodb_write_file')) include(ADODB_DIR.'/adodb-csvlib.inc.php');
--			adodb_write_file($fname,$s);
--		}
--		if (isset($activedb->tables[$table])) {
--			$oldtab = $activedb->tables[$table];
--		
--			if ($oldtab) $activetab->_belongsTo = $oldtab->_belongsTo;
--			if ($oldtab) $activetab->_hasMany = $oldtab->_hasMany;
--		}
--		$activedb->tables[$table] = $activetab;
--	}
--	
--	function GetPrimaryKeys(&$db, $table)
--	{
--		return $db->MetaPrimaryKeys($table);
--	}
--	
--	// error handler for both PHP4+5. 
--	function Error($err,$fn)
--	{
--	global $_ADODB_ACTIVE_DBS;
--	
--		$fn = get_class($this).'::'.$fn;
--		$this->_lasterr = $fn.': '.$err;
--		
--		if ($this->_dbat < 0) $db = false;
--		else {
--			$activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
--			$db = $activedb->db;
--		}
--		
--		if (function_exists('adodb_throw')) {	
--			if (!$db) adodb_throw('ADOdb_Active_Record', $fn, -1, $err, 0, 0, false);
--			else adodb_throw($db->databaseType, $fn, -1, $err, 0, 0, $db);
--		} else
--			if (!$db || $db->debug) ADOConnection::outp($this->_lasterr);
--		
--	}
--	
--	// return last error message
--	function ErrorMsg()
--	{
--		if (!function_exists('adodb_throw')) {
--			if ($this->_dbat < 0) $db = false;
--			else $db = $this->DB();
--		
--			// last error could be database error too
--			if ($db && $db->ErrorMsg()) return $db->ErrorMsg();
--		}
--		return $this->_lasterr;
--	}
--	
--	function ErrorNo() 
--	{
--		if ($this->_dbat < 0) return -9999; // no database connection...
--		$db = $this->DB();
--		
--		return (int) $db->ErrorNo();
--	}
--
--
--	// retrieve ADOConnection from _ADODB_Active_DBs
--	function DB()
--	{
--	global $_ADODB_ACTIVE_DBS;
--	
--		if ($this->_dbat < 0) {
--			$false = false;
--			$this->Error("No database connection set: use ADOdb_Active_Record::SetDatabaseAdaptor(\$db)", "DB");
--			return $false;
--		}
--		$activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
--		$db = $activedb->db;
--		return $db;
--	}
--	
--	// retrieve ADODB_Active_Table
--	function &TableInfo()
--	{
--	global $_ADODB_ACTIVE_DBS;
--	
--		$activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
--		$table = $activedb->tables[$this->_tableat];
--		return $table;
--	}
--	
--	
--	// I have an ON INSERT trigger on a table that sets other columns in the table.
--	// So, I find that for myTable, I want to reload an active record after saving it. -- Malcolm Cook
--	function Reload()
--	{
--		$db =& $this->DB(); if (!$db) return false;
--		$table =& $this->TableInfo();
--		$where = $this->GenWhere($db, $table);
--		return($this->Load($where));
--	}
--
--	
--	// set a numeric array (using natural table field ordering) as object properties
--	function Set(&$row)
--	{
--	global $ACTIVE_RECORD_SAFETY;
--	
--		$db = $this->DB();
--		
--		if (!$row) {
--			$this->_saved = false;		
--			return false;
--		}
--		
--		$this->_saved = true;
--		
--		$table = $this->TableInfo();
--		if ($ACTIVE_RECORD_SAFETY && sizeof($table->flds) != sizeof($row)) {
--            # <AP>
--            $bad_size = TRUE;
--            if (sizeof($row) == 2 * sizeof($table->flds)) {
--                // Only keep string keys
--                $keys = array_filter(array_keys($row), 'is_string');
--                if (sizeof($keys) == sizeof($table->flds))
--                    $bad_size = FALSE;
--            }
--            if ($bad_size) {
--			$this->Error("Table structure of $this->_table has changed","Load");
--			return false;
--		}
--            # </AP>
--		}
--        else
--			$keys = array_keys($row);
--			
--        # <AP>
--        reset($keys);
--        $this->_original = array();
--		foreach($table->flds as $name=>$fld) {
--            $value = $row[current($keys)];
--			$this->$name = $value;
--            $this->_original[] = $value;
--            next($keys);
--		}
--
--        # </AP>
--		return true;
--	}
--	
--	// get last inserted id for INSERT
--	function LastInsertID(&$db,$fieldname)
--	{
--		if ($db->hasInsertID)
--			$val = $db->Insert_ID($this->_table,$fieldname);
--		else
--			$val = false;
--			
--		if (is_null($val) || $val === false) {
--			// this might not work reliably in multi-user environment
--			return $db->GetOne("select max(".$fieldname.") from ".$this->_table);
--		}
--		return $val;
--	}
--	
--	// quote data in where clause
--	function doquote(&$db, $val,$t)
--	{
--		switch($t) {
--		case 'D':
--		case 'T':
--			if (empty($val)) return 'null';
--		
--		case 'B':
--		case 'N':
--		case 'C':
--		case 'X':
--			if (is_null($val)) return 'null';
--			
--			if (strncmp($val,"'",1) != 0 && substr($val,strlen($val)-1,1) != "'") { 
--				return $db->qstr($val);
--				break;
--			}
--		default:
--			return $val;
--			break;
--		}
--	}
--	
--	// generate where clause for an UPDATE/SELECT
--	function GenWhere(&$db, &$table)
--	{
--		$keys = $table->keys;
--		$parr = array();
--		
--		foreach($keys as $k) {
--			$f = $table->flds[$k];
--			if ($f) {
--				$parr[] = $k.' = '.$this->doquote($db,$this->$k,$db->MetaType($f->type));
--			}
--		}
--		return implode(' and ', $parr);
--	}
--	
--	
--	//------------------------------------------------------------ Public functions below
--	
--	function Load($where=null,$bindarr=false)
--	{
--		$db = $this->DB(); if (!$db) return false;
--		$this->_where = $where;
--		
--		$save = $db->SetFetchMode(ADODB_FETCH_NUM);
--		$qry = "select * from ".$this->_table;
--
--		if($where) {
--			$qry .= ' WHERE '.$where;
--		}
--		$row = $db->GetRow($qry,$bindarr);
--		
--		
--		$db->SetFetchMode($save);
--		
--		return $this->Set($row);
--	}
--	
--	// false on error
--	function Save()
--	{
--		if ($this->_saved) $ok = $this->Update();
--		else $ok = $this->Insert();
--		
--		return $ok;
--	}
--	
--	// false on error
--	function Insert()
--	{
--		$db = $this->DB(); if (!$db) return false;
--		$cnt = 0;
--		$table = $this->TableInfo();
--		
--		$valarr = array();
--		$names = array();
--		$valstr = array();
--
--		foreach($table->flds as $name=>$fld) {
--			$val = $this->$name;
--			if(!is_null($val) || !array_key_exists($name, $table->keys)) {
--				$valarr[] = $val;
--				$names[] = $name;
--				$valstr[] = $db->Param($cnt);
--				$cnt += 1;
--			}
--		}
--		
--		if (empty($names)){
--			foreach($table->flds as $name=>$fld) {
--				$valarr[] = null;
--				$names[] = $name;
--				$valstr[] = $db->Param($cnt);
--				$cnt += 1;
--			}
--		}
--		$sql = 'INSERT INTO '.$this->_table."(".implode(',',$names).') VALUES ('.implode(',',$valstr).')';
--		$ok = $db->Execute($sql,$valarr);
--		
--		if ($ok) {
--			$this->_saved = true;
--			$autoinc = false;
--			foreach($table->keys as $k) {
--				if (is_null($this->$k)) {
--					$autoinc = true;
--					break;
--				}
--			}
--			if ($autoinc && sizeof($table->keys) == 1) {
--				$k = reset($table->keys);
--				$this->$k = $this->LastInsertID($db,$k);
--			}
--		}
--		
--		$this->_original = $valarr;
--		return !empty($ok);
--	}
--	
--	function Delete()
--	{
--		$db = $this->DB(); if (!$db) return false;
--		$table = $this->TableInfo();
--		
--		$where = $this->GenWhere($db,$table);
--		$sql = 'DELETE FROM '.$this->_table.' WHERE '.$where;
--		$ok = $db->Execute($sql);
--		
--		return $ok ? true : false;
--	}
--	
--	// returns an array of active record objects
--	function Find($whereOrderBy,$bindarr=false,$pkeysArr=false,$extra=array())
--	{
--		$db = $this->DB(); if (!$db || empty($this->_table)) return false;
--		$arr = $db->GetActiveRecordsClass(get_class($this),$this->_table, $whereOrderBy,$bindarr,$pkeysArr,$extra);
--		return $arr;
--	}
--	
--	// returns 0 on error, 1 on update, 2 on insert
--	function Replace()
--	{
--	global $ADODB_ASSOC_CASE;
--		
--		$db = $this->DB(); if (!$db) return false;
--		$table = $this->TableInfo();
--		
--		$pkey = $table->keys;
--		
--		foreach($table->flds as $name=>$fld) {
--			$val = $this->$name;
--			/*
--			if (is_null($val)) {
--				if (isset($fld->not_null) && $fld->not_null) {
--					if (isset($fld->default_value) && strlen($fld->default_value)) continue;
--					else {
--						$this->Error("Cannot update null into $name","Replace");
--						return false;
--					}
--				}
--			}*/
--			if (is_null($val) && !empty($fld->auto_increment)) {
--            	continue;
--            }
--			$t = $db->MetaType($fld->type);
--			$arr[$name] = $this->doquote($db,$val,$t);
--			$valarr[] = $val;
--		}
--		
--		if (!is_array($pkey)) $pkey = array($pkey);
--		
--		
--		if ($ADODB_ASSOC_CASE == 0) 
--			foreach($pkey as $k => $v)
--				$pkey[$k] = strtolower($v);
--		elseif ($ADODB_ASSOC_CASE == 1) 
--			foreach($pkey as $k => $v)
--				$pkey[$k] = strtoupper($v);
--				
--		$ok = $db->Replace($this->_table,$arr,$pkey);
--		if ($ok) {
--			$this->_saved = true; // 1= update 2=insert
--			if ($ok == 2) {
--				$autoinc = false;
--				foreach($table->keys as $k) {
--					if (is_null($this->$k)) {
--						$autoinc = true;
--						break;
--					}
--				}
--				if ($autoinc && sizeof($table->keys) == 1) {
--					$k = reset($table->keys);
--					$this->$k = $this->LastInsertID($db,$k);
--				}
--			}
--			
--			$this->_original = $valarr;
--		} 
--		return $ok;
--	}
--
--	// returns 0 on error, 1 on update, -1 if no change in data (no update)
--	function Update()
--	{
--		$db = $this->DB(); if (!$db) return false;
--		$table = $this->TableInfo();
--		
--		$where = $this->GenWhere($db, $table);
--		
--		if (!$where) {
--			$this->error("Where missing for table $table", "Update");
--			return false;
--		}
--		$valarr = array(); 
--		$neworig = array();
--		$pairs = array();
--		$i = -1;
--		$cnt = 0;
--		foreach($table->flds as $name=>$fld) {
--			$i += 1;
--			$val = $this->$name;
--			$neworig[] = $val;
--			
--			if (isset($table->keys[$name])) {
--				continue;
--			}
--			
--			if (is_null($val)) {
--				if (isset($fld->not_null) && $fld->not_null) {
--					if (isset($fld->default_value) && strlen($fld->default_value)) continue;
--					else {
--						$this->Error("Cannot set field $name to NULL","Update");
--						return false;
--					}
--				}
--			}
--			
--			if (isset($this->_original[$i]) && $val == $this->_original[$i]) {
--				continue;
--			}			
--			$valarr[] = $val;
--			$pairs[] = $name.'='.$db->Param($cnt);
--			$cnt += 1;
--		}
--		
--		
--		if (!$cnt) return -1;
--		$sql = 'UPDATE '.$this->_table." SET ".implode(",",$pairs)." WHERE ".$where;
--		$ok = $db->Execute($sql,$valarr);
--		if ($ok) {
--			$this->_original = $neworig;
--			return 1;
--		}
--		return 0;
--	}
--	
--	function GetAttributeNames()
--	{
--		$table = $this->TableInfo();
--		if (!$table) return false;
--		return array_keys($table->flds);
--	}
--	
--};
--
--function adodb_GetActiveRecordsClass(&$db, $class, $table,$whereOrderBy,$bindarr, $primkeyArr,
--			$extra)
--{
--global $_ADODB_ACTIVE_DBS;
--
--	
--	$save = $db->SetFetchMode(ADODB_FETCH_NUM);
--	$qry = "select * from ".$table;
--	
--	if (!empty($whereOrderBy))
--		$qry .= ' WHERE '.$whereOrderBy;
--	if(isset($extra['limit']))
--	{
--		$rows = false;
--		if(isset($extra['offset'])) {
--			$rs = $db->SelectLimit($qry, $extra['limit'], $extra['offset']);
--		} else {
--			$rs = $db->SelectLimit($qry, $extra['limit']);
--		}
--		if ($rs) {
--			while (!$rs->EOF) {
--				$rows[] = $rs->fields;
--				$rs->MoveNext();
--			}
--		}
--	} else
--		$rows = $db->GetAll($qry,$bindarr);
--
--	$db->SetFetchMode($save);
--	
--	$false = false;
--	
--	if ($rows === false) {	
--		return $false;
--	}
--	
--
--	if (!class_exists($class)) {
--		$db->outp_throw("Unknown class $class in GetActiveRecordsClass()",'GetActiveRecordsClass');
--		return $false;
--	}
--	$arr = array();
--	// arrRef will be the structure that knows about our objects.
--	// It is an associative array.
--	// We will, however, return arr, preserving regular 0.. order so that
--	// obj[0] can be used by app developpers.
--	$arrRef = array();
--	$bTos = array(); // Will store belongTo's indices if any
--	foreach($rows as $row) {
--	
--		$obj = new $class($table,$primkeyArr,$db);
--		if ($obj->ErrorNo()){
--			$db->_errorMsg = $obj->ErrorMsg();
--			return $false;
--		}
--		$obj->Set($row);
--		$arr[] = $obj;
--	} // foreach($rows as $row) 
--
--	return $arr;
--}
--?>
-\ No newline at end of file
-diff -aburN --exclude='.svn*' inc/adodb5/adodb-active-recordx.inc.php inc/adodb/adodb-active-recordx.inc.php
---- inc/adodb5/adodb-active-recordx.inc.php	2008-10-29 18:14:48.000000000 +1100
-+++ inc/adodb/adodb-active-recordx.inc.php	1970-01-01 10:00:00.000000000 +1000
-@@ -1,1413 +0,0 @@
--<?php
--/*
--
--@version V5.06 29 Sept 2008   (c) 2000-2008 John Lim (jlim#natsoft.com). All rights reserved.
--  Latest version is available at http://adodb.sourceforge.net
-- 
--  Released under both BSD license and Lesser GPL library license. 
--  Whenever there is any discrepancy between the two licenses, 
--  the BSD license will take precedence.
--  
--  Active Record implementation. Superset of Zend Framework's.
--  
--  This is "Active Record eXtended" to support JOIN, WORK and LAZY mode by Chris Ravenscroft  chris#voilaweb.com 
--  
--  Version 0.9
--  
--  See http://www-128.ibm.com/developerworks/java/library/j-cb03076/?ca=dgr-lnxw01ActiveRecord 
--  	for info on Ruby on Rails Active Record implementation
--*/
--
--
--	// CFR: Active Records Definitions
--define('ADODB_JOIN_AR', 0x01);
--define('ADODB_WORK_AR', 0x02);
--define('ADODB_LAZY_AR', 0x03);
--
--
--global $_ADODB_ACTIVE_DBS;
--global $ADODB_ACTIVE_CACHESECS; // set to true to enable caching of metadata such as field info
--global $ACTIVE_RECORD_SAFETY; // set to false to disable safety checks
--global $ADODB_ACTIVE_DEFVALS; // use default values of table definition when creating new active record.
--
--// array of ADODB_Active_DB's, indexed by ADODB_Active_Record->_dbat
--$_ADODB_ACTIVE_DBS = array();
--$ACTIVE_RECORD_SAFETY = true; // CFR: disabled while playing with relations
--$ADODB_ACTIVE_DEFVALS = false;
--
--class ADODB_Active_DB {
--	var $db; // ADOConnection
--	var $tables; // assoc array of ADODB_Active_Table objects, indexed by tablename
--}
--
--class ADODB_Active_Table {
--	var $name; // table name
--	var $flds; // assoc array of adofieldobjs, indexed by fieldname
--	var $keys; // assoc array of primary keys, indexed by fieldname
--	var $_created; // only used when stored as a cached file
--	var $_belongsTo = array();
--	var $_hasMany = array();
--	var $_colsCount; // total columns count, including relations
--
--	function updateColsCount()
--	{
--		$this->_colsCount = sizeof($this->flds);
--		foreach($this->_belongsTo as $foreignTable)
--			$this->_colsCount += sizeof($foreignTable->TableInfo()->flds);
--		foreach($this->_hasMany as $foreignTable)
--			$this->_colsCount += sizeof($foreignTable->TableInfo()->flds);
--	}
--}
--
--// returns index into $_ADODB_ACTIVE_DBS
--function ADODB_SetDatabaseAdapter(&$db)
--{
--	global $_ADODB_ACTIVE_DBS;
--	
--		foreach($_ADODB_ACTIVE_DBS as $k => $d) {
--			if (PHP_VERSION >= 5) {
--				if ($d->db === $db) return $k;
--			} else {
--				if ($d->db->_connectionID === $db->_connectionID && $db->database == $d->db->database) 
--					return $k;
--			}
--		}
--		
--		$obj = new ADODB_Active_DB();
--		$obj->db = $db;
--		$obj->tables = array();
--		
--		$_ADODB_ACTIVE_DBS[] = $obj;
--		
--		return sizeof($_ADODB_ACTIVE_DBS)-1;
--}
--
--
--class ADODB_Active_Record {
--	static $_changeNames = true; // dynamically pluralize table names
--	static $_foreignSuffix = '_id'; // 
--	var $_dbat; // associative index pointing to ADODB_Active_DB eg. $ADODB_Active_DBS[_dbat]
--	var $_table; // tablename, if set in class definition then use it as table name
--	var $_sTable; // singularized table name
--	var $_pTable; // pluralized table name
--	var $_tableat; // associative index pointing to ADODB_Active_Table, eg $ADODB_Active_DBS[_dbat]->tables[$this->_tableat]
--	var $_where; // where clause set in Load()
--	var $_saved = false; // indicates whether data is already inserted.
--	var $_lasterr = false; // last error message
--	var $_original = false; // the original values loaded or inserted, refreshed on update
--
--	var $foreignName; // CFR: class name when in a relationship
--
--	static function UseDefaultValues($bool=null)
--	{
--	global $ADODB_ACTIVE_DEFVALS;
--		if (isset($bool)) $ADODB_ACTIVE_DEFVALS = $bool;
--		return $ADODB_ACTIVE_DEFVALS;
--	}
--
--	// should be static
--	static function SetDatabaseAdapter(&$db) 
--	{
--		return ADODB_SetDatabaseAdapter($db);
--	}
--	
--	
--	public function __set($name, $value)
--	{
--		$name = str_replace(' ', '_', $name);
--		$this->$name = $value;
--	}
--	
--	// php5 constructor
--	// Note: if $table is defined, then we will use it as our table name
--	// Otherwise we will use our classname...
--	// In our database, table names are pluralized (because there can be
--	// more than one row!)
--	// Similarly, if $table is defined here, it has to be plural form.
--	//
--	// $options is an array that allows us to tweak the constructor's behaviour
--	// if $options['refresh'] is true, we re-scan our metadata information
--	// if $options['new'] is true, we forget all relations
--	function __construct($table = false, $pkeyarr=false, $db=false, $options=array())
--	{
--	global $ADODB_ASSOC_CASE,$_ADODB_ACTIVE_DBS;
--	
--		if ($db == false && is_object($pkeyarr)) {
--			$db = $pkeyarr;
--			$pkeyarr = false;
--		}
--		
--		if($table)
--		{
--			// table argument exists. It is expected to be
--			// already plural form.
--			$this->_pTable = $table;
--			$this->_sTable = $this->_singularize($this->_pTable);
--		}
--		else
--		{
--			// We will use current classname as table name.
--			// We need to pluralize it for the real table name.
--			$this->_sTable = strtolower(get_class($this));
--			$this->_pTable = $this->_pluralize($this->_sTable);
--		}
--		$this->_table = &$this->_pTable;
--
--		$this->foreignName = $this->_sTable; // CFR: default foreign name (singular)
--
--		if ($db) {
--			$this->_dbat = ADODB_Active_Record::SetDatabaseAdapter($db);
--		} else
--			$this->_dbat = sizeof($_ADODB_ACTIVE_DBS)-1;
--		
--		
--		if ($this->_dbat < 0) $this->Error("No database connection set; use ADOdb_Active_Record::SetDatabaseAdapter(\$db)",'ADODB_Active_Record::__constructor');
--		
--		$this->_tableat = $this->_table; # reserved for setting the assoc value to a non-table name, eg. the sql string in future
--
--		// CFR: Just added this option because UpdateActiveTable() can refresh its information
--		// but there was no way to ask it to do that.
--		$forceUpdate = (isset($options['refresh']) && true === $options['refresh']);
--		$this->UpdateActiveTable($pkeyarr, $forceUpdate);
--		if(isset($options['new']) && true === $options['new'])
--		{
--			$table =& $this->TableInfo();
--			unset($table->_hasMany);
--			unset($table->_belongsTo);
--			$table->_hasMany = array();
--			$table->_belongsTo = array();
--		}
--	}
--	
--	function __wakeup()
--	{
--  		$class = get_class($this);
--  		new $class;
--	}
--	
--	// CFR: Constants found in Rails
--	static $IrregularP = array(
--		'PERSON'    => 'people',
--		'MAN'       => 'men',
--		'WOMAN'     => 'women',
--		'CHILD'     => 'children',
--		'COW'       => 'kine',
--	);
--
--	static $IrregularS = array(
--		'PEOPLE'    => 'PERSON',
--		'MEN'       => 'man',
--		'WOMEN'     => 'woman',
--		'CHILDREN'  => 'child',
--		'KINE'      => 'cow',
--	);
--
--	static $WeIsI = array(
--		'EQUIPMENT' => true,
--		'INFORMATION'   => true,
--		'RICE'      => true,
--		'MONEY'     => true,
--		'SPECIES'   => true,
--		'SERIES'    => true,
--		'FISH'      => true,
--		'SHEEP'     => true,
--	);
--
--	function _pluralize($table)
--	{
--		if (!ADODB_Active_Record::$_changeNames) return $table;
--
--		$ut = strtoupper($table);
--		if(isset(self::$WeIsI[$ut]))
--		{
--			return $table;
--		}
--		if(isset(self::$IrregularP[$ut]))
--		{
--			return self::$IrregularP[$ut];
--		}
--		$len = strlen($table);
--		$lastc = $ut[$len-1];
--		$lastc2 = substr($ut,$len-2);
--		switch ($lastc) {
--		case 'S':
--			return $table.'es';	
--		case 'Y':
--			return substr($table,0,$len-1).'ies';
--		case 'X':	
--			return $table.'es';
--		case 'H': 
--			if ($lastc2 == 'CH' || $lastc2 == 'SH')
--				return $table.'es';
--		default:
--			return $table.'s';
--		}
--	}
--	
--	// CFR Lamest singular inflector ever - @todo Make it real!
--	// Note: There is an assumption here...and it is that the argument's length >= 4
--	function _singularize($table)
--	{
--	
--		if (!ADODB_Active_Record::$_changeNames) return $table;
--	
--		$ut = strtoupper($table);
--		if(isset(self::$WeIsI[$ut]))
--		{
--			return $table;
--		}
--		if(isset(self::$IrregularS[$ut]))
--		{
--			return self::$IrregularS[$ut];
--		}
--		$len = strlen($table);
--		if($ut[$len-1] != 'S')
--			return $table; // I know...forget oxen
--		if($ut[$len-2] != 'E')
--			return substr($table, 0, $len-1);
--		switch($ut[$len-3])
--		{
--			case 'S':
--			case 'X':
--				return substr($table, 0, $len-2);
--			case 'I':
--				return substr($table, 0, $len-3) . 'y';
--			case 'H';
--				if($ut[$len-4] == 'C' || $ut[$len-4] == 'S')
--					return substr($table, 0, $len-2);
--			default:
--				return substr($table, 0, $len-1); // ?
--		}
--	}
--
--	/*
--	 * ar->foreignName will contain the name of the tables associated with this table because
--	 * these other tables' rows may also be referenced by this table using theirname_id or the provided
--	 * foreign keys (this index name is stored in ar->foreignKey)
--	 *
--	 * this-table.id = other-table-#1.this-table_id
--	 *               = other-table-#2.this-table_id
--	 */
--	function hasMany($foreignRef,$foreignKey=false)
--	{
--		$ar = new ADODB_Active_Record($foreignRef);
--		$ar->foreignName = $foreignRef;
--		$ar->UpdateActiveTable();
--		$ar->foreignKey = ($foreignKey) ? $foreignKey : strtolower(get_class($this)) . self::$_foreignSuffix;
--
--		$table =& $this->TableInfo();
--		if(!isset($table->_hasMany[$foreignRef]))
--		{
--			$table->_hasMany[$foreignRef] = $ar;
--			$table->updateColsCount();
--		}
--# @todo Can I make this guy be lazy?
--		$this->$foreignRef = $table->_hasMany[$foreignRef]; // WATCHME Removed assignment by ref. to please __get()
--	}
--
--	/**
--	 * ar->foreignName will contain the name of the tables associated with this table because
--	 * this table's rows may also be referenced by those tables using thistable_id or the provided
--	 * foreign keys (this index name is stored in ar->foreignKey)
--	 *
--	 * this-table.other-table_id = other-table.id
--	 */
--	function belongsTo($foreignRef,$foreignKey=false)
--	{
--		global $inflector;
--
--		$ar = new ADODB_Active_Record($this->_pluralize($foreignRef));
--		$ar->foreignName = $foreignRef;
--		$ar->UpdateActiveTable();
--		$ar->foreignKey = ($foreignKey) ? $foreignKey : $ar->foreignName . self::$_foreignSuffix;
--		
--		$table =& $this->TableInfo();
--		if(!isset($table->_belongsTo[$foreignRef]))
--		{
--			$table->_belongsTo[$foreignRef] = $ar;
--			$table->updateColsCount();
--		}
--		$this->$foreignRef = $table->_belongsTo[$foreignRef];
--	}
--
--	/**
--	 * __get Access properties - used for lazy loading
--	 * 
--	 * @param mixed $name 
--	 * @access protected
--	 * @return void
--	 */
--	function __get($name)
--	{
--		return $this->LoadRelations($name, '', -1. -1);
--	}
--
--	function LoadRelations($name, $whereOrderBy, $offset=-1, $limit=-1)
--	{
--		$extras = array();
--		if($offset >= 0) $extras['offset'] = $offset;
--		if($limit >= 0) $extras['limit'] = $limit;
--		$table =& $this->TableInfo();
--		
--		if (strlen($whereOrderBy)) 
--			if (!preg_match('/^[ \n\r]*AND/i',$whereOrderBy))
--				if (!preg_match('/^[ \n\r]*ORDER[ \n\r]/i',$whereOrderBy))
--					$whereOrderBy = 'AND '.$whereOrderBy;
--					
--		if(!empty($table->_belongsTo[$name]))
--		{
--			$obj = $table->_belongsTo[$name];
--			$columnName = $obj->foreignKey;
--			if(empty($this->$columnName))
--				$this->$name = null;
--			else
--			{
--				if(($k = reset($obj->TableInfo()->keys)))
--					$belongsToId = $k;
--				else
--					$belongsToId = 'id';
--				
--				$arrayOfOne =
--					$obj->Find(
--						$belongsToId.'='.$this->$columnName.' '.$whereOrderBy, false, false, $extras);
--				$this->$name = $arrayOfOne[0];
--			}
--			return $this->$name;
--		}
--		if(!empty($table->_hasMany[$name]))
--		{
--			$obj = $table->_hasMany[$name];
--			if(($k = reset($table->keys)))
--				$hasManyId   = $k;
--			else
--				$hasManyId   = 'id';			
--
--			$this->$name =
--				$obj->Find(
--					$obj->foreignKey.'='.$this->$hasManyId.' '.$whereOrderBy, false, false, $extras);
--			return $this->$name;
--		}
--	}
--	//////////////////////////////////
--	
--	// update metadata
--	function UpdateActiveTable($pkeys=false,$forceUpdate=false)
--	{
--	global $ADODB_ASSOC_CASE,$_ADODB_ACTIVE_DBS , $ADODB_CACHE_DIR, $ADODB_ACTIVE_CACHESECS;
--	global $ADODB_ACTIVE_DEFVALS;
--
--		$activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
--
--		$table = $this->_table;
--		$tables = $activedb->tables;
--		$tableat = $this->_tableat;
--		if (!$forceUpdate && !empty($tables[$tableat])) {
--
--			$tobj = $tables[$tableat];
--			foreach($tobj->flds as $name => $fld) {
--			if ($ADODB_ACTIVE_DEFVALS && isset($fld->default_value)) 
--				$this->$name = $fld->default_value;
--			else
--				$this->$name = null;
--			}
--			return;
--		}
--		
--		$db = $activedb->db;
--		$fname = $ADODB_CACHE_DIR . '/adodb_' . $db->databaseType . '_active_'. $table . '.cache';
--		if (!$forceUpdate && $ADODB_ACTIVE_CACHESECS && $ADODB_CACHE_DIR && file_exists($fname)) {
--			$fp = fopen($fname,'r');
--			@flock($fp, LOCK_SH);
--			$acttab = unserialize(fread($fp,100000));
--			fclose($fp);
--			if ($acttab->_created + $ADODB_ACTIVE_CACHESECS - (abs(rand()) % 16) > time()) { 
--				// abs(rand()) randomizes deletion, reducing contention to delete/refresh file
--				// ideally, you should cache at least 32 secs
--				$activedb->tables[$table] = $acttab;
--				
--				//if ($db->debug) ADOConnection::outp("Reading cached active record file: $fname");
--			  	return;
--			} else if ($db->debug) {
--				ADOConnection::outp("Refreshing cached active record file: $fname");
--			}
--		}
--		$activetab = new ADODB_Active_Table();
--		$activetab->name = $table;
--		
--		
--		$cols = $db->MetaColumns($table);
--		if (!$cols) {
--			$this->Error("Invalid table name: $table",'UpdateActiveTable'); 
--			return false;
--		}
--		$fld = reset($cols);
--		if (!$pkeys) {
--			if (isset($fld->primary_key)) {
--				$pkeys = array();
--				foreach($cols as $name => $fld) {
--					if (!empty($fld->primary_key)) $pkeys[] = $name;
--				}
--			} else	
--				$pkeys = $this->GetPrimaryKeys($db, $table);
--		}
--		if (empty($pkeys)) {
--			$this->Error("No primary key found for table $table",'UpdateActiveTable');
--			return false;
--		}
--		
--		$attr = array();
--		$keys = array();
--		
--		switch($ADODB_ASSOC_CASE) {
--		case 0:
--			foreach($cols as $name => $fldobj) {
--				$name = strtolower($name);
--                if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
--                    $this->$name = $fldobj->default_value;
--                else
--					$this->$name = null;
--				$attr[$name] = $fldobj;
--			}
--			foreach($pkeys as $k => $name) {
--				$keys[strtolower($name)] = strtolower($name);
--			}
--			break;
--			
--		case 1: 
--			foreach($cols as $name => $fldobj) {
--				$name = strtoupper($name);
--               
--                if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
--                    $this->$name = $fldobj->default_value;
--                else
--					$this->$name = null;
--				$attr[$name] = $fldobj;
--			}
--			
--			foreach($pkeys as $k => $name) {
--				$keys[strtoupper($name)] = strtoupper($name);
--			}
--			break;
--		default:
--			foreach($cols as $name => $fldobj) {
--				$name = ($fldobj->name);
--                
--                if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
--                    $this->$name = $fldobj->default_value;
--                else
--					$this->$name = null;
--				$attr[$name] = $fldobj;
--			}
--			foreach($pkeys as $k => $name) {
--				$keys[$name] = $cols[$name]->name;
--			}
--			break;
--		}
--		
--		$activetab->keys = $keys;
--		$activetab->flds = $attr;
--		$activetab->updateColsCount();
--
--		if ($ADODB_ACTIVE_CACHESECS && $ADODB_CACHE_DIR) {
--			$activetab->_created = time();
--			$s = serialize($activetab);
--			if (!function_exists('adodb_write_file')) include(ADODB_DIR.'/adodb-csvlib.inc.php');
--			adodb_write_file($fname,$s);
--		}
--		if (isset($activedb->tables[$table])) {
--			$oldtab = $activedb->tables[$table];
--		
--			if ($oldtab) $activetab->_belongsTo = $oldtab->_belongsTo;
--			if ($oldtab) $activetab->_hasMany = $oldtab->_hasMany;
--		}
--		$activedb->tables[$table] = $activetab;
--	}
--	
--	function GetPrimaryKeys(&$db, $table)
--	{
--		return $db->MetaPrimaryKeys($table);
--	}
--	
--	// error handler for both PHP4+5. 
--	function Error($err,$fn)
--	{
--	global $_ADODB_ACTIVE_DBS;
--	
--		$fn = get_class($this).'::'.$fn;
--		$this->_lasterr = $fn.': '.$err;
--		
--		if ($this->_dbat < 0) $db = false;
--		else {
--			$activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
--			$db = $activedb->db;
--		}
--		
--		if (function_exists('adodb_throw')) {	
--			if (!$db) adodb_throw('ADOdb_Active_Record', $fn, -1, $err, 0, 0, false);
--			else adodb_throw($db->databaseType, $fn, -1, $err, 0, 0, $db);
--		} else
--			if (!$db || $db->debug) ADOConnection::outp($this->_lasterr);
--		
--	}
--	
--	// return last error message
--	function ErrorMsg()
--	{
--		if (!function_exists('adodb_throw')) {
--			if ($this->_dbat < 0) $db = false;
--			else $db = $this->DB();
--		
--			// last error could be database error too
--			if ($db && $db->ErrorMsg()) return $db->ErrorMsg();
--		}
--		return $this->_lasterr;
--	}
--	
--	function ErrorNo() 
--	{
--		if ($this->_dbat < 0) return -9999; // no database connection...
--		$db = $this->DB();
--		
--		return (int) $db->ErrorNo();
--	}
--
--
--	// retrieve ADOConnection from _ADODB_Active_DBs
--	function DB()
--	{
--	global $_ADODB_ACTIVE_DBS;
--	
--		if ($this->_dbat < 0) {
--			$false = false;
--			$this->Error("No database connection set: use ADOdb_Active_Record::SetDatabaseAdaptor(\$db)", "DB");
--			return $false;
--		}
--		$activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
--		$db = $activedb->db;
--		return $db;
--	}
--	
--	// retrieve ADODB_Active_Table
--	function &TableInfo()
--	{
--	global $_ADODB_ACTIVE_DBS;
--	
--		$activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
--		$table = $activedb->tables[$this->_tableat];
--		return $table;
--	}
--	
--	
--	// I have an ON INSERT trigger on a table that sets other columns in the table.
--	// So, I find that for myTable, I want to reload an active record after saving it. -- Malcolm Cook
--	function Reload()
--	{
--		$db =& $this->DB(); if (!$db) return false;
--		$table =& $this->TableInfo();
--		$where = $this->GenWhere($db, $table);
--		return($this->Load($where));
--	}
--
--	
--	// set a numeric array (using natural table field ordering) as object properties
--	function Set(&$row)
--	{
--	global $ACTIVE_RECORD_SAFETY;
--	
--		$db = $this->DB();
--		
--		if (!$row) {
--			$this->_saved = false;		
--			return false;
--		}
--		
--		$this->_saved = true;
--		
--		$table = $this->TableInfo();
--		$sizeofFlds = sizeof($table->flds);
--		$sizeofRow  = sizeof($row);
--		if ($ACTIVE_RECORD_SAFETY && $table->_colsCount != $sizeofRow && $sizeofFlds != $sizeofRow) {
--            # <AP>
--            $bad_size = TRUE;
--	if($sizeofRow == 2 * $table->_colsCount || $sizeofRow == 2 * $sizeofFlds) {
--                // Only keep string keys
--                $keys = array_filter(array_keys($row), 'is_string');
--                if (sizeof($keys) == sizeof($table->flds))
--                    $bad_size = FALSE;
--            }
--            if ($bad_size) {
--			$this->Error("Table structure of $this->_table has changed","Load");
--			return false;
--		}
--            # </AP>
--		}
--        else
--		$keys = array_keys($row);
--        # <AP>
--        reset($keys);
--        $this->_original = array();
--		foreach($table->flds as $name=>$fld)
--		{
--            $value = $row[current($keys)];
--			$this->$name = $value;
--            $this->_original[] = $value;
--            if(!next($keys)) break;
--		}
--		$table =& $this->TableInfo();
--		foreach($table->_belongsTo as $foreignTable)
--		{
--			$ft = $foreignTable->TableInfo();
--			$propertyName = $ft->name;
--			foreach($ft->flds as $name=>$fld)
--			{
--				$value = $row[current($keys)];
--				$foreignTable->$name = $value;
--				$foreignTable->_original[] = $value;
--				if(!next($keys)) break;
--			}
--		}
--		foreach($table->_hasMany as $foreignTable)
--		{
--			$ft = $foreignTable->TableInfo();
--			foreach($ft->flds as $name=>$fld)
--			{
--				$value = $row[current($keys)];
--				$foreignTable->$name = $value;
--				$foreignTable->_original[] = $value;
--				if(!next($keys)) break;
--			}
--		}
--        # </AP>
--		return true;
--	}
--	
--	// get last inserted id for INSERT
--	function LastInsertID(&$db,$fieldname)
--	{
--		if ($db->hasInsertID)
--			$val = $db->Insert_ID($this->_table,$fieldname);
--		else
--			$val = false;
--			
--		if (is_null($val) || $val === false) {
--			// this might not work reliably in multi-user environment
--			return $db->GetOne("select max(".$fieldname.") from ".$this->_table);
--		}
--		return $val;
--	}
--	
--	// quote data in where clause
--	function doquote(&$db, $val,$t)
--	{
--		switch($t) {
--		case 'D':
--		case 'T':
--			if (empty($val)) return 'null';
--			
--		case 'C':
--		case 'X':
--			if (is_null($val)) return 'null';
--			
--			if (strncmp($val,"'",1) != 0 && substr($val,strlen($val)-1,1) != "'") { 
--				return $db->qstr($val);
--				break;
--			}
--		default:
--			return $val;
--			break;
--		}
--	}
--	
--	// generate where clause for an UPDATE/SELECT
--	function GenWhere(&$db, &$table)
--	{
--		$keys = $table->keys;
--		$parr = array();
--		
--		foreach($keys as $k) {
--			$f = $table->flds[$k];
--			if ($f) {
--				$parr[] = $k.' = '.$this->doquote($db,$this->$k,$db->MetaType($f->type));
--			}
--		}
--		return implode(' and ', $parr);
--	}
--	
--	
--	//------------------------------------------------------------ Public functions below
--	
--	function Load($where=null,$bindarr=false)
--	{
--		$db = $this->DB(); if (!$db) return false;
--		$this->_where = $where;
--		
--		$save = $db->SetFetchMode(ADODB_FETCH_NUM);
--		$qry = "select * from ".$this->_table;
--		$table =& $this->TableInfo();
--
--		if(($k = reset($table->keys)))
--			$hasManyId   = $k;
--		else
--			$hasManyId   = 'id';
--		
--		foreach($table->_belongsTo as $foreignTable)
--		{
--			if(($k = reset($foreignTable->TableInfo()->keys)))
--			{
--				$belongsToId = $k;
--			}
--			else
--			{
--				$belongsToId = 'id';
--			}
--			$qry .= ' LEFT JOIN '.$foreignTable->_table.' ON '.
--				$this->_table.'.'.$foreignTable->foreignKey.'='.
--				$foreignTable->_table.'.'.$belongsToId;
--		}
--		foreach($table->_hasMany as $foreignTable)
--		{
--			$qry .= ' LEFT JOIN '.$foreignTable->_table.' ON '.
--				$this->_table.'.'.$hasManyId.'='.
--				$foreignTable->_table.'.'.$foreignTable->foreignKey;
--		}
--		if($where)
--			$qry .= ' WHERE '.$where;
--		
--		// Simple case: no relations. Load row and return.
--		if((count($table->_hasMany) + count($table->_belongsTo)) < 1)
--		{
--			$row = $db->GetRow($qry,$bindarr);
--			if(!$row)
--				return false;
--			$db->SetFetchMode($save);
--			return $this->Set($row);
--		}
--		
--		// More complex case when relations have to be collated
--		$rows = $db->GetAll($qry,$bindarr);
--		if(!$rows)
--			return false;
--		$db->SetFetchMode($save);
--		if(count($rows) < 1)
--			return false;
--		$class = get_class($this);
--		$isFirstRow = true;
--		
--		if(($k = reset($this->TableInfo()->keys)))
--			$myId   = $k;
--		else
--			$myId   = 'id';
--		$index = 0; $found = false;
--		/** @todo Improve by storing once and for all in table metadata */
--		/** @todo Also re-use info for hasManyId */
--		foreach($this->TableInfo()->flds as $fld)
--		{
--			if($fld->name == $myId)
--			{
--				$found = true;
--				break;
--			}
--			$index++;
--		}
--		if(!$found)
--			$this->outp_throw("Unable to locate key $myId for $class in Load()",'Load');
--		
--		foreach($rows as $row)
--		{
--			$rowId = intval($row[$index]);
--			if($rowId > 0)
--			{
--				if($isFirstRow)
--				{
--					$isFirstRow = false;
--					if(!$this->Set($row))
--						return false;
--				}
--				$obj = new $class($table,false,$db);
--				$obj->Set($row);
--				// TODO Copy/paste code below: bad!
--				if(count($table->_hasMany) > 0)
--				{
--					foreach($table->_hasMany as $foreignTable)
--					{
--						$foreignName = $foreignTable->foreignName;
--						if(!empty($obj->$foreignName))
--						{
--							if(!is_array($this->$foreignName))
--							{
--								$foreignObj = $this->$foreignName;
--								$this->$foreignName = array(clone($foreignObj));
--							}
--							else
--							{
--								$foreignObj = $obj->$foreignName;
--								array_push($this->$foreignName, clone($foreignObj));
--							}
--						}
--					}
--				}
--				if(count($table->_belongsTo) > 0)
--				{
--					foreach($table->_belongsTo as $foreignTable)
--					{
--						$foreignName = $foreignTable->foreignName;
--						if(!empty($obj->$foreignName))
--						{
--							if(!is_array($this->$foreignName))
--							{
--								$foreignObj = $this->$foreignName;
--								$this->$foreignName = array(clone($foreignObj));
--							}
--							else
--							{
--								$foreignObj = $obj->$foreignName;
--								array_push($this->$foreignName, clone($foreignObj));
--							}
--						}
--					}
--				}				
--			}
--		}
--		return true;
--	}
--	
--	// false on error
--	function Save()
--	{
--		if ($this->_saved) $ok = $this->Update();
--		else $ok = $this->Insert();
--		
--		return $ok;
--	}
--	
--	// CFR: Sometimes we may wish to consider that an object is not to be replaced but inserted.
--	// Sample use case: an 'undo' command object (after a delete())
--	function Dirty()
--	{
--		$this->_saved = false;
--	}
--
--	// false on error
--	function Insert()
--	{
--		$db = $this->DB(); if (!$db) return false;
--		$cnt = 0;
--		$table = $this->TableInfo();
--		
--		$valarr = array();
--		$names = array();
--		$valstr = array();
--
--		foreach($table->flds as $name=>$fld) {
--			$val = $this->$name;
--			if(!is_null($val) || !array_key_exists($name, $table->keys)) {
--				$valarr[] = $val;
--				$names[] = $name;
--				$valstr[] = $db->Param($cnt);
--				$cnt += 1;
--			}
--		}
--		
--		if (empty($names)){
--			foreach($table->flds as $name=>$fld) {
--				$valarr[] = null;
--				$names[] = $name;
--				$valstr[] = $db->Param($cnt);
--				$cnt += 1;
--			}
--		}
--		$sql = 'INSERT INTO '.$this->_table."(".implode(',',$names).') VALUES ('.implode(',',$valstr).')';
--		$ok = $db->Execute($sql,$valarr);
--		
--		if ($ok) {
--			$this->_saved = true;
--			$autoinc = false;
--			foreach($table->keys as $k) {
--				if (is_null($this->$k)) {
--					$autoinc = true;
--					break;
--				}
--			}
--			if ($autoinc && sizeof($table->keys) == 1) {
--				$k = reset($table->keys);
--				$this->$k = $this->LastInsertID($db,$k);
--			}
--		}
--		
--		$this->_original = $valarr;
--		return !empty($ok);
--	}
--	
--	function Delete()
--	{
--		$db = $this->DB(); if (!$db) return false;
--		$table = $this->TableInfo();
--		
--		$where = $this->GenWhere($db,$table);
--		$sql = 'DELETE FROM '.$this->_table.' WHERE '.$where;
--		$ok = $db->Execute($sql);
--		
--		return $ok ? true : false;
--	}
--	
--	// returns an array of active record objects
--	function Find($whereOrderBy,$bindarr=false,$pkeysArr=false,$extra=array())
--	{
--		$db = $this->DB(); if (!$db || empty($this->_table)) return false;
--		$table =& $this->TableInfo();
--		$arr = $db->GetActiveRecordsClass(get_class($this),$this, $whereOrderBy,$bindarr,$pkeysArr,$extra,
--			array('foreignName'=>$this->foreignName, 'belongsTo'=>$table->_belongsTo, 'hasMany'=>$table->_hasMany));
--		return $arr;
--	}
--	
--	// CFR: In introduced this method to ensure that inner workings are not disturbed by
--	// subclasses...for instance when GetActiveRecordsClass invokes Find()
--	// Why am I not invoking parent::Find?
--	// Shockingly because I want to preserve PHP4 compatibility.
--	function packageFind($whereOrderBy,$bindarr=false,$pkeysArr=false,$extra=array())
--	{
--		$db = $this->DB(); if (!$db || empty($this->_table)) return false;
--		$table =& $this->TableInfo();
--		$arr = $db->GetActiveRecordsClass(get_class($this),$this, $whereOrderBy,$bindarr,$pkeysArr,$extra,
--			array('foreignName'=>$this->foreignName, 'belongsTo'=>$table->_belongsTo, 'hasMany'=>$table->_hasMany));
--		return $arr;
--	}
--
--	// returns 0 on error, 1 on update, 2 on insert
--	function Replace()
--	{
--	global $ADODB_ASSOC_CASE;
--		
--		$db = $this->DB(); if (!$db) return false;
--		$table = $this->TableInfo();
--		
--		$pkey = $table->keys;
--		
--		foreach($table->flds as $name=>$fld) {
--			$val = $this->$name;
--			/*
--			if (is_null($val)) {
--				if (isset($fld->not_null) && $fld->not_null) {
--					if (isset($fld->default_value) && strlen($fld->default_value)) continue;
--					else {
--						$this->Error("Cannot update null into $name","Replace");
--						return false;
--					}
--				}
--			}*/
--			if (is_null($val) && !empty($fld->auto_increment)) {
--            	continue;
--            }
--			$t = $db->MetaType($fld->type);
--			$arr[$name] = $this->doquote($db,$val,$t);
--			$valarr[] = $val;
--		}
--		
--		if (!is_array($pkey)) $pkey = array($pkey);
--		
--		
--		if ($ADODB_ASSOC_CASE == 0) 
--			foreach($pkey as $k => $v)
--				$pkey[$k] = strtolower($v);
--		elseif ($ADODB_ASSOC_CASE == 1) 
--			foreach($pkey as $k => $v)
--				$pkey[$k] = strtoupper($v);
--				
--		$ok = $db->Replace($this->_table,$arr,$pkey);
--		if ($ok) {
--			$this->_saved = true; // 1= update 2=insert
--			if ($ok == 2) {
--				$autoinc = false;
--				foreach($table->keys as $k) {
--					if (is_null($this->$k)) {
--						$autoinc = true;
--						break;
--					}
--				}
--				if ($autoinc && sizeof($table->keys) == 1) {
--					$k = reset($table->keys);
--					$this->$k = $this->LastInsertID($db,$k);
--				}
--			}
--			
--			$this->_original = $valarr;
--		} 
--		return $ok;
--	}
--
--	// returns 0 on error, 1 on update, -1 if no change in data (no update)
--	function Update()
--	{
--		$db = $this->DB(); if (!$db) return false;
--		$table = $this->TableInfo();
--		
--		$where = $this->GenWhere($db, $table);
--		
--		if (!$where) {
--			$this->error("Where missing for table $table", "Update");
--			return false;
--		}
--		$valarr = array(); 
--		$neworig = array();
--		$pairs = array();
--		$i = -1;
--		$cnt = 0;
--		foreach($table->flds as $name=>$fld) {
--			$i += 1;
--			$val = $this->$name;
--			$neworig[] = $val;
--			
--			if (isset($table->keys[$name])) {
--				continue;
--			}
--			
--			if (is_null($val)) {
--				if (isset($fld->not_null) && $fld->not_null) {
--					if (isset($fld->default_value) && strlen($fld->default_value)) continue;
--					else {
--						$this->Error("Cannot set field $name to NULL","Update");
--						return false;
--					}
--				}
--			}
--			
--			if (isset($this->_original[$i]) && $val == $this->_original[$i]) {
--				continue;
--			}			
--			$valarr[] = $val;
--			$pairs[] = $name.'='.$db->Param($cnt);
--			$cnt += 1;
--		}
--		
--		
--		if (!$cnt) return -1;
--		$sql = 'UPDATE '.$this->_table." SET ".implode(",",$pairs)." WHERE ".$where;
--		$ok = $db->Execute($sql,$valarr);
--		if ($ok) {
--			$this->_original = $neworig;
--			return 1;
--		}
--		return 0;
--	}
--	
--	function GetAttributeNames()
--	{
--		$table = $this->TableInfo();
--		if (!$table) return false;
--		return array_keys($table->flds);
--	}
--	
--};
--
--function adodb_GetActiveRecordsClass(&$db, $class, $tableObj,$whereOrderBy,$bindarr, $primkeyArr,
--			$extra, $relations)
--{
--	global $_ADODB_ACTIVE_DBS;
--	
--		if (empty($extra['loading'])) $extra['loading'] = ADODB_LAZY_AR;
--		
--		$save = $db->SetFetchMode(ADODB_FETCH_NUM);
--		$table = &$tableObj->_table;
--		$tableInfo =& $tableObj->TableInfo();
--		if(($k = reset($tableInfo->keys)))
--			$myId   = $k;
--		else
--			$myId   = 'id';
--		$index = 0; $found = false;
--		/** @todo Improve by storing once and for all in table metadata */
--		/** @todo Also re-use info for hasManyId */
--		foreach($tableInfo->flds as $fld)
--		{
--			if($fld->name == $myId)
--			{
--				$found = true;
--				break;
--			}
--			$index++;
--		}
--		if(!$found)
--			$db->outp_throw("Unable to locate key $myId for $class in GetActiveRecordsClass()",'GetActiveRecordsClass');
--		
--		$qry = "select * from ".$table;
--		if(ADODB_JOIN_AR == $extra['loading'])
--		{
--			if(!empty($relations['belongsTo']))
--			{
--				foreach($relations['belongsTo'] as $foreignTable)
--				{
--					if(($k = reset($foreignTable->TableInfo()->keys)))
--					{
--						$belongsToId = $k;
--					}
--					else
--					{
--						$belongsToId = 'id';
--					}
--
--					$qry .= ' LEFT JOIN '.$foreignTable->_table.' ON '.
--						$table.'.'.$foreignTable->foreignKey.'='.
--						$foreignTable->_table.'.'.$belongsToId;
--				}
--			}
--			if(!empty($relations['hasMany']))
--			{
--				if(empty($relations['foreignName']))
--					$db->outp_throw("Missing foreignName is relation specification in GetActiveRecordsClass()",'GetActiveRecordsClass');
--				if(($k = reset($tableInfo->keys)))
--					$hasManyId   = $k;
--				else
--					$hasManyId   = 'id';
--
--				foreach($relations['hasMany'] as $foreignTable)
--				{
--					$qry .= ' LEFT JOIN '.$foreignTable->_table.' ON '.
--						$table.'.'.$hasManyId.'='.
--						$foreignTable->_table.'.'.$foreignTable->foreignKey;
--				}
--			}
--		}
--		if (!empty($whereOrderBy))
--			$qry .= ' WHERE '.$whereOrderBy;
--		if(isset($extra['limit']))
--		{
--			$rows = false;
--			if(isset($extra['offset'])) {
--				$rs = $db->SelectLimit($qry, $extra['limit'], $extra['offset']);
--			} else {
--				$rs = $db->SelectLimit($qry, $extra['limit']);
--			}
--			if ($rs) {
--				while (!$rs->EOF) {
--					$rows[] = $rs->fields;
--					$rs->MoveNext();
--				}
--			}
--		} else
--			$rows = $db->GetAll($qry,$bindarr);
--			
--		$db->SetFetchMode($save);
--		
--		$false = false;
--		
--		if ($rows === false) {	
--			return $false;
--		}
--		
--		
--		if (!isset($_ADODB_ACTIVE_DBS)) {
--			include(ADODB_DIR.'/adodb-active-record.inc.php');
--		}	
--		if (!class_exists($class)) {
--			$db->outp_throw("Unknown class $class in GetActiveRecordsClass()",'GetActiveRecordsClass');
--			return $false;
--		}
--		$uniqArr = array(); // CFR Keep track of records for relations
--		$arr = array();
--		// arrRef will be the structure that knows about our objects.
--		// It is an associative array.
--		// We will, however, return arr, preserving regular 0.. order so that
--		// obj[0] can be used by app developpers.
--		$arrRef = array();
--		$bTos = array(); // Will store belongTo's indices if any
--		foreach($rows as $row) {
--		
--			$obj = new $class($table,$primkeyArr,$db);
--			if ($obj->ErrorNo()){
--				$db->_errorMsg = $obj->ErrorMsg();
--				return $false;
--			}
--			$obj->Set($row);
--			// CFR: FIXME: Insane assumption here:
--			// If the first column returned is an integer, then it's a 'id' field
--			// And to make things a bit worse, I use intval() rather than is_int() because, in fact,
--			// $row[0] is not an integer.
--			//
--			// So, what does this whole block do?
--			// When relationships are found, we perform JOINs. This is fast. But not accurate:
--			// instead of returning n objects with their n' associated cousins,
--			// we get n*n' objects. This code fixes this.
--			// Note: to-many relationships mess around with the 'limit' parameter
--			$rowId = intval($row[$index]);
--
--			if(ADODB_WORK_AR == $extra['loading'])
--			{
--				$arrRef[$rowId] = $obj;
--				$arr[] = &$arrRef[$rowId];
--				if(!isset($indices))
--					$indices = $rowId;
--				else
--					$indices .= ','.$rowId;
--				if(!empty($relations['belongsTo']))
--				{
--					foreach($relations['belongsTo'] as $foreignTable)
--					{
--						$foreignTableRef = $foreignTable->foreignKey;
--						// First array: list of foreign ids we are looking for
--						if(empty($bTos[$foreignTableRef]))
--							$bTos[$foreignTableRef] = array();
--						// Second array: list of ids found
--						if(empty($obj->$foreignTableRef))
--							continue;
--						if(empty($bTos[$foreignTableRef][$obj->$foreignTableRef]))
--							$bTos[$foreignTableRef][$obj->$foreignTableRef] = array();
--						$bTos[$foreignTableRef][$obj->$foreignTableRef][] = $obj;
--					}
--				}
--				continue;
--			}
--
--			if($rowId>0)
--			{
--				if(ADODB_JOIN_AR == $extra['loading'])
--				{
--					$isNewObj = !isset($uniqArr['_'.$row[0]]); 
--					if($isNewObj)
--						$uniqArr['_'.$row[0]] = $obj;
--
--					// TODO Copy/paste code below: bad!
--					if(!empty($relations['hasMany']))
--					{
--						foreach($relations['hasMany'] as $foreignTable)
--						{
--							$foreignName = $foreignTable->foreignName;
--							if(!empty($obj->$foreignName))
--							{
--								$masterObj = &$uniqArr['_'.$row[0]];
--								// Assumption: this property exists in every object since they are instances of the same class
--								if(!is_array($masterObj->$foreignName))
--								{
--									// Pluck!
--									$foreignObj = $masterObj->$foreignName;
--									$masterObj->$foreignName = array(clone($foreignObj));
--								}
--								else
--								{
--									// Pluck pluck!
--									$foreignObj = $obj->$foreignName;
--									array_push($masterObj->$foreignName, clone($foreignObj));
--								}
--							}
--						}
--					}
--					if(!empty($relations['belongsTo']))
--					{
--						foreach($relations['belongsTo'] as $foreignTable)
--						{
--							$foreignName = $foreignTable->foreignName;
--							if(!empty($obj->$foreignName))
--							{
--								$masterObj = &$uniqArr['_'.$row[0]];
--								// Assumption: this property exists in every object since they are instances of the same class
--								if(!is_array($masterObj->$foreignName))
--								{
--									// Pluck!
--									$foreignObj = $masterObj->$foreignName;
--									$masterObj->$foreignName = array(clone($foreignObj));
--								}
--								else
--								{
--									// Pluck pluck!
--									$foreignObj = $obj->$foreignName;
--									array_push($masterObj->$foreignName, clone($foreignObj));
--								}
--							}
--						}
--					}
--					if(!$isNewObj)
--						unset($obj); // We do not need this object itself anymore and do not want it re-added to the main array					
--				}
--				else if(ADODB_LAZY_AR == $extra['loading'])
--				{
--					// Lazy loading: we need to give AdoDb a hint that we have not really loaded
--					// anything, all the while keeping enough information on what we wish to load.
--					// Let's do this by keeping the relevant info in our relationship arrays
--					// but get rid of the actual properties.
--					// We will then use PHP's __get to load these properties on-demand.
--					if(!empty($relations['hasMany']))
--					{
--						foreach($relations['hasMany'] as $foreignTable)
--						{
--							$foreignName = $foreignTable->foreignName;
--							if(!empty($obj->$foreignName))
--							{
--								unset($obj->$foreignName);
--							}
--						}
--					}
--					if(!empty($relations['belongsTo']))
--					{
--						foreach($relations['belongsTo'] as $foreignTable)
--						{
--							$foreignName = $foreignTable->foreignName;
--							if(!empty($obj->$foreignName))
--							{
--								unset($obj->$foreignName);
--							}
--						}
--					}
--				}
--			}
--
--			if(isset($obj))
--				$arr[] = $obj;
--		}
--
--		if(ADODB_WORK_AR == $extra['loading'])
--		{
--			// The best of both worlds?
--			// Here, the number of queries is constant: 1 + n*relationship.
--			// The second query will allow us to perform a good join
--			// while preserving LIMIT etc.
--			if(!empty($relations['hasMany']))
--			{
--				foreach($relations['hasMany'] as $foreignTable)
--				{
--					$foreignName = $foreignTable->foreignName;
--					$className = ucfirst($foreignTable->_singularize($foreignName));
--					$obj = new $className();
--					$dbClassRef = $foreignTable->foreignKey;
--					$objs = $obj->packageFind($dbClassRef.' IN ('.$indices.')');
--					foreach($objs as $obj)
--					{
--						if(!is_array($arrRef[$obj->$dbClassRef]->$foreignName))
--							$arrRef[$obj->$dbClassRef]->$foreignName = array();
--						array_push($arrRef[$obj->$dbClassRef]->$foreignName, $obj);
--					}
--				}
--				
--			}
--			if(!empty($relations['belongsTo']))
--			{
--				foreach($relations['belongsTo'] as $foreignTable)
--				{
--					$foreignTableRef = $foreignTable->foreignKey;
--					if(empty($bTos[$foreignTableRef]))
--						continue;
--					if(($k = reset($foreignTable->TableInfo()->keys)))
--					{
--						$belongsToId = $k;
--					}
--					else
--					{
--						$belongsToId = 'id';
--					}						
--					$origObjsArr = $bTos[$foreignTableRef];
--					$bTosString = implode(',', array_keys($bTos[$foreignTableRef]));
--					$foreignName = $foreignTable->foreignName;
--					$className = ucfirst($foreignTable->_singularize($foreignName));
--					$obj = new $className();
--					$objs = $obj->packageFind($belongsToId.' IN ('.$bTosString.')');
--					foreach($objs as $obj)
--					{
--						foreach($origObjsArr[$obj->$belongsToId] as $idx=>$origObj)
--						{
--							$origObj->$foreignName = $obj;
--						}
--					}
--				}
--			}
--		}
--
--		return $arr;
--}
--?>
-diff -aburN --exclude='.svn*' inc/adodb5/adodb-errorpear.inc.php inc/adodb/adodb-errorpear.inc.php
---- inc/adodb5/adodb-errorpear.inc.php	2008-10-16 19:17:32.000000000 +1100
-+++ inc/adodb/adodb-errorpear.inc.php	1970-01-01 10:00:00.000000000 +1000
-@@ -1,88 +0,0 @@
--<?php
--/** 
-- * @version V5.06 16 Oct 2008  (c) 2000-2008 John Lim (jlim#natsoft.com). All rights reserved.
-- * Released under both BSD license and Lesser GPL library license. 
--  Whenever there is any discrepancy between the two licenses, 
--  the BSD license will take precedence. 
-- *
-- * Set tabs to 4 for best viewing.
-- * 
-- * Latest version is available at http://php.weblogs.com
-- * 
--*/
--include_once('PEAR.php');
--
--if (!defined('ADODB_ERROR_HANDLER')) define('ADODB_ERROR_HANDLER','ADODB_Error_PEAR');
--
--/*
--* Enabled the following if you want to terminate scripts when an error occurs
--*/
--//PEAR::setErrorHandling (PEAR_ERROR_DIE);
--
--/*
--* Name of the PEAR_Error derived class to call.
--*/
--if (!defined('ADODB_PEAR_ERROR_CLASS')) define('ADODB_PEAR_ERROR_CLASS','PEAR_Error');
--
--/*
--* Store the last PEAR_Error object here
--*/
--global $ADODB_Last_PEAR_Error; $ADODB_Last_PEAR_Error = false;
--
--  /**
--* Error Handler with PEAR support. This will be called with the following params
--*
--* @param $dbms		the RDBMS you are connecting to
--* @param $fn		the name of the calling function (in uppercase)
--* @param $errno		the native error number from the database 
--* @param $errmsg	the native error msg from the database
--* @param $p1		$fn specific parameter - see below
--* @param $P2		$fn specific parameter - see below
--	*/
--function ADODB_Error_PEAR($dbms, $fn, $errno, $errmsg, $p1=false, $p2=false)
--{
--global $ADODB_Last_PEAR_Error;
--	
--	if (error_reporting() == 0) return; // obey @ protocol
--	switch($fn) {
--	case 'EXECUTE':
--		$sql = $p1;
--		$inputparams = $p2;
--		
--		$s = "$dbms error: [$errno: $errmsg] in $fn(\"$sql\")";
--		break;
--		
--	case 'PCONNECT':
--	case 'CONNECT':
--		$host = $p1;
--		$database = $p2;
--		
--		$s = "$dbms error: [$errno: $errmsg] in $fn('$host', ?, ?, '$database')";
--		break;
--		
--	default:
--		$s = "$dbms error: [$errno: $errmsg] in $fn($p1, $p2)";
--		break;
--	}
--	
--	$class = ADODB_PEAR_ERROR_CLASS;
--	$ADODB_Last_PEAR_Error = new $class($s, $errno,
--		$GLOBALS['_PEAR_default_error_mode'],
--		$GLOBALS['_PEAR_default_error_options'], 
--		$errmsg);
--		
--	//print "<p>!$s</p>";
--}
--
--/**
--* Returns last PEAR_Error object. This error might be for an error that
--* occured several sql statements ago.
--*/
--function ADODB_PEAR_Error()
--{
--global $ADODB_Last_PEAR_Error;
--
--	return $ADODB_Last_PEAR_Error;
--}
--		
--?>
-\ No newline at end of file
-diff -aburN --exclude='.svn*' inc/adodb5/adodb-pager.inc.php inc/adodb/adodb-pager.inc.php
---- inc/adodb5/adodb-pager.inc.php	2008-10-16 19:17:32.000000000 +1100
-+++ inc/adodb/adodb-pager.inc.php	1970-01-01 10:00:00.000000000 +1000
-@@ -1,290 +0,0 @@
--<?php
--
--/*
--	V5.06 16 Oct 2008   (c) 2000-2008 John Lim (jlim#natsoft.com). All rights reserved.
--	  Released under both BSD license and Lesser GPL library license. 
--	  Whenever there is any discrepancy between the two licenses, 
--	  the BSD license will take precedence. 
--	  Set tabs to 4 for best viewing.
--
--  	This class provides recordset pagination with 
--	First/Prev/Next/Last links. 
--	
--	Feel free to modify this class for your own use as
--	it is very basic. To learn how to use it, see the 
--	example in adodb/tests/testpaging.php.
--	
--	"Pablo Costa" <[email protected]> implemented Render_PageLinks().
--	
--	Please note, this class is entirely unsupported, 
--	and no free support requests except for bug reports
--	will be entertained by the author.
--
--*/
--class ADODB_Pager {
--	var $id; 	// unique id for pager (defaults to 'adodb')
--	var $db; 	// ADODB connection object
--	var $sql; 	// sql used
--	var $rs;	// recordset generated
--	var $curr_page;	// current page number before Render() called, calculated in constructor
--	var $rows;		// number of rows per page
--    var $linksPerPage=10; // number of links per page in navigation bar
--    var $showPageLinks; 
--
--	var $gridAttributes = 'width=100% border=1 bgcolor=white';
--	
--	// Localize text strings here
--	var $first = '<code>|&lt;</code>';
--	var $prev = '<code>&lt;&lt;</code>';
--	var $next = '<code>>></code>';
--	var $last = '<code>>|</code>';
--	var $moreLinks = '...';
--	var $startLinks = '...';
--	var $gridHeader = false;
--	var $htmlSpecialChars = true;
--	var $page = 'Page';
--	var $linkSelectedColor = 'red';
--	var $cache = 0;  #secs to cache with CachePageExecute()
--	
--	//----------------------------------------------
--	// constructor
--	//
--	// $db	adodb connection object
--	// $sql	sql statement
--	// $id	optional id to identify which pager, 
--	//		if you have multiple on 1 page. 
--	//		$id should be only be [a-z0-9]*
--	//
--	function ADODB_Pager(&$db,$sql,$id = 'adodb', $showPageLinks = false)
--	{
--	global $PHP_SELF;
--	
--		$curr_page = $id.'_curr_page';
--		if (empty($PHP_SELF)) $PHP_SELF = htmlspecialchars($_SERVER['PHP_SELF']); // htmlspecialchars() to prevent XSS attacks
--		
--		$this->sql = $sql;
--		$this->id = $id;
--		$this->db = $db;
--		$this->showPageLinks = $showPageLinks;
--		
--		$next_page = $id.'_next_page';	
--		
--		if (isset($_GET[$next_page])) {
--			$_SESSION[$curr_page] = (integer) $_GET[$next_page];
--		}
--		if (empty($_SESSION[$curr_page])) $_SESSION[$curr_page] = 1; ## at first page
--		
--		$this->curr_page = $_SESSION[$curr_page];
--		
--	}
--	
--	//---------------------------
--	// Display link to first page
--	function Render_First($anchor=true)
--	{
--	global $PHP_SELF;
--		if ($anchor) {
--	?>
--		<a href="<?php echo $PHP_SELF,'?',$this->id;?>_next_page=1"><?php echo $this->first;?></a> &nbsp; 
--	<?php
--		} else {
--			print "$this->first &nbsp; ";
--		}
--	}
--	
--	//--------------------------
--	// Display link to next page
--	function render_next($anchor=true)
--	{
--	global $PHP_SELF;
--	
--		if ($anchor) {
--		?>
--		<a href="<?php echo $PHP_SELF,'?',$this->id,'_next_page=',$this->rs->AbsolutePage() + 1 ?>"><?php echo $this->next;?></a> &nbsp; 
--		<?php
--		} else {
--			print "$this->next &nbsp; ";
--		}
--	}
--	
--	//------------------
--	// Link to last page
--	// 
--	// for better performance with large recordsets, you can set
--	// $this->db->pageExecuteCountRows = false, which disables
--	// last page counting.
--	function render_last($anchor=true)
--	{
--	global $PHP_SELF;
--	
--		if (!$this->db->pageExecuteCountRows) return;
--		
--		if ($anchor) {
--		?>
--			<a href="<?php echo $PHP_SELF,'?',$this->id,'_next_page=',$this->rs->LastPageNo() ?>"><?php echo $this->last;?></a> &nbsp; 
--		<?php
--		} else {
--			print "$this->last &nbsp; ";
--		}
--	}
--	
--	//---------------------------------------------------
--	// original code by "Pablo Costa" <[email protected]> 
--        function render_pagelinks()
--        {
--        global $PHP_SELF;
--            $pages        = $this->rs->LastPageNo();
--            $linksperpage = $this->linksPerPage ? $this->linksPerPage : $pages;
--            for($i=1; $i <= $pages; $i+=$linksperpage)
--            {
--                if($this->rs->AbsolutePage() >= $i)
--                {
--                    $start = $i;
--                }
--            }
--			$numbers = '';
--            $end = $start+$linksperpage-1;
--			$link = $this->id . "_next_page";
--            if($end > $pages) $end = $pages;
--			
--			
--			if ($this->startLinks && $start > 1) {
--				$pos = $start - 1;
--				$numbers .= "<a href=$PHP_SELF?$link=$pos>$this->startLinks</a>  ";
--            } 
--			
--			for($i=$start; $i <= $end; $i++) {
--                if ($this->rs->AbsolutePage() == $i)
--                    $numbers .= "<font color=$this->linkSelectedColor><b>$i</b></font>  ";
--                else 
--                     $numbers .= "<a href=$PHP_SELF?$link=$i>$i</a>  ";
--            
--            }
--			if ($this->moreLinks && $end < $pages) 
--				$numbers .= "<a href=$PHP_SELF?$link=$i>$this->moreLinks</a>  ";
--            print $numbers . ' &nbsp; ';
--        }
--	// Link to previous page
--	function render_prev($anchor=true)
--	{
--	global $PHP_SELF;
--		if ($anchor) {
--	?>
--		<a href="<?php echo $PHP_SELF,'?',$this->id,'_next_page=',$this->rs->AbsolutePage() - 1 ?>"><?php echo $this->prev;?></a> &nbsp; 
--	<?php 
--		} else {
--			print "$this->prev &nbsp; ";
--		}
--	}
--	
--	//--------------------------------------------------------
--	// Simply rendering of grid. You should override this for
--	// better control over the format of the grid
--	//
--	// We use output buffering to keep code clean and readable.
--	function RenderGrid()
--	{
--	global $gSQLBlockRows; // used by rs2html to indicate how many rows to display
--		include_once(ADODB_DIR.'/tohtml.inc.php');
--		ob_start();
--		$gSQLBlockRows = $this->rows;
--		rs2html($this->rs,$this->gridAttributes,$this->gridHeader,$this->htmlSpecialChars);
--		$s = ob_get_contents();
--		ob_end_clean();
--		return $s;
--	}
--	
--	//-------------------------------------------------------
--	// Navigation bar
--	//
--	// we use output buffering to keep the code easy to read.
--	function RenderNav()
--	{
--		ob_start();
--		if (!$this->rs->AtFirstPage()) {
--			$this->Render_First();
--			$this->Render_Prev();
--		} else {
--			$this->Render_First(false);
--			$this->Render_Prev(false);
--		}
--        if ($this->showPageLinks){
--            $this->Render_PageLinks();
--        }
--		if (!$this->rs->AtLastPage()) {
--			$this->Render_Next();
--			$this->Render_Last();
--		} else {
--			$this->Render_Next(false);
--			$this->Render_Last(false);
--		}
--		$s = ob_get_contents();
--		ob_end_clean();
--		return $s;
--	}
--	
--	//-------------------
--	// This is the footer
--	function RenderPageCount()
--	{
--		if (!$this->db->pageExecuteCountRows) return '';
--		$lastPage = $this->rs->LastPageNo();
--		if ($lastPage == -1) $lastPage = 1; // check for empty rs.
--		if ($this->curr_page > $lastPage) $this->curr_page = 1;
--		return "<font size=-1>$this->page ".$this->curr_page."/".$lastPage."</font>";
--	}
--	
--	//-----------------------------------
--	// Call this class to draw everything.
--	function Render($rows=10)
--	{
--	global $ADODB_COUNTRECS;
--	
--		$this->rows = $rows;
--		
--		if ($this->db->dataProvider == 'informix') $this->db->cursorType = IFX_SCROLL;
--		
--		$savec = $ADODB_COUNTRECS;
--		if ($this->db->pageExecuteCountRows) $ADODB_COUNTRECS = true;
--		if ($this->cache)
--			$rs = $this->db->CachePageExecute($this->cache,$this->sql,$rows,$this->curr_page);
--		else
--			$rs = $this->db->PageExecute($this->sql,$rows,$this->curr_page);
--		$ADODB_COUNTRECS = $savec;
--		
--		$this->rs = $rs;
--		if (!$rs) {
--			print "<h3>Query failed: $this->sql</h3>";
--			return;
--		}
--		
--		if (!$rs->EOF && (!$rs->AtFirstPage() || !$rs->AtLastPage())) 
--			$header = $this->RenderNav();
--		else
--			$header = "&nbsp;";
--		
--		$grid = $this->RenderGrid();
--		$footer = $this->RenderPageCount();
--		
--		$this->RenderLayout($header,$grid,$footer);
--		
--		$rs->Close();
--		$this->rs = false;
--	}
--	
--	//------------------------------------------------------
--	// override this to control overall layout and formating
--	function RenderLayout($header,$grid,$footer,$attributes='border=1 bgcolor=beige')
--	{
--		echo "<table ".$attributes."><tr><td>",
--				$header,
--			"</td></tr><tr><td>",
--				$grid,
--			"</td></tr><tr><td>",
--				$footer,
--			"</td></tr></table>";
--	}
--}
--
--
--?>
-\ No newline at end of file
-diff -aburN --exclude='.svn*' inc/adodb5/adodb-pear.inc.php inc/adodb/adodb-pear.inc.php
---- inc/adodb5/adodb-pear.inc.php	2008-10-16 19:17:32.000000000 +1100
-+++ inc/adodb/adodb-pear.inc.php	1970-01-01 10:00:00.000000000 +1000
-@@ -1,374 +0,0 @@
--<?php
--/** 
-- * @version V5.06 16 Oct 2008  (c) 2000-2008 John Lim (jlim#natsoft.com). All rights reserved.
-- * Released under both BSD license and Lesser GPL library license. 
-- * Whenever there is any discrepancy between the two licenses, 
-- * the BSD license will take precedence. 
-- *
-- * Set tabs to 4 for best viewing.
-- * 
-- * PEAR DB Emulation Layer for ADODB.
-- *
-- * The following code is modelled on PEAR DB code by Stig Bakken <[email protected]>								   |
-- * and Tomas V.V.Cox <[email protected]>.	Portions (c)1997-2002 The PHP Group.
-- */
--
-- /*
-- We support:
-- 
-- DB_Common
-- ---------
-- 	query - returns PEAR_Error on error
--	limitQuery - return PEAR_Error on error
--	prepare - does not return PEAR_Error on error
--	execute - does not return PEAR_Error on error
--	setFetchMode - supports ASSOC and ORDERED
--	errorNative
--	quote
--	nextID
--	disconnect
--	
--	getOne
--	getAssoc
--	getRow
--	getCol
--	getAll
--	
-- DB_Result
-- ---------
-- 	numRows - returns -1 if not supported
--	numCols
--	fetchInto - does not support passing of fetchmode
--	fetchRows - does not support passing of fetchmode
--	free
-- */
-- 
--define('ADODB_PEAR',dirname(__FILE__));
--include_once "PEAR.php";
--include_once ADODB_PEAR."/adodb-errorpear.inc.php";
--include_once ADODB_PEAR."/adodb.inc.php";
--
--if (!defined('DB_OK')) {
--define("DB_OK",	1);
--define("DB_ERROR",-1);
--
--// autoExecute constants
--define('DB_AUTOQUERY_INSERT', 1);
--define('DB_AUTOQUERY_UPDATE', 2);
--
--/**
-- * This is a special constant that tells DB the user hasn't specified
-- * any particular get mode, so the default should be used.
-- */
--
--define('DB_FETCHMODE_DEFAULT', 0);
--
--/**
-- * Column data indexed by numbers, ordered from 0 and up
-- */
--
--define('DB_FETCHMODE_ORDERED', 1);
--
--/**
-- * Column data indexed by column names
-- */
--
--define('DB_FETCHMODE_ASSOC', 2);
--
--/* for compatibility */
--
--define('DB_GETMODE_ORDERED', DB_FETCHMODE_ORDERED);
--define('DB_GETMODE_ASSOC',   DB_FETCHMODE_ASSOC);
--
--/**
-- * these are constants for the tableInfo-function
-- * they are bitwised or'ed. so if there are more constants to be defined
-- * in the future, adjust DB_TABLEINFO_FULL accordingly
-- */
--
--define('DB_TABLEINFO_ORDER', 1);
--define('DB_TABLEINFO_ORDERTABLE', 2);
--define('DB_TABLEINFO_FULL', 3);
--}
--
--/**
-- * The main "DB" class is simply a container class with some static
-- * methods for creating DB objects as well as some utility functions
-- * common to all parts of DB.
-- *
-- */
--
--class DB
--{
--	/**
--	 * Create a new DB object for the specified database type
--	 *
--	 * @param $type string database type, for example "mysql"
--	 *
--	 * @return object a newly created DB object, or a DB error code on
--	 * error
--	 */
--
--	function factory($type)
--	{
--		include_once(ADODB_DIR."/drivers/adodb-$type.inc.php");
--		$obj = NewADOConnection($type);
--		if (!is_object($obj)) $obj = new PEAR_Error('Unknown Database Driver: '.$dsninfo['phptype'],-1);
--		return $obj;
--	}
--
--	/**
--	 * Create a new DB object and connect to the specified database
--	 *
--	 * @param $dsn mixed "data source name", see the DB::parseDSN
--	 * method for a description of the dsn format.  Can also be
--	 * specified as an array of the format returned by DB::parseDSN.
--	 *
--	 * @param $options mixed if boolean (or scalar), tells whether
--	 * this connection should be persistent (for backends that support
--	 * this).  This parameter can also be an array of options, see
--	 * DB_common::setOption for more information on connection
--	 * options.
--	 *
--	 * @return object a newly created DB connection object, or a DB
--	 * error object on error
--	 *
--	 * @see DB::parseDSN
--	 * @see DB::isError
--	 */
--	function connect($dsn, $options = false)
--	{
--		if (is_array($dsn)) {
--			$dsninfo = $dsn;
--		} else {
--			$dsninfo = DB::parseDSN($dsn);
--		}
--		switch ($dsninfo["phptype"]) {
--			case 'pgsql': 	$type = 'postgres7'; break;
--			case 'ifx':		$type = 'informix9'; break;
--			default: 		$type = $dsninfo["phptype"]; break;
--		}
--
--		if (is_array($options) && isset($options["debug"]) &&
--			$options["debug"] >= 2) {
--			// expose php errors with sufficient debug level
--			 @include_once("adodb-$type.inc.php");
--		} else {
--			 @include_once("adodb-$type.inc.php");
--		}
--
--		@$obj = NewADOConnection($type);
--		if (!is_object($obj)) {
--			$obj = new PEAR_Error('Unknown Database Driver: '.$dsninfo['phptype'],-1);
--			return $obj;
--		}
--		if (is_array($options)) {
--			foreach($options as $k => $v) {
--				switch(strtolower($k)) {
--				case 'persist':
--				case 'persistent': 	$persist = $v; break;
--				#ibase
--				case 'dialect': 	$obj->dialect = $v; break;
--				case 'charset':		$obj->charset = $v; break;
--				case 'buffers':		$obj->buffers = $v; break;
--				#ado
--				case 'charpage':	$obj->charPage = $v; break;
--				#mysql
--				case 'clientflags': $obj->clientFlags = $v; break;
--				}
--			}
--		} else {
--		   	$persist = false;
--		}
--
--		if (isset($dsninfo['socket'])) $dsninfo['hostspec'] .= ':'.$dsninfo['socket'];
--		else if (isset($dsninfo['port'])) $dsninfo['hostspec'] .= ':'.$dsninfo['port'];
--		
--		if($persist) $ok = $obj->PConnect($dsninfo['hostspec'], $dsninfo['username'],$dsninfo['password'],$dsninfo['database']);
--		else  $ok = $obj->Connect($dsninfo['hostspec'], $dsninfo['username'],$dsninfo['password'],$dsninfo['database']);
--		
--		if (!$ok) $obj = ADODB_PEAR_Error();
--		return $obj;
--	}
--
--	/**
--	 * Return the DB API version
--	 *
--	 * @return int the DB API version number
--	 */
--	function apiVersion()
--	{
--		return 2;
--	}
--
--	/**
--	 * Tell whether a result code from a DB method is an error
--	 *
--	 * @param $value int result code
--	 *
--	 * @return bool whether $value is an error
--	 */
--	function isError($value)
--	{
--		if (!is_object($value)) return false;
--		$class = strtolower(get_class($value));
--		return $class == 'pear_error' || is_subclass_of($value, 'pear_error') || 
--				$class == 'db_error' || is_subclass_of($value, 'db_error');
--	}
--
--
--	/**
--	 * Tell whether a result code from a DB method is a warning.
--	 * Warnings differ from errors in that they are generated by DB,
--	 * and are not fatal.
--	 *
--	 * @param $value mixed result value
--	 *
--	 * @return bool whether $value is a warning
--	 */
--	function isWarning($value)
--	{
--		return false;
--		/*
--		return is_object($value) &&
--			(get_class( $value ) == "db_warning" ||
--			 is_subclass_of($value, "db_warning"));*/
--	}
--
--	/**
--	 * Parse a data source name
--	 *
--	 * @param $dsn string Data Source Name to be parsed
--	 *
--	 * @return array an associative array with the following keys:
--	 *
--	 *  phptype: Database backend used in PHP (mysql, odbc etc.)
--	 *  dbsyntax: Database used with regards to SQL syntax etc.
--	 *  protocol: Communication protocol to use (tcp, unix etc.)
--	 *  hostspec: Host specification (hostname[:port])
--	 *  database: Database to use on the DBMS server
--	 *  username: User name for login
--	 *  password: Password for login
--	 *
--	 * The format of the supplied DSN is in its fullest form:
--	 *
--	 *  phptype(dbsyntax)://username:password@protocol+hostspec/database
--	 *
--	 * Most variations are allowed:
--	 *
--	 *  phptype://username:password@protocol+hostspec:110//usr/db_file.db
--	 *  phptype://username:password@hostspec/database_name
--	 *  phptype://username:password@hostspec
--	 *  phptype://username@hostspec
--	 *  phptype://hostspec/database
--	 *  phptype://hostspec
--	 *  phptype(dbsyntax)
--	 *  phptype
--	 *
--	 * @author Tomas V.V.Cox <[email protected]>
--	 */
--	function parseDSN($dsn)
--	{
--		if (is_array($dsn)) {
--			return $dsn;
--		}
--
--		$parsed = array(
--			'phptype'  => false,
--			'dbsyntax' => false,
--			'protocol' => false,
--			'hostspec' => false,
--			'database' => false,
--			'username' => false,
--			'password' => false
--		);
--
--		// Find phptype and dbsyntax
--		if (($pos = strpos($dsn, '://')) !== false) {
--			$str = substr($dsn, 0, $pos);
--			$dsn = substr($dsn, $pos + 3);
--		} else {
--			$str = $dsn;
--			$dsn = NULL;
--		}
--
--		// Get phptype and dbsyntax
--		// $str => phptype(dbsyntax)
--		if (preg_match('|^(.+?)\((.*?)\)$|', $str, $arr)) {
--			$parsed['phptype'] = $arr[1];
--			$parsed['dbsyntax'] = (empty($arr[2])) ? $arr[1] : $arr[2];
--		} else {
--			$parsed['phptype'] = $str;
--			$parsed['dbsyntax'] = $str;
--		}
--
--		if (empty($dsn)) {
--			return $parsed;
--		}
--
--		// Get (if found): username and password
--		// $dsn => username:password@protocol+hostspec/database
--		if (($at = strpos($dsn,'@')) !== false) {
--			$str = substr($dsn, 0, $at);
--			$dsn = substr($dsn, $at + 1);
--			if (($pos = strpos($str, ':')) !== false) {
--				$parsed['username'] = urldecode(substr($str, 0, $pos));
--				$parsed['password'] = urldecode(substr($str, $pos + 1));
--			} else {
--				$parsed['username'] = urldecode($str);
--			}
--		}
--
--		// Find protocol and hostspec
--		// $dsn => protocol+hostspec/database
--		if (($pos=strpos($dsn, '/')) !== false) {
--			$str = substr($dsn, 0, $pos);
--			$dsn = substr($dsn, $pos + 1);
--		} else {
--			$str = $dsn;
--			$dsn = NULL;
--		}
--
--		// Get protocol + hostspec
--		// $str => protocol+hostspec
--		if (($pos=strpos($str, '+')) !== false) {
--			$parsed['protocol'] = substr($str, 0, $pos);
--			$parsed['hostspec'] = urldecode(substr($str, $pos + 1));
--		} else {
--			$parsed['hostspec'] = urldecode($str);
--		}
--
--		// Get dabase if any
--		// $dsn => database
--		if (!empty($dsn)) {
--			$parsed['database'] = $dsn;
--		}
--
--		return $parsed;
--	}
--
--	/**
--	 * Load a PHP database extension if it is not loaded already.
--	 *
--	 * @access public
--	 *
--	 * @param $name the base name of the extension (without the .so or
--	 * .dll suffix)
--	 *
--	 * @return bool true if the extension was already or successfully
--	 * loaded, false if it could not be loaded
--	 */
--	function assertExtension($name)
--	{
--		if (!extension_loaded($name)) {
--			$dlext = (strncmp(PHP_OS,'WIN',3) === 0) ? '.dll' : '.so';
--			@dl($name . $dlext);
--		}
--		if (!extension_loaded($name)) {
--			return false;
--		}
--		return true;
--	}
--}
--
--?>
-\ No newline at end of file
-diff -aburN --exclude='.svn*' inc/adodb5/adodb-php4.inc.php inc/adodb/adodb-php4.inc.php
---- inc/adodb5/adodb-php4.inc.php	2008-10-16 19:17:32.000000000 +1100
-+++ inc/adodb/adodb-php4.inc.php	1970-01-01 10:00:00.000000000 +1000
-@@ -1,16 +0,0 @@
--<?php
--
--/*
--  V5.06 16 Oct 2008   (c) 2000-2008 John Lim (jlim#natsoft.com). All rights reserved.
--  Released under both BSD license and Lesser GPL library license. 
--  Whenever there is any discrepancy between the two licenses, 
--  the BSD license will take precedence.
--  
--  Set tabs to 4.
--*/
--
--
--class ADODB_BASE_RS {
--}
--
--?>
-\ No newline at end of file
-diff -aburN --exclude='.svn*' inc/adodb5/contrib/toxmlrpc.inc.php inc/adodb/contrib/toxmlrpc.inc.php
---- inc/adodb5/contrib/toxmlrpc.inc.php	2007-02-05 15:09:12.000000000 +1100
-+++ inc/adodb/contrib/toxmlrpc.inc.php	1970-01-01 10:00:00.000000000 +1000
-@@ -1,183 +0,0 @@
--<?php
--    /**
--    * Helper functions to convert between ADODB recordset objects and XMLRPC values.
--    * Uses John Lim's AdoDB and Edd Dumbill's phpxmlrpc libs
--    * 
--    * @author Daniele Baroncelli
--    * @author Gaetano Giunta
--    * @copyright (c) 2003-2004 Giunta/Baroncelli. All rights reserved.
--    * 
--    * @todo some more error checking here and there
--    * @todo document the xmlrpc-struct used to encode recordset info
--    * @todo verify if using xmlrpc_encode($rs->GetArray()) would work with:
--    *       - ADODB_FETCH_BOTH
--    *       - null values
--    */
--
--    /**
--    * Include the main libraries
--    */    
--    require_once('xmlrpc.inc');
--    if (!defined('ADODB_DIR')) require_once('adodb.inc.php');
--            
--    /**
--    * Builds an xmlrpc struct value out of an AdoDB recordset
--    */
--    function rs2xmlrpcval(&$adodbrs) {
--
--        $header = rs2xmlrpcval_header($adodbrs);
--        $body = rs2xmlrpcval_body($adodbrs);
--
--        // put it all together and build final xmlrpc struct
--        $xmlrpcrs = new xmlrpcval ( array(
--                "header" => $header,
--                "body" => $body,
--                ), "struct");
--
--        return $xmlrpcrs;
--
--    }
--
--    /**
--    * Builds an xmlrpc struct value describing an AdoDB recordset
--    */
--    function rs2xmlrpcval_header($adodbrs)
--    {
--        $numfields = $adodbrs->FieldCount();
--        $numrecords = $adodbrs->RecordCount();
--
--        // build structure holding recordset information
--        $fieldstruct = array();
--        for ($i = 0; $i < $numfields; $i++) {
--            $fld = $adodbrs->FetchField($i);
--            $fieldarray = array();
--            if (isset($fld->name))
--                $fieldarray["name"] = new xmlrpcval ($fld->name);
--            if (isset($fld->type))
--                $fieldarray["type"] = new xmlrpcval ($fld->type);
--            if (isset($fld->max_length))
--                $fieldarray["max_length"] = new xmlrpcval ($fld->max_length, "int");
--            if (isset($fld->not_null))
--                $fieldarray["not_null"] = new xmlrpcval ($fld->not_null, "boolean");
--            if (isset($fld->has_default))
--                $fieldarray["has_default"] = new xmlrpcval ($fld->has_default, "boolean");
--            if (isset($fld->default_value))
--                $fieldarray["default_value"] = new xmlrpcval ($fld->default_value);
--            $fieldstruct[$i] = new xmlrpcval ($fieldarray, "struct");
--        }
--        $fieldcount = new xmlrpcval ($numfields, "int");
--        $recordcount = new xmlrpcval ($numrecords, "int");
--        $sql = new xmlrpcval ($adodbrs->sql);
--        $fieldinfo = new xmlrpcval ($fieldstruct, "array");
--
--        $header = new xmlrpcval ( array(
--                "fieldcount" => $fieldcount,
--                "recordcount" => $recordcount,
--                "sql" => $sql,
--                "fieldinfo" => $fieldinfo
--                ), "struct");
--
--        return $header;
--    }
--
--    /**
--    * Builds an xmlrpc struct value out of an AdoDB recordset
--    * (data values only, no data definition)
--    */
--    function rs2xmlrpcval_body($adodbrs)
--    {
--        $numfields = $adodbrs->FieldCount();
--
--        // build structure containing recordset data
--        $adodbrs->MoveFirst();
--        $rows = array();
--        while (!$adodbrs->EOF) {
--            $columns = array();
--            // This should work on all cases of fetch mode: assoc, num, both or default
--            if ($adodbrs->fetchMode == 'ADODB_FETCH_BOTH' || count($adodbrs->fields) == 2 * $adodbrs->FieldCount())
--                for ($i = 0; $i < $numfields; $i++)
--                    if ($adodbrs->fields[$i] === null)
--                        $columns[$i] = new xmlrpcval ('');
--                    else
--                        $columns[$i] = xmlrpc_encode ($adodbrs->fields[$i]);
--            else
--                foreach ($adodbrs->fields as $val)
--                    if ($val === null)
--                        $columns[] = new xmlrpcval ('');
--                    else
--                        $columns[] = xmlrpc_encode ($val);
--
--            $rows[] = new xmlrpcval ($columns, "array");
--
--            $adodbrs->MoveNext();
--        }
--        $body = new xmlrpcval ($rows, "array");
--
--        return $body;    
--    }
--    
--    /**
--    * Returns an xmlrpc struct value as string out of an AdoDB recordset
--    */    
--    function rs2xmlrpcstring (&$adodbrs) {
--        $xmlrpc = rs2xmlrpcval ($adodbrs);
--        if ($xmlrpc)
--          return $xmlrpc->serialize();
--        else
--          return null;
--    }
--
--    /**
--    * Given a well-formed xmlrpc struct object returns an AdoDB object
--    * 
--    * @todo add some error checking on the input value
--    */
--    function xmlrpcval2rs (&$xmlrpcval) {
--
--        $fields_array = array();
--        $data_array = array();
-- 
--        // rebuild column information  
--        $header = $xmlrpcval->structmem('header');
--        
--        $numfields = $header->structmem('fieldcount');
--        $numfields = $numfields->scalarval();
--        $numrecords = $header->structmem('recordcount');
--        $numrecords = $numrecords->scalarval();
--        $sqlstring = $header->structmem('sql');
--        $sqlstring = $sqlstring->scalarval();
--        
--        $fieldinfo = $header->structmem('fieldinfo');
--        for ($i = 0; $i < $numfields; $i++) {
--            $temp = $fieldinfo->arraymem($i);
--            $fld = new ADOFieldObject();
--            while (list($key,$value) = $temp->structeach()) {
--                if ($key == "name") $fld->name = $value->scalarval();
--                if ($key == "type") $fld->type = $value->scalarval();
--                if ($key == "max_length") $fld->max_length = $value->scalarval();
--                if ($key == "not_null") $fld->not_null = $value->scalarval();
--                if ($key == "has_default") $fld->has_default = $value->scalarval();
--                if ($key == "default_value") $fld->default_value = $value->scalarval();
--            } // while
--            $fields_array[] = $fld;
--        } // for
--
--        // fetch recordset information into php array
--        $body = $xmlrpcval->structmem('body');
--        for ($i = 0; $i < $numrecords; $i++) {
--            $data_array[$i]= array();
--            $xmlrpcrs_row = $body->arraymem($i);
--            for ($j = 0; $j < $numfields; $j++) {
--                $temp = $xmlrpcrs_row->arraymem($j);
--                $data_array[$i][$j] = $temp->scalarval();
--            } // for j
--        } // for i
--
--        // finally build in-memory recordset object and return it
--        $rs = new ADORecordSet_array();
--        $rs->InitArrayFields($data_array,$fields_array);
--        return $rs;
--
--    }
--
--?>
-\ No newline at end of file
-diff -aburN --exclude='.svn*' inc/adodb5/cute_icons_for_site/adodb2.gif inc/adodb/cute_icons_for_site/adodb2.gif
---- inc/adodb5/cute_icons_for_site/adodb2.gif	2007-02-05 15:09:12.000000000 +1100
-+++ inc/adodb/cute_icons_for_site/adodb2.gif	1970-01-01 10:00:00.000000000 +1000
-@@ -1,7 +0,0 @@
--GIF89af
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.