Initial revision

ktn10 [2001-01-04 21:57:51]
Initial revision
Filename
openjoda/JetspeedResources.properties
openjoda/JetspeedTopNavigation.java
openjoda/PortletCache.java
openjoda/content/css/default.css
openjoda/content/css/ws_ftp.log
openjoda/content/dynamic/customizer/javascript/dragDrop_nn4.js
openjoda/content/dynamic/customizer/javascript/nn4.js
openjoda/content/dynamic/customizer/javascript/ws_ftp.log
openjoda/content/dynamic/customizer/stylesheets/default.css
openjoda/content/dynamic/customizer/stylesheets/ws_ftp.log
openjoda/content/dynamic/customizer/xsl/ui-drag-and-drop.xsl
openjoda/content/dynamic/customizer/xsl/ui-generic-example.xml
openjoda/content/dynamic/customizer/xsl/ui-generic.xsl
openjoda/content/dynamic/customizer/xsl/ws_ftp.log
openjoda/content/dynamic/customizer/xsp/ui.xml
openjoda/content/dynamic/customizer/xsp/ws_ftp.log
openjoda/content/dynamic/index.xml
openjoda/content/dynamic/index.xsl
openjoda/content/dynamic/portletbrowser/xsp/index.xml
openjoda/content/dynamic/portletbrowser/xsp/index.xsl
openjoda/content/dynamic/portletbrowser/xsp/search.xml
openjoda/content/dynamic/portletbrowser/xsp/search.xsl
openjoda/content/dynamic/portletbrowser/xsp/ws_ftp.log
openjoda/content/dynamic/test/page-html.xsl
openjoda/content/dynamic/test/page-xsp.xsl
openjoda/content/dynamic/test/page.xml
openjoda/content/dynamic/test/page2.xml
openjoda/content/dynamic/test/ws_ftp.log
openjoda/content/dynamic/test/xsp/clean-page.xml
openjoda/content/dynamic/test/xsp/lib-page.xml
openjoda/content/dynamic/test/xsp/page-html.xsl
openjoda/content/dynamic/test/xsp/page-xsp.xsl
openjoda/content/dynamic/test/xsp/page.xml
openjoda/content/dynamic/test/xsp/view-source.xml
openjoda/content/dynamic/test/xsp/ws_ftp.log
openjoda/content/dynamic/ws_ftp.log
openjoda/content/dynamic/xsp/index.xml
openjoda/content/dynamic/xsp/index.xsl
openjoda/content/dynamic/xsp/ws_ftp.log
openjoda/content/images/1by1.gif
openjoda/content/images/arrow_down.gif
openjoda/content/images/arrow_up.gif
openjoda/content/images/bg_fictive.jpg
openjoda/content/images/black.gif
openjoda/content/images/bottom.gif
openjoda/content/images/bottom_bg.gif
openjoda/content/images/bottom_left.gif
openjoda/content/images/bottom_right.gif
openjoda/content/images/bullet.gif
openjoda/content/images/close.gif
openjoda/content/images/close2.gif
openjoda/content/images/divider.gif
openjoda/content/images/edit.gif
openjoda/content/images/feather.gif
openjoda/content/images/fictive.jpg
openjoda/content/images/folder.gif
openjoda/content/images/gauge.jpg
openjoda/content/images/gears.gif
openjoda/content/images/header_openjoda.jpg
openjoda/content/images/header_openjoda_new.jpg
openjoda/content/images/header_openjoda_original.jpg
openjoda/content/images/indus.jpg
openjoda/content/images/java-apache-project.gif
openjoda/content/images/jetspeed-logo.gif
openjoda/content/images/jetspeed-powered.gif
openjoda/content/images/layout/dn.gif
openjoda/content/images/layout/klammerLeftVertical.gif
openjoda/content/images/layout/lt.gif
openjoda/content/images/layout/rt.gif
openjoda/content/images/layout/up.gif
openjoda/content/images/layout/ws_ftp.log
openjoda/content/images/layout/x.gif
openjoda/content/images/line_bg.gif
openjoda/content/images/max.gif
openjoda/content/images/max2.gif
openjoda/content/images/microphone.gif
openjoda/content/images/min.gif
openjoda/content/images/min2.gif
openjoda/content/images/misc-folders/dep.gif
openjoda/content/images/misc-folders/eval.gif
openjoda/content/images/misc-folders/home.gif
openjoda/content/images/misc-folders/news.gif
openjoda/content/images/misc-folders/prod.gif
openjoda/content/images/misc-folders/rel.gif
openjoda/content/images/misc-folders/tech.gif
openjoda/content/images/misc-folders/ws_ftp.log
openjoda/content/images/misc-folders/xtra.gif
openjoda/content/images/nav_bg_off.jpg
openjoda/content/images/nav_bg_on.jpg
openjoda/content/images/nav_corner_off.jpg
openjoda/content/images/nav_corner_on.jpg
openjoda/content/images/nav_corner_right.jpg
openjoda/content/images/nav_left.jpg
openjoda/content/images/nav_top.jpg
openjoda/content/images/nav_white.gif
openjoda/content/images/poll/mainbar.gif
openjoda/content/images/poll/ws_ftp.log
openjoda/content/images/proto-logo.jpg
openjoda/content/images/proto-logo.png
openjoda/content/images/search/altavista.gif
openjoda/content/images/search/dejanews.gif
openjoda/content/images/search/excite.gif
openjoda/content/images/search/freshmeat.gif
openjoda/content/images/search/google.gif
openjoda/content/images/search/hotbot.gif
openjoda/content/images/search/infoseek.gif
openjoda/content/images/search/lycos.gif
openjoda/content/images/search/mediafind.gif
openjoda/content/images/search/webcrawler.gif
openjoda/content/images/search/ws_ftp.log
openjoda/content/images/search/yahoo.gif
openjoda/content/images/top0.gif
openjoda/content/images/top1.gif
openjoda/content/images/top2.gif
openjoda/content/images/top3.gif
openjoda/content/images/top_bg.gif
openjoda/content/images/top_bg2.gif
openjoda/content/images/top_degrade.gif
openjoda/content/images/top_left.gif
openjoda/content/images/topics/apache.gif
openjoda/content/images/topics/ibm.gif
openjoda/content/images/topics/internet.gif
openjoda/content/images/topics/java.gif
openjoda/content/images/topics/jetspeed.gif
openjoda/content/images/topics/linux.gif
openjoda/content/images/topics/news.gif
openjoda/content/images/topics/programming.gif
openjoda/content/images/topics/sun.gif
openjoda/content/images/topics/ws_ftp.log
openjoda/content/images/tree/ftv2blank.gif
openjoda/content/images/tree/ftv2doc.gif
openjoda/content/images/tree/ftv2folderclosed.gif
openjoda/content/images/tree/ftv2folderopen.gif
openjoda/content/images/tree/ftv2lastnode.gif
openjoda/content/images/tree/ftv2link.gif
openjoda/content/images/tree/ftv2mlastnode.gif
openjoda/content/images/tree/ftv2mnode.gif
openjoda/content/images/tree/ftv2node.gif
openjoda/content/images/tree/ftv2plastnode.gif
openjoda/content/images/tree/ftv2pnode.gif
openjoda/content/images/tree/ftv2vertline.gif
openjoda/content/images/tree/ws_ftp.log
openjoda/content/images/trikx_top.jpg
openjoda/content/images/ws_ftp.log
openjoda/content/images/xo3-small1.jpg
openjoda/content/java/AddPortal.java
openjoda/content/java/FileDownload.java
openjoda/content/java/PageRefresher.java
openjoda/content/java/TriKXSienaInterface.java
openjoda/content/java/ws_ftp.log
openjoda/content/javascript/Copy of ftiens4.js
openjoda/content/javascript/config.js
openjoda/content/javascript/dhtml.js
openjoda/content/javascript/dynamic_menus.js
openjoda/content/javascript/ftiens4.js
openjoda/content/javascript/images.js
openjoda/content/javascript/input.js
openjoda/content/javascript/jetspeed/compose.js
openjoda/content/javascript/jetspeed/delete_messages.js
openjoda/content/javascript/jetspeed/meta_search.js
openjoda/content/javascript/jetspeed/ws_ftp.log
openjoda/content/javascript/ws_ftp.log
openjoda/content/psml/default.psml
openjoda/content/psml/tabuser.psml
openjoda/content/psml/turbine.psml
openjoda/content/readme.txt
openjoda/content/static/about/index.rss
openjoda/content/static/about/jakarta.gif
openjoda/content/static/about/ws_ftp.log
openjoda/content/static/gauge.html
openjoda/content/static/login.html
openjoda/content/static/metaparser.html
openjoda/content/static/oracle.html
openjoda/content/static/oraclebak.html
openjoda/content/static/tree/directory.html
openjoda/content/static/tree/eventdistillertree.html
openjoda/content/static/tree/eventnotifiertree.html
openjoda/content/static/tree/kxtree.html
openjoda/content/static/tree/metaparsertree.html
openjoda/content/static/tree/oracletree.html
openjoda/content/static/tree/tree.html
openjoda/content/static/tree/wgcachetree.html
openjoda/content/static/tree/workletstree.html
openjoda/content/static/tree/ws_ftp.log
openjoda/content/static/wgcache.html
openjoda/content/static/ws_ftp.log
openjoda/content/xml/defaultstyle.xsl
openjoda/content/xml/jetspeed-content.xml
openjoda/content/xml/readme
openjoda/content/xml/rss/jetspeed.rss
openjoda/content/xml/rss/ws_ftp.log
openjoda/content/xml/ws_ftp.log
openjoda/content/xsl/billionaires.xsl
openjoda/content/xsl/jpc-full.xsl
openjoda/content/xsl/jpc-topics.xsl
openjoda/content/xsl/ocs.xsl
openjoda/content/xsl/rss-wml.xsl
openjoda/content/xsl/rss.xsl
openjoda/content/xsl/ws_ftp.log
openjoda/jetspeed-config.jcfg
diff --git a/openjoda/JetspeedResources.properties b/openjoda/JetspeedResources.properties
new file mode 100644
index 0000000..8a4746e
--- /dev/null
+++ b/openjoda/JetspeedResources.properties
@@ -0,0 +1,380 @@
+################################################################################
+# Jetspeed Configuration
+# Author: Kevin A. Burton (burton@apache.org)
+#
+################################################################################
+# This is the main file you will need to configuration Jetspeed.  If there are
+# any secondary files they will be pointed to from this file.
+#
+# All items in this file are stored as <property>=<value> pairs.  In order to
+# modify somethign just changes its value.
+#
+# Some properties are URL based.  They can except http/file/etc based URLs.  Note
+# that if you don't specify the scheme but only specify it as "/my/new/path.html"
+# Jetspeed will attempt to guess the URL.  Normally this would be something like
+# "http://server.domain:port/my/new/path.html".  Note that some of the entries
+# become public URLs and if you want your data more secure you might want to
+# switch to "file://" based URLs.
+#
+#Conventions:
+#
+#    <property>.url       ->  This property is expected to be a URL or a URL
+#                             without a scheme.  If it does not have a schema
+#                             Jetspeed will try to determine the full URL.
+#
+#    <property>.file      ->  Points to an actual file on your local filesystem.
+#
+#    <property>.directory ->  Points to a directory on your local filesystem.
+#
+#    <property>.classname ->  A fully qualified Java classname:
+#                               EX: org.apache.jetspeed.<MY_CLASSNAME>
+#
+#    <property>.interval  ->  A time interval in seconds
+#
+#
+################################################################################
+
+################################################################################
+#  THE FOLLOWING ARE "REQUIRED" PROPERTIES IN ORDER TO USE JETSPEED            #
+################################################################################
+
+##########################################
+# XML based Jetspeed configuration       #
+##########################################
+jetspeed.config=/jetspeed-config.jcfg
+
+##########################################
+
+##########################################
+# Remote Object Storage System           #
+##########################################
+#Specify the directory that Jetspeed should
+#cache XML documents to.
+
+#for Win32 systems specify your directory as:  cache.directory=/d:/temp/JetspeedDocumentCache
+#Default: /tmp/JetspeedDocumentCache
+cache.directory=D:/kanan/project/openjoda/tomcat/jetspeed-cache
+
+#Specify whether Jetspeed should fetch items that aren't in the DiskCache in
+#real time.  If true Jetspeed will throw a ContentNotAvailableException when it
+#encounters a URL that isn't available within the Cache.  This can be used so
+#that clients don't have to wait for URLs to download while using Jetspeed.
+#After the URL is first encountered Jetspeed will create a thread to download
+#this in the background
+#Default: true
+cache.require.cached=false
+
+#########################################
+# Cocoon config                         #
+#########################################
+#Jetspeed attempts to initialize it's own Cocoon Engine.
+cocoon.properties.file=D:/kanan/project/openjoda/tomcat/webapps/ROOT/WEB-INF/cocoon.properties
+
+#NOTE:  You should also set "processor.xsp.repository" within cocoon.properties
+
+#########################################
+# Temporary Storage                     #
+#########################################
+# Sometimes Jetspeed wants to write out a file that may be necessary for further
+# debuging.  It will log the location and then write to this directory.
+# NOTE:  The System property java.io.tmpdir is defined under JDK 1.2 but not
+# JDK 1.1.x
+
+#Default: /tmp
+temp.directory=D:/kanan/project/openjoda/tomcat/jetspeed-temp
+
+#########################################
+# Admin Username and Password definition#
+#########################################
+# It is required that you set a username and
+# password to access the Admin console.
+
+#specify the username for the Jetspeed admin console.
+#Default: jetspeed
+admin.username=admin
+
+#specify the password for the Jetspeed admin console
+#Default: changeme
+admin.password=admin
+
+##########################################
+# Public Remote Object Storage System    #
+##########################################
+
+#Specify where Jetspeed should cache remote documents but that should also be public.
+#An example of this would be an image that was loaded through a XML page from a remote
+#server but is stored in this cache so that it can be loaded quicker
+#Jetspeed uses this to cache Images that it receives from XML documents.  The
+#content is parsed out and the images are placed in public.cache.directory so
+#that users don't have to contact the server via another socket but can use
+#the one they currently have to your HTTP server.  This also works well if the
+#original machine happens to be down when this request happens.
+
+#the directory that you want your HTTPD to serve files from.  This should be
+#the public URL for the above document.  Make sure your HTTP daemon has the
+#correct permission to serve files from this directory.
+#Default: /jetspeed-cache
+public.cache.url=/jetspeed-cache
+
+################################################################################
+#  THE FOLLOWING ARE "OPTIONAL" PROPERTIES THAT ENABLE A CUSTOMIZED INSTALL    #
+################################################################################
+
+
+##########################################
+# Portlet Configuration                  #
+##########################################
+#Defines the standard set of properties for Jetspeed
+
+#specify the default portlet control that should be instantiated
+#Default: org.apache.jetspeed.portal.DefaultPortletControl
+portletcontrol.default.classname=org.apache.jetspeed.portal.controls.TitlePortletControl
+
+#specify what default portlet controller should be instantiated
+#Default: org.apache.jetspeed.portal.DefaultPortletController
+portletcontroller.default.classname=org.apache.jetspeed.portal.controllers.DefaultPortletController
+
+#if you run the default controls and controller that comes with Jetspeed...
+#they take some params
+
+#Default: 100%
+defaultportletcontrol.width=100%
+
+#Default: 3
+defaultportletcontroller.numcolumns=3
+
+#Default: 100%
+defaultportletcontroller.width=100%
+
+##########################################
+# Jetspeed content publication           #
+##########################################
+#Jetspeed ships with some content that it needs to function.  This content must
+#be available in order for Jetspeed to function correctly.  You should specify
+#the content.root here.  This should be a portion of a URL that is prefixed to all
+#requests.
+
+# Example:  /content -> /content/xml/mydocument.xml
+# Example:  http://myserver/mycontent -> http://myserver/mycontent/xml/mydocument.xml
+# Default: /content
+content.root.url=/content
+
+##########################################
+# Ability to have Jetspeed portlets      #
+# posted to third party devices          #
+# note this url expects "title" and "url"#
+##########################################
+
+thirdparty.portletrenderer.url = http://avantgo.com/mydevice/autoadd.html?max=300&depth=5&images=0&links=0&refresh=always&hours=2&dflags=127&hour=0&quarter=00&s=00
+thirdparty.portletrenderer.caption = Add to Avantgo
+
+#########################################
+# XML PortletController configuration   #
+#########################################
+xmlportletcontroller.width=700
+#xmlportletcontroller.stylesheet=d:/tmp/defaultstyle.xsl
+xmlportletcontroller.stylesheet=/content/xml/defaultstyle.xsl
+
+
+#########################################
+# Document refresh settings             #
+#########################################
+#how many seconds to cache portlets by default.  Portlets that allows themselves
+#to be refreshed will usually pay attention to this interval
+#Default: 3600
+refresh.portlet.default = 3600
+
+
+#########################################
+# Content Feeds                         #
+#########################################
+#specify where Jetspeed should get it's content feeds.
+#this is setup like the following:
+
+#contentfeeds.feed.name=<name>
+#contentfeeds.feed.<name>.description=My Feed Description
+#contentfeeds.feed.<name>.url=http://server/url
+
+#the XMLTree content feed
+#contentfeeds.feed.name=xmltree
+#contentfeeds.feed.name=10am
+#contentfeeds.feed.name=moreover
+
+#feed meta info
+#contentfeeds.feed.xmltree.description=XML Tree OCS Feed ( http://www.xmltree.com )
+#contentfeeds.feed.xmltree.url=http://www.xmltree.com/export/ocs.cfm
+
+#contentfeeds.feed.10am.description=10.am OCS Feed ( http://www.10.am )
+#contentfeeds.feed.10am.url=http://10.am/extra/ocsdirectory.xml
+
+#contentfeeds.feed.moreover.description=Moreover OCS Feed ( http://www.moreover.com )
+#contentfeeds.feed.moreover.url=http://w.moreover.com/categories/ocs/ocsdirectory.rdf
+
+#The stylesheet used to transform OCS into PortletMarkup
+contentfeeds.stylesheet.url=/content/xsl/ocs.xsl
+
+#Jetspeed has the option to continually fetch all of its channels and keep them
+#in cache.  The upside is that your clients will be able to see content
+#right away.  The downside is that this results in more bandwidth used.  The
+#default value is true.  Setting it to false will cause slower page rendering
+#due to Jetspeed having to go out and fetch your content.
+#Default: true
+contentfeeds.fetchall=true
+
+#the total number of portets to browse at once within Jetspeed
+
+#in preview mode...
+#Default: 15
+contentfeeds.portletbrowser.preview.maxportlets=100
+
+#in overview mode...
+#Default: 15
+contentfeeds.portletbrowser.overview.maxportlets=100
+
+#########################################
+# Admin Control Panel Items             #
+#########################################
+
+#deny access to these portlets from the PortletFactory to only people who
+#are authenticated as a turbine admin.  It is important that before the
+#PortletFactory returns instances that these are not allowed.
+#admin.portlet.name=GlobalAdminPortlet
+admin.portlet.name=JetspeedPropertiesPortlet
+#admin.portlet.name=MemoryStorePortlet
+admin.portlet.name=JavaRuntimePortlet
+#admin.portlet.name=DaemonAdminPortlet
+#admin.portlet.name=JetspeedContentAdmin
+#admin.portlet.name=BadURLManagerPortlet
+admin.portlet.name=PortletAdministration
+
+#########################################
+# Daemon Configuration                  #
+#########################################
+
+#provide a list of all daemon names
+daemon.entry=feeddaemon
+daemon.entry=diskcachedaemon
+daemon.entry=badurlmanagerdaemon
+
+daemon.feeddaemon.classname=org.apache.jetspeed.daemon.impl.FeedDaemon
+daemon.feeddaemon.interval=3600
+daemon.feeddaemon.onstartup=true
+
+daemon.diskcachedaemon.classname=org.apache.jetspeed.daemon.impl.DiskCacheDaemon
+daemon.diskcachedaemon.interval=3600
+daemon.diskcachedaemon.onstartup=false
+
+daemon.badurlmanagerdaemon.classname=org.apache.jetspeed.daemon.impl.BadURLManagerDaemon
+daemon.badurlmanagerdaemon.interval=3600
+daemon.badurlmanagerdaemon.onstartup=false
+
+
+#########################################
+# Jetspeed Content                      #
+#########################################
+#Jetspeed supports a more advanced weblog format that allows you to publish
+#content to your website.  This is based on RSS 0.91 but allows you to have
+#more Slashdot style content with topics, icons, etc.
+
+
+#Jetspeed content providers.  This should be a multi-valued property set where
+#you specify the list of providers you want to use:
+
+#Default: jetspeed
+content.provider.list=jetspeed
+
+#Config:  You need to tell Jetspeed how to fetch the content you want and
+#what stylesheet to use.  The mechanism is setup like this:
+#
+#content.provider.[provider-name].url=[url to your content xml file]
+#content.provider.[provider-name].stylesheet.url=[url to the stylesheet to use with your content]
+#content.provider.[provider-name].description=[a full description of your content]
+#content.provider.[provider-name].title=[a title for your content.]
+
+content.provider.jetspeed.url=/content/xml/jetspeed-content.xml
+content.provider.jetspeed.stylesheet.url=/content/xsl/jpc-full.xsl
+content.provider.jetspeed.title=Jetspeed
+content.provider.jetspeed.description=Jetspeed weblog
+
+#########################################
+# PSML & Profiler Support               #
+#########################################
+
+# Profiler used for assigning the¨PSML URL to use for each request
+profiler.default.classname=org.apache.jetspeed.profiler.UserProfiler
+
+# Optional configuration file for profiler
+# This is currently not used by the implemented profilers
+#profiler.configuration=/properties/profiler.conf
+
+# Base URL for fetching user configuration files
+# the config files should be in the form <base.url><username>.psml
+# for use with the default profiler
+psml.base.url=/content/psml/
+
+# Username used for anonymous access (this should map to a <username>.psml file
+# found in the psml.base.url directory)
+psml.base.username=default
+
+# File used the store a portlet registry (still experimental)
+psml.registry.url=/content/psml/portletregistry.psml
+
+
+#########################################
+# Navigations.                          #
+#########################################
+#Use this to specify the set of navigations
+#that Jetspeed should use on top of Turbine
+navigations.top=JetspeedTopNavigation
+navigations.bottom=JetspeedBottomNavigation
+
+#########################################
+# Navigation configuration              #
+#########################################
+#Use this section to define the navigation images
+#and strings
+
+#The logo image that goes at the top of Jetspeed
+site.header.logo=/content/images/trikx_top.jpg
+
+#The welcome message the user receives
+site.header.welcome=
+
+#The logo that can go at the bottom of a navigation
+site.footer.logo=/content/images/xo3-small1.jpg
+
+######################################
+# Metadata Options                   #
+######################################
+
+# default string displayed when no title is found for a portlet
+metadata.default.title=No title set
+
+# default string displayed when no description is found for a portlet
+metadata.default.description=No description found. Generic portlet
+
+# default image displayed when no image is defined for a portlet
+metadata.default.image=/content/image/portlets/default.gif
+
+#########################################
+# Automatic Portlet Creation            #
+#########################################
+# Jetspeed can automatically create/instantiate all your Portlets and place them
+# in the cache when Jetspeed starts up.
+autocreate.portlets=true
+
+#########################################
+# Thread Pool Options                   #
+#########################################
+
+#Specify the initial number of threads to create
+#Default: 50
+threadpool.init.count=30
+
+#Specify the maximum number of threads to create
+#Default: 100
+threadpool.max.count=50
+
+#Specify the minimum number of threads to keep as spare until you hit the max
+#Default: 15
+threadpool.minspare.count=10
diff --git a/openjoda/JetspeedTopNavigation.java b/openjoda/JetspeedTopNavigation.java
new file mode 100644
index 0000000..1ce90f5
--- /dev/null
+++ b/openjoda/JetspeedTopNavigation.java
@@ -0,0 +1,323 @@
+package org.apache.jetspeed.turbine.navigations;
+
+/*
+ * Copyright (c) 1997-1999 The Java Apache Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the Java Apache
+ *    Project for use in the Apache JServ servlet engine project
+ *    <http://java.apache.org/>."
+ *
+ * 4. The names "Apache JServ", "Apache JServ Servlet Engine", "Turbine",
+ *    "Apache Turbine", "Turbine Project", "Apache Turbine Project" and
+ *    "Java Apache Project" must not be used to endorse or promote products
+ *    derived from this software without prior written permission.
+ *
+ * 5. Products derived from this software may not be called "Apache JServ"
+ *    nor may "Apache" nor "Apache JServ" appear in their names without
+ *    prior written permission of the Java Apache Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the Java Apache
+ *    Project for use in the Apache JServ servlet engine project
+ *    <http://java.apache.org/>."
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE JAVA APACHE PROJECT "AS IS" AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE JAVA APACHE PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Java Apache Group. For more information
+ * on the Java Apache Project and the Apache JServ Servlet Engine project,
+ * please see <http://java.apache.org/>.
+ *
+ */
+
+// Java Core Classes
+import java.io.*;
+import java.sql.*;
+import java.util.*;
+
+// Java Servlet Classes
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+// Turbine Modules
+import org.apache.turbine.modules.*;
+
+// Turbine Utility Classes
+import org.apache.turbine.util.*;
+import org.apache.turbine.services.resources.*;
+
+// ECS Classes
+import org.apache.ecs.*;
+import org.apache.ecs.html.*;
+
+//Jetspeed
+import org.apache.jetspeed.util.*;
+import org.apache.jetspeed.portal.*;
+import org.apache.jetspeed.turbine.screens.portlets.*;
+
+//necessary classes from the registrymarkup castor API that works with the Peer.
+import org.apache.jetspeed.registry.peer.PortletEntry;
+import org.apache.jetspeed.xml.api.registrymarkup.Parameter;
+import org.apache.jetspeed.xml.api.registrymarkup.Security;
+import org.apache.jetspeed.xml.api.registrymarkup.Metainfo;
+
+
+public class JetspeedTopNavigation extends Navigation {
+
+    private static String siteLogo = JetspeedResources.getInstance()
+            .getString( JetspeedResources.SITE_HEADER_LOGO_KEY );
+
+    private static String WELCOME = JetspeedResources.getInstance()
+            .getString( JetspeedResources.SITE_HEADER_WELCOME_KEY );
+
+    private static String LOGO="";
+
+
+    private static String loginMessage  = TurbineResources.getString( TurbineResources.LOGIN_MESSAGE );
+
+    private static String loginScreen   = TurbineResources.getString( "screen.login" );
+
+    /**
+    @author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
+    @version $Id$
+    */
+    public ConcreteElement doBuild( RunData data ) throws Exception {
+
+        return getTopicBar( data );
+    }
+
+    /**
+    Generate a welcome bar for the user.
+
+    @author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
+    @version $Id$
+    */
+    public ElementContainer getTopicBar( RunData data ) {
+
+        ElementContainer elements = new ElementContainer();
+
+        ElementContainer title = new ElementContainer();
+
+        if (siteLogo == "" ) {
+            siteLogo = TurbineResources.getString( "site.header.logo" );
+        } else if (siteLogo == "" ) {
+            siteLogo = JetspeedResources.getInstance()
+            .getString( JetspeedResources.CONTENT_ROOT_URL_KEY ) + "/images/bg_fictive.jpg";
+            //.getString( JetspeedResources.CONTENT_ROOT_URL_KEY ) + "/images/jetspeed-logo.gif";
+        }
+
+        //if the LOGO is fully specified ("/images/logo.gif") or a full URL (http://) don't touch it.
+        if ( siteLogo.charAt( 0 ) != '/' ||
+             siteLogo.indexOf( "http://" ) != -1 ) {
+
+            LOGO = JetspeedResources.getInstance()
+                .getString( JetspeedResources.CONTENT_ROOT_URL_KEY ) + siteLogo;
+
+        } else {
+            LOGO = siteLogo;
+        }
+
+        if (WELCOME == "" )
+            WELCOME = TurbineResources.getString( "header.welcome.message" );
+        if (WELCOME == "")
+            WELCOME="Welcome to OpenJoda";
+
+        //title.addElement( WELCOME + " -> " );
+        title.addElement( new A( new DynamicURI( data ).toString() ).addElement( "Home" ) );
+
+        elements.addElement( Util.getCSS() );
+        Center topic = new Center();
+        elements.addElement( topic );
+
+        topic.addElement( new Comment( "BEGIN WELCOME BAR" ));
+
+        Table table = new Table().setWidth("100%")
+                                 .setCellPadding(0)
+                                 .setBorder(0)
+                                 .setCellSpacing(0);
+
+        //holds the body of your current page
+        ElementContainer body = new ElementContainer();
+
+
+        body.addElement( title );
+        body.addElement( new BR() );
+
+        ConcreteElement admin = this.getPrompt( data, "Admin", "Admin" );
+
+        if ( data.getUser() != null && data.getUser().hasLoggedIn() ) {
+
+            PortletEntry cust = new PortletEntry();
+            cust.setName( "Customizer" );
+
+            // Only way to work if cookies are disabled
+            //DynamicURI pb = PortletURIManager.getPortletMaxURI( cust, data);
+
+            //ConcreteElement customize = this.getPrompt( pb, "Customize" );
+            ConcreteElement layout = this.getPrompt(this.getLayoutPortlet( data ), "Layout" );
+            /*ConcreteElement ap = this.getPrompt( this.getApplicationsPortlet( data ), "Applications" );*/
+            ConcreteElement logout = this.getPrompt( data, "Home", "LogoutUser", "Logout" );
+            ConcreteElement editAccount
+                = this.getPrompt( data,
+                                  "EditAccount",
+                                  "Edit Account (" + data.getUser().getUserName() + ")" );
+
+            Vector v = new Vector();
+            //v.addElement( customize );
+            v.addElement( admin );
+            v.addElement( layout );
+            //v.addElement( ap );
+            v.addElement( logout );
+            v.addElement( editAccount );
+
+            body.addElement( this.getApplications( v ) );
+
+        } else {
+
+            Vector v = new Vector();
+
+            v.addElement( this.getPrompt( data, "Login", loginMessage ) );
+			v.addElement( admin );
+
+            body.addElement( this.getApplications( v ) );
+
+        }
+
+        body.addElement( Util.getNiceDate() );
+        //body.addElement( new HR() );
+
+        table.addElement( new TR()
+                            .addElement(new TD().addElement( new IMG( LOGO ) )
+                            .addElement(new TD().setWidth("95%").addElement( body ) ) ) );
+
+
+        topic.addElement( table );
+
+        topic.addElement( new Comment( "END WELCOME BAR" ) );
+
+        return elements;
+
+
+    }
+
+
+    /**
+    Get a prompt by giving the screen, messsage
+    */
+    private A getPrompt( RunData data,
+                         String screen,
+                         String message ) {
+
+        return getPrompt( data, screen, null, message );
+    }
+
+    /**
+    Get a prompt by giving the screen, action, messsage
+    */
+    private A getPrompt( RunData data,
+                         String screen,
+                         String action,
+                         String message ) {
+
+        DynamicURI uri = new DynamicURI(data);
+
+        if ( screen != null ) {
+            uri.setScreen( screen );
+        }
+
+        if ( action != null ) {
+            uri.setAction( action );
+        }
+
+        //LoginUser should redirect me here to the default action...
+
+        return new A( uri.toString() ).addElement( message );
+
+    }
+
+
+    /**
+    Get a prompt based on the DynamicURI
+    */
+    private A getPrompt( DynamicURI duri, String message ) {
+        return new A( duri.toString() ).addElement( message );
+    }
+
+    /**
+    Get a list of Applications that Jetspeed should present the user.
+    */
+    private ConcreteElement getApplications( Vector v ) {
+
+        ElementContainer ec = new ElementContainer();
+
+        ClearElement space = new ClearElement( "&nbsp;&nbsp;&nbsp;" );
+
+        for( int i = 0; i < v.size(); ++i ) {
+
+            ConcreteElement ce = (ConcreteElement)v.elementAt(i);
+
+            ec.addElement( ce );
+            ec.addElement( space );
+        }
+
+        ec.addElement( new BR() );
+
+        return ec;
+    }
+
+    /**
+    Given a ConcreteElement get the applications
+    */
+    private ConcreteElement getApplications( ConcreteElement ce ) {
+
+        Vector v = new Vector();
+        v.addElement( ce );
+
+        return getApplications( v );
+    }
+
+    /**
+    Get a DynamicURI to the Applications Portlet
+
+    */
+    private DynamicURI getApplicationsPortlet(RunData data) {
+        PortletEntry entry = new PortletEntry();
+        entry.setName( "Applications" );
+
+        return PortletURIManager.getPortletMaxURI( entry, data );
+    }
+
+    private DynamicURI getLayoutPortlet(RunData data) {
+        PortletEntry entry = new PortletEntry();
+        entry.setName( "Layout" );
+
+        return PortletURIManager.getPortletMaxURI( entry, data );
+    }
+
+}
diff --git a/openjoda/PortletCache.java b/openjoda/PortletCache.java
new file mode 100644
index 0000000..302f1a8
--- /dev/null
+++ b/openjoda/PortletCache.java
@@ -0,0 +1,220 @@
+/*
+ *
+ * Copyright (c) 1998 The Java Apache Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. Every modification must be notified to the Java Apache Project
+ *    and redistribution of the modified code without prior notification
+ *    is not permitted in any form.
+ *
+ * 4. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the Java Apache Project
+ *    (http://java.apache.org/)."
+ *
+ * 5. The names "Jetspeed", "Apache Jetspeed" and "Apache Jetspeed
+ *    Project" must not be used to endorse or promote products
+ *    derived from this software without prior written permission.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the Java Apache Project
+ *    (http://java.apache.org/)."
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE JAVA APACHE PROJECT "AS IS" AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE JAVA APACHE PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * License version 1.0
+ *
+ */
+
+package org.apache.jetspeed.cache.memory;
+
+//java stuff
+import java.io.*;
+import java.util.*;
+
+//jetspeed stuff
+import org.apache.jetspeed.portal.*;
+import org.apache.jetspeed.util.*;
+import org.apache.jetspeed.registry.peer.*;
+
+//turbine stuff
+import org.apache.turbine.util.*;
+
+
+/**
+Stores PortletControls in memory so performance is optimized.
+
+@author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
+@version $Id$
+*/
+public class PortletCache extends BaseSingleton {
+
+    public static final String SINGLETON_HANDLE = "jetspeed.portletcache";
+
+
+    /**
+    Singleton instance
+    */
+    private static PortletCache instance = null;
+
+    /**
+
+    @author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
+    @version $Id$
+    */
+    public static PortletCache getInstance() {
+
+        if ( instance == null ) {
+            instance = (PortletCache)SingletonHolder.get( SINGLETON_HANDLE );
+        }
+
+        return instance;
+
+    }
+
+    /**
+    Perform any initialization needed by the PortletCache.
+
+    @author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
+    @version $Id$
+    */
+    public void init() {
+
+        this.setSingletonHandle( SINGLETON_HANDLE );
+
+        SingletonHolder.put( this );
+
+        this.setInitialized( true );
+    }
+
+    /**
+    Add a Cacheable to the cache.
+
+    @author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
+    @version $Id$
+    */
+    public void addCacheable( Cacheable item ) {
+
+        String handle = item.getHandle();
+
+        if ( handle.length() == 0 ) {
+            throw new RuntimeException("You must specify a handle for the item you want to cache.");
+        }
+
+        if ( item.isCacheable() ) {
+            //MemoryStore.getInstance().hold( handle, item);
+        }
+
+    }
+
+    /**
+    Get a Cacheable object from the cache.
+
+    @author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
+    @version $Id$
+    */
+    public Cacheable getCacheable( String handle ) {
+
+        Cacheable item = (Cacheable)MemoryStore.getInstance().get( handle );
+
+        if ( item == null ) {
+            Log.note( "Jetspeed: cache miss: " + handle );
+        } else {
+            Log.note( "Jetspeed: cache hit: " + handle );
+        }
+
+        return item;
+
+    }
+
+    /**
+
+    @author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
+    @version $Id$
+    */
+    public void swap( Cacheable original, Cacheable replacement ) {
+
+        MemoryStore.getInstance().remove( original.getHandle() );
+
+        MemoryStore.getInstance().hold( replacement.getHandle(), replacement );
+
+    }
+
+    /**
+    @author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
+    @version $Id$
+    */
+    public String getStatus() {
+        return MemoryStore.getInstance().getStatus();
+    }
+
+    /**
+    Get the Portlets that have been stored in memory.
+
+    @author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
+    @version $Id$
+    */
+    public Portlet[] getPortlets() {
+
+        Enumeration enum = MemoryStore.getInstance().list();
+
+        Vector v = new Vector();
+
+        while ( enum.hasMoreElements() ) {
+
+            String key = (String)enum.nextElement();
+
+            Object obj = MemoryStore.getInstance().get( key );
+
+            if ( obj instanceof Portlet ) {
+                v.addElement( obj );
+            }
+
+        }
+
+        Portlet[] portlets = new Portlet[ v.size() ];
+        v.copyInto( portlets );
+        return portlets;
+
+    }
+
+    /**
+    Return true if the given Entry is instantiated and in the memory cache.
+
+    @author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
+    @version $Id$
+    */
+    public boolean isCached( PortletEntry entry ) {
+
+        String handle = CacheHandleManager.getHandle( entry );
+
+        //return this.getCacheable( handle ) != null;
+	  return false;
+
+    }
+
+}
+
diff --git a/openjoda/content/css/default.css b/openjoda/content/css/default.css
new file mode 100644
index 0000000..ce6f7ed
--- /dev/null
+++ b/openjoda/content/css/default.css
@@ -0,0 +1,35 @@
+
+        {background:  white}
+        BODY  {font-family: "Verdana, Helvetica"; font-size: 9pt; color: 000000}
+        TD  {font-family: "Verdana, Helvetica"; font-size: 8pt; color: 000000}
+        TR  {font-family: "Verdana, Helvetica"; font-size: 9pt; color: 000000}
+        I  {font-family: "Verdana, Helvetica"; font-size: 9pt; color: 000000;font-style: italic}
+        BIG  {font-family: "Verdana, Helvetica"; font-size: 13pt; color: 000000;font-weight: bold}
+        TH  {font-family: "Verdana, Helvetica"; font-size: 9pt; color: 000000;font-weight: bold}
+        A:link {font-family: "Verdana, Helvetica"; font-size: 8pt; color: 000080;font-weight: bold;text-decoration:none}
+        A:visited {font-family: "Verdana, Helvetica"; font-size: 8pt; color: 0000;font-weight: bold; text-decoration:none}
+        H1 {font-family: "Verdana, Helvetica"; font-size: 30pt; color: navy;}
+        STRONG {font-family: "Verdana, Helvetica"; font-size: 9pt; color: 000000;text-decoration: none; margin-left=0}
+        H2 {font-family: "Verdana, Helvetica"; font-size: 12pt; color: 000000;text-decoration: none; margin-left=0}
+        H3 {font-family: "Verdana, Helvetica"; font-size: 9pt; color: 000000;text-decoration: none; margin-left=0}
+        PRE {font-family: "Verdana, Helvetica"; font-size: 9pt; color: 000000}
+        P {font-family: "Verdana, Helvetica"; font-size: 8pt; color: 000000}
+        BLOCKQUOTE {font-family: "Verdana, Arial, Helvetica"; font-size:9pt; color: 000000}
+	.TITLE {font-family: "Verdana, Arial, Helvetica, sans-serif"; font-size: 9pt; font-weight: bold; color:white}
+	.TITLE A:link { color : white; text-decoration:none }
+	.TITLE A:visited { color:white; text-decoration:none }
+	.TITLE A:hover { color: #8394F3; text-decoration:none }
+	.truc { font-family: "Verdana, Arial, Helvetica, sans-serif"; font-size: 1pt; font-weight: bold; color:white}
+        .WELCOMETITLE {font-family: "Verdana, Helvetica"; font-size: 9pt; color: white; background: #666666; font-weight: bold}
+        .WELCOMETITLE:link {font-family: "Verdana, Helvetica"; font-size: 9pt; color: white; background: #666666; font-weight: bold}
+        .WELCOMETITLE:visited {font-family: "Verdana, Helvetica"; font-size: 9pt; color: white; background: #666666; font-weight: bold}
+        .TOOLBAR {font-family: "Verdana, Helvetica"; font-size: 9pt; color: 000000;font-weight: normal}
+        .TOOLBAR:link {font-family: "Verdana, Helvetica"; font-size: 9pt; color: 000000;font-weight: normal}
+        .TOOLBAR:visited {font-family: "Verdana, Helvetica"; font-size: 9pt; color: 000000;font-weight: normal}
+        .TITLEBAR {font-family: "Verdana, Helvetica"; font-size: 9pt; color: FFFFFF; background: navy;font-weight: bold}
+        .MESSAGE {font-family: "Verdana, Helvetica"; font-size: 8pt; color: 000000;font-weight: normal}
+        .MESSAGE:link {font-family: "Verdana, Helvetica"; font-size: 8pt; color: NAVY;font-weight: normal}
+        .MESSAGE:visited {font-family: "Verdana, Helvetica"; font-size: 8pt; color: BLACK;font-weight: normal}
+        .MESSAGENEW {font-family: "Verdana, Helvetica"; font-size: 8pt; color: 000000;font-weight: bold}
+        .MESSAGENEW:link {font-family: "Verdana, Helvetica"; font-size: 8pt; color: NAVY;font-weight: bold}
+        .MESSAGENEW:visited {font-family: "Verdana, Helvetica"; font-size: 8pt; color: BLACK;font-weight: bold}
diff --git a/openjoda/content/css/ws_ftp.log b/openjoda/content/css/ws_ftp.log
new file mode 100644
index 0000000..d7bd6e9
--- /dev/null
+++ b/openjoda/content/css/ws_ftp.log
@@ -0,0 +1,16 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\default.css <-- canal /home/ktn10/project/openjoda/content/css default.css
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\default.css --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/css default.css
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/css WS_FTP.LOG
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\default.css --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/css default.css
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/css WS_FTP.LOG
+2000.12.17 23:50 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\default.css --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/css default.css
+2000.12.17 23:50 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/css WS_FTP.LOG
+2000.12.17 23:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\default.css --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/css default.css
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/css WS_FTP.LOG
+2000.12.18 14:10 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\default.css --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/css default.css
+2000.12.18 14:10 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/css WS_FTP.LOG
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\default.css --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/css default.css
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/css WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\default.css --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/css default.css
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/css WS_FTP.LOG
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\css\default.css --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/css default.css
diff --git a/openjoda/content/dynamic/customizer/javascript/dragDrop_nn4.js b/openjoda/content/dynamic/customizer/javascript/dragDrop_nn4.js
new file mode 100644
index 0000000..3ff3014
--- /dev/null
+++ b/openjoda/content/dynamic/customizer/javascript/dragDrop_nn4.js
@@ -0,0 +1,130 @@
+
+/*
+   Copyright (c) 1998 The Java Apache Project.  All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions
+   are met:
+
+   1. Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+
+   3. Every modification must be notified to the Java Apache Project
+      and redistribution of the modified code without prior notification
+      is not permitted in any form.
+
+   4. All advertising materials mentioning features or use of this
+      software must display the following acknowledgment:
+      "This product includes software developed by the Java Apache Project
+      (http://java.apache.org/)."
+
+   5. The names "Jetspeed", "Apache Jetspeed" and "Apache Jetspeed
+      Project" must not be used to endorse or promote products
+      derived from this software without prior written permission.
+
+   6. Redistributions of any form whatsoever must retain the following
+      acknowledgment:
+      "This product includes software developed by the Java Apache Project
+      (http://java.apache.org/)."
+
+   THIS SOFTWARE IS PROVIDED BY THE JAVA APACHE PROJECT "AS IS" AND ANY
+   EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+   PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE JAVA APACHE PROJECT OR
+   ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+   OF THE POSSIBILITY OF SUCH DAMAGE.
+
+   License version 1.0
+
+*/
+
+
+    IE4  = (document.all)    ? 1 : 0;
+    NS4  = (document.layers) ? 1 : 0;
+    ver4 = (NS4 || IE4)      ? 1 : 0;
+
+    currentX = currentY = 0;
+    whichEl = null;
+
+    function grabEl(e) {
+        mouseX = e.pageX;
+        mouseY = e.pageY;
+
+        for ( i=0; i<document.layers.length; i++ ) {
+        tempLayer = document.layers[i];
+            if ( tempLayer.id.indexOf("DRAG") == -1 ) { continue }
+            if ( (mouseX > tempLayer.left) && (mouseX < (tempLayer.left + tempLayer.clip.width)) && (mouseY > tempLayer.top) && (mouseY < (tempLayer.top + tempLayer.clip.height)) ) {
+                whichEl = tempLayer;
+            }
+        }
+
+        if (whichEl == null) { return}
+
+        if (whichEl != activeEl) {
+            whichEl.moveAbove(activeEl);
+            activeEl = whichEl;
+        }
+
+        currentX = e.pageX;
+        currentY = e.pageY;
+
+        document.captureEvents(Event.MOUSEMOVE);
+        document.onmousemove = moveEl;
+        // added by bartle and jones
+        clear_slot(whichEl.name);
+        clear_pslot(whichEl.name);
+    }
+
+    function moveEl(e) {
+        if (whichEl == null) { return };
+
+        newX = e.pageX;
+        newY = e.pageY;
+
+        distanceX = (newX - currentX);
+        distanceY = (newY - currentY);
+        currentX = newX;
+        currentY = newY;
+
+        // added by bartle and jones
+        check_highlight(get_slot(currentX,currentY));
+
+        whichEl.moveBy(distanceX,distanceY);
+    }
+
+    function checkEl() {
+        if (whichEl!=null) { return false }
+    }
+
+    function dropEl(e) {
+        // added by bartle and jones
+        drop_element(e.pageX,e.pageY,whichEl);
+
+        document.releaseEvents(Event.MOUSEMOVE);
+        whichEl = null;
+    }
+
+    function cursEl() {
+        if (event.srcElement.id.indexOf("DRAG") != -1) {
+            event.srcElement.style.cursor = "move"
+        }
+    }
+
+    if (ver4) {
+        document.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP);
+        document.onmousedown = grabEl;
+        document.onmouseup = dropEl;
+    }
+
+
diff --git a/openjoda/content/dynamic/customizer/javascript/nn4.js b/openjoda/content/dynamic/customizer/javascript/nn4.js
new file mode 100644
index 0000000..d986026
--- /dev/null
+++ b/openjoda/content/dynamic/customizer/javascript/nn4.js
@@ -0,0 +1,358 @@
+/*
+   Copyright (c) 1998 The Java Apache Project.  All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions
+   are met:
+
+   1. Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+
+   3. Every modification must be notified to the Java Apache Project
+      and redistribution of the modified code without prior notification
+      is not permitted in any form.
+
+   4. All advertising materials mentioning features or use of this
+      software must display the following acknowledgment:
+      "This product includes software developed by the Java Apache Project
+      (http://java.apache.org/)."
+
+   5. The names "Jetspeed", "Apache Jetspeed" and "Apache Jetspeed
+      Project" must not be used to endorse or promote products
+      derived from this software without prior written permission.
+
+   6. Redistributions of any form whatsoever must retain the following
+      acknowledgment:
+      "This product includes software developed by the Java Apache Project
+      (http://java.apache.org/)."
+
+   THIS SOFTWARE IS PROVIDED BY THE JAVA APACHE PROJECT "AS IS" AND ANY
+   EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+   PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE JAVA APACHE PROJECT OR
+   ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+   OF THE POSSIBILITY OF SUCH DAMAGE.
+
+   License version 1.0
+
+*/
+
+  //***************************************************************************
+  function draw_slot(row,col) {
+    // determine which slot we are in
+    slotnum = col+cols*row;
+    // alert(slotnum);
+    curslot = slotin = slotlight = null;
+
+    // then step through all the layers and find the current slot
+    for(i = 0 ; i < document.workSpace.layers.length ; i++) {
+      if(document.workSpace.layers[i].name == 'slot' + slotnum + 'Out') {
+        curslot = document.workSpace.layers[i];
+      }
+    }
+    // then step through all the layers in the current slot
+    // and find the inner area and the hightlight
+    for(i = 0 ; i < curslot.layers.length ; i++) {
+      if(curslot.layers[i].name == 'slot' + slotnum + 'In') {
+        slotin = curslot.layers[i];
+      }
+      if(curslot.layers[i].name == 'slot' + slotnum + 'Light') {
+        slotlight = curslot.layers[i];
+      }
+    }
+
+    //alert("SlotNum: " + slotnum + "\nName: " + curslot.name + "\nIn: " + slotin.name + "\nLight: " + slotlight.name);
+
+    slotheight = ((window.innerHeight - extra_height) -
+                 (rows+1)*slotspacing)/rows;
+    slotwidth  = ((window.innerWidth - menu_width - right_margin) -
+                 (cols+1)*slotspacing)/cols;
+
+    curslot.clip.width  = slotwidth;
+    curslot.clip.height = slotheight;
+    curslot.left        = slotspacing + col * (slotwidth + slotspacing);
+    curslot.top         = slotspacing + row * (slotheight+ slotspacing);
+
+    slotin.clip.width  = slotlight.clip.width  = slotwidth  - 2;
+    slotin.clip.height = slotlight.clip.height = slotheight - 2;
+    slotin.left        = slotlight.left        = 1;
+    slotin.top         = slotlight.top         = 1;
+
+  }
+
+  //***************************************************************************
+  function hide_slot(row,col) {
+    // determine which slot we are in
+    slotnum = col+cols*row;
+    // alert(slotnum);
+    curslot = slotin = slotlight = null;
+    // then step through all the layers and find the current slot
+    for(i = 0 ; i < document.workSpace.layers.length ; i++) {
+      if(document.workSpace.layers[i].name == 'slot' + slotnum + 'Out') {
+        curslot = document.workSpace.layers[i];
+      }
+    }
+    // then step through all the layers in the current slot
+    // and find the inner area and the hightlight
+    for(i = 0 ; i < curslot.layers.length ; i++) {
+      if(curslot.layers[i].name == 'slot' + slotnum + 'In') {
+        slotin = curslot.layers[i];
+      }
+      if(curslot.layers[i].name == 'slot' + slotnum + 'Light') {
+        slotlight = curslot.layers[i];
+      }
+    }
+
+    //alert("SlotNum: " + slotnum + "\nName: " + curslot.name + "\nIn: " + slotin.name + "\nLight: " + slotlight.name);
+    curslot.clip.width  = 0;
+    curslot.clip.height = 0;
+    curslot.left        = 0;
+    curslot.top         = 0;
+
+    slotin.clip.width   = 0;
+    slotin.clip.height  = 0;
+    slotin.left         = 0;
+    slotin.top          = 0;
+  }
+
+  //***************************************************************************
+  function get_slot(coordX,coordY) {
+    X = coordX - startX;
+    Y = coordY - startY;
+
+    ws = document.workSpace.layers;
+
+    var i = Number();
+
+    for(i = 0 ; i < ws.length ; i++) {
+      if(X > ws[i].left &&
+         X < (ws[i].left + ws[i].clip.width) &&
+         Y > ws[i].top  &&
+         Y < (ws[i].top + ws[i].clip.height)) {
+         return i;
+       }
+    }
+    return (-1);
+  }
+
+  //***************************************************************************
+  function get_slot_row(slotid) {
+    return (parseInt(((slotid) / cols)+1)) - 1;
+  }
+
+  //***************************************************************************
+  function get_slot_col(slotid) {
+    return ((slotid) % cols);
+  }
+
+  //***************************************************************************
+  function unhighlight(slotid) {
+    ws = document.workSpace.layers;
+    var i = Number();
+    for(i = 0 ; i < ws.length ; i++) {
+      if(ws[i].name == 'slot' + slotid + 'Out'){
+        slot_to_highlight = ws[i];
+        for(j = 0 ; j < slot_to_highlight.layers.length ; j++) {
+          if(slot_to_highlight.layers[j].name == 'slot' + slotid + 'Light'){
+            slot_to_highlight.layers[j].visibility = 'hidden';
+          }
+        }
+      }
+    }
+  }
+
+  //***************************************************************************
+  function unhighlight_all() {
+    var i = Number();
+    for(i = 0 ; i < (rows*cols) ; i++) {
+      if(!slot[i]) { unhighlight(i); }
+    }
+  }
+
+  //***************************************************************************
+  function highlight(slotid) {
+    ws = document.workSpace.layers;
+    var i = Number();
+    for(i = 0 ; i < ws.length ; i++) {
+      if(ws[i].name == 'slot' + slotid + 'Out'){
+        slot_to_highlight = ws[i];
+        for(j = 0 ; j < slot_to_highlight.layers.length ; j++) {
+          if(slot_to_highlight.layers[j].name == 'slot' + slotid + 'Light'){
+            slot_to_highlight.layers[j].visibility = 'visible';
+            last_highlighted = j;
+          }
+        }
+      }
+    }
+  }
+
+  //***************************************************************************
+  function check_highlight(slotid) {
+    if(slotid == -1) {
+      if(what_slot_we_are_in != -1) {
+        if(!slot[what_slot_we_are_in]) {
+          clear_slot(what_slot_we_are_in);
+          unhighlight(what_slot_we_are_in);
+        }
+        unhighlight_all();
+      }
+      what_slot_we_are_in = -1;
+    } else {
+      unhighlight_all();
+      highlight(slotid);
+      what_slot_we_are_in = slotid;
+    }
+  }
+
+  //***************************************************************************
+  function drop_element(coordX, coordY, element) {
+    if(!element) { return; }
+    set_slot(get_slot(coordX, coordY),element.name);
+  }
+
+  //***************************************************************************
+  function recycle(elementname) {
+    for(i = 0 ; i < positions.length ; i++) {
+      if(positions[i] == elementname) {
+        pslot[i] = elementname;
+        break;
+      }
+    }
+    for(j = 0 ; j < document.layers.length ; j++) {
+      if(document.layers[j].name == elementname){
+        document.layers[j].left = 10;
+        document.layers[j].top = startY + ((elementheight + 2) * (i));
+      }
+    }
+  }
+
+  //***************************************************************************
+  function clear_slot(elementname) {
+    for(i = 0 ; i < slot.length ; i++) {
+      if(slot[i] == elementname) {
+        slot[i] = '';
+      }
+    }
+  }
+
+  //***************************************************************************
+  function get_slot_num(elname) {
+    for(i = 0 ; i < slot.length ; i++) {
+      if(slot[i] == elname) {
+        return i;
+      }
+    }
+  }
+
+  //***************************************************************************
+  function clear_pslot(elementname) {
+    for(i = 0 ; i < pslot.length ; i++) {
+      if(pslot[i] == elementname) {
+        pslot[i] = '';
+      }
+    }
+  }
+
+  //***************************************************************************
+  function set_slot(slotid, elementname) {
+    if(slotid == -1) {
+      clear_slot(elementname);
+      recycle(elementname);
+    } else {
+      // alert("Slotid: " + slotid + "\nElement Name: " + elementname);
+      for(i = 0 ; i < document.layers.length ; i++) {
+        if(document.layers[i].name == elementname) {
+          element = document.layers[i];
+        }
+      }
+      // now find out the row and column of the slot we are dropping it in
+      slotheight = ((window.innerHeight - extra_height) -
+                   (rows+1)*slotspacing)/rows;
+      slotwidth  = ((window.innerWidth - menu_width - right_margin) -
+                   (cols+1)*slotspacing)/cols;
+
+      slotrow = get_slot_row(slotid);
+      slotcol = get_slot_col(slotid);
+
+      // alert("Row: " + slotrow + "\nCol: " + slotcol);
+      // move the element to where it belongs
+      element.moveTo(startX + slotspacing
+                            + slotcol*(slotwidth + slotspacing)
+                            + slotwidth/2
+                            - elementwidth/2,
+                     startY + slotspacing
+                            + slotrow*(slotheight + slotspacing)
+                            + slotheight/2
+                            - elementheight/2);
+
+      if(slotid != get_slot_num(elementname)) {
+        clear_slot(elementname);
+      }
+
+      if(slot[slotid] && (slot[slotid] != elementname)) {
+        recycle(slot[slotid]);
+      }
+      slot[slotid] = elementname;
+
+      clear_pslot(elementname);
+      what_slot_we_are_in = -1;
+    }
+  }
+
+  //***************************************************************************
+  function print_slots() {
+    var text = '';
+    for(i = 0 ; i < slot.length ; i++) {
+      text += "Slot " + i + " : " + slot[i] + "\n";
+    }
+    alert(text);
+  }
+
+  //***************************************************************************
+  function print_pslots() {
+    var text = '';
+    for(i = 0 ; i < pslot.length ; i++) {
+      text += "pSlot " + i + " : " + pslot[i] + "\n";
+    }
+    alert(text);
+  }
+
+  //***************************************************************************
+  function add_row() {
+    if (rows == max_rows) {
+      alert("We're sorry. This is the maximum content you can add.");
+      return false;
+    }
+    rows += 1;
+    slot.length += cols;
+    draw();
+  }
+
+  //***************************************************************************
+  function del_row() {
+    if (rows == min_rows) {
+      alert("Can't remove any more rows");
+      return false;
+    }
+    rows -= 1;
+    for(k=0;k<cols;k++) {
+      if (slot[((rows*cols)+k)]) {
+        recycle(slot[((rows*cols)+k)]);
+        unhighlight(((rows*cols)+k));
+      }
+      hide_slot(rows,k);
+    }
+    slot.length -= cols;
+    draw();
+  }
diff --git a/openjoda/content/dynamic/customizer/javascript/ws_ftp.log b/openjoda/content/dynamic/customizer/javascript/ws_ftp.log
new file mode 100644
index 0000000..65b7b9e
--- /dev/null
+++ b/openjoda/content/dynamic/customizer/javascript/ws_ftp.log
@@ -0,0 +1,22 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\dragDrop_nn4.js <-- canal /home/ktn10/project/openjoda/content/dynamic/customizer/javascript dragDrop_nn4.js
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\nn4.js <-- canal /home/ktn10/project/openjoda/content/dynamic/customizer/javascript nn4.js
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\dragDrop_nn4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript dragDrop_nn4.js
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\nn4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript nn4.js
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript WS_FTP.LOG
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\dragDrop_nn4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript dragDrop_nn4.js
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\nn4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript nn4.js
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript WS_FTP.LOG
+2000.12.17 23:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\dragDrop_nn4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript dragDrop_nn4.js
+2000.12.17 23:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\nn4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript nn4.js
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/dynamic/customizer/javascript WS_FTP.LOG
+2000.12.18 14:10 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\dragDrop_nn4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript dragDrop_nn4.js
+2000.12.18 14:10 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\nn4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript nn4.js
+2000.12.18 14:10 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript WS_FTP.LOG
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\dragDrop_nn4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript dragDrop_nn4.js
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\nn4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript nn4.js
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\dragDrop_nn4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript dragDrop_nn4.js
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\nn4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript nn4.js
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript WS_FTP.LOG
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\dragDrop_nn4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript dragDrop_nn4.js
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\javascript\nn4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/javascript nn4.js
diff --git a/openjoda/content/dynamic/customizer/stylesheets/default.css b/openjoda/content/dynamic/customizer/stylesheets/default.css
new file mode 100644
index 0000000..84b5fa0
--- /dev/null
+++ b/openjoda/content/dynamic/customizer/stylesheets/default.css
@@ -0,0 +1,572 @@
+
+  #mousestockDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mousestockCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mouseweatherDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mouseweatherCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mousehoroscopesDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mousehoroscopesCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mousemappingDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mousemappingCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mouseypDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mouseypCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mousewebsitesDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mousewebsitesCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mousesearchDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mousesearchCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mouseurlentryDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mouseurlentryCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mousefreshmeatDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mousefreshmeatCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mouseslashdotDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mouseslashdotCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mousetopstoriesDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mousetopstoriesCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mousetopbusinessDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mousetopbusinessCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mouseuspoliticsDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mouseuspoliticsCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mousebasketballDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mousebasketballCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mousegolfDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mousegolfCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mouseentertainmentgeneralDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mouseentertainmentgeneralCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mousehealthDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mousehealthCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mouseartsandcultureDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mouseartsandcultureCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mousebookpublishingDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mousebookpublishingCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mouseparentingDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mouseparentingCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #mouseznewsDRAG {
+    position: absolute;
+    left: -200; top: -200;
+    border-color: #000000;
+    layer-background-color: #FFFFFF;
+    background-color: #FFFFFF;
+    clip: rect(0 140 20 0);
+  }
+  #mouseznewsCont {
+    position: absolute;
+    left: 1; top: 1;
+    width: 138;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    clip: rect(0 138 18 0);
+    text-align: center;
+  }
+
+
+  #workSpace {
+    position: absolute; left: 0; top: 0;
+    background-color: #FFFFFF;
+    layer-background-color: #FFFFFF;
+  }
+
+  #bottomTable {
+    top: -200;
+    position: absolute;
+  }
+
+  #slot0Out {
+    position: absolute; left: 0; top: 0;
+    background-color: #000000;
+    layer-background-color: #000000;
+  }
+  #slot0In {
+    position: absolute; left: 1; top: 1;
+    background-color: #FFFFFF;
+    layer-background-color: #FFFFFF;
+  }
+  #slot0Light {
+    position: absolute; left: 1; top: 1;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    visibility: hidden;
+  }
+  #slot1Out {
+    position: absolute; left: 0; top: 0;
+    background-color: #000000;
+    layer-background-color: #000000;
+  }
+  #slot1In {
+    position: absolute; left: 1; top: 1;
+    background-color: #FFFFFF;
+    layer-background-color: #FFFFFF;
+  }
+  #slot1Light {
+    position: absolute; left: 1; top: 1;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    visibility: hidden;
+  }
+  #slot2Out {
+    position: absolute; left: 0; top: 0;
+    background-color: #000000;
+    layer-background-color: #000000;
+  }
+  #slot2In {
+    position: absolute; left: 1; top: 1;
+    background-color: #FFFFFF;
+    layer-background-color: #FFFFFF;
+  }
+  #slot2Light {
+    position: absolute; left: 1; top: 1;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    visibility: hidden;
+  }
+  #slot3Out {
+    position: absolute; left: 0; top: 0;
+    background-color: #000000;
+    layer-background-color: #000000;
+  }
+  #slot3In {
+    position: absolute; left: 1; top: 1;
+    background-color: #FFFFFF;
+    layer-background-color: #FFFFFF;
+  }
+  #slot3Light {
+    position: absolute; left: 1; top: 1;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    visibility: hidden;
+  }
+  #slot4Out {
+    position: absolute; left: 0; top: 0;
+    background-color: #000000;
+    layer-background-color: #000000;
+  }
+  #slot4In {
+    position: absolute; left: 1; top: 1;
+    background-color: #FFFFFF;
+    layer-background-color: #FFFFFF;
+  }
+  #slot4Light {
+    position: absolute; left: 1; top: 1;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    visibility: hidden;
+  }
+  #slot5Out {
+    position: absolute; left: 0; top: 0;
+    background-color: #000000;
+    layer-background-color: #000000;
+  }
+  #slot5In {
+    position: absolute; left: 1; top: 1;
+    background-color: #FFFFFF;
+    layer-background-color: #FFFFFF;
+  }
+  #slot5Light {
+    position: absolute; left: 1; top: 1;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    visibility: hidden;
+  }
+  #slot6Out {
+    position: absolute; left: 0; top: 0;
+    background-color: #000000;
+    layer-background-color: #000000;
+  }
+  #slot6In {
+    position: absolute; left: 1; top: 1;
+    background-color: #FFFFFF;
+    layer-background-color: #FFFFFF;
+  }
+  #slot6Light {
+    position: absolute; left: 1; top: 1;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    visibility: hidden;
+  }
+  #slot7Out {
+    position: absolute; left: 0; top: 0;
+    background-color: #000000;
+    layer-background-color: #000000;
+  }
+  #slot7In {
+    position: absolute; left: 1; top: 1;
+    background-color: #FFFFFF;
+    layer-background-color: #FFFFFF;
+  }
+  #slot7Light {
+    position: absolute; left: 1; top: 1;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    visibility: hidden;
+  }
+  #slot8Out {
+    position: absolute; left: 0; top: 0;
+    background-color: #000000;
+    layer-background-color: #000000;
+  }
+  #slot8In {
+    position: absolute; left: 1; top: 1;
+    background-color: #FFFFFF;
+    layer-background-color: #FFFFFF;
+  }
+  #slot8Light {
+    position: absolute; left: 1; top: 1;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    visibility: hidden;
+  }
+  #slot9Out {
+    position: absolute; left: 0; top: 0;
+    background-color: #000000;
+    layer-background-color: #000000;
+  }
+  #slot9In {
+    position: absolute; left: 1; top: 1;
+    background-color: #FFFFFF;
+    layer-background-color: #FFFFFF;
+  }
+  #slot9Light {
+    position: absolute; left: 1; top: 1;
+    background-color: #6699CC;
+    layer-background-color: #6699CC;
+    visibility: hidden;
+  }
+
diff --git a/openjoda/content/dynamic/customizer/stylesheets/ws_ftp.log b/openjoda/content/dynamic/customizer/stylesheets/ws_ftp.log
new file mode 100644
index 0000000..5feeeb3
--- /dev/null
+++ b/openjoda/content/dynamic/customizer/stylesheets/ws_ftp.log
@@ -0,0 +1,14 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\stylesheets\default.css <-- canal /home/ktn10/project/openjoda/content/dynamic/customizer/stylesheets default.css
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\stylesheets\default.css --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/stylesheets default.css
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\stylesheets\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/stylesheets WS_FTP.LOG
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\stylesheets\default.css --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/stylesheets default.css
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\stylesheets\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/stylesheets WS_FTP.LOG
+2000.12.17 23:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\stylesheets\default.css --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/stylesheets default.css
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\stylesheets\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/dynamic/customizer/stylesheets WS_FTP.LOG
+2000.12.18 14:10 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\stylesheets\default.css --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/stylesheets default.css
+2000.12.18 14:10 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\stylesheets\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/stylesheets WS_FTP.LOG
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\stylesheets\default.css --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/stylesheets default.css
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\stylesheets\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/stylesheets WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\stylesheets\default.css --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/stylesheets default.css
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\stylesheets\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/stylesheets WS_FTP.LOG
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\stylesheets\default.css --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/stylesheets default.css
diff --git a/openjoda/content/dynamic/customizer/xsl/ui-drag-and-drop.xsl b/openjoda/content/dynamic/customizer/xsl/ui-drag-and-drop.xsl
new file mode 100644
index 0000000..c34f71b
--- /dev/null
+++ b/openjoda/content/dynamic/customizer/xsl/ui-drag-and-drop.xsl
@@ -0,0 +1,526 @@
+<?xml version="1.0"?>
+
+<!--
+   Copyright (c) 1998 The Java Apache Project.  All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions
+   are met:
+
+   1. Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+
+   3. Every modification must be notified to the Java Apache Project
+      and redistribution of the modified code without prior notification
+      is not permitted in any form.
+
+   4. All advertising materials mentioning features or use of this
+      software must display the following acknowledgment:
+      "This product includes software developed by the Java Apache Project
+      (http://java.apache.org/)."
+
+   5. The names "Jetspeed", "Apache Jetspeed" and "Apache Jetspeed
+      Project" must not be used to endorse or promote products
+      derived from this software without prior written permission.
+
+   6. Redistributions of any form whatsoever must retain the following
+      acknowledgment:
+      "This product includes software developed by the Java Apache Project
+      (http://java.apache.org/)."
+
+   THIS SOFTWARE IS PROVIDED BY THE JAVA APACHE PROJECT "AS IS" AND ANY
+   EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+   PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE JAVA APACHE PROJECT OR
+   ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+   OF THE POSSIBILITY OF SUCH DAMAGE.
+
+   License version 1.0
+
+-->
+
+
+<!--
+Author: Kevin A. Burton (burton@apache.org)
+$Id$
+
+Note:  This stylesheet provides a UI for uplevel (IE/Netscape) clients to customize
+their portlet experience.  It uses a PSML document to provide a UI for the user.
+
+-->
+
+<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
+                version   = "1.0">
+
+    <xsl:output method="html" indent="yes"/>
+
+
+    <xsl:template match="/portlets">
+
+
+        <div>
+
+
+        <!-- add the styleshee for this content. -->
+        <link href="/content/dynamic/customizer/stylesheets/default.css"
+              type="text/css"
+              rel="stylesheet"/>
+
+        <form action="submit.php3" method="post" name="selected_mods">
+            <input type="hidden" value="" name="slot_number_0"><!-- break --></input>
+            <input type="hidden" value="" name="slot_number_1"><!-- break --></input>
+            <input type="hidden" value="" name="slot_number_2"><!-- break --></input>
+            <input type="hidden" value="" name="slot_number_3"><!-- break --></input>
+            <input type="hidden" value="" name="slot_number_4"><!-- break --></input>
+            <input type="hidden" value="" name="slot_number_5"><!-- break --></input>
+            <input type="hidden" value="" name="slot_number_6"><!-- break --></input>
+            <input type="hidden" value="" name="slot_number_7"><!-- break --></input>
+            <input type="hidden" value="" name="slot_number_8"><!-- break --></input>
+            <input type="hidden" value="" name="slot_number_9"><!-- break --></input>
+            <input type="hidden" name="f_num_rows" value="2"><!-- break --></input>
+            <input type="hidden" name="f_num_cols" value="2"><!-- break --></input>
+        </form>
+
+
+        <p>
+            This is where you can choose the content for your Today page!  Each
+            box represents a space that you can place your custom content. A
+            default selection is provided for you. Your content choices are on the
+            left.  To add content, simply click "Add A Row" and then drag your
+            content choice into any open box. To change the default content simply
+            drag a different content choice over any existing content you would
+            like to change.
+        </p>
+
+
+        <center>
+        <div id="bottomTable">
+        <form method="POST">
+        <table width="98%"  cellpadding="1" cellspacing="0" bgcolor="#FFFFFF" border="0">
+          <tr>
+            <td width="300"></td>
+            <td align="center">
+
+                <input type="button" value="Remove A Row" onClick="del_row()"><!-- break --></input>
+                <input type="button" value="Add A Row" onClick="add_row()"><!-- break --></input>
+
+            </td>
+            <td align="center">
+
+                <input type="button" value="Revert" onClick="set_menu()"><!-- break --></input>
+                <input type="button" value="Default" onClick="default_menu()"><!-- break --></input>
+                <input type="button" value="Clear" onClick="clear_menu()"><!-- break --></input>
+
+            </td>
+            <td align="center"  bgcolor="#FFFFFF">
+
+                <input type="button" value="Save" onClick="submit_query()"><!-- break --></input>
+                <input type="button" value="Cancel" onClick="window.close()"><!-- break --></input>
+
+            </td>
+          </tr>
+          <tr>
+            <td></td>
+            <td colspan="3" align="center">
+                <script language="Javascript">
+
+                <![CDATA[
+
+                  function display_help(topic) {
+                      window.open('/help/module.php3?topic=' + topic, 'helpwin','width=300,height=300,scrollbars=yes,resizable=yes');
+                  }
+
+                ]]>
+
+                </script>
+
+                <!--
+
+                FIX ME:  add this help item information back in.
+                <a href="javascript:void(0);"
+                   onClick="display_help('today')"
+                   onMouseOver="window.defaultStatus = 'Help on Today Page Content Customization'"
+                   onMouseOut="window.defaultStatus = '';">
+                <img src="/images/help_btn.gif" border="0"></img>
+                </a>
+                -->
+
+            </td>
+          </tr>
+        </table>
+        </form>
+        </div>
+
+        </center>
+
+        <div id="workSpace">
+          <div id="slot0Out">
+            <div id="slot0In"></div>
+            <div id="slot0Light"></div>
+          </div>
+          <div id="slot1Out">
+            <div id="slot1In"></div>
+            <div id="slot1Light"></div>
+          </div>
+          <div id="slot2Out">
+            <div id="slot2In"></div>
+            <div id="slot2Light"></div>
+          </div>
+          <div id="slot3Out">
+            <div id="slot3In"></div>
+            <div id="slot3Light"></div>
+          </div>
+          <div id="slot4Out">
+            <div id="slot4In"></div>
+            <div id="slot4Light"></div>
+          </div>
+          <div id="slot5Out">
+            <div id="slot5In"></div>
+            <div id="slot5Light"></div>
+          </div>
+          <div id="slot6Out">
+            <div id="slot6In"></div>
+            <div id="slot6Light"></div>
+          </div>
+          <div id="slot7Out">
+            <div id="slot7In"></div>
+            <div id="slot7Light"></div>
+          </div>
+          <div id="slot8Out">
+            <div id="slot8In"></div>
+            <div id="slot8Light"></div>
+          </div>
+          <div id="slot9Out">
+            <div id="slot9In"></div>
+            <div id="slot9Light"></div>
+          </div>
+        </div>
+
+
+        <div id="mouseweatherDRAG">
+          <div id="mouseweatherCont">
+            Weather
+          </div>
+        </div>
+
+        <div id="mousehoroscopesDRAG">
+          <div id="mousehoroscopesCont">
+            Horoscopes
+          </div>
+        </div>
+
+        <div id="mousemappingDRAG">
+          <div id="mousemappingCont">
+            Mapping
+          </div>
+        </div>
+
+        <div id="mouseypDRAG">
+          <div id="mouseypCont">
+            Yellow Pages
+          </div>
+        </div>
+
+        <div id="mousewebsitesDRAG">
+          <div id="mousewebsitesCont">
+            Favorite Websites
+          </div>
+        </div>
+
+        <div id="mousesearchDRAG">
+          <div id="mousesearchCont">
+            Web Search
+          </div>
+        </div>
+
+        <div id="mouseurlentryDRAG">
+          <div id="mouseurlentryCont">
+            Go to Website
+          </div>
+        </div>
+
+        <div id="mousefreshmeatDRAG">
+          <div id="mousefreshmeatCont">
+            FreshMeat News
+          </div>
+        </div>
+
+        <div id="mouseslashdotDRAG">
+          <div id="mouseslashdotCont">
+            Slashdot News
+          </div>
+        </div>
+
+        <div id="mousetopstoriesDRAG">
+          <div id="mousetopstoriesCont">
+            Top Stories
+          </div>
+        </div>
+
+        <div id="mousetopbusinessDRAG">
+          <div id="mousetopbusinessCont">
+            Top Business Stories
+          </div>
+        </div>
+
+        <div id="mouseuspoliticsDRAG">
+          <div id="mouseuspoliticsCont">
+            US Politics
+          </div>
+        </div>
+
+        <div id="mousebasketballDRAG">
+          <div id="mousebasketballCont">
+            Sports - Basketball
+          </div>
+        </div>
+
+        <div id="mousegolfDRAG">
+          <div id="mousegolfCont">
+            Sports - Golf
+          </div>
+        </div>
+
+        <div id="mouseentertainmentgeneralDRAG">
+          <div id="mouseentertainmentgeneralCont">
+            Entertainment
+          </div>
+        </div>
+
+        <div id="mousehealthDRAG">
+          <div id="mousehealthCont">
+            Consumer - Health
+          </div>
+        </div>
+
+        <div id="mouseartsandcultureDRAG">
+          <div id="mouseartsandcultureCont">
+            Arts and Culture
+          </div>
+        </div>
+
+        <div id="mousebookpublishingDRAG">
+          <div id="mousebookpublishingCont">
+            Book Publishing
+          </div>
+        </div>
+
+        <div id="mouseparentingDRAG">
+          <div id="mouseparentingCont">
+            Consumer Parenting
+          </div>
+        </div>
+
+        <div id="mouseznewsDRAG">
+          <div id="mouseznewsCont">
+            Zkey News
+          </div>
+        </div>
+
+
+        <script language="Javascript">
+
+          <![CDATA[
+
+          // activeEl must be set to something, so we can just use the stock module
+          // because it will most likely always be there.
+          activeEl = document.mousestockDRAG;
+
+          // GLOBAL variables:  Change these
+          elementheight = 20;
+          elementwidth  = 140;
+
+          rows         = 2;
+          cols         = 2;
+          max_rows     = 5;
+          min_rows     = 1;
+
+          menu_width   = 160;
+          right_margin = 10;
+          extra_height = 200;
+          slotspacing  = 5;
+          startX       = menu_width;
+          startY       = 95;
+
+          what_slot_we_are_in = -1;
+
+          slot         = Array(rows*cols);
+          pslot        = Array(2);
+
+          positions    = Array();
+
+          positions[0] = 'mousestockDRAG';
+          positions[1] = 'mouseweatherDRAG';
+          positions[2] = 'mousehoroscopesDRAG';
+          positions[3] = 'mousemappingDRAG';
+          positions[4] = 'mouseypDRAG';
+          positions[5] = 'mousewebsitesDRAG';
+          positions[6] = 'mousesearchDRAG';
+          positions[7] = 'mouseurlentryDRAG';
+          positions[8] = 'mousefreshmeatDRAG';
+          positions[9] = 'mouseslashdotDRAG';
+          positions[10] = 'mousetopstoriesDRAG';
+          positions[11] = 'mousetopbusinessDRAG';
+          positions[12] = 'mouseuspoliticsDRAG';
+          positions[13] = 'mousebasketballDRAG';
+          positions[14] = 'mousegolfDRAG';
+          positions[15] = 'mouseentertainmentgeneralDRAG';
+          positions[16] = 'mousehealthDRAG';
+          positions[17] = 'mouseartsandcultureDRAG';
+          positions[18] = 'mousebookpublishingDRAG';
+          positions[19] = 'mouseparentingDRAG';
+          positions[20] = 'mouseznewsDRAG';
+
+
+          function draw() {
+            head = document.workSpace;
+            // First, set size of workspace div
+            head.clip.height = window.innerHeight - extra_height;
+            head.clip.width = window.innerWidth - menu_width - right_margin;
+            head.moveTo(startX,startY);
+
+            document.bottomTable.moveTo(13,window.innerHeight - (extra_height-startY));
+
+            var i = Number();
+            var j = Number();
+            for(i = 0 ; i < rows ; i++) {
+              for(j = 0 ; j < cols ; j++) {
+                draw_slot(i,j);
+              }
+            }
+
+            for(i = 0 ; i < slot.length ; i++) {
+              if(slot[i]) {
+                set_slot(i,slot[i]);
+              }
+            }
+          }
+
+          function submit_query() {
+            for(i = 0 ; i < slot.length ; i++) {
+              if(slot[i]) {
+                document.selected_mods.elements[i].value = slot[i].slice(5,-4);
+              }
+            }
+            document.selected_mods.f_num_rows.value = rows;
+            document.selected_mods.f_num_cols.value = cols;
+            document.selected_mods.submit();
+          }
+
+          function set_menu() {
+            user_rows         = 2;
+            user_cols         = 2;
+
+            var i = Number();
+
+            if(user_rows < rows) {
+              iter = rows - user_rows;
+              for(i = 0 ; i < (iter) ; i++) {
+                del_row();
+              }
+            } else if(user_rows > rows) {
+              iter = user_rows - rows;
+              for(i = 0 ; i < (iter) ; i++) {
+                add_row();
+              }
+            }
+
+            for(i = 0 ; i < positions.length ; i++) {
+              recycle(positions[i]);
+            }
+            for(i = 0 ; i < slot.length ; i++) {
+              slot[i] = '';
+              unhighlight(i);
+            }
+                set_slot(0,'mouseweatherDRAG');
+            highlight(0);
+                  set_slot(1,'mousesearchDRAG');
+            highlight(1);
+                  set_slot(2,'mousestockDRAG');
+            highlight(2);
+                  set_slot(3,'mousehoroscopesDRAG');
+            highlight(3);
+                }
+
+          function default_menu() {
+            def_rows = 2;
+            def_cols = 2;
+
+            var i = Number();
+
+            if(def_rows < rows) {
+              iter = rows - def_rows;
+              for(i = 0 ; i < (iter) ; i++) {
+                del_row();
+              }
+            } else if(def_rows > rows) {
+              iter = def_rows - rows;
+              for(i = 0 ; i < (iter) ; i++) {
+                add_row();
+              }
+            }
+
+            for(i = 0 ; i < positions.length ; i++) {
+              recycle(positions[i]);
+            }
+            for(i = 0 ; i < slot.length ; i++) {
+              slot[i] = '';
+              unhighlight(i);
+              }
+                  set_slot(0,'mouseweatherDRAG');
+              highlight(0);
+                  set_slot(1,'mousesearchDRAG');
+              highlight(1);
+                  set_slot(2,'mousestockDRAG');
+              highlight(2);
+                  set_slot(3,'mousehoroscopesDRAG');
+              highlight(3);
+              }
+
+          function clear_menu() {
+            for(i = 0 ; i < positions.length ; i++) {
+              recycle(positions[i]);
+            }
+            for(i = 0 ; i < slot.length ; i++) {
+              slot[i] = '';
+              unhighlight(i);
+            }
+          }
+        ]]>
+
+        </script>
+
+        <script language="Javascript1.2" src="/content/dynamic/customizer/javascript/nn4.js">
+        </script>
+
+        <script language="Javascript1.2" src="/content/dynamic/customizer/javascript/dragDrop_nn4.js">
+        </script>
+
+        <!--
+        We need to initialized the menu here...
+        -->
+        <script language="Javascript">
+            set_menu();
+            draw();
+        </script>
+
+
+
+        </div>
+
+   </xsl:template>
+
+
+</xsl:stylesheet>
+
diff --git a/openjoda/content/dynamic/customizer/xsl/ui-generic-example.xml b/openjoda/content/dynamic/customizer/xsl/ui-generic-example.xml
new file mode 100644
index 0000000..23f4a92
--- /dev/null
+++ b/openjoda/content/dynamic/customizer/xsl/ui-generic-example.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<portlets user="default">
+
+	<controller name="org.apache.jetspeed.portal.controllers.CardPortletController">
+		<parameter name="parameter" value="pane"/>
+	</controller>
+
+    <!--
+	<control name="org.apache.jetspeed.portal.controls.PanedPortletControl"/>
+    -->
+
+	<skin>
+		<property name="selected-color" value="#990000"/>
+		<property name="background-color" value="FFFFFF"/>
+		<property name="title-color" value="#FFCC00"/>
+	</skin>
+
+	<portlets>
+
+		<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController">
+			<parameter name="sizes" value="66%,34%"/>
+			<parameter name="mode" value="row"/>
+		</controller>
+
+		<layout position="0"/>
+
+		<metainfo>
+			<title>Home Page</title>
+		</metainfo>
+
+		<skin>
+			<property name="background-color" value="#FFFFFF"/>
+		</skin>
+
+
+
+		<portlets>
+			<controller name="org.apache.jetspeed.portal.controllers.FlowPortletController"/>
+
+			<layout position="1"/>
+
+            <entry type="ref" parent="JetspeedContent">
+                <layout position="0"/>
+            </entry>
+        </portlets>
+
+		<portlets>
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+
+			<layout position="2"/>
+
+            	<entry type="ref" parent="Jetspeed">
+	        		<layout position="0"/>
+		        </entry>
+
+		        <entry type="ref" parent="Applications">
+	        		<layout position="1"/>
+	        	</entry>
+
+		        <entry type="ref" parent="Search">
+	        		<layout position="2"/>
+	        	</entry>
+
+        		<entry type="ref" parent="Slashdot">
+                    <layout position="3"/>
+        		</entry>
+
+		        <entry type="ref" parent="Mozilla">
+                    <layout position="4"/>
+		        </entry>
+
+		        <entry type="ref" parent="Apacheweek">
+      	    		<layout position="5"/>
+		        </entry>
+
+		        <entry type="ref" parent="XMLHack">
+                    <layout position="6"/>
+		        </entry>
+
+         </portlets>
+
+    </portlets>
+
+</portlets>
diff --git a/openjoda/content/dynamic/customizer/xsl/ui-generic.xsl b/openjoda/content/dynamic/customizer/xsl/ui-generic.xsl
new file mode 100644
index 0000000..c7dd1e3
--- /dev/null
+++ b/openjoda/content/dynamic/customizer/xsl/ui-generic.xsl
@@ -0,0 +1,123 @@
+<?xml version="1.0"?>
+
+<!--
+   Copyright (c) 1998 The Java Apache Project.  All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions
+   are met:
+
+   1. Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+
+   3. Every modification must be notified to the Java Apache Project
+      and redistribution of the modified code without prior notification
+      is not permitted in any form.
+
+   4. All advertising materials mentioning features or use of this
+      software must display the following acknowledgment:
+      "This product includes software developed by the Java Apache Project
+      (http://java.apache.org/)."
+
+   5. The names "Jetspeed", "Apache Jetspeed" and "Apache Jetspeed
+      Project" must not be used to endorse or promote products
+      derived from this software without prior written permission.
+
+   6. Redistributions of any form whatsoever must retain the following
+      acknowledgment:
+      "This product includes software developed by the Java Apache Project
+      (http://java.apache.org/)."
+
+   THIS SOFTWARE IS PROVIDED BY THE JAVA APACHE PROJECT "AS IS" AND ANY
+   EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+   PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE JAVA APACHE PROJECT OR
+   ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+   OF THE POSSIBILITY OF SUCH DAMAGE.
+
+   License version 1.0
+
+-->
+
+
+<!--
+Author: Kevin A. Burton (burton@apache.org)
+$Id$
+
+Note:  This stylesheet provides a UI for uplevel (IE/Netscape) clients to customize
+their portlet experience.  It uses a PSML document to provide a UI for the user.
+
+This is a simple server-based representation
+
+The content that this stylesheet expects is detailed in ui-generic-example.xml
+
+-->
+
+<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
+                version   = "1.0">
+
+    <xsl:output method="html"
+                indent="yes"/>
+
+
+    <xsl:template match="/portlets">
+
+        <table width="100%" bgcolor="red">
+
+            <tr>
+                <xsl:apply-templates select="/portlets/portlets/portlets"/>
+            </tr>
+
+        </table>
+
+    </xsl:template>
+
+
+    <!--
+    Assume that the second row of a PortletSet represents a column in this
+    scenario
+
+    -->
+    <xsl:template match="/portlets/portlets/portlets">
+
+        <td align="center" valign="top">
+            <table width="100%" align="center">
+
+                <xsl:apply-templates select="./entry"/>
+
+            </table>
+        </td>
+
+    </xsl:template>
+
+    <!--
+    Assume that the second row of a PortletSet represents a column in this
+    scenario
+
+    -->
+    <xsl:template match="entry">
+
+        <tr>
+        <td valign="top" align="center">
+
+            <xsl:value-of select="./@parent"/>
+
+        </td>
+        </tr>
+
+    </xsl:template>
+
+
+</xsl:stylesheet>
+
diff --git a/openjoda/content/dynamic/customizer/xsl/ws_ftp.log b/openjoda/content/dynamic/customizer/xsl/ws_ftp.log
new file mode 100644
index 0000000..cf7dc11
--- /dev/null
+++ b/openjoda/content/dynamic/customizer/xsl/ws_ftp.log
@@ -0,0 +1,30 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-drag-and-drop.xsl <-- canal /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-drag-and-drop.xsl
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic-example.xml <-- canal /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic-example.xml
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic.xsl <-- canal /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic.xsl
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-drag-and-drop.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-drag-and-drop.xsl
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic-example.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic-example.xml
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic.xsl
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl WS_FTP.LOG
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-drag-and-drop.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-drag-and-drop.xsl
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic-example.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic-example.xml
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic.xsl
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl WS_FTP.LOG
+2000.12.17 23:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-drag-and-drop.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-drag-and-drop.xsl
+2000.12.17 23:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic-example.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic-example.xml
+2000.12.17 23:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic.xsl
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/dynamic/customizer/xsl WS_FTP.LOG
+2000.12.18 14:10 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-drag-and-drop.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-drag-and-drop.xsl
+2000.12.18 14:10 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic-example.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic-example.xml
+2000.12.18 14:10 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic.xsl
+2000.12.18 14:10 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl WS_FTP.LOG
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-drag-and-drop.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-drag-and-drop.xsl
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic-example.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic-example.xml
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic.xsl
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-drag-and-drop.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-drag-and-drop.xsl
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic-example.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic-example.xml
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic.xsl
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl WS_FTP.LOG
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-drag-and-drop.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-drag-and-drop.xsl
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic-example.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic-example.xml
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsl\ui-generic.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsl ui-generic.xsl
diff --git a/openjoda/content/dynamic/customizer/xsp/ui.xml b/openjoda/content/dynamic/customizer/xsp/ui.xml
new file mode 100644
index 0000000..73ed362
--- /dev/null
+++ b/openjoda/content/dynamic/customizer/xsp/ui.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+
+<!--
+   Copyright (c) 1998 The Java Apache Project.  All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions
+   are met:
+
+   1. Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+
+   3. Every modification must be notified to the Java Apache Project
+      and redistribution of the modified code without prior notification
+      is not permitted in any form.
+
+   4. All advertising materials mentioning features or use of this
+      software must display the following acknowledgment:
+      "This product includes software developed by the Java Apache Project
+      (http://java.apache.org/)."
+
+   5. The names "Jetspeed", "Apache Jetspeed" and "Apache Jetspeed
+      Project" must not be used to endorse or promote products
+      derived from this software without prior written permission.
+
+   6. Redistributions of any form whatsoever must retain the following
+      acknowledgment:
+      "This product includes software developed by the Java Apache Project
+      (http://java.apache.org/)."
+
+   THIS SOFTWARE IS PROVIDED BY THE JAVA APACHE PROJECT "AS IS" AND ANY
+   EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+   PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE JAVA APACHE PROJECT OR
+   ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+   OF THE POSSIBILITY OF SUCH DAMAGE.
+
+   License version 1.0
+
+-->
+
+<?cocoon-process type="xsp"?>
+<?cocoon-process type="xslt"?>
+<?xml-stylesheet href="../xsl/ui-generic.xsl" type="text/xsl"?>
+
+<!--
+Author: Kevin A Burton (burton@apache.org)
+Version:  $Id$
+
+This provides a UI for managing a users Portlet customization
+
+-->
+
+<xsp:page language="java"
+          xmlns:xsp="http://www.apache.org/1999/XSP/Core">
+
+    <xsp:structure>
+        <xsp:include>org.apache.turbine.util.*</xsp:include>
+        <xsp:include>org.apache.jetspeed.daemon.*</xsp:include>
+    </xsp:structure>
+
+    <portlets>
+
+    </portlets>
+
+
+</xsp:page>
diff --git a/openjoda/content/dynamic/customizer/xsp/ws_ftp.log b/openjoda/content/dynamic/customizer/xsp/ws_ftp.log
new file mode 100644
index 0000000..9a59875
--- /dev/null
+++ b/openjoda/content/dynamic/customizer/xsp/ws_ftp.log
@@ -0,0 +1,14 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsp\ui.xml <-- canal /home/ktn10/project/openjoda/content/dynamic/customizer/xsp ui.xml
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsp\ui.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsp ui.xml
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsp WS_FTP.LOG
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsp\ui.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsp ui.xml
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsp WS_FTP.LOG
+2000.12.17 23:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsp\ui.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsp ui.xml
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsp\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/dynamic/customizer/xsp WS_FTP.LOG
+2000.12.18 14:10 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsp\ui.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsp ui.xml
+2000.12.18 14:10 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsp WS_FTP.LOG
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsp\ui.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsp ui.xml
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsp WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsp\ui.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsp ui.xml
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsp WS_FTP.LOG
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\customizer\xsp\ui.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/customizer/xsp ui.xml
diff --git a/openjoda/content/dynamic/index.xml b/openjoda/content/dynamic/index.xml
new file mode 100644
index 0000000..f1b43df
--- /dev/null
+++ b/openjoda/content/dynamic/index.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="/content/dynamic/index.xsl" type="text/xsl"?>
+<?cocoon-process type="xslt"?>
+
+<example>
+
+This is a test of Cocoon
+
+</example>
diff --git a/openjoda/content/dynamic/index.xsl b/openjoda/content/dynamic/index.xsl
new file mode 100644
index 0000000..8c6e1c3
--- /dev/null
+++ b/openjoda/content/dynamic/index.xsl
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="example">
+
+    <p>
+    <xsl:value-of select="."/>
+    </p>
+
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/openjoda/content/dynamic/portletbrowser/xsp/index.xml b/openjoda/content/dynamic/portletbrowser/xsp/index.xml
new file mode 100644
index 0000000..f5259ac
--- /dev/null
+++ b/openjoda/content/dynamic/portletbrowser/xsp/index.xml
@@ -0,0 +1,145 @@
+<?xml version="1.0"?>
+
+
+<?cocoon-process type="xsp"?>
+<?cocoon-process type="xslt"?>
+<?xml-stylesheet href="index.xsl" type="text/xsl"?>
+
+<!--
+Author: Kevin A Burton (burton@apache.org)
+Version:  $Id$
+-->
+
+<xsp:page language="java"
+          xmlns:xsp="http://www.apache.org/1999/XSP/Core">
+
+    <xsp:structure>
+        <xsp:include>org.apache.turbine.util.*</xsp:include>
+        <xsp:include>org.apache.jetspeed.daemon.*</xsp:include>
+        <xsp:include>org.apache.jetspeed.daemon.impl.*</xsp:include>
+        <xsp:include>org.apache.jetspeed.portal.util.*</xsp:include>
+        <xsp:include>org.apache.jetspeed.portal.*</xsp:include>
+        <xsp:include>org.apache.jetspeed.portal.factory.*</xsp:include>
+        <xsp:include>org.apache.jetspeed.registry.*</xsp:include>
+        <xsp:include>org.apache.jetspeed.util.servlet.*</xsp:include>
+    </xsp:structure>
+
+    <portletlist>
+
+        <!--
+        FIX ME: The explicit use of JetspeedServletConfig() here is *bad*.
+        Remove this by adding an explicit "config" object to the Cocoon XSP
+        specification
+        -->
+
+        <xsp:logic>
+        RunData rundata = RunDataFactory.getRunData( request, response, new JetspeedServletConfig() );
+        </xsp:logic>
+
+
+        <xsp:logic>
+            int total = PortletRegistry.getInstance().getEntryCount();
+            int start = PortletBrowser.getStart( rundata );
+            int end = PortletBrowser.getEnd( rundata );
+            int count = PortletBrowser.getCount();
+
+            Portlet[] portlets = PortletBrowser.getPortlets( start, count, rundata );
+        </xsp:logic>
+
+
+        <total>
+            <xsp:expr>total</xsp:expr>
+        </total>
+
+        <start>
+            <xsp:expr>start</xsp:expr>
+        </start>
+
+        <end>
+            <xsp:expr>end</xsp:expr>
+        </end>
+
+
+        <browse><xsp:expr>PortletURIManager.getPortletMaxURI( "PortletBrowser" )</xsp:expr></browse>
+        <search><xsp:expr>PortletURIManager.getPortletMaxURI( "PortletSearch" )</xsp:expr></search>
+        <url><xsp:expr>rundata.getParameters().getString("url")</xsp:expr></url>
+
+        <nextpage>
+
+
+
+
+            <url><xsp:expr>PortletURIManager.getPortletMaxURI( "PortletBrowser" )</xsp:expr></url>
+            <start><xsp:expr>start + count</xsp:expr></start>
+
+            <end><xsp:expr>end + count</xsp:expr></end>
+
+
+            <!--
+            Now add the parameters that you need to tack on to the end of the form
+            in the next page
+            -->
+
+            <!--
+            FIX ME:  don't use the request object here.  Add a method in Turbine's
+            ParamaterParser so that you can do this withoiut having everything
+            typed
+            -->
+            <xsp:logic>
+                <![CDATA[
+                Enumeration enum = rundata.getRequest().getParameterNames();
+
+                while( enum.hasMoreElements() ) {
+                    String name = (String)enum.nextElement();
+                    if(name.equals("start")) continue;
+                    if(name.equals("end")) continue;
+                ]]>
+
+                    <parameter>
+
+                        <xsp:attribute name="name"><xsp:expr>name</xsp:expr></xsp:attribute>
+
+                        <xsp:attribute name="value"><xsp:expr>rundata.getRequest().getParameter( name )</xsp:expr></xsp:attribute>
+
+                    </parameter>
+
+                }
+            </xsp:logic>
+
+
+        </nextpage>
+
+            <xsp:logic><![CDATA[
+            for ( int i = 0; i < portlets.length; ++i ) { ]]>
+
+                <entry>
+
+                    <xsp:logic>
+                        Log.note( "PortletBrowser: browsing portlet: " + (start + i) + " of a total of " + total );
+                    </xsp:logic>
+
+                    <title>
+                       <xsp:expr>portlets[i].getTitle()</xsp:expr>
+                    </title>
+
+                    <description>
+                       <xsp:expr>portlets[i].getDescription()</xsp:expr>
+                    </description>
+
+                    <!-- Build out the preview URL -->
+                    <preview>
+                        <xsp:expr>
+                            PortletURIManager.getPortletEditURI( portlets[i] ).toString()
+                        </xsp:expr>
+                    </preview>
+
+                </entry>
+
+            }
+            </xsp:logic>
+
+
+    </portletlist>
+
+
+</xsp:page>
diff --git a/openjoda/content/dynamic/portletbrowser/xsp/index.xsl b/openjoda/content/dynamic/portletbrowser/xsp/index.xsl
new file mode 100644
index 0000000..dcde5a9
--- /dev/null
+++ b/openjoda/content/dynamic/portletbrowser/xsp/index.xsl
@@ -0,0 +1,107 @@
+<?xml version="1.0"?>
+
+<!--
+Author: Kevin A Burton (burton@apache.org)
+Version:  $Id$
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+
+    <xsl:template match="portletlist">
+
+
+
+        <xsl:processing-instruction name="cocoon-format">type="text/html"</xsl:processing-instruction>
+
+        <div>
+
+
+            <ul>
+                <br>
+                <p>
+                This page allows you to browse available Channels.  When you see
+                one that you find interesting, select "Preview" and you can view
+                what it will look like within Jetspeed and subscribe to it.  You
+                can also <a href="{./search}">search</a> for Channels.
+                </p>
+                </br>
+
+                <p>
+                <xsl:value-of select="./start"/>
+                through
+                <xsl:value-of select="./end"/>
+                of <xsl:value-of select="./total"/> channels...
+                </p>
+            </ul>
+
+            <ul>
+                <xsl:apply-templates select="./entry"/>
+
+                <xsl:apply-templates select="./nextpage"/>
+            </ul>
+
+        </div>
+
+    </xsl:template>
+
+
+    <xsl:template match="entry">
+        <li>
+            <p>
+
+            <xsl:choose>
+                <xsl:when test="./link != ''">
+                    <b>
+                    <a href="{./link}">
+                    <xsl:value-of select="./title"/>
+                    </a>
+                    :</b>
+                    &#160;
+                </xsl:when>
+
+                <xsl:otherwise>
+                    <b>
+                    <xsl:value-of select="./title"/>
+                    :</b>
+
+                </xsl:otherwise>
+
+            </xsl:choose>
+
+            <xsl:value-of select="./description"/>
+
+            <br>
+                <a href="{./preview}">Preview</a>
+            </br>
+
+            </p>
+        </li>
+    </xsl:template>
+
+    <xsl:template match="nextpage">
+
+
+            <form>
+
+                <xsl:attribute name="action">
+                <xsl:value-of disable-output-escaping="yes" select="./url"/></xsl:attribute>
+
+                <input type="hidden" name="start" value="{./start}"></input>
+                <input type="hidden" name="end" value="{./end}"></input>
+                <input type="submit" value="Next page"></input>
+
+                <xsl:apply-templates select="./parameter"/>
+
+            </form>
+
+
+    </xsl:template>
+
+
+    <xsl:template match="parameter">
+        <input type="hidden" name="{./@name}" value="{./@value}"></input>
+    </xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/openjoda/content/dynamic/portletbrowser/xsp/search.xml b/openjoda/content/dynamic/portletbrowser/xsp/search.xml
new file mode 100644
index 0000000..adf7cd1
--- /dev/null
+++ b/openjoda/content/dynamic/portletbrowser/xsp/search.xml
@@ -0,0 +1,175 @@
+<?xml version="1.0"?>
+
+
+<?cocoon-process type="xsp"?>
+<?cocoon-process type="xslt"?>
+<?xml-stylesheet href="index.xsl" type="text/xsl"?>
+
+<!--
+Author: Kevin A Burton (burton@apache.org)
+Version:  $Id$
+-->
+
+<xsp:page language="java"
+          xmlns:xsp="http://www.apache.org/1999/XSP/Core">
+
+    <xsp:structure>
+        <xsp:include>org.apache.turbine.util.*</xsp:include>
+        <xsp:include>org.apache.jetspeed.daemon.*</xsp:include>
+        <xsp:include>org.apache.jetspeed.daemon.impl.*</xsp:include>
+        <xsp:include>org.apache.jetspeed.portal.util.*</xsp:include>
+        <xsp:include>org.apache.jetspeed.portal.*</xsp:include>
+        <xsp:include>org.apache.jetspeed.portal.factory.*</xsp:include>
+        <xsp:include>org.apache.jetspeed.util.servlet.*</xsp:include>
+    </xsp:structure>
+
+    <portletlist>
+
+        <!--
+        FIX ME: The explicit use of JetspeedServletConfig() here is *bad*.
+        Remove this by adding an explicit "config" object to the Cocoon XSP
+        specification
+        -->
+
+        <xsp:logic>
+        RunData rundata = RunDataFactory.getRunData( request, response, new JetspeedServletConfig() );
+        </xsp:logic>
+
+
+        <xsp:logic>
+                <![CDATA[
+            int total = 0;
+            int start = 0;
+            int end = 0;
+            int count = 0;
+
+            Portlet[] portlets = new Portlet[0];
+
+            String query = rundata.getParameters().getString("query");
+
+            if ( query != null ) {
+
+                portlets = PortletBrowser.search( query , rundata );
+
+	        start = rundata.getParameters().getInt("start");
+	        end = rundata.getParameters().getInt("end");
+		if(end == 0) {
+		   end = PortletBrowser.getEnd( rundata );
+		   }
+	        int from = start;
+	        if(start > portlets.length)
+                  {
+	            from = portlets.length;
+	          }
+	        int upTo = end;
+	        if (portlets.length < end)
+	          {
+	            upTo = portlets.length;
+	          }
+
+                start = from;
+                total = portlets.length;
+                end = upTo;
+
+            }
+                ]]>
+
+        </xsp:logic>
+
+
+        <total>
+            <xsp:expr>total</xsp:expr>
+        </total>
+
+        <start>
+            <xsp:expr>start</xsp:expr>
+        </start>
+
+        <end>
+            <xsp:expr>end</xsp:expr>
+        </end>
+
+        <browse><xsp:expr>PortletURIManager.getPortletMaxURI( "PortletBrowser" )</xsp:expr></browse>
+        <search><xsp:expr>PortletURIManager.getPortletMaxURI( "PortletSearch" )</xsp:expr></search>
+        <url><xsp:expr>rundata.getParameters().getString("url")</xsp:expr></url>
+	<query><xsp:expr>query</xsp:expr></query>
+        <nextpage>
+
+
+
+            <url><xsp:expr>PortletURIManager.getPortletMaxURI( "PortletSearch" )</xsp:expr></url>
+
+
+            <start><xsp:expr>start + PortletBrowser.getCount()</xsp:expr></start>
+
+            <end><xsp:expr>end + PortletBrowser.getCount()</xsp:expr></end>
+
+
+            <!--
+            Now add the parameters that you need to tack on to the end of the form
+            in the next page
+            -->
+
+            <!--
+            FIX ME:  don't use the request object here.  Add a method in Turbine's
+            ParamaterParser so that you can do this withoiut having everything
+            typed
+            -->
+            <xsp:logic>
+                <![CDATA[
+                Enumeration enum = rundata.getRequest().getParameterNames();
+
+                while( enum.hasMoreElements() ) {
+                    String name = (String)enum.nextElement();
+                    if(name.equals("start")) continue;
+                    if(name.equals("end")) continue;
+                ]]>
+
+                    <parameter>
+
+                        <xsp:attribute name="name"><xsp:expr>name</xsp:expr></xsp:attribute>
+
+                        <xsp:attribute name="value"><xsp:expr>rundata.getRequest().getParameter( name )</xsp:expr></xsp:attribute>
+
+                    </parameter>
+
+                }
+            </xsp:logic>
+
+
+        </nextpage>
+
+            <xsp:logic><![CDATA[
+            for ( int i = start; i < end ; ++i ) { ]]>
+
+                <entry>
+
+                    <xsp:logic>
+                        Log.note( "PortletBrowser: browsing portlet: " + (start + i) + " of a total of " + total );
+                    </xsp:logic>
+
+                    <title>
+                       <xsp:expr>portlets[i].getTitle()</xsp:expr>
+                    </title>
+
+                    <description>
+                       <xsp:expr>portlets[i].getDescription()</xsp:expr>
+                    </description>
+
+                    <!-- Build out the preview URL -->
+                    <preview>
+                        <xsp:expr>
+                            PortletURIManager.getPortletEditURI( portlets[i] ).toString()
+                        </xsp:expr>
+                    </preview>
+
+                </entry>
+
+            }
+            </xsp:logic>
+
+
+    </portletlist>
+
+
+</xsp:page>
diff --git a/openjoda/content/dynamic/portletbrowser/xsp/search.xsl b/openjoda/content/dynamic/portletbrowser/xsp/search.xsl
new file mode 100644
index 0000000..e2df0a3
--- /dev/null
+++ b/openjoda/content/dynamic/portletbrowser/xsp/search.xsl
@@ -0,0 +1,126 @@
+<?xml version="1.0"?>
+
+<!--
+Author: Kevin A Burton (burton@apache.org)
+Version:  $Id$
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+
+    <xsl:template match="portletlist">
+
+        <xsl:processing-instruction name="cocoon-format">type="text/html"</xsl:processing-instruction>
+
+        <div>
+
+
+            <ul>
+                <br>
+                <p>
+                Please enter a search criteria.  You can search with the
+                Title, Description or URL of the Channel.
+
+                </p>
+
+
+                <p>
+                <form action="{./search}">
+                    <input type="text" name="query" value="{./query}"></input>
+                    <br>
+                    <input type="submit" name="submit" value="Search"></input>
+                    </br>
+                    <input type="hidden" name="url" value="{./url}"></input>
+                </form>
+                </p>
+                </br>
+            </ul>
+
+<xsl:choose>
+<xsl:when test="total > 0">
+                <p>
+                <xsl:value-of select="./start"/>
+                through
+                <xsl:value-of select="./end"/>
+                of <xsl:value-of select="./total"/> channels...
+                </p>
+
+            <ul>
+                <xsl:apply-templates select="./entry"/>
+<xsl:if test="total > end">
+                <xsl:apply-templates select="./nextpage"/>
+</xsl:if>
+            </ul>
+
+</xsl:when>
+<xsl:otherwise>
+<xsl:if test="query != ''">
+	<b>No results found!</b>
+</xsl:if>
+</xsl:otherwise>
+</xsl:choose>
+        </div>
+
+    </xsl:template>
+
+
+    <xsl:template match="entry">
+        <li>
+            <p>
+
+            <xsl:choose>
+                <xsl:when test="./link != ''">
+                    <b>
+                    <a href="{./link}">
+                    <xsl:value-of select="./title"/>
+                    </a>
+                    :</b>
+                    &#160;
+                </xsl:when>
+
+                <xsl:otherwise>
+                    <b>
+                    <xsl:value-of select="./title"/>
+                    :</b>
+
+                </xsl:otherwise>
+
+            </xsl:choose>
+
+            <xsl:value-of select="./description"/>
+
+            <br>
+                <a href="{./preview}">Preview</a>
+            </br>
+
+            </p>
+        </li>
+    </xsl:template>
+
+    <xsl:template match="nextpage">
+
+
+            <form>
+
+                <xsl:attribute name="action">
+                <xsl:value-of disable-output-escaping="yes" select="./url"/>
+                </xsl:attribute>
+
+                <input type="hidden" name="start" value="{./start}"></input>
+                <input type="hidden" name="end" value="{./end}"></input>
+                <input type="submit" value="Next page"></input>
+
+                <xsl:apply-templates select="./parameter"/>
+
+            </form>
+
+
+    </xsl:template>
+
+
+    <xsl:template match="parameter">
+        <input type="hidden" name="{./@name}" value="{./@value}"></input>
+    </xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/openjoda/content/dynamic/portletbrowser/xsp/ws_ftp.log b/openjoda/content/dynamic/portletbrowser/xsp/ws_ftp.log
new file mode 100644
index 0000000..6014294
--- /dev/null
+++ b/openjoda/content/dynamic/portletbrowser/xsp/ws_ftp.log
@@ -0,0 +1,38 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xml <-- canal /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xml
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xsl <-- canal /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xsl
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xml <-- canal /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xml
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xsl <-- canal /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xsl
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xml
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xsl
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xml
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xsl
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp WS_FTP.LOG
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xml
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xsl
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xml
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xsl
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp WS_FTP.LOG
+2000.12.17 23:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xml
+2000.12.17 23:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xsl
+2000.12.17 23:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xml
+2000.12.17 23:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xsl
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp WS_FTP.LOG
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xml
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xsl
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xml
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xsl
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp WS_FTP.LOG
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xml
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xsl
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xml
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xsl
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xml
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xsl
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xml
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xsl
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp WS_FTP.LOG
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xml
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp index.xsl
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xml
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\portletbrowser\xsp\search.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/portletbrowser/xsp search.xsl
diff --git a/openjoda/content/dynamic/test/page-html.xsl b/openjoda/content/dynamic/test/page-html.xsl
new file mode 100644
index 0000000..7fb4ba7
--- /dev/null
+++ b/openjoda/content/dynamic/test/page-html.xsl
@@ -0,0 +1,120 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:template match="page">
+   <xsl:processing-instruction name="cocoon-format">type="text/html"</xsl:processing-instruction>
+   <html>
+    <head>
+     <title><xsl:value-of select="title"/></title>
+    </head>
+    <body>
+    <p><br/></p>
+    <center>
+     <table border="0" width="60%" bgcolor="#000000" cellspacing="0" cellpadding="0">
+      <tr>
+       <td width="100%">
+        <table border="0" width="100%" cellpadding="4">
+         <tr>
+          <td width="100%" bgcolor="#c0c0c0" align="right" valign="middle">
+           <big><big><xsl:value-of select="title"/></big></big>
+          </td>
+         </tr>
+         <tr>
+          <td width="100%" bgcolor="#ffffff">
+           <xsl:apply-templates/>
+          </td>
+         </tr>
+        </table>
+       </td>
+      </tr>
+     </table>
+    </center>
+
+    <p align="center">
+     <font size="-1">
+      Copyright &#169; @year@ <a href="http://xml.apache.org">The Apache XML Project</a>.<br/>
+      All rights reserved.
+     </font>
+    </p>
+
+    </body>
+   </html>
+  </xsl:template>
+
+  <xsl:template match="title|author">
+   <!-- ignore -->
+  </xsl:template>
+
+  <xsl:template match="p">
+   <xsl:copy>
+    <xsl:apply-templates/>
+   </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="em">
+    <strong><xsl:apply-templates/></strong>
+  </xsl:template>
+
+  <xsl:template match="link">
+    <a href="{@href}"><xsl:apply-templates/></a>
+  </xsl:template>
+
+  <xsl:template match="list">
+   <center>
+    <table border="0" width="90%" bgcolor="#000000" cellspacing="0" cellpadding="0">
+     <tr>
+      <td width="100%">
+       <table border="0" width="100%" cellpadding="4">
+        <tr>
+         <th bgcolor="#e0e0e0" colspan="2" align="right"><xsl:value-of select="@title"/></th>
+        </tr>
+        <xsl:apply-templates/>
+       </table>
+      </td>
+     </tr>
+    </table>
+   </center>
+  </xsl:template>
+
+  <xsl:template match="element">
+   <tr>
+    <td>
+     <xsl:choose>
+      <xsl:when test="position() mod 2 = 0">
+       <xsl:attribute name="bgcolor">#f0f0f0</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+       <xsl:attribute name="bgcolor">#ffffff</xsl:attribute>
+      </xsl:otherwise>
+     </xsl:choose>
+     <xsl:value-of select="@name"/>
+    </td>
+    <td width="100%">
+     <xsl:choose>
+      <xsl:when test="position() mod 2 = 0">
+       <xsl:attribute name="bgcolor">#f0f0f0</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+       <xsl:attribute name="bgcolor">#ffffff</xsl:attribute>
+      </xsl:otherwise>
+     </xsl:choose>
+     <xsl:choose>
+      <xsl:when test=".//item">
+       <ul>
+        <xsl:for-each select=".//item">
+         <li>
+          <xsl:apply-templates/>
+         </li>
+        </xsl:for-each>
+       </ul>
+      </xsl:when>
+      <xsl:otherwise>
+       <xsl:apply-templates/><xsl:text>&#160;</xsl:text>
+      </xsl:otherwise>
+     </xsl:choose>
+    </td>
+   </tr>
+  </xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/openjoda/content/dynamic/test/page-xsp.xsl b/openjoda/content/dynamic/test/page-xsp.xsl
new file mode 100644
index 0000000..ba3a1b2
--- /dev/null
+++ b/openjoda/content/dynamic/test/page-xsp.xsl
@@ -0,0 +1,101 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0"
+   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+   xmlns:xsp="http://www.apache.org/1999/XSP/Core"
+>
+
+  <xsl:template match="page">
+
+    <xsl:processing-instruction name="cocoon-process">type="xsp"</xsl:processing-instruction>
+
+    <xsl:processing-instruction name="cocoon-process">type="xslt"</xsl:processing-instruction>
+    <xsl:processing-instruction name="xml-stylesheet">href="file:///d:/www/localhost/content/dynamic/test/page-html.xsl" type="text/xsl"</xsl:processing-instruction>
+
+    <xsp:page language="java" xmlns:xsp="http://www.apache.org/1999/XSP/Core">
+
+    <xsp:logic>
+      static private int counter = 0;
+
+      private synchronized int count() {
+        return counter++;
+      }
+
+      private String normalize(String string) {
+        if (string == null) return "";
+        else return string;
+      }
+    </xsp:logic>
+
+    <xsl:copy>
+     <xsl:apply-templates/>
+    </xsl:copy>
+
+   </xsp:page>
+
+  </xsl:template>
+
+  <xsl:template match="count">
+   <xsp:expr>count()</xsp:expr>
+  </xsl:template>
+
+  <xsl:template match="request-headers">
+       <xsp:logic><![CDATA[
+         Enumeration e = request.getHeaderNames();
+         if ((e != null) && (e.hasMoreElements())) { ]]>
+            <p>Here are the request headers...</p>
+            <list title="Request Headers">
+                <xsp:logic><![CDATA[
+                  while (e.hasMoreElements()) {
+                    String k = (String) e.nextElement(); ]]>
+                    <element>
+                        <xsp:attribute name="name">
+                            <xsp:expr>k</xsp:expr>
+                        </xsp:attribute>
+                        <xsp:expr>request.getHeader(k)</xsp:expr>
+                    </element>
+                  }
+                </xsp:logic>
+            </list>
+          }
+        </xsp:logic>
+  </xsl:template>
+
+  <xsl:template match="servlet-parameters">
+   <xsp:logic><![CDATA[
+          e = request.getParameterNames();
+          if ((e != null) && (e.hasMoreElements())) { ]]>
+            <p>and here the servlet parameters that were passed along
+            with the request...</p>
+            <list title="Servlet Parameters">
+                <xsp:logic><![CDATA[
+                  while (e.hasMoreElements()) {
+                    String k = (String) e.nextElement();
+                    String val = request.getParameter(k);
+                    String vals[] = request.getParameterValues(k); ]]>
+                    <element>
+                        <xsp:attribute name="name">
+                            <xsp:expr>k</xsp:expr>
+                        </xsp:attribute>
+                        <xsp:logic><![CDATA[
+                            for(int i = 0; i < vals.length; i++) { ]]>
+                                <item>
+                                    <xsp:expr>vals[i]</xsp:expr>
+                                </item>
+                            }
+                        </xsp:logic>
+                    </element>
+                  }
+                </xsp:logic>
+            </list>
+          }
+        </xsp:logic>
+  </xsl:template>
+
+  <xsl:template match="*|@*|text()">
+   <xsl:copy>
+    <xsl:apply-templates select="*|@*|text()"/>
+   </xsl:copy>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/openjoda/content/dynamic/test/page.xml b/openjoda/content/dynamic/test/page.xml
new file mode 100644
index 0000000..383c51e
--- /dev/null
+++ b/openjoda/content/dynamic/test/page.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0"?>
+
+<!-- Author: Stefano Mazzocchi "stefano@apache.org" -->
+<!-- Version: $Id$ -->
+
+<?cocoon-process type="xsp"?>
+<?cocoon-process type="xslt"?>
+<?xml-stylesheet href="file:///d:/www/localhost/content/dynamic/test/xsp/page-html.xsl" type="text/xsl"?>
+
+<xsp:page
+  language="java"
+  xmlns:xsp="http://www.apache.org/1999/XSP/Core"
+>
+
+ <xsp:logic>
+  static private int counter = 0;
+
+  private synchronized int count() {
+   return counter++;
+  }
+
+  private String normalize(String string) {
+   if (string == null) return "";
+   else return string;
+  }
+ </xsp:logic>
+
+ <page>
+  <title>First XSP Page</title>
+  <author>
+   <name>Stefano Mazzocchi</name>
+   <address>stefano@apache.org</address>
+  </author>
+
+  <p>Hi, I'm your first XSP page ever.</p>
+
+  <p>I've been requested <xsp:expr>count()</xsp:expr> times.</p>
+
+  <p>The content you are seeing in this page is provided to you
+  by an XML content producer that was compiled into Java bytecode
+  and executed at request time. This allows greater flexibility and
+  ease of use for page programmers without any performance degradation
+  since all XML parsing and such is precompiled and it's avoided at
+  request time.</p>
+
+  <p>Let's show some useful information with expression evaluation...</p>
+
+  <list title="Request Data">
+   <element name="Request method"><xsp:expr>normalize(request.getMethod())</xsp:expr></element>
+   <element name="Request URI"><xsp:expr>normalize(request.getRequestURI())</xsp:expr></element>
+   <element name="Request protocol"><xsp:expr>normalize(request.getProtocol())</xsp:expr></element>
+   <element name="Servlet path"><xsp:expr>normalize(request.getServletPath())</xsp:expr></element>
+   <element name="Path info"><xsp:expr>normalize(request.getPathInfo())</xsp:expr></element>
+   <element name="Path translated"><xsp:expr>normalize(request.getPathTranslated())</xsp:expr></element>
+   <element name="Query string"><xsp:expr>normalize(request.getQueryString())</xsp:expr></element>
+   <element name="Content length"><xsp:expr>request.getContentLength()</xsp:expr></element>
+   <element name="Content type"><xsp:expr>normalize(request.getContentType())</xsp:expr></element>
+   <element name="Server name"><xsp:expr>normalize(request.getServerName())</xsp:expr></element>
+   <element name="Server port"><xsp:expr>request.getServerPort()</xsp:expr></element>
+   <element name="Remote user"><xsp:expr>normalize(request.getRemoteUser())</xsp:expr></element>
+   <element name="Remote address"><xsp:expr>normalize(request.getRemoteAddr())</xsp:expr></element>
+   <element name="Remote host"><xsp:expr>normalize(request.getRemoteHost())</xsp:expr></element>
+   <element name="Authorization scheme"><xsp:expr>normalize(request.getAuthType())</xsp:expr></element>
+  </list>
+
+  <p>Ok. Now that you know how logic can be transformed into content, let's
+  add some juice and mix logic with content generation
+  in a way that allows you to forget about what method is used to generate and
+  handle the content as XML and concentrate on having your work done.
+  Note, how XSP don't allow you to explicitly write something on the response
+  from the logic realm: this is one of the major
+  differences between XSP and other server pages technologies and allows
+  further processing of the produced content, as required, for example, by
+  XSL-transformations.</p>
+
+  <xsp:logic><![CDATA[
+   Enumeration e = request.getHeaderNames();
+   if ((e != null) && (e.hasMoreElements())) { ]]>
+    <p>Here are the request headers...</p>
+    <list title="Request Headers">
+     <xsp:logic><![CDATA[
+      while (e.hasMoreElements()) {
+       String k = (String) e.nextElement(); ]]>
+       <element>
+        <xsp:attribute name="name">
+         <xsp:expr>k</xsp:expr>
+        </xsp:attribute>
+        <xsp:expr>request.getHeader(k)</xsp:expr>
+       </element>
+      }
+     </xsp:logic>
+    </list>
+   }
+  </xsp:logic>
+
+  <xsp:logic><![CDATA[
+   e = request.getParameterNames();
+   if ((e != null) && (e.hasMoreElements())) { ]]>
+    <p>and here the servlet parameters that were passed along
+    with the request...</p>
+
+    <list title="Servlet Parameters">
+     <xsp:logic><![CDATA[
+      while (e.hasMoreElements()) {
+       String k = (String) e.nextElement();
+       String val = request.getParameter(k);
+       String vals[] = request.getParameterValues(k); ]]>
+       <element>
+        <xsp:attribute name="name">
+         <xsp:expr>k</xsp:expr>
+        </xsp:attribute>
+        <xsp:logic><![CDATA[
+          for(int i = 0; i < vals.length; i++) { ]]>
+           <item>
+            <xsp:expr>vals[i]</xsp:expr>
+           </item>
+          }
+        </xsp:logic>
+       </element>
+      }
+     </xsp:logic>
+    </list>
+   }
+  </xsp:logic>
+
+  <p>Enjoy XSP!</p>
+ </page>
+</xsp:page>
diff --git a/openjoda/content/dynamic/test/page2.xml b/openjoda/content/dynamic/test/page2.xml
new file mode 100644
index 0000000..c6b65d9
--- /dev/null
+++ b/openjoda/content/dynamic/test/page2.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+
+<!-- Author: Stefano Mazzocchi "stefano@apache.org" -->
+<!-- Version: $Id$ -->
+
+<?cocoon-process type="xslt"?>
+<?xml-stylesheet href="page-xsp.xsl" type="text/xsl"?>
+
+<page>
+  <title>First XSP Page</title>
+  <author>
+   <name>Stefano Mazzocchi</name>
+   <address>stefano@apache.org</address>
+  </author>
+
+  <p>Hi, I'm your first XSP page ever.</p>
+
+  <count/>
+
+  <p>The content you are seeing in this page is provided to you
+  by an XML content producer that was compiled into Java bytecode
+  and executed at request time. This allows greater flexibility and
+  ease of use for page programmers without any performance degradation
+  since all XML parsing and such is precompiled and it's avoided at
+  request time.</p>
+
+  <p>Let's show some useful information with expression evaluation...</p>
+
+  <request-headers/>
+
+  <servlet-parameters/>
+
+  <p>Enjoy XSP!</p>
+</page>
diff --git a/openjoda/content/dynamic/test/ws_ftp.log b/openjoda/content/dynamic/test/ws_ftp.log
new file mode 100644
index 0000000..c378c20
--- /dev/null
+++ b/openjoda/content/dynamic/test/ws_ftp.log
@@ -0,0 +1,38 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-html.xsl <-- canal /home/ktn10/project/openjoda/content/dynamic/test page-html.xsl
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-xsp.xsl <-- canal /home/ktn10/project/openjoda/content/dynamic/test page-xsp.xsl
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page.xml <-- canal /home/ktn10/project/openjoda/content/dynamic/test page.xml
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page2.xml <-- canal /home/ktn10/project/openjoda/content/dynamic/test page2.xml
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-html.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page-html.xsl
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-xsp.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page-xsp.xsl
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page.xml
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page2.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page2.xml
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test WS_FTP.LOG
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-html.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page-html.xsl
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-xsp.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page-xsp.xsl
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page.xml
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page2.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page2.xml
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test WS_FTP.LOG
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-html.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page-html.xsl
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-xsp.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page-xsp.xsl
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page.xml
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page2.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page2.xml
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/dynamic/test WS_FTP.LOG
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-html.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page-html.xsl
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-xsp.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page-xsp.xsl
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page.xml
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page2.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page2.xml
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test WS_FTP.LOG
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-html.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page-html.xsl
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-xsp.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page-xsp.xsl
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page.xml
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page2.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page2.xml
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-html.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page-html.xsl
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-xsp.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page-xsp.xsl
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page.xml
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page2.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page2.xml
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test WS_FTP.LOG
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-html.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page-html.xsl
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page-xsp.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page-xsp.xsl
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page.xml
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\page2.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test page2.xml
diff --git a/openjoda/content/dynamic/test/xsp/clean-page.xml b/openjoda/content/dynamic/test/xsp/clean-page.xml
new file mode 100644
index 0000000..c70ac60
--- /dev/null
+++ b/openjoda/content/dynamic/test/xsp/clean-page.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0"?>
+
+<!-- Author: Stefano Mazzocchi "stefano@apache.org" -->
+<!-- Version: $Id$ -->
+
+<?cocoon-process type="xslt"?>
+<?xml-stylesheet href="page-xsp.xsl" type="text/xsl"?>
+
+<page>
+ <title>First XSP Page</title>
+ <author>
+  <name>Stefano Mazzocchi</name>
+  <address>stefano@apache.org</address>
+ </author>
+
+ <p>Hi, I'm your first XSP page ever.</p>
+
+ <p>I've been requested <count/> times.</p>
+
+ <p>The content you are seeing in this page is provided to you
+ by an XML content producer that was compiled into Java bytecode
+ and executed at request time. This allows greater flexibility and
+ ease of use for page programmers without any performance degradation
+ since all XML parsing and such is precompiled and it's avoided at
+ request time.</p>
+
+ <p>Let's show some useful information with expression evaluation...</p>
+
+ <request-data>
+  <string name="Request method" method="Method"/>
+  <string name="Request URI" method="RequestURI"/>
+  <string name="Request protocol" method="Protocol"/>
+  <string name="Servlet path" method="ServletPath"/>
+  <string name="Path info" method="PathInfo"/>
+  <string name="Path translated" method="PathTranslated"/>
+  <string name="Query string" method="QueryString"/>
+  <int name="Content length" method="ContentLength"/>
+  <string name="Content type" method="ContentType"/>
+  <string name="Server name" method="ServerName"/>
+  <int name="Server port" method="ServerPort"/>
+  <string name="Remote user" method="RemoteUser"/>
+  <string name="Remote address" method="RemoteAddr"/>
+  <string name="Remote host" method="RemoteHost"/>
+  <string name="Authorization scheme" method="AuthType"/>
+ </request-data>
+
+ <p>Ok. Now that you know how logic can be transformed into content, let's
+ add some juice and mix logic with content generation
+ in a way that allows you to forget about what method is used to generate and
+ handle the content as XML and concentrate on having your work done.
+ Note, how XSP don't allow you to explicitly write something on the response
+ from the logic realm: this is one of the major
+ differences between XSP and other server pages technologies and allows
+ further processing of the produced content, as required, for example, by
+ XSL-transformations.</p>
+
+ <request-headers/>
+
+ <servlet-parameters/>
+
+ <p>All right, the first XSP page is over, but you can see the
+ dynamically syntax highlighted
+ <link href="view-source.xml?filename=clean-page.xml">source of this page</link>
+ and its <link href="view-source.xml?filename=page-xsp.xsl">logicsheet</link>
+ provided to you by another XSP page.</p>
+
+ <p>Enjoy XSP!</p>
+</page>
\ No newline at end of file
diff --git a/openjoda/content/dynamic/test/xsp/lib-page.xml b/openjoda/content/dynamic/test/xsp/lib-page.xml
new file mode 100644
index 0000000..1c53806
--- /dev/null
+++ b/openjoda/content/dynamic/test/xsp/lib-page.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+
+<!-- Author: Stefano Mazzocchi "stefano@apache.org" -->
+<!-- Version: $Id$ -->
+
+<?cocoon-process type="xsp"?>
+
+<?cocoon-process type="xslt"?>
+<?xml-stylesheet href="page-html.xsl" type="text/xsl"?>
+
+<xsp:page
+  language="java"
+  xmlns:xsp="http://www.apache.org/1999/XSP/Core"
+  xmlns:request="http://www.apache.org/1999/XSP/Request"
+  xmlns:util="http://www.apache.org/1999/XSP/Util"
+>
+
+<page>
+ <title>First XSP Page</title>
+ <author>
+  <name>Stefano Mazzocchi</name>
+  <address>stefano@apache.org</address>
+ </author>
+
+ <p>Hi, I'm your first XSP page ever.</p>
+
+ <p>I've been requested <util:counter/> times.</p>
+
+ <p>The content you are seeing in this page is provided to you
+ by an XML content producer that was compiled into Java bytecode
+ and executed at request time. This allows greater flexibility and
+ ease of use for page programmers without any performance degradation
+ since all XML parsing and such is precompiled and it's avoided at
+ request time.</p>
+
+ <p>Let's show some useful information with expression evaluation...</p>
+
+ <list title="Request Data">
+  <element name="Request method"><request:get-method/></element>
+  <element name="Request URI"><request:get-request-uri/></element>
+  <element name="Request protocol"><request:get-protocol/></element>
+  <element name="Servlet path"><request:get-servlet-path/></element>
+  <element name="Path info"><request:get-path-info/></element>
+  <element name="Path translated"><request:get-path-translated/></element>
+  <element name="Query string"><request:get-query-string/></element>
+  <element name="Content length"><request:get-content-length/></element>
+  <element name="Content type"><request:get-content-type/></element>
+  <element name="Server name"><request:get-server-name/></element>
+  <element name="Server port"><request:get-server-port/></element>
+  <element name="Remote user"><request:get-remote-user/></element>
+  <element name="Remote address"><request:get-remote-addr/></element>
+  <element name="Remote host"><request:get-remote-host/></element>
+  <element name="Authorization scheme"><request:get-auth-type/></element>
+ </list>
+
+ <p>Ok. Now that you know how logic can be transformed into content, let's
+ add some juice and mix logic with content generation
+ in a way that allows you to forget about what method is used to generate and
+ handle the content as XML and concentrate on having your work done.
+ Note, how XSP don't allow you to explicitly write something on the response
+ from the logic realm: this is one of the major
+ differences between XSP and other server pages technologies and allows
+ further processing of the produced content, as required, for example, by
+ XSL-transformations.</p>
+
+ <!-- FIXME (SM): here should go some taglib to emulate the other two
+      examples, but we don't have yet a good way to iterate over items
+      and so on without using logic directly... more feedback is needed on
+      the taglib issue. -->
+
+ <p>All right, the first XSP page is over, but you can see the dynamically syntax highlighted
+ <link href="view-source.xml?filename=lib-page.xml">source of this page</link>,
+ all provided to you by another XSP page.</p>
+
+ <p>Enjoy XSP!</p>
+</page>
+</xsp:page>
\ No newline at end of file
diff --git a/openjoda/content/dynamic/test/xsp/page-html.xsl b/openjoda/content/dynamic/test/xsp/page-html.xsl
new file mode 100644
index 0000000..7fb4ba7
--- /dev/null
+++ b/openjoda/content/dynamic/test/xsp/page-html.xsl
@@ -0,0 +1,120 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:template match="page">
+   <xsl:processing-instruction name="cocoon-format">type="text/html"</xsl:processing-instruction>
+   <html>
+    <head>
+     <title><xsl:value-of select="title"/></title>
+    </head>
+    <body>
+    <p><br/></p>
+    <center>
+     <table border="0" width="60%" bgcolor="#000000" cellspacing="0" cellpadding="0">
+      <tr>
+       <td width="100%">
+        <table border="0" width="100%" cellpadding="4">
+         <tr>
+          <td width="100%" bgcolor="#c0c0c0" align="right" valign="middle">
+           <big><big><xsl:value-of select="title"/></big></big>
+          </td>
+         </tr>
+         <tr>
+          <td width="100%" bgcolor="#ffffff">
+           <xsl:apply-templates/>
+          </td>
+         </tr>
+        </table>
+       </td>
+      </tr>
+     </table>
+    </center>
+
+    <p align="center">
+     <font size="-1">
+      Copyright &#169; @year@ <a href="http://xml.apache.org">The Apache XML Project</a>.<br/>
+      All rights reserved.
+     </font>
+    </p>
+
+    </body>
+   </html>
+  </xsl:template>
+
+  <xsl:template match="title|author">
+   <!-- ignore -->
+  </xsl:template>
+
+  <xsl:template match="p">
+   <xsl:copy>
+    <xsl:apply-templates/>
+   </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="em">
+    <strong><xsl:apply-templates/></strong>
+  </xsl:template>
+
+  <xsl:template match="link">
+    <a href="{@href}"><xsl:apply-templates/></a>
+  </xsl:template>
+
+  <xsl:template match="list">
+   <center>
+    <table border="0" width="90%" bgcolor="#000000" cellspacing="0" cellpadding="0">
+     <tr>
+      <td width="100%">
+       <table border="0" width="100%" cellpadding="4">
+        <tr>
+         <th bgcolor="#e0e0e0" colspan="2" align="right"><xsl:value-of select="@title"/></th>
+        </tr>
+        <xsl:apply-templates/>
+       </table>
+      </td>
+     </tr>
+    </table>
+   </center>
+  </xsl:template>
+
+  <xsl:template match="element">
+   <tr>
+    <td>
+     <xsl:choose>
+      <xsl:when test="position() mod 2 = 0">
+       <xsl:attribute name="bgcolor">#f0f0f0</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+       <xsl:attribute name="bgcolor">#ffffff</xsl:attribute>
+      </xsl:otherwise>
+     </xsl:choose>
+     <xsl:value-of select="@name"/>
+    </td>
+    <td width="100%">
+     <xsl:choose>
+      <xsl:when test="position() mod 2 = 0">
+       <xsl:attribute name="bgcolor">#f0f0f0</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+       <xsl:attribute name="bgcolor">#ffffff</xsl:attribute>
+      </xsl:otherwise>
+     </xsl:choose>
+     <xsl:choose>
+      <xsl:when test=".//item">
+       <ul>
+        <xsl:for-each select=".//item">
+         <li>
+          <xsl:apply-templates/>
+         </li>
+        </xsl:for-each>
+       </ul>
+      </xsl:when>
+      <xsl:otherwise>
+       <xsl:apply-templates/><xsl:text>&#160;</xsl:text>
+      </xsl:otherwise>
+     </xsl:choose>
+    </td>
+   </tr>
+  </xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/openjoda/content/dynamic/test/xsp/page-xsp.xsl b/openjoda/content/dynamic/test/xsp/page-xsp.xsl
new file mode 100644
index 0000000..81a9df5
--- /dev/null
+++ b/openjoda/content/dynamic/test/xsp/page-xsp.xsl
@@ -0,0 +1,123 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0"
+   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+   xmlns:xsp="http://www.apache.org/1999/XSP/Core"
+>
+
+  <xsl:template match="page">
+
+    <xsl:processing-instruction name="cocoon-process">type="xsp"</xsl:processing-instruction>
+
+    <xsl:processing-instruction name="cocoon-process">type="xslt"</xsl:processing-instruction>
+    <xsl:processing-instruction name="xml-stylesheet">href="page-html.xsl" type="text/xsl"</xsl:processing-instruction>
+
+    <xsp:page language="java" xmlns:xsp="http://www.apache.org/1999/XSP/Core">
+
+    <xsp:logic>
+      static private int counter = 0;
+
+      private synchronized int count() {
+        return counter++;
+      }
+
+      private String normalize(String string) {
+        if (string == null) return "";
+        else return string;
+      }
+    </xsp:logic>
+
+    <xsl:copy>
+     <xsl:apply-templates/>
+    </xsl:copy>
+
+   </xsp:page>
+
+  </xsl:template>
+
+  <xsl:template match="title|author|link">
+   <xsl:copy-of select="."/>
+  </xsl:template>
+
+  <xsl:template match="p">
+   <xsl:copy>
+    <xsl:apply-templates/>
+   </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="request-data">
+   <list title="Request Data">
+    <xsl:apply-templates/>
+   </list>
+  </xsl:template>
+
+  <xsl:template match="count">
+   <xsp:expr>count()</xsp:expr>
+  </xsl:template>
+
+  <xsl:template match="string">
+   <element name="{@name}">
+    <xsp:expr>normalize(request.get<xsl:value-of select="@method"/>())</xsp:expr>
+   </element>
+  </xsl:template>
+
+  <xsl:template match="int">
+   <element name="{@name}">
+    <xsp:expr>request.get<xsl:value-of select="@method"/>()</xsp:expr>
+   </element>
+  </xsl:template>
+
+  <xsl:template match="request-headers">
+       <xsp:logic><![CDATA[
+         Enumeration e = request.getHeaderNames();
+         if ((e != null) && (e.hasMoreElements())) { ]]>
+            <p>Here are the request headers...</p>
+            <list title="Request Headers">
+                <xsp:logic><![CDATA[
+                  while (e.hasMoreElements()) {
+                    String k = (String) e.nextElement(); ]]>
+                    <element>
+                        <xsp:attribute name="name">
+                            <xsp:expr>k</xsp:expr>
+                        </xsp:attribute>
+                        <xsp:expr>request.getHeader(k)</xsp:expr>
+                    </element>
+                  }
+                </xsp:logic>
+            </list>
+          }
+        </xsp:logic>
+  </xsl:template>
+
+  <xsl:template match="servlet-parameters">
+   <xsp:logic><![CDATA[
+          e = request.getParameterNames();
+          if ((e != null) && (e.hasMoreElements())) { ]]>
+            <p>and here the servlet parameters that were passed along
+            with the request...</p>
+            <list title="Servlet Parameters">
+                <xsp:logic><![CDATA[
+                  while (e.hasMoreElements()) {
+                    String k = (String) e.nextElement();
+                    String val = request.getParameter(k);
+                    String vals[] = request.getParameterValues(k); ]]>
+                    <element>
+                        <xsp:attribute name="name">
+                            <xsp:expr>k</xsp:expr>
+                        </xsp:attribute>
+                        <xsp:logic><![CDATA[
+                            for(int i = 0; i < vals.length; i++) { ]]>
+                                <item>
+                                    <xsp:expr>vals[i]</xsp:expr>
+                                </item>
+                            }
+                        </xsp:logic>
+                    </element>
+                  }
+                </xsp:logic>
+            </list>
+          }
+        </xsp:logic>
+  </xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/openjoda/content/dynamic/test/xsp/page.xml b/openjoda/content/dynamic/test/xsp/page.xml
new file mode 100644
index 0000000..bf26a69
--- /dev/null
+++ b/openjoda/content/dynamic/test/xsp/page.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0"?>
+
+<!-- Author: Stefano Mazzocchi "stefano@apache.org" -->
+<!-- Version: $Id$ -->
+
+<?cocoon-process type="xsp"?>
+<?cocoon-process type="xslt"?>
+<?xml-stylesheet href="page-html.xsl" type="text/xsl"?>
+
+<xsp:page
+  language="java"
+  xmlns:xsp="http://www.apache.org/1999/XSP/Core"
+>
+
+ <xsp:logic>
+  static private int counter = 0;
+
+  private synchronized int count() {
+   return counter++;
+  }
+
+  private String normalize(String string) {
+   if (string == null) return "";
+   else return string;
+  }
+ </xsp:logic>
+
+ <page>
+  <title>First XSP Page</title>
+  <author>
+   <name>Stefano Mazzocchi</name>
+   <address>stefano@apache.org</address>
+  </author>
+
+  <p>Hi, I'm your first XSP page ever.</p>
+
+  <p>I've been requested <xsp:expr>count()</xsp:expr> times.</p>
+
+  <p>The content you are seeing in this page is provided to you
+  by an XML content producer that was compiled into Java bytecode
+  and executed at request time. This allows greater flexibility and
+  ease of use for page programmers without any performance degradation
+  since all XML parsing and such is precompiled and it's avoided at
+  request time.</p>
+
+  <p>Let's show some useful information with expression evaluation...</p>
+
+  <list title="Request Data">
+   <element name="Request method"><xsp:expr>normalize(request.getMethod())</xsp:expr></element>
+   <element name="Request URI"><xsp:expr>normalize(request.getRequestURI())</xsp:expr></element>
+   <element name="Request protocol"><xsp:expr>normalize(request.getProtocol())</xsp:expr></element>
+   <element name="Servlet path"><xsp:expr>normalize(request.getServletPath())</xsp:expr></element>
+   <element name="Path info"><xsp:expr>normalize(request.getPathInfo())</xsp:expr></element>
+   <element name="Path translated"><xsp:expr>normalize(request.getPathTranslated())</xsp:expr></element>
+   <element name="Query string"><xsp:expr>normalize(request.getQueryString())</xsp:expr></element>
+   <element name="Content length"><xsp:expr>request.getContentLength()</xsp:expr></element>
+   <element name="Content type"><xsp:expr>normalize(request.getContentType())</xsp:expr></element>
+   <element name="Server name"><xsp:expr>normalize(request.getServerName())</xsp:expr></element>
+   <element name="Server port"><xsp:expr>request.getServerPort()</xsp:expr></element>
+   <element name="Remote user"><xsp:expr>normalize(request.getRemoteUser())</xsp:expr></element>
+   <element name="Remote address"><xsp:expr>normalize(request.getRemoteAddr())</xsp:expr></element>
+   <element name="Remote host"><xsp:expr>normalize(request.getRemoteHost())</xsp:expr></element>
+   <element name="Authorization scheme"><xsp:expr>normalize(request.getAuthType())</xsp:expr></element>
+  </list>
+
+  <p>Ok. Now that you know how logic can be transformed into content, let's
+  add some juice and mix logic with content generation
+  in a way that allows you to forget about what method is used to generate and
+  handle the content as XML and concentrate on having your work done.
+  Note, how XSP don't allow you to explicitly write something on the response
+  from the logic realm: this is one of the major
+  differences between XSP and other server pages technologies and allows
+  further processing of the produced content, as required, for example, by
+  XSL-transformations.</p>
+
+  <xsp:logic><![CDATA[
+   Enumeration e = request.getHeaderNames();
+   if ((e != null) && (e.hasMoreElements())) { ]]>
+    <p>Here are the request headers...</p>
+    <list title="Request Headers">
+     <xsp:logic><![CDATA[
+      while (e.hasMoreElements()) {
+       String k = (String) e.nextElement(); ]]>
+       <element>
+        <xsp:attribute name="name">
+         <xsp:expr>k</xsp:expr>
+        </xsp:attribute>
+        <xsp:expr>request.getHeader(k)</xsp:expr>
+       </element>
+      }
+     </xsp:logic>
+    </list>
+   }
+  </xsp:logic>
+
+  <xsp:logic><![CDATA[
+   e = request.getParameterNames();
+   if ((e != null) && (e.hasMoreElements())) { ]]>
+    <p>and here the servlet parameters that were passed along
+    with the request...</p>
+
+    <list title="Servlet Parameters">
+     <xsp:logic><![CDATA[
+      while (e.hasMoreElements()) {
+       String k = (String) e.nextElement();
+       String val = request.getParameter(k);
+       String vals[] = request.getParameterValues(k); ]]>
+       <element>
+        <xsp:attribute name="name">
+         <xsp:expr>k</xsp:expr>
+        </xsp:attribute>
+        <xsp:logic><![CDATA[
+          for(int i = 0; i < vals.length; i++) { ]]>
+           <item>
+            <xsp:expr>vals[i]</xsp:expr>
+           </item>
+          }
+        </xsp:logic>
+       </element>
+      }
+     </xsp:logic>
+    </list>
+   }
+  </xsp:logic>
+
+  <p>All right, the first XSP page is over, but you can see the
+  <link href="view-source.xml?filename=page.xml">dynamically syntax highlighted</link>
+  source of this page provided to you by another XSP page.</p>
+
+  <p>Enjoy XSP!</p>
+ </page>
+</xsp:page>
\ No newline at end of file
diff --git a/openjoda/content/dynamic/test/xsp/view-source.xml b/openjoda/content/dynamic/test/xsp/view-source.xml
new file mode 100644
index 0000000..58a09e2
--- /dev/null
+++ b/openjoda/content/dynamic/test/xsp/view-source.xml
@@ -0,0 +1,282 @@
+<?xml version="1.0"?>
+<?cocoon-process type="xsp"?>
+
+<!-- Written by Ricardo Rocha <rrocha@plenix.org> -->
+
+<!-- A quick'n'dirty XML colorizer -->
+
+<xsp:page language="java" xmlns:xsp="http://www.apache.org/1999/XSP/Core">
+
+  <xsp:structure>
+   <xsp:include>java.net.*</xsp:include>
+  </xsp:structure>
+
+  <xsp:logic><![CDATA[
+    private static final String ATTR_NAME_COLOR = "navy";
+    private static final String ATTR_VALUE_COLOR = "navy";
+    private static final String COMMENT_COLOR = "gray";
+    private static final String DELIMITER_COLOR = "navy";
+    private static final String ELEMENT_COLOR = "navy";
+    private static final String ENTITY_REF_COLOR = "navy";
+    private static final String PI_DATA_COLOR = "navy";
+    private static final String TEXT_COLOR = "black";
+    private static final String CUSTOM_ELEMENT_COLOR = "green";
+    private static final String XSL_ELEMENT_COLOR = "navy";
+    private static final String XSP_ELEMENT_COLOR = "green";
+    private static final String XSP_TEXT_COLOR = "red";
+
+    protected Element colorize(Node node, Document factory) {
+      Element element = factory.createElement("pre");
+      DocumentFragment fragment = factory.createDocumentFragment();
+      element.appendChild(doColorize(node, factory, 0));
+      return element;
+    }
+
+    protected static DocumentFragment
+      doColorize(Node node, Document factory, int level)
+    {
+      Element result = null;
+      DocumentFragment fragment = factory.createDocumentFragment();
+
+      switch (node.getNodeType()) {
+        case Node.CDATA_SECTION_NODE:
+          result = factory.createElement("font");
+          result.setAttribute("color", DELIMITER_COLOR);
+          result.appendChild(factory.createTextNode("<"));
+          fragment.appendChild(result);
+
+          result = factory.createElement("font");
+          result.setAttribute("color", ELEMENT_COLOR);
+          result.appendChild(factory.createTextNode("![CDATA["));
+          fragment.appendChild(result);
+
+          result = factory.createElement("font");
+          result.setAttribute("color", ATTR_VALUE_COLOR);
+          result.appendChild(factory.createTextNode(node.getNodeValue()));
+          fragment.appendChild(result);
+
+
+          result = factory.createElement("font");
+          result.setAttribute("color", ELEMENT_COLOR);
+          result.appendChild(factory.createTextNode("]]"));
+          fragment.appendChild(result);
+
+          result = factory.createElement("font");
+          result.setAttribute("color", DELIMITER_COLOR);
+          result.appendChild(factory.createTextNode("<"));
+          fragment.appendChild(result);
+
+          break;
+        case Node.ELEMENT_NODE: {
+          Element element = (Element) node;
+
+          result = factory.createElement("font");
+          result.setAttribute("color", DELIMITER_COLOR);
+          result.appendChild(factory.createTextNode("<"));
+          fragment.appendChild(result);
+
+          String tagColor = ELEMENT_COLOR;
+          String tagName = element.getTagName();
+
+          if (tagName.startsWith("xsp:")) {
+            tagColor = XSP_ELEMENT_COLOR;
+          } else if (tagName.startsWith("xsl:")) {
+            tagColor = XSL_ELEMENT_COLOR;
+          } else if (tagName.indexOf(':') >= 0) {
+            tagColor = CUSTOM_ELEMENT_COLOR;
+          }
+
+          result = factory.createElement("font");
+          result.setAttribute("color", tagColor);
+          result.appendChild(factory.createTextNode(tagName));
+          fragment.appendChild(result);
+
+          NamedNodeMap attributes = element.getAttributes();
+          int attributeCount = attributes.getLength();
+
+          for (int i = 0; i < attributeCount; i++) {
+            Attr attribute = (Attr) attributes.item(i);
+
+            result = factory.createElement("font");
+            result.setAttribute("color", ATTR_NAME_COLOR);
+            result.appendChild(
+              factory.createTextNode(" " + attribute.getName() + "=")
+            );
+            fragment.appendChild(result);
+
+            result = factory.createElement("font");
+            result.setAttribute("color", ATTR_VALUE_COLOR);
+            result.appendChild(
+              factory.createTextNode("\"" + attribute.getValue() + "\"")
+            );
+            fragment.appendChild(result);
+          }
+
+          NodeList nodeList = element.getChildNodes();
+          int childCount = nodeList.getLength();
+
+          result = factory.createElement("font");
+          result.setAttribute("color", DELIMITER_COLOR);
+          result.appendChild(
+            factory.createTextNode((childCount == 0 ? "/" : "") + ">")
+          );
+          fragment.appendChild(result);
+
+          String textColor = TEXT_COLOR;
+          if (tagName.startsWith("xsp:")) {
+            textColor = XSP_TEXT_COLOR;
+          }
+          result = factory.createElement("font");
+          result.setAttribute("color", textColor);
+
+          for (int i = 0; i < childCount; i++) {
+            result.appendChild(
+              doColorize(nodeList.item(i), factory, level + 1)
+            );
+          }
+          fragment.appendChild(result);
+
+          if (childCount > 0) {
+            result = factory.createElement("font");
+            result.setAttribute("color", DELIMITER_COLOR);
+            result.appendChild(factory.createTextNode("</"));
+            fragment.appendChild(result);
+
+            result = factory.createElement("font");
+            result.setAttribute("color", tagColor);
+            result.appendChild(factory.createTextNode(tagName));
+            fragment.appendChild(result);
+
+            result = factory.createElement("font");
+            result.setAttribute("color", DELIMITER_COLOR);
+            result.appendChild(factory.createTextNode(">"));
+            fragment.appendChild(result);
+          }
+
+          break;
+        }
+        case Node.DOCUMENT_NODE:
+        case Node.DOCUMENT_FRAGMENT_NODE: {
+          NodeList nodeList = node.getChildNodes();
+          int childCount = nodeList.getLength();
+
+          for (int i = 0; i < childCount; i++) {
+            fragment.appendChild(
+              doColorize(nodeList.item(i), factory, level + 1)
+            );
+          }
+
+          break;
+        }
+        case Node.COMMENT_NODE:
+          result = factory.createElement("font");
+          result.setAttribute("color", COMMENT_COLOR);
+
+          result.appendChild(
+            factory.createTextNode(
+              "<!-- " + node.getNodeValue() + " -->\n"
+            )
+          );
+
+          fragment.appendChild(result);
+
+          break;
+        case Node.PROCESSING_INSTRUCTION_NODE:
+          ProcessingInstruction pi = (ProcessingInstruction) node;
+
+          result = factory.createElement("font");
+          result.setAttribute("color", DELIMITER_COLOR);
+          result.appendChild(factory.createTextNode("<?"));
+          fragment.appendChild(result);
+
+          result = factory.createElement("font");
+          result.setAttribute("color", ATTR_NAME_COLOR);
+          result.appendChild(factory.createTextNode(pi.getTarget()));
+          fragment.appendChild(result);
+
+          result = factory.createElement("font");
+          result.setAttribute("color", PI_DATA_COLOR);
+          result.appendChild(factory.createTextNode(" " + pi.getData()));
+          fragment.appendChild(result);
+
+          result = factory.createElement("font");
+          result.setAttribute("color", DELIMITER_COLOR);
+          result.appendChild(factory.createTextNode("?>\n"));
+          fragment.appendChild(result);
+
+          break;
+        case Node.ENTITY_REFERENCE_NODE:
+          result = factory.createElement("font");
+          result.setAttribute("color", ENTITY_REF_COLOR);
+          result.appendChild(
+            factory.createTextNode("<" + node.getNodeValue() + ";")
+          );
+          fragment.appendChild(result);
+
+          break;
+        case Node.TEXT_NODE:
+          fragment.appendChild(factory.createTextNode(node.getNodeValue()));
+          break;
+        default:
+          break;
+      }
+
+      return fragment;
+    }
+  ]]></xsp:logic>
+
+  <html>
+    <head>
+      <title>Source Code</title>
+    </head>
+
+    <body>
+      <xsp:logic>
+        String filename = request.getParameter("filename");
+        String resourcename = request.getParameter("url");
+
+        if (filename != null) {
+          String filepath = XSPUtil.relativeFilename(filename, request);
+
+          <h3 style="color:navy; text-align: center">
+            <xsp:expr>filename</xsp:expr>
+          </h3>
+
+          <xsp:content>
+           <xsp:expr>
+            this.colorize(
+              this.xspParser.parse(
+                new InputSource(
+                  new FileReader(filepath)
+                )
+              ), document
+            )
+           </xsp:expr>
+          </xsp:content>
+        } else if (resourcename != null) {
+          URL resource = new URL(resourcename);
+
+          <h3 style="color:navy; text-align: center">
+            <xsp:expr>resourcename</xsp:expr>
+          </h3>
+
+          <xsp:content>
+           <xsp:expr>
+            this.colorize(
+              this.xspParser.parse(
+                new InputSource(
+                  resource.openStream()
+                )
+              ), document
+            )
+           </xsp:expr>
+          </xsp:content>
+        } else {
+          <h3 style="color:navy; text-align: center">
+            Need <em>filename</em> or <em>url</em> parameters to work
+          </h3>
+        }
+      </xsp:logic>
+    </body>
+  </html>
+</xsp:page>
diff --git a/openjoda/content/dynamic/test/xsp/ws_ftp.log b/openjoda/content/dynamic/test/xsp/ws_ftp.log
new file mode 100644
index 0000000..5260eef
--- /dev/null
+++ b/openjoda/content/dynamic/test/xsp/ws_ftp.log
@@ -0,0 +1,54 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\clean-page.xml <-- canal /home/ktn10/project/openjoda/content/dynamic/test/xsp clean-page.xml
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\lib-page.xml <-- canal /home/ktn10/project/openjoda/content/dynamic/test/xsp lib-page.xml
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-html.xsl <-- canal /home/ktn10/project/openjoda/content/dynamic/test/xsp page-html.xsl
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-xsp.xsl <-- canal /home/ktn10/project/openjoda/content/dynamic/test/xsp page-xsp.xsl
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page.xml <-- canal /home/ktn10/project/openjoda/content/dynamic/test/xsp page.xml
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\view-source.xml <-- canal /home/ktn10/project/openjoda/content/dynamic/test/xsp view-source.xml
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\clean-page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp clean-page.xml
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\lib-page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp lib-page.xml
+2000.12.17 16:51 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-html.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page-html.xsl
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-xsp.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page-xsp.xsl
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page.xml
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\view-source.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp view-source.xml
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp WS_FTP.LOG
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\clean-page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp clean-page.xml
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\lib-page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp lib-page.xml
+2000.12.17 23:46 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-html.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page-html.xsl
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-xsp.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page-xsp.xsl
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page.xml
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\view-source.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp view-source.xml
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp WS_FTP.LOG
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\clean-page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp clean-page.xml
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\lib-page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp lib-page.xml
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-html.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page-html.xsl
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-xsp.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page-xsp.xsl
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page.xml
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\view-source.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp view-source.xml
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/dynamic/test/xsp WS_FTP.LOG
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\clean-page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp clean-page.xml
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\lib-page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp lib-page.xml
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-html.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page-html.xsl
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-xsp.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page-xsp.xsl
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page.xml
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\view-source.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp view-source.xml
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp WS_FTP.LOG
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\clean-page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp clean-page.xml
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\lib-page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp lib-page.xml
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-html.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page-html.xsl
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-xsp.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page-xsp.xsl
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page.xml
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\view-source.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp view-source.xml
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\clean-page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp clean-page.xml
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\lib-page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp lib-page.xml
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-html.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page-html.xsl
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-xsp.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page-xsp.xsl
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page.xml
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\view-source.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp view-source.xml
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp WS_FTP.LOG
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\clean-page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp clean-page.xml
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\lib-page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp lib-page.xml
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-html.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page-html.xsl
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page-xsp.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page-xsp.xsl
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\page.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp page.xml
+2000.12.19 22:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\test\xsp\view-source.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/test/xsp view-source.xml
diff --git a/openjoda/content/dynamic/ws_ftp.log b/openjoda/content/dynamic/ws_ftp.log
new file mode 100644
index 0000000..bd93659
--- /dev/null
+++ b/openjoda/content/dynamic/ws_ftp.log
@@ -0,0 +1,22 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xml <-- canal /home/ktn10/project/openjoda/content/dynamic index.xml
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xsl <-- canal /home/ktn10/project/openjoda/content/dynamic index.xsl
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic index.xml
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic index.xsl
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic WS_FTP.LOG
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic index.xml
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic index.xsl
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic WS_FTP.LOG
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic index.xml
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic index.xsl
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/dynamic WS_FTP.LOG
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic index.xml
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic index.xsl
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic WS_FTP.LOG
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic index.xml
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic index.xsl
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic index.xml
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic index.xsl
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic WS_FTP.LOG
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic index.xml
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic index.xsl
diff --git a/openjoda/content/dynamic/xsp/index.xml b/openjoda/content/dynamic/xsp/index.xml
new file mode 100644
index 0000000..93974f1
--- /dev/null
+++ b/openjoda/content/dynamic/xsp/index.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0"?>
+
+<!-- Author: Stefano Mazzocchi "stefano@apache.org" -->
+<!-- Version: $Id$ -->
+
+<?cocoon-process type="xsp"?>
+<?cocoon-process type="xslt"?>
+<?xml-stylesheet href="index.xsl" type="text/xsl"?>
+
+<xsp:page
+  language="java"
+  xmlns:xsp="http://www.apache.org/1999/XSP/Core"
+>
+
+ <xsp:logic>
+  static private int counter = 0;
+
+  private synchronized int count() {
+   return counter++;
+  }
+
+  private String normalize(String string) {
+   if (string == null) return "";
+   else return string;
+  }
+ </xsp:logic>
+
+ <page>
+  <title>First XSP Page</title>
+  <author>
+   <name>Stefano Mazzocchi</name>
+   <address>stefano@apache.org</address>
+  </author>
+
+  <p>Hi, I'm your first XSP page ever.</p>
+
+  <p>I've been requested <xsp:expr>count()</xsp:expr> times.</p>
+
+  <p>The content you are seeing in this page is provided to you
+  by an XML content producer that was compiled into Java bytecode
+  and executed at request time. This allows greater flexibility and
+  ease of use for page programmers without any performance degradation
+  since all XML parsing and such is precompiled and it's avoided at
+  request time.</p>
+
+  <p>Let's show some useful information with expression evaluation...</p>
+
+  <list title="Request Data">
+   <element name="Request method"><xsp:expr>normalize(request.getMethod())</xsp:expr></element>
+   <element name="Request URI"><xsp:expr>normalize(request.getRequestURI())</xsp:expr></element>
+   <element name="Request protocol"><xsp:expr>normalize(request.getProtocol())</xsp:expr></element>
+   <element name="Servlet path"><xsp:expr>normalize(request.getServletPath())</xsp:expr></element>
+   <element name="Path info"><xsp:expr>normalize(request.getPathInfo())</xsp:expr></element>
+   <element name="Path translated"><xsp:expr>normalize(request.getPathTranslated())</xsp:expr></element>
+   <element name="Query string"><xsp:expr>normalize(request.getQueryString())</xsp:expr></element>
+   <element name="Content length"><xsp:expr>request.getContentLength()</xsp:expr></element>
+   <element name="Content type"><xsp:expr>normalize(request.getContentType())</xsp:expr></element>
+   <element name="Server name"><xsp:expr>normalize(request.getServerName())</xsp:expr></element>
+   <element name="Server port"><xsp:expr>request.getServerPort()</xsp:expr></element>
+   <element name="Remote user"><xsp:expr>normalize(request.getRemoteUser())</xsp:expr></element>
+   <element name="Remote address"><xsp:expr>normalize(request.getRemoteAddr())</xsp:expr></element>
+   <element name="Remote host"><xsp:expr>normalize(request.getRemoteHost())</xsp:expr></element>
+   <element name="Authorization scheme"><xsp:expr>normalize(request.getAuthType())</xsp:expr></element>
+  </list>
+
+  <p>Ok. Now that you know how logic can be transformed into content, let's
+  add some juice and mix logic with content generation
+  in a way that allows you to forget about what method is used to generate and
+  handle the content as XML and concentrate on having your work done.
+  Note, how XSP don't allow you to explicitly write something on the response
+  from the logic realm: this is one of the major
+  differences between XSP and other server pages technologies and allows
+  further processing of the produced content, as required, for example, by
+  XSL-transformations.</p>
+
+  <xsp:logic><![CDATA[
+   Enumeration e = request.getHeaderNames();
+   if ((e != null) && (e.hasMoreElements())) { ]]>
+    <p>Here are the request headers...</p>
+    <list title="Request Headers">
+     <xsp:logic><![CDATA[
+      while (e.hasMoreElements()) {
+       String k = (String) e.nextElement(); ]]>
+       <element>
+        <xsp:attribute name="name">
+         <xsp:expr>k</xsp:expr>
+        </xsp:attribute>
+        <xsp:expr>request.getHeader(k)</xsp:expr>
+       </element>
+      }
+     </xsp:logic>
+    </list>
+   }
+  </xsp:logic>
+
+  <xsp:logic><![CDATA[
+   e = request.getParameterNames();
+   if ((e != null) && (e.hasMoreElements())) { ]]>
+    <p>and here the servlet parameters that were passed along
+    with the request...</p>
+
+    <list title="Servlet Parameters">
+     <xsp:logic><![CDATA[
+      while (e.hasMoreElements()) {
+       String k = (String) e.nextElement();
+       String val = request.getParameter(k);
+       String vals[] = request.getParameterValues(k); ]]>
+       <element>
+        <xsp:attribute name="name">
+         <xsp:expr>k</xsp:expr>
+        </xsp:attribute>
+        <xsp:logic><![CDATA[
+          for(int i = 0; i < vals.length; i++) { ]]>
+           <item>
+            <xsp:expr>vals[i]</xsp:expr>
+           </item>
+          }
+        </xsp:logic>
+       </element>
+      }
+     </xsp:logic>
+    </list>
+   }
+  </xsp:logic>
+
+  <p>All right, the first XSP page is over, but you can see the
+  <link href="../../../content/dynamic/test/xsp/view-source.xml?filename=page.xml">dynamically syntax highlighted</link>
+  source of this page provided to you by another XSP page.</p>
+
+  <p>Enjoy XSP!</p>
+ </page>
+</xsp:page>
diff --git a/openjoda/content/dynamic/xsp/index.xsl b/openjoda/content/dynamic/xsp/index.xsl
new file mode 100644
index 0000000..7fb4ba7
--- /dev/null
+++ b/openjoda/content/dynamic/xsp/index.xsl
@@ -0,0 +1,120 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:template match="page">
+   <xsl:processing-instruction name="cocoon-format">type="text/html"</xsl:processing-instruction>
+   <html>
+    <head>
+     <title><xsl:value-of select="title"/></title>
+    </head>
+    <body>
+    <p><br/></p>
+    <center>
+     <table border="0" width="60%" bgcolor="#000000" cellspacing="0" cellpadding="0">
+      <tr>
+       <td width="100%">
+        <table border="0" width="100%" cellpadding="4">
+         <tr>
+          <td width="100%" bgcolor="#c0c0c0" align="right" valign="middle">
+           <big><big><xsl:value-of select="title"/></big></big>
+          </td>
+         </tr>
+         <tr>
+          <td width="100%" bgcolor="#ffffff">
+           <xsl:apply-templates/>
+          </td>
+         </tr>
+        </table>
+       </td>
+      </tr>
+     </table>
+    </center>
+
+    <p align="center">
+     <font size="-1">
+      Copyright &#169; @year@ <a href="http://xml.apache.org">The Apache XML Project</a>.<br/>
+      All rights reserved.
+     </font>
+    </p>
+
+    </body>
+   </html>
+  </xsl:template>
+
+  <xsl:template match="title|author">
+   <!-- ignore -->
+  </xsl:template>
+
+  <xsl:template match="p">
+   <xsl:copy>
+    <xsl:apply-templates/>
+   </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="em">
+    <strong><xsl:apply-templates/></strong>
+  </xsl:template>
+
+  <xsl:template match="link">
+    <a href="{@href}"><xsl:apply-templates/></a>
+  </xsl:template>
+
+  <xsl:template match="list">
+   <center>
+    <table border="0" width="90%" bgcolor="#000000" cellspacing="0" cellpadding="0">
+     <tr>
+      <td width="100%">
+       <table border="0" width="100%" cellpadding="4">
+        <tr>
+         <th bgcolor="#e0e0e0" colspan="2" align="right"><xsl:value-of select="@title"/></th>
+        </tr>
+        <xsl:apply-templates/>
+       </table>
+      </td>
+     </tr>
+    </table>
+   </center>
+  </xsl:template>
+
+  <xsl:template match="element">
+   <tr>
+    <td>
+     <xsl:choose>
+      <xsl:when test="position() mod 2 = 0">
+       <xsl:attribute name="bgcolor">#f0f0f0</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+       <xsl:attribute name="bgcolor">#ffffff</xsl:attribute>
+      </xsl:otherwise>
+     </xsl:choose>
+     <xsl:value-of select="@name"/>
+    </td>
+    <td width="100%">
+     <xsl:choose>
+      <xsl:when test="position() mod 2 = 0">
+       <xsl:attribute name="bgcolor">#f0f0f0</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+       <xsl:attribute name="bgcolor">#ffffff</xsl:attribute>
+      </xsl:otherwise>
+     </xsl:choose>
+     <xsl:choose>
+      <xsl:when test=".//item">
+       <ul>
+        <xsl:for-each select=".//item">
+         <li>
+          <xsl:apply-templates/>
+         </li>
+        </xsl:for-each>
+       </ul>
+      </xsl:when>
+      <xsl:otherwise>
+       <xsl:apply-templates/><xsl:text>&#160;</xsl:text>
+      </xsl:otherwise>
+     </xsl:choose>
+    </td>
+   </tr>
+  </xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/openjoda/content/dynamic/xsp/ws_ftp.log b/openjoda/content/dynamic/xsp/ws_ftp.log
new file mode 100644
index 0000000..4d57e74
--- /dev/null
+++ b/openjoda/content/dynamic/xsp/ws_ftp.log
@@ -0,0 +1,22 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xml <-- canal /home/ktn10/project/openjoda/content/dynamic/xsp index.xml
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xsl <-- canal /home/ktn10/project/openjoda/content/dynamic/xsp index.xsl
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp index.xml
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp index.xsl
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp WS_FTP.LOG
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp index.xml
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp index.xsl
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp WS_FTP.LOG
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp index.xml
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp index.xsl
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/dynamic/xsp WS_FTP.LOG
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp index.xml
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp index.xsl
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp WS_FTP.LOG
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp index.xml
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp index.xsl
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp index.xml
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp index.xsl
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp WS_FTP.LOG
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp index.xml
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\dynamic\xsp\index.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/dynamic/xsp index.xsl
diff --git a/openjoda/content/images/1by1.gif b/openjoda/content/images/1by1.gif
new file mode 100644
index 0000000..a856ec5
Binary files /dev/null and b/openjoda/content/images/1by1.gif differ
diff --git a/openjoda/content/images/arrow_down.gif b/openjoda/content/images/arrow_down.gif
new file mode 100644
index 0000000..d6cd5a4
Binary files /dev/null and b/openjoda/content/images/arrow_down.gif differ
diff --git a/openjoda/content/images/arrow_up.gif b/openjoda/content/images/arrow_up.gif
new file mode 100644
index 0000000..1e12d83
Binary files /dev/null and b/openjoda/content/images/arrow_up.gif differ
diff --git a/openjoda/content/images/bg_fictive.jpg b/openjoda/content/images/bg_fictive.jpg
new file mode 100644
index 0000000..9766de0
Binary files /dev/null and b/openjoda/content/images/bg_fictive.jpg differ
diff --git a/openjoda/content/images/black.gif b/openjoda/content/images/black.gif
new file mode 100644
index 0000000..f1f9c78
Binary files /dev/null and b/openjoda/content/images/black.gif differ
diff --git a/openjoda/content/images/bottom.gif b/openjoda/content/images/bottom.gif
new file mode 100644
index 0000000..e0d3fee
Binary files /dev/null and b/openjoda/content/images/bottom.gif differ
diff --git a/openjoda/content/images/bottom_bg.gif b/openjoda/content/images/bottom_bg.gif
new file mode 100644
index 0000000..bf55a1a
Binary files /dev/null and b/openjoda/content/images/bottom_bg.gif differ
diff --git a/openjoda/content/images/bottom_left.gif b/openjoda/content/images/bottom_left.gif
new file mode 100644
index 0000000..09a2506
Binary files /dev/null and b/openjoda/content/images/bottom_left.gif differ
diff --git a/openjoda/content/images/bottom_right.gif b/openjoda/content/images/bottom_right.gif
new file mode 100644
index 0000000..e9a75d8
Binary files /dev/null and b/openjoda/content/images/bottom_right.gif differ
diff --git a/openjoda/content/images/bullet.gif b/openjoda/content/images/bullet.gif
new file mode 100644
index 0000000..b9c03c0
Binary files /dev/null and b/openjoda/content/images/bullet.gif differ
diff --git a/openjoda/content/images/close.gif b/openjoda/content/images/close.gif
new file mode 100644
index 0000000..91ecfef
Binary files /dev/null and b/openjoda/content/images/close.gif differ
diff --git a/openjoda/content/images/close2.gif b/openjoda/content/images/close2.gif
new file mode 100644
index 0000000..6ac2c99
Binary files /dev/null and b/openjoda/content/images/close2.gif differ
diff --git a/openjoda/content/images/divider.gif b/openjoda/content/images/divider.gif
new file mode 100644
index 0000000..2895536
Binary files /dev/null and b/openjoda/content/images/divider.gif differ
diff --git a/openjoda/content/images/edit.gif b/openjoda/content/images/edit.gif
new file mode 100644
index 0000000..24acebb
Binary files /dev/null and b/openjoda/content/images/edit.gif differ
diff --git a/openjoda/content/images/feather.gif b/openjoda/content/images/feather.gif
new file mode 100644
index 0000000..696bf88
Binary files /dev/null and b/openjoda/content/images/feather.gif differ
diff --git a/openjoda/content/images/fictive.jpg b/openjoda/content/images/fictive.jpg
new file mode 100644
index 0000000..45345e3
Binary files /dev/null and b/openjoda/content/images/fictive.jpg differ
diff --git a/openjoda/content/images/folder.gif b/openjoda/content/images/folder.gif
new file mode 100644
index 0000000..560b0bf
Binary files /dev/null and b/openjoda/content/images/folder.gif differ
diff --git a/openjoda/content/images/gauge.jpg b/openjoda/content/images/gauge.jpg
new file mode 100644
index 0000000..b937195
Binary files /dev/null and b/openjoda/content/images/gauge.jpg differ
diff --git a/openjoda/content/images/gears.gif b/openjoda/content/images/gears.gif
new file mode 100644
index 0000000..2fcb6b4
Binary files /dev/null and b/openjoda/content/images/gears.gif differ
diff --git a/openjoda/content/images/header_openjoda.jpg b/openjoda/content/images/header_openjoda.jpg
new file mode 100644
index 0000000..282197f
Binary files /dev/null and b/openjoda/content/images/header_openjoda.jpg differ
diff --git a/openjoda/content/images/header_openjoda_new.jpg b/openjoda/content/images/header_openjoda_new.jpg
new file mode 100644
index 0000000..282197f
Binary files /dev/null and b/openjoda/content/images/header_openjoda_new.jpg differ
diff --git a/openjoda/content/images/header_openjoda_original.jpg b/openjoda/content/images/header_openjoda_original.jpg
new file mode 100644
index 0000000..34b4674
Binary files /dev/null and b/openjoda/content/images/header_openjoda_original.jpg differ
diff --git a/openjoda/content/images/indus.jpg b/openjoda/content/images/indus.jpg
new file mode 100644
index 0000000..5e07023
Binary files /dev/null and b/openjoda/content/images/indus.jpg differ
diff --git a/openjoda/content/images/java-apache-project.gif b/openjoda/content/images/java-apache-project.gif
new file mode 100644
index 0000000..0032128
Binary files /dev/null and b/openjoda/content/images/java-apache-project.gif differ
diff --git a/openjoda/content/images/jetspeed-logo.gif b/openjoda/content/images/jetspeed-logo.gif
new file mode 100644
index 0000000..76c7dd9
Binary files /dev/null and b/openjoda/content/images/jetspeed-logo.gif differ
diff --git a/openjoda/content/images/jetspeed-powered.gif b/openjoda/content/images/jetspeed-powered.gif
new file mode 100644
index 0000000..3c86e73
Binary files /dev/null and b/openjoda/content/images/jetspeed-powered.gif differ
diff --git a/openjoda/content/images/layout/dn.gif b/openjoda/content/images/layout/dn.gif
new file mode 100644
index 0000000..9498ba8
Binary files /dev/null and b/openjoda/content/images/layout/dn.gif differ
diff --git a/openjoda/content/images/layout/klammerLeftVertical.gif b/openjoda/content/images/layout/klammerLeftVertical.gif
new file mode 100644
index 0000000..658169d
Binary files /dev/null and b/openjoda/content/images/layout/klammerLeftVertical.gif differ
diff --git a/openjoda/content/images/layout/lt.gif b/openjoda/content/images/layout/lt.gif
new file mode 100644
index 0000000..3a1b1ee
Binary files /dev/null and b/openjoda/content/images/layout/lt.gif differ
diff --git a/openjoda/content/images/layout/rt.gif b/openjoda/content/images/layout/rt.gif
new file mode 100644
index 0000000..f6ce767
Binary files /dev/null and b/openjoda/content/images/layout/rt.gif differ
diff --git a/openjoda/content/images/layout/up.gif b/openjoda/content/images/layout/up.gif
new file mode 100644
index 0000000..b227bd3
Binary files /dev/null and b/openjoda/content/images/layout/up.gif differ
diff --git a/openjoda/content/images/layout/ws_ftp.log b/openjoda/content/images/layout/ws_ftp.log
new file mode 100644
index 0000000..fce568a
--- /dev/null
+++ b/openjoda/content/images/layout/ws_ftp.log
@@ -0,0 +1,53 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\dn.gif <-- canal /home/ktn10/project/openjoda/content/images/layout dn.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\klammerLeftVertical.gif <-- canal /home/ktn10/project/openjoda/content/images/layout klammerLeftVertical.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\lt.gif <-- canal /home/ktn10/project/openjoda/content/images/layout lt.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\rt.gif <-- canal /home/ktn10/project/openjoda/content/images/layout rt.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\up.gif <-- canal /home/ktn10/project/openjoda/content/images/layout up.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\x.gif <-- canal /home/ktn10/project/openjoda/content/images/layout x.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\dn.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout dn.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\klammerLeftVertical.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout klammerLeftVertical.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\lt.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout lt.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\rt.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout rt.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\up.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout up.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout WS_FTP.LOG
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\x.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout x.gif
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\dn.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout dn.gif
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\klammerLeftVertical.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout klammerLeftVertical.gif
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\lt.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout lt.gif
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\rt.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout rt.gif
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\up.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout up.gif
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout WS_FTP.LOG
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\x.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout x.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\dn.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout dn.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\klammerLeftVertical.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout klammerLeftVertical.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\lt.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout lt.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\rt.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout rt.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\up.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout up.gif
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/images/layout WS_FTP.LOG
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\x.gif <-- canal /home/ktn10/project/openjoda/content/images/layout x.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\dn.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout dn.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\klammerLeftVertical.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout klammerLeftVertical.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\lt.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout lt.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\rt.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout rt.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\up.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout up.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout WS_FTP.LOG
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\x.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout x.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\dn.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout dn.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\klammerLeftVertical.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout klammerLeftVertical.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\lt.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout lt.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\rt.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout rt.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\up.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout up.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout WS_FTP.LOG
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\x.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout x.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\dn.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout dn.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\klammerLeftVertical.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout klammerLeftVertical.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\lt.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout lt.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\rt.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout rt.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\up.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout up.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\x.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout x.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\dn.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout dn.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\klammerLeftVertical.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout klammerLeftVertical.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\lt.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout lt.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\rt.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout rt.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\layout\up.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/layout up.gif
diff --git a/openjoda/content/images/layout/x.gif b/openjoda/content/images/layout/x.gif
new file mode 100644
index 0000000..6b529cd
Binary files /dev/null and b/openjoda/content/images/layout/x.gif differ
diff --git a/openjoda/content/images/line_bg.gif b/openjoda/content/images/line_bg.gif
new file mode 100644
index 0000000..84d842e
Binary files /dev/null and b/openjoda/content/images/line_bg.gif differ
diff --git a/openjoda/content/images/max.gif b/openjoda/content/images/max.gif
new file mode 100644
index 0000000..e006535
Binary files /dev/null and b/openjoda/content/images/max.gif differ
diff --git a/openjoda/content/images/max2.gif b/openjoda/content/images/max2.gif
new file mode 100644
index 0000000..149ecb0
Binary files /dev/null and b/openjoda/content/images/max2.gif differ
diff --git a/openjoda/content/images/microphone.gif b/openjoda/content/images/microphone.gif
new file mode 100644
index 0000000..fc387d1
Binary files /dev/null and b/openjoda/content/images/microphone.gif differ
diff --git a/openjoda/content/images/min.gif b/openjoda/content/images/min.gif
new file mode 100644
index 0000000..23aebb0
Binary files /dev/null and b/openjoda/content/images/min.gif differ
diff --git a/openjoda/content/images/min2.gif b/openjoda/content/images/min2.gif
new file mode 100644
index 0000000..5e3a227
Binary files /dev/null and b/openjoda/content/images/min2.gif differ
diff --git a/openjoda/content/images/misc-folders/dep.gif b/openjoda/content/images/misc-folders/dep.gif
new file mode 100644
index 0000000..ef5f53d
Binary files /dev/null and b/openjoda/content/images/misc-folders/dep.gif differ
diff --git a/openjoda/content/images/misc-folders/eval.gif b/openjoda/content/images/misc-folders/eval.gif
new file mode 100644
index 0000000..6b805c3
Binary files /dev/null and b/openjoda/content/images/misc-folders/eval.gif differ
diff --git a/openjoda/content/images/misc-folders/home.gif b/openjoda/content/images/misc-folders/home.gif
new file mode 100644
index 0000000..dfa4527
Binary files /dev/null and b/openjoda/content/images/misc-folders/home.gif differ
diff --git a/openjoda/content/images/misc-folders/news.gif b/openjoda/content/images/misc-folders/news.gif
new file mode 100644
index 0000000..b687f58
Binary files /dev/null and b/openjoda/content/images/misc-folders/news.gif differ
diff --git a/openjoda/content/images/misc-folders/prod.gif b/openjoda/content/images/misc-folders/prod.gif
new file mode 100644
index 0000000..b2a5ac0
Binary files /dev/null and b/openjoda/content/images/misc-folders/prod.gif differ
diff --git a/openjoda/content/images/misc-folders/rel.gif b/openjoda/content/images/misc-folders/rel.gif
new file mode 100644
index 0000000..4158628
Binary files /dev/null and b/openjoda/content/images/misc-folders/rel.gif differ
diff --git a/openjoda/content/images/misc-folders/tech.gif b/openjoda/content/images/misc-folders/tech.gif
new file mode 100644
index 0000000..f65e014
Binary files /dev/null and b/openjoda/content/images/misc-folders/tech.gif differ
diff --git a/openjoda/content/images/misc-folders/ws_ftp.log b/openjoda/content/images/misc-folders/ws_ftp.log
new file mode 100644
index 0000000..939c64e
--- /dev/null
+++ b/openjoda/content/images/misc-folders/ws_ftp.log
@@ -0,0 +1,65 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\dep.gif <-- canal /home/ktn10/project/openjoda/content/images/misc-folders dep.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\eval.gif <-- canal /home/ktn10/project/openjoda/content/images/misc-folders eval.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\home.gif <-- canal /home/ktn10/project/openjoda/content/images/misc-folders home.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\news.gif <-- canal /home/ktn10/project/openjoda/content/images/misc-folders news.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\prod.gif <-- canal /home/ktn10/project/openjoda/content/images/misc-folders prod.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\rel.gif <-- canal /home/ktn10/project/openjoda/content/images/misc-folders rel.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\tech.gif <-- canal /home/ktn10/project/openjoda/content/images/misc-folders tech.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\xtra.gif <-- canal /home/ktn10/project/openjoda/content/images/misc-folders xtra.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\dep.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders dep.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\eval.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders eval.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\home.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders home.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\news.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders news.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\prod.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders prod.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\rel.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders rel.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\tech.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders tech.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders WS_FTP.LOG
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\xtra.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders xtra.gif
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\dep.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders dep.gif
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\eval.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders eval.gif
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\home.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders home.gif
+2000.12.17 23:47 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\news.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders news.gif
+2000.12.17 23:48 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\prod.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders prod.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\dep.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders dep.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\eval.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders eval.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\home.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders home.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\news.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders news.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\prod.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders prod.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\rel.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders rel.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\tech.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders tech.gif
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/images/misc-folders WS_FTP.LOG
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\xtra.gif <-- canal /home/ktn10/project/openjoda/content/images/misc-folders xtra.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\dep.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders dep.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\eval.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders eval.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\home.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders home.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\news.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders news.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\prod.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders prod.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\rel.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders rel.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\tech.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders tech.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders WS_FTP.LOG
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\xtra.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders xtra.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\dep.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders dep.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\eval.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders eval.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\home.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders home.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\news.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders news.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\prod.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders prod.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\rel.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders rel.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\tech.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders tech.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders WS_FTP.LOG
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\xtra.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders xtra.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\dep.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders dep.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\eval.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders eval.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\home.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders home.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\news.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders news.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\prod.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders prod.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\rel.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders rel.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\tech.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders tech.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\xtra.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders xtra.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\dep.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders dep.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\eval.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders eval.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\home.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders home.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\news.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders news.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\prod.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders prod.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\rel.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders rel.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\misc-folders\tech.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/misc-folders tech.gif
diff --git a/openjoda/content/images/misc-folders/xtra.gif b/openjoda/content/images/misc-folders/xtra.gif
new file mode 100644
index 0000000..87e1b92
Binary files /dev/null and b/openjoda/content/images/misc-folders/xtra.gif differ
diff --git a/openjoda/content/images/nav_bg_off.jpg b/openjoda/content/images/nav_bg_off.jpg
new file mode 100644
index 0000000..787aad2
Binary files /dev/null and b/openjoda/content/images/nav_bg_off.jpg differ
diff --git a/openjoda/content/images/nav_bg_on.jpg b/openjoda/content/images/nav_bg_on.jpg
new file mode 100644
index 0000000..c3e5a72
Binary files /dev/null and b/openjoda/content/images/nav_bg_on.jpg differ
diff --git a/openjoda/content/images/nav_corner_off.jpg b/openjoda/content/images/nav_corner_off.jpg
new file mode 100644
index 0000000..22cde97
Binary files /dev/null and b/openjoda/content/images/nav_corner_off.jpg differ
diff --git a/openjoda/content/images/nav_corner_on.jpg b/openjoda/content/images/nav_corner_on.jpg
new file mode 100644
index 0000000..ebed203
Binary files /dev/null and b/openjoda/content/images/nav_corner_on.jpg differ
diff --git a/openjoda/content/images/nav_corner_right.jpg b/openjoda/content/images/nav_corner_right.jpg
new file mode 100644
index 0000000..a60aefa
Binary files /dev/null and b/openjoda/content/images/nav_corner_right.jpg differ
diff --git a/openjoda/content/images/nav_left.jpg b/openjoda/content/images/nav_left.jpg
new file mode 100644
index 0000000..9a00578
Binary files /dev/null and b/openjoda/content/images/nav_left.jpg differ
diff --git a/openjoda/content/images/nav_top.jpg b/openjoda/content/images/nav_top.jpg
new file mode 100644
index 0000000..4089162
Binary files /dev/null and b/openjoda/content/images/nav_top.jpg differ
diff --git a/openjoda/content/images/nav_white.gif b/openjoda/content/images/nav_white.gif
new file mode 100644
index 0000000..978d158
Binary files /dev/null and b/openjoda/content/images/nav_white.gif differ
diff --git a/openjoda/content/images/poll/mainbar.gif b/openjoda/content/images/poll/mainbar.gif
new file mode 100644
index 0000000..9f4d3c3
Binary files /dev/null and b/openjoda/content/images/poll/mainbar.gif differ
diff --git a/openjoda/content/images/poll/ws_ftp.log b/openjoda/content/images/poll/ws_ftp.log
new file mode 100644
index 0000000..9d0cff7
--- /dev/null
+++ b/openjoda/content/images/poll/ws_ftp.log
@@ -0,0 +1,12 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\poll\mainbar.gif <-- canal /home/ktn10/project/openjoda/content/images/poll mainbar.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\poll\mainbar.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/poll mainbar.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\poll\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/poll WS_FTP.LOG
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\poll\mainbar.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/poll mainbar.gif
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\poll\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/images/poll WS_FTP.LOG
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\poll\mainbar.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/poll mainbar.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\poll\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/poll WS_FTP.LOG
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\poll\mainbar.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/poll mainbar.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\poll\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/poll WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\poll\mainbar.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/poll mainbar.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\poll\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/poll WS_FTP.LOG
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\poll\mainbar.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/poll mainbar.gif
diff --git a/openjoda/content/images/proto-logo.jpg b/openjoda/content/images/proto-logo.jpg
new file mode 100644
index 0000000..4abbf69
Binary files /dev/null and b/openjoda/content/images/proto-logo.jpg differ
diff --git a/openjoda/content/images/proto-logo.png b/openjoda/content/images/proto-logo.png
new file mode 100644
index 0000000..b9f62db
Binary files /dev/null and b/openjoda/content/images/proto-logo.png differ
diff --git a/openjoda/content/images/search/altavista.gif b/openjoda/content/images/search/altavista.gif
new file mode 100644
index 0000000..21aa2f2
Binary files /dev/null and b/openjoda/content/images/search/altavista.gif differ
diff --git a/openjoda/content/images/search/dejanews.gif b/openjoda/content/images/search/dejanews.gif
new file mode 100644
index 0000000..30c9fbe
Binary files /dev/null and b/openjoda/content/images/search/dejanews.gif differ
diff --git a/openjoda/content/images/search/excite.gif b/openjoda/content/images/search/excite.gif
new file mode 100644
index 0000000..fad5e4f
Binary files /dev/null and b/openjoda/content/images/search/excite.gif differ
diff --git a/openjoda/content/images/search/freshmeat.gif b/openjoda/content/images/search/freshmeat.gif
new file mode 100644
index 0000000..59f56f4
Binary files /dev/null and b/openjoda/content/images/search/freshmeat.gif differ
diff --git a/openjoda/content/images/search/google.gif b/openjoda/content/images/search/google.gif
new file mode 100644
index 0000000..2d43f43
Binary files /dev/null and b/openjoda/content/images/search/google.gif differ
diff --git a/openjoda/content/images/search/hotbot.gif b/openjoda/content/images/search/hotbot.gif
new file mode 100644
index 0000000..29384ca
Binary files /dev/null and b/openjoda/content/images/search/hotbot.gif differ
diff --git a/openjoda/content/images/search/infoseek.gif b/openjoda/content/images/search/infoseek.gif
new file mode 100644
index 0000000..03a9705
Binary files /dev/null and b/openjoda/content/images/search/infoseek.gif differ
diff --git a/openjoda/content/images/search/lycos.gif b/openjoda/content/images/search/lycos.gif
new file mode 100644
index 0000000..6d9ed36
Binary files /dev/null and b/openjoda/content/images/search/lycos.gif differ
diff --git a/openjoda/content/images/search/mediafind.gif b/openjoda/content/images/search/mediafind.gif
new file mode 100644
index 0000000..e46185a
Binary files /dev/null and b/openjoda/content/images/search/mediafind.gif differ
diff --git a/openjoda/content/images/search/webcrawler.gif b/openjoda/content/images/search/webcrawler.gif
new file mode 100644
index 0000000..133f29f
Binary files /dev/null and b/openjoda/content/images/search/webcrawler.gif differ
diff --git a/openjoda/content/images/search/ws_ftp.log b/openjoda/content/images/search/ws_ftp.log
new file mode 100644
index 0000000..dcf8c29
--- /dev/null
+++ b/openjoda/content/images/search/ws_ftp.log
@@ -0,0 +1,81 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\altavista.gif <-- canal /home/ktn10/project/openjoda/content/images/search altavista.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\dejanews.gif <-- canal /home/ktn10/project/openjoda/content/images/search dejanews.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\excite.gif <-- canal /home/ktn10/project/openjoda/content/images/search excite.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\freshmeat.gif <-- canal /home/ktn10/project/openjoda/content/images/search freshmeat.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\google.gif <-- canal /home/ktn10/project/openjoda/content/images/search google.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\hotbot.gif <-- canal /home/ktn10/project/openjoda/content/images/search hotbot.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\infoseek.gif <-- canal /home/ktn10/project/openjoda/content/images/search infoseek.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\lycos.gif <-- canal /home/ktn10/project/openjoda/content/images/search lycos.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\mediafind.gif <-- canal /home/ktn10/project/openjoda/content/images/search mediafind.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\webcrawler.gif <-- canal /home/ktn10/project/openjoda/content/images/search webcrawler.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\yahoo.gif <-- canal /home/ktn10/project/openjoda/content/images/search yahoo.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\altavista.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search altavista.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\dejanews.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search dejanews.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\excite.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search excite.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\freshmeat.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search freshmeat.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\google.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search google.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\hotbot.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search hotbot.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\infoseek.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search infoseek.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\lycos.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search lycos.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\mediafind.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search mediafind.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\webcrawler.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search webcrawler.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search WS_FTP.LOG
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\yahoo.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search yahoo.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\altavista.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search altavista.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\dejanews.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search dejanews.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\excite.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search excite.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\freshmeat.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search freshmeat.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\google.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search google.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\hotbot.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search hotbot.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\infoseek.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search infoseek.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\lycos.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search lycos.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\mediafind.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search mediafind.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\webcrawler.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search webcrawler.gif
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/images/search WS_FTP.LOG
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\yahoo.gif <-- canal /home/ktn10/project/openjoda/content/images/search yahoo.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\altavista.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search altavista.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\dejanews.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search dejanews.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\excite.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search excite.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\freshmeat.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search freshmeat.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\google.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search google.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\hotbot.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search hotbot.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\infoseek.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search infoseek.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\lycos.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search lycos.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\mediafind.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search mediafind.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\webcrawler.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search webcrawler.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search WS_FTP.LOG
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\yahoo.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search yahoo.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\altavista.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search altavista.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\dejanews.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search dejanews.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\excite.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search excite.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\freshmeat.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search freshmeat.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\google.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search google.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\hotbot.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search hotbot.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\infoseek.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search infoseek.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\lycos.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search lycos.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\mediafind.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search mediafind.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\webcrawler.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search webcrawler.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search WS_FTP.LOG
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\yahoo.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search yahoo.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\altavista.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search altavista.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\dejanews.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search dejanews.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\excite.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search excite.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\freshmeat.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search freshmeat.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\google.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search google.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\hotbot.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search hotbot.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\infoseek.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search infoseek.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\lycos.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search lycos.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\mediafind.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search mediafind.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\webcrawler.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search webcrawler.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\yahoo.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search yahoo.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\altavista.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search altavista.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\dejanews.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search dejanews.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\excite.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search excite.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\freshmeat.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search freshmeat.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\google.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search google.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\hotbot.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search hotbot.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\infoseek.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search infoseek.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\lycos.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search lycos.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\mediafind.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search mediafind.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\search\webcrawler.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/search webcrawler.gif
diff --git a/openjoda/content/images/search/yahoo.gif b/openjoda/content/images/search/yahoo.gif
new file mode 100644
index 0000000..dc0a0f2
Binary files /dev/null and b/openjoda/content/images/search/yahoo.gif differ
diff --git a/openjoda/content/images/top0.gif b/openjoda/content/images/top0.gif
new file mode 100644
index 0000000..602f62a
Binary files /dev/null and b/openjoda/content/images/top0.gif differ
diff --git a/openjoda/content/images/top1.gif b/openjoda/content/images/top1.gif
new file mode 100644
index 0000000..91fc2fa
Binary files /dev/null and b/openjoda/content/images/top1.gif differ
diff --git a/openjoda/content/images/top2.gif b/openjoda/content/images/top2.gif
new file mode 100644
index 0000000..3d3789f
Binary files /dev/null and b/openjoda/content/images/top2.gif differ
diff --git a/openjoda/content/images/top3.gif b/openjoda/content/images/top3.gif
new file mode 100644
index 0000000..f947f26
Binary files /dev/null and b/openjoda/content/images/top3.gif differ
diff --git a/openjoda/content/images/top_bg.gif b/openjoda/content/images/top_bg.gif
new file mode 100644
index 0000000..f1d508e
Binary files /dev/null and b/openjoda/content/images/top_bg.gif differ
diff --git a/openjoda/content/images/top_bg2.gif b/openjoda/content/images/top_bg2.gif
new file mode 100644
index 0000000..1795271
Binary files /dev/null and b/openjoda/content/images/top_bg2.gif differ
diff --git a/openjoda/content/images/top_degrade.gif b/openjoda/content/images/top_degrade.gif
new file mode 100644
index 0000000..aa5b8e1
Binary files /dev/null and b/openjoda/content/images/top_degrade.gif differ
diff --git a/openjoda/content/images/top_left.gif b/openjoda/content/images/top_left.gif
new file mode 100644
index 0000000..a1d4902
Binary files /dev/null and b/openjoda/content/images/top_left.gif differ
diff --git a/openjoda/content/images/topics/apache.gif b/openjoda/content/images/topics/apache.gif
new file mode 100644
index 0000000..696bf88
Binary files /dev/null and b/openjoda/content/images/topics/apache.gif differ
diff --git a/openjoda/content/images/topics/ibm.gif b/openjoda/content/images/topics/ibm.gif
new file mode 100644
index 0000000..bafef0d
Binary files /dev/null and b/openjoda/content/images/topics/ibm.gif differ
diff --git a/openjoda/content/images/topics/internet.gif b/openjoda/content/images/topics/internet.gif
new file mode 100644
index 0000000..62465e7
Binary files /dev/null and b/openjoda/content/images/topics/internet.gif differ
diff --git a/openjoda/content/images/topics/java.gif b/openjoda/content/images/topics/java.gif
new file mode 100644
index 0000000..361e292
Binary files /dev/null and b/openjoda/content/images/topics/java.gif differ
diff --git a/openjoda/content/images/topics/jetspeed.gif b/openjoda/content/images/topics/jetspeed.gif
new file mode 100644
index 0000000..3c86e73
Binary files /dev/null and b/openjoda/content/images/topics/jetspeed.gif differ
diff --git a/openjoda/content/images/topics/linux.gif b/openjoda/content/images/topics/linux.gif
new file mode 100644
index 0000000..5fdf70c
Binary files /dev/null and b/openjoda/content/images/topics/linux.gif differ
diff --git a/openjoda/content/images/topics/news.gif b/openjoda/content/images/topics/news.gif
new file mode 100644
index 0000000..67cd14d
Binary files /dev/null and b/openjoda/content/images/topics/news.gif differ
diff --git a/openjoda/content/images/topics/programming.gif b/openjoda/content/images/topics/programming.gif
new file mode 100644
index 0000000..90538d3
Binary files /dev/null and b/openjoda/content/images/topics/programming.gif differ
diff --git a/openjoda/content/images/topics/sun.gif b/openjoda/content/images/topics/sun.gif
new file mode 100644
index 0000000..9b5df57
Binary files /dev/null and b/openjoda/content/images/topics/sun.gif differ
diff --git a/openjoda/content/images/topics/ws_ftp.log b/openjoda/content/images/topics/ws_ftp.log
new file mode 100644
index 0000000..9ca816d
--- /dev/null
+++ b/openjoda/content/images/topics/ws_ftp.log
@@ -0,0 +1,68 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\apache.gif <-- canal /home/ktn10/project/openjoda/content/images/topics apache.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\ibm.gif <-- canal /home/ktn10/project/openjoda/content/images/topics ibm.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\internet.gif <-- canal /home/ktn10/project/openjoda/content/images/topics internet.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\java.gif <-- canal /home/ktn10/project/openjoda/content/images/topics java.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\jetspeed.gif <-- canal /home/ktn10/project/openjoda/content/images/topics jetspeed.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\linux.gif <-- canal /home/ktn10/project/openjoda/content/images/topics linux.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\news.gif <-- canal /home/ktn10/project/openjoda/content/images/topics news.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\programming.gif <-- canal /home/ktn10/project/openjoda/content/images/topics programming.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\sun.gif <-- canal /home/ktn10/project/openjoda/content/images/topics sun.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\apache.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics apache.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\ibm.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics ibm.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\internet.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics internet.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\java.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics java.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\jetspeed.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics jetspeed.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\linux.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics linux.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\news.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics news.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\programming.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics programming.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\sun.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics sun.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics WS_FTP.LOG
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\apache.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics apache.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\ibm.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics ibm.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\internet.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics internet.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\java.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics java.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\jetspeed.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics jetspeed.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\linux.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics linux.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\news.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics news.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\programming.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics programming.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\sun.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics sun.gif
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/images/topics WS_FTP.LOG
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\apache.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics apache.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\ibm.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics ibm.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\internet.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics internet.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\java.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics java.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\jetspeed.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics jetspeed.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\linux.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics linux.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\news.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics news.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\programming.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics programming.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\sun.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics sun.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics WS_FTP.LOG
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\apache.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics apache.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\ibm.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics ibm.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\internet.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics internet.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\java.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics java.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\jetspeed.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics jetspeed.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\linux.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics linux.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\news.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics news.gif
+2000.12.19 17:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\programming.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics programming.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\sun.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics sun.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\apache.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics apache.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\ibm.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics ibm.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\internet.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics internet.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\java.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics java.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\jetspeed.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics jetspeed.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\linux.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics linux.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\news.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics news.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\programming.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics programming.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\sun.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics sun.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics WS_FTP.LOG
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\apache.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics apache.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\ibm.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics ibm.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\internet.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics internet.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\java.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics java.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\jetspeed.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics jetspeed.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\linux.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics linux.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\news.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics news.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\programming.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics programming.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\topics\sun.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/topics sun.gif
diff --git a/openjoda/content/images/tree/ftv2blank.gif b/openjoda/content/images/tree/ftv2blank.gif
new file mode 100644
index 0000000..85df9a3
Binary files /dev/null and b/openjoda/content/images/tree/ftv2blank.gif differ
diff --git a/openjoda/content/images/tree/ftv2doc.gif b/openjoda/content/images/tree/ftv2doc.gif
new file mode 100644
index 0000000..17fd1da
Binary files /dev/null and b/openjoda/content/images/tree/ftv2doc.gif differ
diff --git a/openjoda/content/images/tree/ftv2folderclosed.gif b/openjoda/content/images/tree/ftv2folderclosed.gif
new file mode 100644
index 0000000..f400099
Binary files /dev/null and b/openjoda/content/images/tree/ftv2folderclosed.gif differ
diff --git a/openjoda/content/images/tree/ftv2folderopen.gif b/openjoda/content/images/tree/ftv2folderopen.gif
new file mode 100644
index 0000000..4eca411
Binary files /dev/null and b/openjoda/content/images/tree/ftv2folderopen.gif differ
diff --git a/openjoda/content/images/tree/ftv2lastnode.gif b/openjoda/content/images/tree/ftv2lastnode.gif
new file mode 100644
index 0000000..6df40d2
Binary files /dev/null and b/openjoda/content/images/tree/ftv2lastnode.gif differ
diff --git a/openjoda/content/images/tree/ftv2link.gif b/openjoda/content/images/tree/ftv2link.gif
new file mode 100644
index 0000000..32d3b9e
Binary files /dev/null and b/openjoda/content/images/tree/ftv2link.gif differ
diff --git a/openjoda/content/images/tree/ftv2mlastnode.gif b/openjoda/content/images/tree/ftv2mlastnode.gif
new file mode 100644
index 0000000..11ae43a
Binary files /dev/null and b/openjoda/content/images/tree/ftv2mlastnode.gif differ
diff --git a/openjoda/content/images/tree/ftv2mnode.gif b/openjoda/content/images/tree/ftv2mnode.gif
new file mode 100644
index 0000000..b43ce87
Binary files /dev/null and b/openjoda/content/images/tree/ftv2mnode.gif differ
diff --git a/openjoda/content/images/tree/ftv2node.gif b/openjoda/content/images/tree/ftv2node.gif
new file mode 100644
index 0000000..40167db
Binary files /dev/null and b/openjoda/content/images/tree/ftv2node.gif differ
diff --git a/openjoda/content/images/tree/ftv2plastnode.gif b/openjoda/content/images/tree/ftv2plastnode.gif
new file mode 100644
index 0000000..b87f003
Binary files /dev/null and b/openjoda/content/images/tree/ftv2plastnode.gif differ
diff --git a/openjoda/content/images/tree/ftv2pnode.gif b/openjoda/content/images/tree/ftv2pnode.gif
new file mode 100644
index 0000000..5b68013
Binary files /dev/null and b/openjoda/content/images/tree/ftv2pnode.gif differ
diff --git a/openjoda/content/images/tree/ftv2vertline.gif b/openjoda/content/images/tree/ftv2vertline.gif
new file mode 100644
index 0000000..63ee93a
Binary files /dev/null and b/openjoda/content/images/tree/ftv2vertline.gif differ
diff --git a/openjoda/content/images/tree/ws_ftp.log b/openjoda/content/images/tree/ws_ftp.log
new file mode 100644
index 0000000..b5db25d
--- /dev/null
+++ b/openjoda/content/images/tree/ws_ftp.log
@@ -0,0 +1,50 @@
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2blank.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2blank.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2doc.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2doc.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2folderclosed.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2folderclosed.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2folderopen.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2folderopen.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2lastnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2lastnode.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2link.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2link.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2mlastnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2mlastnode.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2mnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2mnode.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2node.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2node.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2plastnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2plastnode.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2pnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2pnode.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2vertline.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2vertline.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2blank.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2blank.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2doc.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2doc.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2folderclosed.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2folderclosed.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2folderopen.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2folderopen.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2lastnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2lastnode.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2link.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2link.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2mlastnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2mlastnode.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2mnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2mnode.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2node.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2node.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2plastnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2plastnode.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2pnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2pnode.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2vertline.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2vertline.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree WS_FTP.LOG
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2blank.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2blank.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2doc.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2doc.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2folderclosed.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2folderclosed.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2folderopen.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2folderopen.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2lastnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2lastnode.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2link.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2link.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2mlastnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2mlastnode.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2mnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2mnode.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2node.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2node.gif
+2000.12.19 22:29 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2plastnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2plastnode.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2pnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2pnode.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2vertline.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2vertline.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree WS_FTP.LOG
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2blank.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2blank.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2doc.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2doc.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2folderclosed.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2folderclosed.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2folderopen.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2folderopen.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2lastnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2lastnode.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2link.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2link.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2mlastnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2mlastnode.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2mnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2mnode.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2node.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2node.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2plastnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2plastnode.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2pnode.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2pnode.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\tree\ftv2vertline.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images/tree ftv2vertline.gif
diff --git a/openjoda/content/images/trikx_top.jpg b/openjoda/content/images/trikx_top.jpg
new file mode 100644
index 0000000..15ec0d0
Binary files /dev/null and b/openjoda/content/images/trikx_top.jpg differ
diff --git a/openjoda/content/images/ws_ftp.log b/openjoda/content/images/ws_ftp.log
new file mode 100644
index 0000000..efc9633
--- /dev/null
+++ b/openjoda/content/images/ws_ftp.log
@@ -0,0 +1,360 @@
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\1by1.gif <-- canal /home/ktn10/project/openjoda/content/images 1by1.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\arrow_down.gif <-- canal /home/ktn10/project/openjoda/content/images arrow_down.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\arrow_up.gif <-- canal /home/ktn10/project/openjoda/content/images arrow_up.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bg_fictive.jpg <-- canal /home/ktn10/project/openjoda/content/images bg_fictive.jpg
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\black.gif <-- canal /home/ktn10/project/openjoda/content/images black.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom.gif <-- canal /home/ktn10/project/openjoda/content/images bottom.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_bg.gif <-- canal /home/ktn10/project/openjoda/content/images bottom_bg.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_left.gif <-- canal /home/ktn10/project/openjoda/content/images bottom_left.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_right.gif <-- canal /home/ktn10/project/openjoda/content/images bottom_right.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bullet.gif <-- canal /home/ktn10/project/openjoda/content/images bullet.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\close.gif <-- canal /home/ktn10/project/openjoda/content/images close.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\close2.gif <-- canal /home/ktn10/project/openjoda/content/images close2.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\divider.gif <-- canal /home/ktn10/project/openjoda/content/images divider.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\edit.gif <-- canal /home/ktn10/project/openjoda/content/images edit.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\feather.gif <-- canal /home/ktn10/project/openjoda/content/images feather.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\fictive.jpg <-- canal /home/ktn10/project/openjoda/content/images fictive.jpg
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\folder.gif <-- canal /home/ktn10/project/openjoda/content/images folder.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\gears.gif <-- canal /home/ktn10/project/openjoda/content/images gears.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda.jpg <-- canal /home/ktn10/project/openjoda/content/images header_openjoda.jpg
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda_new.jpg <-- canal /home/ktn10/project/openjoda/content/images header_openjoda_new.jpg
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda_original.jpg <-- canal /home/ktn10/project/openjoda/content/images header_openjoda_original.jpg
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\java-apache-project.gif <-- canal /home/ktn10/project/openjoda/content/images java-apache-project.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\jetspeed-logo.gif <-- canal /home/ktn10/project/openjoda/content/images jetspeed-logo.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\jetspeed-powered.gif <-- canal /home/ktn10/project/openjoda/content/images jetspeed-powered.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\line_bg.gif <-- canal /home/ktn10/project/openjoda/content/images line_bg.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\max.gif <-- canal /home/ktn10/project/openjoda/content/images max.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\max2.gif <-- canal /home/ktn10/project/openjoda/content/images max2.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\microphone.gif <-- canal /home/ktn10/project/openjoda/content/images microphone.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\min.gif <-- canal /home/ktn10/project/openjoda/content/images min.gif
+2000.12.10 01:39 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\min2.gif <-- canal /home/ktn10/project/openjoda/content/images min2.gif
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_bg_off.jpg <-- canal /home/ktn10/project/openjoda/content/images nav_bg_off.jpg
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_bg_on.jpg <-- canal /home/ktn10/project/openjoda/content/images nav_bg_on.jpg
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_off.jpg <-- canal /home/ktn10/project/openjoda/content/images nav_corner_off.jpg
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_on.jpg <-- canal /home/ktn10/project/openjoda/content/images nav_corner_on.jpg
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_right.jpg <-- canal /home/ktn10/project/openjoda/content/images nav_corner_right.jpg
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_left.jpg <-- canal /home/ktn10/project/openjoda/content/images nav_left.jpg
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_top.jpg <-- canal /home/ktn10/project/openjoda/content/images nav_top.jpg
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_white.gif <-- canal /home/ktn10/project/openjoda/content/images nav_white.gif
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\openjoda_top.jpg <-- canal /home/ktn10/project/openjoda/content/images openjoda_top.jpg
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top0.gif <-- canal /home/ktn10/project/openjoda/content/images top0.gif
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top1.gif <-- canal /home/ktn10/project/openjoda/content/images top1.gif
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top2.gif <-- canal /home/ktn10/project/openjoda/content/images top2.gif
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top3.gif <-- canal /home/ktn10/project/openjoda/content/images top3.gif
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_bg.gif <-- canal /home/ktn10/project/openjoda/content/images top_bg.gif
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_bg2.gif <-- canal /home/ktn10/project/openjoda/content/images top_bg2.gif
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_degrade.gif <-- canal /home/ktn10/project/openjoda/content/images top_degrade.gif
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_left.gif <-- canal /home/ktn10/project/openjoda/content/images top_left.gif
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\xo3-small1.jpg <-- canal /home/ktn10/project/openjoda/content/images xo3-small1.jpg
+2000.12.17 15:38 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\proto-logo.png <-- canal /home/ktn10/psl/psl/trikx/impl proto-logo.png
+2000.12.17 16:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\proto-logo.png <-- canal /home/ktn10/psl/psl/trikx/impl proto-logo.png
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\1by1.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images 1by1.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\arrow_down.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images arrow_down.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\arrow_up.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images arrow_up.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bg_fictive.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bg_fictive.jpg
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\black.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images black.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_bg.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_left.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_left.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_right.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_right.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bullet.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bullet.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\close.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images close.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\close2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images close2.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\divider.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images divider.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\edit.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images edit.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\feather.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images feather.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\fictive.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images fictive.jpg
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\folder.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images folder.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\gears.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images gears.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda.jpg
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda_new.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda_new.jpg
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda_original.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda_original.jpg
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\java-apache-project.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images java-apache-project.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\jetspeed-logo.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images jetspeed-logo.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\jetspeed-powered.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images jetspeed-powered.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\line_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images line_bg.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\max.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images max.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\max2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images max2.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\microphone.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images microphone.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\min.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images min.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\min2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images min2.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_bg_off.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_bg_off.jpg
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_bg_on.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_bg_on.jpg
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_off.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_off.jpg
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_on.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_on.jpg
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_right.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_right.jpg
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_left.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_left.jpg
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_top.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_top.jpg
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_white.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_white.gif
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\openjoda_top.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images openjoda_top.jpg
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\proto-logo.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images proto-logo.jpg
+2000.12.17 16:52 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\proto-logo.png --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images proto-logo.png
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top0.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top0.gif
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top1.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top1.gif
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top2.gif
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top3.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top3.gif
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_bg.gif
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_bg2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_bg2.gif
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_degrade.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_degrade.gif
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_left.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_left.gif
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images WS_FTP.LOG
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\xo3-small1.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images xo3-small1.jpg
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\1by1.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images 1by1.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\arrow_down.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images arrow_down.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\arrow_up.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images arrow_up.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bg_fictive.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bg_fictive.jpg
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\black.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images black.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_bg.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_left.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_left.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_right.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_right.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bullet.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bullet.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\close.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images close.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\close2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images close2.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\divider.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images divider.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\edit.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images edit.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\feather.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images feather.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\fictive.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images fictive.jpg
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\folder.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images folder.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\gears.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images gears.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda.jpg
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda_new.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda_new.jpg
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda_original.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda_original.jpg
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\java-apache-project.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images java-apache-project.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\jetspeed-logo.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images jetspeed-logo.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\jetspeed-powered.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images jetspeed-powered.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\line_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images line_bg.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\max.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images max.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\max2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images max2.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\microphone.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images microphone.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\min.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images min.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\min2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images min2.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_bg_off.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_bg_off.jpg
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_bg_on.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_bg_on.jpg
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_off.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_off.jpg
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_on.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_on.jpg
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_right.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_right.jpg
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_left.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_left.jpg
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_top.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_top.jpg
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_white.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_white.gif
+2000.12.17 23:54 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\openjoda_top.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images openjoda_top.jpg
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\proto-logo.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images proto-logo.jpg
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\proto-logo.png --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images proto-logo.png
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top0.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top0.gif
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top1.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top1.gif
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top2.gif
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top3.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top3.gif
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_bg.gif
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_bg2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_bg2.gif
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_degrade.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_degrade.gif
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_left.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_left.gif
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/images WS_FTP.LOG
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\xo3-small1.jpg <-- canal /home/ktn10/project/openjoda/content/images xo3-small1.jpg
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\1by1.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images 1by1.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\arrow_down.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images arrow_down.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\arrow_up.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images arrow_up.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bg_fictive.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bg_fictive.jpg
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\black.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images black.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_bg.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_left.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_left.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_right.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_right.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bullet.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bullet.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\close.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images close.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\close2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images close2.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\divider.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images divider.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\edit.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images edit.gif
+2000.12.18 14:11 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\feather.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images feather.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\fictive.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images fictive.jpg
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\folder.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images folder.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\gears.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images gears.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda.jpg
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda_new.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda_new.jpg
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda_original.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda_original.jpg
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\java-apache-project.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images java-apache-project.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\jetspeed-logo.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images jetspeed-logo.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\jetspeed-powered.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images jetspeed-powered.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\line_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images line_bg.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\max.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images max.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\max2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images max2.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\microphone.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images microphone.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\min.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images min.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\min2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images min2.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_bg_off.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_bg_off.jpg
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_bg_on.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_bg_on.jpg
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_off.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_off.jpg
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_on.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_on.jpg
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_right.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_right.jpg
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_left.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_left.jpg
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_top.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_top.jpg
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_white.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_white.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\openjoda_top.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images openjoda_top.jpg
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\proto-logo.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images proto-logo.jpg
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\proto-logo.png --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images proto-logo.png
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top0.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top0.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top1.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top1.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top2.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top3.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top3.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_bg.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_bg2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_bg2.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_degrade.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_degrade.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_left.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_left.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images WS_FTP.LOG
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\xo3-small1.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images xo3-small1.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\1by1.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images 1by1.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\arrow_down.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images arrow_down.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\arrow_up.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images arrow_up.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bg_fictive.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bg_fictive.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\black.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images black.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_bg.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_left.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_left.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_right.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_right.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bullet.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bullet.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\close.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images close.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\close2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images close2.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\divider.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images divider.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\edit.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images edit.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\feather.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images feather.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\fictive.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images fictive.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\folder.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images folder.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\gauge.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images gauge.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\gears.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images gears.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda_new.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda_new.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda_original.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda_original.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\indus.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images indus.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\java-apache-project.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images java-apache-project.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\jetspeed-logo.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images jetspeed-logo.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\jetspeed-powered.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images jetspeed-powered.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\line_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images line_bg.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\max.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images max.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\max2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images max2.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\microphone.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images microphone.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\min.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images min.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\min2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images min2.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_bg_off.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_bg_off.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_bg_on.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_bg_on.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_off.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_off.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_on.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_on.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_right.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_right.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_left.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_left.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_top.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_top.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_white.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_white.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\proto-logo.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images proto-logo.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\proto-logo.png --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images proto-logo.png
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top0.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top0.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top1.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top1.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top2.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top3.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top3.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_bg.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_bg2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_bg2.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_degrade.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_degrade.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_left.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_left.gif
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\trikx_top.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images trikx_top.jpg
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images WS_FTP.LOG
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\xo3-small1.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images xo3-small1.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\1by1.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images 1by1.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\arrow_down.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images arrow_down.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\arrow_up.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images arrow_up.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bg_fictive.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bg_fictive.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\black.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images black.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_bg.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_left.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_left.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_right.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_right.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bullet.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bullet.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\close.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images close.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\close2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images close2.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\divider.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images divider.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\edit.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images edit.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\feather.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images feather.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\fictive.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images fictive.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\folder.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images folder.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\gauge.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images gauge.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\gears.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images gears.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda_new.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda_new.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda_original.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda_original.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\indus.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images indus.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\java-apache-project.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images java-apache-project.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\jetspeed-logo.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images jetspeed-logo.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\jetspeed-powered.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images jetspeed-powered.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\line_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images line_bg.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\max.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images max.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\max2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images max2.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\microphone.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images microphone.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\min.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images min.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\min2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images min2.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_bg_off.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_bg_off.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_bg_on.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_bg_on.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_off.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_off.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_on.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_on.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_right.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_right.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_left.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_left.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_top.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_top.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_white.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_white.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\proto-logo.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images proto-logo.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\proto-logo.png --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images proto-logo.png
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top0.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top0.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top1.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top1.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top2.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top3.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top3.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_bg.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_bg2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_bg2.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_degrade.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_degrade.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_left.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_left.gif
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\trikx_top.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images trikx_top.jpg
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images WS_FTP.LOG
+2000.12.19 22:30 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\xo3-small1.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images xo3-small1.jpg
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\1by1.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images 1by1.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\arrow_down.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images arrow_down.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\arrow_up.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images arrow_up.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bg_fictive.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bg_fictive.jpg
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\black.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images black.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_bg.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_left.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_left.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bottom_right.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bottom_right.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\bullet.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images bullet.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\close.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images close.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\close2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images close2.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\divider.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images divider.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\edit.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images edit.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\feather.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images feather.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\fictive.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images fictive.jpg
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\folder.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images folder.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\gauge.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images gauge.jpg
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\gears.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images gears.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda.jpg
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda_new.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda_new.jpg
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\header_openjoda_original.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images header_openjoda_original.jpg
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\indus.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images indus.jpg
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\java-apache-project.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images java-apache-project.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\jetspeed-logo.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images jetspeed-logo.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\jetspeed-powered.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images jetspeed-powered.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\line_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images line_bg.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\max.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images max.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\max2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images max2.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\microphone.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images microphone.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\min.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images min.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\min2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images min2.gif
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_bg_off.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_bg_off.jpg
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_bg_on.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_bg_on.jpg
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_off.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_off.jpg
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_on.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_on.jpg
+2000.12.19 22:33 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_corner_right.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_corner_right.jpg
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_left.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_left.jpg
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_top.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_top.jpg
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\nav_white.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images nav_white.gif
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\proto-logo.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images proto-logo.jpg
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\proto-logo.png --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images proto-logo.png
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top0.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top0.gif
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top1.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top1.gif
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top2.gif
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top3.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top3.gif
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_bg.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_bg.gif
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_bg2.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_bg2.gif
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_degrade.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_degrade.gif
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\top_left.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images top_left.gif
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\images\trikx_top.jpg --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/images trikx_top.jpg
diff --git a/openjoda/content/images/xo3-small1.jpg b/openjoda/content/images/xo3-small1.jpg
new file mode 100644
index 0000000..c84d770
Binary files /dev/null and b/openjoda/content/images/xo3-small1.jpg differ
diff --git a/openjoda/content/java/AddPortal.java b/openjoda/content/java/AddPortal.java
new file mode 100644
index 0000000..064d674
--- /dev/null
+++ b/openjoda/content/java/AddPortal.java
@@ -0,0 +1,79 @@
+import java.io.*;
+
+/**
+This will allow a user to add a portlet in the .psml file.
+Not fully functional yet.
+*/
+public class AddPortal
+{
+    public AddPortal()
+    {
+    }
+
+    public static void main(String[] args)
+    {
+        if(args.length != 2)
+        {
+            System.out.println("Usage: java AddPortal <portal name> <account name>");
+            System.exit(1);
+        }
+        String portal = args[0];
+        String accountName = args[1];
+        String fileName = "..\\psml\\" + accountName + ".psml";
+        System.out.println(fileName);
+        File layoutFile = new File(fileName);
+        if(!layoutFile.exists())
+        {
+            System.out.println("Account "+ accountName + " does not exist.");
+            System.exit(2);
+        }
+
+        BufferedReader input = null;
+        try
+        {
+            input = new BufferedReader(new FileReader(layoutFile));
+        }
+        catch( Exception e )
+        {
+            System.out.println("Exception: " + e);
+        }
+        BufferedWriter output = null;
+        String temp = "..\\psml\\temp.psml";
+        File tempFile = new File(temp);
+
+        try
+        {
+            output = new BufferedWriter(new FileWriter(tempFile));
+        }
+        catch( Exception e )
+        {
+            System.out.println("Exception: " + e);
+        }
+
+       // char cbuf = new char[80];
+        String line1 = null;
+        try
+        {
+            line1 = input.readLine();
+        }
+        catch(Exception e)
+        {
+            System.out.println("Exception: " + e);
+        }
+        int index = line1.lastIndexOf("position=");
+        String temp1 = line1.substring(index, index + 8);
+        int index1 = line1.indexOf('"', index+10);
+        String num = line1.substring(index+9, index1);
+        System.out.println(temp1 +" "+ num);
+
+        try
+        {
+            input.close();
+            output.close();
+        }
+        catch(Exception ex1)
+        {
+            System.out.println("Exception: " + ex1);
+        }
+    }
+}
\ No newline at end of file
diff --git a/openjoda/content/java/FileDownload.java b/openjoda/content/java/FileDownload.java
new file mode 100644
index 0000000..bd01ee8
--- /dev/null
+++ b/openjoda/content/java/FileDownload.java
@@ -0,0 +1,58 @@
+import java.io.*;
+import java.net.*;
+
+/**
+A code to download a file from a specified URL
+The file will be downloaded to a location specified
+by "detination" parameter
+*/
+public class FileDownload
+{
+    public FileDownload()
+    {
+    }
+
+    //public static void main (String[] args)
+    public String download(URL url, String destination)
+    {
+        int dataread = 0;
+        int count = 0;
+        int CHUNK_SIZE = 8192; // TCP/IP packet size
+        byte[] dataChunk = new byte[CHUNK_SIZE]; // byte array for
+        HttpURLConnection huc = null;
+        String msg =  null;
+
+        try
+        {
+            huc = (HttpURLConnection) url.openConnection();
+            File destinationFile = new File(destination);
+            FileOutputStream fos = new FileOutputStream(destinationFile);
+            BufferedOutputStream bos = new BufferedOutputStream(fos);
+
+            // receive the file using a BufferedReader
+            BufferedInputStream bis = new BufferedInputStream(
+            huc.getInputStream());
+            InputStreamReader isr = new InputStreamReader(bis);
+            BufferedReader br = new BufferedReader(isr);
+            System.out.print("Downloading..");
+            while (dataread >= 0)
+            {
+                count++;
+                dataread = bis.read(dataChunk,0,CHUNK_SIZE);
+                System.out.print(".");
+                if (dataread > 0 )
+                bos.write(dataChunk,0,dataread);
+            }
+            System.out.println(count*CHUNK_SIZE + " bytes done.");
+
+        bis.close();
+        bos.close();
+      }
+      catch(Exception e)
+      {
+        System.out.println(e);
+        msg = "" + e;
+      }
+      return msg;
+    }
+}
\ No newline at end of file
diff --git a/openjoda/content/java/PageRefresher.java b/openjoda/content/java/PageRefresher.java
new file mode 100644
index 0000000..ec44166
--- /dev/null
+++ b/openjoda/content/java/PageRefresher.java
@@ -0,0 +1,60 @@
+import java.io.*;
+import java.net.*;
+
+/**
+The "refresh" method will be called when TriKX
+server will receive an event from any component
+of the KX. It will specify an event name that is
+related to a specific component
+*/
+public class PageRefresher
+{
+    public PageRefresher()
+    {
+    }
+
+    public String refresh(String event)
+    //public static void main(String [] args)
+	{
+	    String msg1 = null;
+		//if(args.length != 1)
+		//{
+			//System .out.println("Usage: java PageRefresher <page name>. Valid <page name> is : 'oracle'");
+		//	System.exit(1);
+		//}
+		//String pageName = args[0];
+		if (event.compareTo("oracle") == 0)
+		{
+		    URL url = null;
+		    try
+		    {
+		    url = new URL("http://localhost/psl/oracle/trikx/oracle.html");
+		    }
+		    catch(Exception e)
+		    {
+		        msg1 = "Exception: "+ e;
+		    }
+		    //harcoded for now - should be removed after packaging
+		    //of TriKX server files with the psl package
+		    String destination  = "d:\\kanan\\project\\openjoda\\tomcat\\webapps\\root\\content\\static\\oracle.html";
+		    //String destination  = "..//static//oracle.html";
+		    FileDownload fd = new FileDownload();
+		    String msg = fd.download(url, destination);
+		    if (msg == null)
+		    {
+		        //System.out.println("Download is successful.");
+		    }
+		    else
+		    {
+		        msg1 = "Exception while downloading: " + msg;
+		    }
+			//paste code of file download here
+		}
+		else //modify later for other components
+		{
+			msg1 = "Usage: java PageRefresher <page name>. Valid <page name> is : 'oracle'";
+			//System.exit(1);
+		}
+		return msg1;
+	}
+}
\ No newline at end of file
diff --git a/openjoda/content/java/TriKXSienaInterface.java b/openjoda/content/java/TriKXSienaInterface.java
new file mode 100644
index 0000000..754acb9
--- /dev/null
+++ b/openjoda/content/java/TriKXSienaInterface.java
@@ -0,0 +1,99 @@
+import java.io.*;
+import java.net.*;
+import java.lang.*;
+
+import siena.*;
+
+/**
+This will be used to sunscribe to a Siena server and
+to receive the events from various components of KX
+*/
+public class TriKXSienaInterface implements Runnable, Notifiable
+{
+    static Siena si = null;
+    public TriKXSienaInterface(Siena s)
+    {
+        this.si = s;
+    }
+
+    public TriKXSienaInterface()
+    {
+    }
+
+
+    public static void main(String[] args)
+    {
+        String master = "senp://localhost:31337";
+        if (args.length > 0)
+        {
+            master = args[0];
+        }
+        HierarchicalDispatcher hd = new HierarchicalDispatcher();
+        try
+        {
+            hd.setMaster(master);
+            System.out.println("TriKX master is " + master);
+        }
+        catch(siena.InvalidHandlerException e)
+        {
+          e.printStackTrace();
+        }
+        catch(IOException ex)
+        {
+            ex.printStackTrace();
+        }
+
+        TriKXSienaInterface tsi = new TriKXSienaInterface(hd);
+        Thread t = new Thread(tsi);
+        t.start();
+    }
+
+
+    public void run()//subscribe to "trikxEvent"
+    {
+        Filter f = new Filter();
+        f.addConstraint("type", "trikxEvent");
+        try
+        {
+            si.subscribe(f, this);
+        }
+        catch(siena.SienaException se)
+        {
+            se.printStackTrace();
+        }
+        System.out.println("TriKX is subscribed to " + f);
+    }
+
+    public void notify(Notification n)//called when event is received
+    {
+         AttributeValue av = n.getAttribute("trikxEvent");
+         if (av != null)
+         {
+            String event = av.stringValue();
+            System.out.println("TriKX got an event: " + event);
+            PageRefresher ref = new PageRefresher();
+            String msg = ref.refresh(event);
+            if(msg == null)
+            {
+                System.out.println("Code download is successful");
+            }
+            else
+            {
+                System.out.println("" + msg);
+            }
+         }
+         else
+         {
+            System.out.println("TriKX error: Oracle event is null.");
+         }
+    }
+
+
+
+    public void notify(Notification[] no)
+
+    {
+
+    }
+
+}
\ No newline at end of file
diff --git a/openjoda/content/java/ws_ftp.log b/openjoda/content/java/ws_ftp.log
new file mode 100644
index 0000000..51ffc16
--- /dev/null
+++ b/openjoda/content/java/ws_ftp.log
@@ -0,0 +1,39 @@
+2000.12.17 15:38 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\PageRefresher.java <-- canal /home/ktn10/psl/psl/trikx/impl PageRefresher.java
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\FileDownload.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java FileDownload.class
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\FileDownload.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java FileDownload.java
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\PageRefresher.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java PageRefresher.class
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\PageRefresher.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java PageRefresher.java
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java WS_FTP.LOG
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\FileDownload.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java FileDownload.class
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\FileDownload.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java FileDownload.java
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\PageRefresher.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java PageRefresher.class
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\PageRefresher.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java PageRefresher.java
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\TriKXSienaInterface.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java TriKXSienaInterface.class
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\TriKXSienaInterface.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java TriKXSienaInterface.java
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/java WS_FTP.LOG
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\AddPortal.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java AddPortal.java
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\FileDownload.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java FileDownload.class
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\FileDownload.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java FileDownload.java
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\PageRefresher.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java PageRefresher.class
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\PageRefresher.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java PageRefresher.java
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\TriKXSienaInterface.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java TriKXSienaInterface.class
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\TriKXSienaInterface.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java TriKXSienaInterface.java
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java WS_FTP.LOG
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\AddPortal.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java AddPortal.class
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\AddPortal.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java AddPortal.java
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\FileDownload.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java FileDownload.class
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\FileDownload.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java FileDownload.java
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\PageRefresher.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java PageRefresher.class
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\PageRefresher.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java PageRefresher.java
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\TriKXSienaInterface.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java TriKXSienaInterface.class
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\TriKXSienaInterface.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java TriKXSienaInterface.java
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java WS_FTP.LOG
+2000.12.19 22:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\AddPortal.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java AddPortal.class
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\AddPortal.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java AddPortal.class
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\AddPortal.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java AddPortal.java
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\FileDownload.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java FileDownload.class
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\FileDownload.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java FileDownload.java
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\PageRefresher.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java PageRefresher.class
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\PageRefresher.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java PageRefresher.java
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\TriKXSienaInterface.class --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java TriKXSienaInterface.class
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\java\TriKXSienaInterface.java --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/java TriKXSienaInterface.java
diff --git a/openjoda/content/javascript/Copy of ftiens4.js b/openjoda/content/javascript/Copy of ftiens4.js
new file mode 100644
index 0000000..e5df873
--- /dev/null
+++ b/openjoda/content/javascript/Copy of ftiens4.js
@@ -0,0 +1,464 @@
+//****************************************************************
+// You are free to copy the "Folder-Tree" script as long as you
+// keep this copyright notice:
+// Script found in: http://www.geocities.com/Paris/LeftBank/2178/
+// Author: Marcelino Alves Martins (martins@hks.com) December '97.
+//****************************************************************
+
+//Log of changes:
+//       17 Feb 98 - Fix initialization flashing problem with Netscape
+//
+//       27 Jan 98 - Root folder starts open; support for USETEXTLINKS;
+//                   make the ftien4 a js file
+//
+
+
+// Definition of class Folder
+// *****************************************************************
+
+function Folder(folderDescription, hreference) //constructor
+{
+  //constant data
+  this.desc = folderDescription
+  this.hreference = hreference
+  this.id = -1
+  this.navObj = 0
+  this.iconImg = 0
+  this.nodeImg = 0
+  this.isLastNode = 0
+
+  //dynamic data
+  this.isOpen = true
+  this.iconSrc = "/content/images/tree/ftv2folderopen.gif"
+  this.children = new Array
+  this.nChildren = 0
+
+  //methods
+  this.initialize = initializeFolder
+  this.setState = setStateFolder
+  this.addChild = addChild
+  this.createIndex = createEntryIndex
+  this.hide = hideFolder
+  this.display = display
+  this.renderOb = drawFolder
+  this.totalHeight = totalHeight
+  this.subEntries = folderSubEntries
+  this.outputLink = outputFolderLink
+}
+
+function setStateFolder(isOpen)
+{
+  var subEntries
+  var totalHeight
+  var fIt = 0
+  var i=0
+
+  if (isOpen == this.isOpen)
+    return
+
+  if (browserVersion == 2)
+  {
+    totalHeight = 0
+    for (i=0; i < this.nChildren; i++)
+      totalHeight = totalHeight + this.children[i].navObj.clip.height
+      subEntries = this.subEntries()
+    if (this.isOpen)
+      totalHeight = 0 - totalHeight
+    for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++)
+      indexOfEntries[fIt].navObj.moveBy(0, totalHeight)
+  }
+  this.isOpen = isOpen
+  propagateChangesInState(this)
+}
+
+function propagateChangesInState(folder)
+{
+  var i=0
+
+  if (folder.isOpen)
+  {
+    if (folder.nodeImg)
+      if (folder.isLastNode)
+        folder.nodeImg.src = "/content/images/tree/ftv2mlastnode.gif"
+      else
+	  folder.nodeImg.src = "/content/images/tree/ftv2mnode.gif"
+    folder.iconImg.src = "/content/images/tree/ftv2folderopen.gif"
+    for (i=0; i<folder.nChildren; i++)
+      folder.children[i].display()
+  }
+  else
+  {
+    if (folder.nodeImg)
+      if (folder.isLastNode)
+        folder.nodeImg.src = "/content/images/tree/ftv2plastnode.gif"
+      else
+	  folder.nodeImg.src = "/content/images/tree/ftv2pnode.gif"
+    folder.iconImg.src = "/content/images/tree/ftv2folderclosed.gif"
+    for (i=0; i<folder.nChildren; i++)
+      folder.children[i].hide()
+  }
+}
+
+function hideFolder()
+{
+  if (browserVersion == 1) {
+    if (this.navObj.style.display == "none")
+      return
+    this.navObj.style.display = "none"
+  } else {
+    if (this.navObj.visibility == "hiden")
+      return
+    this.navObj.visibility = "hiden"
+  }
+
+  this.setState(0)
+}
+
+function initializeFolder(level, lastNode, leftSide)
+{
+var j=0
+var i=0
+var numberOfFolders
+var numberOfDocs
+var nc
+
+  nc = this.nChildren
+
+  this.createIndex()
+
+  var auxEv = ""
+
+  if (browserVersion > 0)
+    auxEv = "<a href='javascript:clickOnNode("+this.id+")'>"
+  else
+    auxEv = "<a>"
+
+  if (level>0)
+    if (lastNode) //the last 'brother' in the children array
+    {
+      this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='/content/images/tree/ftv2mlastnode.gif' width=16 height=22 border=0></a>")
+      leftSide = leftSide + "<img src='/content/images/tree/ftv2blank.gif' width=16 height=22>"
+      this.isLastNode = 1
+    }
+    else
+    {
+      this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='/content/images/tree/ftv2mnode.gif' width=16 height=22 border=0></a>")
+      leftSide = leftSide + "<img src='/content/images/tree/ftv2vertline.gif' width=16 height=22>"
+      this.isLastNode = 0
+    }
+  else
+    this.renderOb("")
+
+  if (nc > 0)
+  {
+    level = level + 1
+    for (i=0 ; i < this.nChildren; i++)
+    {
+      if (i == this.nChildren-1)
+        this.children[i].initialize(level, 1, leftSide)
+      else
+        this.children[i].initialize(level, 0, leftSide)
+      }
+  }
+}
+
+function drawFolder(leftSide)
+{
+  if (browserVersion == 2) {
+    if (!doc.yPos)
+      doc.yPos=8
+    doc.write("<layer id='folder" + this.id + "' top=" + doc.yPos + " visibility=hiden>")
+  }
+
+  doc.write("<table ")
+  if (browserVersion == 1)
+    doc.write(" id='folder" + this.id + "' style='position:block;' ")
+  doc.write(" border=0 cellspacing=0 cellpadding=0>")
+  doc.write("<tr><td>")
+  doc.write(leftSide)
+  this.outputLink()
+  doc.write("<img name='folderIcon" + this.id + "' ")
+  doc.write("src='" + this.iconSrc+"' border=0></a>")
+  doc.write("</td><td valign=middle nowrap>")
+  if (USETEXTLINKS)
+  {
+    this.outputLink()
+    doc.write(this.desc + "</a>")
+  }
+  else
+    doc.write(this.desc)
+  doc.write("</td>")
+  doc.write("</table>")
+
+  if (browserVersion == 2) {
+    doc.write("</layer>")
+  }
+
+  if (browserVersion == 1) {
+    this.navObj = doc.all["folder"+this.id]
+    this.iconImg = doc.all["folderIcon"+this.id]
+    this.nodeImg = doc.all["nodeIcon"+this.id]
+  } else if (browserVersion == 2) {
+    this.navObj = doc.layers["folder"+this.id]
+    this.iconImg = this.navObj.document.images["folderIcon"+this.id]
+    this.nodeImg = this.navObj.document.images["nodeIcon"+this.id]
+    doc.yPos=doc.yPos+this.navObj.clip.height
+  }
+}
+
+function outputFolderLink()
+{
+  if (this.hreference)
+  {
+    doc.write("<a href='" + this.hreference + "' TARGET=\"basefrm\" ")
+    if (browserVersion > 0)
+      doc.write("onClick='javascript:clickOnFolder("+this.id+")'")
+    doc.write(">")
+  }
+  else
+    doc.write("<a>")
+//  doc.write("<a href='javascript:clickOnFolder("+this.id+")'>")
+}
+
+function addChild(childNode)
+{
+  this.children[this.nChildren] = childNode
+  this.nChildren++
+  return childNode
+}
+
+function folderSubEntries()
+{
+  var i = 0
+  var se = this.nChildren
+
+  for (i=0; i < this.nChildren; i++){
+    if (this.children[i].children) //is a folder
+      se = se + this.children[i].subEntries()
+  }
+
+  return se
+}
+
+
+// Definition of class Item (a document or link inside a Folder)
+// *************************************************************
+
+function Item(itemDescription, itemLink) // Constructor
+{
+  // constant data
+  this.desc = itemDescription
+  this.link = itemLink
+  this.id = -1 //initialized in initalize()
+  this.navObj = 0 //initialized in render()
+  this.iconImg = 0 //initialized in render()
+  this.iconSrc = "/content/images/tree/ftv2doc.gif"
+
+  // methods
+  this.initialize = initializeItem
+  this.createIndex = createEntryIndex
+  this.hide = hideItem
+  this.display = display
+  this.renderOb = drawItem
+  this.totalHeight = totalHeight
+}
+
+function hideItem()
+{
+  if (browserVersion == 1) {
+    if (this.navObj.style.display == "none")
+      return
+    this.navObj.style.display = "none"
+  } else {
+    if (this.navObj.visibility == "hiden")
+      return
+    this.navObj.visibility = "hiden"
+  }
+}
+
+function initializeItem(level, lastNode, leftSide)
+{
+  this.createIndex()
+
+  if (level>0)
+    if (lastNode) //the last 'brother' in the children array
+    {
+      this.renderOb(leftSide + "<img src='/content/images/tree/ftv2lastnode.gif' width=16 height=22>")
+      leftSide = leftSide + "<img src='/content/images/tree/ftv2blank.gif' width=16 height=22>"
+    }
+    else
+    {
+      this.renderOb(leftSide + "<img src='/content/images/tree/ftv2node.gif' width=16 height=22>")
+      leftSide = leftSide + "<img src='/content/images/tree/ftv2vertline.gif' width=16 height=22>"
+    }
+  else
+    this.renderOb("")
+}
+
+function drawItem(leftSide)
+{
+  if (browserVersion == 2)
+    doc.write("<layer id='item" + this.id + "' top=" + doc.yPos + " visibility=hiden>")
+
+  doc.write("<table ")
+  if (browserVersion == 1)
+    doc.write(" id='item" + this.id + "' style='position:block;' ")
+  doc.write(" border=0 cellspacing=0 cellpadding=0>")
+  doc.write("<tr><td>")
+  doc.write(leftSide)
+  doc.write("<a href=" + this.link + ">")
+  doc.write("<img id='itemIcon"+this.id+"' ")
+  doc.write("src='"+this.iconSrc+"' border=0>")
+  doc.write("</a>")
+  doc.write("</td><td valign=middle nowrap>")
+  if (USETEXTLINKS)
+    doc.write("<a href=" + this.link + ">" + this.desc + "</a>")
+  else
+    doc.write(this.desc)
+  doc.write("</table>")
+
+  if (browserVersion == 2)
+    doc.write("</layer>")
+
+  if (browserVersion == 1) {
+    this.navObj = doc.all["item"+this.id]
+    this.iconImg = doc.all["itemIcon"+this.id]
+  } else if (browserVersion == 2) {
+    this.navObj = doc.layers["item"+this.id]
+    this.iconImg = this.navObj.document.images["itemIcon"+this.id]
+    doc.yPos=doc.yPos+this.navObj.clip.height
+  }
+}
+
+
+// Methods common to both objects (pseudo-inheritance)
+// ********************************************************
+
+function display()
+{
+  if (browserVersion == 1)
+    this.navObj.style.display = "block"
+  else
+    this.navObj.visibility = "show"
+}
+
+function createEntryIndex()
+{
+  this.id = nEntries
+  indexOfEntries[nEntries] = this
+  nEntries++
+}
+
+// total height of subEntries open
+function totalHeight() //used with browserVersion == 2
+{
+  var h = this.navObj.clip.height
+  var i = 0
+
+  if (this.isOpen) //is a folder and _is_ open
+    for (i=0 ; i < this.nChildren; i++)
+      h = h + this.children[i].totalHeight()
+
+  return h
+}
+
+
+// Events
+// *********************************************************
+
+function clickOnFolder(folderId)
+{
+  var clicked = indexOfEntries[folderId]
+
+  if (!clicked.isOpen)
+    clickOnNode(folderId)
+
+  return
+
+  if (clicked.isSelected)
+    return
+}
+
+function clickOnNode(folderId)
+{
+  var clickedFolder = 0
+  var state = 0
+
+  clickedFolder = indexOfEntries[folderId]
+  state = clickedFolder.isOpen
+
+  clickedFolder.setState(!state) //open<->close
+}
+
+function initializeDocument()
+{
+  if (doc.all)
+    browserVersion = 1 //IE4
+  else
+    if (doc.layers)
+      browserVersion = 2 //NS4
+    else
+      browserVersion = 0 //other
+
+  foldersTree.initialize(0, 1, "")
+  foldersTree.display()
+
+  if (browserVersion > 0)
+  {
+    doc.write("<layer top="+indexOfEntries[nEntries-1].navObj.top+">&nbsp;</layer>")
+
+    // close the whole tree
+    clickOnNode(0)
+    // open the root folder
+    clickOnNode(0)
+  }
+}
+
+// Auxiliary Functions for Folder-Treee backward compatibility
+// *********************************************************
+
+function gFld(description, hreference)
+{
+  folder = new Folder(description, hreference)
+  return folder
+}
+
+function gLnk(target, description, linkData)
+{
+  fullLink = ""
+
+  if (target==0)
+  {
+    fullLink = "'"+linkData+"' target=\"basefrm\""
+  }
+  else
+  {
+    if (target==1)
+       fullLink = "'http://"+linkData+"' target=_blank"
+    else
+       fullLink = "'http://"+linkData+"' target=\"basefrm\""
+  }
+
+  linkItem = new Item(description, fullLink)
+  return linkItem
+}
+
+function insFld(parentFolder, childFolder)
+{
+  return parentFolder.addChild(childFolder)
+}
+
+function insDoc(parentFolder, document)
+{
+  parentFolder.addChild(document)
+}
+
+// Global variables
+// ****************
+
+USETEXTLINKS = 0
+indexOfEntries = new Array
+nEntries = 0
+doc = document
+browserVersion = 0
+selectedFolder=0
diff --git a/openjoda/content/javascript/config.js b/openjoda/content/javascript/config.js
new file mode 100644
index 0000000..0c97089
--- /dev/null
+++ b/openjoda/content/javascript/config.js
@@ -0,0 +1,94 @@
+function moveItem(element,moveUp)
+{
+
+  index = element.selectedIndex;
+  if (index != -1 && element.options[index].value > "") {
+    aText = element.options[index].text;
+    aValue = element.options[index].value;
+    if (element.options[index].value > "" && index > 0 && moveUp)
+    {
+     	element.options[index].text = element.options[index-1].text;
+      	element.options[index].value = element.options[index-1].value;
+      	element.options[index-1].text = aText;
+      	element.options[index-1].value = aValue;
+      	element.selectedIndex--;
+    }
+    else if (index < element.length-1 && element.options[index+1].value > "" && !moveUp)
+    {
+      	element.options[index].text = element.options[index+1].text;
+      	element.options[index].value = element.options[index+1].value;
+      	element.options[index+1].text = aText;
+      	element.options[index+1].value = aValue;
+      	element.selectedIndex++;
+    }
+  }
+  else
+  {
+    alert("Please select a portlet");
+  }
+}
+
+
+function movePortlet(fromElement,toElement)
+{
+
+	index = fromElement.selectedIndex;
+
+	for(var i=0; i< fromElement.options.length; i++)
+	{
+		if(i == index)
+		{
+
+			toElement.options[toElement.options.length] = new Option( fromElement.options[index].text,fromElement.options[index].value, false, true);
+			fromElement.options[index] = null;
+		}
+	}
+
+}
+
+function removePortlet(element)
+{
+
+	index = element.selectedIndex;
+
+	for(var i=0; i< element.options.length; i++)
+	{
+		if(i == index)
+		{
+			element.options[i] = null;
+		}
+	}
+}
+
+function cancel()
+{
+	document.portletConfig.jetspeedLyoutAction.value = "CANCEL";
+	document.portletConfig.submit();
+}
+
+function saveConfig()
+{
+
+	leftColumn = "";
+	rightColumn = "";
+	leftElement = document.portletConfig.leftColumn
+	rightElement = document.portletConfig.rightColumn
+
+	for(var i=0; i< leftElement.options.length; i++)
+	{
+		leftColumn = leftColumn + leftElement.options[i].text + ":"  + leftElement.options[i].value + ";";
+	}
+
+	for(var i=0; i<rightElement.options.length; i++)
+	{
+		rightColumn = rightColumn + rightElement.options[i].text + ":"  + rightElement.options[i].value + ";";
+	}
+	document.portletConfig.jetspeedLyoutAction.value = "save"
+	document.portletConfig.jetspeedLyoutLeftportlets.value = leftColumn
+	document.portletConfig.jetspeedLyoutRightportlets.value = rightColumn;
+	document.portletConfig.submit();
+
+
+}
+
+
diff --git a/openjoda/content/javascript/dhtml.js b/openjoda/content/javascript/dhtml.js
new file mode 100644
index 0000000..07b82ba
--- /dev/null
+++ b/openjoda/content/javascript/dhtml.js
@@ -0,0 +1,303 @@
+
+if ( ! versions_loaded ) {
+
+    // Determine Browser Version
+    var bV   = parseInt( navigator.appVersion );
+    var NS4  = (document.layers)         ? true : false;
+    var NS3  = (document.images)         ? true : false;
+    var IE4  = ((document.all)&&(bV>=4)) ? true : false;
+    var ver4 = (NS4 || IE4)              ? true : false;
+
+    // Determine Browser Platform
+    var MAC   = (navigator.userAgent.indexOf("Mac")      != -1) ? true : false;
+    var Opera = (navigator.userAgent.indexOf("Opera")    != -1) ? true : false;
+    var IE5   = (navigator.userAgent.indexOf("MSIE 5.0") != -1) ? true : false;
+
+    var versions_loaded = true;
+}
+
+/* **********************************************************************
+ * WINDOW METHODS
+ * **********************************************************************/
+
+function getInsideWindowWidth() {
+    var width = -1;
+    if ( NS4 )
+	width = window.innerWidth;
+    else if ( IE4 )
+	width = document.body.clientWidth;
+    return( width );
+}
+
+function getInsideWindowHeight() {
+    var height = -1;
+    if ( NS4 )
+	height = window.innerHeight;
+    else if ( IE4 )
+	height = document.body.clientHeight;
+    return( height );
+}
+
+function getWindowLeft() {
+    var x = -1;
+    if ( NS4 )
+	x = window.pageXOffset;
+    else if ( IE4 )
+	x = document.body.scrollLeft;
+    return( x );
+}
+
+function getWindowTop() {
+    var y = -1;
+    if ( NS4 )
+	y = window.pageYOffset;
+    else if ( IE4 )
+	y = document.body.scrollTop;
+    return( y );
+}
+
+/* **********************************************************************
+ * GENERIC OBJECT LOCATOR METHODS
+ * **********************************************************************/
+
+function getObject( objectName, container ) {
+    var object = null;
+    if ( typeof(objectName) != "string" ) {
+	object = objectName;
+    } else if ( ver4 ) {
+	if ( ! container )
+	    container = document;
+	if ( IE4 ) {
+	    if ( container.all[objectName] )
+		object = container.all[objectName];
+	} else if ( NS4 ) {
+	    if ( container.anchors[objectName] )
+		object = container.anchors[objectName];
+	    else if ( container.forms[objectName] )
+		object = container.forms[objectName];
+	    else if ( container.images[objectName] )
+		object = container.images[objectName];
+	    else if ( container.layers[objectName] )
+		object = container.layers[objectName];
+	}
+    }
+    return( object );
+}
+
+function findObjectContainer( objectName, container ) {
+    var objectContainer = null;
+    if ( NS4 ) {
+	if ( ! container ) container = window.document;
+	if ( getObject(objectName,container) ) {
+	    objectContainer = container;
+	} else {
+	    var layers = getLayers( new RegExp(".*"), container );
+	    for ( var i = 0; i < layers.length; i++ ) {
+		objectContainer = findObjectContainer( objectName, layers[i].document );
+		if ( objectContainer ) break;
+	    }
+	}
+    }
+    else if ( IE4 ) {
+	objectContainer = getObject(objectName,document) ? document : null;
+    }
+    return( objectContainer );
+}
+
+function findObject( objectName ) {
+    var object = null;
+    if ( ver4 ) {
+	var container = findObjectContainer( objectName );
+	if ( container ) object = getObject( objectName, container );
+    }
+    return( object );
+}
+
+/* **********************************************************************
+ * LAYER METHODS
+ * **********************************************************************/
+
+function getLayer( name ) {
+    var obj = null;
+    if ( IE4 ) {
+	obj = document.all[name];
+    } else if ( NS4 ) {
+	obj = document.layers[name];
+    }
+    return( obj );
+}
+
+function getLayers( regex, doc ) {
+    var layers = new Array();
+    layers.length = 0;
+    if ( ver4 ) {
+	if ( ! doc ) doc = document;
+	if ( NS4 ) {
+	    for ( var i = 0; i < doc.layers.length; i++ ) {
+		var obj = doc.layers[i];
+		if ( ! regex || regex.exec(obj.id) ) {
+		    layers[layers.length] = obj;
+		}
+	    }
+	} else if ( IE4 ) {
+	    var divColl = doc.all.tags("DIV");
+	    for ( i = 0; i < divColl.length; i++ ) {
+		if ( ! regex || regex.exec(divColl[i].id) ) {
+		    layers[layers.length] = divColl[i];
+		}
+	    }
+	}
+    }
+    return( layers );
+}
+
+function isHidden( obj ) {
+    if ( IE4 ) {
+	return( obj.style.visibility == "hidden" );
+    } else if ( NS4 ) {
+	return( obj.visibility == "hide" );
+    } else {
+	return( false );
+    }
+}
+
+function hideLayer( obj ) {
+    if ( IE4 )
+	obj.style.visibility = "hidden";
+    else if ( NS4 )
+	obj.visibility = "hide";
+}
+
+function showLayer( obj ) {
+    if ( IE4 ) {
+	obj.style.visibility = "visible";
+    } else if ( NS4 ) {
+	obj.visibility = "show";
+    }
+}
+
+function getObjTop( obj ) {
+    if ( ver4 )
+	return( IE4 ? obj.style.pixelTop  : obj.top );
+    else
+	return( 0 );
+}
+
+function getObjLeft( obj ) {
+    if ( ver4 )
+	return( IE4 ? obj.style.pixelLeft : obj.left );
+    else
+	return( 0 );
+}
+
+function getObjHeight( obj ) {
+    if ( ver4 )
+	return( IE4 ? obj.clientHeight : (obj.clip ? obj.clip.height : -1 ) );
+    else
+	return( 0 );
+}
+
+function getObjWidth( obj ) {
+    if ( ver4 )
+	return( IE4 ? obj.clientWidth  : (obj.clip ? obj.clip.width : -1 ) );
+    else
+	return( 0 );
+}
+
+function moveObjTo( obj, x, y, yesIfHidden ) {
+    if ( ! isHidden(obj) || yesIfHidden ) {
+	if ( IE4 ) {
+	    if ( x >= 0 ) obj.style.pixelLeft = x;
+	    if ( y >= 0 ) obj.style.pixelTop  = y;
+	} else if ( NS4 ) {
+	    if ( x < 0 ) x = getObjLeft( obj );
+	    if ( y < 0 ) y = getObjTop( obj );
+	    obj.moveTo( x, y );
+	}
+    }
+    return( 1 );
+}
+
+/* **********************************************************************
+ * IMAGE METHODS
+ * **********************************************************************/
+
+function getImage( imgNm ) {
+    return( findObject(imgNm) );
+}
+
+function getImageContainer( imgNm ) {
+    return( findObjectContainer(imgNm) );
+}
+
+function getParentObject( obj ) {
+    var parent = null;
+    if ( IE4 ) {
+	if ( obj.offsetParent )
+	    parent = obj.offsetParent;
+    } else if ( NS4 ) {
+	// If we're looking at a layer object (or a window), get
+	// the parentWindow value, otherwise search for the container
+	if ( obj.parentLayer ) {
+	    parent = obj.parentLayer || null;
+	} else {
+	    parent = findObjectContainer( obj );
+	    if ( parent ) parent = parent.parentWindow;
+	}
+    }
+    return( parent );
+}
+
+function findOffsetValue( obj, value ) {
+    var offset = 0;
+    if ( ver4 ) {
+	// Requested value is specified as an MSIE offset value.
+	// Perform any translations necessary for other browsers.
+	if ( NS4 ) {
+	    if ( value == "offsetLeft" )
+		value = "pageX";
+	    else if ( value == "offsetTop" )
+		value = "pageY";
+	}
+	var parent = getParentObject( obj );
+	while ( parent ) {
+	    offset += ( parent[value] || 0 );
+	    parent = getParentObject( parent );
+	}
+    }
+    return( offset || 0 );
+}
+
+function getImageLeft( img ) {
+    if ( typeof(img) == "string" ) img = getImage( img );
+    var left   = 0;
+    var offset = findOffsetValue( img, "offsetLeft" );
+    if ( NS4 ) {
+	left = img.x;
+    } else if ( IE4 ) {
+	left = img.offsetLeft;
+    }
+    return( left + offset );
+}
+
+function getImageTop( img ) {
+    if ( typeof(img) == "string" ) img = getImage( img );
+    var top    = 0;
+    var offset = findOffsetValue( img, "offsetTop" );
+    if ( NS4 ) {
+	top = img.y;
+    } else if ( IE4 ) {
+	top = img.offsetTop;
+    }
+    return( top + offset );
+}
+
+function getImageHeight( img ) {
+    if ( typeof(img) == "string" ) img = getImage( img );
+    return( img.height );
+}
+
+function getImageWidth( img ) {
+    if ( typeof(img) == "string" ) img = getImage( img );
+    return( img.width );
+}
diff --git a/openjoda/content/javascript/dynamic_menus.js b/openjoda/content/javascript/dynamic_menus.js
new file mode 100644
index 0000000..b5d7f0a
--- /dev/null
+++ b/openjoda/content/javascript/dynamic_menus.js
@@ -0,0 +1,400 @@
+/* **********************************************************************
+ * MODULE	: dynamic_menus.js
+ * AUTHOR	: Brian P. King
+ * CREATED	: May 3, 1999
+ * COMPATIBILITY: Requires JavaScript 1.1.
+ * RCS		: $Id$
+ * DESCRIPTION	: Implements dynamic pulldown menus.
+ * COPYRIGHT    : Copyright (c) 1999 Symantec Corporation.
+ * DISTRIBUTION : Freely redistributable.  Use at your own risk.
+ * **********************************************************************/
+
+if ( ! versions_loaded ) {
+
+    // Determine Browser Version
+    var bV   = parseInt( navigator.appVersion );
+    var NS4  = (document.layers)         ? true : false;
+    var NS3  = (document.images)         ? true : false;
+    var IE4  = ((document.all)&&(bV>=4)) ? true : false;
+    var ver4 = (NS4 || IE4)              ? true : false;
+
+    // Determine Browser Platform
+    var MAC   = (navigator.userAgent.indexOf("Mac")      != -1) ? true : false;
+    var Opera = (navigator.userAgent.indexOf("Opera")    != -1) ? true : false;
+    var IE5   = (navigator.userAgent.indexOf("MSIE 5.0") != -1) ? true : false;
+
+    var versions_loaded = true;
+}
+
+
+/* **********************************************************************
+ * Create a MenuItem object.
+ * **********************************************************************/
+
+function MenuItem( miname, mivalue ) {
+    if ( ! Opera ) {
+	this.name  = miname;
+	this.value = mivalue;
+	this.bold  = false;
+	return( this );
+    }
+}
+
+
+
+
+/* **********************************************************************
+ * Create the Menu object.
+ * **********************************************************************/
+
+var allmenus    = new Array(); // tracks all created menus for later printing.
+allmenus.length = 0;
+
+function getMenuImage( menuname ) {
+    var imgname = null;
+    if ( allmenus[menuname] )
+	imgname = allmenus[menuname].imagename;
+    return( imgname );
+}
+
+function Menu( mname, _imagename ) {
+    // Set up properties for this instance
+    this.name                   = mname;
+    this.imagename              = _imagename;
+    Menu.prototype.items        = new Array();
+    Menu.prototype.items.length = 0;
+    // If the _width parameter isn't supplied, make an attempt
+    // to determine the menu width based on the image's width.
+    var imgWidth      = null;
+    if ( _imagename ) {
+	var img  = getImage( _imagename );
+	if ( img ) {
+	    imgWidth = getImageWidth( img );
+	}
+    }
+    if ( imgWidth ) this.width = imgWidth;
+    // If borderstyle is "image", make sure leftimage, leftimagewidth and
+    // leftimagecolor are specified
+    if ( this.borderstyle == "image" ) {
+	if ( ! this.leftimagewidth || ! this.leftimage ) {
+	    this.borderstyle = "solid";
+	    this.leftimage = null;
+	}
+	else if ( ! this.leftimagecolor ) {
+	    this.leftimagecolor = "#ffffff";
+	}
+    }
+    // Add the menu to the list of menus if it's not the prototype
+    if ( mname != "discard" ) {
+	allmenus[allmenus.length++] = this;
+	allmenus[mname]             = this;
+    }
+    return( this );
+}
+
+function Menu_addMenuItem( miname, mivalue ) {
+    var newitem      = new MenuItem( miname, mivalue );
+    newitem.index    = this.items.length;
+    newitem.menuname = this.name;
+    this.items[this.items.length++] = newitem;
+    return( newitem );
+}
+
+function Menu_addMenuItemHeader( miname, mivalue ) {
+    var newitem = this.addMenuItem( miname, mivalue );
+    newitem.bold = true;
+    return( newitem );
+}
+
+function Menu_addMenuSeparator( hidden ) {
+    var newitem = new MenuItem( "separator", "---" );
+    newitem.hidden = hidden;
+    this.items[this.items.length++] = newitem;
+    return( newitem );
+}
+
+function Menu_print() {
+    var menu = this;
+    // write the header
+    var output = "";
+    if ( NS4 || ( IE4 && ! MAC ) ) {
+
+	if ( navigator.appName == "Microsoft Internet Explorer" ) {
+	    output += '<div id="' + menu.name + '" ';
+	    output += 'onMouseOver="showMenu(\'' + menu.name + '\')" ';
+	    output += 'onMouseOut="hideMenu(\'' + menu.name + '\')" ';
+	    output += 'style="position:absolute;z-index:59600;visibility:hidden;';
+	    output += 'width:' + menu.width + 'px;height:' + menu.height + ';"' ;
+	    output += '>\n';
+	}
+	else {
+	    output += '<layer name="' + menu.name + '" ';
+	    output += 'onMouseOver="showMenu(\'' + menu.name + '\')" ';
+	    output += 'onMouseOut="hideMenu(\'' + menu.name + '\')" ';
+	    output += 'width="' + menu.width + '" height="' + menu.height + '" ';
+	    output += 'visibility="hidden" zIndex="59000"';
+	    output += '>\n';
+	}
+
+	if ( menu.borderstyle == 'shadow' ) {
+	    output += '<table border="0" cellpadding="0" cellspacing="0"';
+	    output += ' width="' + menu.width + '" bgcolor="' + menu.bgcolor + '">\n';
+	    output += '<tr height="1">\n';
+	    output += '<td bgcolor="' + menu.topshadow + '" width="2" height="1">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '<td bgcolor="' + menu.topshadow + '" width="' + ( menu.width - 7 ) + '" height="1">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '<td bgcolor="' + menu.topshadow + '" width="5" height="1">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '</tr>\n';
+	    output += '<tr height="' + ( menu.height - 10 ) + '">\n';
+	    output += '<td bgcolor="' + menu.topshadow + '" width="4" height="' + ( menu.height - 10 ) + '">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '<td width="' + ( menu.width - 2 ) + '" height="' + ( menu.height - 10 ) + '" bgcolor="' + menu.bgcolor + '">';
+	    output += '<table border="0" cellpadding="' + menu.padding + '" cellspacing="1"';
+	    output += ' width="' + ( menu.width - 7 ) + '" height="' + ( menu.height - 10 ) + '">\n';
+	    output += '<tr>\n';
+	    output += '<td valign="top" >\n';
+	} else if ( menu.borderstyle == 'image' ) {
+	    output += '<table border="0" cellpadding="0" cellspacing="0"';
+	    output += ' width="' + menu.width + '" bgcolor="' + menu.bgcolor + '">\n';
+	    output += '<tr height="1">\n';
+	    output += '<td bgcolor="' + menu.topshadow + '" width="1" height="1">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '<td bgcolor="' + menu.topshadow + '" width="' + menu.leftimagewidth + '" height="1">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '<td bgcolor="' + menu.topshadow + '" width="' + ( menu.width - 7 ) + '" height="1">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '<td bgcolor="' + menu.topshadow + '" width="5" height="1">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '</tr>\n';
+	    output += '<tr height="' + ( menu.height - 10 ) + '">\n';
+	    output += '<td bgcolor="' + menu.topshadow + '" width="4" height="' + ( menu.height - 10 ) + '">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '<td bgcolor="' + menu.leftimagecolor + '" background="' + menu.leftimage + '" width="' + menu.leftimagewidth + '" height="1">';
+	    output += '<img src="/content/images/spacer.gif" width="' + menu.leftimagewidth + '" height="1"></td>\n';
+	    output += '<td width="' + ( menu.width - 2 ) + '" height="' + ( menu.height - 10 ) + '" bgcolor="' + menu.bgcolor + '">';
+	    output += '<table border="0" cellpadding="' + menu.padding + '" cellspacing="1"';
+	    output += ' width="' + ( menu.width - 7 ) + '" height="' + ( menu.height - 10 ) + '">\n';
+	    output += '<tr>\n';
+	    output += '<td valign="top" >\n';
+	} else if ( menu.borderstyle == "solid" ) {
+	    output += '<table border="0" cellpadding="0" cellspacing="0"';
+	    output += ' width="' + menu.width + '" bgcolor="' + menu.bgcolor + '">\n';
+	    output += '<tr height="1">\n';
+	    output += '<td bgcolor="' + menu.bordercolor + '" height="' + menu.borderwidth + '" colspan="3">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '</tr>\n';
+	    output += '<td bgcolor="' + menu.bordercolor + '" width="' + menu.borderwidth + '">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '<td valign="top" bgcolor="' + menu.bgcolor + '">\n';
+	    output += '<table border="0" cellspacing="0" cellpadding="' + menu.padding + '">';
+	    output += '<tr><td>';
+	} else {
+	    output += '<table border="0" cellpadding="' + menu.padding + '" cellspacing="0"';
+	    output += ' width="' + menu.width + '" bgcolor="' + menu.bgcolor + '">';
+	    output += '<tr><td>\n';
+	}
+
+	// now add all the menu items
+	for ( var j = 0; j < menu.items.length; j++ ) {
+	    var mi = menu.items[j];
+	    if ( mi.name == "separator" ) {
+		if ( mi.hidden ) {
+		    output += "<br>";
+		}
+		else {
+		    output +=  '<hr class="magellan" size="1">' ;
+		}
+	    }
+	    else {
+		output += makeMenuItem( mi, false );
+	    }
+	    output += '\n';
+	}
+
+	if ( menu.borderstyle == 'shadow' ) {
+	    // and add in the footer
+	    output += '</tr>\n';
+	    output += '</table></td>\n';
+	    output += '</td>\n';
+	    output += '<td bgcolor="' + menu.bottomshadow + '" width="5" height="' + ( menu.height - 10 ) + '">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '</tr>\n';
+	    output += '<tr height="3">\n';
+	    output += '<td bgcolor="' + menu.topshadow + '" width="2" height="3">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '<td bgcolor="' + menu.bottomshadow + '" width="' + ( menu.width - 7 ) + '" height="3">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '<td bgcolor="' + menu.bottomshadow + '" width="3" height="3">' ;
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '</tr></table>\n';
+	} else if ( menu.borderstyle == 'image' ) {
+	    // and add in the footer
+	    output += '</tr>\n';
+	    output += '</table></td>\n';
+	    output += '</td>\n';
+	    output += '<td bgcolor="' + menu.bottomshadow + '" width="5" height="' + ( menu.height - 10 ) + '">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '</tr>\n';
+	    output += '<tr height="3">\n';
+	    output += '<td bgcolor="' + menu.topshadow + '" width="2" height="3">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '<td bgcolor="' + menu.bottomshadow + '" width="' + menu.leftimagewidth + '" height="1">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '<td bgcolor="' + menu.bottomshadow + '" width="' + ( menu.width - 7 ) + '" height="3">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '<td bgcolor="' + menu.bottomshadow + '" width="3" height="3">' ;
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '</tr></table>\n';
+	} else if ( menu.borderstyle == 'solid' ) {
+	    output += '</td></tr></table></td>';
+	    output += '<td bgcolor="' + menu.bordercolor + '" width="' + menu.borderwidth + '">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td></tr>\n';
+	    output += '<tr height="1">';
+	    output += '<td bgcolor="' + menu.bordercolor + '" height="' + menu.borderwidth + '" colspan="3">';
+	    output += '<img src="/content/images/spacer.gif" width="1" height="1"></td>\n';
+	    output += '</tr></table>\n';
+	} else {
+	    output += '</td></tr></table>\n';
+	}
+
+	if ( navigator.appName == "Microsoft Internet Explorer" ) {
+	    output += '</div>\n';
+	}
+	else {
+	    output += '</layer>\n';
+	}
+	document.write( output );
+    }
+}
+
+function Menu_getHeight() {
+    var height = 0;
+    var i;
+    for ( i = 0; i < this.items.length; i++ ) {
+	height += getObjHeight( this.items[i].name );
+    }
+    return( height );
+}
+
+function makeMenuItem( mi ) {
+    var output = "";
+    output += '<div class="magellandiv">';
+    if ( mi.bold ) output += '<b>';
+    output += '<a href="' + mi.value + '" class="magellanlink"';
+    output += ' id="' + mi.menuname + mi.index + 'link"';
+    output += ' onMouseOver="highlightLink(\'' + mi.menuname + '\',' + mi.index + ',true)"';
+    output += ' onMouseOut="highlightLink(\'' + mi.menuname + '\',' + mi.index + ',false)"';
+    output += '>';
+    output +=  mi.name + '</a><br>' ;
+    if ( mi.bold ) output += '</b>';
+    output += '</div>';
+    return( output );
+}
+
+if ( ! Opera ) {
+    new MenuItem( "", "" );
+    new Menu( 'discard' );
+    Menu.prototype.width             = 110;
+    Menu.prototype.height            = 10;
+    Menu.prototype.imagename         = null;
+    Menu.prototype.borderstyle       = "shadow";
+    Menu.prototype.bordercolor       = "#000000";
+    Menu.prototype.bgcolor           = "#ffffff";
+    Menu.prototype.bottomshadow      = "#666666";
+    Menu.prototype.topshadow         = "#cccccc";
+    Menu.prototype.leftOffset        = 0;
+    Menu.prototype.topOffset         = 0;
+    Menu.prototype.padding           = 0;
+    Menu.prototype.delay             = 50;
+    Menu.prototype.rollover          = false;
+    Menu.prototype.leftimage         = null;
+    Menu.prototype.leftimagewidth    = 0;
+    Menu.prototype.leftimagecolor    = '';
+    Menu.prototype.addMenuItem       = Menu_addMenuItem;
+    Menu.prototype.addMenuItemHeader = Menu_addMenuItemHeader;
+    Menu.prototype.addMenuSeparator  = Menu_addMenuSeparator;
+    Menu.prototype.getHeight         = Menu_getHeight;
+    Menu.prototype.print             = Menu_print;
+}
+
+/* **********************************************************************
+ * Create a function to print all menus.
+ * **********************************************************************/
+
+function printMenus() {
+    var i = 0;
+    for ( ; i < allmenus.length; i++ ) {
+	allmenus[i].print();
+    }
+    return( i );
+}
+
+/* **********************************************************************
+ * The following functions operate the menus.
+ * **********************************************************************/
+
+
+var timers     = new Object();
+
+function highlightLink( menuName, itemidx, highlight ) {
+    if ( ver4 ) {
+	var anchor = getImage( menuName + itemidx + "link" );
+	if ( anchor && IE4 ) {
+	    anchor.className = ( highlight ? 'magellanlinkhi' : 'magellanlink' );
+	}
+    }
+    return( false );
+}
+
+function showMenu( menuName ) {
+    var imgName = getMenuImage( menuName );
+    if ( imgName )
+	setImage( imgName, "active" );
+    if ( NS4 || ( IE4 && ! MAC ) ) {
+	// Move the menu to a location near the image
+	var layer = getLayer( menuName );
+	if ( imgName && isHidden(layer) ) {
+	    var img = getImage( imgName );
+	    var x   = getImageLeft(img) + allmenus[menuName].leftOffset;
+	    var y   = getImageTop(img) + getImageHeight(img) + allmenus[menuName].topOffset + 1;
+	    moveObjTo( layer, x, y, true );
+	    // Now, adjust the bottom of the menu with respect to the bottom
+	    // of the window to make sure the entire menu is displayed.
+	    // This is done after the initial move so the height of the
+	    // object can be properly determined.
+	    var lbottom = getObjTop( layer ) + getObjHeight( layer );
+	    var wbottom = getInsideWindowHeight();
+	    var wtop    = getWindowTop();
+	    if ( lbottom > ( wbottom + wtop )) {
+		y -= ( lbottom - ( wbottom + wtop ) );
+		if ( y < wtop ) y = wtop;
+		moveObjTo( layer, x, y, true );
+
+	    }
+	}
+	// Display the menu
+	showLayer( layer );
+	clearTimeout( timers[menuName] );
+    }
+}
+
+function hideMenu( menuName ){
+    var cmd = 'hideMenu_delayed("' + menuName + '")';
+    var delay = 50;
+    if ( allmenus[menuName] )
+	delay = allmenus[menuName].delay;
+    if ( ver4 )
+	timers[menuName] = setTimeout( cmd, delay );
+    else
+	eval( cmd );
+}
+
+function hideMenu_delayed( menuName ) {
+    var imgName = getMenuImage( menuName );
+    if ( imgName )
+	setImage( imgName, "inactive" );
+    if ( NS4 || ( IE4 && ! MAC ) )
+	hideLayer( getLayer(menuName) );
+}
diff --git a/openjoda/content/javascript/ftiens4.js b/openjoda/content/javascript/ftiens4.js
new file mode 100644
index 0000000..e5df873
--- /dev/null
+++ b/openjoda/content/javascript/ftiens4.js
@@ -0,0 +1,464 @@
+//****************************************************************
+// You are free to copy the "Folder-Tree" script as long as you
+// keep this copyright notice:
+// Script found in: http://www.geocities.com/Paris/LeftBank/2178/
+// Author: Marcelino Alves Martins (martins@hks.com) December '97.
+//****************************************************************
+
+//Log of changes:
+//       17 Feb 98 - Fix initialization flashing problem with Netscape
+//
+//       27 Jan 98 - Root folder starts open; support for USETEXTLINKS;
+//                   make the ftien4 a js file
+//
+
+
+// Definition of class Folder
+// *****************************************************************
+
+function Folder(folderDescription, hreference) //constructor
+{
+  //constant data
+  this.desc = folderDescription
+  this.hreference = hreference
+  this.id = -1
+  this.navObj = 0
+  this.iconImg = 0
+  this.nodeImg = 0
+  this.isLastNode = 0
+
+  //dynamic data
+  this.isOpen = true
+  this.iconSrc = "/content/images/tree/ftv2folderopen.gif"
+  this.children = new Array
+  this.nChildren = 0
+
+  //methods
+  this.initialize = initializeFolder
+  this.setState = setStateFolder
+  this.addChild = addChild
+  this.createIndex = createEntryIndex
+  this.hide = hideFolder
+  this.display = display
+  this.renderOb = drawFolder
+  this.totalHeight = totalHeight
+  this.subEntries = folderSubEntries
+  this.outputLink = outputFolderLink
+}
+
+function setStateFolder(isOpen)
+{
+  var subEntries
+  var totalHeight
+  var fIt = 0
+  var i=0
+
+  if (isOpen == this.isOpen)
+    return
+
+  if (browserVersion == 2)
+  {
+    totalHeight = 0
+    for (i=0; i < this.nChildren; i++)
+      totalHeight = totalHeight + this.children[i].navObj.clip.height
+      subEntries = this.subEntries()
+    if (this.isOpen)
+      totalHeight = 0 - totalHeight
+    for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++)
+      indexOfEntries[fIt].navObj.moveBy(0, totalHeight)
+  }
+  this.isOpen = isOpen
+  propagateChangesInState(this)
+}
+
+function propagateChangesInState(folder)
+{
+  var i=0
+
+  if (folder.isOpen)
+  {
+    if (folder.nodeImg)
+      if (folder.isLastNode)
+        folder.nodeImg.src = "/content/images/tree/ftv2mlastnode.gif"
+      else
+	  folder.nodeImg.src = "/content/images/tree/ftv2mnode.gif"
+    folder.iconImg.src = "/content/images/tree/ftv2folderopen.gif"
+    for (i=0; i<folder.nChildren; i++)
+      folder.children[i].display()
+  }
+  else
+  {
+    if (folder.nodeImg)
+      if (folder.isLastNode)
+        folder.nodeImg.src = "/content/images/tree/ftv2plastnode.gif"
+      else
+	  folder.nodeImg.src = "/content/images/tree/ftv2pnode.gif"
+    folder.iconImg.src = "/content/images/tree/ftv2folderclosed.gif"
+    for (i=0; i<folder.nChildren; i++)
+      folder.children[i].hide()
+  }
+}
+
+function hideFolder()
+{
+  if (browserVersion == 1) {
+    if (this.navObj.style.display == "none")
+      return
+    this.navObj.style.display = "none"
+  } else {
+    if (this.navObj.visibility == "hiden")
+      return
+    this.navObj.visibility = "hiden"
+  }
+
+  this.setState(0)
+}
+
+function initializeFolder(level, lastNode, leftSide)
+{
+var j=0
+var i=0
+var numberOfFolders
+var numberOfDocs
+var nc
+
+  nc = this.nChildren
+
+  this.createIndex()
+
+  var auxEv = ""
+
+  if (browserVersion > 0)
+    auxEv = "<a href='javascript:clickOnNode("+this.id+")'>"
+  else
+    auxEv = "<a>"
+
+  if (level>0)
+    if (lastNode) //the last 'brother' in the children array
+    {
+      this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='/content/images/tree/ftv2mlastnode.gif' width=16 height=22 border=0></a>")
+      leftSide = leftSide + "<img src='/content/images/tree/ftv2blank.gif' width=16 height=22>"
+      this.isLastNode = 1
+    }
+    else
+    {
+      this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='/content/images/tree/ftv2mnode.gif' width=16 height=22 border=0></a>")
+      leftSide = leftSide + "<img src='/content/images/tree/ftv2vertline.gif' width=16 height=22>"
+      this.isLastNode = 0
+    }
+  else
+    this.renderOb("")
+
+  if (nc > 0)
+  {
+    level = level + 1
+    for (i=0 ; i < this.nChildren; i++)
+    {
+      if (i == this.nChildren-1)
+        this.children[i].initialize(level, 1, leftSide)
+      else
+        this.children[i].initialize(level, 0, leftSide)
+      }
+  }
+}
+
+function drawFolder(leftSide)
+{
+  if (browserVersion == 2) {
+    if (!doc.yPos)
+      doc.yPos=8
+    doc.write("<layer id='folder" + this.id + "' top=" + doc.yPos + " visibility=hiden>")
+  }
+
+  doc.write("<table ")
+  if (browserVersion == 1)
+    doc.write(" id='folder" + this.id + "' style='position:block;' ")
+  doc.write(" border=0 cellspacing=0 cellpadding=0>")
+  doc.write("<tr><td>")
+  doc.write(leftSide)
+  this.outputLink()
+  doc.write("<img name='folderIcon" + this.id + "' ")
+  doc.write("src='" + this.iconSrc+"' border=0></a>")
+  doc.write("</td><td valign=middle nowrap>")
+  if (USETEXTLINKS)
+  {
+    this.outputLink()
+    doc.write(this.desc + "</a>")
+  }
+  else
+    doc.write(this.desc)
+  doc.write("</td>")
+  doc.write("</table>")
+
+  if (browserVersion == 2) {
+    doc.write("</layer>")
+  }
+
+  if (browserVersion == 1) {
+    this.navObj = doc.all["folder"+this.id]
+    this.iconImg = doc.all["folderIcon"+this.id]
+    this.nodeImg = doc.all["nodeIcon"+this.id]
+  } else if (browserVersion == 2) {
+    this.navObj = doc.layers["folder"+this.id]
+    this.iconImg = this.navObj.document.images["folderIcon"+this.id]
+    this.nodeImg = this.navObj.document.images["nodeIcon"+this.id]
+    doc.yPos=doc.yPos+this.navObj.clip.height
+  }
+}
+
+function outputFolderLink()
+{
+  if (this.hreference)
+  {
+    doc.write("<a href='" + this.hreference + "' TARGET=\"basefrm\" ")
+    if (browserVersion > 0)
+      doc.write("onClick='javascript:clickOnFolder("+this.id+")'")
+    doc.write(">")
+  }
+  else
+    doc.write("<a>")
+//  doc.write("<a href='javascript:clickOnFolder("+this.id+")'>")
+}
+
+function addChild(childNode)
+{
+  this.children[this.nChildren] = childNode
+  this.nChildren++
+  return childNode
+}
+
+function folderSubEntries()
+{
+  var i = 0
+  var se = this.nChildren
+
+  for (i=0; i < this.nChildren; i++){
+    if (this.children[i].children) //is a folder
+      se = se + this.children[i].subEntries()
+  }
+
+  return se
+}
+
+
+// Definition of class Item (a document or link inside a Folder)
+// *************************************************************
+
+function Item(itemDescription, itemLink) // Constructor
+{
+  // constant data
+  this.desc = itemDescription
+  this.link = itemLink
+  this.id = -1 //initialized in initalize()
+  this.navObj = 0 //initialized in render()
+  this.iconImg = 0 //initialized in render()
+  this.iconSrc = "/content/images/tree/ftv2doc.gif"
+
+  // methods
+  this.initialize = initializeItem
+  this.createIndex = createEntryIndex
+  this.hide = hideItem
+  this.display = display
+  this.renderOb = drawItem
+  this.totalHeight = totalHeight
+}
+
+function hideItem()
+{
+  if (browserVersion == 1) {
+    if (this.navObj.style.display == "none")
+      return
+    this.navObj.style.display = "none"
+  } else {
+    if (this.navObj.visibility == "hiden")
+      return
+    this.navObj.visibility = "hiden"
+  }
+}
+
+function initializeItem(level, lastNode, leftSide)
+{
+  this.createIndex()
+
+  if (level>0)
+    if (lastNode) //the last 'brother' in the children array
+    {
+      this.renderOb(leftSide + "<img src='/content/images/tree/ftv2lastnode.gif' width=16 height=22>")
+      leftSide = leftSide + "<img src='/content/images/tree/ftv2blank.gif' width=16 height=22>"
+    }
+    else
+    {
+      this.renderOb(leftSide + "<img src='/content/images/tree/ftv2node.gif' width=16 height=22>")
+      leftSide = leftSide + "<img src='/content/images/tree/ftv2vertline.gif' width=16 height=22>"
+    }
+  else
+    this.renderOb("")
+}
+
+function drawItem(leftSide)
+{
+  if (browserVersion == 2)
+    doc.write("<layer id='item" + this.id + "' top=" + doc.yPos + " visibility=hiden>")
+
+  doc.write("<table ")
+  if (browserVersion == 1)
+    doc.write(" id='item" + this.id + "' style='position:block;' ")
+  doc.write(" border=0 cellspacing=0 cellpadding=0>")
+  doc.write("<tr><td>")
+  doc.write(leftSide)
+  doc.write("<a href=" + this.link + ">")
+  doc.write("<img id='itemIcon"+this.id+"' ")
+  doc.write("src='"+this.iconSrc+"' border=0>")
+  doc.write("</a>")
+  doc.write("</td><td valign=middle nowrap>")
+  if (USETEXTLINKS)
+    doc.write("<a href=" + this.link + ">" + this.desc + "</a>")
+  else
+    doc.write(this.desc)
+  doc.write("</table>")
+
+  if (browserVersion == 2)
+    doc.write("</layer>")
+
+  if (browserVersion == 1) {
+    this.navObj = doc.all["item"+this.id]
+    this.iconImg = doc.all["itemIcon"+this.id]
+  } else if (browserVersion == 2) {
+    this.navObj = doc.layers["item"+this.id]
+    this.iconImg = this.navObj.document.images["itemIcon"+this.id]
+    doc.yPos=doc.yPos+this.navObj.clip.height
+  }
+}
+
+
+// Methods common to both objects (pseudo-inheritance)
+// ********************************************************
+
+function display()
+{
+  if (browserVersion == 1)
+    this.navObj.style.display = "block"
+  else
+    this.navObj.visibility = "show"
+}
+
+function createEntryIndex()
+{
+  this.id = nEntries
+  indexOfEntries[nEntries] = this
+  nEntries++
+}
+
+// total height of subEntries open
+function totalHeight() //used with browserVersion == 2
+{
+  var h = this.navObj.clip.height
+  var i = 0
+
+  if (this.isOpen) //is a folder and _is_ open
+    for (i=0 ; i < this.nChildren; i++)
+      h = h + this.children[i].totalHeight()
+
+  return h
+}
+
+
+// Events
+// *********************************************************
+
+function clickOnFolder(folderId)
+{
+  var clicked = indexOfEntries[folderId]
+
+  if (!clicked.isOpen)
+    clickOnNode(folderId)
+
+  return
+
+  if (clicked.isSelected)
+    return
+}
+
+function clickOnNode(folderId)
+{
+  var clickedFolder = 0
+  var state = 0
+
+  clickedFolder = indexOfEntries[folderId]
+  state = clickedFolder.isOpen
+
+  clickedFolder.setState(!state) //open<->close
+}
+
+function initializeDocument()
+{
+  if (doc.all)
+    browserVersion = 1 //IE4
+  else
+    if (doc.layers)
+      browserVersion = 2 //NS4
+    else
+      browserVersion = 0 //other
+
+  foldersTree.initialize(0, 1, "")
+  foldersTree.display()
+
+  if (browserVersion > 0)
+  {
+    doc.write("<layer top="+indexOfEntries[nEntries-1].navObj.top+">&nbsp;</layer>")
+
+    // close the whole tree
+    clickOnNode(0)
+    // open the root folder
+    clickOnNode(0)
+  }
+}
+
+// Auxiliary Functions for Folder-Treee backward compatibility
+// *********************************************************
+
+function gFld(description, hreference)
+{
+  folder = new Folder(description, hreference)
+  return folder
+}
+
+function gLnk(target, description, linkData)
+{
+  fullLink = ""
+
+  if (target==0)
+  {
+    fullLink = "'"+linkData+"' target=\"basefrm\""
+  }
+  else
+  {
+    if (target==1)
+       fullLink = "'http://"+linkData+"' target=_blank"
+    else
+       fullLink = "'http://"+linkData+"' target=\"basefrm\""
+  }
+
+  linkItem = new Item(description, fullLink)
+  return linkItem
+}
+
+function insFld(parentFolder, childFolder)
+{
+  return parentFolder.addChild(childFolder)
+}
+
+function insDoc(parentFolder, document)
+{
+  parentFolder.addChild(document)
+}
+
+// Global variables
+// ****************
+
+USETEXTLINKS = 0
+indexOfEntries = new Array
+nEntries = 0
+doc = document
+browserVersion = 0
+selectedFolder=0
diff --git a/openjoda/content/javascript/images.js b/openjoda/content/javascript/images.js
new file mode 100644
index 0000000..c5226c9
--- /dev/null
+++ b/openjoda/content/javascript/images.js
@@ -0,0 +1,13 @@
+
+function preload(imgObj,imgSrc) {
+	if (document.images) {
+		eval(imgObj+' = new Image()')
+		eval(imgObj+'.src = "'+imgSrc+'"')
+	}
+}
+function changeImage(layer,imgName,imgObj) {
+	if (document.images) {
+		if (document.layers && layer!=null) eval('document.'+layer+'.document.images["'+imgName+'"].src = '+imgObj+'.src')
+		else document.images[imgName].src = eval(imgObj+".src")
+	}
+}
diff --git a/openjoda/content/javascript/input.js b/openjoda/content/javascript/input.js
new file mode 100644
index 0000000..62cfe0c
--- /dev/null
+++ b/openjoda/content/javascript/input.js
@@ -0,0 +1,16 @@
+foldersTree = gFld("<i>Components</i>")
+
+aux1 = insFld(foldersTree, gFld("Kinesthetic eXtreme", "/content/static/tree/kxtree.html"))
+
+aux2 = insFld(aux1, gFld("Event Notifier", "/content/static/tree/eventnotifiertree.html"))
+
+aux2 = insFld(aux1, gFld("Event Distiller", "/content/static/tree/eventdistillertree.html"))
+
+aux2 = insFld(aux1, gFld("Metaparser", "/content/static/tree/metaparsertree.html"))
+
+aux3 = insFld(aux2, gFld("Oracle", "/content/static/tree/oracletree.html"))
+
+aux1 = insFld(foldersTree, gFld("Worklets", "/content/static/tree/workletstree.html"))
+
+aux1 = insFld(foldersTree, gFld("WGCache", "/content/static/tree/wgcachetree.html"))
+
diff --git a/openjoda/content/javascript/jetspeed/compose.js b/openjoda/content/javascript/jetspeed/compose.js
new file mode 100644
index 0000000..8899b9b
--- /dev/null
+++ b/openjoda/content/javascript/jetspeed/compose.js
@@ -0,0 +1,33 @@
+
+
+//WARNING... this will be hard to internationalize...
+
+//***********************************************************************
+function verifyComposeForm () {
+
+   if (document.forms['compose'].elements['to'].value.length == 0) {
+      alert('Please specify a recipient.');
+      return false;
+   } else {
+
+      if (document.forms['compose'].elements['to'].value.indexOf("@") == -1 ) {
+         alert('This is an invalid address.  Use the format of user@domain');
+         return false;
+      }
+
+   }
+
+
+   if (document.forms['compose'].elements['cc'].value.length > 0) {
+
+      if (document.forms['compose'].elements['cc'].value.indexOf("@") == -1 ) {
+         alert('This is an invalid address.  Use the format of user@domain');
+         return false;
+      }
+
+   }
+
+   return true;
+}
+
+
diff --git a/openjoda/content/javascript/jetspeed/delete_messages.js b/openjoda/content/javascript/jetspeed/delete_messages.js
new file mode 100644
index 0000000..70ee321
--- /dev/null
+++ b/openjoda/content/javascript/jetspeed/delete_messages.js
@@ -0,0 +1,59 @@
+
+//to this in an object
+
+//***********************************************************************
+function deleteSelectedMessages () {
+
+
+   var display_subjects = new String("");
+   var messages = new String("");
+   var found = false;
+
+
+   for (var i = 0; i < document.forms["messages"].elements.length;++i) {
+      if ( (document.forms["messages"].elements[i].type == 'checkbox') &&
+           (document.forms["messages"].elements[i].status == true) )  {
+
+         found = true;
+         //alert(document.forms("messages").elements[i].value);
+         messages += document.forms["messages"].elements[i].value + ",";
+         display_subjects += unescape(subjects[document.forms["messages"].elements[i].value] + "\n");
+
+      }
+   }
+
+   //at this point "messages" should have an extra "," at the end... remove it.
+   messages = messages.substring(0, messages.length - 1);
+
+
+
+   if (found == false) {
+      alert("You did not select any messages to delete.");
+   } else {
+      if ( confirm("Are you sure you want to delete the following?\n\n" + display_subjects) ) {
+         var url = new String("");
+
+
+         url = document.location.href;
+         url = url.substring( 0, url.indexOf("?") );
+
+         //client should now have the current servlet URL... add the message
+         //numbers and the action to perform.
+
+         //hard code the action here... note that if this changes in the
+         //servlet you will have a problem.
+
+         //message will contain a comma separated list of messages to delete...
+         url = url + "?" + "action=13&message=" + messages;
+         document.location =  url;
+
+      }
+   }
+
+
+}
+
+
+//global variables..
+var subjects = new Array();
+
diff --git a/openjoda/content/javascript/jetspeed/meta_search.js b/openjoda/content/javascript/jetspeed/meta_search.js
new file mode 100644
index 0000000..2161046
--- /dev/null
+++ b/openjoda/content/javascript/jetspeed/meta_search.js
@@ -0,0 +1,54 @@
+/*
+   Perform a meta-query on a particular search engine:
+
+
+
+
+
+   query:         Text you are looking for
+   cgi:           The full path of the CGI you are going to execute against.
+   query_string:  The http GET parameters required by the CGI
+   target:        The frame to display this in.
+
+   Else this script returns false.
+
+*/
+
+
+
+//*******************************************************************
+
+function jetspeedMetaSearch( search_string, query, target ) {
+
+
+
+
+
+   if (search_string.length < 1) {
+
+      alert('Please enter a search string');
+
+      return false;
+   }
+
+
+
+   eval(target+ ".location='" + query + search_string + "';");
+
+   return false;
+}
+
+
+
+
+
+//*******************************************************************
+function setimage( img ) {
+
+	if (document.images) {
+
+      document.images["SEARCH_IMG"].src = img;
+
+	}
+
+}
\ No newline at end of file
diff --git a/openjoda/content/javascript/jetspeed/ws_ftp.log b/openjoda/content/javascript/jetspeed/ws_ftp.log
new file mode 100644
index 0000000..b429056
--- /dev/null
+++ b/openjoda/content/javascript/jetspeed/ws_ftp.log
@@ -0,0 +1,22 @@
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\compose.js <-- canal /home/ktn10/project/openjoda/content/javascript/jetspeed compose.js
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\delete_messages.js <-- canal /home/ktn10/project/openjoda/content/javascript/jetspeed delete_messages.js
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\meta_search.js <-- canal /home/ktn10/project/openjoda/content/javascript/jetspeed meta_search.js
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\compose.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed compose.js
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\delete_messages.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed delete_messages.js
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\meta_search.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed meta_search.js
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed WS_FTP.LOG
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\compose.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed compose.js
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\delete_messages.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed delete_messages.js
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\meta_search.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed meta_search.js
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/javascript/jetspeed WS_FTP.LOG
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\compose.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed compose.js
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\delete_messages.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed delete_messages.js
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\meta_search.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed meta_search.js
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed WS_FTP.LOG
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\compose.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed compose.js
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\delete_messages.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed delete_messages.js
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\meta_search.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed meta_search.js
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed WS_FTP.LOG
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\compose.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed compose.js
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\delete_messages.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed delete_messages.js
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\jetspeed\meta_search.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript/jetspeed meta_search.js
diff --git a/openjoda/content/javascript/ws_ftp.log b/openjoda/content/javascript/ws_ftp.log
new file mode 100644
index 0000000..e7809ba
--- /dev/null
+++ b/openjoda/content/javascript/ws_ftp.log
@@ -0,0 +1,37 @@
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\config.js <-- canal /home/ktn10/project/openjoda/content/javascript config.js
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\DHTML.js <-- canal /home/ktn10/project/openjoda/content/javascript DHTML.js
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\dynamic_menus.js <-- canal /home/ktn10/project/openjoda/content/javascript dynamic_menus.js
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\images.js <-- canal /home/ktn10/project/openjoda/content/javascript images.js
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\config.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript config.js
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\DHTML.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript DHTML.js
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\dynamic_menus.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript dynamic_menus.js
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\images.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript images.js
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript WS_FTP.LOG
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\config.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript config.js
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\DHTML.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript DHTML.js
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\dynamic_menus.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript dynamic_menus.js
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\images.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript images.js
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/javascript WS_FTP.LOG
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\config.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript config.js
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\Copy of ftiens4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript Copy of ftiens4.js
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\DHTML.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript DHTML.js
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\dynamic_menus.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript dynamic_menus.js
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\ftiens4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript ftiens4.js
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\images.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript images.js
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\input.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript input.js
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript WS_FTP.LOG
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\config.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript config.js
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\Copy of ftiens4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript Copy of ftiens4.js
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\DHTML.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript DHTML.js
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\dynamic_menus.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript dynamic_menus.js
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\ftiens4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript ftiens4.js
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\images.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript images.js
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\input.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript input.js
+2000.12.19 17:31 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript WS_FTP.LOG
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\config.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript config.js
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\Copy of ftiens4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript Copy of ftiens4.js
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\DHTML.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript DHTML.js
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\dynamic_menus.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript dynamic_menus.js
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\ftiens4.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript ftiens4.js
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\images.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript images.js
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\javascript\input.js --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/javascript input.js
diff --git a/openjoda/content/psml/default.psml b/openjoda/content/psml/default.psml
new file mode 100644
index 0000000..b7a2db0
--- /dev/null
+++ b/openjoda/content/psml/default.psml
@@ -0,0 +1,53 @@
+<?xml version="1.0"?>
+<portlets user="default" xmlns="http://xml.apache.org/jetspeed/2000/psml">
+	<controller name="org.apache.jetspeed.portal.controllers.CardPortletController">
+		<parameter value="pane" name="parameter"/>
+	</controller>
+	<skin state="NORMAL">
+		<property value="Classic Xo3 Blue" name="skin-name"/>
+		<property value="#AAAAAA" name="selected-color"/>
+		<property value="#DFE2FF" name="background-color"/>
+		<property value="#0000FF" name="title-color"/>
+		<property value="#DFE2FF" name="pane-background-color"/>
+		<property value="#B6BDD6" name="pane-edge-color"/>
+		<property value="images" name="image-dir"/>
+	</skin>
+	<portlets user="default">
+		<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController">
+			<parameter value="35%,65%" name="sizes"/>
+			<parameter value="row" name="mode"/>
+		</controller>
+		<layout size="NORMAL" position="0"/>
+		<skin state="NORMAL">
+			<property value="#FFFFFF" name="background-color"/>
+		</skin>
+		<metainfo>
+			<title>Home Page</title>
+		</metainfo>
+		<portlets user="default">
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+			<layout size="NORMAL" position="1"/>
+			<entry parent="Components" type="ref">
+				<layout size="NORMAL" position="0"/>
+			</entry>
+			<entry parent="Gauge" type="ref">
+				<layout size="NORMAL" position="1"/>
+			</entry>
+
+		</portlets>
+
+		<portlets user="default">
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+			<layout size="NORMAL" position="2"/>
+			<entry parent="Metaparser" type="ref">
+				<layout size="NORMAL" position="0"/>
+			</entry>
+			<entry parent="Oracle" type="ref">
+				<layout size="NORMAL" position="1"/>
+			</entry>
+			<entry parent="WGCache" type="ref">
+				<layout size="NORMAL" position="2"/>
+			</entry>
+		</portlets>
+	</portlets>
+</portlets>
diff --git a/openjoda/content/psml/tabuser.psml b/openjoda/content/psml/tabuser.psml
new file mode 100644
index 0000000..71da784
--- /dev/null
+++ b/openjoda/content/psml/tabuser.psml
@@ -0,0 +1,212 @@
+<?xml version="1.0"?>
+<portlets user="tabuser" xmlns="http://xml.apache.org/jetspeed/2000/psml">
+	<!-- CardPortletController acts like the AWT CardLayout, stacking its contents on top of
+		each other. Only one card visible at a time -->
+	<controller name="org.apache.jetspeed.portal.controllers.CardPortletController">
+		<parameter value="pane" name="parameter"/>
+	</controller>
+	<!-- When used in conjunction with the CardLayout, this paned layout generates "Tabs"
+		on screen. Each tab represents a view of a "card" in the CardPortletController stack-->
+	<control name="com.xo3.jetspeed.portal.controls.PanedPortletControl">
+		<!-- -Position parameter places the "tabs" to the north of the screen ie top.
+			We also set a tab width here-->
+		<parameter value="north" name="position"/>
+		<parameter value="130" name="tab-width"/>
+	</control>
+	<!-- The "skin" values define colors used for these portlets.
+		Experiment with these to see their effects. -->
+	<skin>
+		<property value="Classic Xo3 Green" name="skin-name"/>
+		<property value="#CCCCCC" name="selected-color"/>
+		<property value="#888888" name="background-color"/>
+		<property value="#0000FF" name="title-color"/>
+		<property value="#DFE2FF" name="pane-background-color"/>
+		<property value="#B6BDD6" name="pane-edge-color"/>
+		<property value="images" name="image-dir"/>
+		<property value="#d3d3d3" name="tab-not-selected-color"/>
+	</skin>
+	<!-- We now define the first "Tab" of this screen. It is effectively a card in the "stack"-->
+	<portlets user="tabuser">
+		<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController">
+			<!-- Relative widths of the colums on screen (note 2 columns)-->
+			<parameter value="50%,50%" name="sizes"/>
+			<!-- we are in "row" mode" as opposed to column, the default-->
+			<parameter value="row" name="mode"/>
+		</controller>
+		<!-- Postion of this tab in the stack. In this case 0 is the first-->
+		<layout size="NORMAL" position="0"/>
+		<!-- Text used to title the actual tab -->
+		<metainfo>
+			<title>Home Page</title>
+		</metainfo>
+		<!-- For the first Tab, define the portlet sources for the left hand column -->
+		<portlets user="tabuser">
+			<!-- Start a new colum -->
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+			<!-- All entries are of type "reference" in site mark up psml -->
+			<entry parent="Jokes" type="ref">
+				<!-- The position of the entry in the associated column, from  top to bottom
+					Change the position value to change the order on screen -->
+				<layout position="0"/>
+			</entry>
+			<entry parent="Computer security" type="ref">
+				<layout position="1"/>
+			</entry>
+			<entry parent="Developer" type="ref">
+				<layout position="2"/>
+			</entry>
+		</portlets>
+		<!-- For the first Tab, define the portlet sources for the right hand column -->
+		<portlets user="tabuser">
+			<!-- start the second column -->
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+			<entry parent="NewsFeedPortlet" type="ref">
+				<layout position="0"/>
+			</entry>
+			<entry parent="Jetspeed" type="ref">
+				<layout position="1"/>
+			</entry>
+			<entry parent="Search" type="ref">
+				<layout position="2"/>
+			</entry>
+		</portlets>
+	</portlets>
+	<!-- We now define the second "Tab" of this screen.  Note that the comments above apply to
+		all remaining tabs -->
+	<portlets user="tabuser">
+		<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController">
+			<parameter value="50%,50%" name="sizes"/>
+			<parameter value="row" name="mode"/>
+		</controller>
+		<!-- Postion of this tab in the stack. -->
+		<layout size="NORMAL" position="1"/>
+		<metainfo>
+			<title>EJB Page</title>
+		</metainfo>
+		<portlets user="tabuser">
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+			<entry parent="Java" type="ref">
+				<layout position="0"/>
+			</entry>
+			<entry parent="Internet global" type="ref">
+				<layout position="1"/>
+			</entry>
+		</portlets>
+		<portlets user="tabuser">
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+			<entry parent="Search" type="ref">
+				<layout position="0"/>
+			</entry>
+			<entry parent="BillionairesPortlet" type="ref">
+				<layout position="1"/>
+			</entry>
+		</portlets>
+	</portlets>
+	<!-- We now define the third "Tab" of this screen. -->
+	<portlets user="tabuser">
+		<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController">
+			<parameter value="50%,50%" name="sizes"/>
+			<parameter value="row" name="mode"/>
+		</controller>
+		<layout size="NORMAL" position="2"/>
+		<metainfo>
+			<title>Finance Page</title>
+		</metainfo>
+		<portlets user="tabuser">
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+			<entry parent="Marketing" type="ref">
+				<layout position="0"/>
+			</entry>
+			<entry parent="AT&amp;T" type="ref">
+				<layout position="1"/>
+			</entry>
+		</portlets>
+		<portlets user="tabuser">
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+			<entry parent="Search" type="ref">
+				<layout position="0"/>
+			</entry>
+			<entry parent="OandaCurrency" type="ref">
+				<layout position="1"/>
+			</entry>
+			<entry parent="YahooDayChart" type="ref">
+				<layout position="2"/>
+			</entry>
+		</portlets>
+	</portlets>
+	<!-- Likewise the fourth tab -->
+	<portlets user="tabuser">
+		<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController">
+			<parameter value="50%,50%" name="sizes"/>
+			<parameter value="row" name="mode"/>
+		</controller>
+		<layout size="NORMAL" position="3"/>
+		<metainfo>
+			<title>Industry</title>
+		</metainfo>
+		<portlets user="tabuser">
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+			<entry parent="Hospitality" type="ref">
+				<layout position="0"/>
+			</entry>
+			<entry parent="Consumer non-durables " type="ref">
+				<layout position="1"/>
+			</entry>
+		</portlets>
+		<portlets user="tabuser">
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+			<entry parent="Search" type="ref">
+				<layout position="0"/>
+			</entry>
+		</portlets>
+	</portlets>
+	<!-- Likewise the fifth tab -->
+	<portlets user="tabuser">
+		<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController">
+			<parameter value="50%,50%" name="sizes"/>
+			<parameter value="row" name="mode"/>
+		</controller>
+		<layout size="NORMAL" position="4"/>
+		<metainfo>
+			<title>Top News</title>
+		</metainfo>
+		<portlets user="tabuser">
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+			<entry parent="Internet global" type="ref">
+				<layout position="0"/>
+			</entry>
+		</portlets>
+		<portlets user="tabuser">
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+			<entry parent="Search" type="ref">
+				<layout position="0"/>
+			</entry>
+		</portlets>
+	</portlets>
+	<!-- Likewise the sixth tab -->
+	<portlets user="tabuser">
+		<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController">
+			<parameter value="50%,50%" name="sizes"/>
+			<parameter value="row" name="mode"/>
+		</controller>
+		<layout size="NORMAL" position="5"/>
+		<metainfo>
+			<title>Regional</title>
+		</metainfo>
+		<portlets user="tabuser">
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+			<entry parent="Europe" type="ref">
+				<layout position="0"/>
+			</entry>
+			<entry parent="UK" type="ref">
+				<layout position="1"/>
+			</entry>
+		</portlets>
+		<portlets user="tabuser">
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+			<entry parent="Search" type="ref">
+				<layout position="0"/>
+			</entry>
+		</portlets>
+	</portlets>
+</portlets>
diff --git a/openjoda/content/psml/turbine.psml b/openjoda/content/psml/turbine.psml
new file mode 100644
index 0000000..496731f
--- /dev/null
+++ b/openjoda/content/psml/turbine.psml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<portlets user="default" xmlns="http://xml.apache.org/jetspeed/2000/psml">
+
+	<controller name="org.apache.jetspeed.portal.controllers.CardPortletController">
+		<parameter name="parameter" value="pane"/>
+	</controller>
+
+	<control name="org.apache.jetspeed.portal.controls.PanedPortletControl"/>
+
+	<skin>
+		<property name="selected-color" value="#990000"/>
+		<property name="background-color" value="FFFFFF"/>
+		<property name="title-color" value="#FFCC00"/>
+	</skin>
+
+	<portlets>
+		<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController">
+			<parameter name="sizes" value="66%,34%"/>
+			<parameter name="mode" value="row"/>
+		</controller>
+
+		<layout position="0"/>
+
+		<metainfo>
+			<title>Home Page</title>
+		</metainfo>
+
+		<skin>
+			<property name="background-color" value="#FFFFFF"/>
+		</skin>
+
+		<portlets>
+			<controller name="org.apache.jetspeed.portal.controllers.FlowPortletController"/>
+
+			<layout position="0"/>
+
+		        <entry type="ref" parent="JetspeedContent">
+	        		<layout position="0"/>
+	        	</entry>
+	        </portlets>
+
+		<portlets>
+			<controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
+
+			<layout position="1"/>
+
+	        	<entry type="ref" parent="Jetspeed">
+	        		<layout position="0"/>
+		        </entry>
+
+		        <entry type="ref" parent="Search">
+	        		<layout position="1"/>
+	        	</entry>
+        </portlets>
+
+    </portlets>
+
+	<portlets>
+		<controller name="org.apache.jetspeed.portal.controllers.GridPortletController">
+			<parameter name="columns" value="1"/>
+			<parameter name="columnWidths" value="95%"/>
+		</controller>
+
+		<layout position="1"/>
+
+		<metainfo>
+			<title>RSS Sources</title>
+		</metainfo>
+
+		<skin>
+			<property name="background-color" value="#ffffff"/>
+		</skin>
+
+	        <portlets>
+			<controller name="org.apache.jetspeed.portal.controllers.CardPortletController">
+				<parameter name="defaultcard" value="0"/>
+				<parameter name="parameter" value="channel"/>
+			</controller>
+
+			<control name="org.apache.jetspeed.portal.controls.PanedPortletControl"/>
+
+			<skin>
+				<property name="selected-color" value="#FFCC00"/>
+				<property name="title-color" value="#FFFFFF"/>
+			</skin>
+
+			<layout>
+				<property name="row" value="0"/>
+				<property name="column" value="0"/>
+			</layout>
+
+        		<entry type="ref" parent="Slashdot">
+        			<control name="org.apache.jetspeed.portal.controls.ClearPortletControl"/>
+      	    			<layout position="0"/>
+        		</entry>
+
+		        <entry type="ref" parent="Mozilla">
+        			<control name="org.apache.jetspeed.portal.controls.ClearPortletControl"/>
+      	    			<layout position="1"/>
+		        </entry>
+
+		        <entry type="ref" parent="Apacheweek">
+      	    			<layout position="2"/>
+		        </entry>
+
+		        <entry type="ref" parent="XMLHack">
+      	    			<layout position="3"/>
+		        </entry>
+
+
+		</portlets>
+	</portlets>
+
+</portlets>
diff --git a/openjoda/content/readme.txt b/openjoda/content/readme.txt
new file mode 100644
index 0000000..dac8bfa
--- /dev/null
+++ b/openjoda/content/readme.txt
@@ -0,0 +1,23 @@
+Install it - www.xo3.com.
+
+Delete /content first from /tomcat/webapps/root
+Copy my /content
+Copy my root//webapps/Jetspeed-properties.jcfg
+
+Copy JetspeedResources.properties to tomcat/webapps/root/web-inf/
+
+Copy my PortletCache  to /jetspeed/src/java/org/...../disk/memory
+Copy my JetspeedTopNavigation.java to 	/jetspeed/src/java/org/apache/jetspeed/turbine/navigation
+Run build from /jetspeed/build/build
+
+Copy my /openjoda/jboss2/bin/openjoda.bat
+
+Delete /jboss2/deploy/*.ejb
+
+Start Siena Server at port 31337 on localserver
+
+start apache web-server for code download
+
+start server from menu
+
+open /jetspeed home from menu OR start http://localhost:8080/servlet/jetspeed
\ No newline at end of file
diff --git a/openjoda/content/static/about/index.rss b/openjoda/content/static/about/index.rss
new file mode 100644
index 0000000..4100541
--- /dev/null
+++ b/openjoda/content/static/about/index.rss
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+
+<rss version="0.92">
+
+
+    <channel>
+
+        <title>About Jetspeed</title>
+        <description>
+        Jetspeed is an Open Source Portal Application Server distributed under
+        an Apache style license.  It's main goal is to help Intranet developers
+        and corporations developer Portals in record time.  Jetspeed is fully
+        Open Source and is based on the following technologies:
+        </description>
+
+        <image>
+            <title>Jetspeed</title>
+            <url>/content/images/microphone.gif</url>
+            <link>http://java.apache.org/jetspeed</link>
+        </image>
+
+        <item>
+
+            <title>Jakarta</title>
+            <link>http://jakarta.apache.org</link>
+            <description>
+            Jakarta is the target Servlet engine of Jetspeed.
+            </description>
+
+        </item>
+
+
+        <item>
+
+            <title>Cocoon</title>
+            <link></link>
+            <description>
+            </description>
+
+        </item>
+
+
+        <item>
+
+            <title>Apache</title>
+            <link></link>
+            <description>
+            </description>
+
+        </item>
+
+        <item>
+
+            <title>Xerces</title>
+            <link></link>
+            <description>
+            </description>
+
+        </item>
+
+        <item>
+
+            <title>Xalan</title>
+            <link></link>
+            <description>
+            </description>
+
+        </item>
+
+        <item>
+
+            <title>Element Construction Set</title>
+            <link></link>
+            <description>
+            </description>
+
+        </item>
+
+        <item>
+
+            <title>Turbine</title>
+            <link></link>
+            <description>
+            </description>
+
+        </item>
+
+
+
+    </channel>
+
+
+</rss>
diff --git a/openjoda/content/static/about/jakarta.gif b/openjoda/content/static/about/jakarta.gif
new file mode 100644
index 0000000..4e3a8fe
Binary files /dev/null and b/openjoda/content/static/about/jakarta.gif differ
diff --git a/openjoda/content/static/about/ws_ftp.log b/openjoda/content/static/about/ws_ftp.log
new file mode 100644
index 0000000..f8fd9f4
--- /dev/null
+++ b/openjoda/content/static/about/ws_ftp.log
@@ -0,0 +1,16 @@
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\index.rss <-- canal /home/ktn10/project/openjoda/content/static/about index.rss
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\jakarta.gif <-- canal /home/ktn10/project/openjoda/content/static/about jakarta.gif
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\index.rss --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/about index.rss
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\jakarta.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/about jakarta.gif
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/about WS_FTP.LOG
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\index.rss --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/about index.rss
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\jakarta.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/about jakarta.gif
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/static/about WS_FTP.LOG
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\index.rss --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/about index.rss
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\jakarta.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/about jakarta.gif
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/about WS_FTP.LOG
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\index.rss --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/about index.rss
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\jakarta.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/about jakarta.gif
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/about WS_FTP.LOG
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\index.rss --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/about index.rss
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\about\jakarta.gif --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/about jakarta.gif
diff --git a/openjoda/content/static/gauge.html b/openjoda/content/static/gauge.html
new file mode 100644
index 0000000..1c7d6bf
--- /dev/null
+++ b/openjoda/content/static/gauge.html
@@ -0,0 +1,12 @@
+
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+</head>
+
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img border="0" src="/content/images/indus.jpg" width="91" height="80"></p>
+<p>&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<img border="0" src="/content/images/gauge.jpg" width="83" height="70"></p>
diff --git a/openjoda/content/static/login.html b/openjoda/content/static/login.html
new file mode 100644
index 0000000..219da65
--- /dev/null
+++ b/openjoda/content/static/login.html
@@ -0,0 +1,27 @@
+
+
+<!--
+FIX ME:  WARNING:
+THIS MIGHT BREAK IF YOU USE SOMETHING OTHER THAN  /servlet/jetspeed as your
+Servlet.
+-->
+<center>
+<form accept-charset="UNKNOWN"
+      method="POST"
+      action="/servlet/jetspeed/screen/Home/action/JLoginUser"
+      enctype="application/x-www-form-urlencoded">
+
+<input name="nextscreen" type="hidden" value="Home">
+<input name="showedit" type="hidden" value="false">
+Username: <input size="12" value="" name="username" maxlength="25" type="text">
+<br>
+Password: <input size="12" value="" name="password" maxlength="25" type="password">
+
+<br>
+
+<input name="submit" type="submit" value="Login">
+<br>
+<a href="/jetspeed/screen/NewAccount/nextscreen/Home">Create a new account</a>
+</form>
+
+</center>
diff --git a/openjoda/content/static/metaparser.html b/openjoda/content/static/metaparser.html
new file mode 100644
index 0000000..25a65b2
--- /dev/null
+++ b/openjoda/content/static/metaparser.html
@@ -0,0 +1,26 @@
+
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+</head>
+
+<p align="left"><b><i><font color="#0000FF" size="5">Metaparser </font><font size="5">-</font><font color="#0000FF" size="5">
+</font></i></b><font size="4" color="#666666"><u>Directory Structure</u></font></p>
+<ul>
+  <li><font color="#333399">psl</font>
+    <ul>
+      <li><font color="#333399">metaparser</font>
+        <ul>
+          <li><font color="#333399">Metaparser.java</font></li>
+          <li><font color="#333399">MetaparserErrorHandler.java</font></li>
+          <li><font color="#333399">MetaparserService.java</font></li>
+          <li><font color="#333399">MetaparserTag.java</font></li>
+          <li><font color="#333399">MetaparserTest.java</font></li>
+          <li><font color="#333399">SmartEvent.java</font></li>
+          <li><font color="#333399">TreeViewer.java</font></li>
+        </ul>
+      </li>
+    </ul>
+  </li>
+</ul>
diff --git a/openjoda/content/static/oracle.html b/openjoda/content/static/oracle.html
new file mode 100644
index 0000000..f2292ff
--- /dev/null
+++ b/openjoda/content/static/oracle.html
@@ -0,0 +1,36 @@
+
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+</head>
+
+<p align="left"><b><i><font color="#0000FF" size="5">Oracle&nbsp; </font><font size="5">-</font><font color="#0000FF" size="5">
+</font></i></b><u><font size="4" color="#666666">Directory Structure</font></u></p>
+<ul>
+  <li><font color="#333399">psl</font>
+    <ul>
+      <li><font color="#333399">oracle</font>
+        <ul>
+          <li><font color="#333399">exceptions</font>
+            <ul>
+              <li><font color="#333399">InvalidQueryFormatException.java</font></li>
+              <li><font color="#333399">InvalidSchemaFormatException.java</font></li>
+              <li><font color="#333399">UnknownTagException.java</font></li>
+            </ul>
+          </li>
+          <li><font color="#333399">impl</font>
+            <ul>
+              <li><font color="#333399">DBInterface.java</font></li>
+              <li><font color="#333399">Oracle.java</font></li>
+              <li><font color="#333399">OracleSienaInterface.java</font></li>
+              <li><font color="#333399">SchemaFragment.java</font></li>
+              <li><font color="#333399">SchemaInterface.java</font></li>
+              <li><font color="#333399">SendTriKXSignal.java</font></li>
+            </ul>
+          </li>
+        </ul>
+      </li>
+    </ul>
+  </li>
+</ul>
diff --git a/openjoda/content/static/oraclebak.html b/openjoda/content/static/oraclebak.html
new file mode 100644
index 0000000..f2292ff
--- /dev/null
+++ b/openjoda/content/static/oraclebak.html
@@ -0,0 +1,36 @@
+
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+</head>
+
+<p align="left"><b><i><font color="#0000FF" size="5">Oracle&nbsp; </font><font size="5">-</font><font color="#0000FF" size="5">
+</font></i></b><u><font size="4" color="#666666">Directory Structure</font></u></p>
+<ul>
+  <li><font color="#333399">psl</font>
+    <ul>
+      <li><font color="#333399">oracle</font>
+        <ul>
+          <li><font color="#333399">exceptions</font>
+            <ul>
+              <li><font color="#333399">InvalidQueryFormatException.java</font></li>
+              <li><font color="#333399">InvalidSchemaFormatException.java</font></li>
+              <li><font color="#333399">UnknownTagException.java</font></li>
+            </ul>
+          </li>
+          <li><font color="#333399">impl</font>
+            <ul>
+              <li><font color="#333399">DBInterface.java</font></li>
+              <li><font color="#333399">Oracle.java</font></li>
+              <li><font color="#333399">OracleSienaInterface.java</font></li>
+              <li><font color="#333399">SchemaFragment.java</font></li>
+              <li><font color="#333399">SchemaInterface.java</font></li>
+              <li><font color="#333399">SendTriKXSignal.java</font></li>
+            </ul>
+          </li>
+        </ul>
+      </li>
+    </ul>
+  </li>
+</ul>
diff --git a/openjoda/content/static/tree/directory.html b/openjoda/content/static/tree/directory.html
new file mode 100644
index 0000000..3ee3990
--- /dev/null
+++ b/openjoda/content/static/tree/directory.html
@@ -0,0 +1,21 @@
+<html>
+
+<head>
+
+<!--link rel="stylesheet" href="ftie4style.css"-->
+
+<!-- Infrastructure code for the tree -->
+<script src="/content/javascript/ftiens4.js"></script>
+
+<!-- Execution of the code that actually builds the specific tree -->
+<script src="/content/javascript/input.js"></script>
+
+<script>
+initializeDocument()
+</script>
+
+</head>
+
+<body bgcolor=white>
+
+</html>
diff --git a/openjoda/content/static/tree/eventdistillertree.html b/openjoda/content/static/tree/eventdistillertree.html
new file mode 100644
index 0000000..7b5b003
--- /dev/null
+++ b/openjoda/content/static/tree/eventdistillertree.html
@@ -0,0 +1,13 @@
+
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+</head>
+
+<p><font size="4" color="#333300" face="Book Antiqua">Event Distillers are
+responsible for collecting the most &quot;interesting&quot; events and
+subsequences of event posets according to patterns and other programmable
+criteria.</font></p>
+<p><font size="4" color="#333300" face="Book Antiqua">Distiller also performs a
+first level of parsing, presentation, and processing as in the XML paradigm.</font></p>
diff --git a/openjoda/content/static/tree/eventnotifiertree.html b/openjoda/content/static/tree/eventnotifiertree.html
new file mode 100644
index 0000000..426fd75
--- /dev/null
+++ b/openjoda/content/static/tree/eventnotifiertree.html
@@ -0,0 +1,11 @@
+
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+</head>
+
+<p><font size="4" face="Book Antiqua" color="#333300">Event Notifiers are
+responsible for second level parsing, presentation and processing&nbsp; of
+abstract events (XML format). They are also responsible for presenting, managing
+and updating the gauges.</font></p>
diff --git a/openjoda/content/static/tree/kxtree.html b/openjoda/content/static/tree/kxtree.html
new file mode 100644
index 0000000..52b705a
--- /dev/null
+++ b/openjoda/content/static/tree/kxtree.html
@@ -0,0 +1,13 @@
+
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+</head>
+
+<p><font size="4" color="#333300" face="Book Antiqua">KX is an infrastructure
+for monitoring the runtime behavior of&nbsp; component - based&nbsp;&nbsp;
+systems.&nbsp; </font></p>
+<p><font size="4" color="#333300" face="Book Antiqua">It interfaces&nbsp; to
+a&nbsp; target architecture via lightweight probes&nbsp; into its components and
+actualized connectors. </font></p>
diff --git a/openjoda/content/static/tree/metaparsertree.html b/openjoda/content/static/tree/metaparsertree.html
new file mode 100644
index 0000000..2a118b5
--- /dev/null
+++ b/openjoda/content/static/tree/metaparsertree.html
@@ -0,0 +1,100 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+</head>
+
+<body>
+
+
+<script language="JavaScript">
+
+    /*
+    Choose the search engine when the user pulls down a select box
+    */
+    function chooseEngine( engine ) {
+        document.search.srcImg.src='/content/images/search/' + engine + ".gif";
+    }
+
+    /*
+    Go out and search a search engine.
+    */
+    function searchEngine( engine ) {
+        url = getURL( engine );
+        document.location = url + getQueryString();
+        return false;
+    }
+
+    /*
+    Get the current Search engine that the user has picked
+    */
+    function getCurrentEngine() {
+        return document.search.engine[document.search.engine.selectedIndex].value
+    }
+
+    /*
+    Get the current query string that the user has entered.
+    */
+    function getQueryString() {
+        return document.search.searchText.value;
+    }
+
+    function getURL( engine ) {
+
+        for ( i = 0; i < searchengines.length; ++i ) {
+
+            if ( searchengines[i].name == engine ) {
+                return searchengines[i].url;
+            }
+        }
+
+    }
+
+
+    /*
+    Get the definied search engines
+    */
+    function getSearchEngines() {
+        return searchengines;
+    }
+
+    /*
+    Create a search Engine object
+    */
+    function SearchEngine( name, title, url ) {
+        this.name = name;
+        this.title = title;
+        this.url = url;
+    }
+
+    //perform any object instantiations...
+
+
+    //populate the search engine hashtable.
+
+
+    /*
+    In order to define a search engine here just add it in the source.
+    */
+    searchengines = new Array(9);
+    searchengines[0] = new SearchEngine( "yahoo", "Yahoo", "http://ink.yahoo.com/bin/query?p=" );
+    searchengines[1] = new SearchEngine( "google", "Google", "http://www.google.com/search?q=" );
+    searchengines[2] = new SearchEngine( "altavista", "Altavista", "http://www.altavista.com/cgi-bin/query?q=" );
+    searchengines[3] = new SearchEngine( "dejanews", "Dejanews", "http://www.deja.com/products/search/search.xp?&QRY=" );
+    searchengines[4] = new SearchEngine( "excite", "Excite", "http://search.excite.com/search.gw?search=" );
+    searchengines[5] = new SearchEngine( "hotbot", "Hotbot", "http://hotbot.lycos.com/?MT=" );
+    searchengines[6] = new SearchEngine( "infoseek", "Infoseek", "http://infoseek.go.com/Titles?qt=" );
+    searchengines[7] = new SearchEngine( "webcrawler", "Webcrawler", "http://www.webcrawler.com/cgi-bin/WebQuery?searchText=" );
+    searchengines[8] = new SearchEngine( "freshmeat", "Freshmeat", "http://freshmeat.net/search.php3?query=" );
+
+
+</script>
+
+<p align="left"><font face="Book Antiqua"><font color="#333300" size="4">Metaparser
+parses and processes stream based XML event. It also applyies the appropriate
+processing module to interpret the tagged data in the smart event streams.</font></font></p>
+
+</body>
+
+</html>
diff --git a/openjoda/content/static/tree/oracletree.html b/openjoda/content/static/tree/oracletree.html
new file mode 100644
index 0000000..fe8c1ca
--- /dev/null
+++ b/openjoda/content/static/tree/oracletree.html
@@ -0,0 +1,11 @@
+
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+</head>
+
+<p><font face="Book Antiqua"><font size="4" color="#333300">Oracle supports
+Metaparser by providing a directory service. It allows Metaparser to find a
+matching schema fragment and&nbsp; permits tag sets to be composed and new
+schemas to be constructed on the fly.</font></font></p>
diff --git a/openjoda/content/static/tree/tree.html b/openjoda/content/static/tree/tree.html
new file mode 100644
index 0000000..289d09c
--- /dev/null
+++ b/openjoda/content/static/tree/tree.html
@@ -0,0 +1,17 @@
+<html>
+<head>
+</head>
+
+<FRAMESET rows="200,*">
+  <FRAME src="/content/static/tree/directory.html" name="treeframe" >
+  <FRAME SRC="/content/static/tree/component.html" name="basefrm">
+</FRAMESET>
+<noframes>
+    <p>
+      You are viewing a site that works
+      best with frames enabled browsers.
+    </p>
+</noframes>
+
+
+</HTML>
diff --git a/openjoda/content/static/tree/wgcachetree.html b/openjoda/content/static/tree/wgcachetree.html
new file mode 100644
index 0000000..a453d2d
--- /dev/null
+++ b/openjoda/content/static/tree/wgcachetree.html
@@ -0,0 +1,101 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+</head>
+
+<body>
+
+
+<script language="JavaScript">
+
+    /*
+    Choose the search engine when the user pulls down a select box
+    */
+    function chooseEngine( engine ) {
+        document.search.srcImg.src='/content/images/search/' + engine + ".gif";
+    }
+
+    /*
+    Go out and search a search engine.
+    */
+    function searchEngine( engine ) {
+        url = getURL( engine );
+        document.location = url + getQueryString();
+        return false;
+    }
+
+    /*
+    Get the current Search engine that the user has picked
+    */
+    function getCurrentEngine() {
+        return document.search.engine[document.search.engine.selectedIndex].value
+    }
+
+    /*
+    Get the current query string that the user has entered.
+    */
+    function getQueryString() {
+        return document.search.searchText.value;
+    }
+
+    function getURL( engine ) {
+
+        for ( i = 0; i < searchengines.length; ++i ) {
+
+            if ( searchengines[i].name == engine ) {
+                return searchengines[i].url;
+            }
+        }
+
+    }
+
+
+    /*
+    Get the definied search engines
+    */
+    function getSearchEngines() {
+        return searchengines;
+    }
+
+    /*
+    Create a search Engine object
+    */
+    function SearchEngine( name, title, url ) {
+        this.name = name;
+        this.title = title;
+        this.url = url;
+    }
+
+    //perform any object instantiations...
+
+
+    //populate the search engine hashtable.
+
+
+    /*
+    In order to define a search engine here just add it in the source.
+    */
+    searchengines = new Array(9);
+    searchengines[0] = new SearchEngine( "yahoo", "Yahoo", "http://ink.yahoo.com/bin/query?p=" );
+    searchengines[1] = new SearchEngine( "google", "Google", "http://www.google.com/search?q=" );
+    searchengines[2] = new SearchEngine( "altavista", "Altavista", "http://www.altavista.com/cgi-bin/query?q=" );
+    searchengines[3] = new SearchEngine( "dejanews", "Dejanews", "http://www.deja.com/products/search/search.xp?&QRY=" );
+    searchengines[4] = new SearchEngine( "excite", "Excite", "http://search.excite.com/search.gw?search=" );
+    searchengines[5] = new SearchEngine( "hotbot", "Hotbot", "http://hotbot.lycos.com/?MT=" );
+    searchengines[6] = new SearchEngine( "infoseek", "Infoseek", "http://infoseek.go.com/Titles?qt=" );
+    searchengines[7] = new SearchEngine( "webcrawler", "Webcrawler", "http://www.webcrawler.com/cgi-bin/WebQuery?searchText=" );
+    searchengines[8] = new SearchEngine( "freshmeat", "Freshmeat", "http://freshmeat.net/search.php3?query=" );
+
+
+</script>
+
+<p><font face="Book Antiqua" size="4" color="#333300">WGCache provides a&nbsp;
+shared cache-based approaches to &quot;knowledge propagation&quot;. The
+multi-user hierarchical cache system employs programmable selection criteria,
+such as a software process or project workflow.</font></p>
+
+</body>
+
+</html>
diff --git a/openjoda/content/static/tree/workletstree.html b/openjoda/content/static/tree/workletstree.html
new file mode 100644
index 0000000..aa8e4c8
--- /dev/null
+++ b/openjoda/content/static/tree/workletstree.html
@@ -0,0 +1,100 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+</head>
+
+<body>
+
+
+<script language="JavaScript">
+
+    /*
+    Choose the search engine when the user pulls down a select box
+    */
+    function chooseEngine( engine ) {
+        document.search.srcImg.src='/content/images/search/' + engine + ".gif";
+    }
+
+    /*
+    Go out and search a search engine.
+    */
+    function searchEngine( engine ) {
+        url = getURL( engine );
+        document.location = url + getQueryString();
+        return false;
+    }
+
+    /*
+    Get the current Search engine that the user has picked
+    */
+    function getCurrentEngine() {
+        return document.search.engine[document.search.engine.selectedIndex].value
+    }
+
+    /*
+    Get the current query string that the user has entered.
+    */
+    function getQueryString() {
+        return document.search.searchText.value;
+    }
+
+    function getURL( engine ) {
+
+        for ( i = 0; i < searchengines.length; ++i ) {
+
+            if ( searchengines[i].name == engine ) {
+                return searchengines[i].url;
+            }
+        }
+
+    }
+
+
+    /*
+    Get the definied search engines
+    */
+    function getSearchEngines() {
+        return searchengines;
+    }
+
+    /*
+    Create a search Engine object
+    */
+    function SearchEngine( name, title, url ) {
+        this.name = name;
+        this.title = title;
+        this.url = url;
+    }
+
+    //perform any object instantiations...
+
+
+    //populate the search engine hashtable.
+
+
+    /*
+    In order to define a search engine here just add it in the source.
+    */
+    searchengines = new Array(9);
+    searchengines[0] = new SearchEngine( "yahoo", "Yahoo", "http://ink.yahoo.com/bin/query?p=" );
+    searchengines[1] = new SearchEngine( "google", "Google", "http://www.google.com/search?q=" );
+    searchengines[2] = new SearchEngine( "altavista", "Altavista", "http://www.altavista.com/cgi-bin/query?q=" );
+    searchengines[3] = new SearchEngine( "dejanews", "Dejanews", "http://www.deja.com/products/search/search.xp?&QRY=" );
+    searchengines[4] = new SearchEngine( "excite", "Excite", "http://search.excite.com/search.gw?search=" );
+    searchengines[5] = new SearchEngine( "hotbot", "Hotbot", "http://hotbot.lycos.com/?MT=" );
+    searchengines[6] = new SearchEngine( "infoseek", "Infoseek", "http://infoseek.go.com/Titles?qt=" );
+    searchengines[7] = new SearchEngine( "webcrawler", "Webcrawler", "http://www.webcrawler.com/cgi-bin/WebQuery?searchText=" );
+    searchengines[8] = new SearchEngine( "freshmeat", "Freshmeat", "http://freshmeat.net/search.php3?query=" );
+
+
+</script>
+
+<p><font size="4" face="Book Antiqua" color="#333300">Worklets acts as&nbsp; a
+mobile agent that can be constructed or parameterized on the fly by a human or
+and other programmable criteria delivered by other program. </font></p>
+
+</body>
+
+</html>
diff --git a/openjoda/content/static/tree/ws_ftp.log b/openjoda/content/static/tree/ws_ftp.log
new file mode 100644
index 0000000..f806e3d
--- /dev/null
+++ b/openjoda/content/static/tree/ws_ftp.log
@@ -0,0 +1,56 @@
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\component.html <-- canal /home/ktn10/project/openjoda/content/static/tree component.html
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\directory.html <-- canal /home/ktn10/project/openjoda/content/static/tree directory.html
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\eventdistillertree.html <-- canal /home/ktn10/project/openjoda/content/static/tree eventdistillertree.html
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\eventnotifiertree.html <-- canal /home/ktn10/project/openjoda/content/static/tree eventnotifiertree.html
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\ftie4style.css <-- canal /home/ktn10/project/openjoda/content/static/tree ftie4style.css
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\ftiens4.js <-- canal /home/ktn10/project/openjoda/content/static/tree ftiens4.js
+2000.12.18 02:56 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\ftv2blank.gif <-- canal /home/ktn10/project/openjoda/content/static/tree ftv2blank.gif
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\ftv2doc.gif <-- canal /home/ktn10/project/openjoda/content/static/tree ftv2doc.gif
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\ftv2folderclosed.gif <-- canal /home/ktn10/project/openjoda/content/static/tree ftv2folderclosed.gif
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\ftv2folderopen.gif <-- canal /home/ktn10/project/openjoda/content/static/tree ftv2folderopen.gif
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\ftv2lastnode.gif <-- canal /home/ktn10/project/openjoda/content/static/tree ftv2lastnode.gif
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\ftv2link.gif <-- canal /home/ktn10/project/openjoda/content/static/tree ftv2link.gif
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\ftv2mlastnode.gif <-- canal /home/ktn10/project/openjoda/content/static/tree ftv2mlastnode.gif
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\ftv2mnode.gif <-- canal /home/ktn10/project/openjoda/content/static/tree ftv2mnode.gif
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\ftv2node.gif <-- canal /home/ktn10/project/openjoda/content/static/tree ftv2node.gif
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\ftv2plastnode.gif <-- canal /home/ktn10/project/openjoda/content/static/tree ftv2plastnode.gif
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\ftv2pnode.gif <-- canal /home/ktn10/project/openjoda/content/static/tree ftv2pnode.gif
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\ftv2vertline.gif <-- canal /home/ktn10/project/openjoda/content/static/tree ftv2vertline.gif
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\input.js <-- canal /home/ktn10/project/openjoda/content/static/tree input.js
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\kxtree.html <-- canal /home/ktn10/project/openjoda/content/static/tree kxtree.html
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\metaparsertree.html <-- canal /home/ktn10/project/openjoda/content/static/tree metaparsertree.html
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\oracletree.html <-- canal /home/ktn10/project/openjoda/content/static/tree oracletree.html
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\tree.html <-- canal /home/ktn10/project/openjoda/content/static/tree tree.html
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\wgcachetree.html <-- canal /home/ktn10/project/openjoda/content/static/tree wgcachetree.html
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\workletstree.html <-- canal /home/ktn10/project/openjoda/content/static/tree workletstree.html
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\component.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree component.html
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\Copy of ftexample.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree Copy of ftexample.html
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\directory.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree directory.html
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\eventdistillertree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree eventdistillertree.html
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\eventnotifiertree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree eventnotifiertree.html
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\kxtree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree kxtree.html
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\metaparsertree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree metaparsertree.html
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\oracletree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree oracletree.html
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\tree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree tree.html
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\wgcachetree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree wgcachetree.html
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\workletstree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree workletstree.html
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree WS_FTP.LOG
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\directory.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree directory.html
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\eventdistillertree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree eventdistillertree.html
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\eventnotifiertree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree eventnotifiertree.html
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\kxtree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree kxtree.html
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\metaparsertree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree metaparsertree.html
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\oracletree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree oracletree.html
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\tree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree tree.html
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\wgcachetree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree wgcachetree.html
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\workletstree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree workletstree.html
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree WS_FTP.LOG
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\directory.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree directory.html
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\eventdistillertree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree eventdistillertree.html
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\eventnotifiertree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree eventnotifiertree.html
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\kxtree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree kxtree.html
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\metaparsertree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree metaparsertree.html
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\oracletree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree oracletree.html
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\tree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree tree.html
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\wgcachetree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree wgcachetree.html
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\tree\workletstree.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static/tree workletstree.html
diff --git a/openjoda/content/static/wgcache.html b/openjoda/content/static/wgcache.html
new file mode 100644
index 0000000..633fde5
--- /dev/null
+++ b/openjoda/content/static/wgcache.html
@@ -0,0 +1,34 @@
+
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+</head>
+
+<p align="left"><b><i><font color="#0000FF" size="5">WGCache </font><font size="5">-</font></i></b><font size="4" color="#666666">
+</font><u><font size="4" color="#666666">Directory Structure</font></u></p>
+<ul>
+  <li><font color="#333399">psl</font>
+    <ul>
+      <li><font color="#333399">wgcache</font>
+        <ul>
+          <li><font color="#333399">exception</font>
+            <ul>
+              <li><font color="#333399">Overflow.java</font></li>
+              <li><font color="#333399">WGMissException.java</font></li>
+            </ul>
+          </li>
+          <li><font color="#333399">impl</font>
+            <ul>
+              <li><font color="#333399">BinaryHeap.java</font></li>
+              <li><font color="#333399">Cacheable.java</font></li>
+              <li><font color="#333399">CacheService.java</font></li>
+              <li><font color="#333399">DBInterface.java</font></li>
+              <li><font color="#333399">TobeCached.java</font></li>
+            </ul>
+          </li>
+        </ul>
+      </li>
+    </ul>
+  </li>
+</ul>
diff --git a/openjoda/content/static/ws_ftp.log b/openjoda/content/static/ws_ftp.log
new file mode 100644
index 0000000..9be7933
--- /dev/null
+++ b/openjoda/content/static/ws_ftp.log
@@ -0,0 +1,28 @@
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\login.html <-- canal /home/ktn10/project/openjoda/content/static login.html
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\mp.html <-- canal /home/ktn10/project/openjoda/content/static mp.html
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\oracle.html <-- canal /home/ktn10/project/openjoda/content/static oracle.html
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\login.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static login.html
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\mp.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static mp.html
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\oracle.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static oracle.html
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static WS_FTP.LOG
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\login.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static login.html
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\mp.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static mp.html
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\oracle.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static oracle.html
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\testit.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static testit.html
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/static WS_FTP.LOG
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\login.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static login.html
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\oracle.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static oracle.html
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static WS_FTP.LOG
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\gauge.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static gauge.html
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\login.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static login.html
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\metaparser.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static metaparser.html
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\oracle.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static oracle.html
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\oraclebak.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static oraclebak.html
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\wgcache.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static wgcache.html
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static WS_FTP.LOG
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\gauge.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static gauge.html
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\login.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static login.html
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\metaparser.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static metaparser.html
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\oracle.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static oracle.html
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\oraclebak.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static oraclebak.html
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\static\wgcache.html --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/static wgcache.html
diff --git a/openjoda/content/xml/defaultstyle.xsl b/openjoda/content/xml/defaultstyle.xsl
new file mode 100644
index 0000000..533bbcc
--- /dev/null
+++ b/openjoda/content/xml/defaultstyle.xsl
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+
+<!-- Written by Stefano Mazzocchi "stefano@apache.org" -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:template match="portlets">
+  <table align="center" width="{@width}" cellpadding="0" cellspacing="0">
+  	<tr>
+	  	<td width="50%" valign="top">
+  			<xsl:apply-templates select="portlet[position() mod 2 = 1]"/>
+	  	</td>
+	  	<td width="5"></td>
+	  	<td width="50%" valign="top">
+	  		<xsl:apply-templates select="portlet[position() mod 2 = 0]"/>
+	  	</td>
+  	</tr>
+  </table>
+  </xsl:template>
+
+  <xsl:template match="portlet">
+	<table width="{skin/width}" cellspacing="0" cellpadding="0">
+		<tr><td width="100%" bgcolor="{./skin/color}">
+		<table width="100%" cellpadding="0" cellspacing="0">
+		<tr height="30">
+			<td height="30" width="90%">
+				<font color="{./skin/titlecolor}"><xsl:value-of select=".//title"/></font>
+			</td>
+			<td height="30" width="10%" align="center"><b>Edit</b></td>
+		</tr>
+		</table>
+		</td></tr>
+		<tr>
+			<td valign="top" bgcolor="{skin/backgroundcolor}">
+			<xsl:apply-templates/>
+			</td>
+		</tr>
+	</table>
+	<table width="{skin/width}" cellspacing="0" cellpadding="0"><tr height="10"><td height="10"></td></tr></table>
+
+  </xsl:template>
+
+  <xsl:template match="channel">
+	<xsl:apply-templates select="image"/>
+	<xsl:if test="item">
+	<ul>
+		<xsl:apply-templates select="item"/>
+	</ul>
+	</xsl:if>
+  </xsl:template>
+
+  <xsl:template match="item">
+	<li> <a href="{link}"><xsl:value-of select="title"/></a></li>
+  </xsl:template>
+
+  <xsl:template match="image">
+	<a href="{link}"><img src="{url}" align="right" vspace="5" hspace="5" alt="{title}" border="0"/></a>
+  </xsl:template>
+
+  <!-- remove all skin elements, they should not be displayed -->
+  <xsl:template match="skin">
+  </xsl:template>
+
+  <!-- copy all unknown elements, they may be pre-formatted text -->
+  <xsl:template match="*|@*|text()">
+	<xsl:copy>
+		<xsl:apply-templates/>
+	</xsl:copy>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/openjoda/content/xml/jetspeed-content.xml b/openjoda/content/xml/jetspeed-content.xml
new file mode 100644
index 0000000..8d3635c
--- /dev/null
+++ b/openjoda/content/xml/jetspeed-content.xml
@@ -0,0 +1,211 @@
+<?xml version="1.0"?>
+
+<!--
+ * Copyright (c) 1998 The Java Apache Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. Every modification must be notified to the Java Apache Project
+ *    and redistribution of the modified code without prior notification
+ *    is not permitted in any form.
+ *
+ * 4. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the Java Apache Project
+ *    (http://java.apache.org/)."
+ *
+ * 5. The names "Jetspeed", "Apache Jetspeed" and "Apache Jetspeed
+ *    Project" must not be used to endorse or promote products
+ *    derived from this software without prior written permission.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the Java Apache Project
+ *    (http://java.apache.org/)."
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE JAVA APACHE PROJECT "AS IS" AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE JAVA APACHE PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * License version 1.0
+ *
+-->
+
+<content version="1.0.0">
+
+  <!--
+  TODO: break the quote portion out into:
+
+  <quote>
+    <content>
+    <url>
+  </quote>
+
+  -->
+
+    <channel>
+        <title>Jetspeed</title>
+        <link>http://java.apache.org/jetspeed</link>
+        <description>
+        Jetspeed content
+        </description>
+
+        <topics>
+
+            <entry name="jetspeed">
+                <image>
+                    <title>Jetspeed</title>
+                    <url>/content/images/topics/jetspeed.gif</url>
+                    <link>http://java.apache.org/jetspeed</link>
+                </image>
+            </entry>
+
+
+            <entry name="apache">
+                <image>
+                    <title>Apache</title>
+                    <url>/content/images/topics/apache.gif</url>
+                    <link>http://www.apache.org</link>
+                </image>
+            </entry>
+
+            <entry name="ibm">
+                <image>
+                    <title>IBM</title>
+                    <url>/content/images/topics/ibm.gif</url>
+                    <link>http://www.ibm.com</link>
+                </image>
+            </entry>
+
+
+            <entry name="internet">
+                <image>
+                    <title>Internet</title>
+                    <url>/content/images/topics/internet.gif</url>
+                    <link>http://www.w3c.org</link>
+                </image>
+            </entry>
+
+            <entry name="java">
+                <image>
+                    <title>Java</title>
+                    <url>/content/images/topics/java.gif</url>
+                    <link>http://java.sun.com</link>
+                </image>
+            </entry>
+
+            <entry name="linux">
+                <image>
+                    <title>Linux</title>
+                    <url>/content/images/topics/linux.gif</url>
+                    <link>http://www.linux.org</link>
+                </image>
+            </entry>
+
+            <entry name="news">
+                <image>
+                    <title>NEWS</title>
+                    <url>/content/images/topics/news.gif</url>
+                    <link/>
+                </image>
+            </entry>
+
+            <entry name="programming">
+                <image>
+                    <title>Programming</title>
+                    <url>/content/images/topics/programming.gif</url>
+                    <link/>
+                </image>
+            </entry>
+
+            <entry name="sun">
+                <image>
+                    <title>SUN Microsystems</title>
+                    <url>/content/images/topics/sun.gif</url>
+                    <link/>
+                </image>
+            </entry>
+
+        </topics>
+
+
+        <!-- BLANK ENTRY -->
+        <!--
+        <item>
+            <topic>java</topic>
+            <title></title>
+            <link></link>
+            <description>
+            </description>
+        </item>
+        -->
+
+        <item>
+            <topic>jetspeed</topic>
+            <title>XML at Jetspeed</title>
+            <link>http://www.xml.com/print/2000/05/15/jetspeed/index.html</link>
+            <description>
+            XML.com just published an article about my Jetspeed project.  Positive press is a good thing :)
+            </description>
+        </item>
+
+
+        <item>
+            <topic>apache</topic>
+            <title>Alexandria now part of Apache</title>
+            <link>http://java.apache.org/alexandria</link>
+            <description>
+            Alexandria is now officially a Java/Apache project.  The license is now APL
+            and hopefully will gain significant attention from its sister projects.
+            </description>
+        </item>
+
+        <item>
+            <topic>apache</topic>
+            <title>Java Cross Reference (JXR) now integrated into Alexandria</title>
+            <link>http://relativity.yi.org/alexandria/content/html/jxr</link>
+            <description>
+            Tonight I finished building out the Java Cross Reference tool into
+            Alexandria.  It works rather well.  Goes across all code and then
+            writes .html files from the Java.  It currently only does syntax
+            highlighting but the Cross Reference shouldn't be that hard.
+            </description>
+        </item>
+
+
+
+        <item>
+            <topic>jetspeed</topic>
+            <title>Apache Jetspeed 1.0 ships!</title>
+            <link>http://java.apache.org/jetspeed</link>
+            <description>
+            21 March 2000 - Jetspeed 1.0 just made it out the door. This version
+            implements many Portal features and integrates with other Java/XML Apache
+            projects such as Cocoon, Turbine, and ECS. You can get it here. Jetspeed
+            is intended to be a replacement for Enterprise portals such as Yahoo,
+            Netscape, etc.
+            </description>
+        </item>
+
+    </channel>
+
+</content>
diff --git a/openjoda/content/xml/readme b/openjoda/content/xml/readme
new file mode 100644
index 0000000..9c7b6da
--- /dev/null
+++ b/openjoda/content/xml/readme
@@ -0,0 +1,13 @@
+
+defaultPortlets.xml ->  Determines what portlets the user is subscribed to when
+                        they haven't authenticated or have just signed up for an
+                        account.
+
+
+recommendedPortlets.xml ->  When the user is prompted to choose some portlets
+                            these are recommended first.
+
+allPortlets.xml -> Determines the portlets that the user may subscribe to.
+
+portletMarkup.xsd -> The XML Schema that describes Portlet Markup Language
+
diff --git a/openjoda/content/xml/rss/jetspeed.rss b/openjoda/content/xml/rss/jetspeed.rss
new file mode 100644
index 0000000..e1496f0
--- /dev/null
+++ b/openjoda/content/xml/rss/jetspeed.rss
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<rss version="0.91">
+
+    <channel>
+        <title>Apache Jetspeed</title>
+        <link>http://java.apache.org/jetspeed</link>
+        <description>
+        An Open Source Enterprise Information Portal.
+        </description>
+
+        <image>
+            <title>Apache Jetspeed</title>
+            <url>/content/images/jetspeed-powered.gif</url>
+            <link>http://java.apache.org/jetspeed</link>
+        </image>
+
+
+        <item>
+
+            <title>Jetspeed Documentation</title>
+            <link>http://java.apache.org/jetspeed</link>
+            <description>
+            Jetspeed is an Open Source implementation of an Enterprise Information Portal
+            (or Web Based Groupware).  Jetspeed attempts to consume information from multiple
+            resources on the Internet and helps the user manage large amounts of data.
+            This information can come from multiple content types from XML to SMTP to newer
+            protocols such as iCalendar.
+            </description>
+
+        </item>
+
+        <item>
+            <title>XML at Jetspeed</title>
+            <link>http://www.xml.com/print/2000/05/15/jetspeed/index.html</link>
+            <description>
+            An xml.com article on Jetspeed which covers RSS/OCS and our PSML implementation.
+            </description>
+        </item>
+
+
+    </channel>
+
+</rss>
+
diff --git a/openjoda/content/xml/rss/ws_ftp.log b/openjoda/content/xml/rss/ws_ftp.log
new file mode 100644
index 0000000..3380773
--- /dev/null
+++ b/openjoda/content/xml/rss/ws_ftp.log
@@ -0,0 +1,10 @@
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\rss\Jetspeed.rss <-- canal /home/ktn10/project/openjoda/content/xml/rss Jetspeed.rss
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\rss\Jetspeed.rss --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml/rss Jetspeed.rss
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\rss\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml/rss WS_FTP.LOG
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\rss\Jetspeed.rss --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml/rss Jetspeed.rss
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\rss\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/xml/rss WS_FTP.LOG
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\rss\Jetspeed.rss --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml/rss Jetspeed.rss
+2000.12.18 14:12 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\rss\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml/rss WS_FTP.LOG
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\rss\Jetspeed.rss --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml/rss Jetspeed.rss
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\rss\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml/rss WS_FTP.LOG
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\rss\Jetspeed.rss --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml/rss Jetspeed.rss
diff --git a/openjoda/content/xml/ws_ftp.log b/openjoda/content/xml/ws_ftp.log
new file mode 100644
index 0000000..25369df
--- /dev/null
+++ b/openjoda/content/xml/ws_ftp.log
@@ -0,0 +1,22 @@
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\defaultstyle.xsl <-- canal /home/ktn10/project/openjoda/content/xml defaultstyle.xsl
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\jetspeed-content.xml <-- canal /home/ktn10/project/openjoda/content/xml jetspeed-content.xml
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\README <-- canal /home/ktn10/project/openjoda/content/xml README
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\defaultstyle.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml defaultstyle.xsl
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\jetspeed-content.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml jetspeed-content.xml
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\README --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml README
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml WS_FTP.LOG
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\defaultstyle.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml defaultstyle.xsl
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\jetspeed-content.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml jetspeed-content.xml
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\README --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml README
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/xml WS_FTP.LOG
+2000.12.18 14:13 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\defaultstyle.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml defaultstyle.xsl
+2000.12.18 14:13 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\jetspeed-content.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml jetspeed-content.xml
+2000.12.18 14:13 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\README --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml README
+2000.12.18 14:13 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml WS_FTP.LOG
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\defaultstyle.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml defaultstyle.xsl
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\jetspeed-content.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml jetspeed-content.xml
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\README --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml README
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml WS_FTP.LOG
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\defaultstyle.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml defaultstyle.xsl
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\jetspeed-content.xml --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml jetspeed-content.xml
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xml\README --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xml README
diff --git a/openjoda/content/xsl/billionaires.xsl b/openjoda/content/xsl/billionaires.xsl
new file mode 100644
index 0000000..9ba6f54
--- /dev/null
+++ b/openjoda/content/xsl/billionaires.xsl
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+	<xsl:template match="billionaires">
+		<table>
+    	<xsl:apply-templates/>
+		</table>
+	  <form>
+	  	<input type="hidden" name="mode" value="{@altMode}"/>
+	    <input type="submit" value="{@altModeText}"/>
+	  </form>
+	</xsl:template>
+	<xsl:template match="billionaire">
+		<tr>
+			<td>
+				<xsl:value-of select="@name"/>
+			</td>
+			<td>
+				<a href="mailto:{@email}"><xsl:value-of select="@email"/></a>
+			</td>
+			<xsl:if test="@rmv = 'true'">
+			  <td>
+			    <form>
+			  	<input type="hidden" name="rmvName" value="{@name}"/>
+			  	<input type="hidden" name="mode" value="editMode"/>
+			    <input type="submit" value="Remove"/>
+			    </form>
+			  </td>
+			</xsl:if>
+		</tr>
+	</xsl:template>
+	<xsl:template match="addable">
+		<form>
+			<td>
+			 	<input type="text" name="addName"/>
+			</td>
+			<td>
+		  	<input type="text" name="addEmail"/>
+		  </td>
+		  <td>
+		    <input type="hidden" name="mode" value="editMode"/>
+		    <input type="submit" value="Add"/>
+			</td>
+		</form>
+	</xsl:template>
+	<xsl:template match="message">
+		<b>Error : <xsl:value-of select="@text"/></b>
+	</xsl:template>
+</xsl:stylesheet>
+
diff --git a/openjoda/content/xsl/jpc-full.xsl b/openjoda/content/xsl/jpc-full.xsl
new file mode 100644
index 0000000..1e283ac
--- /dev/null
+++ b/openjoda/content/xsl/jpc-full.xsl
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+    <xsl:output method="html" indent="yes"/>
+
+    <xsl:template match="/content">
+
+        <table border="0" cellspacing="0" cellpadding="0">
+
+
+            <!--
+            <xsl:call-template name="newest-topics"/>
+            -->
+            <xsl:apply-templates select="/content/channel/item"/>
+        </table>
+    </xsl:template>
+
+    <xsl:template match="/content/channel/item">
+
+	<xsl:if test="not(position() = 1)">
+	  <tr width="100%">
+	    <td width="100%" colspan="2">
+	      <hr noshade="noshade"><!--breaker--></hr>
+	    </td>
+	  </tr>
+	</xsl:if>
+
+        <tr width="100%">
+        <!--
+        BEGIN Add the topic icon
+        -->
+
+
+        <td  align="left" valign="top">
+        <xsl:call-template name="topics">
+            <xsl:with-param name="topic"><xsl:value-of select="./topic"/></xsl:with-param>
+        </xsl:call-template>
+     <!--   </td> -->
+        <!--
+        END Add the topic icon
+        -->
+
+     <!--   <td width="100%" align="left" valign="top"> -->
+
+
+        <a href="{link}">
+        <b>
+        <xsl:value-of select="./title"/>
+        </b>
+        </a>
+
+
+        <!--
+        Add the quote if any...
+        -->
+
+        <xsl:apply-templates select="./quote"/>
+
+
+        <p align="left" clear="left">
+        <xsl:value-of select="./description"/>
+        </p>
+        </td>
+        </tr>
+
+    </xsl:template>
+
+    <xsl:template match="/content/channel/item/quote">
+
+        <p align="left">
+        from:
+        <a href="{./link}" target="_new">
+        <xsl:value-of select="./author"/>
+        </a>
+        </p>
+
+        <xsl:apply-templates select="./p"/>
+
+    </xsl:template>
+
+    <xsl:template match="p">
+      <p>
+          <i>
+              <xsl:value-of select="."/>
+          </i>
+      </p>
+    </xsl:template>
+
+
+    <xsl:template name="topics">
+
+        <xsl:variable name="link"          select="/content/channel/topics/entry[@name=$topic]/image/link"/>
+        <xsl:variable name="url"           select="/content/channel/topics/entry[@name=$topic]/image/url"/>
+        <xsl:variable name="title"         select="/content/channel/topics/entry[@name=$topic]/image/title"/>
+        <a href="{$link}">
+        <img src="{$url}" border="0" alt="{$title}" align="left" />
+        </a>
+    </xsl:template>
+
+
+    <!--
+    Get an index of the most recent topics
+    -->
+    <xsl:template name="newest-topics">
+
+        <tr width="100%">
+        <td colspan="2">
+        <table>
+        <tr width="100%" align="right">
+        <td width="100%"><!-- align --> </td>
+
+        <xsl:call-template name="get-entry-topic">
+            <xsl:with-param name="itemId">0</xsl:with-param>
+        </xsl:call-template>
+
+        <xsl:call-template name="get-entry-topic">
+            <xsl:with-param name="itemId">2</xsl:with-param>
+        </xsl:call-template>
+
+
+        </tr>
+        </table>
+        </td>
+        </tr>
+    </xsl:template>
+
+    <!--
+    Given an id... get the image entry for a specific topic.
+    -->
+    <xsl:template name="get-entry-topic">
+
+        <!-- first get the topic name of the iten you requested -->
+
+        <xsl:variable name="topic" select="/content/channel/item[$itemId]/topic"/>
+
+        <td>
+
+        <xsl:call-template name="topics">
+            <xsl:with-param name="topic"><xsl:value-of select="$topic"/></xsl:with-param>
+        </xsl:call-template>
+
+        </td>
+
+
+    </xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/openjoda/content/xsl/jpc-topics.xsl b/openjoda/content/xsl/jpc-topics.xsl
new file mode 100644
index 0000000..910df7c
--- /dev/null
+++ b/openjoda/content/xsl/jpc-topics.xsl
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+    <xsl:output method="html" indent="yes"/>
+
+    <xsl:template match="/content">
+
+        <center>
+        <table>
+            <xsl:apply-templates select="/content/channel/topics/entry"/>
+        </table>
+        </center>
+
+    </xsl:template>
+
+    <xsl:template match="/content/channel/topics/entry">
+
+        <xsl:variable name="link"          select="./image/link"/>
+        <xsl:variable name="url"           select="./image/url"/>
+        <xsl:variable name="title"         select="./image/title"/>
+
+        <td>
+        <a href="{$link}">
+        <img src="{$url}" border="0" alt="{$title}"></img>
+        </a>
+        </td>
+
+    </xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/openjoda/content/xsl/ocs.xsl b/openjoda/content/xsl/ocs.xsl
new file mode 100644
index 0000000..b7eb0a0
--- /dev/null
+++ b/openjoda/content/xsl/ocs.xsl
@@ -0,0 +1,128 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
+                xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+                xmlns:aocs= "http://alchemy.openjava.org/ocs/ocs-syntax#"
+                xmlns:ocs = "http://alchemy.openjava.org/ocs/directory#"
+                xmlns:dc  = "http://purl.org/dc/elements/1.0/"
+                version   = "1.0">
+
+    <xsl:output indent="yes"/>
+
+    <xsl:template match="/rdf:RDF">
+
+        <registry>
+            <portlets>
+                <xsl:apply-templates select="./rdf:description/rdf:description"/>
+            </portlets>
+        </registry>
+
+    </xsl:template>
+
+    <xsl:template match="/rdf:RDF/rdf:description/rdf:description">
+
+        <!--
+        Only known formats are RSS 0.90 and RSS 0.91
+        -->
+
+        <xsl:variable name="format" select="./rdf:description/aocs:format"/>
+        <xsl:variable name="format2" select="./rdf:description/ocs:format"/>
+
+
+        <xsl:variable name="url" select="./rdf:description/@about"/>
+        <xsl:variable name="tit" select="./dc:title"/>
+        <xsl:variable name="desc" select="./dc:description"/>
+
+
+        <xsl:comment>
+        Format: <xsl:value-of select="$format"/>
+        </xsl:comment>
+
+        <xsl:if test="$format = 'http://my.netscape.com/rdf/simple/0.9/'">
+            <entry type="ref" parent="RSS" name="{$url}">
+                <url><xsl:value-of select="$url"/></url>
+                <parameter name="stylesheet" value="/content/xsl/rss.xsl"/>
+<!-- uncomment to take metainfo from the ocs description
+            <metainfo>
+                <xsl:if test="$tit != ''">
+                  <title><xsl:value-of select="$tit"/></title>
+                </xsl:if>
+                <xsl:if test="$desc != ''">
+                  <description><xsl:value-of select="$desc"/></description>
+                </xsl:if>
+                <xsl:if test="updatePeriod != ''">
+                  <updatePeriod><xsl:value-of select="updatePeriod"/></updatePeriod>
+                </xsl:if>
+            </metainfo>
+-->
+            </entry>
+        </xsl:if>
+
+
+        <xsl:if test="$format = 'http://my.netscape.com/publish/formats/rss-0.91.dtd'">
+            <entry type="ref" parent="RSS" name="{$url}">
+                <url><xsl:value-of select="$url"/></url>
+                <parameter name="stylesheet" value="/content/xsl/rss.xsl"/>
+<!-- uncomment to take metainfo from the ocs description
+            <metainfo>
+                <xsl:if test="$tit != ''">
+                  <title><xsl:value-of select="$tit"/></title>
+                </xsl:if>
+                <xsl:if test="$desc != ''">
+                  <description><xsl:value-of select="$desc"/></description>
+                </xsl:if>
+                <xsl:if test="updatePeriod != ''">
+                  <updatePeriod><xsl:value-of select="updatePeriod"/></updatePeriod>
+                </xsl:if>
+            </metainfo>
+-->
+            </entry>
+        </xsl:if>
+
+
+        <xsl:if test="$format2 = 'http://my.netscape.com/rdf/simple/0.9/'">
+            <entry type="ref" parent="RSS" name="{$url}">
+                <url><xsl:value-of select="$url"/></url>
+                <parameter name="stylesheet" value="/content/xsl/rss.xsl"/>
+<!-- uncomment to take metainfo from the ocs description
+               <metainfo>
+                <xsl:if test="$tit != ''">
+                  <title><xsl:value-of select="$tit"/></title>
+                </xsl:if>
+                <xsl:if test="$desc != ''">
+                  <description><xsl:value-of select="$desc"/></description>
+                </xsl:if>
+                <xsl:if test="updatePeriod != ''">
+                  <updatePeriod><xsl:value-of select="updatePeriod"/></updatePeriod>
+                </xsl:if>
+            </metainfo>
+-->
+            </entry>
+        </xsl:if>
+
+        <xsl:if test="$format2 = 'http://my.netscape.com/publish/formats/rss-0.91.dtd'">
+            <entry type="ref" parent="RSS" name="{$url}">
+                <url><xsl:value-of select="$url"/></url>
+                <parameter name="stylesheet" value="/content/xsl/rss.xsl"/>
+<!-- uncomment to take metainfo from the ocs description
+                <metainfo>
+                <xsl:if test="$tit != ''">
+                  <title><xsl:value-of select="$tit"/></title>
+                </xsl:if>
+                <xsl:if test="$desc != ''">
+                  <description><xsl:value-of select="$desc"/></description>
+                </xsl:if>
+                <xsl:if test="updatePeriod != ''">
+                  <updatePeriod><xsl:value-of select="updatePeriod"/></updatePeriod>
+                </xsl:if>
+            </metainfo>
+-->
+            </entry>
+        </xsl:if>
+
+
+
+    </xsl:template>
+
+
+</xsl:stylesheet>
+
diff --git a/openjoda/content/xsl/rss-wml.xsl b/openjoda/content/xsl/rss-wml.xsl
new file mode 100644
index 0000000..3192f15
--- /dev/null
+++ b/openjoda/content/xsl/rss-wml.xsl
@@ -0,0 +1,116 @@
+<?xml version="1.0"?>
+
+<!--
+Author:  Kevin A Burton (burton@apache.org)
+$Id$
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+                xmlns:downlevel="http://my.netscape.com/rdf/simple/0.9/"
+                exclude-result-prefixes="downlevel rdf"
+                version="1.0">
+
+    <xsl:output indent="yes"
+                method="xml"
+                omit-xml-declaration="yes"/>
+
+        <!--
+        <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
+        -->
+
+<!--
+     Santiago Gala: This parameter controls the max number of
+     items that will be displayed in a channel.
+-->
+    <xsl:param name="itemdisplayed" select="number(5)"/>
+
+
+
+    <!-- BEGIN /document node support for RSS-->
+    <xsl:template match="/rss">
+
+        <card id="init" title="{./title}">
+            <xsl:apply-templates select="channel"/>
+            <xsl:apply-templates select="channel/item[$itemdisplayed>=position()]"/>
+        </card>
+
+    </xsl:template>
+
+
+    <xsl:template match="/rdf:RDF">
+
+        <xsl:apply-templates select="downlevel:channel"/>
+
+    </xsl:template>
+
+    <!-- END /document node support for RSS-->
+
+    <xsl:template match="item[$itemdisplayed>=position()]">
+
+        <xsl:variable name="description"     select="description"/>
+
+        <p><b><a href="{link}">
+            <xsl:value-of select="title"/>
+           </a></b>
+        </p>
+
+        <xsl:if test="$description != ''">
+           <p>
+               <xsl:value-of select="$description"/>
+           </p>
+       </xsl:if>
+
+    </xsl:template>
+
+
+    <xsl:template match="downlevel:item[$itemdisplayed>=position()]">
+
+        <xsl:variable name="description"     select="downlevel:description"/>
+
+        <p><b>
+           <a href="{downlevel:link}"><xsl:value-of select="downlevel:title"/></a></b>
+        </p>
+
+        <xsl:if test="$description != ''">
+            <p>
+                <xsl:value-of select="$description"/>
+            </p>
+        </xsl:if>
+
+    </xsl:template>
+
+
+   <xsl:template match="channel">
+
+        <p>
+            <xsl:value-of select="./title"/>
+        </p>
+
+   </xsl:template>
+
+    <xsl:template match="downlevel:channel">
+
+        <card id="init" title="{./downlevel:title}">
+
+            <p>
+                <xsl:value-of select="./downlevel:title"/>
+            </p>
+
+            <xsl:apply-templates select="../downlevel:item[$itemdisplayed>=position()]"/>
+
+        </card>
+
+    </xsl:template>
+
+
+    <!--
+    FIX ME:
+
+    Add <image> support here through wbmp support.
+    Add <textinput> support
+    -->
+
+</xsl:stylesheet>
+
+
diff --git a/openjoda/content/xsl/rss.xsl b/openjoda/content/xsl/rss.xsl
new file mode 100644
index 0000000..7dffaf0
--- /dev/null
+++ b/openjoda/content/xsl/rss.xsl
@@ -0,0 +1,210 @@
+<?xml version="1.0"?>
+
+<!--
+Author:  Kevin A Burton (burton@apache.org)
+$Id$
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+                xmlns:downlevel="http://my.netscape.com/rdf/simple/0.9/"
+                exclude-result-prefixes="downlevel rdf"
+                version="1.0">
+
+     <xsl:output indent="yes"
+                 method="html"
+                 omit-xml-declaration="yes"/>
+
+<!--
+     Santiago Gala: This parameter controls the max number of
+     items that will be displayed in a channel.
+-->
+    <xsl:param name="itemdisplayed" select="number(15)"/>
+
+
+
+    <!-- BEGIN /document node support for RSS-->
+    <xsl:template match="/rss">
+
+        <div>
+
+            <xsl:apply-templates select="channel" />
+       <ul>
+            <xsl:apply-templates select="channel/item[$itemdisplayed>=position()]" />
+    <!-- BEGIN hacked /rss node support for network54-->
+            <xsl:apply-templates select="/rss/item[$itemdisplayed>=position()]"/>
+    <!-- END hacked /rss node support for network54-->
+       </ul>
+            <xsl:apply-templates select="channel/textinput" />
+            <xsl:apply-templates select="textinput"/>
+        </div>
+
+
+    </xsl:template>
+
+
+    <xsl:template match="/rdf:RDF">
+        <div>
+
+            <xsl:apply-templates select="downlevel:channel"/>
+<ul>
+            <xsl:apply-templates select="downlevel:item[$itemdisplayed>=position()]" />
+</ul>
+            <xsl:apply-templates select="downlevel:textinput"/>
+
+        </div>
+
+    <!-- BEGIN hacked /document node support for Slashdot-->
+            <xsl:apply-templates select="downlevel:rss" mode="hacked"/>
+    <!-- END hacked /document node support for Slashdot-->
+
+
+    </xsl:template>
+
+    <!-- BEGIN hacked /document node support for Slashdot-->
+    <xsl:template match="downlevel:rss" mode="hacked">
+
+        <div>
+
+            <xsl:apply-templates select="./downlevel:channel"/>
+<ul>
+            <xsl:apply-templates select="./downlevel:item[$itemdisplayed>=position()]" />
+</ul>
+            <xsl:apply-templates select="./downlevel:textinput"/>
+
+        </div>
+    </xsl:template>
+
+    <!-- END hacked /document node support for Slashdot-->
+
+
+
+
+    <!-- END /document node support for RSS-->
+
+
+    <xsl:template match="item">
+
+        <xsl:variable name="description"     select="description"/>
+
+        <li>
+                <a href="{link}">
+                    <xsl:value-of select="title"/>
+                </a>
+            <xsl:if test="$description != ''">
+                <br/><xsl:value-of select="$description"/>
+            </xsl:if>
+        </li>
+
+    </xsl:template>
+
+    <xsl:template match="channel">
+
+        <xsl:variable name="description"     select="description"/>
+
+        <xsl:if test="$description != ''">
+            <p>
+
+            <xsl:apply-templates select="image" mode="channel"/>
+            <!-- some channels mix namespaces -->
+            <xsl:apply-templates select="../image" mode="channel"/>
+
+            <xsl:value-of select="$description"/>
+
+            </p>
+        </xsl:if>
+
+    </xsl:template>
+
+
+    <xsl:template match="downlevel:item" >
+        <xsl:variable name="desc2"     select="/item/downlevel:description"/>
+
+        <li>
+                <a href="{downlevel:link}">
+                    <xsl:value-of select="downlevel:title"/>
+                </a>
+            <xsl:if test="$desc2 != ''">
+                <p><xsl:value-of select="$desc2"/></p>
+            </xsl:if>
+        </li>
+
+    </xsl:template>
+
+    <xsl:template match="downlevel:channel">
+
+        <xsl:variable name="descript"     select="downlevel:description"/>
+
+            <xsl:if test="$descript != ''">
+                <p>
+                <xsl:apply-templates select="../downlevel:image" mode="channel"/>
+                <xsl:value-of select="$descript"/>
+                </p>
+            </xsl:if>
+    </xsl:template>
+
+    <!-- BEGIN TEXTINPUT SUPPORT -->
+
+    <xsl:template match="downlevel:textinput">
+
+        <form action="{./downlevel:link}">
+        <xsl:value-of select="./downlevel:description"/>
+        <br>
+        <input type="text" name="{./downlevel:name}" value=""></input>
+        <input type="submit" name="submit" value="{./downlevel:title}"></input>
+        </br>
+        </form>
+
+    </xsl:template>
+
+    <xsl:template match="textinput">
+
+        <form action="{./link}">
+        <xsl:value-of select="./description"/>
+        <br>
+        <input type="text" name="{./name}" value=""></input>
+        <input type="submit" name="submit" value="{./title}"></input>
+        </br>
+        </form>
+
+    </xsl:template>
+
+
+    <!-- END TEXTINPUT SUPPORT -->
+
+    <!-- BEGIN IMAGE SUPPORT -->
+
+    <xsl:template match="image" mode="channel">
+
+        <a href="{./link}" align="right">
+            <img alt="{./title}"
+                 src="{./url}"
+                 width="{./width}"
+                 height="{./height}"
+                 align="right"
+                 border="0"></img>
+        </a>
+
+    </xsl:template>
+
+    <xsl:template match="downlevel:image" mode="channel">
+
+        <a href="{./downlevel:link}" align="right">
+            <img alt="{./downlevel:title}"
+                 src="{./downlevel:url}"
+                 align="right"
+                 border="0"></img>
+        </a>
+    </xsl:template>
+
+    <!-- We ignore images unless we are inside a channel -->
+    <xsl:template match="downlevel:image">
+    </xsl:template>
+
+    <!-- END IMAGE SUPPORT -->
+
+
+</xsl:stylesheet>
+
+
+
diff --git a/openjoda/content/xsl/ws_ftp.log b/openjoda/content/xsl/ws_ftp.log
new file mode 100644
index 0000000..6c45377
--- /dev/null
+++ b/openjoda/content/xsl/ws_ftp.log
@@ -0,0 +1,40 @@
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\billionaires.xsl <-- canal /home/ktn10/project/openjoda/content/xsl billionaires.xsl
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\jpc-full.xsl <-- canal /home/ktn10/project/openjoda/content/xsl jpc-full.xsl
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\jpc-topics.xsl <-- canal /home/ktn10/project/openjoda/content/xsl jpc-topics.xsl
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\ocs.xsl <-- canal /home/ktn10/project/openjoda/content/xsl ocs.xsl
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\rss-wml.xsl <-- canal /home/ktn10/project/openjoda/content/xsl rss-wml.xsl
+2000.12.10 01:40 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\rss.xsl <-- canal /home/ktn10/project/openjoda/content/xsl rss.xsl
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\billionaires.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl billionaires.xsl
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\jpc-full.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl jpc-full.xsl
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\jpc-topics.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl jpc-topics.xsl
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\ocs.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl ocs.xsl
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\rss-wml.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl rss-wml.xsl
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\rss.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl rss.xsl
+2000.12.17 16:53 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl WS_FTP.LOG
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\billionaires.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl billionaires.xsl
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\jpc-full.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl jpc-full.xsl
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\jpc-topics.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl jpc-topics.xsl
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\ocs.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl ocs.xsl
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\rss-wml.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl rss-wml.xsl
+2000.12.17 23:55 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\rss.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl rss.xsl
+2000.12.18 02:57 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\WS_FTP.LOG <-- canal /home/ktn10/project/openjoda/content/xsl WS_FTP.LOG
+2000.12.18 14:13 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\billionaires.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl billionaires.xsl
+2000.12.18 14:13 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\jpc-full.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl jpc-full.xsl
+2000.12.18 14:13 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\jpc-topics.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl jpc-topics.xsl
+2000.12.18 14:13 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\ocs.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl ocs.xsl
+2000.12.18 14:13 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\rss-wml.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl rss-wml.xsl
+2000.12.18 14:13 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\rss.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl rss.xsl
+2000.12.18 14:13 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl WS_FTP.LOG
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\billionaires.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl billionaires.xsl
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\jpc-full.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl jpc-full.xsl
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\jpc-topics.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl jpc-topics.xsl
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\ocs.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl ocs.xsl
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\rss-wml.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl rss-wml.xsl
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\rss.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl rss.xsl
+2000.12.19 17:32 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\WS_FTP.LOG --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl WS_FTP.LOG
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\billionaires.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl billionaires.xsl
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\jpc-full.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl jpc-full.xsl
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\jpc-topics.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl jpc-topics.xsl
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\ocs.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl ocs.xsl
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\rss-wml.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl rss-wml.xsl
+2000.12.19 22:34 B D:\kanan\Project\openjoda\tomcat\webapps\ROOT\content\xsl\rss.xsl --> canal.psl.cs.columbia.edu /home/ktn10/project/openjoda/content/xsl rss.xsl
diff --git a/openjoda/jetspeed-config.jcfg b/openjoda/jetspeed-config.jcfg
new file mode 100644
index 0000000..03402a5
--- /dev/null
+++ b/openjoda/jetspeed-config.jcfg
@@ -0,0 +1,943 @@
+<?xml version="1.0"?>
+<!DOCTYPE jetspeed-config SYSTEM "http://localhost:8080/jetspeed-config.dtd">
+<jetspeed-config xmlns="http://xml.apache.org/jetspeed/2000/jetspeed-config">
+	<portlet-registry>
+		<portlet-entry application="false" admin="false" hidden="false" type="abstract" name="RSS">
+			<classname>org.apache.jetspeed.portal.portlets.RSSPortlet</classname>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<parameter value="/content/xsl/rss.xsl" name="stylesheet"/>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" hidden="false" type="abstract" name="FileServer">
+			<classname>org.apache.jetspeed.portal.portlets.FileServerPortlet</classname>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" hidden="false" type="instance" name="JetspeedContent">
+			<classname>org.apache.jetspeed.portal.portlets.JetspeedContent</classname>
+			<parameter value="jetspeed" name="provider-name"/>
+		</portlet-entry>
+		<portlet-entry application="false" admin="true" hidden="false" type="instance" name="PortletAdministration">
+			<classname>com.xo3.jetspeed.portal.portlets.admin.PortletRegistryAdmin</classname>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" hidden="false" type="abstract" name="Cocoon">
+			<classname>org.apache.jetspeed.portal.portlets.CocoonPortlet</classname>
+		</portlet-entry>
+		<!-- Pre ApacheCon - broken at present
+
+		<portlet-entry application="true" admin="false" parent="Cocoon" hidden="false" type="ref" name="PortletBrowser">
+			<url>/content/dynamic/portletbrowser/xsp/index.xml</url>
+			<parameter value="/content/dynamic/portletbrowser/xsp/index.xsl" name="stylesheet"/>
+			<meta-info>
+				<title>Channel Browser</title>
+				<description>Browse channels available within Jetspeed.</description>
+			</meta-info>
+		</portlet-entry>
+		-->
+
+		<portlet-entry application="true" admin="false" parent="Cocoon" hidden="false" type="ref" name="PortletSearch">
+			<url>/content/dynamic/portletbrowser/xsp/search.xml</url>
+			<parameter value="/content/dynamic/portletbrowser/xsp/search.xsl" name="stylesheet"/>
+			<meta-info>
+				<title>Channel Search</title>
+				<description>Search channels available within Jetspeed.</description>
+			</meta-info>
+		</portlet-entry>
+		<!-- Pre ApacheCon - broken at present
+		<portlet-entry application="true" admin="false" parent="Cocoon" hidden="false" type="ref" name="Customizer">
+			<url>/content/dynamic/customizer/xsp/ui.xml</url>
+			<parameter value="/content/dynamic/customizer/xsl/ui-generic.xsl" name="stylesheet"/>
+			<meta-info>
+				<title>Customize your page layout</title>
+				<description>Customize your own home page.</description>
+			</meta-info>
+		</portlet-entry>
+		-->
+		<!-- LAYOUT PORTLET -->
+		<portlet-entry application="false" admin="false" hidden="false" type="instance" name="Layout">
+			<classname>com.xo3.jetspeed.portal.portlets.LayoutPortlet</classname>
+		</portlet-entry>
+		<portlet-entry application="true" admin="false" parent="Cocoon" hidden="false" type="ref" name="XSPApplication">
+			<url>/content/dynamic/xsp/index.xml</url>
+			<parameter value="/content/dynamic/xsp/index.xsl" name="stylesheet"/>
+			<meta-info>
+				<title>Sample XSP Application</title>
+				<description>Sample XSP Application.</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" hidden="false" type="instance" name="Applications">
+			<classname>org.apache.jetspeed.portal.portlets.ApplicationsPortlet</classname>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" hidden="true" type="instance" name="PortletInfoPortlet">
+			<classname>org.apache.jetspeed.portal.portlets.PortletInfoPortlet</classname>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" hidden="true" type="abstract" name="TEST_ABSTRACT">
+			<classname>test.Test</classname>
+			<url>/test/test.xml</url>
+			<parameter value="/test/test.xsl" name="stylesheet"/>
+			<meta-info>
+				<title>Test title</title>
+				<description>Test description</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="TEST_ABSTRACT" hidden="true" type="ref" name="TEST_REF"/>
+		<portlet-entry application="false" admin="false" hidden="false" type="instance" name="NewsFeedPortlet">
+			<classname>com.xo3.jetspeed.portal.portlets.NewsFeedPortlet</classname>
+			<meta-info>
+				<title>News Feed Browser</title>
+				<description>Allows you to add new feed content to your portal</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" hidden="false" type="instance" name="NewsFeedManager">
+			<classname>com.xo3.jetspeed.portal.portlets.RegistryPortlet</classname>
+			<meta-info>
+				<title>News Feed Manager</title>
+				<description>Allows you to view the list of installed news feeds as well as remove some</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="true" hidden="false" type="instance" name="GlobalAdminPortlet">
+			<classname>org.apache.jetspeed.portal.portlets.admin.GlobalAdminPortlet</classname>
+		</portlet-entry>
+		<portlet-entry application="false" admin="true" hidden="false" type="instance" name="SelectPortlet">
+			<classname>org.apache.jetspeed.portal.portlets.admin.SelectPortlet</classname>
+		</portlet-entry>
+		<portlet-entry application="false" admin="true" hidden="false" type="instance" name="JetspeedPropertiesPortlet">
+			<classname>org.apache.jetspeed.portal.portlets.admin.JetspeedPropertiesPortlet</classname>
+		</portlet-entry>
+		<portlet-entry application="false" admin="true" hidden="false" type="instance" name="TurbinePortlet">
+			<classname>com.ubiquity.jetspeed.portal.portlets.admin.TurbinePortlet</classname>
+		</portlet-entry>
+		<portlet-entry application="false" admin="true" hidden="false" type="instance" name="MemoryStorePortlet">
+			<classname>org.apache.jetspeed.portal.portlets.admin.MemoryStorePortlet</classname>
+		</portlet-entry>
+		<portlet-entry application="false" admin="true" hidden="false" type="instance" name="JavaRuntimePortlet">
+			<classname>org.apache.jetspeed.portal.portlets.admin.JavaRuntimePortlet</classname>
+		</portlet-entry>
+		<portlet-entry application="false" admin="true" hidden="false" type="instance" name="DaemonAdminPortlet">
+			<classname>org.apache.jetspeed.portal.portlets.admin.DaemonAdminPortlet</classname>
+		</portlet-entry>
+		<portlet-entry application="false" admin="true" hidden="false" type="instance" name="JetspeedContentAdmin">
+			<classname>org.apache.jetspeed.portal.portlets.admin.JetspeedContentAdmin</classname>
+		</portlet-entry>
+		<portlet-entry application="false" admin="true" hidden="false" type="instance" name="BadURLManagerPortlet">
+			<classname>org.apache.jetspeed.portal.portlets.admin.BadURLManagerPortlet</classname>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="FileServer" hidden="false" type="ref" name="Search">
+			<url>/content/static/search.html</url>
+			<meta-info>
+				<title>Search</title>
+				<description>Search the Internet</description>
+			</meta-info>
+		</portlet-entry>
+
+		<portlet-entry application="false" admin="false" parent="FileServer" hidden="false" type="ref" name="Gauge">
+			<url>/content/static/gauge.html</url>
+			<meta-info>
+				<title>Gauge</title>
+				<description>Gauge</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="FileServer" hidden="false" type="ref" name="Metaparser">
+			<url>/content/static/metaparser.html</url>
+			<meta-info>
+				<title>Metaparser</title>
+				<description>Metaparser</description>
+			</meta-info>
+		</portlet-entry>
+	      <portlet-entry application="false" admin="false" parent="FileServer" hidden="false" type="ref" name="Oracle">
+			<url>/content/static/oracle.html</url>
+			<meta-info>
+				<title>Oracle</title>
+				<description>Oracle</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="FileServer" hidden="false" type="ref" name="WGCache">
+			<url>/content/static/wgcache.html</url>
+			<meta-info>
+				<title>WGCache</title>
+				<description>WGCache</description>
+			</meta-info>
+		</portlet-entry>
+
+		<portlet-entry application="false" admin="false" parent="FileServer" hidden="false" type="ref" name="Components">
+			<url>/content/static/tree/directory.html</url>
+			<meta-info>
+				<title>Components</title>
+				<description>Components</description>
+			</meta-info>
+		</portlet-entry>
+
+
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="XMLHack">
+			<url>http://www.xmlhack.com/rss.php</url>
+			<meta-info>
+				<title>XMLHack</title>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="XMLHack-WML">
+			<url>http://www.xmlhack.com/rss.php</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<parameter value="/content/xsl/rss-wml.xsl" name="stylesheet"/>
+			<meta-info>
+				<title>XMLHack</title>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Apacheweek">
+			<url>http://www.apacheweek.com/issues/apacheweek-headlines.xml</url>
+			<meta-info>
+				<title>Apacheweek</title>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Apacheweek-WML">
+			<url>http://www.apacheweek.com/issues/apacheweek-headlines.xml</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<parameter value="/content/xsl/rss-wml.xsl" name="stylesheet"/>
+			<meta-info>
+				<title>Apacheweek</title>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Mozilla">
+			<url>http://www.mozilla.org/news.rdf</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Mozilla</title>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Mozilla-WML">
+			<url>http://www.mozilla.org/news.rdf</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<parameter value="/content/xsl/rss-wml.xsl" name="stylesheet"/>
+			<meta-info>
+				<title>Mozilla</title>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Jetspeed">
+			<url>/content/xml/rss/Jetspeed.rss</url>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="FileServer" hidden="true" type="ref" name="login">
+			<url>/content/static/login.html</url>
+			<meta-info>
+				<title>Login</title>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Book reviews">
+			<url>http://p.moreover.com/cgi-local/page?index_bookreviews+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Book reviews</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Natural health">
+			<url>http://p.moreover.com/cgi-local/page?index_naturalhealth+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Natural health</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Jokes">
+			<url>http://p.moreover.com/cgi-local/page?index_jokes+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Jokes</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Fitness">
+			<url>http://p.moreover.com/cgi-local/page?index_fitness+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Fitness</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="AT&amp;T">
+			<url>http://p.moreover.com/cgi-local/page?index_att+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>AT&amp;T</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Honeywell International">
+			<url>http://p.moreover.com/cgi-local/page?index_honeywell+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Honeywell International</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Banking">
+			<url>http://p.moreover.com/cgi-local/page?index_banking+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Banking</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Fund management">
+			<url>http://p.moreover.com/cgi-local/page?index_fundmanagement+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Fund management</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Business features">
+			<url>http://p.moreover.com/cgi-local/page?index_businessfeatures+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Business features</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Marketing">
+			<url>http://p.moreover.com/cgi-local/page?index_marketing+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Marketing</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Agriculture">
+			<url>http://p.moreover.com/cgi-local/page?index_agriculture+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Agriculture</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Consumer non-durables ">
+			<url>http://p.moreover.com/cgi-local/page?index_consumernondurables+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Consumer non-durables</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Hospitality">
+			<url>http://p.moreover.com/cgi-local/page?index_hospitalityindustry+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Hospitality</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Cyberculture">
+			<url>http://p.moreover.com/cgi-local/page?index_cyberculture+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Cyberculture</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Domain name">
+			<url>http://p.moreover.com/cgi-local/page?index_domainname+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Domain name</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Dot com doom">
+			<url>http://p.moreover.com/cgi-local/page?index_dotcomdoom+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Dot com doom</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="E-commerce">
+			<url>http://p.moreover.com/cgi-local/page?index_e-commerce+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>E-commerce</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Internet Europe">
+			<url>http://p.moreover.com/cgi-local/page?index_interneteurope+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Internet Europe</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Internet Germany">
+			<url>http://p.moreover.com/cgi-local/page?index_internetgermany+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Internet Germany</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Internet Latin America">
+			<url>http://p.moreover.com/cgi-local/page?index_internetlatinamerica+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Internet Latin America</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Internet consultancies">
+			<url>http://p.moreover.com/cgi-local/page?index_internetconsult+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Internet consultancies</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Internet features">
+			<url>http://p.moreover.com/cgi-local/page?index_internetfeatures+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Internet features</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Internet global">
+			<url>http://p.moreover.com/cgi-local/page?index_internetinternational+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Internet global</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Online access">
+			<url>http://p.moreover.com/cgi-local/page?index_onlineaccess+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Online access</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Online auctions">
+			<url>http://p.moreover.com/cgi-local/page?index_onlineauction+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Online auctions</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Online content">
+			<url>http://p.moreover.com/cgi-local/page?index_onlinecontent+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Online content</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Online information">
+			<url>http://p.moreover.com/cgi-local/page?index_onlineinformation+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Online information</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Online legal issues">
+			<url>http://p.moreover.com/cgi-local/page?index_onlinelegalissues+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Online legal issues</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Online marketing">
+			<url>http://p.moreover.com/cgi-local/page?index_onlinemarketing+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Online marketing</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Online portals">
+			<url>http://p.moreover.com/cgi-local/page?index_onlineportals+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Online portals</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Online search engines">
+			<url>http://p.moreover.com/cgi-local/page?index_searchengines+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Online search engines</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Top internet">
+			<url>http://p.moreover.com/cgi-local/page?index_topinternet+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Top internet</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Vertical portals">
+			<url>http://p.moreover.com/cgi-local/page?index_verticalportals+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Vertical portals</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Web developer">
+			<url>http://p.moreover.com/cgi-local/page?index_webdeveloper+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Web developer</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Webmaster tips">
+			<url>http://p.moreover.com/cgi-local/page?index_webmastertips+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Webmaster tips</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Website owner">
+			<url>http://p.moreover.com/cgi-local/page?index_websiteowner+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Website owner</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Europe">
+			<url>http://p.moreover.com/cgi-local/page?index_europe+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Europe</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="UK">
+			<url>http://p.moreover.com/cgi-local/page?index_uknews+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>UK</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Olympic games">
+			<url>http://p.moreover.com/cgi-local/page?index_olympicgames+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Olympic games</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Olympic sports">
+			<url>http://p.moreover.com/cgi-local/page?index_olympics+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Olympic sports</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Communications equipment">
+			<url>http://p.moreover.com/cgi-local/page?index_commsequipment+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Communications equipment</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Computer games">
+			<url>http://p.moreover.com/cgi-local/page?index_computergames+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Computer games</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Computer security">
+			<url>http://p.moreover.com/cgi-local/page?index_computersecurity+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Computer security</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Computer services">
+			<url>http://p.moreover.com/cgi-local/page?index_computerservices+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Computer services</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Developer">
+			<url>http://p.moreover.com/cgi-local/page?index_developer+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Developer</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Digital television">
+			<url>http://p.moreover.com/cgi-local/page?index_digitaltelevision+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Digital television</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Enterprise computing">
+			<url>http://p.moreover.com/cgi-local/page?index_enterprisecomputing+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Enterprise computing</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Database">
+			<url>http://p.moreover.com/cgi-local/page?index_databaseindustry+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Database</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Graphics">
+			<url>http://p.moreover.com/cgi-local/page?index_graphics+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Graphics</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Handhelds">
+			<url>http://p.moreover.com/cgi-local/page?index_handhelds+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Handhelds</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Imaging equipment">
+			<url>http://p.moreover.com/cgi-local/page?index_imagingequipment+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Imaging equipment</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Java">
+			<url>http://p.moreover.com/cgi-local/page?index_java+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Java</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Linux">
+			<url>http://p.moreover.com/cgi-local/page?index_linux+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Linux</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Motorola">
+			<url>http://p.moreover.com/cgi-local/page?index_motorola+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Motorola</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="OS">
+			<url>http://p.moreover.com/cgi-local/page?index_os+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>OS</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Opensource">
+			<url>http://p.moreover.com/cgi-local/page?index_opensource+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Opensource</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="PC software">
+			<url>http://p.moreover.com/cgi-local/page?index_pcsoftware+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>PC software</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Semiconductor">
+			<url>http://p.moreover.com/cgi-local/page?index_semiconductorindustry+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Semiconductor</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Robotics">
+			<url>http://p.moreover.com/cgi-local/page?index_robotics+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Robotics</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Tech latest">
+			<url>http://p.moreover.com/cgi-local/page?index_techlatest+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Tech latest</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Tech features">
+			<url>http://p.moreover.com/cgi-local/page?index_techfeatures+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Tech features</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Tech policy">
+			<url>http://p.moreover.com/cgi-local/page?index_techpolicy+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Tech policy</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Virus warning">
+			<url>http://p.moreover.com/cgi-local/page?index_viruswarning+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Virus warning</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Windows 2000">
+			<url>http://p.moreover.com/cgi-local/page?index_windows+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Windows 2000</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Wireless sector">
+			<url>http://p.moreover.com/cgi-local/page?index_wireless+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Wireless sector</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Atlanta">
+			<url>http://p.moreover.com/cgi-local/page?index_atlanta+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Atlanta</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="LA">
+			<url>http://p.moreover.com/cgi-local/page?index_la+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>LA</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="New York">
+			<url>http://p.moreover.com/cgi-local/page?index_newyork+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>New York</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Silicon Valley">
+			<url>http://p.moreover.com/cgi-local/page?index_siliconvalley+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Silicon Valley</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="xx">
+			<url>http://headlines.isyndicate.com/pages/xo3/2.html</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>xx</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="PC industry">
+			<url>http://p.moreover.com/cgi-local/page?index_pcindustry+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>PC industry</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Tech events">
+			<url>http://p.moreover.com/cgi-local/page?index_techevents+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Tech events</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Telecom">
+			<url>http://p.moreover.com/cgi-local/page?index_telecom+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Telecom</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="Top technology">
+			<url>http://p.moreover.com/cgi-local/page?index_toptechnology+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>Top technology</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="WAP">
+			<url>http://p.moreover.com/cgi-local/page?index_wap+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>WAP</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry application="false" admin="false" parent="RSS" hidden="false" type="ref" name="XML and metadata">
+			<url>http://p.moreover.com/cgi-local/page?index_xml+rss</url>
+			<parameter value="10" type="int" name="itemDisplayed"/>
+			<meta-info>
+				<title>XML and metadata</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry type="instance" name="OandaCurrency">
+			<classname>com.xo3.jetspeed.portal.portlets.OandaCurrencyPortlet</classname>
+			<parameter value="USD:EUR EUR:USD USD:GBP USD:JPY USD:CHF" name="currencies"/>
+			<meta-info>
+				<title>Oanda Currency Table</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+		<portlet-entry type="instance" name="YahooDayChart">
+			<classname>com.xo3.jetspeed.portal.portlets.YahooChartPortlet</classname>
+			<parameter value="IXIC" name="marketcode"/>
+			<meta-info>
+				<title>Yahoo Day Chart</title>
+				<description>unknown</description>
+			</meta-info>
+		</portlet-entry>
+
+		<portlet-entry type="instance" name="BillionairesPortlet">
+			<classname>com.xo3.jetspeed.portal.portlets.BillionairesPortlet</classname>
+			<parameter name="stylesheet" value="/content/xsl/billionaires.xsl"/>
+		</portlet-entry>
+	</portlet-registry>
+	<portlet-control-registry>
+		<portlet-control-entry name="BorderPortletControl">
+			<classname>org.apache.jetspeed.portal.controls.BorderPortletControl</classname>
+			<meta-info>
+				<title>BorderPortletControl</title>
+			</meta-info>
+			<media-type ref="html"/>
+		</portlet-control-entry>
+		<portlet-control-entry name="ClearPortletControl">
+			<classname>org.apache.jetspeed.portal.controls.ClearPortletControl</classname>
+			<meta-info>
+				<title>ClearPortletControl</title>
+			</meta-info>
+			<media-type ref="html"/>
+		</portlet-control-entry>
+		<portlet-control-entry name="TitlePortletControl">
+			<classname>org.apache.jetspeed.portal.controls.TitlePortletControl</classname>
+			<meta-info>
+				<title>TitlePortletControl</title>
+			</meta-info>
+			<media-type ref="html"/>
+		</portlet-control-entry>
+		<portlet-control-entry name="PanedPortletControl">
+			<classname>org.apache.jetspeed.portal.controls.PanedPortletControl</classname>
+			<meta-info>
+				<title>PanedPortletControl</title>
+			</meta-info>
+			<media-type ref="html"/>
+		</portlet-control-entry>
+	</portlet-control-registry>
+	<portlet-controller-registry>
+		<portlet-controller-entry name="CardPortletController">
+			<classname>org.apache.jetspeed.portal.controllers.CardPortletController</classname>
+			<media-type ref="html"/>
+		</portlet-controller-entry>
+		<portlet-controller-entry name="DefaultPortletController">
+			<classname>org.apache.jetspeed.portal.controllers.DefaultPortletController</classname>
+			<media-type ref="html"/>
+		</portlet-controller-entry>
+		<portlet-controller-entry name="FlowPortletController">
+			<classname>org.apache.jetspeed.portal.controllers.FlowPortletController</classname>
+			<media-type ref="html"/>
+		</portlet-controller-entry>
+		<portlet-controller-entry name="GridPortletController">
+			<classname>org.apache.jetspeed.portal.controllers.GridPortletController</classname>
+			<media-type ref="html"/>
+		</portlet-controller-entry>
+		<portlet-controller-entry name="RowColumnPortletController">
+			<classname>org.apache.jetspeed.portal.controllers.RowColumnPortletController</classname>
+			<media-type ref="html"/>
+		</portlet-controller-entry>
+		<portlet-controller-entry name="WAPPortletController">
+			<classname>org.apache.jetspeed.portal.controllers.WAPPortletController</classname>
+			<media-type ref="wml"/>
+		</portlet-controller-entry>
+	</portlet-controller-registry>
+	<media-type-registry>
+		<media-type-entry name="html">
+			<capability-map ref="html"/>
+			<meta-info>
+				<title>HTML</title>
+			</meta-info>
+		</media-type-entry>
+		<media-type-entry name="wml">
+			<capability-map ref="wml"/>
+			<meta-info>
+				<title>WML</title>
+			</meta-info>
+		</media-type-entry>
+	</media-type-registry>
+	<profile-registry>
+		<profile-entry default="true" name="html-default">
+			<url>/content/profiles/default/html/default.psml</url>
+			<media-type/>
+			<meta-info>
+				<title>Default HTML profile</title>
+			</meta-info>
+		</profile-entry>
+	</profile-registry>
+	<capability-map-registry>
+		<capability-map-entry name="html">
+			<mime-type>text/html</mime-type>
+			<meta-info>
+				<title>HTML</title>
+			</meta-info>
+		</capability-map-entry>
+		<capability-map-entry name="wml">
+			<mime-type>text/vnd.wap.wml</mime-type>
+			<meta-info>
+				<title>WML</title>
+			</meta-info>
+		</capability-map-entry>
+	</capability-map-registry>
+</jetspeed-config>