You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by jf...@apache.org on 2008/12/12 19:20:18 UTC

svn commit: r726079 [31/32] - in /incubator/vcl/tags/import: ./ managementnode/ managementnode/bin/ managementnode/etc/ managementnode/etc/vcl/ managementnode/legacy_vcl_vbs_scripts/ managementnode/lib/ managementnode/lib/VCL/ managementnode/lib/VCL/Mo...

Added: incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/globals_func.html
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/globals_func.html?rev=726079&view=auto
==============================================================================
--- incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/globals_func.html (added)
+++ incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/globals_func.html Fri Dec 12 10:20:10 2008
@@ -0,0 +1,52 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>VCL XML RPC: Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.3 -->
+<div class="tabs">
+  <ul>
+    <li><a href="globals.html"><span>All</span></a></li>
+    <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+  </ul>
+</div>
+&nbsp;
+<p>
+<ul>
+<li>XMLRPCaddRequest()
+: <a class="el" href="xmlrpcWrappers_8php.html#e6f9d40f20e08994fa3d82c8dd12bdf5">xmlrpcWrappers.php</a>
+<li>XMLRPCendRequest()
+: <a class="el" href="xmlrpcWrappers_8php.html#dfdaad6201dbcaaf5c2249a2c38437cc">xmlrpcWrappers.php</a>
+<li>XMLRPCgetImages()
+: <a class="el" href="xmlrpcWrappers_8php.html#e2c01a27349e7a7788a42cfb5fe0d5ab">xmlrpcWrappers.php</a>
+<li>XMLRPCgetRequestConnectData()
+: <a class="el" href="xmlrpcWrappers_8php.html#f8b8c718ea7ea9cc973602a2fe9ae20e">xmlrpcWrappers.php</a>
+<li>XMLRPCgetRequestIds()
+: <a class="el" href="xmlrpcWrappers_8php.html#815cd48d7d8c85754b2091313c02ccec">xmlrpcWrappers.php</a>
+<li>XMLRPCgetRequestStatus()
+: <a class="el" href="xmlrpcWrappers_8php.html#131560f1aa7577bd1da62d5b7e228e4c">xmlrpcWrappers.php</a>
+<li>XMLRPCtest()
+: <a class="el" href="xmlrpcWrappers_8php.html#c3e09831835663a8bd79aab3f0ea3e69">xmlrpcWrappers.php</a>
+</ul>
+<hr size="1"><address style="text-align: right;"><small>Generated on Wed Dec 19 11:28:46 2007 for VCL XML RPC by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
+</body>
+</html>

Added: incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/index.html
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/index.html?rev=726079&view=auto
==============================================================================
--- incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/index.html (added)
+++ incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/index.html Fri Dec 12 10:20:10 2008
@@ -0,0 +1,36 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>VCL XML RPC: Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.3 -->
+<h1>VCL XML RPC Documentation</h1>
+<p>
+<ul>    <li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="files.html"><span>Files</span></a></li>
+<ul>    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+</ul>
+    <li><a href="examples.html"><span>Examples</span></a></li>
+</ul>
+<hr size="1"><address style="text-align: right;"><small>Generated on Wed Dec 19 11:28:46 2007 for VCL XML RPC by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
+</body>
+</html>

Added: incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/tab_b.gif
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/tab_b.gif?rev=726079&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/tab_b.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/tab_l.gif
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/tab_l.gif?rev=726079&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/tab_l.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/tab_r.gif
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/tab_r.gif?rev=726079&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/tab_r.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/tabs.css
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/tabs.css?rev=726079&view=auto
==============================================================================
--- incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/tabs.css (added)
+++ incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/tabs.css Fri Dec 12 10:20:10 2008
@@ -0,0 +1,118 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
+
+DIV.tabs
+{
+   float            : left;
+   width            : 100%;
+   background       : url("tab_b.gif") repeat-x bottom;
+   margin-bottom    : 4px;
+}
+
+DIV.tabs UL
+{
+   margin           : 0px;
+   padding-left     : 10px;
+   list-style       : none;
+}
+
+DIV.tabs LI, DIV.tabs FORM
+{
+   display          : inline;
+   margin           : 0px;
+   padding          : 0px;
+}
+
+DIV.tabs FORM
+{
+   float            : right;
+}
+
+DIV.tabs A
+{
+   float            : left;
+   background       : url("tab_r.gif") no-repeat right top;
+   border-bottom    : 1px solid #84B0C7;
+   font-size        : x-small;
+   font-weight      : bold;
+   text-decoration  : none;
+}
+
+DIV.tabs A:hover
+{
+   background-position: 100% -150px;
+}
+
+DIV.tabs A:link, DIV.tabs A:visited,
+DIV.tabs A:active, DIV.tabs A:hover
+{
+       color: #1A419D;
+}
+
+DIV.tabs SPAN
+{
+   float            : left;
+   display          : block;
+   background       : url("tab_l.gif") no-repeat left top;
+   padding          : 5px 9px;
+   white-space      : nowrap;
+}
+
+DIV.tabs INPUT
+{
+   float            : right;
+   display          : inline;
+   font-size        : 1em;
+}
+
+DIV.tabs TD
+{
+   font-size        : x-small;
+   font-weight      : bold;
+   text-decoration  : none;
+}
+
+
+
+/* Commented Backslash Hack hides rule from IE5-Mac \*/
+DIV.tabs SPAN {float : none;}
+/* End IE5-Mac hack */
+
+DIV.tabs A:hover SPAN
+{
+   background-position: 0% -150px;
+}
+
+DIV.tabs LI.current A
+{
+   background-position: 100% -150px;
+   border-width     : 0px;
+}
+
+DIV.tabs LI.current SPAN
+{
+   background-position: 0% -150px;
+   padding-bottom   : 6px;
+}
+
+DIV.nav
+{
+   background       : none;
+   border           : none;
+   border-bottom    : 1px solid #84B0C7;
+}

Added: incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/xmlrpcWrappers_8php.html
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/xmlrpcWrappers_8php.html?rev=726079&view=auto
==============================================================================
--- incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/xmlrpcWrappers_8php.html (added)
+++ incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/xmlrpcWrappers_8php.html Fri Dec 12 10:20:10 2008
@@ -0,0 +1,383 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>VCL XML RPC: /afs/eos.ncsu.edu/engrwww/vcl.ncsu/scheduling/.ht-inc/xmlrpcWrappers.php File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.3 -->
+<h1>/afs/eos.ncsu.edu/engrwww/vcl.ncsu/scheduling/.ht-inc/xmlrpcWrappers.php File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xmlrpcWrappers_8php.html#e2c01a27349e7a7788a42cfb5fe0d5ab">XMLRPCgetImages</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">gets the images to which the user has acces  <a href="#e2c01a27349e7a7788a42cfb5fe0d5ab"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xmlrpcWrappers_8php.html#e6f9d40f20e08994fa3d82c8dd12bdf5">XMLRPCaddRequest</a> ($imageid, $start, $length, $foruser='')</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">tries to make a request  <a href="#e6f9d40f20e08994fa3d82c8dd12bdf5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xmlrpcWrappers_8php.html#131560f1aa7577bd1da62d5b7e228e4c">XMLRPCgetRequestStatus</a> ($requestid)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">determines and returns the status of the request  <a href="#131560f1aa7577bd1da62d5b7e228e4c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xmlrpcWrappers_8php.html#f8b8c718ea7ea9cc973602a2fe9ae20e">XMLRPCgetRequestConnectData</a> ($requestid, $remoteIP)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">if request is ready, adds the connecting user's computer to the request and returns info about how to connect to the computer  <a href="#f8b8c718ea7ea9cc973602a2fe9ae20e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xmlrpcWrappers_8php.html#dfdaad6201dbcaaf5c2249a2c38437cc">XMLRPCendRequest</a> ($requestid)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ends/deletes a request  <a href="#dfdaad6201dbcaaf5c2249a2c38437cc"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xmlrpcWrappers_8php.html#815cd48d7d8c85754b2091313c02ccec">XMLRPCgetRequestIds</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">gets information about all of user's requests  <a href="#815cd48d7d8c85754b2091313c02ccec"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xmlrpcWrappers_8php.html#c3e09831835663a8bd79aab3f0ea3e69">XMLRPCtest</a> ($string)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this is a test function that call be called when getting XML RPC calls to this site to work  <a href="#c3e09831835663a8bd79aab3f0ea3e69"></a><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+The functions listed here are for making VCL requests from other applications. They are implemented according to the XML RPC spec defined at <a href="http://www.xmlrpc.com/">http://www.xmlrpc.com/</a> <br>
+ There is one function called <b><a class="el" href="xmlrpcWrappers_8php.html#c3e09831835663a8bd79aab3f0ea3e69" title="this is a test function that call be called when getting XML RPC calls to this site...">XMLRPCtest()</a></b> that can be used during initial development to get started without actually making a request.<br>
+ <br>
+ The URL you will use to submit RPC calls is<br>
+<br>
+ <a href="https://vcl.ncsu.edu/scheduling/index.php?mode=xmlrpccall">https://vcl.ncsu.edu/scheduling/index.php?mode=xmlrpccall</a><br>
+<br>
+ Your application must connect using HTTPS.<br>
+<br>
+ Internal to the VCL code, "Reservations" are called "Requests"; therefore, "request" is used instead of "reservation" in this documentation and in the RPC functions. <br>
+ <h2>API Version 2</h2>
+<p>
+This is the current version of the API. It should be used for any new code development. Any older code needs to be migrated to this version.<br>
+<br>
+ Authentication is handled by 2 additional HTTP headers you will need to send:<br>
+ <b>X-User</b> - the userid you would use to log in to the VCL site, followed by the at sign (@), followed by your affiliation<br>
+ example: myuserid@NCSU - currently, you need to contact <a href="mailto:vcl_help@ncsu.edu">vcl_help@ncsu.edu</a> to find out your affiliation, but in the future there will be an API method of obtaining this<br>
+ <b>X-Pass</b> - the password you would use to log in to the VCL site<br>
+ <br>
+ There is one other additional HTTP header you must send:<br>
+ <b>X-APIVERSION</b> - set this to 2<br>
+<br>
+<p>
+<h2>API Version 1</h2>
+<p>
+This version is being phased out in favor of version 2. Documentation is provided for those currently using version 1 who are not ready to switch to using version 2.<br>
+<br>
+ To connect to VCL with XML RPC, you will need to obtain a key. Contact <a href="mailto:vcl_help@ncsu.edu">vcl_help@ncsu.edu</a> to get one.<br>
+<p>
+Authentication is handled by 2 additional HTTP headers you will need to send:<br>
+ <b>X-User</b> - use the same id you would use to log in to the VCL site<br>
+ <b>X-Pass</b> - the key mentioned above<br>
+ <br>
+ There is one other additional HTTP header you must send:<br>
+ <b>X-APIVERSION</b> - set this to 1<br>
+ <hr><h2>Function Documentation</h2>
+<a class="anchor" name="e6f9d40f20e08994fa3d82c8dd12bdf5"></a><!-- doxytag: member="xmlrpcWrappers.php::XMLRPCaddRequest" ref="e6f9d40f20e08994fa3d82c8dd12bdf5" args="($imageid, $start, $length, $foruser='')" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">function XMLRPCaddRequest           </td>
+          <td>(</td>
+          <td class="paramtype">$&nbsp;</td>
+          <td class="paramname"> <em>imageid</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">$&nbsp;</td>
+          <td class="paramname"> <em>start</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">$&nbsp;</td>
+          <td class="paramname"> <em>length</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">$&nbsp;</td>
+          <td class="paramname"> <em>foruser</em> = <code>''</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+tries to make a request 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>$imageid</em>&nbsp;</td><td>- id of an image </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>$start</em>&nbsp;</td><td>- "now" or unix timestamp for start of reservation; will use a floor function to round down to the nearest 15 minute increment for actual reservation </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>$length</em>&nbsp;</td><td>- length of reservation in minutes (must be in 15 minute increments) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>$foruser</em>&nbsp;</td><td>- (optional) login to be used when setting up the account on the reserved machine - CURRENTLY, THIS IS UNSUPPORTED</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>an array with at least one index named '<b>status'</b> which will have one of these values:<br>
+ <b>error</b> - error occurred; there will be 2 additional elements in the array: <ul>
+<li><b>errorcode</b> - error number<br>
+ </li>
+<li><b>errormsg</b> - error string<br>
+</li>
+</ul>
+<b>notavailable</b> - no computers were available for the request<br>
+ <b>success</b> - there will be an additional element in the array: <ul>
+<li><b>requestid</b> - identifier that should be passed to later calls when acting on the request </li>
+</ul>
+</dd></dl>
+<dl compact><dt><b>Examples: </b></dt><dd>
+<a class="el" href="xmlrpc__example_8php-example.html#a2">xmlrpc_example.php</a>.</dl>
+</div>
+</div><p>
+<a class="anchor" name="dfdaad6201dbcaaf5c2249a2c38437cc"></a><!-- doxytag: member="xmlrpcWrappers.php::XMLRPCendRequest" ref="dfdaad6201dbcaaf5c2249a2c38437cc" args="($requestid)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">function XMLRPCendRequest           </td>
+          <td>(</td>
+          <td class="paramtype">$&nbsp;</td>
+          <td class="paramname"> <em>requestid</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+ends/deletes a request 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>$requestid</em>&nbsp;</td><td>- id of a request</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>an array with at least one index named 'status' which will have one of these values<br>
+ <b>error</b> - error occurred; there will be 2 additional elements in the array: <ul>
+<li><b>errorcode</b> - error number<br>
+ </li>
+<li><b>errormsg</b> - error string<br>
+</li>
+</ul>
+<b>success</b> - request was successfully ended<br>
+ </dd></dl>
+<dl compact><dt><b>Examples: </b></dt><dd>
+<a class="el" href="xmlrpc__example_8php-example.html#a5">xmlrpc_example.php</a>.</dl>
+</div>
+</div><p>
+<a class="anchor" name="e2c01a27349e7a7788a42cfb5fe0d5ab"></a><!-- doxytag: member="xmlrpcWrappers.php::XMLRPCgetImages" ref="e2c01a27349e7a7788a42cfb5fe0d5ab" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">function XMLRPCgetImages           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+gets the images to which the user has acces 
+<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>an array of image arrays, each with 2 indices:<br>
+ <b>id</b> - id of the image<br>
+ <b>name</b> - name of the image </dd></dl>
+<dl compact><dt><b>Examples: </b></dt><dd>
+<a class="el" href="xmlrpc__example_8php-example.html#a1">xmlrpc_example.php</a>.</dl>
+</div>
+</div><p>
+<a class="anchor" name="f8b8c718ea7ea9cc973602a2fe9ae20e"></a><!-- doxytag: member="xmlrpcWrappers.php::XMLRPCgetRequestConnectData" ref="f8b8c718ea7ea9cc973602a2fe9ae20e" args="($requestid, $remoteIP)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">function XMLRPCgetRequestConnectData           </td>
+          <td>(</td>
+          <td class="paramtype">$&nbsp;</td>
+          <td class="paramname"> <em>requestid</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">$&nbsp;</td>
+          <td class="paramname"> <em>remoteIP</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+if request is ready, adds the connecting user's computer to the request and returns info about how to connect to the computer 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>$requestid</em>&nbsp;</td><td>- id of a request </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>$remoteIP</em>&nbsp;</td><td>- ip address of connecting user's computer</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>an array with at least one index named '<b>status'</b> which will have one of these values<br>
+ <b>error</b> - error occurred; there will be 2 additional elements in the array: <ul>
+<li><b>errorcode</b> - error number<br>
+ </li>
+<li><b>errormsg</b> - error string<br>
+</li>
+</ul>
+<b>ready</b> - request is ready; there will be 3 additional elements in the array: <ul>
+<li><b>serverIP</b> - address of the reserved machine </li>
+<li><b>user</b> - user to use when connecting to the machine </li>
+<li><b>password</b> - password to use when connecting to the machine</li>
+</ul>
+<b>notready</b> - request is not ready for connection </dd></dl>
+<dl compact><dt><b>Examples: </b></dt><dd>
+<a class="el" href="xmlrpc__example_8php-example.html#a4">xmlrpc_example.php</a>.</dl>
+</div>
+</div><p>
+<a class="anchor" name="815cd48d7d8c85754b2091313c02ccec"></a><!-- doxytag: member="xmlrpcWrappers.php::XMLRPCgetRequestIds" ref="815cd48d7d8c85754b2091313c02ccec" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">function XMLRPCgetRequestIds           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+gets information about all of user's requests 
+<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>an array with at least one index named 'status' which will have one of these values<br>
+ <b>error</b> - error occurred; there will be 2 additional elements in the array: <ul>
+<li><b>errorcode</b> - error number<br>
+ </li>
+<li><b>errormsg</b> - error string<br>
+</li>
+</ul>
+<b>success</b> - request was successfully ended; there will be an additional element whose index is 'requests' which is an array of arrays, each having these elements (or empty if no existing requests):<br>
+ <ul>
+<li><b>requestid</b> - id of the request<br>
+ </li>
+<li><b>imageid</b> - id of the image<br>
+ </li>
+<li><b>imagename</b> - name of the image<br>
+ </li>
+<li><b>start</b> - unix timestamp of start time<br>
+ </li>
+<li><b>end</b> - unix timestamp of end time </li>
+</ul>
+</dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="131560f1aa7577bd1da62d5b7e228e4c"></a><!-- doxytag: member="xmlrpcWrappers.php::XMLRPCgetRequestStatus" ref="131560f1aa7577bd1da62d5b7e228e4c" args="($requestid)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">function XMLRPCgetRequestStatus           </td>
+          <td>(</td>
+          <td class="paramtype">$&nbsp;</td>
+          <td class="paramname"> <em>requestid</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+determines and returns the status of the request 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>$requestid</em>&nbsp;</td><td>- id of a request</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>an array with at least one index named '<b>status'</b> which will have one of these values:<br>
+ <b>error</b> - error occurred; there will be 2 additional elements in the array: <ul>
+<li><b>errorcode</b> - error number<br>
+ </li>
+<li><b>errormsg</b> - error string<br>
+</li>
+</ul>
+<b>ready</b> - request is ready<br>
+ <b>failed</b> - request failed to load properly<br>
+ <b>timedout</b> - request timed out (user didn't connect before timeout expired)<br>
+ <b>loading</b> - request is still loading; there will be an additional element in the array: <ul>
+<li><b>time</b> - the estimated wait time (in minutes) for loading to complete<br>
+</li>
+</ul>
+<b>future</b> - start time of request is in the future </dd></dl>
+<dl compact><dt><b>Examples: </b></dt><dd>
+<a class="el" href="xmlrpc__example_8php-example.html#a3">xmlrpc_example.php</a>.</dl>
+</div>
+</div><p>
+<a class="anchor" name="c3e09831835663a8bd79aab3f0ea3e69"></a><!-- doxytag: member="xmlrpcWrappers.php::XMLRPCtest" ref="c3e09831835663a8bd79aab3f0ea3e69" args="($string)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">function XMLRPCtest           </td>
+          <td>(</td>
+          <td class="paramtype">$&nbsp;</td>
+          <td class="paramname"> <em>string</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+this is a test function that call be called when getting XML RPC calls to this site to work 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>$string</em>&nbsp;</td><td>- a string</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>an array with 3 indices:<br>
+ <b>status</b> - will be 'success'<br>
+ <b>message</b> - will be 'RPC call worked successfully'<br>
+ <b>string</b> - contents of $string (after being sanatized) </dd></dl>
+<dl compact><dt><b>Examples: </b></dt><dd>
+<a class="el" href="xmlrpc__example_8php-example.html#a0">xmlrpc_example.php</a>.</dl>
+</div>
+</div><p>
+<hr size="1"><address style="text-align: right;"><small>Generated on Wed Dec 19 11:28:46 2007 for VCL XML RPC by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
+</body>
+</html>

Added: incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/xmlrpc__example_8php-example.html
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/xmlrpc__example_8php-example.html?rev=726079&view=auto
==============================================================================
--- incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/xmlrpc__example_8php-example.html (added)
+++ incubator/vcl/tags/import/web/.ht-inc/xmlrpcdocs/xmlrpc__example_8php-example.html Fri Dec 12 10:20:10 2008
@@ -0,0 +1,123 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>VCL XML RPC: xmlrpc_example.php</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.3 -->
+<h1>xmlrpc_example.php</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 &lt;?php
+<a name="l00002"></a>00002 session_start();
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 $url = <span class="stringliteral">"http://{$_SERVER['HTTP_HOST']}{$_SERVER['PHP_SELF']}"</span>;
+<a name="l00005"></a>00005 print <span class="stringliteral">"&lt;a href=\"$url?state=test\"&gt;Test&lt;/a&gt;&lt;br&gt;\n"</span>;
+<a name="l00006"></a>00006 print <span class="stringliteral">"&lt;a href=\"$url?state=listimages\"&gt;List Available Images&lt;/a&gt;&lt;br&gt;\n"</span>;
+<a name="l00007"></a>00007 print <span class="stringliteral">"&lt;a href=\"$url?state=addrequest\"&gt;Add request for Maple 10&lt;/a&gt;&lt;br&gt;\n"</span>;
+<a name="l00008"></a>00008 print <span class="stringliteral">"&lt;a href=\"$url?state=requeststatus\"&gt;Get status of request&lt;/a&gt;&lt;br&gt;\n"</span>;
+<a name="l00009"></a>00009 print <span class="stringliteral">"&lt;a href=\"$url?state=connectdata\"&gt;Get connection data&lt;/a&gt;&lt;br&gt;\n"</span>;
+<a name="l00010"></a>00010 print <span class="stringliteral">"&lt;a href=\"$url?state=endrequest\"&gt;End request&lt;/a&gt;&lt;br&gt;\n"</span>;
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 print <span class="stringliteral">"&lt;pre&gt;\n"</span>;
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 <span class="comment">// test</span>
+<a name="l00015"></a>00015 <span class="keywordflow">if</span>($_GET['state'] == 'test') {
+<a name="l00016"></a>00016         $rc = remoteVCLCall('<a name="a0"></a><a class="code" href="xmlrpcWrappers_8php.html#c3e09831835663a8bd79aab3f0ea3e69" title="this is a test function that call be called when getting XML RPC calls to this site...">XMLRPCtest</a>', array('foo'));
+<a name="l00017"></a>00017         print_r($rc);
+<a name="l00018"></a>00018 }
+<a name="l00019"></a>00019 <span class="comment">// list images</span>
+<a name="l00020"></a>00020 elseif($_GET['state'] == 'listimages') {
+<a name="l00021"></a>00021         $rc = remoteVCLCall('<a name="a1"></a><a class="code" href="xmlrpcWrappers_8php.html#e2c01a27349e7a7788a42cfb5fe0d5ab" title="gets the images to which the user has acces">XMLRPCgetImages</a>', array());
+<a name="l00022"></a>00022         print_r($rc);
+<a name="l00023"></a>00023 }
+<a name="l00024"></a>00024 <span class="comment">// add request</span>
+<a name="l00025"></a>00025 elseif($_GET['state'] == 'addrequest') {
+<a name="l00026"></a>00026         $rc = remoteVCLCall('<a name="a2"></a><a class="code" href="xmlrpcWrappers_8php.html#e6f9d40f20e08994fa3d82c8dd12bdf5" title="tries to make a request">XMLRPCaddRequest</a>', array(98, 'now', 60));
+<a name="l00027"></a>00027         <span class="keywordflow">if</span>($rc['status'] == 'success') {
+<a name="l00028"></a>00028                 print <span class="stringliteral">"request id is {$rc['requestid']}&lt;br&gt;\n"</span>;
+<a name="l00029"></a>00029                 $_SESSION['requestid'] = $rc['requestid'];
+<a name="l00030"></a>00030         }
+<a name="l00031"></a>00031         <span class="keywordflow">else</span> {
+<a name="l00032"></a>00032                 print_r($rc);
+<a name="l00033"></a>00033         }
+<a name="l00034"></a>00034 }
+<a name="l00035"></a>00035 <span class="comment">// get request status</span>
+<a name="l00036"></a>00036 elseif($_GET['state'] == 'requeststatus') {
+<a name="l00037"></a>00037         <span class="keywordflow">if</span>(! array_key_exists('requestid', $_SESSION)) {
+<a name="l00038"></a>00038                 print <span class="stringliteral">"no request created&lt;br&gt;\n"</span>;
+<a name="l00039"></a>00039                 exit;
+<a name="l00040"></a>00040         }
+<a name="l00041"></a>00041         $rc = remoteVCLCall('<a name="a3"></a><a class="code" href="xmlrpcWrappers_8php.html#131560f1aa7577bd1da62d5b7e228e4c" title="determines and returns the status of the request">XMLRPCgetRequestStatus</a>', array($_SESSION['requestid']));
+<a name="l00042"></a>00042         print <span class="stringliteral">"current status of request {$_SESSION['requestid']} is {$rc['status']}"</span>;
+<a name="l00043"></a>00043 }
+<a name="l00044"></a>00044 <span class="comment">// get connection data</span>
+<a name="l00045"></a>00045 elseif($_GET['state'] == 'connectdata') {
+<a name="l00046"></a>00046         <span class="keywordflow">if</span>(! array_key_exists('requestid', $_SESSION)) {
+<a name="l00047"></a>00047                 print <span class="stringliteral">"no request created&lt;br&gt;\n"</span>;
+<a name="l00048"></a>00048                 exit;
+<a name="l00049"></a>00049         }
+<a name="l00050"></a>00050         $rc = remoteVCLCall('<a name="a4"></a><a class="code" href="xmlrpcWrappers_8php.html#f8b8c718ea7ea9cc973602a2fe9ae20e" title="if request is ready, adds the connecting user&amp;#39;s computer to the request and returns...">XMLRPCgetRequestConnectData</a>', array($_SESSION['requestid'], $_SERVER[<span class="stringliteral">"REMOTE_ADDR"</span>]));
+<a name="l00051"></a>00051         <span class="keywordflow">if</span>($rc['status'] == 'ready')
+<a name="l00052"></a>00052                 print_r($rc);
+<a name="l00053"></a>00053         <span class="keywordflow">else</span>
+<a name="l00054"></a>00054                 print <span class="stringliteral">"status of request is {$rc['status']}"</span>;
+<a name="l00055"></a>00055 }
+<a name="l00056"></a>00056 <span class="comment">// end request</span>
+<a name="l00057"></a>00057 elseif($_GET['state'] == 'endrequest') {
+<a name="l00058"></a>00058         <span class="keywordflow">if</span>(! array_key_exists('requestid', $_SESSION)) {
+<a name="l00059"></a>00059                 print <span class="stringliteral">"no request created&lt;br&gt;\n"</span>;
+<a name="l00060"></a>00060                 exit;
+<a name="l00061"></a>00061         }
+<a name="l00062"></a>00062         $rc = remoteVCLCall('<a name="a5"></a><a class="code" href="xmlrpcWrappers_8php.html#dfdaad6201dbcaaf5c2249a2c38437cc" title="ends/deletes a request">XMLRPCendRequest</a>', array($_SESSION['requestid']));
+<a name="l00063"></a>00063         <span class="keywordflow">if</span>($rc['status'] == 'error')
+<a name="l00064"></a>00064                 print_r($rc);
+<a name="l00065"></a>00065         <span class="keywordflow">else</span> {
+<a name="l00066"></a>00066                 print <span class="stringliteral">"request ended&lt;br&gt;\n"</span>;
+<a name="l00067"></a>00067                 unset($_SESSION['requestid']);
+<a name="l00068"></a>00068         }
+<a name="l00069"></a>00069 }
+<a name="l00070"></a>00070 print <span class="stringliteral">"&lt;/pre&gt;\n"</span>;
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072 function remoteVCLCall($method, $args) {
+<a name="l00073"></a>00073         $request = xmlrpc_encode_request($method, $args);
+<a name="l00074"></a>00074         $header  = <span class="stringliteral">"Content-Type: text/xml\r\n"</span>;
+<a name="l00075"></a>00075         $header .= <span class="stringliteral">"X-User: userid\r\n"</span>;    <span class="comment">// user your userid here</span>
+<a name="l00076"></a>00076         $header .= <span class="stringliteral">"X-Pass: password\r\n"</span>;  <span class="comment">// user your password here</span>
+<a name="l00077"></a>00077         $header .= <span class="stringliteral">"X-APIVERSION: 1"</span>;       <span class="comment">// this is to allow for future changes to the api</span>
+<a name="l00078"></a>00078         $context = stream_context_create(
+<a name="l00079"></a>00079                 array(
+<a name="l00080"></a>00080                         'http' =&gt; array(
+<a name="l00081"></a>00081                                 'method' =&gt; <span class="stringliteral">"POST"</span>,
+<a name="l00082"></a>00082                                 'header' =&gt; $header,
+<a name="l00083"></a>00083                                 'content' =&gt; $request
+<a name="l00084"></a>00084                         )
+<a name="l00085"></a>00085                 )
+<a name="l00086"></a>00086         );
+<a name="l00087"></a>00087         $file = file_get_contents(<span class="stringliteral">"https://vcl.ncsu.edu/scheduling/index.php?mode=xmlrpccall"</span>, <span class="keyword">false</span>, $context);
+<a name="l00088"></a>00088         $response = xmlrpc_decode($file);
+<a name="l00089"></a>00089         <span class="keywordflow">if</span>(xmlrpc_is_fault($response)) {
+<a name="l00090"></a>00090                 trigger_error(<span class="stringliteral">"xmlrpc: {$response['faultString']} ({$response['faultCode']})"</span>);
+<a name="l00091"></a>00091                 exit;
+<a name="l00092"></a>00092         }
+<a name="l00093"></a>00093         <span class="keywordflow">return</span> $response;
+<a name="l00094"></a>00094 }
+<a name="l00095"></a>00095 ?&gt;
+</pre></div> <hr size="1"><address style="text-align: right;"><small>Generated on Wed Dec 19 11:28:46 2007 for VCL XML RPC by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
+</body>
+</html>

Added: incubator/vcl/tags/import/web/css/doxygen.css
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/css/doxygen.css?rev=726079&view=auto
==============================================================================
--- incubator/vcl/tags/import/web/css/doxygen.css (added)
+++ incubator/vcl/tags/import/web/css/doxygen.css Fri Dec 12 10:20:10 2008
@@ -0,0 +1,360 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
+	font-family: Geneva, Arial, Helvetica, sans-serif;
+}
+CAPTION { font-weight: bold }
+DIV.qindex {
+	width: 100%;
+	background-color: #e8eef2;
+	border: 1px solid #84b0c7;
+	text-align: center;
+	margin: 2px;
+	padding: 2px;
+	line-height: 140%;
+}
+DIV.nav {
+	width: 100%;
+	background-color: #e8eef2;
+	border: 1px solid #84b0c7;
+	text-align: center;
+	margin: 2px;
+	padding: 2px;
+	line-height: 140%;
+}
+DIV.navtab {
+       background-color: #e8eef2;
+       border: 1px solid #84b0c7;
+       text-align: center;
+       margin: 2px;
+       margin-right: 15px;
+       padding: 2px;
+}
+TD.navtab {
+       font-size: 70%;
+}
+A.qindex {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D;
+}
+A.qindex:visited {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D
+}
+A.qindex:hover {
+	text-decoration: none;
+	background-color: #ddddff;
+}
+A.qindexHL {
+	text-decoration: none;
+	font-weight: bold;
+	background-color: #6666cc;
+	color: #ffffff;
+	border: 1px double #9295C2;
+}
+A.qindexHL:hover {
+	text-decoration: none;
+	background-color: #6666cc;
+	color: #ffffff;
+}
+A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
+A.el { text-decoration: none; font-weight: bold }
+A.elRef { font-weight: bold }
+A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
+A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
+A.codeRef:link { font-weight: normal; color: #0000FF}
+A.codeRef:visited { font-weight: normal; color: #0000FF}
+DL.el { margin-left: -1cm }
+.fragment {
+       font-family: monospace, fixed;
+       font-size: 95%;
+}
+PRE.fragment {
+	border: 1px solid #CCCCCC;
+	background-color: #f5f5f5;
+	margin-top: 4px;
+	margin-bottom: 4px;
+	margin-left: 2px;
+	margin-right: 8px;
+	padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 4px;
+	padding-bottom: 4px;
+}
+DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
+
+DIV.groupHeader {
+       margin-left: 16px;
+       margin-top: 12px;
+       margin-bottom: 6px;
+       font-weight: bold;
+}
+DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
+BODY {
+	background: white;
+	color: black;
+	margin-right: 20px;
+	margin-left: 20px;
+}
+TD.indexkey {
+	background-color: #e8eef2;
+	font-weight: bold;
+	padding-right  : 10px;
+	padding-top    : 2px;
+	padding-left   : 10px;
+	padding-bottom : 2px;
+	margin-left    : 0px;
+	margin-right   : 0px;
+	margin-top     : 2px;
+	margin-bottom  : 2px;
+	border: 1px solid #CCCCCC;
+}
+TD.indexvalue {
+	background-color: #e8eef2;
+	font-style: italic;
+	padding-right  : 10px;
+	padding-top    : 2px;
+	padding-left   : 10px;
+	padding-bottom : 2px;
+	margin-left    : 0px;
+	margin-right   : 0px;
+	margin-top     : 2px;
+	margin-bottom  : 2px;
+	border: 1px solid #CCCCCC;
+}
+TR.memlist {
+   background-color: #f0f0f0; 
+}
+P.formulaDsp { text-align: center; }
+IMG.formulaDsp { }
+IMG.formulaInl { vertical-align: middle; }
+SPAN.keyword       { color: #008000 }
+SPAN.keywordtype   { color: #604020 }
+SPAN.keywordflow   { color: #e08000 }
+SPAN.comment       { color: #800000 }
+SPAN.preprocessor  { color: #806020 }
+SPAN.stringliteral { color: #002080 }
+SPAN.charliteral   { color: #008080 }
+.mdescLeft {
+       padding: 0px 8px 4px 8px;
+	font-size: 80%;
+	font-style: italic;
+	background-color: #FAFAFA;
+	border-top: 1px none #E0E0E0;
+	border-right: 1px none #E0E0E0;
+	border-bottom: 1px none #E0E0E0;
+	border-left: 1px none #E0E0E0;
+	margin: 0px;
+}
+.mdescRight {
+       padding: 0px 8px 4px 8px;
+	font-size: 80%;
+	font-style: italic;
+	background-color: #FAFAFA;
+	border-top: 1px none #E0E0E0;
+	border-right: 1px none #E0E0E0;
+	border-bottom: 1px none #E0E0E0;
+	border-left: 1px none #E0E0E0;
+	margin: 0px;
+}
+.memItemLeft {
+	padding: 1px 0px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: solid;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memItemRight {
+	padding: 1px 8px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: solid;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memTemplItemLeft {
+	padding: 1px 0px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: none;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memTemplItemRight {
+	padding: 1px 8px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: none;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memTemplParams {
+	padding: 1px 0px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: solid;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+       color: #606060;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.search     { color: #003399;
+              font-weight: bold;
+}
+FORM.search {
+              margin-bottom: 0px;
+              margin-top: 0px;
+}
+INPUT.search { font-size: 75%;
+               color: #000080;
+               font-weight: normal;
+               background-color: #e8eef2;
+}
+TD.tiny      { font-size: 75%;
+}
+a {
+	color: #1A41A8;
+}
+a:visited {
+	color: #2A3798;
+}
+.dirtab { padding: 4px;
+          border-collapse: collapse;
+          border: 1px solid #84b0c7;
+}
+TH.dirtab { background: #e8eef2;
+            font-weight: bold;
+}
+HR { height: 1px;
+     border: none;
+     border-top: 1px solid black;
+}
+
+/* Style for detailed member documentation */
+.memtemplate {
+  font-size: 80%;
+  color: #606060;
+  font-weight: normal;
+} 
+.memnav { 
+  background-color: #e8eef2;
+  border: 1px solid #84b0c7;
+  text-align: center;
+  margin: 2px;
+  margin-right: 15px;
+  padding: 2px;
+}
+.memitem {
+  padding: 4px;
+  background-color: #eef3f5;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #dedeee;
+  -moz-border-radius: 8px 8px 8px 8px;
+}
+.memname {
+  white-space: nowrap;
+  font-weight: bold;
+}
+.memdoc{
+  padding-left: 10px;
+}
+.memproto {
+  background-color: #d5e1e8;
+  width: 100%;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #84b0c7;
+  font-weight: bold;
+  -moz-border-radius: 8px 8px 8px 8px;
+}
+.paramkey {
+  text-align: right;
+}
+.paramtype {
+  white-space: nowrap;
+}
+.paramname {
+  color: #602020;
+  font-style: italic;
+}
+/* End Styling for detailed member documentation */
+
+/* for the tree view */
+.ftvtree {
+	font-family: sans-serif;
+	margin:0.5em;
+}
+.directory { font-size: 9pt; font-weight: bold; }
+.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
+.directory > h3 { margin-top: 0; }
+.directory p { margin: 0px; white-space: nowrap; }
+.directory div { display: none; margin: 0px; }
+.directory img { vertical-align: -30%; }
+

Added: incubator/vcl/tags/import/web/css/vcl.css
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/css/vcl.css?rev=726079&view=auto
==============================================================================
--- incubator/vcl/tags/import/web/css/vcl.css (added)
+++ incubator/vcl/tags/import/web/css/vcl.css Fri Dec 12 10:20:10 2008
@@ -0,0 +1,177 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+.scriptonly {
+	display: none;
+}
+
+.scriptoff {
+	display: inline;
+}
+.compstatelink {
+	color: red;
+}
+
+.compstatelink a {
+	color: red;
+}
+
+.compstatelink a:hover {
+	background: #CCCCCC;
+	text-decoration: none;
+}
+
+#expauthul li {
+	list-style-type: disc;
+}
+
+.shown {
+	display: block;
+}
+
+.hidden {
+	display: none;
+}
+
+.hlrow td {
+	background: #ffff88;
+}
+
+.hlrow th {
+	background: #ffff88;
+}
+
+.hlcol {
+	background: #ccccff;
+}
+
+.nohlcol {
+	background: #ededed;
+}
+
+.rightborder {
+	border-right: 1px solid #000000;
+}
+
+.preferenceslist {
+	display: block;
+	list-style-type: none;
+	margin: 0 1px 0 0;
+	padding: 0;
+	text-align: left;
+}
+
+.preferenceslist a {
+	font-size: 15px;
+}
+
+.whenusefieldset {
+	border-width: 0px;
+}
+
+.errormsg {
+	float: right;
+	width: 100px;
+}
+
+#resStatusText div {
+	background: threedface;
+}
+
+#resStatusText table {
+	background: threedface;
+	border-spacing: 5px 0px;
+	margin: 0px 0px 0px 0px;
+}
+
+#resStatusText table td {
+	padding: 1px;
+}
+
+.usergrouptable form {
+	margin: 0;
+}
+
+.usergrouptable td {
+	padding-left: 1px;
+}
+
+.resourcegrouptable form {
+	margin: 0;
+}
+
+.resourcegrouptable td {
+	padding-left: 1px;
+}
+
+#layouttable td {
+	vertical-align: top;
+}
+
+#ttlayout td {
+	border: solid 1px #eeeeee;
+}
+
+#listitems {
+	z-index: -10;
+	position: absolute;
+	left: 50px;
+	top: 100px;
+	background-color: lightblue;
+	border: 2px;
+}
+
+.dojoDialog {
+	background: #eee;
+	border: 1px solid #999;
+	-moz-border-radius: 5px;
+	padding: 4px;
+}
+.vcldocpage ol {
+	list-style-type: decimal;
+}
+
+.vcldocpage ul {
+	list-style-type: disc;
+}
+
+.profileDlg {
+	background: #eee;
+	border: 1px solid #999;
+	-moz-border-radius: 5px;
+	padding: 4px;
+}
+
+.nperrormsg {
+	font-style: italic;
+	color: red;
+}
+
+#revisiontable th {
+	border: solid 1px #000000;
+	padding: 2px;
+	vertical-align: middle;
+}
+
+#revisiontable td {
+	border: solid 1px #000000;
+	padding: 2px;
+	vertical-align: middle;
+}
+
+.numbers {
+	list-style-type: decimal;
+}

Added: incubator/vcl/tags/import/web/images/blank.gif
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/images/blank.gif?rev=726079&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/vcl/tags/import/web/images/blank.gif
------------------------------------------------------------------------------
    svn:executable = 

Propchange: incubator/vcl/tags/import/web/images/blank.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/vcl/tags/import/web/images/fonts/arial.ttf
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/images/fonts/arial.ttf?rev=726079&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/vcl/tags/import/web/images/fonts/arial.ttf
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/vcl/tags/import/web/images/fonts/arialbd.ttf
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/images/fonts/arialbd.ttf?rev=726079&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/vcl/tags/import/web/images/fonts/arialbd.ttf
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/vcl/tags/import/web/images/gray.jpg
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/images/gray.jpg?rev=726079&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/vcl/tags/import/web/images/gray.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/vcl/tags/import/web/images/green.jpg
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/images/green.jpg?rev=726079&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/vcl/tags/import/web/images/green.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/vcl/tags/import/web/images/list.gif
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/images/list.gif?rev=726079&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/vcl/tags/import/web/images/list.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/vcl/tags/import/web/images/orange.jpg
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/images/orange.jpg?rev=726079&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/vcl/tags/import/web/images/orange.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/vcl/tags/import/web/images/red.jpg
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/images/red.jpg?rev=726079&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/vcl/tags/import/web/images/red.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/vcl/tags/import/web/images/textimage.php
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/images/textimage.php?rev=726079&view=auto
==============================================================================
--- incubator/vcl/tags/import/web/images/textimage.php (added)
+++ incubator/vcl/tags/import/web/images/textimage.php Fri Dec 12 10:20:10 2008
@@ -0,0 +1,70 @@
+<?php
+/*
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+*/
+
+// most of this was taken from Troy's documentation at
+// http://sysadm.eos.ncsu.edu/site/pages/phpdev/gd-graphics
+
+$face = "fonts/arialbd.ttf";
+
+function vectordist($a, $b){
+	if($a < 0 && $b < 0) return abs($a - $b);
+	else if( $a < 0 || $b < 0) return abs($a) + abs($b);
+	else return abs($a - $b);
+}
+
+// create a filename safe version of the provided text for the button
+$text = $_GET["text"];
+$lowertext = strtolower($_GET["text"]);
+$pattern = "/\W/";
+$replacement = "";
+$lowertext = preg_replace($pattern, $replacement, $lowertext);
+//if($_GET["style"] == "off") $lowertext .= "_off";
+//else $lowertext .= "_on";
+
+// these headers are needed so the browser knows what it is getting
+header('Content-Type: image/gif');
+header('Content-Disposition: inline; filename=$lowertext.gif');
+
+// calculate the size the text will fill
+$size = imagettfbbox( 14, 90, $face, $text);
+$height = vectordist($size[1], $size[3]);
+$width = vectordist($size[0], $size[4]) + 2;
+#print "<pre>\n";
+#print_r($size);
+#print "</pre>\nwidth - $width<br>height - $height<br>\n";
+
+// create an "image resource" big enough to show the text and have some padding.
+// set the background color, the text color, and make the background color the
+// transparency color.
+$image = imagecreate($width, $height);
+#imagecolorallocate($image, 0xDD, 0xDD, 0xDD);
+#imagefill($image, 0, 0, 0xDDDDDD);
+$background = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
+$textcolor = imagecolorallocate($image, 0, 0, 0);
+imagecolortransparent($image, $background);
+
+// this line inserts the text into the image, I have noticed that the font sizes
+// that GD uses do not really match point sizes. 11 below roughly matches 15 points.
+// 90 is the angle the text is rotated at, 5 is the horizontal displacement (right) of the text,
+// $height + 2 is the vertical displacement (down) of the text.
+imagettftext( $image, 13, 90, 13, $height - 5, $textcolor, $face, $text);
+
+// output the image, destroy the resource (not really needed in this case), and terminate       
+imagegif($image);       
+imagedestroy($image);           
+?>

Added: incubator/vcl/tags/import/web/images/x.png
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/images/x.png?rev=726079&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/vcl/tags/import/web/images/x.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/vcl/tags/import/web/index.php
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/index.php?rev=726079&view=auto
==============================================================================
--- incubator/vcl/tags/import/web/index.php (added)
+++ incubator/vcl/tags/import/web/index.php Fri Dec 12 10:20:10 2008
@@ -0,0 +1,89 @@
+<?php
+/*
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+*/
+
+@include_once("fckeditor/fckeditor.php");
+require_once(".ht-inc/conf.php");
+if(! isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") {
+	header("Location: " . BASEURL . "/");
+	exit;
+}
+
+$user = '';
+$mysql_link_vcl = '';
+$mysql_link_acct = '';
+$mode = '';
+$oldmode = '';
+$submitErr = '';
+$submitErrMsg = '';
+$remoteIP = '';
+$authed = '';
+$viewmode = '';
+$semid = '';
+$semislocked = '';
+unset($GLOBALS['php_errormsg']);
+$cache['nodes'] = array();
+$cache['unityids'] = array();
+$cache['nodeprivs']['resources'] = array();
+$docreaders = array();
+
+require_once(".ht-inc/states.php");
+
+require_once('.ht-inc/errors.php');
+
+require_once('.ht-inc/utils.php');
+
+dbConnect();
+
+initGlobals();
+
+$modes = array_keys($actions['mode']);
+$args = array_keys($actions['args']);
+$hasArg = 0;
+if(in_array($mode, $modes)) {
+	$actionFunction = $actions['mode'][$mode];
+	if(in_array($mode, $args)) {
+		$hasArg = 1;
+		$arg = $actions['args'][$mode];
+	}
+}
+else {
+	$actionFunction = "main";
+}
+
+checkAccess();
+
+sendHeaders();
+
+printHTMLHeader();
+
+if($viewmode == ADMIN_DEVELOPER) {
+	set_error_handler("errorHandler");
+}
+
+if($hasArg) {
+	$actionFunction($arg);
+}
+else {
+	$actionFunction();
+}
+dbDisconnect();
+
+printHTMLFooter();
+
+semUnlock();
+?>

Added: incubator/vcl/tags/import/web/js/code.js
URL: http://svn.apache.org/viewvc/incubator/vcl/tags/import/web/js/code.js?rev=726079&view=auto
==============================================================================
--- incubator/vcl/tags/import/web/js/code.js (added)
+++ incubator/vcl/tags/import/web/js/code.js Fri Dec 12 10:20:10 2008
@@ -0,0 +1,886 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+var toggledRows = new Array();
+var toggledCols = new Array();
+var mouseX = 0;
+var mouseY = 0;
+var passvar = 0;
+
+var browser = "";
+function setBrowser() {
+	browser = navigator.appName;
+	if(navigator.appName == 'Netscape') {
+		var regex = new RegExp('Safari');
+		if(navigator.appVersion.match(regex)) {
+			browser = 'Safari';
+		}
+	}
+	else if(navigator.appName == 'Microsoft Internet Explorer') {
+		browser = 'IE';
+	}
+}
+setBrowser();
+
+function testJS() {
+	if(document.getElementById('testjavascript'))
+		document.getElementById('testjavascript').value = '1';
+}
+
+function fixButtons2() {
+	var btns = new Array('addNodeBtn',
+	                     'deleteNodeBtn',
+	                     'userPrivBtn',
+	                     'addUserBtn',
+	                     'groupPrivBtn',
+	                     'addGroupBtn',
+	                     'resourcePrivBtn',
+	                     'addResourceBtn',
+	                     'submitAddUserBtn',
+	                     'cancelAddUserBtn',
+	                     'submitAddGroupBtn',
+	                     'cancelAddGroupBtn',
+	                     'submitAddNodeBtn',
+	                     'cancelAddNodeBtn',
+	                     'submitDeleteNodeBtn',
+	                     'cancelDeleteNodeBtn'
+								);
+	var obj;
+	for(var i = 0; i < btns.length; i++) {
+		obj = dojo.widget.byId(btns[i]);
+		if(obj) {
+			obj.domNode.style.zoom = 1;
+			obj.domNode.style.zoom = "";
+		}
+	}
+}
+
+function initPrivTree() {
+	var obj = dojo.widget.byId('privTree');
+	if(obj) {
+		dojo.event.topic.subscribe("nodeSelected",
+			function(message) {nodeSelect(message.node);}
+		);
+		dojo.event.topic.subscribe(obj.eventNames['expand'],
+		                          treeListener, 'nodeExpand');
+		var selectedNodeId = dojo.io.cookie.get('VCLACTIVENODE');
+		var selectedNode = dojo.widget.byId(selectedNodeId);
+		setSelectedPrivNode(selectedNodeId);
+		var selector = dojo.widget.byId('treeSelector');
+		dojo.event.connect('before', selector, 'onCollapse', treeListener, 'nodeCollapse');
+	}
+}
+
+function checkAllCompUtils() {
+	var count = 0;
+	var obj;
+	while(obj = document.getElementById('comp' + count)) {
+		obj.checked = true;
+		document.getElementById('compid' + count).className = 'hlrow';
+		toggledRows['compid' + count] = 1;
+		count++;
+	}
+	return true;
+}
+
+function uncheckAllCompUtils() {
+	var count = 0;
+	var obj;
+	while(obj = document.getElementById('comp' + count)) {
+		obj.checked = false;
+		document.getElementById('compid' + count).className = '';
+		toggledRows['compid' + count] = 0;
+		count++;
+	}
+	return true;
+}
+
+function reloadComputerSubmit() {
+	var formobj = document.getElementById('utilform');
+	var obj = document.getElementById('continuation');
+	var contobj = document.getElementById('reloadcont');
+	obj.value = contobj.value;
+	formobj.submit();
+}
+
+function compStateChangeSubmit() {
+	var formobj = document.getElementById('utilform');
+	var obj = document.getElementById('continuation');
+	var contobj = document.getElementById('statecont');
+	obj.value = contobj.value;
+	formobj.submit();
+}
+
+function compScheduleChangeSubmit() {
+	var formobj = document.getElementById('utilform');
+	var obj = document.getElementById('continuation');
+	var contobj = document.getElementById('schcont');
+	obj.value = contobj.value;
+	formobj.submit();
+}
+
+Array.prototype.inArray = function(data) {
+	for(var i = 0; i < this.length; i++) {
+		if(this[i] === data) {
+			return true;
+		}
+	}
+	return false;
+}
+
+Array.prototype.search = function(data) {
+	for (var i = 0; i < this.length; i++) {
+		if(this[i] === data) {
+			return i;
+		}
+	}
+	return false;
+}
+
+function checkSelectParent(message) {
+	var node = message.source;
+	var selector = dojo.widget.byId('treeSelector');
+	if(! selector.selectedNode)
+		return;
+	var parent = selector.selectedNode.parent;
+	while(parent !== node && parent.isTreeNode) {
+		parent = parent.parent;
+	}
+	if(parent === node)
+		selector.select(message);
+}
+
+function hidePrivileges() {
+   //dojo.lfx.fadeHide(dojo.byId('nodePerms'), 200).play();
+}
+
+function showPrivileges() {
+   //dojo.lfx.fadeShow(dojo.byId('nodePerms'), 300).play();
+}
+
+function showAddNodePane() {
+	showWindow('addNodePane');
+}
+
+function showDeleteNodeDialog() {
+	dojo.widget.byId('deleteDialog').show();
+}
+
+function showAddUserPane() {
+	showWindow('addUserPane');
+}
+
+function showAddUserGroupPane() {
+	showWindow('addUserGroupPane');
+}
+
+function showAddResourceGroupPane() {
+	showWindow('addResourceGroupPane');
+}
+
+function showResStatusPane(reqid) {
+	var currdetailid = dojo.byId('detailreqid').value;
+	if(! dojo.widget.byId('resStatusPane')) {
+		window.location.reload();
+		return;
+	}
+	var windowstate = dojo.widget.byId('resStatusPane').windowState;
+	if(currdetailid != reqid) {
+		dojo.byId('detailreqid').value = reqid;
+		dojo.byId('resStatusText').innerHTML = 'Loading...';
+	}
+	if( windowstate == 'minimized' || currdetailid != reqid) {
+		if(typeof(refresh_timer) != "undefined")
+			clearTimeout(refresh_timer);
+		if(windowstate == 'minimized')
+			showWindow('resStatusPane');
+		resRefresh();
+	}
+}
+
+function hideResStatusPane() {
+	dojo.widget.byId('resStatusPane').minimizeWindow();
+}
+
+/*function showWindow(name, offset, leftdist) {
+	var obj = dojo.widget.byId(name);
+	obj[name].style.position = 'absolute';
+	if(leftdist == null)
+		obj[name].style.left = 30;
+	else
+		obj[name].style.left = leftdist;
+	obj.restoreWindow();
+	//var offset = dojo.byId('offset').value;
+	obj[name].style.top = mouseY - offset;
+}*/
+
+function showWindow(name) {
+	var x = mouseX;
+	var y = mouseY;
+	var obj = dojo.widget.byId(name);
+	obj.domNode.style.position = 'absolute';
+	obj.domNode.style.left = x + 'px';
+	var newtop = y - (parseInt(obj.domNode.style.height) / 2);
+	if(newtop < 0)
+		newtop = 0;
+	obj.domNode.style.top = newtop + 'px';
+	obj.restoreWindow();
+}
+
+var genericCB = function(type, data, evt) {
+	unsetLoading();
+	var regex = new RegExp('^<!DOCTYPE html');
+	if(data.match(regex)) {
+		var mesg = 'A minor error has occurred. It is probably safe to ' +
+		           'ignore. However, if you keep getting this message and ' +
+		           'are unable to use VCL, you may contact vcl_help@ncsu.edu ' +
+		           'for further assistance.';
+		alert(mesg);
+		var d = {mode: 'errorrpt',
+		         data: data};
+		RPCwrapper(d, function(type, data, evt) {});
+		return;
+	}
+	eval(data);
+}
+
+var errorHandler = function(type, error, data) {
+	alert('error occurred' + error.message + data.responseText);
+}
+
+function nodeSelect(node) {
+   var nodeid = node.widgetId;
+   var nodename = node.title;
+   dojo.byId('addPaneNodeName').innerHTML = 'Node: <strong>' + nodename + '</strong>';
+   dojo.byId('addGroupPaneNodeName').innerHTML = 'Node: <strong>' + nodename + '</strong>';
+   dojo.byId('addResourceGroupPaneNodeName').innerHTML = 'Node: <strong>' + nodename + '</strong>';
+   dojo.byId('addChildNodeName').innerHTML = 'Node: <strong>' + nodename + '</strong>';
+   dojo.byId('deleteNodeName').innerHTML = 'Node: <strong>' + nodename + '</strong>';
+	setLoading();
+   if(dojo.byId('activeNodeAdd'))
+      dojo.byId('activeNodeAdd').value = nodeid;
+   if(dojo.byId('activeNodeDel'))
+      dojo.byId('activeNodeDel').value = nodeid;
+   hidePrivileges();
+   dojo.io.cookie.set('VCLACTIVENODE', nodeid, 365, '/', cookiedomain);
+	var obj = document.getElementById('nodecont');
+	var data = {continuation: obj.value,
+	            node: nodeid};
+	RPCwrapper(data, genericCB);
+}
+
+function refreshPerms() {
+   setLoading();
+	var selector = dojo.widget.byId('treeSelector');
+	var nodeid = selector.selectedNode.widgetId;
+	dojo.widget.byId('addUserPane').minimizeWindow();
+   hidePrivileges();
+	var obj = document.getElementById('nodecont');
+	var data = {continuation: obj.value,
+	            node: nodeid};
+	RPCwrapper(data, genericCB);
+}
+
+function submitAddUser() {
+	dojo.byId('addUserPrivStatus').innerHTML = '';
+	var obj = dojo.byId('newuser');
+	var userid = obj.value;
+	if(! userid.length)
+		return;
+	var perms = new Array();
+	obj = dojo.widget.byId('blockchk');
+	if(obj.checked)
+		perms.push('block');
+	for(var i = 0; obj = dojo.widget.byId('userck0:' + i); i++) {
+		if(obj.checked)
+			perms.push(obj.name);
+	}
+	var perms2 = perms.join(':', perms);
+	var selector = dojo.widget.byId('treeSelector');
+	var contid = dojo.byId('addusercont').value;
+	var data = {continuation: contid,
+	            perms: perms2,
+	            newuser: userid,
+	            activeNode: selector.selectedNode.widgetId};
+   setLoading();
+	RPCwrapper(data, genericCB);
+}
+
+function addUserPaneHide() {
+	dojo.byId('addUserPrivStatus').innerHTML = '';
+	dojo.byId('newuser').value = '';
+	dojo.widget.byId('addUserPane').minimizeWindow();
+	var obj = dojo.widget.byId('blockchk');
+	if(obj.checked) {
+		obj.checked = false;
+		obj._setInfo();
+	}
+	for(var i = 0; obj = dojo.widget.byId('userck0:' + i); i++) {
+		if(obj.checked) {
+			obj.checked = false;
+			obj._setInfo();
+		}
+	}
+}
+
+function submitAddUserGroup() {
+	dojo.byId('addUserGroupPrivStatus').innerHTML = '';
+	var obj = dojo.byId('newgroupid');
+	var groupid = obj.value;
+	if(! groupid.length)
+		return;
+	var perms = new Array();
+	obj = dojo.widget.byId('blockgrpchk');
+	if(obj.checked)
+		perms.push('block');
+	for(var i = 0; obj = dojo.widget.byId('usergrpck0:' + i); i++) {
+		if(obj.checked)
+			perms.push(obj.name);
+	}
+	var perms2 = perms.join(':', perms);
+	var selector = dojo.widget.byId('treeSelector');
+	var contid = dojo.byId('addusergroupcont').value;
+	var data = {continuation: contid,
+	            perms: perms2,
+	            newgroupid: groupid,
+	            activeNode: selector.selectedNode.widgetId};
+   setLoading();
+	RPCwrapper(data, genericCB);
+}
+
+function addUserGroupPaneHide() {
+	dojo.byId('addUserGroupPrivStatus').innerHTML = '';
+	dojo.byId('newgroupid').value = '';
+	dojo.widget.byId('addUserGroupPane').minimizeWindow();
+	var obj = dojo.widget.byId('blockgrpchk');
+	if(obj.checked) {
+		obj.checked = false;
+		obj._setInfo();
+	}
+	for(var i = 0; obj = dojo.widget.byId('usergrpck0:' + i); i++) {
+		if(obj.checked) {
+			obj.checked = false;
+			obj._setInfo();
+		}
+	}
+}
+
+function privChange(checked, row, col, type) {
+	var objname = 'ck' + row + ':' + col;
+	var obj = dojo.widget.byId(objname);
+	if(obj.disabled)
+		return;
+	var nameArr = obj.name.split('[');
+	nameArr = nameArr[1].split(']');
+	nameArr = nameArr[0].split(':');
+	if(type == 1)
+		var contid = dojo.byId('changeuserprivcont').value;
+	else if(type == 2)
+		var contid = dojo.byId('changeusergroupprivcont').value;
+	else if(type == 3)
+		var contid = dojo.byId('changeresourceprivcont').value;
+	var selector = dojo.widget.byId('treeSelector');
+	var data = {continuation: contid,
+	            activeNode: selector.selectedNode.widgetId,
+	            item: nameArr[0],
+	            priv: nameArr[1],
+	            value: checked};
+	setLoading();
+	RPCwrapper(data, genericCB);
+}
+
+function submitUserPrivChanges() {
+	var allusers = dojo.byId('allusers').value;
+	var selector = dojo.widget.byId('treeSelector');
+	var contid = dojo.byId('changeuserprivcont').value;
+	var data = {continuation: contid,
+	            activeNode: selector.selectedNode.widgetId,
+	            allusers: allusers};
+	var obj;
+	var name;
+	var nameArr;
+	obj = dojo.byId('lastUserNum');
+	if(obj) {
+		var lastid = obj.innerHTML;
+		for(var j = 0; j <= lastid; j++) {
+			obj = dojo.byId('ck' + j + ':block');
+			if(obj.checked) {
+				nameArr = obj.name.split('[');
+				nameArr = nameArr[1].split(']');
+				data["privrow[" + nameArr[0] + "]"] = 1;
+			}
+			for(var i = 0; obj = dojo.byId('ck' + j + ':' + i); i++) {
+				if(obj.checked) {
+					nameArr = obj.name.split('[');
+					nameArr = nameArr[1].split(']');
+					data["privrow[" + nameArr[0] + "]"] = 1;
+				}
+			}
+		}
+		setLoading();
+		RPCwrapper(data, genericCB);
+	}
+}
+
+function submitUserGroupPrivChanges() {
+	var allgroups = dojo.byId('allgroups').value;
+	var selector = dojo.widget.byId('treeSelector');
+	var contid = dojo.byId('changeusergroupprivscont').value;
+	var data = {continuation: contid,
+	            activeNode: selector.selectedNode.widgetId,
+	            allgroups: allgroups};
+	var obj;
+	var obj2;
+	var name;
+	var nameArr;
+	obj = dojo.byId('firstUserGroupNum');
+	obj2 = dojo.byId('lastUserGroupNum');
+	if(obj) {
+		var firstid = obj.innerHTML;
+		var lastid = obj2.innerHTML;
+		for(var j = firstid; j <= lastid; j++) {
+			obj = dojo.byId('ck' + j + ':block');
+			if(obj.checked) {
+				nameArr = obj.name.split('[');
+				nameArr = nameArr[1].split(']');
+				data["privrow[" + nameArr[0] + "]"] = 1;
+			}
+			for(var i = 0; obj = dojo.byId('ck' + j + ':' + i); i++) {
+				if(obj.checked) {
+					nameArr = obj.name.split('[');
+					nameArr = nameArr[1].split(']');
+					data["privrow[" + nameArr[0] + "]"] = 1;
+				}
+			}
+		}
+		setLoading();
+		RPCwrapper(data, genericCB);
+	}
+}
+
+function submitResourceGroupPrivChanges() {
+	// FIXME - this needs to be replaced by using ajax to submit changes
+	//    as checkboxes are clicked
+}
+
+function submitAddResourceGroup() {
+	dojo.byId('addResourceGroupPrivStatus').innerHTML = '';
+	var obj = dojo.byId('newresourcegroupid');
+	var groupid = obj.value;
+	if(! groupid.length)
+		return;
+	var perms = new Array();
+	obj = dojo.widget.byId('blockresgrpck');
+	if(obj.checked)
+		perms.push('block');
+	obj = dojo.widget.byId('resgrpck0:0');
+	if(obj.checked)
+		perms.push('cascade');
+	for(var i = 1; obj = dojo.widget.byId('resgrpck0:' + i); i++) {
+		if(obj.checked)
+			perms.push(obj.name);
+	}
+	var perms2 = perms.join(':', perms);
+	var selector = dojo.widget.byId('treeSelector');
+	var contid = dojo.byId('addresourcegroupcont').value;
+	var data = {continuation: contid,
+	            perms: perms2,
+	            newgroupid: groupid,
+	            activeNode: selector.selectedNode.widgetId};
+   setLoading();
+	RPCwrapper(data, genericCB);
+}
+
+function addResourceGroupPaneHide() {
+	dojo.byId('addResourceGroupPrivStatus').innerHTML = '';
+	dojo.byId('newresourcegroupid').value = '';
+	dojo.widget.byId('addResourceGroupPane').minimizeWindow();
+	var obj = dojo.widget.byId('blockresgrpck');
+	if(obj.checked) {
+		obj.checked = false;
+		obj._setInfo();
+	}
+	for(var i = 0; obj = dojo.widget.byId('resgrpck0:' + i); i++) {
+		if(obj.checked) {
+			obj.checked = false;
+			obj._setInfo();
+		}
+	}
+}
+
+function AJdojoCreate(objid) {
+	if(dojo.byId(objid)) {
+		var parseObj = new dojo.xml.Parse();
+		var newObjs = parseObj.parseElement(dojo.byId(objid), null, true);
+		dojo.widget.getParser().createComponents(newObjs);
+	}
+}
+
+function changeCascadedRights(checked, row, count, fromclick, type) {
+	var i;
+	var objname;
+	var color;
+	var value;
+	var obj;
+	var obj2;
+	var namearr;
+	for(i = 1; i < count; i++) {
+		objname = "ck" + row + ":" + i;
+		obj = dojo.widget.byId(objname);
+		if(! obj)
+			continue;
+		if(checked) {
+			value = obj.value;
+			if(value != 'single') {
+				objname = "cell" + row + ":" + i;
+				obj2 = dojo.byId(objname);
+				if(! obj2)
+					continue;
+				obj2.bgColor = '#FFFFFF';
+				if(value == 'cascade') {
+					objname = "ck" + row + ":" + i;
+					obj = dojo.widget.byId(objname)
+					obj.checked = false;
+					obj._setInfo();
+				}
+			}
+		}
+		else {
+			value = obj.value;
+			if(value == 'single') {
+				obj.checked = true;
+				obj._setInfo();
+			}
+			else if(value == 'cascadesingle' || value == 'cascade') {
+				obj.checked = true;
+				obj._setInfo();
+				objname = "cell" + row + ":" + i;
+				obj2 = dojo.byId(objname);
+				if(! obj2)
+					continue;
+				obj2.bgColor = '#008000';
+			}
+		}
+	}
+	if(fromclick)
+		privChange(checked, row, 'block', type);
+}
+
+function nodeCheck(checked, row, col, type) {
+	var objname;
+	var color;
+	var obj;
+	var nameArr;
+	objname = "cell" + row + ":" + col;
+	color = document.getElementById(objname).bgColor;
+	if(color == '#008000') {
+		objname = "ck" + row + ":" + col;
+		obj = dojo.widget.byId(objname);
+		obj.checked = true;
+		obj._setInfo();
+	}
+	else {
+		privChange(checked, row, col, type);
+	}
+}
+
+function submitAddChildNode() {
+	dojo.byId('addChildNodeStatus').innerHTML = '';
+	var obj = dojo.byId('childNodeName');
+	var newnode = obj.value;
+	if(! newnode.length)
+		return;
+	var selector = dojo.widget.byId('treeSelector');
+	var contid = dojo.byId('addchildcont').value;
+	var data = {continuation: contid,
+	            newnode: newnode,
+	            activeNode: selector.selectedNode.widgetId};
+   setLoading();
+	RPCwrapper(data, genericCB);
+}
+
+function deleteNode() {
+	var selector = dojo.widget.byId('treeSelector');
+	var contid = dojo.byId('delchildcont').value;
+	var data = {continuation: contid,
+	            activeNode: selector.selectedNode.widgetId};
+	dojo.widget.byId('deleteDialog').hide();
+   setLoading();
+	RPCwrapper(data, genericCB);
+}
+
+function addNodePaneHide() {
+	dojo.byId('addChildNodeStatus').innerHTML = '';
+	dojo.byId('childNodeName').value = '';
+	dojo.widget.byId('addNodePane').minimizeWindow();
+}
+
+function addChildNode(name, id) {
+	var selector = dojo.widget.byId('treeSelector');
+	var selectedNode = selector.selectedNode;
+	var newnode = dojo.widget.createWidget("TreeNode", {title: name, widgetId: id});
+	selectedNode.addChild(newnode);
+	addNodePaneHide();
+}
+
+function setLoading() {
+   document.body.style.cursor = 'wait';
+	if(dojo.widget.byId('workingDialog'))
+		dojo.widget.byId('workingDialog').show();
+}
+
+function unsetLoading() {
+	document.body.style.cursor = 'default';
+	if(dojo.widget.byId('workingDialog'))
+		dojo.widget.byId('workingDialog').hide();
+}
+
+function setSelectedPrivNode(nodeid) {
+	var selectedNode = dojo.widget.byId(nodeid);
+	if(! selectedNode)
+		selectedNode = dojo.widget.byId('3');
+	selectedNode.markSelected();
+	var selector = dojo.widget.byId('treeSelector');
+	selector.selectedNode = selectedNode;
+	var nodename = selectedNode.title;
+	dojo.byId('addPaneNodeName').innerHTML = 'Node: <strong>' + nodename + '</strong>';
+	dojo.byId('addChildNodeName').innerHTML = 'Node: <strong>' + nodename + '</strong>';
+	dojo.byId('deleteNodeName').innerHTML = 'Node: <strong>' + nodename + '</strong>';
+   dojo.io.cookie.set('VCLACTIVENODE', nodeid, 365, '/', cookiedomain);
+}
+
+function submitAddResource() {
+	dojo.byId('addResourceMode').value = 'changeResourcePrivs';
+	dojo.byId('resourceForm').submit();
+}
+
+/*function submitAddResourcePriv() {
+	dojo.byId('addResourceMode').value = 'addResourcePriv';
+	dojo.byId('resourceForm').submit();
+}*/
+
+function toggleRowSelect(id) {
+	var row = document.getElementById(id);
+	if(toggledRows[id] && toggledRows[id] == 1) {
+		row.className = '';
+		toggledRows[id] = 0;
+	}
+	else {
+		row.className = 'hlrow';
+		toggledRows[id] = 1;
+	}
+}
+
+function toggleColSelect(id) {
+	var col = document.getElementById(id);
+	if(toggledCols[id] && toggledCols[id] == 1) {
+		col.className = '';
+		toggledCols[id] = 0;
+	}
+	else {
+		col.className = 'hlcol';
+		toggledCols[id] = 1;
+	}
+}
+
+function selectEnvironment() {
+	var imageid = dojo.byId('imagesel').value;
+	if(maxTimes[imageid])
+		setMaxRequestLength(maxTimes[imageid]);
+	else
+		setMaxRequestLength(defaultMaxTime);
+	updateWaitTime(1);
+}
+
+function updateWaitTime(cleardesc) {
+	var desconly = 0;
+	if(cleardesc)
+		dojo.byId('imgdesc').innerHTML = '';
+	dojo.byId('waittime').innerHTML = '';
+	if(! dojo.byId('timenow').checked) {
+		dojo.byId('waittime').className = 'hidden';
+		if(dojo.byId('newsubmit'))
+			dojo.byId('newsubmit').value = 'Create Reservation';
+		//return;
+		desconly = 1;
+	}
+	if(dojo.byId('openend') &&
+	   dojo.byId('openend').checked) {
+		dojo.byId('waittime').className = 'hidden';
+		dojo.byId('newsubmit').value = 'Create Reservation';
+		//return;
+		desconly = 1;
+	}
+	var imageid = dojo.byId('imagesel').value;
+	if(dojo.byId('reqlength'))
+		var length = dojo.byId('reqlength').value;
+	else
+		var length = 480;
+	var contid = dojo.byId('waitcontinuation').value;
+	var data = {continuation: contid,
+	            imageid: imageid,
+	            length: length,
+	            desconly: desconly};
+	if(! desconly)
+		dojo.byId('waittime').className = 'shown';
+	setLoading();
+	RPCwrapper(data, genericCB);
+}
+
+function setMaxRequestLength(minutes) {
+	var obj = dojo.byId('reqlength');
+	var i;
+	var text;
+	var newminutes;
+	var tmp;
+	for(i = obj.length - 1; i >= 0; i--) {
+		if(parseInt(obj.options[i].value) > minutes)
+			obj.options[i] = null;
+	}
+	for(i = obj.length - 1; obj.options[i].value < minutes; i++) {
+		// if last option is < 60, add 1 hr
+		if(parseInt(obj.options[i].value) < 60 &&
+			minutes >= 60) {
+			text = '1 hour';
+			newminutes = 60;
+		}
+		// else add in 2 hr chuncks up to max
+		else {
+			tmp = parseInt(obj.options[i].value);
+			if(tmp % 120)
+				tmp = tmp - (tmp % 120);
+			newminutes = tmp + 120;
+			if(newminutes < minutes)
+				text = (newminutes / 60) + ' hours';
+			else {
+				newminutes = minutes;
+				tmp = newminutes - (newminutes % 60);
+				if(newminutes % 60)
+					if(newminutes % 60 < 10)
+						text = (tmp / 60) + ':0' + (newminutes % 60) + ' hours';
+					else
+						text = (tmp / 60) + ':' + (newminutes % 60) + ' hours';
+				else
+					text = (tmp / 60) + ' hours';
+			}
+		}
+		obj.options[i + 1] = new Option(text, newminutes);
+	}
+}
+
+function updateMouseXY(e) {
+	if(e) {
+		mouseX = e.pageX;
+		mouseY = e.pageY;
+	}
+	else if(event) {
+		mouseX = event.clientX + document.documentElement.scrollLeft;
+		mouseY = event.clientY + document.documentElement.scrollTop;
+	}
+}
+
+function findPosX(obj) {
+	var curleft = 0;
+	if(obj.offsetParent)
+		while(1) {
+			curleft += obj.offsetLeft;
+			 if(!obj.offsetParent)
+				break;
+			obj = obj.offsetParent;
+		}
+	else if(obj.x)
+		curleft += obj.x;
+	return curleft;
+}
+
+function findPosY(obj) {
+	var curtop = 0;
+	if(obj.offsetParent)
+		while(1) {
+			curtop += obj.offsetTop;
+			if(!obj.offsetParent)
+				break;
+			obj = obj.offsetParent;
+		}
+	else if(obj.y)
+		curtop += obj.y;
+	return curtop;
+}
+
+function resRefresh() {
+	if(! dojo.byId('resRefreshCont'))
+		return;
+	var contid = dojo.byId('resRefreshCont').value;
+	var reqid = dojo.byId('detailreqid').value;
+	if(! dojo.widget.byId('resStatusPane')) {
+		window.location.reload();
+		return;
+	}
+	if(dojo.widget.byId('resStatusPane').windowState == 'minimized') {
+		var incdetails = 0;
+	}
+	else {
+		var incdetails = 1;
+	}
+	var data = {continuation: contid,
+	            incdetails: incdetails,
+	            reqid: reqid};
+	RPCwrapper(data, genericCB);
+}
+
+function showScriptOnly() {
+	if(!document.styleSheets)
+		return;
+	var cssobj = new Array();
+	if(document.styleSheets[0].cssRules)  // Standards Compliant
+		cssobj = document.styleSheets[0].cssRules;
+	else
+		cssobj = document.styleSheets[0].rules;  // IE 
+	var stop = 0;
+	for(var i = 0; i < cssobj.length; i++) {
+		if(cssobj[i].selectorText) {
+			if(cssobj[i].selectorText.toLowerCase() == '.scriptonly') {
+				//cssobj[i].style.display = "inline";
+				cssobj[i].style.cssText = "display: inline;";
+				stop++;
+			}
+			if(cssobj[i].selectorText.toLowerCase() == '.scriptoff') {
+				cssobj[i].style.cssText = "display: none;";
+				stop++;
+			}
+			if(stop > 1)
+				return;
+		}
+	}
+}
+
+function showGroupInfo(data, ioArgs) {
+   var members = data.items.members;
+   var mx = data.items.x;
+   var my = data.items.y;
+   var text = "";
+   for(var i = 0; i < members.length; i++) {
+      text = text + members[i] + '<br>';
+   }
+   var obj = document.getElementById('content');
+   var x = findPosX(obj);
+   var y = findPosY(obj);
+   obj = document.getElementById('listitems');
+   obj.innerHTML = text;
+   obj.style.left = mx - x - obj.clientWidth;
+   obj.style.top = my - y - obj.clientWidth;
+   obj.style.zIndex = 10;
+}