[Pkg-xmpp-commits] [SCM] jsjac package from xmpp team branch, upstream, updated. upstream/1.3.1-2-gb4e0f15

Thadeu Lima de Souza Cascardo cascardo at holoscopio.com
Sat Aug 21 03:32:25 UTC 2010


The following commit has been merged in the upstream branch:
commit b4e0f15cfdb8e69a0f82330e20d341c5aa03385f
Author: Thadeu Lima de Souza Cascardo <cascardo at holoscopio.com>
Date:   Fri Aug 20 23:29:38 2010 -0300

    Imported Upstream version 1.3.2+dfsg

diff --git a/doc/Date.html b/doc/Date.html
deleted file mode 100644
index baf01b2..0000000
--- a/doc/Date.html
+++ /dev/null
@@ -1,371 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-Date
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="Date";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <B>PREV CLASS</B><!-- 
-   NEXT CLASS 
--->
- <A HREF="Document.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class Date</H2>
-<PRE>Object
-   |
-   +--<b>Date</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>Date</B>
-   
-
-</DL>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#jabberDate">jabberDate</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 somewhat opposit to <a href="#!s!hrTime">hrTime()</a>
- expects a javascript Date object as parameter and returns a jabber
- date string conforming to
- <a href='http://www.xmpp.org/extensions/xep-0082.html'>XEP-0082</a>
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!hrTime">hrTime</A></B>(ts)
-	 </CODE>
-	 <BR>
-	           
-	 Takes a timestamp in the form of 2004-08-13T12:07:04+02:00 as argument
- and converts it to some sort of humane readable format
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> <a href="Date.html">Date</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!jab2date">jab2date</A></B>(<<a href="String.html">String</a>> ts)
-	 </CODE>
-	 <BR>
-	           
-	 Converts from jabber timestamps to JavaScript Date objects
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="jabberDate"><!-- --></A>
-   <H3>jabberDate</H3>
-   <PRE><a href="String.html">String</a> <B>jabberDate</B>()</PRE>
-   
-      <UL>somewhat opposit to <a href="#!s!hrTime">hrTime()</a>
- expects a javascript Date object as parameter and returns a jabber
- date string conforming to
- <a href='http://www.xmpp.org/extensions/xep-0082.html'>XEP-0082</a></UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The corresponding jabber DateTime string   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <UL>   
-   <B>See:</B><UL>- <a href="#!s!hrTime">hrTime()</a></UL>
-   </UL>
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!hrTime"><!-- --></A>
-   <H3>hrTime</H3>
-   <PRE><static> Object <B>hrTime</B>(ts)</PRE>
-   
-      <UL>Takes a timestamp in the form of 2004-08-13T12:07:04+02:00 as argument
- and converts it to some sort of humane readable format</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!jab2date"><!-- --></A>
-   <H3>jab2date</H3>
-   <PRE><static> <a href="Date.html">Date</a> <B>jab2date</B>(<<a href="String.html">String</a>> ts)</PRE>
-   
-      <UL>Converts from jabber timestamps to JavaScript Date objects</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>ts</CODE> -  A string representing a jabber datetime timestamp as  defined by <a href='http://www.xmpp.org/extensions/xep-0082.html'>XEP-0082</a>  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        A javascript Date object corresponding to the jabber DateTime given   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <B>PREV CLASS</B><!-- 
-   NEXT CLASS 
--->
- <A HREF="Document.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/Document.html b/doc/Document.html
deleted file mode 100644
index 891a9e9..0000000
--- a/doc/Document.html
+++ /dev/null
@@ -1,209 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-Document
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="Document";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="Date.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="GLOBALS.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class Document</H2>
-<PRE>Object
-   |
-   +--<b>Document</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>Document</B>
-   
-
-</DL>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="Date.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="GLOBALS.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/GLOBALS.html b/doc/GLOBALS.html
deleted file mode 100644
index b4e9529..0000000
--- a/doc/GLOBALS.html
+++ /dev/null
@@ -1,1618 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-GLOBALS
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="GLOBALS";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="Document.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCConnection.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class GLOBALS</H2>
-<PRE>Object
-   |
-   +--<b>GLOBALS</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>GLOBALS</B>
-   
-
-</DL>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!b64_hmac_md5">b64_hmac_md5</A></B>(key, data)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!b64_hmac_sha1">b64_hmac_sha1</A></B>(key, data)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!b64_md5">b64_md5</A></B>(s)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!b64_sha1">b64_sha1</A></B>(s)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> void</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!b64arrays">b64arrays</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!b64d2t">b64d2t</A></B>(d)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!b64t2d">b64t2d</A></B>(t)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!binb2b64">binb2b64</A></B>(binarray)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!binb2hex">binb2hex</A></B>(binarray)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!binb2str">binb2str</A></B>(bin)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!binl2b64">binl2b64</A></B>(binarray)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!binl2hex">binl2hex</A></B>(binarray)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!binl2str">binl2str</A></B>(bin)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!bit_rol">bit_rol</A></B>(num, cnt)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!cnonce">cnonce</A></B>(size)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!core_hmac_md5">core_hmac_md5</A></B>(key, data)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!core_hmac_sha1">core_hmac_sha1</A></B>(key, data)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!core_md5">core_md5</A></B>(x, len)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!core_sha1">core_sha1</A></B>(x, len)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!hex_hmac_md5">hex_hmac_md5</A></B>(key, data)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!hex_hmac_sha1">hex_hmac_sha1</A></B>(key, data)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!hex_md5">hex_md5</A></B>(s)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!hex_sha1">hex_sha1</A></B>(s)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!md5_cmn">md5_cmn</A></B>(q, a, b, x, s, t)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!md5_ff">md5_ff</A></B>(a, b, c, d, x, s, t)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!md5_gg">md5_gg</A></B>(a, b, c, d, x, s, t)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!md5_hh">md5_hh</A></B>(a, b, c, d, x, s, t)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!md5_ii">md5_ii</A></B>(a, b, c, d, x, s, t)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!md5_vm_test">md5_vm_test</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!rol">rol</A></B>(num, cnt)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!safe_add">safe_add</A></B>(x, y)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!sha1_ft">sha1_ft</A></B>(t, b, c, d)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!sha1_kt">sha1_kt</A></B>(t)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!sha1_vm_test">sha1_vm_test</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!str2binb">str2binb</A></B>(str)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!str2binl">str2binl</A></B>(str)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!str_hmac_md5">str_hmac_md5</A></B>(key, data)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!str_hmac_sha1">str_hmac_sha1</A></B>(key, data)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!str_md5">str_md5</A></B>(s)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!str_sha1">str_sha1</A></B>(s)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!utf8d2t">utf8d2t</A></B>(d)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!utf8t2d">utf8t2d</A></B>(t)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="!s!b64_hmac_md5"><!-- --></A>
-   <H3>b64_hmac_md5</H3>
-   <PRE><static> Object <B>b64_hmac_md5</B>(key, data)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!b64_hmac_sha1"><!-- --></A>
-   <H3>b64_hmac_sha1</H3>
-   <PRE><static> Object <B>b64_hmac_sha1</B>(key, data)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!b64_md5"><!-- --></A>
-   <H3>b64_md5</H3>
-   <PRE><static> Object <B>b64_md5</B>(s)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!b64_sha1"><!-- --></A>
-   <H3>b64_sha1</H3>
-   <PRE><static> Object <B>b64_sha1</B>(s)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!b64arrays"><!-- --></A>
-   <H3>b64arrays</H3>
-   <PRE><static> void <B>b64arrays</B>()</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!b64d2t"><!-- --></A>
-   <H3>b64d2t</H3>
-   <PRE><static> Object <B>b64d2t</B>(d)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!b64t2d"><!-- --></A>
-   <H3>b64t2d</H3>
-   <PRE><static> Object <B>b64t2d</B>(t)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!binb2b64"><!-- --></A>
-   <H3>binb2b64</H3>
-   <PRE><static> Object <B>binb2b64</B>(binarray)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!binb2hex"><!-- --></A>
-   <H3>binb2hex</H3>
-   <PRE><static> Object <B>binb2hex</B>(binarray)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!binb2str"><!-- --></A>
-   <H3>binb2str</H3>
-   <PRE><static> Object <B>binb2str</B>(bin)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!binl2b64"><!-- --></A>
-   <H3>binl2b64</H3>
-   <PRE><static> Object <B>binl2b64</B>(binarray)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!binl2hex"><!-- --></A>
-   <H3>binl2hex</H3>
-   <PRE><static> Object <B>binl2hex</B>(binarray)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!binl2str"><!-- --></A>
-   <H3>binl2str</H3>
-   <PRE><static> Object <B>binl2str</B>(bin)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!bit_rol"><!-- --></A>
-   <H3>bit_rol</H3>
-   <PRE><static> Object <B>bit_rol</B>(num, cnt)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!cnonce"><!-- --></A>
-   <H3>cnonce</H3>
-   <PRE><static> Object <B>cnonce</B>(size)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!core_hmac_md5"><!-- --></A>
-   <H3>core_hmac_md5</H3>
-   <PRE><static> Object <B>core_hmac_md5</B>(key, data)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!core_hmac_sha1"><!-- --></A>
-   <H3>core_hmac_sha1</H3>
-   <PRE><static> Object <B>core_hmac_sha1</B>(key, data)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!core_md5"><!-- --></A>
-   <H3>core_md5</H3>
-   <PRE><static> Object <B>core_md5</B>(x, len)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!core_sha1"><!-- --></A>
-   <H3>core_sha1</H3>
-   <PRE><static> Object <B>core_sha1</B>(x, len)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!hex_hmac_md5"><!-- --></A>
-   <H3>hex_hmac_md5</H3>
-   <PRE><static> Object <B>hex_hmac_md5</B>(key, data)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!hex_hmac_sha1"><!-- --></A>
-   <H3>hex_hmac_sha1</H3>
-   <PRE><static> Object <B>hex_hmac_sha1</B>(key, data)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!hex_md5"><!-- --></A>
-   <H3>hex_md5</H3>
-   <PRE><static> Object <B>hex_md5</B>(s)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!hex_sha1"><!-- --></A>
-   <H3>hex_sha1</H3>
-   <PRE><static> Object <B>hex_sha1</B>(s)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!md5_cmn"><!-- --></A>
-   <H3>md5_cmn</H3>
-   <PRE><static> Object <B>md5_cmn</B>(q, a, b, x, s, t)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!md5_ff"><!-- --></A>
-   <H3>md5_ff</H3>
-   <PRE><static> Object <B>md5_ff</B>(a, b, c, d, x, s, t)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!md5_gg"><!-- --></A>
-   <H3>md5_gg</H3>
-   <PRE><static> Object <B>md5_gg</B>(a, b, c, d, x, s, t)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!md5_hh"><!-- --></A>
-   <H3>md5_hh</H3>
-   <PRE><static> Object <B>md5_hh</B>(a, b, c, d, x, s, t)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!md5_ii"><!-- --></A>
-   <H3>md5_ii</H3>
-   <PRE><static> Object <B>md5_ii</B>(a, b, c, d, x, s, t)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!md5_vm_test"><!-- --></A>
-   <H3>md5_vm_test</H3>
-   <PRE><static> Object <B>md5_vm_test</B>()</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!rol"><!-- --></A>
-   <H3>rol</H3>
-   <PRE><static> Object <B>rol</B>(num, cnt)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!safe_add"><!-- --></A>
-   <H3>safe_add</H3>
-   <PRE><static> Object <B>safe_add</B>(x, y)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!sha1_ft"><!-- --></A>
-   <H3>sha1_ft</H3>
-   <PRE><static> Object <B>sha1_ft</B>(t, b, c, d)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!sha1_kt"><!-- --></A>
-   <H3>sha1_kt</H3>
-   <PRE><static> Object <B>sha1_kt</B>(t)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!sha1_vm_test"><!-- --></A>
-   <H3>sha1_vm_test</H3>
-   <PRE><static> Object <B>sha1_vm_test</B>()</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!str2binb"><!-- --></A>
-   <H3>str2binb</H3>
-   <PRE><static> Object <B>str2binb</B>(str)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!str2binl"><!-- --></A>
-   <H3>str2binl</H3>
-   <PRE><static> Object <B>str2binl</B>(str)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!str_hmac_md5"><!-- --></A>
-   <H3>str_hmac_md5</H3>
-   <PRE><static> Object <B>str_hmac_md5</B>(key, data)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!str_hmac_sha1"><!-- --></A>
-   <H3>str_hmac_sha1</H3>
-   <PRE><static> Object <B>str_hmac_sha1</B>(key, data)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!str_md5"><!-- --></A>
-   <H3>str_md5</H3>
-   <PRE><static> Object <B>str_md5</B>(s)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!str_sha1"><!-- --></A>
-   <H3>str_sha1</H3>
-   <PRE><static> Object <B>str_sha1</B>(s)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!utf8d2t"><!-- --></A>
-   <H3>utf8d2t</H3>
-   <PRE><static> Object <B>utf8d2t</B>(d)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!utf8t2d"><!-- --></A>
-   <H3>utf8t2d</H3>
-   <PRE><static> Object <B>utf8t2d</B>(t)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="Document.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCConnection.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/JSJaCConnection.html b/doc/JSJaCConnection.html
deleted file mode 100644
index 1c7aa82..0000000
--- a/doc/JSJaCConnection.html
+++ /dev/null
@@ -1,962 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-JSJaCConnection
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaCConnection";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCConnection.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="GLOBALS.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCConsoleLogger.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class JSJaCConnection</H2>
-<PRE>Object
-   |
-   +--<b>JSJaCConnection</b>
-</PRE>
-
-   
-      <DL>
-      <DT>
-         <B>Direct Known Subclasses:</B> 
-         <DD>
-                  <a href='JSJaCHttpPollingConnection.html'>JSJaCHttpPollingConnection</a>, <a href='JSJaCHttpBindingConnection.html'>JSJaCHttpBindingConnection</a>
-         </DD>
-      </DL>
-   
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>JSJaCConnection</B>
-   
-
-</DL>
-   
-   <P>
-   <BR/>Somewhat abstract base class for jabber connections. Contains all
- of the code in common for all jabber connections
- <BR/><I>Defined in <a href='overview-summary-JSJaCConnection.js.html'>JSJaCConnection.js</a></I><BR/><BR/>
-   </P>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-   <A NAME="field_summary"><!-- --></A>
-      <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-         <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-            <TD COLSPAN=2><FONT SIZE="+2">
-               <B>Field Summary</B></FONT></TD>
-         </TR>
-
-   <!-- This is one instance field summary -->
-   
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-   <CODE> Debugger</CODE></FONT></TD>
-   <TD><CODE><B><A HREF="#oDbg">oDbg</A></B></CODE>
-   <BR>
-             Reference to debugger interface
-(needs to implement method <code>log</code>)</TD>
-   </TR>
-   
-
-   </TABLE>
-    
-   
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD>
-      <CODE>
-	 <B>
-	    <A HREF="#JSJaCConnection()">JSJaCConnection</A></B>(<<a href="http://www.json.org/index.html">JSON</a>> oArg)
-      </CODE>
-      <BR>
-                 
-      Creates a new Jabber connection (a connection to a jabber server)
-      </TD>
-</TR>
-</TABLE>
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> void</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#connect">connect</A></B>(oArg)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> boolean</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#connected">connected</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Tells whether this connection is connected
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> void</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#disconnect">disconnect</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Disconnects from jabber server and terminates session (if applicable)
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> int</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getPollInterval">getPollInterval</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets current value of polling interval
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> void</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#registerHandler">registerHandler</A></B>(<<a href="String.html">String</a>> event)
-	 </CODE>
-	 <BR>
-	           
-	 Registers an event handler (callback) for this connection.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> void</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#registerIQGet">registerIQGet</A></B>(<<a href="String.html">String</a>> childName, <<a href="String.html">String</a>> childNS, <Function> handler)
-	 </CODE>
-	 <BR>
-	           
-	 Register for iq packets of type 'get'.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> void</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#registerIQSet">registerIQSet</A></B>(<<a href="String.html">String</a>> childName, <<a href="String.html">String</a>> childNS, <Function> handler)
-	 </CODE>
-	 <BR>
-	           
-	 Register for iq packets of type 'set'.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> boolean</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#resume">resume</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Resumes this connection from saved state (cookie)
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> boolean</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#send">send</A></B>(<<a href="JSJaCPacket.html">JSJaCPacket</a>> packet,<Function> cb,<Object> arg)
-	 </CODE>
-	 <BR>
-	           
-	 Sends a JSJaCPacket
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> boolean</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#sendIQ">sendIQ</A></B>(<JSJaCIQPacket> iq, <Object> handlers, <Object> arg)
-	 </CODE>
-	 <BR>
-	           
-	 Sends an IQ packet.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> int</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setPollInterval">setPollInterval</A></B>(timerval)
-	 </CODE>
-	 <BR>
-	           
-	 Sets polling interval for this connection
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#status">status</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Returns current status of this connection
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> void</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#suspend">suspend</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Suspsends this connection (saving state for later resume)
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> void</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#unregisterHandler">unregisterHandler</A></B>(event,handler)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-   <A NAME="field_detail"><!-- --></A>
-   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-      <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-         <TD COLSPAN=1><FONT SIZE="+2"><B>Field Detail</B></FONT></TD>
-      </TR>
-   </TABLE>
-
-   
-   <A NAME="oDbg"><!-- --></A>
-   <H3>oDbg</H3>
-   <PRE>Debugger <B>oDbg</B></PRE>
-   <UL>
-   Reference to debugger interface
-(needs to implement method <code>log</code>)
-   
-   </UL>
-   <HR>
-   
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1>
-      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<A NAME="JSJaCConnection()"><!-- --></A><H3>
-JSJaCConnection</H3>
-<PRE><B>JSJaCConnection</B>(<<a href="http://www.json.org/index.html">JSON</a>> oArg)</PRE>
-
-
-<UL>
-   Creates a new Jabber connection (a connection to a jabber server)
-</UL>
-
-
-
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>oArg</CODE> -  JSON with properties: <br>  * <code>httpbase</code> the http base address of the service to be used for  connecting to jabber<br>  * <code>oDbg</code> (optional) a reference to a debugger interface
-     </UL>
-   
-   
-   </UL>
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="connect"><!-- --></A>
-   <H3>connect</H3>
-   <PRE>void <B>connect</B>(oArg)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="connected"><!-- --></A>
-   <H3>connected</H3>
-   <PRE>boolean <B>connected</B>()</PRE>
-   
-      <UL>Tells whether this connection is connected</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        <code>true</code> if this connections is connected,  <code>false</code> otherwise   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="disconnect"><!-- --></A>
-   <H3>disconnect</H3>
-   <PRE>void <B>disconnect</B>()</PRE>
-   
-      <UL>Disconnects from jabber server and terminates session (if applicable)</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getPollInterval"><!-- --></A>
-   <H3>getPollInterval</H3>
-   <PRE>int <B>getPollInterval</B>()</PRE>
-   
-      <UL>Gets current value of polling interval</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        Polling interval in milliseconds   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="registerHandler"><!-- --></A>
-   <H3>registerHandler</H3>
-   <PRE>void <B>registerHandler</B>(<<a href="String.html">String</a>> event)</PRE>
-   
-      <UL>Registers an event handler (callback) for this connection.
- <p>Note: All of the packet handlers for specific packets (like
- message_in, presence_in and iq_in) fire only if there's no
- callback associated with the id.<br>
- <p>Example:<br/>
- <code>con.registerHandler('iq', 'query', 'jabber:iq:version', handleIqVersion);</code></UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>event</CODE> -  One of  <ul>  <li>onConnect - connection has been established and authenticated</li>  <li>onDisconnect - connection has been disconnected</li>  <li>onResume - connection has been resumed</li>  <li>onStatusChanged - connection status has changed, current  status as being passed argument to handler. See <a href="#status">status()</a>.</li>  <li>onError - an error has occured, error node is supplied as  argument, like this:<br><code><error code='404' type='cancel'><br>  <item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><br>  </error></code></li>  <li>packet_in - a packet has been received (argument: the  packet)</li>  <li>packet_out - a packet is to be sent(argument: the  packet)</li>  <li>message_in | message - a message has been received (argument:  the packet)</li>  <li>message_out - a message packet is to be sent (argument: the  packet)</li>  <li>presence_in | presence - a presence has been received  (argument: the packet)</li>  <li>presence_out - a presence packet is to be sent (argument: the  packet)</li>  <li>iq_in | iq - an iq has been received (argument: the packet)</li>  <li>iq_out - an iq is to be sent (argument: the packet)</li>  </ul>  
-      </UL> 
-   
-     <UL><CODE>childName</CODE> -  A childnode's name that must occur within a  retrieved packet [optional]  
-      </UL> 
-   
-     <UL><CODE>childNS</CODE> -  A childnode's namespace that must occure within  a retrieved packet (works only if childName is given) [optional]  
-      </UL> 
-   
-     <UL><CODE>type</CODE> -  The type of the packet to handle (works only if childName and chidNS are given (both may be set to '*' in order to get skipped) [optional]  
-      </UL> 
-   
-     <UL><CODE>handler</CODE> -  The handler to be called when event occurs. If your handler returns 'true' it cancels bubbling of the event. No other registered handlers for this event will be fired.    
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="registerIQGet"><!-- --></A>
-   <H3>registerIQGet</H3>
-   <PRE>void <B>registerIQGet</B>(<<a href="String.html">String</a>> childName, <<a href="String.html">String</a>> childNS, <Function> handler)</PRE>
-   
-      <UL>Register for iq packets of type 'get'.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>childName</CODE> -  A childnode's name that must occur within a  retrieved packet  
-      </UL> 
-   
-     <UL><CODE>childNS</CODE> -  A childnode's namespace that must occure within  a retrieved packet (works only if childName is given)  
-      </UL> 
-   
-     <UL><CODE>handler</CODE> -  The handler to be called when event occurs. If your handler returns 'true' it cancels bubbling of the event. No other registered handlers for this event will be fired.    
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="registerIQSet"><!-- --></A>
-   <H3>registerIQSet</H3>
-   <PRE>void <B>registerIQSet</B>(<<a href="String.html">String</a>> childName, <<a href="String.html">String</a>> childNS, <Function> handler)</PRE>
-   
-      <UL>Register for iq packets of type 'set'.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>childName</CODE> -  A childnode's name that must occur within a  retrieved packet  
-      </UL> 
-   
-     <UL><CODE>childNS</CODE> -  A childnode's namespace that must occure within  a retrieved packet (works only if childName is given)  
-      </UL> 
-   
-     <UL><CODE>handler</CODE> -  The handler to be called when event occurs. If your handler returns 'true' it cancels bubbling of the event. No other registered handlers for this event will be fired.    
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="resume"><!-- --></A>
-   <H3>resume</H3>
-   <PRE>boolean <B>resume</B>()</PRE>
-   
-      <UL>Resumes this connection from saved state (cookie)</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        Whether resume was successful   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="send"><!-- --></A>
-   <H3>send</H3>
-   <PRE>boolean <B>send</B>(<<a href="JSJaCPacket.html">JSJaCPacket</a>> packet,<Function> cb,<Object> arg)</PRE>
-   
-      <UL>Sends a JSJaCPacket</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>packet</CODE> -   The packet to send  
-      </UL> 
-   
-     <UL><CODE>cb</CODE> -       The callback to be called if there's a reply  to this packet (identified by id) [optional]  
-      </UL> 
-   
-     <UL><CODE>arg</CODE> -      Arguments passed to the callback  (additionally to the packet received) [optional]  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        'true' if sending was successfull, 'false' otherwise   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="sendIQ"><!-- --></A>
-   <H3>sendIQ</H3>
-   <PRE>boolean <B>sendIQ</B>(<JSJaCIQPacket> iq, <Object> handlers, <Object> arg)</PRE>
-   
-      <UL>Sends an IQ packet. Has default handlers for each reply type.
- Those maybe overriden by passing an appropriate handler.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>iq</CODE> -  - the iq packet to send  
-      </UL> 
-   
-     <UL><CODE>handlers</CODE> -  - object with properties 'error_handler',                             'result_handler' and 'default_handler'                             with appropriate functions  
-      </UL> 
-   
-     <UL><CODE>arg</CODE> -  - argument to handlers  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        'true' if sending was successfull, 'false' otherwise   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setPollInterval"><!-- --></A>
-   <H3>setPollInterval</H3>
-   <PRE>int <B>setPollInterval</B>(timerval)</PRE>
-   
-      <UL>Sets polling interval for this connection</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>millisecs</CODE> -  Milliseconds to set timer to  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        effective interval this connection has been set to   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="status"><!-- --></A>
-   <H3>status</H3>
-   <PRE><a href="String.html">String</a> <B>status</B>()</PRE>
-   
-      <UL>Returns current status of this connection</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        String to denote current state. One of  <ul>  <li>'initializing' ... well  <li>'connecting' if connect() was called  <li>'resuming' if resume() was called  <li>'processing' if it's about to operate as normal  <li>'onerror_fallback' if there was an error with the request object  <li>'protoerror_fallback' if there was an error at the http binding protocol flow (most likely that's where you interested in)  <li>'internal_server_error' in case of an internal server error  <li>'suspending' if suspend() is being called  <li>'aborted' if abort() was called  <li>'disconnecting' if disconnect() has been called  </ul>   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="suspend"><!-- --></A>
-   <H3>suspend</H3>
-   <PRE>void <B>suspend</B>()</PRE>
-   
-      <UL>Suspsends this connection (saving state for later resume)</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="unregisterHandler"><!-- --></A>
-   <H3>unregisterHandler</H3>
-   <PRE>void <B>unregisterHandler</B>(event,handler)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCConnection.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="GLOBALS.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCConsoleLogger.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/JSJaCConsoleLogger.html b/doc/JSJaCConsoleLogger.html
deleted file mode 100644
index 261f930..0000000
--- a/doc/JSJaCConsoleLogger.html
+++ /dev/null
@@ -1,457 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-JSJaCConsoleLogger
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaCConsoleLogger";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCConsoleLogger.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCConnection.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCCookie.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class JSJaCConsoleLogger</H2>
-<PRE>Object
-   |
-   +--<b>JSJaCConsoleLogger</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>JSJaCConsoleLogger</B>
-   
-
-</DL>
-   
-   <P>
-   <BR/>Implementation of the Debugger interface for <a href='http://www.getfirebug.com/'>Firebug</a> and Safari
- Creates a new debug logger to be passed to jsjac's connection
- constructor. Of course you can use it for debugging in your code
- too.
- <BR/><I>Defined in <a href='overview-summary-JSJaCConsoleLogger.js.html'>JSJaCConsoleLogger.js</a></I><BR/><BR/>
-   </P>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD>
-      <CODE>
-	 <B>
-	    <A HREF="#JSJaCConsoleLogger()">JSJaCConsoleLogger</A></B>(<int> level)
-      </CODE>
-      <BR>
-                 
-      
-      </TD>
-</TR>
-</TABLE>
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> int</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getLevel">getLevel</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets verbosity level.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> void</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#log">log</A></B>(<<a href="String.html">String</a>> msg, <int> level)
-	 </CODE>
-	 <BR>
-	           
-	 Logs a message to firebug's/safari's console
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> ConsoleLogger</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setLevel">setLevel</A></B>(<int> level)
-	 </CODE>
-	 <BR>
-	           
-	 Sets verbosity level.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> void</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#start">start</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Empty function for API compatibility
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1>
-      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<A NAME="JSJaCConsoleLogger()"><!-- --></A><H3>
-JSJaCConsoleLogger</H3>
-<PRE><B>JSJaCConsoleLogger</B>(<int> level)</PRE>
-
-
-
-
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>level</CODE> -  The maximum level for debugging messages to be  displayed. Thus you can tweak the verbosity of the logger. A value  of 0 means very low traffic whilst a value of 4 makes logging very  verbose about what's going on.
-     </UL>
-   
-   
-   </UL>
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="getLevel"><!-- --></A>
-   <H3>getLevel</H3>
-   <PRE>int <B>getLevel</B>()</PRE>
-   
-      <UL>Gets verbosity level.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The level   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="log"><!-- --></A>
-   <H3>log</H3>
-   <PRE>void <B>log</B>(<<a href="String.html">String</a>> msg, <int> level)</PRE>
-   
-      <UL>Logs a message to firebug's/safari's console</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>msg</CODE> -  The message to be logged.  
-      </UL> 
-   
-     <UL><CODE>level</CODE> -  The message's verbosity level. Importance is  from 0 (very important) to 4 (not so important). A value of 1  denotes an error in the usual protocol flow.      
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setLevel"><!-- --></A>
-   <H3>setLevel</H3>
-   <PRE>ConsoleLogger <B>setLevel</B>(<int> level)</PRE>
-   
-      <UL>Sets verbosity level.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>level</CODE> -  The maximum level for debugging messages to be  displayed. Thus you can tweak the verbosity of the logger. A  value of 0 means very low traffic whilst a value of 4 makes  logging very verbose about what's going on.  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        This debug logger   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="start"><!-- --></A>
-   <H3>start</H3>
-   <PRE>void <B>start</B>()</PRE>
-   
-      <UL>Empty function for API compatibility</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCConsoleLogger.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCConnection.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCCookie.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/JSJaCCookie.html b/doc/JSJaCCookie.html
deleted file mode 100644
index 07e42be..0000000
--- a/doc/JSJaCCookie.html
+++ /dev/null
@@ -1,780 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-JSJaCCookie
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaCCookie";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCCookie.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCConsoleLogger.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCCookieException.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class JSJaCCookie</H2>
-<PRE>Object
-   |
-   +--<b>JSJaCCookie</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>JSJaCCookie</B>
-   
-
-</DL>
-   
-   <P>
-   <BR/>Class representing browser cookies for storing small amounts of data
- <BR/><I>Defined in <a href='overview-summary-JSJaCCookie.js.html'>JSJaCCookie.js</a></I><BR/><BR/>
-   </P>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-   <A NAME="field_summary"><!-- --></A>
-      <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-         <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-            <TD COLSPAN=2><FONT SIZE="+2">
-               <B>Field Summary</B></FONT></TD>
-         </TR>
-
-   <!-- This is one instance field summary -->
-   
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-   <CODE> <a href="String.html">String</a></CODE></FONT></TD>
-   <TD><CODE><B><A HREF="#name">name</A></B></CODE>
-   <BR>
-             This cookie's name</TD>
-   </TR>
-   
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-   <CODE> int</CODE></FONT></TD>
-   <TD><CODE><B><A HREF="#secs">secs</A></B></CODE>
-   <BR>
-             Time in seconds when cookie expires (thus being delete by
- browser).</TD>
-   </TR>
-   
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-   <CODE> <a href="String.html">String</a></CODE></FONT></TD>
-   <TD><CODE><B><A HREF="#value">value</A></B></CODE>
-   <BR>
-             This cookie's value</TD>
-   </TR>
-   
-
-   </TABLE>
-    
-   
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD>
-      <CODE>
-	 <B>
-	    <A HREF="#JSJaCCookie()">JSJaCCookie</A></B>(<<a href="String.html">String</a>> name,<<a href="String.html">String</a>> value,<int> secs)
-      </CODE>
-      <BR>
-                 
-      Creates a new Cookie
-      </TD>
-</TR>
-</TABLE>
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> void</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#erase">erase</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Deletes this cookie
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getName">getName</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the name of this cookie
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getValue">getValue</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the value of this cookie
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> Cookie</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setName">setName</A></B>(<<a href="String.html">String</a>> name)
-	 </CODE>
-	 <BR>
-	           
-	 Sets the name of this cookie
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> Cookie</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setValue">setValue</A></B>(<<a href="String.html">String</a>> value)
-	 </CODE>
-	 <BR>
-	           
-	 Sets the value of this cookie
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> void</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#write">write</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Stores this cookie
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!get">get</A></B>(<<a href="String.html">String</a>> name)
-	 </CODE>
-	 <BR>
-	           
-	 Reads the value for given <code>name</code> from cookies and returns
- its valued new
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Cookie</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!read">read</A></B>(<<a href="String.html">String</a>> name)
-	 </CODE>
-	 <BR>
-	           
-	 Reads the value for given <code>name</code> from cookies and return new
- <code>Cookie</code> object
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> void</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!remove">remove</A></B>(<<a href="String.html">String</a>> name)
-	 </CODE>
-	 <BR>
-	           
-	 Deletes cookie with given <code>name</code>
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-   <A NAME="field_detail"><!-- --></A>
-   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-      <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-         <TD COLSPAN=1><FONT SIZE="+2"><B>Field Detail</B></FONT></TD>
-      </TR>
-   </TABLE>
-
-   
-   <A NAME="name"><!-- --></A>
-   <H3>name</H3>
-   <PRE><a href="String.html">String</a> <B>name</B></PRE>
-   <UL>
-   This cookie's name
-   
-   </UL>
-   <HR>
-   
-   <A NAME="secs"><!-- --></A>
-   <H3>secs</H3>
-   <PRE>int <B>secs</B></PRE>
-   <UL>
-   Time in seconds when cookie expires (thus being delete by
- browser). A value of -1 denotes a session cookie which means that
- stored data gets lost when browser is being closed.
-   
-   </UL>
-   <HR>
-   
-   <A NAME="value"><!-- --></A>
-   <H3>value</H3>
-   <PRE><a href="String.html">String</a> <B>value</B></PRE>
-   <UL>
-   This cookie's value
-   
-   </UL>
-   <HR>
-   
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1>
-      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<A NAME="JSJaCCookie()"><!-- --></A><H3>
-JSJaCCookie</H3>
-<PRE><B>JSJaCCookie</B>(<<a href="String.html">String</a>> name,<<a href="String.html">String</a>> value,<int> secs)</PRE>
-
-
-<UL>
-   Creates a new Cookie
-</UL>
-
-
-
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>name</CODE> -   The name of the value to store  
-     </UL>
-   
-     <UL><CODE>value</CODE> -  The value to store  
-     </UL>
-   
-     <UL><CODE>secs</CODE> -   Number of seconds until cookie expires (may be empty)    
-     </UL>
-   
-   
-   </UL>
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="erase"><!-- --></A>
-   <H3>erase</H3>
-   <PRE>void <B>erase</B>()</PRE>
-   
-      <UL>Deletes this cookie</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getName"><!-- --></A>
-   <H3>getName</H3>
-   <PRE><a href="String.html">String</a> <B>getName</B>()</PRE>
-   
-      <UL>Gets the name of this cookie</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The name   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getValue"><!-- --></A>
-   <H3>getValue</H3>
-   <PRE><a href="String.html">String</a> <B>getValue</B>()</PRE>
-   
-      <UL>Gets the value of this cookie</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The value   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setName"><!-- --></A>
-   <H3>setName</H3>
-   <PRE>Cookie <B>setName</B>(<<a href="String.html">String</a>> name)</PRE>
-   
-      <UL>Sets the name of this cookie</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>name</CODE> -  The name for this cookie  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        This cookie   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setValue"><!-- --></A>
-   <H3>setValue</H3>
-   <PRE>Cookie <B>setValue</B>(<<a href="String.html">String</a>> value)</PRE>
-   
-      <UL>Sets the value of this cookie</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>value</CODE> -  The value for this cookie  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        This cookie   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="write"><!-- --></A>
-   <H3>write</H3>
-   <PRE>void <B>write</B>()</PRE>
-   
-      <UL>Stores this cookie</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!get"><!-- --></A>
-   <H3>get</H3>
-   <PRE><static> <a href="String.html">String</a> <B>get</B>(<<a href="String.html">String</a>> name)</PRE>
-   
-      <UL>Reads the value for given <code>name</code> from cookies and returns
- its valued new</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>name</CODE> -  The name of the cookie to read  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The value of the cookie read   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <UL>   
-   <B>Throws:</B><UL>- CookieException when cookie with given name could not be found</UL>
-   </UL>
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!read"><!-- --></A>
-   <H3>read</H3>
-   <PRE><static> Cookie <B>read</B>(<<a href="String.html">String</a>> name)</PRE>
-   
-      <UL>Reads the value for given <code>name</code> from cookies and return new
- <code>Cookie</code> object</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>name</CODE> -  The name of the cookie to read  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        A cookie object of the given name   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <UL>   
-   <B>Throws:</B><UL>- CookieException when cookie with given name could not be found</UL>
-   </UL>
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!remove"><!-- --></A>
-   <H3>remove</H3>
-   <PRE><static> void <B>remove</B>(<<a href="String.html">String</a>> name)</PRE>
-   
-      <UL>Deletes cookie with given <code>name</code></UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>name</CODE> -  The name of the cookie to delete  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <UL>   
-   <B>Throws:</B><UL>- CookieException when cookie with given name could not be found    </UL>
-   </UL>
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCCookie.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCConsoleLogger.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCCookieException.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/JSJaCCookieException.html b/doc/JSJaCCookieException.html
deleted file mode 100644
index 7d04b27..0000000
--- a/doc/JSJaCCookieException.html
+++ /dev/null
@@ -1,317 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-JSJaCCookieException
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaCCookieException";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCCookie.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCCookie.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCHttpBindingConnection.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class JSJaCCookieException</H2>
-<PRE>Object
-   |
-   +--<b>JSJaCCookieException</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>JSJaCCookieException</B>
-   
-
-</DL>
-   
-   <P>
-   <I>Defined in <a href='overview-summary-JSJaCCookie.js.html'>JSJaCCookie.js</a></I><BR/><BR/>
-   </P>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-   <A NAME="field_summary"><!-- --></A>
-      <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-         <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-            <TD COLSPAN=2><FONT SIZE="+2">
-               <B>Field Summary</B></FONT></TD>
-         </TR>
-
-   <!-- This is one instance field summary -->
-   
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-   <CODE> Object</CODE></FONT></TD>
-   <TD><CODE><B><A HREF="#message">message</A></B></CODE>
-   <BR>
-             </TD>
-   </TR>
-   
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-   <CODE> Object</CODE></FONT></TD>
-   <TD><CODE><B><A HREF="#name">name</A></B></CODE>
-   <BR>
-             </TD>
-   </TR>
-   
-
-   </TABLE>
-    
-   
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD>
-      <CODE>
-	 <B>
-	    <A HREF="#JSJaCCookieException()">JSJaCCookieException</A></B>(<<a href="String.html">String</a>> msg)
-      </CODE>
-      <BR>
-                 
-      Some exception denoted to dealing with cookies
-      </TD>
-</TR>
-</TABLE>
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-   <A NAME="field_detail"><!-- --></A>
-   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-      <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-         <TD COLSPAN=1><FONT SIZE="+2"><B>Field Detail</B></FONT></TD>
-      </TR>
-   </TABLE>
-
-   
-   <A NAME="message"><!-- --></A>
-   <H3>message</H3>
-   <PRE>Object <B>message</B></PRE>
-   <UL>
-   
-   
-   </UL>
-   <HR>
-   
-   <A NAME="name"><!-- --></A>
-   <H3>name</H3>
-   <PRE>Object <B>name</B></PRE>
-   <UL>
-   
-   
-   </UL>
-   <HR>
-   
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1>
-      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<A NAME="JSJaCCookieException()"><!-- --></A><H3>
-JSJaCCookieException</H3>
-<PRE><B>JSJaCCookieException</B>(<<a href="String.html">String</a>> msg)</PRE>
-
-
-<UL>
-   Some exception denoted to dealing with cookies
-</UL>
-
-
-
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>msg</CODE> -  The message to pass to the exception    
-     </UL>
-   
-   
-   </UL>
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCCookie.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCCookie.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCHttpBindingConnection.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/JSJaCHttpBindingConnection.html b/doc/JSJaCHttpBindingConnection.html
deleted file mode 100644
index 9efe407..0000000
--- a/doc/JSJaCHttpBindingConnection.html
+++ /dev/null
@@ -1,425 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-JSJaCHttpBindingConnection
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaCHttpBindingConnection";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCHttpBindingConnection.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCCookieException.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCHttpPollingConnection.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class JSJaCHttpBindingConnection</H2>
-<PRE>Object
-   |
-   +--<a href='JSJaCConnection.html'>JSJaCConnection</a>
-         |
-         +--<b>JSJaCHttpBindingConnection</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>JSJaCHttpBindingConnection</B>
-   
-      <DT>extends <a href='JSJaCConnection.html'>JSJaCConnection</a> 
-   
-
-</DL>
-   
-   <P>
-   <BR/>Implementation of <a href='http://www.xmpp.org/extensions/xep-0206.html'>XMPP Over BOSH</a>
- formerly known as HTTP Binding.
- <BR/><I>Defined in <a href='overview-summary-JSJaCHttpBindingConnection.js.html'>JSJaCHttpBindingConnection.js</a></I><BR/><BR/>
-   </P>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-   
-   
-    <A NAME=""><!-- --></A>
-   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-   <TD><B>Fields inherited from class <A HREF="JSJaCConnection.html">JSJaCConnection</A></B></TD>
-   </TR>
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD><CODE>
-   <a href='JSJaCConnection.html#oDbg'>oDbg</a>
-   </CODE></TD>
-   </TR>
-</TABLE>
- 
-
-
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD>
-      <CODE>
-	 <B>
-	    <A HREF="#JSJaCHttpBindingConnection()">JSJaCHttpBindingConnection</A></B>(oArg)
-      </CODE>
-      <BR>
-                 
-      Instantiates an HTTP Binding session
-      </TD>
-</TR>
-</TABLE>
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> void</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#inherit">inherit</A></B>(oArg)
-	 </CODE>
-	 <BR>
-	           
-	 Inherit an instantiated HTTP Binding session
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> boolean</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#isPolling">isPolling</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 whether this session is in polling mode
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setPollInterval">setPollInterval</A></B>(<int> timerval)
-	 </CODE>
-	 <BR>
-	           
-	 Sets poll interval
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class <a href="JSJaCConnection.html">JSJaCConnection</a></B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>
-<!-- Inherited methods -->
-<a href='JSJaCConnection.html#connect'>connect</a>, <a href='JSJaCConnection.html#connected'>connected</a>, <a href='JSJaCConnection.html#disconnect'>disconnect</a>, <a href='JSJaCConnection.html#getPollInterval'>getPollInterval</a>, <a href='JSJaCConnection.html#registerHandler'>registerHandler</a>, <a href='JSJaCConnection.html#unregisterHandler'>unregisterHandler</a>, <a href='JSJaCConnection.html#registerIQGet'>registerIQGet</a>, <a href='JSJaCConnection.html#registerIQSet'>registerIQSet</a>, <a href='JSJaCConnection.html#resume'>resume</a>, <a href='JSJaCConnection.html#send'>send</a>, <a href='JSJaCConnection.html#sendIQ'>sendIQ</a>, <a href='JSJaCConnection.html#status'>status</a>, <a href='JSJaCConnection.html#suspend'>suspend</a>
-</CODE></TD>
-</TR>
-</TABLE>
- 
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1>
-      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<A NAME="JSJaCHttpBindingConnection()"><!-- --></A><H3>
-JSJaCHttpBindingConnection</H3>
-<PRE><B>JSJaCHttpBindingConnection</B>(oArg)</PRE>
-
-
-<UL>
-   Instantiates an HTTP Binding session
-</UL>
-
-
-
-   </UL>
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="inherit"><!-- --></A>
-   <H3>inherit</H3>
-   <PRE>void <B>inherit</B>(oArg)</PRE>
-   
-      <UL>Inherit an instantiated HTTP Binding session</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="isPolling"><!-- --></A>
-   <H3>isPolling</H3>
-   <PRE>boolean <B>isPolling</B>()</PRE>
-   
-      <UL>whether this session is in polling mode</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setPollInterval"><!-- --></A>
-   <H3>setPollInterval</H3>
-   <PRE>Object <B>setPollInterval</B>(<int> timerval)</PRE>
-   
-      <UL>Sets poll interval</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>timerval</CODE> -  the interval in seconds
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCHttpBindingConnection.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCCookieException.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCHttpPollingConnection.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/JSJaCHttpPollingConnection.html b/doc/JSJaCHttpPollingConnection.html
deleted file mode 100644
index 1cfb422..0000000
--- a/doc/JSJaCHttpPollingConnection.html
+++ /dev/null
@@ -1,359 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-JSJaCHttpPollingConnection
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaCHttpPollingConnection";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCHttpPollingConnection.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCHttpBindingConnection.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCIQ.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class JSJaCHttpPollingConnection</H2>
-<PRE>Object
-   |
-   +--<a href='JSJaCConnection.html'>JSJaCConnection</a>
-         |
-         +--<b>JSJaCHttpPollingConnection</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>JSJaCHttpPollingConnection</B>
-   
-      <DT>extends <a href='JSJaCConnection.html'>JSJaCConnection</a> 
-   
-
-</DL>
-   
-   <P>
-   <BR/>Implementation of <a href='http://www.xmpp.org/extensions/xep-0025.html'>HTTP Polling</a>
- <BR/><I>Defined in <a href='overview-summary-JSJaCHttpPollingConnection.js.html'>JSJaCHttpPollingConnection.js</a></I><BR/><BR/>
-   </P>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-   
-   
-    <A NAME=""><!-- --></A>
-   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-   <TD><B>Fields inherited from class <A HREF="JSJaCConnection.html">JSJaCConnection</A></B></TD>
-   </TR>
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD><CODE>
-   <a href='JSJaCConnection.html#oDbg'>oDbg</a>
-   </CODE></TD>
-   </TR>
-</TABLE>
- 
-
-
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD>
-      <CODE>
-	 <B>
-	    <A HREF="#JSJaCHttpPollingConnection()">JSJaCHttpPollingConnection</A></B>(oArg)
-      </CODE>
-      <BR>
-                 
-      Instantiates an HTTP Polling session
-      </TD>
-</TR>
-</TABLE>
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> boolean</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#isPolling">isPolling</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Tells whether this implementation of JSJaCConnection is polling
- Useful if it needs to be decided
- whether it makes sense to allow for adjusting or adjust the
- polling interval <a href="JSJaCConnection.html#setPollInterval">JSJaCConnection.setPollInterval()</a>
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class <a href="JSJaCConnection.html">JSJaCConnection</a></B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>
-<!-- Inherited methods -->
-<a href='JSJaCConnection.html#connect'>connect</a>, <a href='JSJaCConnection.html#connected'>connected</a>, <a href='JSJaCConnection.html#disconnect'>disconnect</a>, <a href='JSJaCConnection.html#getPollInterval'>getPollInterval</a>, <a href='JSJaCConnection.html#registerHandler'>registerHandler</a>, <a href='JSJaCConnection.html#unregisterHandler'>unregisterHandler</a>, <a href='JSJaCConnection.html#registerIQGet'>registerIQGet</a>, <a href='JSJaCConnection.html#registerIQSet'>registerIQSet</a>, <a href='JSJaCConnection.html#resume'>resume</a>, <a href='JSJaCConnection.html#send'>send</a>, <a href='JSJaCConnection.html#sendIQ'>sendIQ</a>, <a href='JSJaCConnection.html#setPollInterval'>setPollInterval</a>, <a href='JSJaCConnection.html#status'>status</a>, <a href='JSJaCConnection.html#suspend'>suspend</a>
-</CODE></TD>
-</TR>
-</TABLE>
- 
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1>
-      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<A NAME="JSJaCHttpPollingConnection()"><!-- --></A><H3>
-JSJaCHttpPollingConnection</H3>
-<PRE><B>JSJaCHttpPollingConnection</B>(oArg)</PRE>
-
-
-<UL>
-   Instantiates an HTTP Polling session
-</UL>
-
-
-
-   </UL>
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="isPolling"><!-- --></A>
-   <H3>isPolling</H3>
-   <PRE>boolean <B>isPolling</B>()</PRE>
-   
-      <UL>Tells whether this implementation of JSJaCConnection is polling
- Useful if it needs to be decided
- whether it makes sense to allow for adjusting or adjust the
- polling interval <a href="JSJaCConnection.html#setPollInterval">JSJaCConnection.setPollInterval()</a></UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        <code>true</code> if this is a polling connection,  <code>false</code> otherwise.   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCHttpPollingConnection.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCHttpBindingConnection.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCIQ.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/JSJaCIQ.html b/doc/JSJaCIQ.html
deleted file mode 100644
index 3d428c1..0000000
--- a/doc/JSJaCIQ.html
+++ /dev/null
@@ -1,551 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-JSJaCIQ
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaCIQ";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCPacket.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCHttpPollingConnection.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCJID.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class JSJaCIQ</H2>
-<PRE>Object
-   |
-   +--<a href='JSJaCPacket.html'>JSJaCPacket</a>
-         |
-         +--<b>JSJaCIQ</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>JSJaCIQ</B>
-   
-      <DT>extends <a href='JSJaCPacket.html'>JSJaCPacket</a> 
-   
-
-</DL>
-   
-   <P>
-   <BR/>Models the XMPP notion of an 'iq' packet
- <BR/><I>Defined in <a href='overview-summary-JSJaCPacket.js.html'>JSJaCPacket.js</a></I><BR/><BR/>
-   </P>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-   
-   
-    <A NAME=""><!-- --></A>
-   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-   <TD><B>Fields inherited from class <A HREF="JSJaCPacket.html">JSJaCPacket</A></B></TD>
-   </TR>
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD><CODE>
-   <a href='JSJaCPacket.html#xml'>xml</a>
-   </CODE></TD>
-   </TR>
-</TABLE>
- 
-
-
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD>
-      <CODE>
-	 <B>
-	    <A HREF="#JSJaCIQ()">JSJaCIQ</A></B>()
-      </CODE>
-      <BR>
-                 
-      A jabber/XMPP iq packet
-      </TD>
-</TR>
-</TABLE>
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247'>Node</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getQuery">getQuery</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the 'query' node of this packet
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getQueryXMLNS">getQueryXMLNS</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the XMLNS of the query node contained within this packet
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCIQ.html">JSJaCIQ</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#reply">reply</A></B>(<Element> payload)
-	 </CODE>
-	 <BR>
-	           
-	 Creates an IQ reply with type set to 'result'.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCIQ.html">JSJaCIQ</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setIQ">setIQ</A></B>(<<a href="String.html">String</a>> to,<<a href="String.html">String</a>> type,<<a href="String.html">String</a>> id)
-	 </CODE>
-	 <BR>
-	           
-	 Some combined method to set 'to', 'type' and 'id' at once
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247'>Node</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setQuery">setQuery</A></B>(<<a href="String.html">String</a>> xmlns)
-	 </CODE>
-	 <BR>
-	           
-	 Creates a 'query' child node with given XMLNS
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class <a href="JSJaCPacket.html">JSJaCPacket</a></B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>
-<!-- Inherited methods -->
-<a href='JSJaCPacket.html#pType'>pType</a>, <a href='JSJaCPacket.html#getDoc'>getDoc</a>, <a href='JSJaCPacket.html#getNode'>getNode</a>, <a href='JSJaCPacket.html#setTo'>setTo</a>, <a href='JSJaCPacket.html#setFrom'>setFrom</a>, <a href='JSJaCPacket.html#setID'>setID</a>, <a href='JSJaCPacket.html#setType'>setType</a>, <a href='JSJaCPacket.html#setXMLLang'>setXMLLang</a>, <a href='JSJaCPacket.html#getTo'>getTo</a>, <a href='JSJaCPacket.html#getFrom'>getFrom</a>, <a href='JSJaCPacket.html#getToJID'>getToJID</a>, <a href='JSJaCPacket.html#getFromJID'>getFromJID</a>, <a href='JSJaCPacket.html#getID'>getID</a>, <a href='JSJaCPacket.html#getType'>getType</a>, <a href='JSJaCPacket.html#getXMLLang'>getXMLLang</a>, <a href='JSJaCPacket.html#getXMLNS'>getXMLNS</a>, <a href='JSJaCPacket.html#getChild'>getChild</a>, <a href='JSJaCPacket.html#getChildVal'>getChildVal</a>, <a href='JSJaCPacket.html#clone'>clone</a>, <a href='JSJaCPacket.html#isError'>isError</a>, <a href='JSJaCPacket.html#errorReply'>errorReply</a>, <a href='JSJaCPacket.html#buildNode'>buildNode</a>, <a href='JSJaCPacket.html#appendNode'>appendNode</a>
-</CODE></TD>
-</TR>
-</TABLE>
- 
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1>
-      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<A NAME="JSJaCIQ()"><!-- --></A><H3>
-JSJaCIQ</H3>
-<PRE><B>JSJaCIQ</B>()</PRE>
-
-
-<UL>
-   A jabber/XMPP iq packet
-</UL>
-
-
-
-   </UL>
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="getQuery"><!-- --></A>
-   <H3>getQuery</H3>
-   <PRE><a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247'>Node</a> <B>getQuery</B>()</PRE>
-   
-      <UL>Gets the 'query' node of this packet</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The query node   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getQueryXMLNS"><!-- --></A>
-   <H3>getQueryXMLNS</H3>
-   <PRE><a href="String.html">String</a> <B>getQueryXMLNS</B>()</PRE>
-   
-      <UL>Gets the XMLNS of the query node contained within this packet</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The namespace of the query node   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="reply"><!-- --></A>
-   <H3>reply</H3>
-   <PRE><a href="JSJaCIQ.html">JSJaCIQ</a> <B>reply</B>(<Element> payload)</PRE>
-   
-      <UL>Creates an IQ reply with type set to 'result'. If given appends payload to first child if IQ. Payload maybe XML as string or a DOM element (or an array of such elements as well).</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>payload</CODE> -  A payload to be appended [optional]  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        An IQ reply packet   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setIQ"><!-- --></A>
-   <H3>setIQ</H3>
-   <PRE><a href="JSJaCIQ.html">JSJaCIQ</a> <B>setIQ</B>(<<a href="String.html">String</a>> to,<<a href="String.html">String</a>> type,<<a href="String.html">String</a>> id)</PRE>
-   
-      <UL>Some combined method to set 'to', 'type' and 'id' at once</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>to</CODE> -  the recepients JID  
-      </UL> 
-   
-     <UL><CODE>type</CODE> -  A XMPP compliant iq type (one of 'set', 'get', 'result' and 'error'  
-      </UL> 
-   
-     <UL><CODE>id</CODE> -  A packet ID  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        this   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setQuery"><!-- --></A>
-   <H3>setQuery</H3>
-   <PRE><a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247'>Node</a> <B>setQuery</B>(<<a href="String.html">String</a>> xmlns)</PRE>
-   
-      <UL>Creates a 'query' child node with given XMLNS</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>xmlns</CODE> -  The namespace for the 'query' node  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The query node   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCPacket.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCHttpPollingConnection.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCJID.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/JSJaCJID.html b/doc/JSJaCJID.html
deleted file mode 100644
index 48621c7..0000000
--- a/doc/JSJaCJID.html
+++ /dev/null
@@ -1,756 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-JSJaCJID
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaCJID";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCJID.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCIQ.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCJIDInvalidException.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class JSJaCJID</H2>
-<PRE>Object
-   |
-   +--<b>JSJaCJID</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>JSJaCJID</B>
-   
-
-</DL>
-   
-   <P>
-   <BR/>JSJaCJID models xmpp jid objects
- <BR/><I>Defined in <a href='overview-summary-JSJaCJID.js.html'>JSJaCJID.js</a></I><BR/><BR/>
-   </P>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD>
-      <CODE>
-	 <B>
-	    <A HREF="#JSJaCJID()">JSJaCJID</A></B>(<Object> jid)
-      </CODE>
-      <BR>
-                 
-      Creates a new JSJaCJID object
-      </TD>
-</TR>
-</TABLE>
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCJID.html">JSJaCJID</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#clone">clone</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 creates a copy of this JSJaCJID object
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getDomain">getDomain</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the domain part of the jid
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getNode">getNode</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the node part of the jid
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getResource">getResource</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the resource part of the jid
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> Boolean</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#isEntity">isEntity</A></B>(<<a href="String.html">String</a>> jid)
-	 </CODE>
-	 <BR>
-	           
-	 Compares two jids if they belong to the same entity (i.e.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCJID.html">JSJaCJID</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#removeResource">removeResource</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Removes the resource part of the jid
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCJID.html">JSJaCJID</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setDomain">setDomain</A></B>(<<a href="String.html">String</a>> domain)
-	 </CODE>
-	 <BR>
-	           
-	 Sets the domain part of the jid
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCJID.html">JSJaCJID</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setNode">setNode</A></B>(<<a href="String.html">String</a>> node)
-	 </CODE>
-	 <BR>
-	           
-	 Sets the node part of the jid
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCJID.html">JSJaCJID</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setResource">setResource</A></B>(<<a href="String.html">String</a>> resource)
-	 </CODE>
-	 <BR>
-	           
-	 Sets the resource part of the jid
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#toString">toString</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 The string representation of the full jid
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1>
-      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<A NAME="JSJaCJID()"><!-- --></A><H3>
-JSJaCJID</H3>
-<PRE><B>JSJaCJID</B>(<Object> jid)</PRE>
-
-
-<UL>
-   Creates a new JSJaCJID object
-</UL>
-
-
-
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>jid</CODE> -  jid may be either of type String or a JID represented  by JSON with fields 'node', 'domain' and 'resource'  
-     </UL>
-   
-   
-   </UL>
-
-
-<!-- Constructor return value(s) -->
-
-   <UL>
-   <B>Returns:</B>
-     <UL>
-     a new JSJaCJID object     
-     </UL>
-   </UL>
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<UL>   
-<B>Throws:</B><UL>- JSJaCJIDInvalidException Thrown if jid is not valid  </UL>
-</UL>
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="clone"><!-- --></A>
-   <H3>clone</H3>
-   <PRE><a href="JSJaCJID.html">JSJaCJID</a> <B>clone</B>()</PRE>
-   
-      <UL>creates a copy of this JSJaCJID object</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        A copy of this   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getDomain"><!-- --></A>
-   <H3>getDomain</H3>
-   <PRE><a href="String.html">String</a> <B>getDomain</B>()</PRE>
-   
-      <UL>Gets the domain part of the jid</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        A string representing the domain name   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getNode"><!-- --></A>
-   <H3>getNode</H3>
-   <PRE><a href="String.html">String</a> <B>getNode</B>()</PRE>
-   
-      <UL>Gets the node part of the jid</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        A string representing the node name   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getResource"><!-- --></A>
-   <H3>getResource</H3>
-   <PRE><a href="String.html">String</a> <B>getResource</B>()</PRE>
-   
-      <UL>Gets the resource part of the jid</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        A string representing the resource   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="isEntity"><!-- --></A>
-   <H3>isEntity</H3>
-   <PRE>Boolean <B>isEntity</B>(<<a href="String.html">String</a>> jid)</PRE>
-   
-      <UL>Compares two jids if they belong to the same entity (i.e. w/o resource)</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>jid</CODE> -  a jid as string or JSJaCJID object  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        'true' if jid is same entity as this   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="removeResource"><!-- --></A>
-   <H3>removeResource</H3>
-   <PRE><a href="JSJaCJID.html">JSJaCJID</a> <B>removeResource</B>()</PRE>
-   
-      <UL>Removes the resource part of the jid</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        This object   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setDomain"><!-- --></A>
-   <H3>setDomain</H3>
-   <PRE><a href="JSJaCJID.html">JSJaCJID</a> <B>setDomain</B>(<<a href="String.html">String</a>> domain)</PRE>
-   
-      <UL>Sets the domain part of the jid</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>domain</CODE> -  Name of the domain  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        This object   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <UL>   
-   <B>Throws:</B><UL>- JSJaCJIDInvalidException Thrown if domain name contains invalid  chars or is empty  </UL>
-   </UL>
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setNode"><!-- --></A>
-   <H3>setNode</H3>
-   <PRE><a href="JSJaCJID.html">JSJaCJID</a> <B>setNode</B>(<<a href="String.html">String</a>> node)</PRE>
-   
-      <UL>Sets the node part of the jid</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>node</CODE> -  Name of the node  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        This object   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <UL>   
-   <B>Throws:</B><UL>- JSJaCJIDInvalidException Thrown if node name contains invalid chars  </UL>
-   </UL>
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setResource"><!-- --></A>
-   <H3>setResource</H3>
-   <PRE><a href="JSJaCJID.html">JSJaCJID</a> <B>setResource</B>(<<a href="String.html">String</a>> resource)</PRE>
-   
-      <UL>Sets the resource part of the jid</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>resource</CODE> -  Name of the resource  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        This object   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="toString"><!-- --></A>
-   <H3>toString</H3>
-   <PRE><a href="String.html">String</a> <B>toString</B>()</PRE>
-   
-      <UL>The string representation of the full jid</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        A string representing the jid   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCJID.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCIQ.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCJIDInvalidException.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/JSJaCJIDInvalidException.html b/doc/JSJaCJIDInvalidException.html
deleted file mode 100644
index 4fc8eaa..0000000
--- a/doc/JSJaCJIDInvalidException.html
+++ /dev/null
@@ -1,318 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-JSJaCJIDInvalidException
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaCJIDInvalidException";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCJID.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCJID.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCJSON.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class JSJaCJIDInvalidException</H2>
-<PRE>Object
-   |
-   +--<b>JSJaCJIDInvalidException</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>JSJaCJIDInvalidException</B>
-   
-
-</DL>
-   
-   <P>
-   <BR/>Exception to indicate invalid values for a jid
- <BR/><I>Defined in <a href='overview-summary-JSJaCJID.js.html'>JSJaCJID.js</a></I><BR/><BR/>
-   </P>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-   <A NAME="field_summary"><!-- --></A>
-      <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-         <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-            <TD COLSPAN=2><FONT SIZE="+2">
-               <B>Field Summary</B></FONT></TD>
-         </TR>
-
-   <!-- This is one instance field summary -->
-   
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-   <CODE> <a href="String.html">String</a></CODE></FONT></TD>
-   <TD><CODE><B><A HREF="#message">message</A></B></CODE>
-   <BR>
-             The exceptions associated message</TD>
-   </TR>
-   
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-   <CODE> <a href="String.html">String</a></CODE></FONT></TD>
-   <TD><CODE><B><A HREF="#name">name</A></B></CODE>
-   <BR>
-             The name of the exception</TD>
-   </TR>
-   
-
-   </TABLE>
-    
-   
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD>
-      <CODE>
-	 <B>
-	    <A HREF="#JSJaCJIDInvalidException()">JSJaCJIDInvalidException</A></B>(<<a href="String.html">String</a>> message)
-      </CODE>
-      <BR>
-                 
-      Creates a new Exception of type JSJaCJIDInvalidException
-      </TD>
-</TR>
-</TABLE>
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-   <A NAME="field_detail"><!-- --></A>
-   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-      <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-         <TD COLSPAN=1><FONT SIZE="+2"><B>Field Detail</B></FONT></TD>
-      </TR>
-   </TABLE>
-
-   
-   <A NAME="message"><!-- --></A>
-   <H3>message</H3>
-   <PRE><a href="String.html">String</a> <B>message</B></PRE>
-   <UL>
-   The exceptions associated message
-   
-   </UL>
-   <HR>
-   
-   <A NAME="name"><!-- --></A>
-   <H3>name</H3>
-   <PRE><a href="String.html">String</a> <B>name</B></PRE>
-   <UL>
-   The name of the exception
-   
-   </UL>
-   <HR>
-   
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1>
-      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<A NAME="JSJaCJIDInvalidException()"><!-- --></A><H3>
-JSJaCJIDInvalidException</H3>
-<PRE><B>JSJaCJIDInvalidException</B>(<<a href="String.html">String</a>> message)</PRE>
-
-
-<UL>
-   Creates a new Exception of type JSJaCJIDInvalidException
-</UL>
-
-
-
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>message</CODE> -  The message associated with this Exception    
-     </UL>
-   
-   
-   </UL>
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCJID.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCJID.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCJSON.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/JSJaCJSON.html b/doc/JSJaCJSON.html
deleted file mode 100644
index ab3ae36..0000000
--- a/doc/JSJaCJSON.html
+++ /dev/null
@@ -1,339 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-JSJaCJSON
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaCJSON";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCJSON.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCJIDInvalidException.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCKeys.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class JSJaCJSON</H2>
-<PRE>Object
-   |
-   +--<b>JSJaCJSON</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>JSJaCJSON</B>
-   
-
-</DL>
-   
-   <P>
-   <I>Defined in <a href='overview-summary-JSJaCJSON.js.html'>JSJaCJSON.js</a></I><BR/><BR/>
-   </P>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD>
-      <CODE>
-	 <B>
-	    <A HREF="#JSJaCJSON()">JSJaCJSON</A></B>()
-      </CODE>
-      <BR>
-                 
-      
-      </TD>
-</TR>
-</TABLE>
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!parse">parse</A></B>(str)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> Object</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!toString">toString</A></B>(obj)
-	 </CODE>
-	 <BR>
-	           
-	 
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1>
-      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<A NAME="JSJaCJSON()"><!-- --></A><H3>
-JSJaCJSON</H3>
-<PRE><B>JSJaCJSON</B>()</PRE>
-
-
-
-
-   </UL>
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="!s!parse"><!-- --></A>
-   <H3>parse</H3>
-   <PRE><static> Object <B>parse</B>(str)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!toString"><!-- --></A>
-   <H3>toString</H3>
-   <PRE><static> Object <B>toString</B>(obj)</PRE>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCJSON.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCJIDInvalidException.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCKeys.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/JSJaCKeys.html b/doc/JSJaCKeys.html
deleted file mode 100644
index 4788321..0000000
--- a/doc/JSJaCKeys.html
+++ /dev/null
@@ -1,453 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-JSJaCKeys
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaCKeys";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCKeys.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCJSON.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCMessage.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class JSJaCKeys</H2>
-<PRE>Object
-   |
-   +--<b>JSJaCKeys</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>JSJaCKeys</B>
-   
-
-</DL>
-   
-   <P>
-   <BR/>Reflects a set of sha1/md5 hash keys for securing sessions
- <BR/><I>Defined in <a href='overview-summary-JSJaCKeys.js.html'>JSJaCKeys.js</a></I><BR/><BR/>
-   </P>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-   <A NAME="field_summary"><!-- --></A>
-      <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-         <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-            <TD COLSPAN=2><FONT SIZE="+2">
-               <B>Field Summary</B></FONT></TD>
-         </TR>
-
-   <!-- This is one instance field summary -->
-   
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-   <CODE> Debugger</CODE></FONT></TD>
-   <TD><CODE><B><A HREF="#oDbg">oDbg</A></B></CODE>
-   <BR>
-             Reference to Debugger</TD>
-   </TR>
-   
-
-   </TABLE>
-    
-   
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD>
-      <CODE>
-	 <B>
-	    <A HREF="#JSJaCKeys()">JSJaCKeys</A></B>(<Function> func,<Debugger> oDbg)
-      </CODE>
-      <BR>
-                 
-      Creates a new set of hash keys
-      </TD>
-</TR>
-</TABLE>
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getKey">getKey</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets next key from stack
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> boolean</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#lastKey">lastKey</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Indicates whether there's only one key left
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> int</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#size">size</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Returns number of overall/initial stack size
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-   <A NAME="field_detail"><!-- --></A>
-   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-      <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-         <TD COLSPAN=1><FONT SIZE="+2"><B>Field Detail</B></FONT></TD>
-      </TR>
-   </TABLE>
-
-   
-   <A NAME="oDbg"><!-- --></A>
-   <H3>oDbg</H3>
-   <PRE>Debugger <B>oDbg</B></PRE>
-   <UL>
-   Reference to Debugger
-   
-   </UL>
-   <HR>
-   
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1>
-      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<A NAME="JSJaCKeys()"><!-- --></A><H3>
-JSJaCKeys</H3>
-<PRE><B>JSJaCKeys</B>(<Function> func,<Debugger> oDbg)</PRE>
-
-
-<UL>
-   Creates a new set of hash keys
-</UL>
-
-
-
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>func</CODE> -  The hash function to be used for creating the keys  
-     </UL>
-   
-     <UL><CODE>oDbg</CODE> -  Reference to debugger implementation [optional]
-     </UL>
-   
-   
-   </UL>
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="getKey"><!-- --></A>
-   <H3>getKey</H3>
-   <PRE><a href="String.html">String</a> <B>getKey</B>()</PRE>
-   
-      <UL>Gets next key from stack</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        New hash key   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="lastKey"><!-- --></A>
-   <H3>lastKey</H3>
-   <PRE>boolean <B>lastKey</B>()</PRE>
-   
-      <UL>Indicates whether there's only one key left</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        <code>true</code> if there's only one key left, false otherwise   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="size"><!-- --></A>
-   <H3>size</H3>
-   <PRE>int <B>size</B>()</PRE>
-   
-      <UL>Returns number of overall/initial stack size</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        Number of keys created   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCKeys.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCJSON.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCMessage.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/JSJaCMessage.html b/doc/JSJaCMessage.html
deleted file mode 100644
index cad3c8b..0000000
--- a/doc/JSJaCMessage.html
+++ /dev/null
@@ -1,588 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-JSJaCMessage
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaCMessage";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCPacket.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCKeys.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCPacket.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class JSJaCMessage</H2>
-<PRE>Object
-   |
-   +--<a href='JSJaCPacket.html'>JSJaCPacket</a>
-         |
-         +--<b>JSJaCMessage</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>JSJaCMessage</B>
-   
-      <DT>extends <a href='JSJaCPacket.html'>JSJaCPacket</a> 
-   
-
-</DL>
-   
-   <P>
-   <BR/>Models the XMPP notion of an 'message' packet
- <BR/><I>Defined in <a href='overview-summary-JSJaCPacket.js.html'>JSJaCPacket.js</a></I><BR/><BR/>
-   </P>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-   
-   
-    <A NAME=""><!-- --></A>
-   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-   <TD><B>Fields inherited from class <A HREF="JSJaCPacket.html">JSJaCPacket</A></B></TD>
-   </TR>
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD><CODE>
-   <a href='JSJaCPacket.html#xml'>xml</a>
-   </CODE></TD>
-   </TR>
-</TABLE>
- 
-
-
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD>
-      <CODE>
-	 <B>
-	    <A HREF="#JSJaCMessage()">JSJaCMessage</A></B>()
-      </CODE>
-      <BR>
-                 
-      A jabber/XMPP message packet
-      </TD>
-</TR>
-</TABLE>
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getBody">getBody</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the body of this message
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getSubject">getSubject</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the subject of this message
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getThread">getThread</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the 'thread' identifier for this message
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCMessage.html">JSJaCMessage</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setBody">setBody</A></B>(<<a href="String.html">String</a>> body)
-	 </CODE>
-	 <BR>
-	           
-	 Sets the body of the message
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCMessage.html">JSJaCMessage</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setSubject">setSubject</A></B>(<<a href="String.html">String</a>> subject)
-	 </CODE>
-	 <BR>
-	           
-	 Sets the subject of the message
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCMessage.html">JSJaCMessage</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setThread">setThread</A></B>(<<a href="String.html">String</a>> thread)
-	 </CODE>
-	 <BR>
-	           
-	 Sets the 'tread' attribute for this message.
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class <a href="JSJaCPacket.html">JSJaCPacket</a></B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>
-<!-- Inherited methods -->
-<a href='JSJaCPacket.html#pType'>pType</a>, <a href='JSJaCPacket.html#getDoc'>getDoc</a>, <a href='JSJaCPacket.html#getNode'>getNode</a>, <a href='JSJaCPacket.html#setTo'>setTo</a>, <a href='JSJaCPacket.html#setFrom'>setFrom</a>, <a href='JSJaCPacket.html#setID'>setID</a>, <a href='JSJaCPacket.html#setType'>setType</a>, <a href='JSJaCPacket.html#setXMLLang'>setXMLLang</a>, <a href='JSJaCPacket.html#getTo'>getTo</a>, <a href='JSJaCPacket.html#getFrom'>getFrom</a>, <a href='JSJaCPacket.html#getToJID'>getToJID</a>, <a href='JSJaCPacket.html#getFromJID'>getFromJID</a>, <a href='JSJaCPacket.html#getID'>getID</a>, <a href='JSJaCPacket.html#getType'>getType</a>, <a href='JSJaCPacket.html#getXMLLang'>getXMLLang</a>, <a href='JSJaCPacket.html#getXMLNS'>getXMLNS</a>, <a href='JSJaCPacket.html#getChild'>getChild</a>, <a href='JSJaCPacket.html#getChildVal'>getChildVal</a>, <a href='JSJaCPacket.html#clone'>clone</a>, <a href='JSJaCPacket.html#isError'>isError</a>, <a href='JSJaCPacket.html#errorReply'>errorReply</a>, <a href='JSJaCPacket.html#buildNode'>buildNode</a>, <a href='JSJaCPacket.html#appendNode'>appendNode</a>
-</CODE></TD>
-</TR>
-</TABLE>
- 
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1>
-      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<A NAME="JSJaCMessage()"><!-- --></A><H3>
-JSJaCMessage</H3>
-<PRE><B>JSJaCMessage</B>()</PRE>
-
-
-<UL>
-   A jabber/XMPP message packet
-</UL>
-
-
-
-   </UL>
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="getBody"><!-- --></A>
-   <H3>getBody</H3>
-   <PRE><a href="String.html">String</a> <B>getBody</B>()</PRE>
-   
-      <UL>Gets the body of this message</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The body of this message   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getSubject"><!-- --></A>
-   <H3>getSubject</H3>
-   <PRE><a href="String.html">String</a> <B>getSubject</B>()</PRE>
-   
-      <UL>Gets the subject of this message</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The subject of this message   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getThread"><!-- --></A>
-   <H3>getThread</H3>
-   <PRE><a href="String.html">String</a> <B>getThread</B>()</PRE>
-   
-      <UL>Gets the 'thread' identifier for this message</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        A thread identifier   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setBody"><!-- --></A>
-   <H3>setBody</H3>
-   <PRE><a href="JSJaCMessage.html">JSJaCMessage</a> <B>setBody</B>(<<a href="String.html">String</a>> body)</PRE>
-   
-      <UL>Sets the body of the message</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>body</CODE> -  Your message to be sent along  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        this message   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setSubject"><!-- --></A>
-   <H3>setSubject</H3>
-   <PRE><a href="JSJaCMessage.html">JSJaCMessage</a> <B>setSubject</B>(<<a href="String.html">String</a>> subject)</PRE>
-   
-      <UL>Sets the subject of the message</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>subject</CODE> -  Your subject to be sent along  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        this message   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setThread"><!-- --></A>
-   <H3>setThread</H3>
-   <PRE><a href="JSJaCMessage.html">JSJaCMessage</a> <B>setThread</B>(<<a href="String.html">String</a>> thread)</PRE>
-   
-      <UL>Sets the 'tread' attribute for this message. This is used to identify
- threads in chat conversations</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>thread</CODE> -  Usually a somewhat random hash.  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        this message   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCPacket.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCKeys.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCPacket.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/JSJaCPacket.html b/doc/JSJaCPacket.html
deleted file mode 100644
index fa446a9..0000000
--- a/doc/JSJaCPacket.html
+++ /dev/null
@@ -1,1341 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-JSJaCPacket
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaCPacket";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCPacket.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCMessage.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCPresence.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class JSJaCPacket</H2>
-<PRE>Object
-   |
-   +--<b>JSJaCPacket</b>
-</PRE>
-
-   
-      <DL>
-      <DT>
-         <B>Direct Known Subclasses:</B> 
-         <DD>
-                  <a href='JSJaCPresence.html'>JSJaCPresence</a>, <a href='JSJaCMessage.html'>JSJaCMessage</a>, <a href='JSJaCIQ.html'>JSJaCIQ</a>
-         </DD>
-      </DL>
-   
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>JSJaCPacket</B>
-   
-
-</DL>
-   
-   <P>
-   <BR/>Somewhat abstract base class for all kinds of specialised packets
- <BR/><I>Defined in <a href='overview-summary-JSJaCPacket.js.html'>JSJaCPacket.js</a></I><BR/><BR/>
-   </P>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-   <A NAME="field_summary"><!-- --></A>
-      <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-         <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-            <TD COLSPAN=2><FONT SIZE="+2">
-               <B>Field Summary</B></FONT></TD>
-         </TR>
-
-   <!-- This is one instance field summary -->
-   
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-   <CODE> <a href="String.html">String</a></CODE></FONT></TD>
-   <TD><CODE><B><A HREF="#xml">xml</A></B></CODE>
-   <BR>
-             Returns a string representation of the raw xml content of this packet.</TD>
-   </TR>
-   
-
-   </TABLE>
-    
-   
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD>
-      <CODE>
-	 <B>
-	    <A HREF="#JSJaCPacket()">JSJaCPacket</A></B>(<<a href="String.html">String</a>> name)
-      </CODE>
-      <BR>
-                 
-      Creates a new packet with given root tag name (for internal use)
-      </TD>
-</TR>
-</TABLE>
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCPacket.html">JSJaCPacket</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#appendNode">appendNode</A></B>(<<a href="String.html">String</a>> element)
-	 </CODE>
-	 <BR>
-	           
-	 Appends node created by buildNode to this packets parent node.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247'>Node</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#buildNode">buildNode</A></B>(elementName)
-	 </CODE>
-	 <BR>
-	           
-	 Builds a node using <a href='http://wiki.script.aculo.us/scriptaculous/show/Builder'>script.aculo.us' Dom Builder</a> notation.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCPacket.html">JSJaCPacket</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#clone">clone</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Returns a copy of this node
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCPacket.html">JSJaCPacket</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#errorReply">errorReply</A></B>(<<a href="STANZA_ERROR.html">STANZA_ERROR</a>> stanza_error)
-	 </CODE>
-	 <BR>
-	           
-	 Returns an error condition reply according to <a href='http://www.xmpp.org/extensions/xep-0086.html'>XEP-0086</a>.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247'>Node</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getChild">getChild</A></B>(<<a href="String.html">String</a>> name, <<a href="String.html">String</a>> ns)
-	 </CODE>
-	 <BR>
-	           
-	 Gets a child element of this packet.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getChildVal">getChildVal</A></B>(<<a href="String.html">String</a>> name, <<a href="String.html">String</a>> ns)
-	 </CODE>
-	 <BR>
-	           
-	 Gets the node value of a child element of this packet.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#i-Document'>Document</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getDoc">getDoc</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the associated Document for this packet.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getFrom">getFrom</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the 'from' attribute of this packet.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCJID.html">JSJaCJID</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getFromJID">getFromJID</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the 'from' attribute of this packet as a JSJaCJID object
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getID">getID</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the 'id' of this packet
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247'>Node</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getNode">getNode</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the root node of this packet
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getTo">getTo</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the 'to' attribute of this packet
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCJID.html">JSJaCJID</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getToJID">getToJID</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the 'to' attribute of this packet as a JSJaCJID object
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getType">getType</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the 'type' of this packet
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getXMLLang">getXMLLang</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the 'xml:lang' of this packet
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getXMLNS">getXMLNS</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the 'xmlns' (xml namespace) of the root node of this packet
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> boolean</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#isError">isError</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Checks if packet is of type 'error'
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#pType">pType</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the type (name of root element) of this packet, i.e.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCPacket.html">JSJaCPacket</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setFrom">setFrom</A></B>(from)
-	 </CODE>
-	 <BR>
-	           
-	 Sets the 'from' attribute of the root node of this
- packet.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCPacket.html">JSJaCPacket</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setID">setID</A></B>(<<a href="String.html">String</a>> id)
-	 </CODE>
-	 <BR>
-	           
-	 Sets 'id' attribute of the root node of this packet.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCPacket.html">JSJaCPacket</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setTo">setTo</A></B>(<<a href="String.html">String</a>> to)
-	 </CODE>
-	 <BR>
-	           
-	 Sets the 'to' attribute of the root node of this packet
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCPacket.html">JSJaCPacket</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setType">setType</A></B>(<<a href="String.html">String</a>> type)
-	 </CODE>
-	 <BR>
-	           
-	 Sets the 'type' attribute of the root node of this packet.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCPacket.html">JSJaCPacket</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setXMLLang">setXMLLang</A></B>(<<a href="String.html">String</a>> xmllang)
-	 </CODE>
-	 <BR>
-	           
-	 Sets 'xml:lang' for this packet
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> <a href="JSJaCPacket.html">JSJaCPacket</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!wrapNode">wrapNode</A></B>(<<a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247.html">Node</a>> node)
-	 </CODE>
-	 <BR>
-	           
-	 Tries to transform a w3c DOM node to JSJaC's internal representation
- (JSJaCPacket type, one of JSJaCPresence, JSJaCMessage, JSJaCIQ)
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-   <A NAME="field_detail"><!-- --></A>
-   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-      <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-         <TD COLSPAN=1><FONT SIZE="+2"><B>Field Detail</B></FONT></TD>
-      </TR>
-   </TABLE>
-
-   
-   <A NAME="xml"><!-- --></A>
-   <H3>xml</H3>
-   <PRE><a href="String.html">String</a> <B>xml</B></PRE>
-   <UL>
-   Returns a string representation of the raw xml content of this packet.
-   
-   </UL>
-   <HR>
-   
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1>
-      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<A NAME="JSJaCPacket()"><!-- --></A><H3>
-JSJaCPacket</H3>
-<PRE><B>JSJaCPacket</B>(<<a href="String.html">String</a>> name)</PRE>
-
-
-<UL>
-   Creates a new packet with given root tag name (for internal use)
-</UL>
-
-
-
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>name</CODE> -  The root tag name of the packet  (i.e. one of 'message', 'iq' or 'presence')    
-     </UL>
-   
-   
-   </UL>
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="appendNode"><!-- --></A>
-   <H3>appendNode</H3>
-   <PRE><a href="JSJaCPacket.html">JSJaCPacket</a> <B>appendNode</B>(<<a href="String.html">String</a>> element)</PRE>
-   
-      <UL>Appends node created by buildNode to this packets parent node.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>element</CODE> -  A name plus an object hash with attributes (optional) plus an array of childnodes (optional)  
-      </UL> 
-   
-     <UL><CODE>link</CODE> -  http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247 Node} element The node to append or  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        This packet   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <UL>   
-   <B>See:</B><UL>- <a href="#buildNode">buildNode()</a></UL>
-   </UL>
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="buildNode"><!-- --></A>
-   <H3>buildNode</H3>
-   <PRE><a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247'>Node</a> <B>buildNode</B>(elementName)</PRE>
-   
-      <UL>Builds a node using <a href='http://wiki.script.aculo.us/scriptaculous/show/Builder'>script.aculo.us' Dom Builder</a> notation.
- This code is taken from <a href='http://wiki.script.aculo.us/scriptaculous/show/Builder'>script.aculo.us' Dom Builder</a> and has been modified to suit our
- needs.<br/>
- The original parts of the code do have the following copyright
- and license notice:<br/>
- Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us,
- http://mir.acu lo.us) <br/>
- script.aculo.us is freely distributable under the terms of an
- MIT-style licen se.  // For details, see the script.aculo.us web
- site: http://script.aculo.us/<br></UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The newly created node   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <UL>   
-   <B>Author:</B> Thomas Fuchs  , Stefan Strigler  <BR/>
-   </UL>
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="clone"><!-- --></A>
-   <H3>clone</H3>
-   <PRE><a href="JSJaCPacket.html">JSJaCPacket</a> <B>clone</B>()</PRE>
-   
-      <UL>Returns a copy of this node</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        a copy of this node   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="errorReply"><!-- --></A>
-   <H3>errorReply</H3>
-   <PRE><a href="JSJaCPacket.html">JSJaCPacket</a> <B>errorReply</B>(<<a href="STANZA_ERROR.html">STANZA_ERROR</a>> stanza_error)</PRE>
-   
-      <UL>Returns an error condition reply according to <a href='http://www.xmpp.org/extensions/xep-0086.html'>XEP-0086</a>. Creates a clone of the calling packet with senders and recipient exchanged and error stanza appended.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>stanza_error</CODE> -  an error stanza containing error cody, type and condition of the error to be indicated  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        an error reply packet   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getChild"><!-- --></A>
-   <H3>getChild</H3>
-   <PRE><a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247'>Node</a> <B>getChild</B>(<<a href="String.html">String</a>> name, <<a href="String.html">String</a>> ns)</PRE>
-   
-      <UL>Gets a child element of this packet. If no params given returns first child.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>name</CODE> -  Tagname of child to retrieve. Use '*' to match any tag. [optional]  
-      </UL> 
-   
-     <UL><CODE>ns</CODE> -    Namespace of child. Use '*' to match any ns.[optional]  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The child node, null if none found   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getChildVal"><!-- --></A>
-   <H3>getChildVal</H3>
-   <PRE><a href="String.html">String</a> <B>getChildVal</B>(<<a href="String.html">String</a>> name, <<a href="String.html">String</a>> ns)</PRE>
-   
-      <UL>Gets the node value of a child element of this packet.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>name</CODE> -  Tagname of child to retrieve.  
-      </UL> 
-   
-     <UL><CODE>ns</CODE> -    Namespace of child  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The value of the child node, empty string if none found   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getDoc"><!-- --></A>
-   <H3>getDoc</H3>
-   <PRE><a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#i-Document'>Document</a> <B>getDoc</B>()</PRE>
-   
-      <UL>Gets the associated Document for this packet.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getFrom"><!-- --></A>
-   <H3>getFrom</H3>
-   <PRE><a href="String.html">String</a> <B>getFrom</B>()</PRE>
-   
-      <UL>Gets the 'from' attribute of this packet.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getFromJID"><!-- --></A>
-   <H3>getFromJID</H3>
-   <PRE><a href="JSJaCJID.html">JSJaCJID</a> <B>getFromJID</B>()</PRE>
-   
-      <UL>Gets the 'from' attribute of this packet as a JSJaCJID object</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getID"><!-- --></A>
-   <H3>getID</H3>
-   <PRE><a href="String.html">String</a> <B>getID</B>()</PRE>
-   
-      <UL>Gets the 'id' of this packet</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getNode"><!-- --></A>
-   <H3>getNode</H3>
-   <PRE><a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247'>Node</a> <B>getNode</B>()</PRE>
-   
-      <UL>Gets the root node of this packet</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getTo"><!-- --></A>
-   <H3>getTo</H3>
-   <PRE><a href="String.html">String</a> <B>getTo</B>()</PRE>
-   
-      <UL>Gets the 'to' attribute of this packet</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getToJID"><!-- --></A>
-   <H3>getToJID</H3>
-   <PRE><a href="JSJaCJID.html">JSJaCJID</a> <B>getToJID</B>()</PRE>
-   
-      <UL>Gets the 'to' attribute of this packet as a JSJaCJID object</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getType"><!-- --></A>
-   <H3>getType</H3>
-   <PRE><a href="String.html">String</a> <B>getType</B>()</PRE>
-   
-      <UL>Gets the 'type' of this packet</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getXMLLang"><!-- --></A>
-   <H3>getXMLLang</H3>
-   <PRE><a href="String.html">String</a> <B>getXMLLang</B>()</PRE>
-   
-      <UL>Gets the 'xml:lang' of this packet</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getXMLNS"><!-- --></A>
-   <H3>getXMLNS</H3>
-   <PRE><a href="String.html">String</a> <B>getXMLNS</B>()</PRE>
-   
-      <UL>Gets the 'xmlns' (xml namespace) of the root node of this packet</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="isError"><!-- --></A>
-   <H3>isError</H3>
-   <PRE>boolean <B>isError</B>()</PRE>
-   
-      <UL>Checks if packet is of type 'error'</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        'true' if this packet is of type 'error', 'false' otherwise   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="pType"><!-- --></A>
-   <H3>pType</H3>
-   <PRE><a href="String.html">String</a> <B>pType</B>()</PRE>
-   
-      <UL>Gets the type (name of root element) of this packet, i.e. one of
- 'presence', 'message' or 'iq'</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        the top level tag name   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setFrom"><!-- --></A>
-   <H3>setFrom</H3>
-   <PRE><a href="JSJaCPacket.html">JSJaCPacket</a> <B>setFrom</B>(from)</PRE>
-   
-      <UL>Sets the 'from' attribute of the root node of this
- packet. Usually this is not needed as the server will take care
- of this automatically.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setID"><!-- --></A>
-   <H3>setID</H3>
-   <PRE><a href="JSJaCPacket.html">JSJaCPacket</a> <B>setID</B>(<<a href="String.html">String</a>> id)</PRE>
-   
-      <UL>Sets 'id' attribute of the root node of this packet.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>id</CODE> -  The id of the packet.  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setTo"><!-- --></A>
-   <H3>setTo</H3>
-   <PRE><a href="JSJaCPacket.html">JSJaCPacket</a> <B>setTo</B>(<<a href="String.html">String</a>> to)</PRE>
-   
-      <UL>Sets the 'to' attribute of the root node of this packet</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>to</CODE> -   
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setType"><!-- --></A>
-   <H3>setType</H3>
-   <PRE><a href="JSJaCPacket.html">JSJaCPacket</a> <B>setType</B>(<<a href="String.html">String</a>> type)</PRE>
-   
-      <UL>Sets the 'type' attribute of the root node of this packet.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>type</CODE> -  The type of the packet.  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setXMLLang"><!-- --></A>
-   <H3>setXMLLang</H3>
-   <PRE><a href="JSJaCPacket.html">JSJaCPacket</a> <B>setXMLLang</B>(<<a href="String.html">String</a>> xmllang)</PRE>
-   
-      <UL>Sets 'xml:lang' for this packet</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>xmllang</CODE> -  The xml:lang of the packet.  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="!s!wrapNode"><!-- --></A>
-   <H3>wrapNode</H3>
-   <PRE><static> <a href="JSJaCPacket.html">JSJaCPacket</a> <B>wrapNode</B>(<<a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247.html">Node</a>> node)</PRE>
-   
-      <UL>Tries to transform a w3c DOM node to JSJaC's internal representation
- (JSJaCPacket type, one of JSJaCPresence, JSJaCMessage, JSJaCIQ)</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>node</CODE> -  The node to be transformed  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        A JSJaCPacket representing the given node. If node's root  elemenent is not one of 'message', 'presence' or 'iq',  <code>null</code> is being returned.   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCPacket.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCMessage.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="JSJaCPresence.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/JSJaCPresence.html b/doc/JSJaCPresence.html
deleted file mode 100644
index d0c7316..0000000
--- a/doc/JSJaCPresence.html
+++ /dev/null
@@ -1,648 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-JSJaCPresence
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaCPresence";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCPacket.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCPacket.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="Node.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class JSJaCPresence</H2>
-<PRE>Object
-   |
-   +--<a href='JSJaCPacket.html'>JSJaCPacket</a>
-         |
-         +--<b>JSJaCPresence</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>JSJaCPresence</B>
-   
-      <DT>extends <a href='JSJaCPacket.html'>JSJaCPacket</a> 
-   
-
-</DL>
-   
-   <P>
-   <BR/>Models the XMPP notion of a 'presence' packet
- <BR/><I>Defined in <a href='overview-summary-JSJaCPacket.js.html'>JSJaCPacket.js</a></I><BR/><BR/>
-   </P>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-   
-   
-    <A NAME=""><!-- --></A>
-   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-   <TD><B>Fields inherited from class <A HREF="JSJaCPacket.html">JSJaCPacket</A></B></TD>
-   </TR>
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD><CODE>
-   <a href='JSJaCPacket.html#xml'>xml</a>
-   </CODE></TD>
-   </TR>
-</TABLE>
- 
-
-
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD>
-      <CODE>
-	 <B>
-	    <A HREF="#JSJaCPresence()">JSJaCPresence</A></B>()
-      </CODE>
-      <BR>
-                 
-      A jabber/XMPP presence packet
-      </TD>
-</TR>
-</TABLE>
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> int</CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getPriority">getPriority</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the priority of this status message
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getShow">getShow</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the status of this presence.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#getStatus">getStatus</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Gets the status message of this presence
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCPacket.html">JSJaCPacket</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setPresence">setPresence</A></B>(<<a href="String.html">String</a>> show,<<a href="String.html">String</a>> status,<int> prio)
-	 </CODE>
-	 <BR>
-	           
-	 Some combined method that allowes for setting show, status and
- priority at once
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCPacket.html">JSJaCPacket</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setPriority">setPriority</A></B>(<int> prio)
-	 </CODE>
-	 <BR>
-	           
-	 Sets the priority of the resource bind to with this connection
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCPacket.html">JSJaCPacket</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setShow">setShow</A></B>(<<a href="String.html">String</a>> show)
-	 </CODE>
-	 <BR>
-	           
-	 Sets the online status for this presence packet.
-      </TD>
-   </TR>
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="JSJaCPacket.html">JSJaCPacket</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#setStatus">setStatus</A></B>(<<a href="String.html">String</a>> status)
-	 </CODE>
-	 <BR>
-	           
-	 Sets the status message for current status.
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class <a href="JSJaCPacket.html">JSJaCPacket</a></B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>
-<!-- Inherited methods -->
-<a href='JSJaCPacket.html#pType'>pType</a>, <a href='JSJaCPacket.html#getDoc'>getDoc</a>, <a href='JSJaCPacket.html#getNode'>getNode</a>, <a href='JSJaCPacket.html#setTo'>setTo</a>, <a href='JSJaCPacket.html#setFrom'>setFrom</a>, <a href='JSJaCPacket.html#setID'>setID</a>, <a href='JSJaCPacket.html#setType'>setType</a>, <a href='JSJaCPacket.html#setXMLLang'>setXMLLang</a>, <a href='JSJaCPacket.html#getTo'>getTo</a>, <a href='JSJaCPacket.html#getFrom'>getFrom</a>, <a href='JSJaCPacket.html#getToJID'>getToJID</a>, <a href='JSJaCPacket.html#getFromJID'>getFromJID</a>, <a href='JSJaCPacket.html#getID'>getID</a>, <a href='JSJaCPacket.html#getType'>getType</a>, <a href='JSJaCPacket.html#getXMLLang'>getXMLLang</a>, <a href='JSJaCPacket.html#getXMLNS'>getXMLNS</a>, <a href='JSJaCPacket.html#getChild'>getChild</a>, <a href='JSJaCPacket.html#getChildVal'>getChildVal</a>, <a href='JSJaCPacket.html#clone'>clone</a>, <a href='JSJaCPacket.html#isError'>isError</a>, <a href='JSJaCPacket.html#errorReply'>errorReply</a>, <a href='JSJaCPacket.html#buildNode'>buildNode</a>, <a href='JSJaCPacket.html#appendNode'>appendNode</a>
-</CODE></TD>
-</TR>
-</TABLE>
- 
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1>
-      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<A NAME="JSJaCPresence()"><!-- --></A><H3>
-JSJaCPresence</H3>
-<PRE><B>JSJaCPresence</B>()</PRE>
-
-
-<UL>
-   A jabber/XMPP presence packet
-</UL>
-
-
-
-   </UL>
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="getPriority"><!-- --></A>
-   <H3>getPriority</H3>
-   <PRE>int <B>getPriority</B>()</PRE>
-   
-      <UL>Gets the priority of this status message</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        A resource priority   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getShow"><!-- --></A>
-   <H3>getShow</H3>
-   <PRE><a href="String.html">String</a> <B>getShow</B>()</PRE>
-   
-      <UL>Gets the status of this presence.
- Either one of 'chat', 'away', 'xa' or 'dnd' or null.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The status indicator as defined by XMPP   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="getStatus"><!-- --></A>
-   <H3>getStatus</H3>
-   <PRE><a href="String.html">String</a> <B>getStatus</B>()</PRE>
-   
-      <UL>Gets the status message of this presence</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The (human readable) status message   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setPresence"><!-- --></A>
-   <H3>setPresence</H3>
-   <PRE><a href="JSJaCPacket.html">JSJaCPacket</a> <B>setPresence</B>(<<a href="String.html">String</a>> show,<<a href="String.html">String</a>> status,<int> prio)</PRE>
-   
-      <UL>Some combined method that allowes for setting show, status and
- priority at once</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>show</CODE> -  A status message  
-      </UL> 
-   
-     <UL><CODE>status</CODE> -  A status indicator as defined by XMPP  
-      </UL> 
-   
-     <UL><CODE>prio</CODE> -  A priority for this resource  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        this   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setPriority"><!-- --></A>
-   <H3>setPriority</H3>
-   <PRE><a href="JSJaCPacket.html">JSJaCPacket</a> <B>setPriority</B>(<int> prio)</PRE>
-   
-      <UL>Sets the priority of the resource bind to with this connection</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>prio</CODE> -  The priority to set this resource to  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        this   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setShow"><!-- --></A>
-   <H3>setShow</H3>
-   <PRE><a href="JSJaCPacket.html">JSJaCPacket</a> <B>setShow</B>(<<a href="String.html">String</a>> show)</PRE>
-   
-      <UL>Sets the online status for this presence packet.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>show</CODE> -  An XMPP complient status indicator. Must  be one of 'chat', 'away', 'xa', 'dnd'  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        this   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-   <A NAME="setStatus"><!-- --></A>
-   <H3>setStatus</H3>
-   <PRE><a href="JSJaCPacket.html">JSJaCPacket</a> <B>setStatus</B>(<<a href="String.html">String</a>> status)</PRE>
-   
-      <UL>Sets the status message for current status. Usually this is set
- to some human readable string indicating what the user is
- doing/feel like currently.</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>status</CODE> -  A status message  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        this   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCPacket.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCPacket.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="Node.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/Node.html b/doc/Node.html
deleted file mode 100644
index 5ed5250..0000000
--- a/doc/Node.html
+++ /dev/null
@@ -1,209 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-Node
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="Node";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCPresence.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="Number.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class Node</H2>
-<PRE>Object
-   |
-   +--<b>Node</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>Node</B>
-   
-
-</DL>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="JSJaCPresence.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="Number.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/Number.html b/doc/Number.html
deleted file mode 100644
index dc16d1e..0000000
--- a/doc/Number.html
+++ /dev/null
@@ -1,285 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-Number
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="Number";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="Node.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="STANZA_ERROR.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class Number</H2>
-<PRE>Object
-   |
-   +--<b>Number</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>Number</B>
-   
-
-</DL>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE><static> <a href="Number.html">Number</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#!s!max">max</A></B>(<<a href="Number.html">Number</a>> A, <<a href="Number.html">Number</a>> B)
-	 </CODE>
-	 <BR>
-	           
-	 Determines the maximum of two given numbers
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="!s!max"><!-- --></A>
-   <H3>max</H3>
-   <PRE><static> <a href="Number.html">Number</a> <B>max</B>(<<a href="Number.html">Number</a>> A, <<a href="Number.html">Number</a>> B)</PRE>
-   
-      <UL>Determines the maximum of two given numbers</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <UL>
-   <B>Parameters:</B>
-   
-     <UL><CODE>A</CODE> -  a number  
-      </UL> 
-   
-     <UL><CODE>B</CODE> -  another number  
-      </UL> 
-   
-   </UL>
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        the maximum of A and B   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="Node.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="STANZA_ERROR.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/STANZA_ERROR.html b/doc/STANZA_ERROR.html
deleted file mode 100644
index 54e8793..0000000
--- a/doc/STANZA_ERROR.html
+++ /dev/null
@@ -1,323 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-STANZA_ERROR
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="STANZA_ERROR";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCConstants.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="Number.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="String.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class STANZA_ERROR</H2>
-<PRE>Object
-   |
-   +--<b>STANZA_ERROR</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>STANZA_ERROR</B>
-   
-
-</DL>
-   
-   <P>
-   <I>Defined in <a href='overview-summary-JSJaCConstants.js.html'>JSJaCConstants.js</a></I><BR/><BR/>
-   </P>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-   <A NAME="field_summary"><!-- --></A>
-      <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-         <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-            <TD COLSPAN=2><FONT SIZE="+2">
-               <B>Field Summary</B></FONT></TD>
-         </TR>
-
-   <!-- This is one instance field summary -->
-   
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-   <CODE> Object</CODE></FONT></TD>
-   <TD><CODE><B><A HREF="#code">code</A></B></CODE>
-   <BR>
-             </TD>
-   </TR>
-   
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-   <CODE> Object</CODE></FONT></TD>
-   <TD><CODE><B><A HREF="#cond">cond</A></B></CODE>
-   <BR>
-             </TD>
-   </TR>
-   
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-   <CODE> Object</CODE></FONT></TD>
-   <TD><CODE><B><A HREF="#type">type</A></B></CODE>
-   <BR>
-             </TD>
-   </TR>
-   
-
-   </TABLE>
-    
-   
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-   <TD>
-      <CODE>
-	 <B>
-	    <A HREF="#STANZA_ERROR()">STANZA_ERROR</A></B>(code, type, cond)
-      </CODE>
-      <BR>
-                 
-      
-      </TD>
-</TR>
-</TABLE>
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-   <A NAME="field_detail"><!-- --></A>
-   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-      <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-         <TD COLSPAN=1><FONT SIZE="+2"><B>Field Detail</B></FONT></TD>
-      </TR>
-   </TABLE>
-
-   
-   <A NAME="code"><!-- --></A>
-   <H3>code</H3>
-   <PRE>Object <B>code</B></PRE>
-   <UL>
-   
-   
-   </UL>
-   <HR>
-   
-   <A NAME="cond"><!-- --></A>
-   <H3>cond</H3>
-   <PRE>Object <B>cond</B></PRE>
-   <UL>
-   
-   
-   </UL>
-   <HR>
-   
-   <A NAME="type"><!-- --></A>
-   <H3>type</H3>
-   <PRE>Object <B>type</B></PRE>
-   <UL>
-   
-   
-   </UL>
-   <HR>
-   
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1>
-      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<A NAME="STANZA_ERROR()"><!-- --></A><H3>
-STANZA_ERROR</H3>
-<PRE><B>STANZA_ERROR</B>(code, type, cond)</PRE>
-
-
-
-
-   </UL>
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-JSJaCConstants.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="Number.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="String.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/String.html b/doc/String.html
deleted file mode 100644
index c19906c..0000000
--- a/doc/String.html
+++ /dev/null
@@ -1,274 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-String
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="String";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="STANZA_ERROR.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="XMLDocument.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class String</H2>
-<PRE>Object
-   |
-   +--<b>String</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>String</B>
-   
-
-</DL>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-
-
-   <TR BGCOLOR="white" CLASS="TableRowColor">
-      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
-	 <FONT SIZE="-1">
-	    <CODE> <a href="String.html">String</a></CODE>
-	 </FONT>
-      </TD>
-      <TD>
-	 <CODE>
-	    <B>
-	       <A HREF="#htmlEnc">htmlEnc</A></B>()
-	 </CODE>
-	 <BR>
-	           
-	 Convert special chars to HTML entities
-      </TD>
-   </TR>
-
-
-</TABLE>
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-      <TD COLSPAN=1><FONT SIZE="+2">
-         <B>Method Detail</B></FONT>
-      </TD>
-   </TR>
-</TABLE>
-
-<!-- One single method detail entry -->
-
-   <A NAME="htmlEnc"><!-- --></A>
-   <H3>htmlEnc</H3>
-   <PRE><a href="String.html">String</a> <B>htmlEnc</B>()</PRE>
-   
-      <UL>Convert special chars to HTML entities</UL>
-   
-
-   <!-- METHOD PARAMETERS START -->
-   
-   <!-- METHOD PARAMETERS END -->
-
-   
-   <UL>
-   <B>Returns:</B>
-        <UL>
-        The string with chars encoded for HTML   
-        </UL>
-   </UL>
-   
-
-   <!-- ADDITIONAL ATTRIBUTES START -->
-   
-   <!-- ADDITIONAL ATTRIBUTES  END -->
-<HR>
-
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="STANZA_ERROR.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <A HREF="XMLDocument.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/XMLDocument.html b/doc/XMLDocument.html
deleted file mode 100644
index 4a9a7a3..0000000
--- a/doc/XMLDocument.html
+++ /dev/null
@@ -1,209 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-XMLDocument
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="XMLDocument";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="String.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <B>NEXT CLASS</B></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-<HR>
-
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>Class XMLDocument</H2>
-<PRE>Object
-   |
-   +--<b>XMLDocument</b>
-</PRE>
-
-
-<HR>
-<DL>
-   <!-- Class definition -->
-   <DT>class 
-   <B>XMLDocument</B>
-   
-
-</DL>
-   
-   <HR>
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<!-- ======== END NESTED CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-   
-
-<!-- =========== END FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
-
- 
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-
-
-<P>
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-<!-- ============ FIELD DETAIL START =========== -->
-
-
-<!-- ============ FIELD DETAIL END =========== -->
-
-    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
-
-
-<!-- Constructor return value(s) -->
-
-<!-- End constructor return value(s) -->
-
-<!-- ADDITIONAL ATTRIBUTES -->
-
-<HR/>
-<!-- END ADDITIONAL ATTRIBUTES  -->
-
-<!-- ========= CONSTRUCTOR DETAIL END ======== -->
-
-
-<!-- ============ METHOD DETAIL START ========== -->
-
-
-<!-- ============ METHOD DETAIL END ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!-- </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="String.html"><B>PREV CLASS</B></A><!-- 
-   NEXT CLASS 
--->
- <B>NEXT CLASS</B></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/allclasses-frame.html b/doc/allclasses-frame.html
deleted file mode 100644
index c31efb8..0000000
--- a/doc/allclasses-frame.html
+++ /dev/null
@@ -1,161 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- All Classes 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" All Classes";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary.html" target="classFrame">All Classes</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Date.html" TARGET="classFrame">Date</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Document.html" TARGET="classFrame">Document</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="GLOBALS.html" TARGET="classFrame">GLOBALS</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCConnection.html" TARGET="classFrame">JSJaCConnection</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCConsoleLogger.html" TARGET="classFrame">JSJaCConsoleLogger</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCCookie.html" TARGET="classFrame">JSJaCCookie</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCCookieException.html" TARGET="classFrame">JSJaCCookieException</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCHttpBindingConnection.html" TARGET="classFrame">JSJaCHttpBindingConnection</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCHttpPollingConnection.html" TARGET="classFrame">JSJaCHttpPollingConnection</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCIQ.html" TARGET="classFrame">JSJaCIQ</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCJID.html" TARGET="classFrame">JSJaCJID</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCJIDInvalidException.html" TARGET="classFrame">JSJaCJIDInvalidException</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCJSON.html" TARGET="classFrame">JSJaCJSON</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCKeys.html" TARGET="classFrame">JSJaCKeys</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCMessage.html" TARGET="classFrame">JSJaCMessage</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCPacket.html" TARGET="classFrame">JSJaCPacket</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCPresence.html" TARGET="classFrame">JSJaCPresence</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Node.html" TARGET="classFrame">Node</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Number.html" TARGET="classFrame">Number</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="STANZA_ERROR.html" TARGET="classFrame">STANZA_ERROR</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="String.html" TARGET="classFrame">String</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="XMLDocument.html" TARGET="classFrame">XMLDocument</A>
-<BR>
-</FONT></TD>
-</TR>
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/allclasses-noframe.html b/doc/allclasses-noframe.html
deleted file mode 100644
index f3b9dae..0000000
--- a/doc/allclasses-noframe.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<HTML>
-<HEAD>
-<TITLE>
-JSJaC All Classes
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaC All Classes";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-   <IMG SRC="./"/>
-
-<H3 CLASS="FrameHeadingFont">JSJaC</H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary.html">All Classes</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Date.html" >Date</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Document.html" >Document</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="GLOBALS.html" >GLOBALS</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCConnection.html" >JSJaCConnection</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCConsoleLogger.html" >JSJaCConsoleLogger</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCCookie.html" >JSJaCCookie</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCCookieException.html" >JSJaCCookieException</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCHttpBindingConnection.html" >JSJaCHttpBindingConnection</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCHttpPollingConnection.html" >JSJaCHttpPollingConnection</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCIQ.html" >JSJaCIQ</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCJID.html" >JSJaCJID</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCJIDInvalidException.html" >JSJaCJIDInvalidException</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCJSON.html" >JSJaCJSON</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCKeys.html" >JSJaCKeys</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCMessage.html" >JSJaCMessage</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCPacket.html" >JSJaCPacket</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCPresence.html" >JSJaCPresence</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Node.html" >Node</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Number.html" >Number</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="STANZA_ERROR.html" >STANZA_ERROR</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="String.html" >String</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="XMLDocument.html" >XMLDocument</A>
-<BR>
-</FONT></TD>
-</TR>
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/help-doc.html b/doc/help-doc.html
deleted file mode 100644
index 2eec073..0000000
--- a/doc/help-doc.html
+++ /dev/null
@@ -1,160 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<HTML>
-<HEAD>
-<TITLE>
-JSJaC API Help 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" API Help";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV 
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="help-doc.html" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<CENTER>
-<H1>
-How This API Document Is Organized</H1>
-</CENTER>
-This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
-Class</H3>
-<BLOCKQUOTE>
-
-<P>
-Each class has its own separate page. Each of these pages has three sections consisting of a class description, summary tables, and detailed member descriptions:<UL>
-<LI>Class inheritance diagram<LI>Direct Subclasses<LI>Class declaration<LI>Class description
-<P>
-<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
-<P>
-<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
-Each summary entry contains the first sentence from the detailed description for that item. </BLOCKQUOTE>
-<!--H3>
-Tree (Class Hierarchy)</H3>
-<BLOCKQUOTE>
-There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all classes. The hierarchy page contains a list of classes. The classes are organized by inheritance structure starting with <code>Object</code>.<UL>
-</BLOCKQUOTE-->
-<!-- H3>
-Deprecated API</H3>
-<BLOCKQUOTE>
-The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE-->
-<H3>
-Index</H3>
-<BLOCKQUOTE>
-The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, constructors, methods, and fields.</BLOCKQUOTE>
-<H3>
-Prev/Next</H3>
-These links take you to the next or previous class, interface, package, or related page.<H3>
-Frames/No Frames</H3>
-These links show and hide the HTML frames.  All pages are available with or without frames.
-<P>
-<FONT SIZE="-1">
-<EM>
-This help file applies to API documentation generated using the standard doclet.</EM>
-</FONT>
-<BR>
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD-->
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV 
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="help-doc.html" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/index-all.html b/doc/index-all.html
deleted file mode 100644
index 8f3add6..0000000
--- a/doc/index-all.html
+++ /dev/null
@@ -1,1346 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-Index ()
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="Index ()";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD-->
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV 
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="index-all.html" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<!--
- Listing of letters
--->
- <A HREF="index-all.html#__A__">A</A> <A HREF="index-all.html#__B__">B</A> <A HREF="index-all.html#__C__">C</A> <A HREF="index-all.html#__D__">D</A> <A HREF="index-all.html#__E__">E</A> <A HREF="index-all.html#__G__">G</A> <A HREF="index-all.html#__H__">H</A> <A HREF="index-all.html#__I__">I</A> <A HREF="index-all.html#__J__">J</A> <A HREF="index-all.html#__L__">L</A> <A HREF="index-all.html#__M__">M</A> <A HREF="index-all.html#__N__">N</A> <A HREF="index-all.html#__O__">O</A> <A HREF="index-all.html#__P__">P</A> <A HREF="index-all.html#__R__">R</A> <A HREF="index-all.html#__S__">S</A> <A HREF="index-all.html#__T__">T</A> <A HREF="index-all.html#__U__">U</A> <A HREF="index-all.html#__V__">V</A> <A HREF="index-all.html#__W__">W</A> <A HREF="index-all.html#__X__">X</A>
-<HR>
-<!-- End letter listing -->
-
-<A NAME="__A__"><!-- --></A><H2>
-<B>A</B></H2>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#appendNode"><B>appendNode(element)</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__B__"><!-- --></A><H2>
-<B>B</B></H2>
-
-<DL>
-<DT><A HREF="GLOBALS.html#b64_hmac_md5"><B>b64_hmac_md5(key, data)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#b64_hmac_sha1"><B>b64_hmac_sha1(key, data)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#b64_md5"><B>b64_md5(s)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#b64_sha1"><B>b64_sha1(s)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#b64arrays"><B>b64arrays()</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#b64d2t"><B>b64d2t(d)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#b64t2d"><B>b64t2d(t)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#binb2b64"><B>binb2b64(binarray)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#binb2hex"><B>binb2hex(binarray)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#binb2str"><B>binb2str(bin)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#binl2b64"><B>binl2b64(binarray)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#binl2hex"><B>binl2hex(binarray)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#binl2str"><B>binl2str(bin)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#bit_rol"><B>bit_rol(num, cnt)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#buildNode"><B>buildNode(elementName)</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__C__"><!-- --></A><H2>
-<B>C</B></H2>
-
-<DL>
-<DT><A HREF="JSJaCJID.html#clone"><B>clone()</B></A> - 
-Instance method in  class <A HREF="JSJaCJID.html">JSJaCJID</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#clone"><B>clone()</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#cnonce"><B>cnonce(size)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="STANZA_ERROR.html#code"><B>code</B></A> - 
-Instance field in  class <A HREF="STANZA_ERROR.html">STANZA_ERROR</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="STANZA_ERROR.html#cond"><B>cond</B></A> - 
-Instance field in  class <A HREF="STANZA_ERROR.html">STANZA_ERROR</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#connect"><B>connect(oArg)</B></A> - 
-Instance method in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#connected"><B>connected()</B></A> - 
-Instance method in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#core_hmac_md5"><B>core_hmac_md5(key, data)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#core_hmac_sha1"><B>core_hmac_sha1(key, data)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#core_md5"><B>core_md5(x, len)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#core_sha1"><B>core_sha1(x, len)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__D__"><!-- --></A><H2>
-<B>D</B></H2>
-
-<DL>
-<DT><A HREF="Date.html#"><B>Date</B></A> - 
- class <A HREF="Date.html">Date</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#disconnect"><B>disconnect()</B></A> - 
-Instance method in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="Document.html#"><B>Document</B></A> - 
- class <A HREF="Document.html">Document</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__E__"><!-- --></A><H2>
-<B>E</B></H2>
-
-<DL>
-<DT><A HREF="JSJaCCookie.html#erase"><B>erase()</B></A> - 
-Instance method in  class <A HREF="JSJaCCookie.html">JSJaCCookie</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#errorReply"><B>errorReply(stanza_error)</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__G__"><!-- --></A><H2>
-<B>G</B></H2>
-
-<DL>
-<DT><A HREF="JSJaCCookie.html#get"><B>get(name)</B></A> - 
-Class method in  class <A HREF="JSJaCCookie.html">JSJaCCookie</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCMessage.html#getBody"><B>getBody()</B></A> - 
-Instance method in  class <A HREF="JSJaCMessage.html">JSJaCMessage</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#getChild"><B>getChild(name, ns)</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#getChildVal"><B>getChildVal(name, ns)</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#getDoc"><B>getDoc()</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJID.html#getDomain"><B>getDomain()</B></A> - 
-Instance method in  class <A HREF="JSJaCJID.html">JSJaCJID</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#getFrom"><B>getFrom()</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#getFromJID"><B>getFromJID()</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#getID"><B>getID()</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCKeys.html#getKey"><B>getKey()</B></A> - 
-Instance method in  class <A HREF="JSJaCKeys.html">JSJaCKeys</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConsoleLogger.html#getLevel"><B>getLevel()</B></A> - 
-Instance method in  class <A HREF="JSJaCConsoleLogger.html">JSJaCConsoleLogger</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCCookie.html#getName"><B>getName()</B></A> - 
-Instance method in  class <A HREF="JSJaCCookie.html">JSJaCCookie</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJID.html#getNode"><B>getNode()</B></A> - 
-Instance method in  class <A HREF="JSJaCJID.html">JSJaCJID</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#getNode"><B>getNode()</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#getPollInterval"><B>getPollInterval()</B></A> - 
-Instance method in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPresence.html#getPriority"><B>getPriority()</B></A> - 
-Instance method in  class <A HREF="JSJaCPresence.html">JSJaCPresence</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCIQ.html#getQuery"><B>getQuery()</B></A> - 
-Instance method in  class <A HREF="JSJaCIQ.html">JSJaCIQ</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCIQ.html#getQueryXMLNS"><B>getQueryXMLNS()</B></A> - 
-Instance method in  class <A HREF="JSJaCIQ.html">JSJaCIQ</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJID.html#getResource"><B>getResource()</B></A> - 
-Instance method in  class <A HREF="JSJaCJID.html">JSJaCJID</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPresence.html#getShow"><B>getShow()</B></A> - 
-Instance method in  class <A HREF="JSJaCPresence.html">JSJaCPresence</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPresence.html#getStatus"><B>getStatus()</B></A> - 
-Instance method in  class <A HREF="JSJaCPresence.html">JSJaCPresence</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCMessage.html#getSubject"><B>getSubject()</B></A> - 
-Instance method in  class <A HREF="JSJaCMessage.html">JSJaCMessage</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCMessage.html#getThread"><B>getThread()</B></A> - 
-Instance method in  class <A HREF="JSJaCMessage.html">JSJaCMessage</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#getTo"><B>getTo()</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#getToJID"><B>getToJID()</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#getType"><B>getType()</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCCookie.html#getValue"><B>getValue()</B></A> - 
-Instance method in  class <A HREF="JSJaCCookie.html">JSJaCCookie</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#getXMLLang"><B>getXMLLang()</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#getXMLNS"><B>getXMLNS()</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#"><B>GLOBALS</B></A> - 
- class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__H__"><!-- --></A><H2>
-<B>H</B></H2>
-
-<DL>
-<DT><A HREF="GLOBALS.html#hex_hmac_md5"><B>hex_hmac_md5(key, data)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#hex_hmac_sha1"><B>hex_hmac_sha1(key, data)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#hex_md5"><B>hex_md5(s)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#hex_sha1"><B>hex_sha1(s)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="Date.html#hrTime"><B>hrTime(ts)</B></A> - 
-Class method in  class <A HREF="Date.html">Date</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="String.html#htmlEnc"><B>htmlEnc()</B></A> - 
-Instance method in  class <A HREF="String.html">String</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__I__"><!-- --></A><H2>
-<B>I</B></H2>
-
-<DL>
-<DT><A HREF="JSJaCHttpBindingConnection.html#inherit"><B>inherit(oArg)</B></A> - 
-Instance method in  class <A HREF="JSJaCHttpBindingConnection.html">JSJaCHttpBindingConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJID.html#isEntity"><B>isEntity(jid)</B></A> - 
-Instance method in  class <A HREF="JSJaCJID.html">JSJaCJID</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#isError"><B>isError()</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCHttpBindingConnection.html#isPolling"><B>isPolling()</B></A> - 
-Instance method in  class <A HREF="JSJaCHttpBindingConnection.html">JSJaCHttpBindingConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCHttpPollingConnection.html#isPolling"><B>isPolling()</B></A> - 
-Instance method in  class <A HREF="JSJaCHttpPollingConnection.html">JSJaCHttpPollingConnection</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__J__"><!-- --></A><H2>
-<B>J</B></H2>
-
-<DL>
-<DT><A HREF="Date.html#jab2date"><B>jab2date(ts)</B></A> - 
-Class method in  class <A HREF="Date.html">Date</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="Date.html#jabberDate"><B>jabberDate()</B></A> - 
-Instance method in  class <A HREF="Date.html">Date</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#"><B>JSJaCConnection</B></A> - 
- class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#constructor_detail"><B>JSJaCConnection(oArg)</B></A> - 
-Constructor in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConsoleLogger.html#"><B>JSJaCConsoleLogger</B></A> - 
- class <A HREF="JSJaCConsoleLogger.html">JSJaCConsoleLogger</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConsoleLogger.html#constructor_detail"><B>JSJaCConsoleLogger(level)</B></A> - 
-Constructor in  class <A HREF="JSJaCConsoleLogger.html">JSJaCConsoleLogger</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCCookie.html#"><B>JSJaCCookie</B></A> - 
- class <A HREF="JSJaCCookie.html">JSJaCCookie</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCCookie.html#constructor_detail"><B>JSJaCCookie(name,value,secs)</B></A> - 
-Constructor in  class <A HREF="JSJaCCookie.html">JSJaCCookie</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCCookieException.html#"><B>JSJaCCookieException</B></A> - 
- class <A HREF="JSJaCCookieException.html">JSJaCCookieException</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCCookieException.html#constructor_detail"><B>JSJaCCookieException(msg)</B></A> - 
-Constructor in  class <A HREF="JSJaCCookieException.html">JSJaCCookieException</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCHttpBindingConnection.html#"><B>JSJaCHttpBindingConnection</B></A> - 
- class <A HREF="JSJaCHttpBindingConnection.html">JSJaCHttpBindingConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCHttpBindingConnection.html#constructor_detail"><B>JSJaCHttpBindingConnection(oArg)</B></A> - 
-Constructor in  class <A HREF="JSJaCHttpBindingConnection.html">JSJaCHttpBindingConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCHttpPollingConnection.html#"><B>JSJaCHttpPollingConnection</B></A> - 
- class <A HREF="JSJaCHttpPollingConnection.html">JSJaCHttpPollingConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCHttpPollingConnection.html#constructor_detail"><B>JSJaCHttpPollingConnection(oArg)</B></A> - 
-Constructor in  class <A HREF="JSJaCHttpPollingConnection.html">JSJaCHttpPollingConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCIQ.html#"><B>JSJaCIQ</B></A> - 
- class <A HREF="JSJaCIQ.html">JSJaCIQ</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCIQ.html#constructor_detail"><B>JSJaCIQ()</B></A> - 
-Constructor in  class <A HREF="JSJaCIQ.html">JSJaCIQ</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJID.html#"><B>JSJaCJID</B></A> - 
- class <A HREF="JSJaCJID.html">JSJaCJID</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJID.html#constructor_detail"><B>JSJaCJID(jid)</B></A> - 
-Constructor in  class <A HREF="JSJaCJID.html">JSJaCJID</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJIDInvalidException.html#"><B>JSJaCJIDInvalidException</B></A> - 
- class <A HREF="JSJaCJIDInvalidException.html">JSJaCJIDInvalidException</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJIDInvalidException.html#constructor_detail"><B>JSJaCJIDInvalidException(message)</B></A> - 
-Constructor in  class <A HREF="JSJaCJIDInvalidException.html">JSJaCJIDInvalidException</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJSON.html#"><B>JSJaCJSON</B></A> - 
- class <A HREF="JSJaCJSON.html">JSJaCJSON</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJSON.html#constructor_detail"><B>JSJaCJSON()</B></A> - 
-Constructor in  class <A HREF="JSJaCJSON.html">JSJaCJSON</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCKeys.html#"><B>JSJaCKeys</B></A> - 
- class <A HREF="JSJaCKeys.html">JSJaCKeys</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCKeys.html#constructor_detail"><B>JSJaCKeys(func,oDbg)</B></A> - 
-Constructor in  class <A HREF="JSJaCKeys.html">JSJaCKeys</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCMessage.html#"><B>JSJaCMessage</B></A> - 
- class <A HREF="JSJaCMessage.html">JSJaCMessage</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCMessage.html#constructor_detail"><B>JSJaCMessage()</B></A> - 
-Constructor in  class <A HREF="JSJaCMessage.html">JSJaCMessage</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#"><B>JSJaCPacket</B></A> - 
- class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#constructor_detail"><B>JSJaCPacket(name)</B></A> - 
-Constructor in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPresence.html#"><B>JSJaCPresence</B></A> - 
- class <A HREF="JSJaCPresence.html">JSJaCPresence</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPresence.html#constructor_detail"><B>JSJaCPresence()</B></A> - 
-Constructor in  class <A HREF="JSJaCPresence.html">JSJaCPresence</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__L__"><!-- --></A><H2>
-<B>L</B></H2>
-
-<DL>
-<DT><A HREF="JSJaCKeys.html#lastKey"><B>lastKey()</B></A> - 
-Instance method in  class <A HREF="JSJaCKeys.html">JSJaCKeys</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConsoleLogger.html#log"><B>log(msg, level)</B></A> - 
-Instance method in  class <A HREF="JSJaCConsoleLogger.html">JSJaCConsoleLogger</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__M__"><!-- --></A><H2>
-<B>M</B></H2>
-
-<DL>
-<DT><A HREF="Number.html#max"><B>max(A, B)</B></A> - 
-Class method in  class <A HREF="Number.html">Number</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#md5_cmn"><B>md5_cmn(q, a, b, x, s, t)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#md5_ff"><B>md5_ff(a, b, c, d, x, s, t)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#md5_gg"><B>md5_gg(a, b, c, d, x, s, t)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#md5_hh"><B>md5_hh(a, b, c, d, x, s, t)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#md5_ii"><B>md5_ii(a, b, c, d, x, s, t)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#md5_vm_test"><B>md5_vm_test()</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCCookieException.html#message"><B>message</B></A> - 
-Instance field in  class <A HREF="JSJaCCookieException.html">JSJaCCookieException</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJIDInvalidException.html#message"><B>message</B></A> - 
-Instance field in  class <A HREF="JSJaCJIDInvalidException.html">JSJaCJIDInvalidException</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__N__"><!-- --></A><H2>
-<B>N</B></H2>
-
-<DL>
-<DT><A HREF="JSJaCCookie.html#name"><B>name</B></A> - 
-Instance field in  class <A HREF="JSJaCCookie.html">JSJaCCookie</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCCookieException.html#name"><B>name</B></A> - 
-Instance field in  class <A HREF="JSJaCCookieException.html">JSJaCCookieException</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJIDInvalidException.html#name"><B>name</B></A> - 
-Instance field in  class <A HREF="JSJaCJIDInvalidException.html">JSJaCJIDInvalidException</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="Node.html#"><B>Node</B></A> - 
- class <A HREF="Node.html">Node</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="Number.html#"><B>Number</B></A> - 
- class <A HREF="Number.html">Number</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__O__"><!-- --></A><H2>
-<B>O</B></H2>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#oDbg"><B>oDbg</B></A> - 
-Instance field in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCKeys.html#oDbg"><B>oDbg</B></A> - 
-Instance field in  class <A HREF="JSJaCKeys.html">JSJaCKeys</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__P__"><!-- --></A><H2>
-<B>P</B></H2>
-
-<DL>
-<DT><A HREF="JSJaCJSON.html#parse"><B>parse(str)</B></A> - 
-Class method in  class <A HREF="JSJaCJSON.html">JSJaCJSON</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#pType"><B>pType()</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__R__"><!-- --></A><H2>
-<B>R</B></H2>
-
-<DL>
-<DT><A HREF="JSJaCCookie.html#read"><B>read(name)</B></A> - 
-Class method in  class <A HREF="JSJaCCookie.html">JSJaCCookie</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#registerHandler"><B>registerHandler(event)</B></A> - 
-Instance method in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#registerIQGet"><B>registerIQGet(childName, childNS, handler)</B></A> - 
-Instance method in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#registerIQSet"><B>registerIQSet(childName, childNS, handler)</B></A> - 
-Instance method in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCCookie.html#remove"><B>remove(name)</B></A> - 
-Class method in  class <A HREF="JSJaCCookie.html">JSJaCCookie</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJID.html#removeResource"><B>removeResource()</B></A> - 
-Instance method in  class <A HREF="JSJaCJID.html">JSJaCJID</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCIQ.html#reply"><B>reply(payload)</B></A> - 
-Instance method in  class <A HREF="JSJaCIQ.html">JSJaCIQ</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#resume"><B>resume()</B></A> - 
-Instance method in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#rol"><B>rol(num, cnt)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__S__"><!-- --></A><H2>
-<B>S</B></H2>
-
-<DL>
-<DT><A HREF="GLOBALS.html#safe_add"><B>safe_add(x, y)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCCookie.html#secs"><B>secs</B></A> - 
-Instance field in  class <A HREF="JSJaCCookie.html">JSJaCCookie</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#send"><B>send(packet,cb,arg)</B></A> - 
-Instance method in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#sendIQ"><B>sendIQ(iq, handlers, arg)</B></A> - 
-Instance method in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCMessage.html#setBody"><B>setBody(body)</B></A> - 
-Instance method in  class <A HREF="JSJaCMessage.html">JSJaCMessage</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJID.html#setDomain"><B>setDomain(domain)</B></A> - 
-Instance method in  class <A HREF="JSJaCJID.html">JSJaCJID</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#setFrom"><B>setFrom(from)</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#setID"><B>setID(id)</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCIQ.html#setIQ"><B>setIQ(to,type,id)</B></A> - 
-Instance method in  class <A HREF="JSJaCIQ.html">JSJaCIQ</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConsoleLogger.html#setLevel"><B>setLevel(level)</B></A> - 
-Instance method in  class <A HREF="JSJaCConsoleLogger.html">JSJaCConsoleLogger</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCCookie.html#setName"><B>setName(name)</B></A> - 
-Instance method in  class <A HREF="JSJaCCookie.html">JSJaCCookie</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJID.html#setNode"><B>setNode(node)</B></A> - 
-Instance method in  class <A HREF="JSJaCJID.html">JSJaCJID</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#setPollInterval"><B>setPollInterval(timerval)</B></A> - 
-Instance method in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCHttpBindingConnection.html#setPollInterval"><B>setPollInterval(timerval)</B></A> - 
-Instance method in  class <A HREF="JSJaCHttpBindingConnection.html">JSJaCHttpBindingConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPresence.html#setPresence"><B>setPresence(show,status,prio)</B></A> - 
-Instance method in  class <A HREF="JSJaCPresence.html">JSJaCPresence</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPresence.html#setPriority"><B>setPriority(prio)</B></A> - 
-Instance method in  class <A HREF="JSJaCPresence.html">JSJaCPresence</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCIQ.html#setQuery"><B>setQuery(xmlns)</B></A> - 
-Instance method in  class <A HREF="JSJaCIQ.html">JSJaCIQ</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJID.html#setResource"><B>setResource(resource)</B></A> - 
-Instance method in  class <A HREF="JSJaCJID.html">JSJaCJID</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPresence.html#setShow"><B>setShow(show)</B></A> - 
-Instance method in  class <A HREF="JSJaCPresence.html">JSJaCPresence</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPresence.html#setStatus"><B>setStatus(status)</B></A> - 
-Instance method in  class <A HREF="JSJaCPresence.html">JSJaCPresence</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCMessage.html#setSubject"><B>setSubject(subject)</B></A> - 
-Instance method in  class <A HREF="JSJaCMessage.html">JSJaCMessage</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCMessage.html#setThread"><B>setThread(thread)</B></A> - 
-Instance method in  class <A HREF="JSJaCMessage.html">JSJaCMessage</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#setTo"><B>setTo(to)</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#setType"><B>setType(type)</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCCookie.html#setValue"><B>setValue(value)</B></A> - 
-Instance method in  class <A HREF="JSJaCCookie.html">JSJaCCookie</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#setXMLLang"><B>setXMLLang(xmllang)</B></A> - 
-Instance method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#sha1_ft"><B>sha1_ft(t, b, c, d)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#sha1_kt"><B>sha1_kt(t)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#sha1_vm_test"><B>sha1_vm_test()</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCKeys.html#size"><B>size()</B></A> - 
-Instance method in  class <A HREF="JSJaCKeys.html">JSJaCKeys</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="STANZA_ERROR.html#"><B>STANZA_ERROR</B></A> - 
- class <A HREF="STANZA_ERROR.html">STANZA_ERROR</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="STANZA_ERROR.html#constructor_detail"><B>STANZA_ERROR(code, type, cond)</B></A> - 
-Constructor in  class <A HREF="STANZA_ERROR.html">STANZA_ERROR</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConsoleLogger.html#start"><B>start()</B></A> - 
-Instance method in  class <A HREF="JSJaCConsoleLogger.html">JSJaCConsoleLogger</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#status"><B>status()</B></A> - 
-Instance method in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#str2binb"><B>str2binb(str)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#str2binl"><B>str2binl(str)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#str_hmac_md5"><B>str_hmac_md5(key, data)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#str_hmac_sha1"><B>str_hmac_sha1(key, data)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#str_md5"><B>str_md5(s)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#str_sha1"><B>str_sha1(s)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="String.html#"><B>String</B></A> - 
- class <A HREF="String.html">String</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#suspend"><B>suspend()</B></A> - 
-Instance method in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__T__"><!-- --></A><H2>
-<B>T</B></H2>
-
-<DL>
-<DT><A HREF="JSJaCJID.html#toString"><B>toString()</B></A> - 
-Instance method in  class <A HREF="JSJaCJID.html">JSJaCJID</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCJSON.html#toString"><B>toString(obj)</B></A> - 
-Class method in  class <A HREF="JSJaCJSON.html">JSJaCJSON</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="STANZA_ERROR.html#type"><B>type</B></A> - 
-Instance field in  class <A HREF="STANZA_ERROR.html">STANZA_ERROR</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__U__"><!-- --></A><H2>
-<B>U</B></H2>
-
-<DL>
-<DT><A HREF="JSJaCConnection.html#unregisterHandler"><B>unregisterHandler(event,handler)</B></A> - 
-Instance method in  class <A HREF="JSJaCConnection.html">JSJaCConnection</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#utf8d2t"><B>utf8d2t(d)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="GLOBALS.html#utf8t2d"><B>utf8t2d(t)</B></A> - 
-Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__V__"><!-- --></A><H2>
-<B>V</B></H2>
-
-<DL>
-<DT><A HREF="JSJaCCookie.html#value"><B>value</B></A> - 
-Instance field in  class <A HREF="JSJaCCookie.html">JSJaCCookie</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__W__"><!-- --></A><H2>
-<B>W</B></H2>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#wrapNode"><B>wrapNode(node)</B></A> - 
-Class method in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="JSJaCCookie.html#write"><B>write()</B></A> - 
-Instance method in  class <A HREF="JSJaCCookie.html">JSJaCCookie</A>
-<DD> 
-</DL>
-
-<HR>
-
-<A NAME="__X__"><!-- --></A><H2>
-<B>X</B></H2>
-
-<DL>
-<DT><A HREF="JSJaCPacket.html#xml"><B>xml</B></A> - 
-Instance field in  class <A HREF="JSJaCPacket.html">JSJaCPacket</A>
-<DD> 
-</DL>
-
-<DL>
-<DT><A HREF="XMLDocument.html#"><B>XMLDocument</B></A> - 
- class <A HREF="XMLDocument.html">XMLDocument</A>
-<DD> 
-</DL>
-
-<HR>
-
-<!-- 
-   Listing of letters
--->
- <A HREF="index-all.html#__A__">A</A> <A HREF="index-all.html#__B__">B</A> <A HREF="index-all.html#__C__">C</A> <A HREF="index-all.html#__D__">D</A> <A HREF="index-all.html#__E__">E</A> <A HREF="index-all.html#__G__">G</A> <A HREF="index-all.html#__H__">H</A> <A HREF="index-all.html#__I__">I</A> <A HREF="index-all.html#__J__">J</A> <A HREF="index-all.html#__L__">L</A> <A HREF="index-all.html#__M__">M</A> <A HREF="index-all.html#__N__">N</A> <A HREF="index-all.html#__O__">O</A> <A HREF="index-all.html#__P__">P</A> <A HREF="index-all.html#__R__">R</A> <A HREF="index-all.html#__S__">S</A> <A HREF="index-all.html#__T__">T</A> <A HREF="index-all.html#__U__">U</A> <A HREF="index-all.html#__V__">V</A> <A HREF="index-all.html#__W__">W</A> <A HREF="index-all.html#__X__">X</A>
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A> </TD>
-  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD-->
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-<B>JSJaC</B>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV 
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="index-all.html" TARGET="_top"><B>NO FRAMES</B></A>   
- 
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/index.html b/doc/index.html
deleted file mode 100644
index 8a7b7ad..0000000
--- a/doc/index.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<HTML>
-<HEAD>
-<TITLE>
-Generated Javascript Documentation 
-</TITLE>
-</HEAD>
-<FRAMESET cols="20%,80%">
-
-<FRAMESET rows="40%,50%">
-<FRAME src="overview-frame.html" name="overviewFrame">
-
-<FRAME src="allclasses-frame.html" name="packageFrame">
-
-</FRAMESET>
-
-<FRAME src="overview-summary.html" name="classFrame">
-</FRAMESET>
-<NOFRAMES>
-<H2>
-Frame Alert</H2>
-
-<P>
-This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
-<BR>
-Link to <A HREF="allclasses-frame.html">Non-frame version.</A></NOFRAMES>
-</HTML>
diff --git a/doc/overview-JSJaC.js.html b/doc/overview-JSJaC.js.html
deleted file mode 100644
index 3185dcf..0000000
--- a/doc/overview-JSJaC.js.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- JSJaC.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" JSJaC.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-JSJaC.js.html" 
-                                            target="classFrame">JSJaC.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-JSJaCBuilder.js.html b/doc/overview-JSJaCBuilder.js.html
deleted file mode 100644
index 9739dcb..0000000
--- a/doc/overview-JSJaCBuilder.js.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- JSJaCBuilder.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" JSJaCBuilder.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-JSJaCBuilder.js.html" 
-                                            target="classFrame">JSJaCBuilder.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-JSJaCConfig.js.html b/doc/overview-JSJaCConfig.js.html
deleted file mode 100644
index b2c55b8..0000000
--- a/doc/overview-JSJaCConfig.js.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- JSJaCConfig.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" JSJaCConfig.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-JSJaCConfig.js.html" 
-                                            target="classFrame">JSJaCConfig.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-JSJaCConnection.js.html b/doc/overview-JSJaCConnection.js.html
deleted file mode 100644
index bac52e0..0000000
--- a/doc/overview-JSJaCConnection.js.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- JSJaCConnection.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" JSJaCConnection.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-JSJaCConnection.js.html" 
-                                            target="classFrame">JSJaCConnection.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCConnection.html" TARGET="classFrame">JSJaCConnection</A>
-<BR>
-</FONT></TD>
-</TR>
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-JSJaCConsoleLogger.js.html b/doc/overview-JSJaCConsoleLogger.js.html
deleted file mode 100644
index 29b594d..0000000
--- a/doc/overview-JSJaCConsoleLogger.js.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- JSJaCConsoleLogger.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" JSJaCConsoleLogger.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-JSJaCConsoleLogger.js.html" 
-                                            target="classFrame">JSJaCConsoleLogger.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCConsoleLogger.html" TARGET="classFrame">JSJaCConsoleLogger</A>
-<BR>
-</FONT></TD>
-</TR>
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-JSJaCConstants.js.html b/doc/overview-JSJaCConstants.js.html
deleted file mode 100644
index a982f29..0000000
--- a/doc/overview-JSJaCConstants.js.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- JSJaCConstants.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" JSJaCConstants.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-JSJaCConstants.js.html" 
-                                            target="classFrame">JSJaCConstants.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="STANZA_ERROR.html" TARGET="classFrame">STANZA_ERROR</A>
-<BR>
-</FONT></TD>
-</TR>
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-JSJaCCookie.js.html b/doc/overview-JSJaCCookie.js.html
deleted file mode 100644
index 309d9bb..0000000
--- a/doc/overview-JSJaCCookie.js.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- JSJaCCookie.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" JSJaCCookie.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-JSJaCCookie.js.html" 
-                                            target="classFrame">JSJaCCookie.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCCookie.html" TARGET="classFrame">JSJaCCookie</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCCookieException.html" TARGET="classFrame">JSJaCCookieException</A>
-<BR>
-</FONT></TD>
-</TR>
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-JSJaCError.js.html b/doc/overview-JSJaCError.js.html
deleted file mode 100644
index 8b364a7..0000000
--- a/doc/overview-JSJaCError.js.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- JSJaCError.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" JSJaCError.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-JSJaCError.js.html" 
-                                            target="classFrame">JSJaCError.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-JSJaCHttpBindingConnection.js.html b/doc/overview-JSJaCHttpBindingConnection.js.html
deleted file mode 100644
index c5bd408..0000000
--- a/doc/overview-JSJaCHttpBindingConnection.js.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- JSJaCHttpBindingConnection.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" JSJaCHttpBindingConnection.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-JSJaCHttpBindingConnection.js.html" 
-                                            target="classFrame">JSJaCHttpBindingConnection.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCHttpBindingConnection.html" TARGET="classFrame">JSJaCHttpBindingConnection</A>
-<BR>
-</FONT></TD>
-</TR>
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-JSJaCHttpPollingConnection.js.html b/doc/overview-JSJaCHttpPollingConnection.js.html
deleted file mode 100644
index 5eefc9a..0000000
--- a/doc/overview-JSJaCHttpPollingConnection.js.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- JSJaCHttpPollingConnection.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" JSJaCHttpPollingConnection.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-JSJaCHttpPollingConnection.js.html" 
-                                            target="classFrame">JSJaCHttpPollingConnection.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCHttpPollingConnection.html" TARGET="classFrame">JSJaCHttpPollingConnection</A>
-<BR>
-</FONT></TD>
-</TR>
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-JSJaCJID.js.html b/doc/overview-JSJaCJID.js.html
deleted file mode 100644
index 7664bb9..0000000
--- a/doc/overview-JSJaCJID.js.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- JSJaCJID.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" JSJaCJID.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-JSJaCJID.js.html" 
-                                            target="classFrame">JSJaCJID.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCJID.html" TARGET="classFrame">JSJaCJID</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCJIDInvalidException.html" TARGET="classFrame">JSJaCJIDInvalidException</A>
-<BR>
-</FONT></TD>
-</TR>
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-JSJaCJSON.js.html b/doc/overview-JSJaCJSON.js.html
deleted file mode 100644
index fe67317..0000000
--- a/doc/overview-JSJaCJSON.js.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- JSJaCJSON.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" JSJaCJSON.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-JSJaCJSON.js.html" 
-                                            target="classFrame">JSJaCJSON.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCJSON.html" TARGET="classFrame">JSJaCJSON</A>
-<BR>
-</FONT></TD>
-</TR>
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-JSJaCKeys.js.html b/doc/overview-JSJaCKeys.js.html
deleted file mode 100644
index 5243897..0000000
--- a/doc/overview-JSJaCKeys.js.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- JSJaCKeys.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" JSJaCKeys.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-JSJaCKeys.js.html" 
-                                            target="classFrame">JSJaCKeys.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCKeys.html" TARGET="classFrame">JSJaCKeys</A>
-<BR>
-</FONT></TD>
-</TR>
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-JSJaCPacket.js.html b/doc/overview-JSJaCPacket.js.html
deleted file mode 100644
index 05d05ba..0000000
--- a/doc/overview-JSJaCPacket.js.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- JSJaCPacket.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" JSJaCPacket.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-JSJaCPacket.js.html" 
-                                            target="classFrame">JSJaCPacket.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCIQ.html" TARGET="classFrame">JSJaCIQ</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCMessage.html" TARGET="classFrame">JSJaCMessage</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCPacket.html" TARGET="classFrame">JSJaCPacket</A>
-<BR>
-</FONT></TD>
-</TR>
-
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="JSJaCPresence.html" TARGET="classFrame">JSJaCPresence</A>
-<BR>
-</FONT></TD>
-</TR>
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-crypt.js.html b/doc/overview-crypt.js.html
deleted file mode 100644
index abd323a..0000000
--- a/doc/overview-crypt.js.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- crypt.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" crypt.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-crypt.js.html" 
-                                            target="classFrame">crypt.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-frame.html b/doc/overview-frame.html
deleted file mode 100644
index b7d3d1c..0000000
--- a/doc/overview-frame.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<HTML>
-<HEAD>
-<TITLE>
-Overview ()
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title="Overview ()";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-   <IMG SRC="./"/>
-
-<H3 class="FrameHeadingFont"><B>JSJaC</B></H3>
-<TABLE BORDER="0" WIDTH="100%">
-<TR>
-<B></B></FONT></TD>
-</TR>
-</TABLE>
-
-<TABLE BORDER="0" WIDTH="100%">
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" TARGET="packageFrame">All Classes</A></FONT>
-<P>
-<FONT size="+1" CLASS="FrameHeadingFont">
-Files</FONT>
-<BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-crypt.js.html" TARGET="packageFrame">crypt.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-header.js.html" TARGET="packageFrame">header.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-jsextras.js.html" TARGET="packageFrame">jsextras.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-JSJaC.js.html" TARGET="packageFrame">JSJaC.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-JSJaCBuilder.js.html" TARGET="packageFrame">JSJaCBuilder.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-JSJaCConfig.js.html" TARGET="packageFrame">JSJaCConfig.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-JSJaCConnection.js.html" TARGET="packageFrame">JSJaCConnection.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-JSJaCConsoleLogger.js.html" TARGET="packageFrame">JSJaCConsoleLogger.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-JSJaCConstants.js.html" TARGET="packageFrame">JSJaCConstants.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-JSJaCCookie.js.html" TARGET="packageFrame">JSJaCCookie.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-JSJaCError.js.html" TARGET="packageFrame">JSJaCError.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-JSJaCHttpBindingConnection.js.html" TARGET="packageFrame">JSJaCHttpBindingConnection.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-JSJaCHttpPollingConnection.js.html" TARGET="packageFrame">JSJaCHttpPollingConnection.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-JSJaCJID.js.html" TARGET="packageFrame">JSJaCJID.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-JSJaCJSON.js.html" TARGET="packageFrame">JSJaCJSON.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-JSJaCKeys.js.html" TARGET="packageFrame">JSJaCKeys.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-JSJaCPacket.js.html" TARGET="packageFrame">JSJaCPacket.js</A></FONT><BR>
-
-<FONT CLASS="FrameItemFont"><A HREF="overview-xmlextras.js.html" TARGET="packageFrame">xmlextras.js</A></FONT><BR>
-
-</TD>
-</TR>
-</TABLE>
-
-<P>
- 
-</BODY>
-</HTML>
diff --git a/doc/overview-header.js.html b/doc/overview-header.js.html
deleted file mode 100644
index a7a817f..0000000
--- a/doc/overview-header.js.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- header.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" header.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-header.js.html" 
-                                            target="classFrame">header.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-jsextras.js.html b/doc/overview-jsextras.js.html
deleted file mode 100644
index 7f3df11..0000000
--- a/doc/overview-jsextras.js.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- jsextras.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" jsextras.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-jsextras.js.html" 
-                                            target="classFrame">jsextras.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/overview-summary-JSJaC.js.html b/doc/overview-summary-JSJaC.js.html
deleted file mode 100644
index 85c5c39..0000000
--- a/doc/overview-summary-JSJaC.js.html
+++ /dev/null
@@ -1,212 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="JSJaC.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>JSJaC.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		Magic dependency loading. Taken from script.aculo.us
- and modified to break it.
- <BR/><BR/><B>Version: </B>$Revision: 456 $<BR/><BR/><B>Author:</B> Stefan Strigler steve at zeank.in-berlin.de 
- <BR/>
-	
-</p>
-
-<hr>
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview"><span class="comment">/**
- * <span class="attrib">@fileoverview</span> Magic dependency loading. Taken from script.aculo.us
- * and modified to break it.
- * <span class="attrib">@author</span> Stefan Strigler steve<span class="attrib">@zeank</span>.in-berlin.de 
- * <span class="attrib">@version</span> $Revision: 456 $
- */</span>
-
-var JSJaC = {
-  Version: <span class="literal">'$Rev: 456 $'</span>,
-  require: <span class="reserved">function</span>(libraryName) {
-    <span class="comment">// inserting via DOM fails in Safari 2.0, so brute force approach</span>
-    document.write(<span class="literal">'<script type="text/javascript" src="'</span>+libraryName+<span class="literal">'"></script>'</span>);
-  },
-  load: <span class="reserved">function</span>() {
-    var includes =
-    [<span class="literal">'xmlextras'</span>,
-     <span class="literal">'jsextras'</span>,
-     <span class="literal">'crypt'</span>,
-     <span class="literal">'JSJaCConfig'</span>,
-     <span class="literal">'JSJaCConstants'</span>,
-     <span class="literal">'JSJaCCookie'</span>,
-     <span class="literal">'JSJaCJSON'</span>,
-     <span class="literal">'JSJaCJID'</span>,
-     <span class="literal">'JSJaCBuilder'</span>,
-     <span class="literal">'JSJaCPacket'</span>,
-     <span class="literal">'JSJaCError'</span>,
-     <span class="literal">'JSJaCKeys'</span>,
-     <span class="literal">'JSJaCConnection'</span>,
-     <span class="literal">'JSJaCHttpPollingConnection'</span>,
-     <span class="literal">'JSJaCHttpBindingConnection'</span>,
-     <span class="literal">'JSJaCConsoleLogger'</span>
-     ];
-    var scripts = document.getElementsByTagName(<span class="literal">"script"</span>);
-    var path = <span class="literal">'./'</span>;
-    <span class="reserved">for</span> (var i=0; i<scripts.length; i++) {
-      <span class="reserved">if</span> (scripts.item(i).src && scripts.item(i).src.match(/JSJaC\.js$/)) {
-        path = scripts.item(i).src.replace(/JSJaC.js$/,<span class="literal">''</span>);
-        break;
-      }
-    }
-    <span class="reserved">for</span> (var i=0; i<includes.length; i++)
-      <span class="reserved">this</span>.require(path+includes[i]+<span class="literal">'.js'</span>);
-  },
-  bind: <span class="reserved">function</span>(fn, obj, arg) {
-    <span class="reserved">return</span> <span class="reserved">function</span>() {
-      <span class="reserved">if</span> (arg)
-        fn.apply(obj, arg);
-      <span class="reserved">else</span>
-        fn.apply(obj);
-    };
-  }
-};
-
-<span class="reserved">if</span> (typeof JSJaCConnection == <span class="literal">'undefined'</span>)
-  JSJaC.load();
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-JSJaCBuilder.js.html b/doc/overview-summary-JSJaCBuilder.js.html
deleted file mode 100644
index 42326f1..0000000
--- a/doc/overview-summary-JSJaCBuilder.js.html
+++ /dev/null
@@ -1,286 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="JSJaCBuilder.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>JSJaCBuilder.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		No overview generated for 'JSJaCBuilder.js'<BR/><BR/>
-	
-</p>
-
-<hr>
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview"><span class="comment">/* Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy,
- * modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */</span>
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- * This code is taken from {<span class="attrib">@link</span>
- * http://wiki.script.aculo.us/scriptaculous/show/Builder
- * script.aculo.us' Dom Builder} and has been modified to suit our
- * needs.<br/>
- * The original parts of the code do have the following
- * copyright and license notice:<br/>
- * Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us,
- * http://mir.acu lo.us) <br/>
- * script.aculo.us is freely distributable under the terms of an
- * MIT-style license.<br>
- * For details, see the script.aculo.us web site:
- * http://script.aculo.us/<br>
- */</span>
-var JSJaCBuilder = {
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  buildNode: <span class="reserved">function</span>(doc, elementName) {
-
-    var element, ns = arguments[4];
-
-    <span class="comment">// attributes (or text)</span>
-    <span class="reserved">if</span>(arguments[2])
-      <span class="reserved">if</span>(JSJaCBuilder._isStringOrNumber(arguments[2]) ||
-         (arguments[2] instanceof Array)) {
-        element = <span class="reserved">this</span>._createElement(doc, elementName, ns);
-        JSJaCBuilder._children(doc, element, arguments[2]);
-      } <span class="reserved">else</span> {
-        ns = arguments[2][<span class="literal">'xmlns'</span>] || ns;
-        element = <span class="reserved">this</span>._createElement(doc, elementName, ns);
-        <span class="reserved">for</span>(attr in arguments[2]) {
-          <span class="reserved">if</span> (arguments[2].hasOwnProperty(attr) && attr != <span class="literal">'xmlns'</span>)
-            element.setAttribute(attr, arguments[2][attr]);
-        }
-      }
-    <span class="reserved">else</span>
-      element = <span class="reserved">this</span>._createElement(doc, elementName, ns);
-    <span class="comment">// text, or array of children</span>
-    <span class="reserved">if</span>(arguments[3])
-      JSJaCBuilder._children(doc, element, arguments[3], ns);
-
-    <span class="reserved">return</span> element;
-  },
-
-  _createElement: <span class="reserved">function</span>(doc, elementName, ns) {
-    try {
-      <span class="reserved">if</span> (ns)
-        <span class="reserved">return</span> doc.createElementNS(ns, elementName);
-    } catch (ex) { }
-
-    var el = doc.createElement(elementName);
-
-    <span class="reserved">if</span> (ns)
-      el.setAttribute(<span class="literal">"xmlns"</span>, ns);
-
-    <span class="reserved">return</span> el;
-  },
-
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  _text: <span class="reserved">function</span>(doc, text) {
-    <span class="reserved">return</span> doc.createTextNode(text);
-  },
-
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  _children: <span class="reserved">function</span>(doc, element, children, ns) {
-    <span class="reserved">if</span>(typeof children==<span class="literal">'object'</span>) { <span class="comment">// array can hold nodes and text</span>
-      <span class="reserved">for</span> (var i in children) {
-        <span class="reserved">if</span> (children.hasOwnProperty(i)) {
-          var e = children[i];
-          <span class="reserved">if</span> (typeof e==<span class="literal">'object'</span>) {
-            <span class="reserved">if</span> (e instanceof Array) {
-              var node = JSJaCBuilder.buildNode(doc, e[0], e[1], e[2], ns);
-              element.appendChild(node);
-            } <span class="reserved">else</span> {
-              element.appendChild(e);
-            }
-          } <span class="reserved">else</span> {
-            <span class="reserved">if</span>(JSJaCBuilder._isStringOrNumber(e)) {
-              element.appendChild(JSJaCBuilder._text(doc, e));
-            }
-          }
-        }
-      }
-    } <span class="reserved">else</span> {
-      <span class="reserved">if</span>(JSJaCBuilder._isStringOrNumber(children)) {
-        element.appendChild(JSJaCBuilder._text(doc, children));
-      }
-    }
-  },
-
-  _attributes: <span class="reserved">function</span>(attributes) {
-    var attrs = [];
-    <span class="reserved">for</span>(attribute in attributes)
-      <span class="reserved">if</span> (attributes.hasOwnProperty(attribute))
-        attrs.push(attribute +
-          <span class="literal">'="'</span> + attributes[attribute].toString().htmlEnc() + <span class="literal">'"'</span>);
-    <span class="reserved">return</span> attrs.join(<span class="literal">" "</span>);
-  },
-
-  _isStringOrNumber: <span class="reserved">function</span>(param) {
-    <span class="reserved">return</span>(typeof param==<span class="literal">'string'</span> || typeof param==<span class="literal">'number'</span>);
-  }
-};
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-JSJaCConfig.js.html b/doc/overview-summary-JSJaCConfig.js.html
deleted file mode 100644
index 557b967..0000000
--- a/doc/overview-summary-JSJaCConfig.js.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="JSJaCConfig.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>JSJaCConfig.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		No overview generated for 'JSJaCConfig.js'<BR/><BR/>
-	
-</p>
-
-<hr>
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview">
-var JSJAC_HAVEKEYS = true;  <span class="comment">// whether to use keys</span>
-var JSJAC_NKEYS    = 16;    <span class="comment">// number of keys to generate</span>
-var JSJAC_INACTIVITY = 300; <span class="comment">// qnd hack to make suspend/resume work more smoothly with polling</span>
-var JSJAC_ERR_COUNT = 10;   <span class="comment">// number of retries in case of connection errors</span>
-
-var JSJAC_ALLOW_PLAIN = true; <span class="comment">// whether to allow plaintext logins</span>
-
-var JSJAC_CHECKQUEUEINTERVAL = 1; <span class="comment">// msecs to poll send queue</span>
-var JSJAC_CHECKINQUEUEINTERVAL = 1; <span class="comment">// msecs to poll incoming queue</span>
-
-<span class="comment">// Options specific to HTTP Binding (BOSH)</span>
-var JSJACHBC_BOSH_VERSION  = <span class="literal">"1.6"</span>;
-var JSJACHBC_USE_BOSH_VER  = true;
-
-var JSJACHBC_MAX_HOLD = 1;
-var JSJACHBC_MAX_WAIT = 300;
-
-var JSJACHBC_MAXPAUSE = 120;
-
-<span class="comment">/*** END CONFIG ***/</span>
-
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-JSJaCConnection.js.html b/doc/overview-summary-JSJaCConnection.js.html
deleted file mode 100644
index e067237..0000000
--- a/doc/overview-summary-JSJaCConnection.js.html
+++ /dev/null
@@ -1,1426 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="JSJaCConnection.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>JSJaCConnection.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		Contains all things in common for all subtypes of connections
- supported.
- <BR/><BR/><B>Version: </B>$Revision: 476 $<BR/><BR/><B>Author:</B> Stefan Strigler steve at zeank.in-berlin.de
- <BR/>
-	
-</p>
-
-<hr>
-
-
-    <table border="1" cellpadding="3" cellspacing="0" width="100%">
-    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
-    <td colspan=2><font size="+2">
-    
-        <b>Class Summary</b>
-    
-    </font></td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="JSJaCConnection.html">JSJaCConnection</a></b></td>
-    <td>Somewhat abstract base class for jabber connections.</td>
-    </tr>
-    
-    </table>
-    <hr/> 
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview"><span class="comment">/**
- * <span class="attrib">@fileoverview</span> Contains all things in common for all subtypes of connections
- * supported.
- * <span class="attrib">@author</span> Stefan Strigler steve<span class="attrib">@zeank</span>.in-berlin.de
- * <span class="attrib">@version</span> $Revision: 476 $
- */</span>
-
-<span class="comment">/**
- * Creates a new Jabber connection (a connection to a jabber server)
- * <span class="attrib">@class</span> Somewhat abstract base class for jabber connections. Contains all
- * of the code in common for all jabber connections
- * <span class="attrib">@constructor</span>
- * <span class="attrib">@param</span> {JSON http://www.json.org/index} oArg JSON with properties: <br>
- * * <code>httpbase</code> the http base address of the service to be used for
- * connecting to jabber<br>
- * * <code>oDbg</code> (optional) a reference to a debugger interface
- */</span>
-<span class="reserved">function</span> JSJaCConnection(oArg) {
-
-  <span class="reserved">if</span> (oArg && oArg.oDbg && oArg.oDbg.log)
-    <span class="comment">/**
-     * Reference to debugger interface
-     *(needs to implement method <code>log</code>)
-     * <span class="attrib">@type</span> Debugger
-     */</span>
-    <span class="reserved">this</span>.oDbg = oArg.oDbg;
-  <span class="reserved">else</span> {
-    <span class="reserved">this</span>.oDbg = new Object(); <span class="comment">// always initialise a debugger</span>
-    <span class="reserved">this</span>.oDbg.log = <span class="reserved">function</span>() { };
-  }
-
-  <span class="reserved">if</span> (oArg && oArg.httpbase)
-    <span class="comment">/**
-     * <span class="attrib">@private</span>
-     */</span>
-    <span class="reserved">this</span>._httpbase = oArg.httpbase;
- 
-  <span class="reserved">if</span> (oArg && oArg.allow_plain)
-    <span class="comment">/**
-     * <span class="attrib">@private</span>
-     */</span>
-    <span class="reserved">this</span>.allow_plain = oArg.allow_plain;
-  <span class="reserved">else</span>
-    <span class="reserved">this</span>.allow_plain = JSJAC_ALLOW_PLAIN;
-
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._connected = false;
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._events = new Array();
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._keys = null;
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._ID = 0;
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._inQ = new Array();
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._pQueue = new Array();
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._regIDs = new Array();
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._req = new Array();
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._status = <span class="literal">'intialized'</span>;
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._errcnt = 0;
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._inactivity = JSJAC_INACTIVITY;
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._sendRawCallbacks = new Array();
-
-  <span class="reserved">if</span> (oArg && oArg.timerval)
-    <span class="reserved">this</span>.setPollInterval(oArg.timerval);
-}
-
-JSJaCConnection.<span class="reserved">prototype</span>.connect = <span class="reserved">function</span>(oArg) {
-  <span class="reserved">this</span>._setStatus(<span class="literal">'connecting'</span>);
-
-  <span class="reserved">this</span>.domain = oArg.domain || <span class="literal">'localhost'</span>;
-  <span class="reserved">this</span>.username = oArg.username;
-  <span class="reserved">this</span>.resource = oArg.resource;
-  <span class="reserved">this</span>.pass = oArg.pass;
-  <span class="reserved">this</span>.register = oArg.register;
-
-  <span class="reserved">this</span>.authhost = oArg.authhost || <span class="reserved">this</span>.domain;
-  <span class="reserved">this</span>.authtype = oArg.authtype || <span class="literal">'sasl'</span>;
-
-  <span class="reserved">if</span> (oArg.xmllang && oArg.xmllang != <span class="literal">''</span>)
-    <span class="reserved">this</span>._xmllang = oArg.xmllang;
-
-  <span class="reserved">this</span>.host = oArg.host || <span class="reserved">this</span>.domain;
-  <span class="reserved">this</span>.port = oArg.port || 5222;
-  <span class="reserved">if</span> (oArg.secure)
-    <span class="reserved">this</span>.secure = <span class="literal">'true'</span>;
-  <span class="reserved">else</span>
-    <span class="reserved">this</span>.secure = <span class="literal">'false'</span>;
-
-  <span class="reserved">if</span> (oArg.wait)
-    <span class="reserved">this</span>._wait = oArg.wait;
-
-  <span class="reserved">this</span>.jid = <span class="reserved">this</span>.username + <span class="literal">'@'</span> + <span class="reserved">this</span>.domain;
-  <span class="reserved">this</span>.fulljid = <span class="reserved">this</span>.jid + <span class="literal">'/'</span> + <span class="reserved">this</span>.resource;
-
-  <span class="reserved">this</span>._rid  = Math.round( 100000.5 + ( ( (900000.49999) - (100000.5) ) * Math.random() ) );
-
-  <span class="comment">// setupRequest must be done after rid is created but before first use in reqstr</span>
-  var slot = <span class="reserved">this</span>._getFreeSlot();
-  <span class="reserved">this</span>._req[slot] = <span class="reserved">this</span>._setupRequest(true);
-
-  var reqstr = <span class="reserved">this</span>._getInitialRequestString();
-
-  <span class="reserved">this</span>.oDbg.log(reqstr,4);
-
-  <span class="reserved">this</span>._req[slot].r.onreadystatechange = 
-  JSJaC.bind(<span class="reserved">function</span>() {
-               <span class="reserved">if</span> (<span class="reserved">this</span>._req[slot].r.readyState == 4) {
-                 <span class="reserved">this</span>.oDbg.log(<span class="literal">"async recv: "</span>+<span class="reserved">this</span>._req[slot].r.responseText,4);
-                 <span class="reserved">this</span>._handleInitialResponse(slot); <span class="comment">// handle response</span>
-               }
-             }, <span class="reserved">this</span>);
-  
-  <span class="reserved">if</span> (typeof(<span class="reserved">this</span>._req[slot].r.onerror) != <span class="literal">'undefined'</span>) {
-    <span class="reserved">this</span>._req[slot].r.onerror = 
-      JSJaC.bind(<span class="reserved">function</span>(e) {
-                   <span class="reserved">this</span>.oDbg.log(<span class="literal">'XmlHttpRequest error'</span>,1);
-                   <span class="reserved">return</span> false;
-                 }, <span class="reserved">this</span>);
-  }
-
-  <span class="reserved">this</span>._req[slot].r.send(reqstr);
-};
-
-<span class="comment">/**
- * Tells whether this connection is connected
- * <span class="attrib">@return</span> <code>true</code> if this connections is connected,
- * <code>false</code> otherwise
- * <span class="attrib">@type</span> boolean
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>.connected = <span class="reserved">function</span>() { <span class="reserved">return</span> <span class="reserved">this</span>._connected; };
-
-<span class="comment">/**
- * Disconnects from jabber server and terminates session (if applicable)
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>.disconnect = <span class="reserved">function</span>() {
-  <span class="reserved">this</span>._setStatus(<span class="literal">'disconnecting'</span>);
-
-  <span class="reserved">if</span> (!<span class="reserved">this</span>.connected())
-    <span class="reserved">return</span>;
-  <span class="reserved">this</span>._connected = false;
-
-  clearInterval(<span class="reserved">this</span>._interval);
-  clearInterval(<span class="reserved">this</span>._inQto);
-
-  <span class="reserved">if</span> (<span class="reserved">this</span>._timeout)
-    clearTimeout(<span class="reserved">this</span>._timeout); <span class="comment">// remove timer</span>
-
-  var slot = <span class="reserved">this</span>._getFreeSlot();
-  <span class="comment">// Intentionally synchronous</span>
-  <span class="reserved">this</span>._req[slot] = <span class="reserved">this</span>._setupRequest(false);
-
-  request = <span class="reserved">this</span>._getRequestString(false, true);
-
-  <span class="reserved">this</span>.oDbg.log(<span class="literal">"Disconnecting: "</span> + request,4);
-  <span class="reserved">this</span>._req[slot].r.send(request);
-
-  try {
-    JSJaCCookie.read(<span class="literal">'JSJaC_State'</span>).erase();
-  } catch (e) {}
-
-  <span class="reserved">this</span>.oDbg.log(<span class="literal">"Disconnected: "</span>+<span class="reserved">this</span>._req[slot].r.responseText,2);
-  <span class="reserved">this</span>._handleEvent(<span class="literal">'ondisconnect'</span>);
-};
-
-<span class="comment">/**
- * Gets current value of polling interval
- * <span class="attrib">@return</span> Polling interval in milliseconds
- * <span class="attrib">@type</span> int
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>.getPollInterval = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>._timerval;
-};
-
-<span class="comment">/**
- * Registers an event handler (callback) for this connection.
-
- * <p>Note: All of the packet handlers for specific packets (like
- * message_in, presence_in and iq_in) fire only if there's no
- * callback associated with the id.<br>
-
- * <p>Example:<br/>
- * <code>con.registerHandler('iq', 'query', 'jabber:iq:version', handleIqVersion);</code>
-
-
- * <span class="attrib">@param</span> {String} event One of
-
- * <ul>
- * <li>onConnect - connection has been established and authenticated</li>
- * <li>onDisconnect - connection has been disconnected</li>
- * <li>onResume - connection has been resumed</li>
-
- * <li>onStatusChanged - connection status has changed, current
- * status as being passed argument to handler. See {<span class="attrib">@link</span> #status}.</li>
-
- * <li>onError - an error has occured, error node is supplied as
- * argument, like this:<br><code>&lt;error code='404' type='cancel'&gt;<br>
- * &lt;item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/&gt;<br>
- * &lt;/error&gt;</code></li>
-
- * <li>packet_in - a packet has been received (argument: the
- * packet)</li>
-
- * <li>packet_out - a packet is to be sent(argument: the
- * packet)</li>
-
- * <li>message_in | message - a message has been received (argument:
- * the packet)</li>
-
- * <li>message_out - a message packet is to be sent (argument: the
- * packet)</li>
-
- * <li>presence_in | presence - a presence has been received
- * (argument: the packet)</li>
-
- * <li>presence_out - a presence packet is to be sent (argument: the
- * packet)</li>
-
- * <li>iq_in | iq - an iq has been received (argument: the packet)</li>
- * <li>iq_out - an iq is to be sent (argument: the packet)</li>
- * </ul>
-
- * <span class="attrib">@param</span> {String} childName A childnode's name that must occur within a
- * retrieved packet [optional]
-
- * <span class="attrib">@param</span> {String} childNS A childnode's namespace that must occure within
- * a retrieved packet (works only if childName is given) [optional]
-
- * <span class="attrib">@param</span> {String} type The type of the packet to handle (works only if childName and chidNS are given (both may be set to '*' in order to get skipped) [optional]
-
- * <span class="attrib">@param</span> {Function} handler The handler to be called when event occurs. If your handler returns 'true' it cancels bubbling of the event. No other registered handlers for this event will be fired.
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>.registerHandler = <span class="reserved">function</span>(event) {
-  event = event.toLowerCase(); <span class="comment">// don't be case-sensitive here</span>
-  var eArg = {handler: arguments[arguments.length-1],
-              childName: <span class="literal">'*'</span>,
-              childNS: <span class="literal">'*'</span>,
-              type: <span class="literal">'*'</span>};
-  <span class="reserved">if</span> (arguments.length > 2)
-    eArg.childName = arguments[1];
-  <span class="reserved">if</span> (arguments.length > 3)
-    eArg.childNS = arguments[2];
-  <span class="reserved">if</span> (arguments.length > 4)
-    eArg.type = arguments[3];
-  <span class="reserved">if</span> (!<span class="reserved">this</span>._events[event])
-    <span class="reserved">this</span>._events[event] = new Array(eArg);
-  <span class="reserved">else</span>
-    <span class="reserved">this</span>._events[event] = <span class="reserved">this</span>._events[event].concat(eArg);
-
-  <span class="comment">// sort events in order how specific they match criterias thus using</span>
-  <span class="comment">// wildcard patterns puts them back in queue when it comes to</span>
-  <span class="comment">// bubbling the event</span>
-  <span class="reserved">this</span>._events[event] =
-  <span class="reserved">this</span>._events[event].sort(<span class="reserved">function</span>(a,b) {
-    var aRank = 0;
-    var bRank = 0;
-    with (a) {
-      <span class="reserved">if</span> (type == <span class="literal">'*'</span>)
-        aRank++;
-      <span class="reserved">if</span> (childNS == <span class="literal">'*'</span>)
-        aRank++;
-      <span class="reserved">if</span> (childName == <span class="literal">'*'</span>)
-        aRank++;
-    }
-    with (b) {
-      <span class="reserved">if</span> (type == <span class="literal">'*'</span>)
-        bRank++;
-      <span class="reserved">if</span> (childNS == <span class="literal">'*'</span>)
-        bRank++;
-      <span class="reserved">if</span> (childName == <span class="literal">'*'</span>)
-        bRank++;
-    }
-    <span class="reserved">if</span> (aRank > bRank)
-      <span class="reserved">return</span> 1;
-    <span class="reserved">if</span> (aRank < bRank)
-      <span class="reserved">return</span> -1;
-    <span class="reserved">return</span> 0;
-  });
-  <span class="reserved">this</span>.oDbg.log(<span class="literal">"registered handler for event '"</span>+event+<span class="literal">"'"</span>,2);
-};
-
-JSJaCConnection.<span class="reserved">prototype</span>.unregisterHandler = <span class="reserved">function</span>(event,handler) {
-  event = event.toLowerCase(); <span class="comment">// don't be case-sensitive here</span>
-
-  <span class="reserved">if</span> (!<span class="reserved">this</span>._events[event])
-    <span class="reserved">return</span>;
-
-  var arr = <span class="reserved">this</span>._events[event], res = new Array();
-  <span class="reserved">for</span> (var i=0; i<arr.length; i++)
-    <span class="reserved">if</span> (arr[i].handler != handler)
-      res.push(arr[i]);
-
-  <span class="reserved">if</span> (arr.length != res.length) {
-    <span class="reserved">this</span>._events[event] = res;
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"unregistered handler for event '"</span>+event+<span class="literal">"'"</span>,2);
-  }
-};
-
-<span class="comment">/**
- * Register for iq packets of type 'get'.
- * <span class="attrib">@param</span> {String} childName A childnode's name that must occur within a
- * retrieved packet
-
- * <span class="attrib">@param</span> {String} childNS A childnode's namespace that must occure within
- * a retrieved packet (works only if childName is given)
-
- * <span class="attrib">@param</span> {Function} handler The handler to be called when event occurs. If your handler returns 'true' it cancels bubbling of the event. No other registered handlers for this event will be fired.
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>.registerIQGet =
-  <span class="reserved">function</span>(childName, childNS, handler) {
-  <span class="reserved">this</span>.registerHandler(<span class="literal">'iq'</span>, childName, childNS, <span class="literal">'get'</span>, handler);
-};
-
-<span class="comment">/**
- * Register for iq packets of type 'set'.
- * <span class="attrib">@param</span> {String} childName A childnode's name that must occur within a
- * retrieved packet
-
- * <span class="attrib">@param</span> {String} childNS A childnode's namespace that must occure within
- * a retrieved packet (works only if childName is given)
-
- * <span class="attrib">@param</span> {Function} handler The handler to be called when event occurs. If your handler returns 'true' it cancels bubbling of the event. No other registered handlers for this event will be fired.
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>.registerIQSet =
-  <span class="reserved">function</span>(childName, childNS, handler) {
-  <span class="reserved">this</span>.registerHandler(<span class="literal">'iq'</span>, childName, childNS, <span class="literal">'set'</span>, handler);
-};
-
-<span class="comment">/**
- * Resumes this connection from saved state (cookie)
- * <span class="attrib">@return</span> Whether resume was successful
- * <span class="attrib">@type</span> boolean
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>.resume = <span class="reserved">function</span>() {
-  try {
-    <span class="reserved">this</span>._setStatus(<span class="literal">'resuming'</span>);
-    var s = unescape(JSJaCCookie.read(<span class="literal">'JSJaC_State'</span>).getValue());
-     
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">'read cookie: '</span>+s,2);
-
-    var o = JSJaCJSON.parse(s);
-     
-    <span class="reserved">for</span> (var i in o)
-      <span class="reserved">if</span> (o.hasOwnProperty(i))
-        <span class="reserved">this</span>[i] = o[i];
-     
-    <span class="comment">// copy keys - not being very generic here :-/</span>
-    <span class="reserved">if</span> (<span class="reserved">this</span>._keys) {
-      <span class="reserved">this</span>._keys2 = new JSJaCKeys();
-      var u = <span class="reserved">this</span>._keys2._getSuspendVars();
-      <span class="reserved">for</span> (var i=0; i<u.length; i++)
-        <span class="reserved">this</span>._keys2[u[i]] = <span class="reserved">this</span>._keys[u[i]];
-      <span class="reserved">this</span>._keys = <span class="reserved">this</span>._keys2;
-    }
-
-    try {
-      JSJaCCookie.read(<span class="literal">'JSJaC_State'</span>).erase();
-    } catch (e) {}
-
-    <span class="reserved">if</span> (<span class="reserved">this</span>._connected) {
-      <span class="comment">// don't poll too fast!</span>
-      <span class="reserved">this</span>._handleEvent(<span class="literal">'onresume'</span>);
-      setTimeout(JSJaC.bind(<span class="reserved">this</span>._resume, <span class="reserved">this</span>),<span class="reserved">this</span>.getPollInterval());
-      <span class="reserved">this</span>._interval = setInterval(JSJaC.bind(<span class="reserved">this</span>._checkQueue, <span class="reserved">this</span>),
-				   JSJAC_CHECKQUEUEINTERVAL);
-      <span class="reserved">this</span>._inQto = setInterval(JSJaC.bind(<span class="reserved">this</span>._checkInQ, <span class="reserved">this</span>),
-				JSJAC_CHECKINQUEUEINTERVAL);
-    }
-
-    <span class="reserved">return</span> (<span class="reserved">this</span>._connected === true);
-  } catch (e) {
-    <span class="reserved">if</span> (e.message)
-      <span class="reserved">this</span>.oDbg.log(<span class="literal">"Resume failed: "</span>+e.message, 1);
-    <span class="reserved">else</span>
-      <span class="reserved">this</span>.oDbg.log(<span class="literal">"Resume failed: "</span>+e, 1);
-    <span class="reserved">return</span> false;
-  }
-};
-
-<span class="comment">/**
- * Sends a JSJaCPacket
- * <span class="attrib">@param</span> {JSJaCPacket} packet  The packet to send
- * <span class="attrib">@param</span> {Function}    cb      The callback to be called if there's a reply
- * to this packet (identified by id) [optional]
- * <span class="attrib">@param</span> {Object}      arg     Arguments passed to the callback
- * (additionally to the packet received) [optional]
- * <span class="attrib">@return</span> 'true' if sending was successfull, 'false' otherwise
- * <span class="attrib">@type</span> boolean
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>.send = <span class="reserved">function</span>(packet,cb,arg) {
-  <span class="reserved">if</span> (!packet || !packet.pType) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"no packet: "</span>+packet, 1);
-    <span class="reserved">return</span> false;
-  }
-
-  <span class="reserved">if</span> (!<span class="reserved">this</span>.connected())
-    <span class="reserved">return</span> false;
-
-  <span class="comment">// remember id for response if callback present</span>
-  <span class="reserved">if</span> (cb) {
-    <span class="reserved">if</span> (!packet.getID())
-      packet.setID(<span class="literal">'JSJaCID_'</span>+<span class="reserved">this</span>._ID++); <span class="comment">// generate an ID</span>
-
-    <span class="comment">// register callback with id</span>
-    <span class="reserved">this</span>._registerPID(packet.getID(),cb,arg);
-  }
-
-  try {
-    <span class="reserved">this</span>._handleEvent(packet.pType()+<span class="literal">'_out'</span>, packet);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">"packet_out"</span>, packet);
-    <span class="reserved">this</span>._pQueue = <span class="reserved">this</span>._pQueue.concat(packet.xml());
-  } catch (e) {
-    <span class="reserved">this</span>.oDbg.log(e.toString(),1);
-    <span class="reserved">return</span> false;
-  }
-
-  <span class="reserved">return</span> true;
-};
-
-<span class="comment">/**
- * Sends an IQ packet. Has default handlers for each reply type.
- * Those maybe overriden by passing an appropriate handler.
- * <span class="attrib">@param</span> {JSJaCIQPacket} iq - the iq packet to send
- * <span class="attrib">@param</span> {Object} handlers - object with properties 'error_handler',
- *                            'result_handler' and 'default_handler'
- *                            with appropriate functions
- * <span class="attrib">@param</span> {Object} arg - argument to handlers
- * <span class="attrib">@return</span> 'true' if sending was successfull, 'false' otherwise
- * <span class="attrib">@type</span> boolean
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>.sendIQ = <span class="reserved">function</span>(iq, handlers, arg) {
-  <span class="reserved">if</span> (!iq || iq.pType() != <span class="literal">'iq'</span>) {
-    <span class="reserved">return</span> false;
-  }
-
-  handlers = handlers || {};
-  var error_handler = handlers.error_handler || <span class="reserved">function</span>(aIq) {
-    <span class="reserved">this</span>.oDbg.log(iq.xml(), 1);
-  };
- 
-  var result_handler = handlers.result_handler ||  <span class="reserved">function</span>(aIq) {
-    <span class="reserved">this</span>.oDbg.log(aIq.xml(), 2);
-  };
-  <span class="comment">// unsure, what's the use of this?</span>
-  var default_handler = handlers.default_handler || <span class="reserved">function</span>(aIq) {
-    <span class="reserved">this</span>.oDbg.log(aIq.xml(), 2);
-  };
-
-  var iqHandler = <span class="reserved">function</span>(aIq, arg) {
-    switch (aIq.getType()) {
-      case <span class="literal">'error'</span>:
-      error_handler(aIq);
-      break;
-      case <span class="literal">'result'</span>:
-      result_handler(aIq, arg);
-      break;
-      default: <span class="comment">// may it be?</span>
-      default_handler(aIq, arg);
-    }
-  };
-  <span class="reserved">return</span> <span class="reserved">this</span>.send(iq, iqHandler, arg);
-};
-
-<span class="comment">/**
- * Sets polling interval for this connection
- * <span class="attrib">@param</span> {int} millisecs Milliseconds to set timer to
- * <span class="attrib">@return</span> effective interval this connection has been set to
- * <span class="attrib">@type</span> int
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>.setPollInterval = <span class="reserved">function</span>(timerval) {
-  <span class="reserved">if</span> (timerval && !isNaN(timerval))
-    <span class="reserved">this</span>._timerval = timerval;
-  <span class="reserved">return</span> <span class="reserved">this</span>._timerval;
-};
-
-<span class="comment">/**
- * Returns current status of this connection
- * <span class="attrib">@return</span> String to denote current state. One of
- * <ul>
- * <li>'initializing' ... well
- * <li>'connecting' if connect() was called
- * <li>'resuming' if resume() was called
- * <li>'processing' if it's about to operate as normal
- * <li>'onerror_fallback' if there was an error with the request object
- * <li>'protoerror_fallback' if there was an error at the http binding protocol flow (most likely that's where you interested in)
- * <li>'internal_server_error' in case of an internal server error
- * <li>'suspending' if suspend() is being called
- * <li>'aborted' if abort() was called
- * <li>'disconnecting' if disconnect() has been called
- * </ul>
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>.status = <span class="reserved">function</span>() { <span class="reserved">return</span> <span class="reserved">this</span>._status; };
-
-<span class="comment">/**
- * Suspsends this connection (saving state for later resume)
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>.suspend = <span class="reserved">function</span>() {
-	
-    <span class="comment">// remove timers</span>
-    clearTimeout(<span class="reserved">this</span>._timeout);
-    clearInterval(<span class="reserved">this</span>._interval);
-    clearInterval(<span class="reserved">this</span>._inQto);
-
-    <span class="reserved">this</span>._suspend();
-
-    var u = (<span class="literal">'_connected,_keys,_ID,_inQ,_pQueue,_regIDs,_errcnt,_inactivity,domain,username,resource,jid,fulljid,_sid,_httpbase,_timerval,_is_polling'</span>).split(<span class="literal">','</span>);
-    u = u.concat(<span class="reserved">this</span>._getSuspendVars());
-    var s = new Object();
-
-    <span class="reserved">for</span> (var i=0; i<u.length; i++) {
-      <span class="reserved">if</span> (!<span class="reserved">this</span>[u[i]]) continue; <span class="comment">// hu? skip these!</span>
-      <span class="reserved">if</span> (<span class="reserved">this</span>[u[i]]._getSuspendVars) {
-        var uo = <span class="reserved">this</span>[u[i]]._getSuspendVars();
-        var o = new Object();
-        <span class="reserved">for</span> (var j=0; j<uo.length; j++)
-          o[uo[j]] = <span class="reserved">this</span>[u[i]][uo[j]];
-      } <span class="reserved">else</span>
-        var o = <span class="reserved">this</span>[u[i]];
-
-      s[u[i]] = o;
-    }
-    var c = new JSJaCCookie(<span class="literal">'JSJaC_State'</span>, escape(JSJaCJSON.toString(s)),
-                            <span class="reserved">this</span>._inactivity);
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"writing cookie: "</span>+unescape(c.value)+<span class="literal">"\n(length:"</span>+
-                  unescape(c.value).length+<span class="literal">")"</span>,2);
-    c.write();
-
-    try {
-      var c2 = JSJaCCookie.read(<span class="literal">'JSJaC_State'</span>);
-      <span class="reserved">if</span> (c.value != c2.value) {
-        <span class="reserved">this</span>.oDbg.log(<span class="literal">"Suspend failed writing cookie.\nRead: "</span>+
-                      unescape(JSJaCCookie.read(<span class="literal">'JSJaC_State'</span>)), 1);
-        c.erase();
-      }
-
-      <span class="reserved">this</span>._connected = false;
-
-      <span class="reserved">this</span>._setStatus(<span class="literal">'suspending'</span>);
-    } catch (e) {
-      <span class="reserved">this</span>.oDbg.log(<span class="literal">"Failed reading cookie 'JSJaC_State': "</span>+e.message);
-    }
-
-  };
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._abort = <span class="reserved">function</span>() {
-  clearTimeout(<span class="reserved">this</span>._timeout); <span class="comment">// remove timer</span>
-
-  clearInterval(<span class="reserved">this</span>._inQto);
-  clearInterval(<span class="reserved">this</span>._interval);
-
-  <span class="reserved">this</span>._connected = false;
-
-  <span class="reserved">this</span>._setStatus(<span class="literal">'aborted'</span>);
-
-  <span class="reserved">this</span>.oDbg.log(<span class="literal">"Disconnected."</span>,1);
-  <span class="reserved">this</span>._handleEvent(<span class="literal">'ondisconnect'</span>);
-  <span class="reserved">this</span>._handleEvent(<span class="literal">'onerror'</span>,
-                    JSJaCError(<span class="literal">'500'</span>,<span class="literal">'cancel'</span>,<span class="literal">'service-unavailable'</span>));
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._checkInQ = <span class="reserved">function</span>() {
-  <span class="reserved">for</span> (var i=0; i<<span class="reserved">this</span>._inQ.length && i<10; i++) {
-    var item = <span class="reserved">this</span>._inQ[0];
-    <span class="reserved">this</span>._inQ = <span class="reserved">this</span>._inQ.slice(1,<span class="reserved">this</span>._inQ.length);
-    var packet = JSJaCPacket.wrapNode(item);
-
-    <span class="reserved">if</span> (!packet)
-      <span class="reserved">return</span>;
-
-    <span class="reserved">this</span>._handleEvent(<span class="literal">"packet_in"</span>, packet);
-
-    <span class="reserved">if</span> (packet.pType && !<span class="reserved">this</span>._handlePID(packet)) {
-      <span class="reserved">this</span>._handleEvent(packet.pType()+<span class="literal">'_in'</span>,packet);
-      <span class="reserved">this</span>._handleEvent(packet.pType(),packet);
-    }
-  }
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._checkQueue = <span class="reserved">function</span>() {
-  <span class="reserved">if</span> (<span class="reserved">this</span>._pQueue.length != 0)
-    <span class="reserved">this</span>._process();
-  <span class="reserved">return</span> true;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._doAuth = <span class="reserved">function</span>() {
-  <span class="reserved">if</span> (<span class="reserved">this</span>.has_sasl && <span class="reserved">this</span>.authtype == <span class="literal">'nonsasl'</span>)
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"Warning: SASL present but not used"</span>, 1);
-
-  <span class="reserved">if</span> (!<span class="reserved">this</span>._doSASLAuth() &&
-      !<span class="reserved">this</span>._doLegacyAuth()) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"Auth failed for authtype "</span>+<span class="reserved">this</span>.authtype,1);
-    <span class="reserved">this</span>.disconnect();
-    <span class="reserved">return</span> false;
-  }
-  <span class="reserved">return</span> true;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._doInBandReg = <span class="reserved">function</span>() {
-  <span class="reserved">if</span> (<span class="reserved">this</span>.authtype == <span class="literal">'saslanon'</span> || <span class="reserved">this</span>.authtype == <span class="literal">'anonymous'</span>)
-    <span class="reserved">return</span>; <span class="comment">// bullshit - no need to register if anonymous</span>
-
-  <span class="comment">/* ***
-   * In-Band Registration see JEP-0077
-   */</span>
-
-  var iq = new JSJaCIQ();
-  iq.setType(<span class="literal">'set'</span>);
-  iq.setID(<span class="literal">'reg1'</span>);
-  iq.appendNode(<span class="literal">"query"</span>, {xmlns: <span class="literal">"jabber:iq:register"</span>},
-                [[<span class="literal">"username"</span>, <span class="reserved">this</span>.username],
-                 [<span class="literal">"password"</span>, <span class="reserved">this</span>.pass]]);
-
-  <span class="reserved">this</span>.send(iq,<span class="reserved">this</span>._doInBandRegDone);
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._doInBandRegDone = <span class="reserved">function</span>(iq) {
-  <span class="reserved">if</span> (iq && iq.getType() == <span class="literal">'error'</span>) { <span class="comment">// we failed to register</span>
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"registration failed for "</span>+<span class="reserved">this</span>.username,0);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'onerror'</span>,iq.getChild(<span class="literal">'error'</span>));
-    <span class="reserved">return</span>;
-  }
-
-  <span class="reserved">this</span>.oDbg.log(<span class="reserved">this</span>.username + <span class="literal">" registered succesfully"</span>,0);
-
-  <span class="reserved">this</span>._doAuth();
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._doLegacyAuth = <span class="reserved">function</span>() {
-  <span class="reserved">if</span> (<span class="reserved">this</span>.authtype != <span class="literal">'nonsasl'</span> && <span class="reserved">this</span>.authtype != <span class="literal">'anonymous'</span>)
-    <span class="reserved">return</span> false;
-
-  <span class="comment">/* ***
-   * Non-SASL Authentication as described in JEP-0078
-   */</span>
-  var iq = new JSJaCIQ();
-  iq.setIQ(<span class="reserved">this</span>.server,<span class="literal">'get'</span>,<span class="literal">'auth1'</span>);
-  iq.appendNode(<span class="literal">'query'</span>, {xmlns: <span class="literal">'jabber:iq:auth'</span>},
-                [[<span class="literal">'username'</span>, <span class="reserved">this</span>.username]]);
-
-  <span class="reserved">this</span>.send(iq,<span class="reserved">this</span>._doLegacyAuth2);
-  <span class="reserved">return</span> true;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._doLegacyAuth2 = <span class="reserved">function</span>(iq) {
-  <span class="reserved">if</span> (!iq || iq.getType() != <span class="literal">'result'</span>) {
-    <span class="reserved">if</span> (iq && iq.getType() == <span class="literal">'error'</span>)
-      <span class="reserved">this</span>._handleEvent(<span class="literal">'onerror'</span>,iq.getChild(<span class="literal">'error'</span>));
-    <span class="reserved">this</span>.disconnect();
-    <span class="reserved">return</span>;
-  }
-
-  var use_digest = (iq.getChild(<span class="literal">'digest'</span>) != null);
-
-  <span class="comment">/* ***
-   * Send authentication
-   */</span>
-  var iq = new JSJaCIQ();
-  iq.setIQ(<span class="reserved">this</span>.server,<span class="literal">'set'</span>,<span class="literal">'auth2'</span>);
-
-  query = iq.appendNode(<span class="literal">'query'</span>, {xmlns: <span class="literal">'jabber:iq:auth'</span>},
-                        [[<span class="literal">'username'</span>, <span class="reserved">this</span>.username],
-                         [<span class="literal">'resource'</span>, <span class="reserved">this</span>.resource]]);
-
-  <span class="reserved">if</span> (use_digest) { <span class="comment">// digest login</span>
-    query.appendChild(iq.buildNode(<span class="literal">'digest'</span>, {xmlns: <span class="literal">'jabber:iq:auth'</span>},
-                                   hex_sha1(<span class="reserved">this</span>.streamid + <span class="reserved">this</span>.pass)));
-  } <span class="reserved">else</span> <span class="reserved">if</span> (<span class="reserved">this</span>.allow_plain) { <span class="comment">// use plaintext auth</span>
-    query.appendChild(iq.buildNode(<span class="literal">'password'</span>, {xmlns: <span class="literal">'jabber:iq:auth'</span>},
-                                   <span class="reserved">this</span>.pass));
-  } <span class="reserved">else</span> {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"no valid login mechanism found"</span>,1);
-    <span class="reserved">this</span>.disconnect();
-    <span class="reserved">return</span> false;
-  }
-
-  <span class="reserved">this</span>.send(iq,<span class="reserved">this</span>._doLegacyAuthDone);
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._doLegacyAuthDone = <span class="reserved">function</span>(iq) {
-  <span class="reserved">if</span> (iq.getType() != <span class="literal">'result'</span>) { <span class="comment">// auth' failed</span>
-    <span class="reserved">if</span> (iq.getType() == <span class="literal">'error'</span>)
-      <span class="reserved">this</span>._handleEvent(<span class="literal">'onerror'</span>,iq.getChild(<span class="literal">'error'</span>));
-    <span class="reserved">this</span>.disconnect();
-  } <span class="reserved">else</span>
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'onconnect'</span>);
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._doSASLAuth = <span class="reserved">function</span>() {
-  <span class="reserved">if</span> (<span class="reserved">this</span>.authtype == <span class="literal">'nonsasl'</span> || <span class="reserved">this</span>.authtype == <span class="literal">'anonymous'</span>)
-    <span class="reserved">return</span> false;
-
-  <span class="reserved">if</span> (<span class="reserved">this</span>.authtype == <span class="literal">'saslanon'</span>) {
-    <span class="reserved">if</span> (<span class="reserved">this</span>.mechs[<span class="literal">'ANONYMOUS'</span>]) {
-      <span class="reserved">this</span>.oDbg.log(<span class="literal">"SASL using mechanism 'ANONYMOUS'"</span>,2);
-      <span class="reserved">return</span> <span class="reserved">this</span>._sendRaw(<span class="literal">"<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='ANONYMOUS'/>"</span>,
-                           <span class="reserved">this</span>._doSASLAuthDone);
-    }
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"SASL ANONYMOUS requested but not supported"</span>,1);
-  } <span class="reserved">else</span> {
-    <span class="reserved">if</span> (<span class="reserved">this</span>.mechs[<span class="literal">'DIGEST-MD5'</span>]) {
-      <span class="reserved">this</span>.oDbg.log(<span class="literal">"SASL using mechanism 'DIGEST-MD5'"</span>,2);
-      <span class="reserved">return</span> <span class="reserved">this</span>._sendRaw(<span class="literal">"<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='DIGEST-MD5'/>"</span>,
-                           <span class="reserved">this</span>._doSASLAuthDigestMd5S1);
-    } <span class="reserved">else</span> <span class="reserved">if</span> (<span class="reserved">this</span>.allow_plain && <span class="reserved">this</span>.mechs[<span class="literal">'PLAIN'</span>]) {
-      <span class="reserved">this</span>.oDbg.log(<span class="literal">"SASL using mechanism 'PLAIN'"</span>,2);
-      var authStr = <span class="reserved">this</span>.username+<span class="literal">'@'</span>+
-      <span class="reserved">this</span>.domain+String.fromCharCode(0)+
-      <span class="reserved">this</span>.username+String.fromCharCode(0)+
-      <span class="reserved">this</span>.pass;
-      <span class="reserved">this</span>.oDbg.log(<span class="literal">"authenticating with '"</span>+authStr+<span class="literal">"'"</span>,2);
-      authStr = btoa(authStr);
-      <span class="reserved">return</span> <span class="reserved">this</span>._sendRaw(<span class="literal">"<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>"</span>+authStr+<span class="literal">"</auth>"</span>,
-                           <span class="reserved">this</span>._doSASLAuthDone);
-    }
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"No SASL mechanism applied"</span>,1);
-    <span class="reserved">this</span>.authtype = <span class="literal">'nonsasl'</span>; <span class="comment">// fallback</span>
-  }
-  <span class="reserved">return</span> false;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._doSASLAuthDigestMd5S1 = <span class="reserved">function</span>(el) {
-  <span class="reserved">if</span> (el.nodeName != <span class="literal">"challenge"</span>) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"challenge missing"</span>,1);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'onerror'</span>,JSJaCError(<span class="literal">'401'</span>,<span class="literal">'auth'</span>,<span class="literal">'not-authorized'</span>));
-    <span class="reserved">this</span>.disconnect();
-  } <span class="reserved">else</span> {
-    var challenge = atob(el.firstChild.nodeValue);
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"got challenge: "</span>+challenge,2);
-    <span class="reserved">this</span>._nonce = challenge.substring(challenge.indexOf(<span class="literal">"nonce="</span>)+7);
-    <span class="reserved">this</span>._nonce = <span class="reserved">this</span>._nonce.substring(0,<span class="reserved">this</span>._nonce.indexOf(<span class="literal">"\"</span><span class="literal">"));
-    this.oDbg.log("</span>nonce: <span class="literal">"+this._nonce,2);
-    if (this._nonce == '' || this._nonce.indexOf('\"</span><span class="literal">') != -1) {
-      this.oDbg.log("nonce not valid, aborting",1);
-      this.disconnect();
-      return;
-    }
-
-    this._digest_uri = "xmpp/";
-    //     if (typeof(this.host) != '</span>undefined<span class="literal">' && this.host != '</span><span class="literal">') {
-    //       this._digest-uri += this.host;
-    //       if (typeof(this.port) != '</span>undefined<span class="literal">' && this.port)
-    //         this._digest-uri += ":" + this.port;
-    //       this._digest-uri += '</span>/<span class="literal">';
-    //     }
-    this._digest_uri += this.domain;
-
-    this._cnonce = cnonce(14);
-
-    this._nc = '</span>00000001<span class="literal">';
-
-    var A1 = str_md5(this.username+'</span>:<span class="literal">'+this.domain+'</span>:<span class="literal">'+this.pass)+
-    '</span>:<span class="literal">'+this._nonce+'</span>:<span class="literal">'+this._cnonce;
-
-    var A2 = '</span>AUTHENTICATE:<span class="literal">'+this._digest_uri;
-
-    var response = hex_md5(hex_md5(A1)+'</span>:<span class="literal">'+this._nonce+'</span>:<span class="literal">'+this._nc+'</span>:<span class="literal">'+
-                           this._cnonce+'</span>:auth:<span class="literal">'+hex_md5(A2));
-
-    var rPlain = '</span>username=<span class="literal">"'+this.username+'"</span>,realm=<span class="literal">"'+this.domain+
-    '"</span>,nonce=<span class="literal">"'+this._nonce+'"</span>,cnonce=<span class="literal">"'+this._cnonce+'"</span>,nc=<span class="literal">"'+this._nc+
-    '"</span>,qop=auth,digest-uri=<span class="literal">"'+this._digest_uri+'"</span>,response=<span class="literal">"'+response+
-    '"</span>,charset=utf-8<span class="literal">';
-   
-    this.oDbg.log("response: "+rPlain,2);
-
-    this._sendRaw("<response xmlns='</span>urn:ietf:params:xml:ns:xmpp-sasl<span class="literal">'>"+
-                  binb2b64(str2binb(rPlain))+"</response>",
-                  this._doSASLAuthDigestMd5S2);
-  }
-};
-
-/**
- * @private
- */
-JSJaCConnection.prototype._doSASLAuthDigestMd5S2 = function(el) {
-  if (el.nodeName == '</span>failure<span class="literal">') {
-    if (el.xml)
-      this.oDbg.log("auth error: "+el.xml,1);
-    else
-      this.oDbg.log("auth error",1);
-    this._handleEvent('</span>onerror<span class="literal">',JSJaCError('</span>401<span class="literal">','</span>auth<span class="literal">','</span>not-authorized<span class="literal">'));
-    this.disconnect();
-    return;
-  }
-
-  var response = atob(el.firstChild.nodeValue);
-  this.oDbg.log("response: "+response,2);
-
-  var rspauth = response.substring(response.indexOf("rspauth=")+8);
-  this.oDbg.log("rspauth: "+rspauth,2);
-
-  var A1 = str_md5(this.username+'</span>:<span class="literal">'+this.domain+'</span>:<span class="literal">'+this.pass)+
-  '</span>:<span class="literal">'+this._nonce+'</span>:<span class="literal">'+this._cnonce;
-
-  var A2 = '</span>:<span class="literal">'+this._digest_uri;
-
-  var rsptest = hex_md5(hex_md5(A1)+'</span>:<span class="literal">'+this._nonce+'</span>:<span class="literal">'+this._nc+'</span>:<span class="literal">'+
-                        this._cnonce+'</span>:auth:<span class="literal">'+hex_md5(A2));
-  this.oDbg.log("rsptest: "+rsptest,2);
-
-  if (rsptest != rspauth) {
-    this.oDbg.log("SASL Digest-MD5: server repsonse with wrong rspauth",1);
-    this.disconnect();
-    return;
-  }
-
-  if (el.nodeName == '</span>success<span class="literal">')
-    this._reInitStream(this.domain, this._doStreamBind);
-  else // some extra turn
-    this._sendRaw("<response xmlns='</span>urn:ietf:params:xml:ns:xmpp-sasl<span class="literal">'/>",
-                  this._doSASLAuthDone);
-};
-
-/**
- * @private
- */
-JSJaCConnection.prototype._doSASLAuthDone = function (el) {
-  if (el.nodeName != '</span>success<span class="literal">') {
-    this.oDbg.log("auth failed",1);
-    this._handleEvent('</span>onerror<span class="literal">',JSJaCError('</span>401<span class="literal">','</span>auth<span class="literal">','</span>not-authorized<span class="literal">'));
-    this.disconnect();
-  } else
-    this._reInitStream(this.domain, this._doStreamBind);
-};
-
-/**
- * @private
- */
-JSJaCConnection.prototype._doStreamBind = function() {
-  var iq = new JSJaCIQ();
-  iq.setIQ(this.domain,'</span>set<span class="literal">','</span>bind_1<span class="literal">');
-  iq.appendNode("bind", {xmlns: "urn:ietf:params:xml:ns:xmpp-bind"},
-                [["resource", this.resource]]);
-  this.oDbg.log(iq.xml());
-  this.send(iq,this._doXMPPSess);
-};
-
-/**
- * @private
- */
-JSJaCConnection.prototype._doXMPPSess = function(iq) {
-  if (iq.getType() != '</span>result<span class="literal">' || iq.getType() == '</span>error<span class="literal">') { // failed
-    this.disconnect();
-    if (iq.getType() == '</span>error<span class="literal">')
-      this._handleEvent('</span>onerror<span class="literal">',iq.getChild('</span>error<span class="literal">'));
-    return;
-  }
- 
-  this.fulljid = iq.getChildVal("jid");
-  this.jid = this.fulljid.substring(0,this.fulljid.lastIndexOf('</span>/<span class="literal">'));
- 
-  iq = new JSJaCIQ();
-  iq.setIQ(this.domain,'</span>set<span class="literal">','</span>sess_1<span class="literal">');
-  iq.appendNode("session", {xmlns: "urn:ietf:params:xml:ns:xmpp-session"},
-                []);
-  this.oDbg.log(iq.xml());
-  this.send(iq,this._doXMPPSessDone);
-};
-
-/**
- * @private
- */
-JSJaCConnection.prototype._doXMPPSessDone = function(iq) {
-  if (iq.getType() != '</span>result<span class="literal">' || iq.getType() == '</span>error<span class="literal">') { // failed
-    this.disconnect();
-    if (iq.getType() == '</span>error<span class="literal">')
-      this._handleEvent('</span>onerror<span class="literal">',iq.getChild('</span>error<span class="literal">'));
-    return;
-  } else
-    this._handleEvent('</span>onconnect<span class="literal">');
-};
- 
-/**
- * @private
- */
-JSJaCConnection.prototype._handleEvent = function(event,arg) {
-  event = event.toLowerCase(); // don'</span>t be case-sensitive here
-  <span class="reserved">this</span>.oDbg.log(<span class="literal">"incoming event '"</span>+event+<span class="literal">"'"</span>,3);
-  <span class="reserved">if</span> (!<span class="reserved">this</span>._events[event])
-    <span class="reserved">return</span>;
-  <span class="reserved">this</span>.oDbg.log(<span class="literal">"handling event '"</span>+event+<span class="literal">"'"</span>,2);
-  <span class="reserved">for</span> (var i=0;i<<span class="reserved">this</span>._events[event].length; i++) {
-    var aEvent = <span class="reserved">this</span>._events[event][i];
-    <span class="reserved">if</span> (aEvent.handler) {
-      try {
-        <span class="reserved">if</span> (arg) {
-          <span class="reserved">if</span> (arg.pType) { <span class="comment">// it's a packet</span>
-            <span class="reserved">if</span> ((!arg.getNode().hasChildNodes() && aEvent.childName != <span class="literal">'*'</span>) ||
-				(arg.getNode().hasChildNodes() &&
-				 !arg.getChild(aEvent.childName, aEvent.childNS)))
-              continue;
-            <span class="reserved">if</span> (aEvent.type != <span class="literal">'*'</span> &&
-                arg.getType() != aEvent.type)
-              continue;
-            <span class="reserved">this</span>.oDbg.log(aEvent.childName+<span class="literal">"/"</span>+aEvent.childNS+<span class="literal">"/"</span>+aEvent.type+<span class="literal">" => match for handler "</span>+aEvent.handler,3);
-          }
-          <span class="reserved">if</span> (aEvent.handler.call(<span class="reserved">this</span>,arg)) <span class="comment">// handled!</span>
-            break;
-        }
-        <span class="reserved">else</span>
-          <span class="reserved">if</span> (aEvent.handler.call(<span class="reserved">this</span>)) <span class="comment">// handled!</span>
-            break;
-      } catch (e) { <span class="reserved">this</span>.oDbg.log(aEvent.handler+<span class="literal">"\n>>>"</span>+e.name+<span class="literal">": "</span>+ e.message,1); }
-    }
-  }
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._handlePID = <span class="reserved">function</span>(aJSJaCPacket) {
-  <span class="reserved">if</span> (!aJSJaCPacket.getID())
-    <span class="reserved">return</span> false;
-  <span class="reserved">for</span> (var i in <span class="reserved">this</span>._regIDs) {
-    <span class="reserved">if</span> (<span class="reserved">this</span>._regIDs.hasOwnProperty(i) &&
-        <span class="reserved">this</span>._regIDs[i] && i == aJSJaCPacket.getID()) {
-      var pID = aJSJaCPacket.getID();
-      <span class="reserved">this</span>.oDbg.log(<span class="literal">"handling "</span>+pID,3);
-      try {
-        <span class="reserved">if</span> (<span class="reserved">this</span>._regIDs[i].cb.call(<span class="reserved">this</span>, aJSJaCPacket,<span class="reserved">this</span>._regIDs[i].arg) === false) {
-          <span class="comment">// don't unregister</span>
-          <span class="reserved">return</span> false;
-        } <span class="reserved">else</span> {
-          <span class="reserved">this</span>._unregisterPID(pID);
-          <span class="reserved">return</span> true;
-        }
-      } catch (e) {
-        <span class="comment">// broken handler?</span>
-        <span class="reserved">this</span>.oDbg.log(e.name+<span class="literal">": "</span>+ e.message);
-        <span class="reserved">this</span>._unregisterPID(pID);
-        <span class="reserved">return</span> true;
-      }
-    }
-  }
-  <span class="reserved">return</span> false;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._handleResponse = <span class="reserved">function</span>(req) {
-  var rootEl = <span class="reserved">this</span>._parseResponse(req);
-
-  <span class="reserved">if</span> (!rootEl)
-    <span class="reserved">return</span>;
-
-  <span class="reserved">for</span> (var i=0; i<rootEl.childNodes.length; i++) {
-    <span class="reserved">if</span> (<span class="reserved">this</span>._sendRawCallbacks.length) {
-      var cb = <span class="reserved">this</span>._sendRawCallbacks[0];
-      <span class="reserved">this</span>._sendRawCallbacks = <span class="reserved">this</span>._sendRawCallbacks.slice(1, <span class="reserved">this</span>._sendRawCallbacks.length);
-      cb.fn.call(<span class="reserved">this</span>, rootEl.childNodes.item(i), cb.arg);
-      continue;
-    }
-    <span class="reserved">this</span>._inQ = <span class="reserved">this</span>._inQ.concat(rootEl.childNodes.item(i));
-  }
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._parseStreamFeatures = <span class="reserved">function</span>(doc) {
-  <span class="reserved">if</span> (!doc) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"nothing to parse ... aborting"</span>,1);
-    <span class="reserved">return</span> false;
-  }
-
-  var errorTag;
-  <span class="reserved">if</span> (doc.getElementsByTagNameNS)
-    errorTag = doc.getElementsByTagNameNS(<span class="literal">"http://etherx.jabber.org/streams"</span>, <span class="literal">"error"</span>).item(0);
-  <span class="reserved">else</span> {
-    var errors = doc.getElementsByTagName(<span class="literal">"error"</span>);
-    <span class="reserved">for</span> (var i=0; i<errors.length; i++)
-      <span class="reserved">if</span> (errors.item(i).namespaceURI == <span class="literal">"http://etherx.jabber.org/streams"</span>) {
-        errorTag = errors.item(i);
-        break;
-      }
-  }
-
-  <span class="reserved">if</span> (errorTag) {
-    <span class="reserved">this</span>._setStatus(<span class="literal">"internal_server_error"</span>);
-    clearTimeout(<span class="reserved">this</span>._timeout); <span class="comment">// remove timer</span>
-    clearInterval(<span class="reserved">this</span>._interval);
-    clearInterval(<span class="reserved">this</span>._inQto);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'onerror'</span>,JSJaCError(<span class="literal">'503'</span>,<span class="literal">'cancel'</span>,<span class="literal">'session-terminate'</span>));
-    <span class="reserved">this</span>._connected = false;
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"Disconnected."</span>,1);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'ondisconnect'</span>);
-    <span class="reserved">return</span> false;
-  }
-
-  <span class="reserved">this</span>.mechs = new Object();
-  var lMec1 = doc.getElementsByTagName(<span class="literal">"mechanisms"</span>);
-  <span class="reserved">this</span>.has_sasl = false;
-  <span class="reserved">for</span> (var i=0; i<lMec1.length; i++)
-    <span class="reserved">if</span> (lMec1.item(i).getAttribute(<span class="literal">"xmlns"</span>) ==
-        <span class="literal">"urn:ietf:params:xml:ns:xmpp-sasl"</span>) {
-      <span class="reserved">this</span>.has_sasl=true;
-      var lMec2 = lMec1.item(i).getElementsByTagName(<span class="literal">"mechanism"</span>);
-      <span class="reserved">for</span> (var j=0; j<lMec2.length; j++)
-        <span class="reserved">this</span>.mechs[lMec2.item(j).firstChild.nodeValue] = true;
-      break;
-    }
-  <span class="reserved">if</span> (<span class="reserved">this</span>.has_sasl)
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"SASL detected"</span>,2);
-  <span class="reserved">else</span> {
-    <span class="reserved">this</span>.authtype = <span class="literal">'nonsasl'</span>;
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"No support for SASL detected"</span>,2);
-  }
-
-  <span class="comment">/* [TODO]
-   * check if in-band registration available
-   * check for session and bind features
-   */</span>
-
-  <span class="reserved">return</span> true;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._process = <span class="reserved">function</span>(timerval) {
-  <span class="reserved">if</span> (!<span class="reserved">this</span>.connected()) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"Connection lost ..."</span>,1);
-    <span class="reserved">if</span> (<span class="reserved">this</span>._interval)
-      clearInterval(<span class="reserved">this</span>._interval);
-    <span class="reserved">return</span>;
-  }
-
-  <span class="reserved">this</span>.setPollInterval(timerval);
-
-  <span class="reserved">if</span> (<span class="reserved">this</span>._timeout)
-    clearTimeout(<span class="reserved">this</span>._timeout);
-
-  var slot = <span class="reserved">this</span>._getFreeSlot();
-
-  <span class="reserved">if</span> (slot < 0)
-    <span class="reserved">return</span>;
-
-  <span class="reserved">if</span> (typeof(<span class="reserved">this</span>._req[slot]) != <span class="literal">'undefined'</span> &&
-      typeof(<span class="reserved">this</span>._req[slot].r) != <span class="literal">'undefined'</span> &&
-      <span class="reserved">this</span>._req[slot].r.readyState != 4) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"Slot "</span>+slot+<span class="literal">" is not ready"</span>);
-    <span class="reserved">return</span>;
-  }
-	
-  <span class="reserved">if</span> (!<span class="reserved">this</span>.isPolling() && <span class="reserved">this</span>._pQueue.length == 0 &&
-      <span class="reserved">this</span>._req[(slot+1)%2] && <span class="reserved">this</span>._req[(slot+1)%2].r.readyState != 4) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"all slots busy, standby ..."</span>, 2);
-    <span class="reserved">return</span>;
-  }
-
-  <span class="reserved">if</span> (!<span class="reserved">this</span>.isPolling())
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"Found working slot at "</span>+slot,2);
-
-  <span class="reserved">this</span>._req[slot] = <span class="reserved">this</span>._setupRequest(true);
-
-  <span class="comment">/* setup onload handler for async send */</span>
-  <span class="reserved">this</span>._req[slot].r.onreadystatechange = 
-  JSJaC.bind(<span class="reserved">function</span>() {
-               <span class="reserved">if</span> (!<span class="reserved">this</span>.connected())
-                 <span class="reserved">return</span>;
-               <span class="reserved">if</span> (<span class="reserved">this</span>._req[slot].r.readyState == 4) {
-                 <span class="reserved">this</span>._setStatus(<span class="literal">'processing'</span>);
-                 <span class="reserved">this</span>.oDbg.log(<span class="literal">"async recv: "</span>+<span class="reserved">this</span>._req[slot].r.responseText,4);
-                 <span class="reserved">this</span>._handleResponse(<span class="reserved">this</span>._req[slot]);
-                 <span class="comment">// schedule next tick</span>
-                 <span class="reserved">if</span> (<span class="reserved">this</span>._pQueue.length) {
-                   <span class="reserved">this</span>._timeout = setTimeout(JSJaC.bind(<span class="reserved">this</span>._process, <span class="reserved">this</span>),100);
-                 } <span class="reserved">else</span> {
-                   <span class="reserved">this</span>.oDbg.log(<span class="literal">"scheduling next poll in "</span>+<span class="reserved">this</span>.getPollInterval()+
-                                 <span class="literal">" msec"</span>, 4);
-                   <span class="reserved">this</span>._timeout = setTimeout(JSJaC.bind(<span class="reserved">this</span>._process, <span class="reserved">this</span>),<span class="reserved">this</span>.getPollInterval());
-                 }
-               }
-             }, <span class="reserved">this</span>);
-
-  try {
-    <span class="reserved">this</span>._req[slot].r.onerror = 
-      JSJaC.bind(<span class="reserved">function</span>() {
-                   <span class="reserved">if</span> (!<span class="reserved">this</span>.connected())
-                     <span class="reserved">return</span>;
-                   <span class="reserved">this</span>._errcnt++;
-                   <span class="reserved">this</span>.oDbg.log(<span class="literal">'XmlHttpRequest error ('</span>+<span class="reserved">this</span>._errcnt+<span class="literal">')'</span>,1);
-                   <span class="reserved">if</span> (<span class="reserved">this</span>._errcnt > JSJAC_ERR_COUNT) {
-                     <span class="comment">// abort</span>
-                     <span class="reserved">this</span>._abort();
-                     <span class="reserved">return</span> false;
-                   }
-                   
-                   <span class="reserved">this</span>._setStatus(<span class="literal">'onerror_fallback'</span>);
-			
-                   <span class="comment">// schedule next tick</span>
-                   setTimeout(JSJaC.bind(<span class="reserved">this</span>._resume, <span class="reserved">this</span>),<span class="reserved">this</span>.getPollInterval());
-                   <span class="reserved">return</span> false;
-                 }, <span class="reserved">this</span>);
-  } catch(e) { } <span class="comment">// well ... no onerror property available, maybe we</span>
-  <span class="comment">// can catch the error somewhere else ...</span>
-
-  var reqstr = <span class="reserved">this</span>._getRequestString();
-
-  <span class="reserved">if</span> (typeof(<span class="reserved">this</span>._rid) != <span class="literal">'undefined'</span>) <span class="comment">// remember request id if any</span>
-    <span class="reserved">this</span>._req[slot].rid = <span class="reserved">this</span>._rid;
-
-  <span class="reserved">this</span>.oDbg.log(<span class="literal">"sending: "</span> + reqstr,4);
-  <span class="reserved">this</span>._req[slot].r.send(reqstr);
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._registerPID = <span class="reserved">function</span>(pID,cb,arg) {
-  <span class="reserved">if</span> (!pID || !cb)
-    <span class="reserved">return</span> false;
-  <span class="reserved">this</span>._regIDs[pID] = new Object();
-  <span class="reserved">this</span>._regIDs[pID].cb = cb;
-  <span class="reserved">if</span> (arg)
-    <span class="reserved">this</span>._regIDs[pID].arg = arg;
-  <span class="reserved">this</span>.oDbg.log(<span class="literal">"registered "</span>+pID,3);
-  <span class="reserved">return</span> true;
-};
-
-<span class="comment">/**
- * send empty request
- * waiting for stream id to be able to proceed with authentication
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._sendEmpty = <span class="reserved">function</span> JSJaCSendEmpty() {
-  var slot = <span class="reserved">this</span>._getFreeSlot();
-  <span class="reserved">this</span>._req[slot] = <span class="reserved">this</span>._setupRequest(true);
-
-  <span class="reserved">this</span>._req[slot].r.onreadystatechange = 
-  JSJaC.bind(<span class="reserved">function</span>() {
-               <span class="reserved">if</span> (<span class="reserved">this</span>._req[slot].r.readyState == 4) {
-                 <span class="reserved">this</span>.oDbg.log(<span class="literal">"async recv: "</span>+<span class="reserved">this</span>._req[slot].r.responseText,4);
-                 <span class="reserved">this</span>._getStreamID(slot); <span class="comment">// handle response</span>
-               }
-             },<span class="reserved">this</span>);
-
-  <span class="reserved">if</span> (typeof(<span class="reserved">this</span>._req[slot].r.onerror) != <span class="literal">'undefined'</span>) {
-    <span class="reserved">this</span>._req[slot].r.onerror = 
-      JSJaC.bind(<span class="reserved">function</span>(e) {
-                   <span class="reserved">this</span>.oDbg.log(<span class="literal">'XmlHttpRequest error'</span>,1);
-                   <span class="reserved">return</span> false;
-                 }, <span class="reserved">this</span>);
-  }
-
-  var reqstr = <span class="reserved">this</span>._getRequestString();
-  <span class="reserved">this</span>.oDbg.log(<span class="literal">"sending: "</span> + reqstr,4);
-  <span class="reserved">this</span>._req[slot].r.send(reqstr);
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._sendRaw = <span class="reserved">function</span>(xml,cb,arg) {
-  <span class="reserved">if</span> (cb)
-    <span class="reserved">this</span>._sendRawCallbacks.push({fn: cb, arg: arg});
- 
-  <span class="reserved">this</span>._pQueue.push(xml);
-  <span class="reserved">this</span>._process();
-
-  <span class="reserved">return</span> true;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._setStatus = <span class="reserved">function</span>(status) {
-  <span class="reserved">if</span> (!status || status == <span class="literal">''</span>)
-    <span class="reserved">return</span>;
-  <span class="reserved">if</span> (status != <span class="reserved">this</span>._status) { <span class="comment">// status changed!</span>
-    <span class="reserved">this</span>._status = status;
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'onstatuschanged'</span>, status);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'status_changed'</span>, status);
-  }
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCConnection.<span class="reserved">prototype</span>._unregisterPID = <span class="reserved">function</span>(pID) {
-  <span class="reserved">if</span> (!<span class="reserved">this</span>._regIDs[pID])
-    <span class="reserved">return</span> false;
-  <span class="reserved">this</span>._regIDs[pID] = null;
-  <span class="reserved">this</span>.oDbg.log(<span class="literal">"unregistered "</span>+pID,3);
-  <span class="reserved">return</span> true;
-};
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-JSJaCConsoleLogger.js.html b/doc/overview-summary-JSJaCConsoleLogger.js.html
deleted file mode 100644
index 9f502e1..0000000
--- a/doc/overview-summary-JSJaCConsoleLogger.js.html
+++ /dev/null
@@ -1,248 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="JSJaCConsoleLogger.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>JSJaCConsoleLogger.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		Contains Debugger interface for Firebug and Safari
- <BR/><BR/>
-	
-</p>
-
-<hr>
-
-
-    <table border="1" cellpadding="3" cellspacing="0" width="100%">
-    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
-    <td colspan=2><font size="+2">
-    
-        <b>Class Summary</b>
-    
-    </font></td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="JSJaCConsoleLogger.html">JSJaCConsoleLogger</a></b></td>
-    <td>Implementation of the Debugger interface for <a href='http://www.getfirebug.com/'>Firebug</a> and Safari
- Creates a new debug logger to be passed to jsjac's connection
- constructor.</td>
-    </tr>
-    
-    </table>
-    <hr/> 
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview"><span class="comment">/**
- * <span class="attrib">@fileoverview</span> Contains Debugger interface for Firebug and Safari
- * <span class="attrib">@class</span> Implementation of the Debugger interface for {<span class="attrib">@link</span>
- * http://www.getfirebug.com/ Firebug} and Safari
- * Creates a new debug logger to be passed to jsjac's connection
- * constructor. Of course you can use it for debugging in your code
- * too.
- * <span class="attrib">@constructor</span>
- * <span class="attrib">@param</span> {int} level The maximum level for debugging messages to be
- * displayed. Thus you can tweak the verbosity of the logger. A value
- * of 0 means very low traffic whilst a value of 4 makes logging very
- * verbose about what's going on.
- */</span>
-<span class="reserved">function</span> JSJaCConsoleLogger(level) {
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>.level = level || 4;
-
-  <span class="comment">/**
-   * Empty function for API compatibility
-   */</span>
-  <span class="reserved">this</span>.start = <span class="reserved">function</span>() {};
-  <span class="comment">/**
-   * Logs a message to firebug's/safari's console
-   * <span class="attrib">@param</span> {String} msg The message to be logged.
-   * <span class="attrib">@param</span> {int} level The message's verbosity level. Importance is
-   * from 0 (very important) to 4 (not so important). A value of 1
-   * denotes an error in the usual protocol flow.
-   */</span>
-  <span class="reserved">this</span>.log = <span class="reserved">function</span>(msg, level) {
-    level = level || 0;
-    <span class="reserved">if</span> (level > <span class="reserved">this</span>.level)
-      <span class="reserved">return</span>;
-    <span class="reserved">if</span> (typeof(console) == <span class="literal">'undefined'</span>)
-      <span class="reserved">return</span>;
-    try {
-      switch (level) {
-      case 0:
-        console.warn(msg);
-        break;
-      case 1:
-        console.error(msg);
-        break;
-      case 2:
-        console.info(msg);
-        break;
-      case 4:
-        console.debug(msg);
-        break;
-      default:
-        console.log(msg);
-        break;
-      }
-    } catch(e) { try { console.log(msg) } catch(e) {} }
-  };
-
-  <span class="comment">/**
-   * Sets verbosity level.
-   * <span class="attrib">@param</span> {int} level The maximum level for debugging messages to be
-   * displayed. Thus you can tweak the verbosity of the logger. A
-   * value of 0 means very low traffic whilst a value of 4 makes
-   * logging very verbose about what's going on.
-   * <span class="attrib">@return</span> This debug logger
-   * <span class="attrib">@type</span> ConsoleLogger
-   */</span>
-  <span class="reserved">this</span>.setLevel = <span class="reserved">function</span>(level) { <span class="reserved">this</span>.level = level; <span class="reserved">return</span> <span class="reserved">this</span>; };
-  <span class="comment">/**
-   * Gets verbosity level.
-   * <span class="attrib">@return</span> The level
-   * <span class="attrib">@type</span> int
-   */</span>
-  <span class="reserved">this</span>.getLevel = <span class="reserved">function</span>() { <span class="reserved">return</span> <span class="reserved">this</span>.level; };
-}
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-JSJaCConstants.js.html b/doc/overview-summary-JSJaCConstants.js.html
deleted file mode 100644
index 0fc5d9f..0000000
--- a/doc/overview-summary-JSJaCConstants.js.html
+++ /dev/null
@@ -1,268 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="JSJaCConstants.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>JSJaCConstants.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		No overview generated for 'JSJaCConstants.js'<BR/><BR/>
-	
-</p>
-
-<hr>
-
-
-    <table border="1" cellpadding="3" cellspacing="0" width="100%">
-    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
-    <td colspan=2><font size="+2">
-    
-        <b>Class Summary</b>
-    
-    </font></td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="STANZA_ERROR.html">STANZA_ERROR</a></b></td>
-    <td> </td>
-    </tr>
-    
-    </table>
-    <hr/> 
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview">var NS_DISCO_ITEMS =  <span class="literal">"http://jabber.org/protocol/disco#items"</span>;
-var NS_DISCO_INFO =   <span class="literal">"http://jabber.org/protocol/disco#info"</span>;
-var NS_VCARD =        <span class="literal">"vcard-temp"</span>;
-var NS_AUTH =         <span class="literal">"jabber:iq:auth"</span>;
-var NS_AUTH_ERROR =   <span class="literal">"jabber:iq:auth:error"</span>;
-var NS_REGISTER =     <span class="literal">"jabber:iq:register"</span>;
-var NS_SEARCH =       <span class="literal">"jabber:iq:search"</span>;
-var NS_ROSTER =       <span class="literal">"jabber:iq:roster"</span>;
-var NS_PRIVACY =      <span class="literal">"jabber:iq:privacy"</span>;
-var NS_PRIVATE =      <span class="literal">"jabber:iq:private"</span>;
-var NS_VERSION =      <span class="literal">"jabber:iq:version"</span>;
-var NS_TIME =         <span class="literal">"jabber:iq:time"</span>;
-var NS_LAST =         <span class="literal">"jabber:iq:last"</span>;
-var NS_XDATA =        <span class="literal">"jabber:x:data"</span>;
-var NS_IQDATA =       <span class="literal">"jabber:iq:data"</span>;
-var NS_DELAY =        <span class="literal">"jabber:x:delay"</span>;
-var NS_EXPIRE =       <span class="literal">"jabber:x:expire"</span>;
-var NS_EVENT =        <span class="literal">"jabber:x:event"</span>;
-var NS_XCONFERENCE =  <span class="literal">"jabber:x:conference"</span>;
-var NS_STATS =        <span class="literal">"http://jabber.org/protocol/stats"</span>;
-var NS_MUC =          <span class="literal">"http://jabber.org/protocol/muc"</span>;
-var NS_MUC_USER =     <span class="literal">"http://jabber.org/protocol/muc#user"</span>;
-var NS_MUC_ADMIN =    <span class="literal">"http://jabber.org/protocol/muc#admin"</span>;
-var NS_MUC_OWNER =    <span class="literal">"http://jabber.org/protocol/muc#owner"</span>;
-var NS_PUBSUB =       <span class="literal">"http://jabber.org/protocol/pubsub"</span>;
-var NS_PUBSUB_EVENT = <span class="literal">"http://jabber.org/protocol/pubsub#event"</span>;
-var NS_PUBSUB_OWNER = <span class="literal">"http://jabber.org/protocol/pubsub#owner"</span>;
-var NS_PUBSUB_NMI =   <span class="literal">"http://jabber.org/protocol/pubsub#node-meta-info"</span>;
-var NS_COMMANDS =     <span class="literal">"http://jabber.org/protocol/commands"</span>;
-var NS_STREAM =       <span class="literal">"http://etherx.jabber.org/streams"</span>;
-
-var NS_STANZAS =      <span class="literal">"urn:ietf:params:xml:ns:xmpp-stanzas"</span>;
-var NS_STREAMS =      <span class="literal">"urn:ietf:params:xml:ns:xmpp-streams"</span>;
-
-var NS_TLS =          <span class="literal">"urn:ietf:params:xml:ns:xmpp-tls"</span>;
-var NS_SASL =         <span class="literal">"urn:ietf:params:xml:ns:xmpp-sasl"</span>;
-var NS_SESSION =      <span class="literal">"urn:ietf:params:xml:ns:xmpp-session"</span>;
-var NS_BIND =         <span class="literal">"urn:ietf:params:xml:ns:xmpp-bind"</span>;
-
-var NS_FEATURE_IQAUTH = <span class="literal">"http://jabber.org/features/iq-auth"</span>;
-var NS_FEATURE_IQREGISTER = <span class="literal">"http://jabber.org/features/iq-register"</span>;
-var NS_FEATURE_COMPRESS = <span class="literal">"http://jabber.org/features/compress"</span>;
-
-var NS_COMPRESS =     <span class="literal">"http://jabber.org/protocol/compress"</span>;
-
-<span class="reserved">function</span> STANZA_ERROR(code, type, cond) {
-  <span class="reserved">if</span> (window == <span class="reserved">this</span>)
-    <span class="reserved">return</span> new STANZA_ERROR(code, type, cond);
-
-  <span class="reserved">this</span>.code = code;
-  <span class="reserved">this</span>.type = type;
-  <span class="reserved">this</span>.cond = cond;
-}
-
-var ERR_BAD_REQUEST =
-        STANZA_ERROR(<span class="literal">"400"</span>, <span class="literal">"modify"</span>, <span class="literal">"bad-request"</span>);
-var ERR_CONFLICT =
-        STANZA_ERROR(<span class="literal">"409"</span>, <span class="literal">"cancel"</span>, <span class="literal">"conflict"</span>);
-var ERR_FEATURE_NOT_IMPLEMENTED =
-        STANZA_ERROR(<span class="literal">"501"</span>, <span class="literal">"cancel"</span>, <span class="literal">"feature-not-implemented"</span>);
-var ERR_FORBIDDEN =
-        STANZA_ERROR(<span class="literal">"403"</span>, <span class="literal">"auth"</span>,   <span class="literal">"forbidden"</span>);
-var ERR_GONE =
-        STANZA_ERROR(<span class="literal">"302"</span>, <span class="literal">"modify"</span>, <span class="literal">"gone"</span>);
-var ERR_INTERNAL_SERVER_ERROR =
-        STANZA_ERROR(<span class="literal">"500"</span>, <span class="literal">"wait"</span>,   <span class="literal">"internal-server-error"</span>);
-var ERR_ITEM_NOT_FOUND =
-        STANZA_ERROR(<span class="literal">"404"</span>, <span class="literal">"cancel"</span>, <span class="literal">"item-not-found"</span>);
-var ERR_JID_MALFORMED =
-        STANZA_ERROR(<span class="literal">"400"</span>, <span class="literal">"modify"</span>, <span class="literal">"jid-malformed"</span>);
-var ERR_NOT_ACCEPTABLE =
-        STANZA_ERROR(<span class="literal">"406"</span>, <span class="literal">"modify"</span>, <span class="literal">"not-acceptable"</span>);
-var ERR_NOT_ALLOWED =
-        STANZA_ERROR(<span class="literal">"405"</span>, <span class="literal">"cancel"</span>, <span class="literal">"not-allowed"</span>);
-var ERR_NOT_AUTHORIZED =
-        STANZA_ERROR(<span class="literal">"401"</span>, <span class="literal">"auth"</span>,   <span class="literal">"not-authorized"</span>);
-var ERR_PAYMENT_REQUIRED =
-        STANZA_ERROR(<span class="literal">"402"</span>, <span class="literal">"auth"</span>,   <span class="literal">"payment-required"</span>);
-var ERR_RECIPIENT_UNAVAILABLE =
-        STANZA_ERROR(<span class="literal">"404"</span>, <span class="literal">"wait"</span>,   <span class="literal">"recipient-unavailable"</span>);
-var ERR_REDIRECT =
-        STANZA_ERROR(<span class="literal">"302"</span>, <span class="literal">"modify"</span>, <span class="literal">"redirect"</span>);
-var ERR_REGISTRATION_REQUIRED =
-        STANZA_ERROR(<span class="literal">"407"</span>, <span class="literal">"auth"</span>,   <span class="literal">"registration-required"</span>);
-var ERR_REMOTE_SERVER_NOT_FOUND =
-        STANZA_ERROR(<span class="literal">"404"</span>, <span class="literal">"cancel"</span>, <span class="literal">"remote-server-not-found"</span>);
-var ERR_REMOTE_SERVER_TIMEOUT =
-        STANZA_ERROR(<span class="literal">"504"</span>, <span class="literal">"wait"</span>,   <span class="literal">"remote-server-timeout"</span>);
-var ERR_RESOURCE_CONSTRAINT =
-        STANZA_ERROR(<span class="literal">"500"</span>, <span class="literal">"wait"</span>,   <span class="literal">"resource-constraint"</span>);
-var ERR_SERVICE_UNAVAILABLE =
-        STANZA_ERROR(<span class="literal">"503"</span>, <span class="literal">"cancel"</span>, <span class="literal">"service-unavailable"</span>);
-var ERR_SUBSCRIPTION_REQUIRED =
-        STANZA_ERROR(<span class="literal">"407"</span>, <span class="literal">"auth"</span>,   <span class="literal">"subscription-required"</span>);
-var ERR_UNEXPECTED_REQUEST =
-        STANZA_ERROR(<span class="literal">"400"</span>, <span class="literal">"wait"</span>,   <span class="literal">"unexpected-request"</span>);
-
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-JSJaCCookie.js.html b/doc/overview-summary-JSJaCCookie.js.html
deleted file mode 100644
index baf1ae8..0000000
--- a/doc/overview-summary-JSJaCCookie.js.html
+++ /dev/null
@@ -1,342 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="JSJaCCookie.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>JSJaCCookie.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		OO interface to handle cookies.
- Taken from <a href='http://www.quirksmode.org/js/cookies.html'>http://www.quirksmode.org/js/cookies.html</a>
- Regarding licensing of this code the author states:
-
- "You may copy, tweak, rewrite, sell or lease any code example on
- this site, with one single exception."
-
- <BR/><BR/><B>Version: </B>$Revision: 481 $<BR/><BR/><B>Author:</B> Stefan Strigler
- <BR/>
-	
-</p>
-
-<hr>
-
-
-    <table border="1" cellpadding="3" cellspacing="0" width="100%">
-    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
-    <td colspan=2><font size="+2">
-    
-        <b>Class Summary</b>
-    
-    </font></td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="JSJaCCookie.html">JSJaCCookie</a></b></td>
-    <td>Class representing browser cookies for storing small amounts of data
- </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="JSJaCCookieException.html">JSJaCCookieException</a></b></td>
-    <td> </td>
-    </tr>
-    
-    </table>
-    <hr/> 
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview"><span class="comment">/* Copyright 2003-2006 Peter-Paul Koch
- */</span>
-
-<span class="comment">/**
- * <span class="attrib">@fileoverview</span> OO interface to handle cookies.
- * Taken from {<span class="attrib">@link</span> http://www.quirksmode.org/js/cookies.html
- * http://www.quirksmode.org/js/cookies.html}
- * Regarding licensing of this code the author states:
- *
- * "You may copy, tweak, rewrite, sell or lease any code example on
- * this site, with one single exception."
- *
- * <span class="attrib">@author</span> Stefan Strigler
- * <span class="attrib">@version</span> $Revision: 481 $
- */</span>
-
-<span class="comment">/**
- * Creates a new Cookie
- * <span class="attrib">@class</span> Class representing browser cookies for storing small amounts of data
- * <span class="attrib">@constructor</span>
- * <span class="attrib">@param</span> {String} name  The name of the value to store
- * <span class="attrib">@param</span> {String} value The value to store
- * <span class="attrib">@param</span> {int}    secs  Number of seconds until cookie expires (may be empty)
- */</span>
-<span class="reserved">function</span> JSJaCCookie(name,value,secs)
-{
-  <span class="reserved">if</span> (window == <span class="reserved">this</span>)
-    <span class="reserved">return</span> new JSJaCCookie(name, value, secs);
-
-  <span class="comment">/**
-   * This cookie's name
-   * <span class="attrib">@type</span> String
-   */</span>
-  <span class="reserved">this</span>.name = name;
-  <span class="comment">/**
-   * This cookie's value
-   * <span class="attrib">@type</span> String
-   */</span>
-  <span class="reserved">this</span>.value = value;
-  <span class="comment">/**
-   * Time in seconds when cookie expires (thus being delete by
-   * browser). A value of -1 denotes a session cookie which means that
-   * stored data gets lost when browser is being closed. 
-   * <span class="attrib">@type</span> int
-   */</span>
-  <span class="reserved">this</span>.secs = secs;
-
-  <span class="comment">/**
-   * Stores this cookie
-   */</span>
-  <span class="reserved">this</span>.write = <span class="reserved">function</span>() {
-    <span class="reserved">if</span> (<span class="reserved">this</span>.secs) {
-      var date = new Date();
-      date.setTime(date.getTime()+(<span class="reserved">this</span>.secs*1000));
-      var expires = <span class="literal">"; expires="</span>+date.toGMTString();
-    } <span class="reserved">else</span>
-      var expires = <span class="literal">""</span>;
-    document.cookie = <span class="reserved">this</span>.getName()+<span class="literal">"="</span>+<span class="reserved">this</span>.getValue()+expires+<span class="literal">"; path=/"</span>;
-  };
-  <span class="comment">/**
-   * Deletes this cookie
-   */</span>
-  <span class="reserved">this</span>.erase = <span class="reserved">function</span>() {
-    var c = new JSJaCCookie(<span class="reserved">this</span>.getName(),<span class="literal">""</span>,-1);
-    c.write();
-  };
-
-  <span class="comment">/**
-   * Gets the name of this cookie
-   * <span class="attrib">@return</span> The name
-   * <span class="attrib">@type</span> String
-   */</span>
-  <span class="reserved">this</span>.getName = <span class="reserved">function</span>() {
-    <span class="reserved">return</span> <span class="reserved">this</span>.name;
-  };
- 
-  <span class="comment">/**
-   * Sets the name of this cookie
-   * <span class="attrib">@param</span> {String} name The name for this cookie
-   * <span class="attrib">@return</span> This cookie
-   * <span class="attrib">@type</span> Cookie
-   */</span>
-  <span class="reserved">this</span>.setName = <span class="reserved">function</span>(name) {
-    <span class="reserved">this</span>.name = name;
-    <span class="reserved">return</span> <span class="reserved">this</span>;
-  };
-
-  <span class="comment">/**
-   * Gets the value of this cookie
-   * <span class="attrib">@return</span> The value
-   * <span class="attrib">@type</span> String
-   */</span>
-  <span class="reserved">this</span>.getValue = <span class="reserved">function</span>() {
-    <span class="reserved">return</span> <span class="reserved">this</span>.value;
-  };
- 
-  <span class="comment">/**
-   * Sets the value of this cookie
-   * <span class="attrib">@param</span> {String} value The value for this cookie
-   * <span class="attrib">@return</span> This cookie
-   * <span class="attrib">@type</span> Cookie
-   */</span>
-  <span class="reserved">this</span>.setValue = <span class="reserved">function</span>(value) {
-    <span class="reserved">this</span>.value = value;
-    <span class="reserved">return</span> <span class="reserved">this</span>;
-  };
-}
-
-<span class="comment">/**
- * Reads the value for given <code>name</code> from cookies and return new
- * <code>Cookie</code> object
- * <span class="attrib">@param</span> {String} name The name of the cookie to read
- * <span class="attrib">@return</span> A cookie object of the given name
- * <span class="attrib">@type</span> Cookie
- * <span class="attrib">@throws</span> CookieException when cookie with given name could not be found
- */</span>
-JSJaCCookie.read = <span class="reserved">function</span>(name) {
-  var nameEQ = name + <span class="literal">"="</span>;
-  var ca = document.cookie.split(<span class="literal">';'</span>);
-  <span class="reserved">for</span>(var i=0;i < ca.length;i++) {
-    var c = ca[i];
-    <span class="reserved">while</span> (c.charAt(0)==<span class="literal">' '</span>) c = c.substring(1,c.length);
-    <span class="reserved">if</span> (c.indexOf(nameEQ) == 0) <span class="reserved">return</span> new JSJaCCookie(name, c.substring(nameEQ.length,c.length));
-  }
-  throw new JSJaCCookieException(<span class="literal">"Cookie not found"</span>);
-};
-
-<span class="comment">/**
- * Reads the value for given <code>name</code> from cookies and returns
- * its valued new
- * <span class="attrib">@param</span> {String} name The name of the cookie to read
- * <span class="attrib">@return</span> The value of the cookie read
- * <span class="attrib">@type</span> String
- * <span class="attrib">@throws</span> CookieException when cookie with given name could not be found
- */</span>
-JSJaCCookie.get = <span class="reserved">function</span>(name) {
-  <span class="reserved">return</span> JSJaCCookie.read(name).getValue();
-};
-
-<span class="comment">/**
- * Deletes cookie with given <code>name</code>
- * <span class="attrib">@param</span> {String} name The name of the cookie to delete
- * <span class="attrib">@throws</span> CookieException when cookie with given name could not be found
- */</span>
-JSJaCCookie.remove = <span class="reserved">function</span>(name) {
-  JSJaCCookie.read(name).erase();
-};
-
-<span class="comment">/**
- * Some exception denoted to dealing with cookies
- * <span class="attrib">@constructor</span>
- * <span class="attrib">@param</span> {String} msg The message to pass to the exception
- */</span>
-<span class="reserved">function</span> JSJaCCookieException(msg) {
-  <span class="reserved">this</span>.message = msg;
-  <span class="reserved">this</span>.name = <span class="literal">"CookieException"</span>;
-}
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-JSJaCError.js.html b/doc/overview-summary-JSJaCError.js.html
deleted file mode 100644
index cb300cf..0000000
--- a/doc/overview-summary-JSJaCError.js.html
+++ /dev/null
@@ -1,169 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="JSJaCError.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>JSJaCError.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		No overview generated for 'JSJaCError.js'<BR/><BR/>
-	
-</p>
-
-<hr>
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview">
-<span class="comment">/**
- * an error packet for internal use
- * <span class="attrib">@private</span>
- * <span class="attrib">@constructor</span>
- */</span>
-<span class="reserved">function</span> JSJaCError(code,type,condition) {
-  var xmldoc = XmlDocument.create(<span class="literal">"error"</span>,<span class="literal">"jsjac"</span>);
-
-  xmldoc.documentElement.setAttribute(<span class="literal">'code'</span>,code);
-  xmldoc.documentElement.setAttribute(<span class="literal">'type'</span>,type);
-  xmldoc.documentElement.appendChild(xmldoc.createElement(condition)).
-    setAttribute(<span class="literal">'xmlns'</span>,<span class="literal">'urn:ietf:params:xml:ns:xmpp-stanzas'</span>);
-  <span class="reserved">return</span> xmldoc.documentElement;
-}
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-JSJaCHttpBindingConnection.js.html b/doc/overview-summary-JSJaCHttpBindingConnection.js.html
deleted file mode 100644
index cce9cfb..0000000
--- a/doc/overview-summary-JSJaCHttpBindingConnection.js.html
+++ /dev/null
@@ -1,691 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="JSJaCHttpBindingConnection.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>JSJaCHttpBindingConnection.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		All stuff related to HTTP Binding
- <BR/><BR/><B>Version: </B>$Revision: 483 $<BR/><BR/><B>Author:</B> Stefan Strigler steve at zeank.in-berlin.de
- <BR/>
-	
-</p>
-
-<hr>
-
-
-    <table border="1" cellpadding="3" cellspacing="0" width="100%">
-    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
-    <td colspan=2><font size="+2">
-    
-        <b>Class Summary</b>
-    
-    </font></td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="JSJaCHttpBindingConnection.html">JSJaCHttpBindingConnection</a></b></td>
-    <td>Implementation of <a href='http://www.xmpp.org/extensions/xep-0206.html'>XMPP Over BOSH</a>
- formerly known as HTTP Binding.</td>
-    </tr>
-    
-    </table>
-    <hr/> 
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview"><span class="comment">/**
- * <span class="attrib">@fileoverview</span> All stuff related to HTTP Binding
- * <span class="attrib">@author</span> Stefan Strigler steve<span class="attrib">@zeank</span>.in-berlin.de
- * <span class="attrib">@version</span> $Revision: 483 $
- */</span>
-
-<span class="comment">/**
- * Instantiates an HTTP Binding session
- * <span class="attrib">@class</span> Implementation of {<span class="attrib">@link</span>
- * http://www.xmpp.org/extensions/xep-0206.html XMPP Over BOSH}
- * formerly known as HTTP Binding.
- * <span class="attrib">@extends</span> JSJaCConnection
- * <span class="attrib">@constructor</span>
- */</span>
-<span class="reserved">function</span> JSJaCHttpBindingConnection(oArg) {
-  <span class="comment">/**
-   * <span class="attrib">@ignore</span>
-   */</span>
-  <span class="reserved">this</span>.base = JSJaCConnection;
-  <span class="reserved">this</span>.base(oArg);
-
-  <span class="comment">// member vars</span>
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._hold = JSJACHBC_MAX_HOLD;
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._inactivity = 0;
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._last_requests = new Object(); <span class="comment">// 'hash' storing hold+1 last requests</span>
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._last_rid = 0;                 <span class="comment">// I know what you did last summer</span>
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._min_polling = 0;
-
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._pause = 0;
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._wait = JSJACHBC_MAX_WAIT;
-}
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span> = new JSJaCConnection();
-
-<span class="comment">/**
- * Inherit an instantiated HTTP Binding session
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>.inherit = <span class="reserved">function</span>(oArg) {
-  <span class="reserved">this</span>.domain = oArg.domain || <span class="literal">'localhost'</span>;
-  <span class="reserved">this</span>.username = oArg.username;
-  <span class="reserved">this</span>.resource = oArg.resource;
-  <span class="reserved">this</span>._sid = oArg.sid;
-  <span class="reserved">this</span>._rid = oArg.rid;
-  <span class="reserved">this</span>._min_polling = oArg.polling;
-  <span class="reserved">this</span>._inactivity = oArg.inactivity;
-  <span class="reserved">this</span>._setHold(oArg.requests-1);
-  <span class="reserved">this</span>.setPollInterval(<span class="reserved">this</span>._timerval);
-  <span class="reserved">if</span> (oArg.wait)
-    <span class="reserved">this</span>._wait = oArg.wait; <span class="comment">// for whatever reason</span>
-
-  <span class="reserved">this</span>._connected = true;
-
-  <span class="reserved">this</span>._handleEvent(<span class="literal">'onconnect'</span>);
-
-  <span class="reserved">this</span>._interval= setInterval(JSJaC.bind(<span class="reserved">this</span>._checkQueue, <span class="reserved">this</span>),
-                              JSJAC_CHECKQUEUEINTERVAL);
-  <span class="reserved">this</span>._inQto = setInterval(JSJaC.bind(<span class="reserved">this</span>._checkInQ, <span class="reserved">this</span>),
-                            JSJAC_CHECKINQUEUEINTERVAL);
-  <span class="reserved">this</span>._timeout = setTimeout(JSJaC.bind(<span class="reserved">this</span>._process, <span class="reserved">this</span>),
-                             <span class="reserved">this</span>.getPollInterval());
-};
-
-<span class="comment">/**
- * Sets poll interval
- * <span class="attrib">@param</span> {int} timerval the interval in seconds
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>.setPollInterval = <span class="reserved">function</span>(timerval) {
-  <span class="reserved">if</span> (timerval && !isNaN(timerval)) {
-    <span class="reserved">if</span> (!<span class="reserved">this</span>.isPolling())
-      <span class="reserved">this</span>._timerval = 100;
-    <span class="reserved">else</span> <span class="reserved">if</span> (<span class="reserved">this</span>._min_polling && timerval < <span class="reserved">this</span>._min_polling*1000)
-      <span class="reserved">this</span>._timerval = <span class="reserved">this</span>._min_polling*1000;
-    <span class="reserved">else</span> <span class="reserved">if</span> (<span class="reserved">this</span>._inactivity && timerval > <span class="reserved">this</span>._inactivity*1000)
-      <span class="reserved">this</span>._timerval = <span class="reserved">this</span>._inactivity*1000;
-    <span class="reserved">else</span>
-      <span class="reserved">this</span>._timerval = timerval;
-  }
-  <span class="reserved">return</span> <span class="reserved">this</span>._timerval;
-};
-
-<span class="comment">/**
- * whether this session is in polling mode
- * <span class="attrib">@type</span> boolean
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>.isPolling = <span class="reserved">function</span>() { <span class="reserved">return</span> (<span class="reserved">this</span>._hold == 0) };
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>._getFreeSlot = <span class="reserved">function</span>() {
-  <span class="reserved">for</span> (var i=0; i<<span class="reserved">this</span>._hold+1; i++)
-    <span class="reserved">if</span> (typeof(<span class="reserved">this</span>._req[i]) == <span class="literal">'undefined'</span> || typeof(<span class="reserved">this</span>._req[i].r) == <span class="literal">'undefined'</span> || <span class="reserved">this</span>._req[i].r.readyState == 4)
-      <span class="reserved">return</span> i;
-  <span class="reserved">return</span> -1; <span class="comment">// nothing found</span>
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>._getHold = <span class="reserved">function</span>() { <span class="reserved">return</span> <span class="reserved">this</span>._hold; };
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>._getRequestString = <span class="reserved">function</span>(raw, last) {
-  raw = raw || <span class="literal">''</span>;
-  var reqstr = <span class="literal">''</span>;
-
-  <span class="comment">// check if we're repeating a request</span>
-
-  <span class="reserved">if</span> (<span class="reserved">this</span>._rid <= <span class="reserved">this</span>._last_rid && typeof(<span class="reserved">this</span>._last_requests[<span class="reserved">this</span>._rid]) != <span class="literal">'undefined'</span>) <span class="comment">// repeat!</span>
-    reqstr = <span class="reserved">this</span>._last_requests[<span class="reserved">this</span>._rid].xml;
-  <span class="reserved">else</span> { <span class="comment">// grab from queue</span>
-    var xml = <span class="literal">''</span>;
-    <span class="reserved">while</span> (<span class="reserved">this</span>._pQueue.length) {
-      var curNode = <span class="reserved">this</span>._pQueue[0];
-      xml += curNode;
-      <span class="reserved">this</span>._pQueue = <span class="reserved">this</span>._pQueue.slice(1,<span class="reserved">this</span>._pQueue.length);
-    }
-
-    reqstr = <span class="literal">"<body rid='"</span>+<span class="reserved">this</span>._rid+<span class="literal">"' sid='"</span>+<span class="reserved">this</span>._sid+<span class="literal">"' xmlns='http://jabber.org/protocol/httpbind' "</span>;
-    <span class="reserved">if</span> (JSJAC_HAVEKEYS) {
-      reqstr += <span class="literal">"key='"</span>+<span class="reserved">this</span>._keys.getKey()+<span class="literal">"' "</span>;
-      <span class="reserved">if</span> (<span class="reserved">this</span>._keys.lastKey()) {
-        <span class="reserved">this</span>._keys = new JSJaCKeys(hex_sha1,<span class="reserved">this</span>.oDbg);
-        reqstr += <span class="literal">"newkey='"</span>+<span class="reserved">this</span>._keys.getKey()+<span class="literal">"' "</span>;
-      }
-    }
-    <span class="reserved">if</span> (last)
-      reqstr += <span class="literal">"type='terminate'"</span>;
-    <span class="reserved">else</span> <span class="reserved">if</span> (<span class="reserved">this</span>._reinit) {
-      <span class="reserved">if</span> (JSJACHBC_USE_BOSH_VER) 
-        reqstr += <span class="literal">"xmpp:restart='true' xmlns:xmpp='urn:xmpp:xbosh'"</span>;
-      <span class="reserved">this</span>._reinit = false;
-    }
-
-    <span class="reserved">if</span> (xml != <span class="literal">''</span> || raw != <span class="literal">''</span>) {
-      reqstr += <span class="literal">">"</span> + raw + xml + <span class="literal">"</body>"</span>;
-    } <span class="reserved">else</span> {
-      reqstr += <span class="literal">"/>"</span>;
-    }
-
-    <span class="reserved">this</span>._last_requests[<span class="reserved">this</span>._rid] = new Object();
-    <span class="reserved">this</span>._last_requests[<span class="reserved">this</span>._rid].xml = reqstr;
-    <span class="reserved">this</span>._last_rid = <span class="reserved">this</span>._rid;
-
-    <span class="reserved">for</span> (var i in <span class="reserved">this</span>._last_requests)
-      <span class="reserved">if</span> (<span class="reserved">this</span>._last_requests.hasOwnProperty(i) &&
-          i < <span class="reserved">this</span>._rid-<span class="reserved">this</span>._hold)
-        delete(<span class="reserved">this</span>._last_requests[i]); <span class="comment">// truncate</span>
-  }
-	
-  <span class="reserved">return</span> reqstr;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>._getInitialRequestString = <span class="reserved">function</span>() {
-  var reqstr = <span class="literal">"<body content='text/xml; charset=utf-8' hold='"</span>+<span class="reserved">this</span>._hold+<span class="literal">"' xmlns='http://jabber.org/protocol/httpbind' to='"</span>+<span class="reserved">this</span>.authhost+<span class="literal">"' wait='"</span>+<span class="reserved">this</span>._wait+<span class="literal">"' rid='"</span>+<span class="reserved">this</span>._rid+<span class="literal">"'"</span>;
-  <span class="reserved">if</span> (<span class="reserved">this</span>.host || <span class="reserved">this</span>.port)
-    reqstr += <span class="literal">" route='xmpp:"</span>+<span class="reserved">this</span>.host+<span class="literal">":"</span>+<span class="reserved">this</span>.port+<span class="literal">"'"</span>;
-  <span class="reserved">if</span> (<span class="reserved">this</span>.secure)
-    reqstr += <span class="literal">" secure='"</span>+<span class="reserved">this</span>.secure+<span class="literal">"'"</span>;
-  <span class="reserved">if</span> (JSJAC_HAVEKEYS) {
-    <span class="reserved">this</span>._keys = new JSJaCKeys(hex_sha1,<span class="reserved">this</span>.oDbg); <span class="comment">// generate first set of keys</span>
-    key = <span class="reserved">this</span>._keys.getKey();
-    reqstr += <span class="literal">" newkey='"</span>+key+<span class="literal">"'"</span>;
-  }
-  <span class="reserved">if</span> (<span class="reserved">this</span>._xmllang)
-    reqstr += <span class="literal">" xml:lang='"</span>+<span class="reserved">this</span>._xmllang + <span class="literal">"'"</span>;
-
-  <span class="reserved">if</span> (JSJACHBC_USE_BOSH_VER) {
-    reqstr += <span class="literal">" ver='"</span> + JSJACHBC_BOSH_VERSION + <span class="literal">"'"</span>;
-    reqstr += <span class="literal">" xmlns:xmpp='urn:xmpp:xbosh'"</span>;
-    <span class="reserved">if</span> (<span class="reserved">this</span>.authtype == <span class="literal">'sasl'</span> || <span class="reserved">this</span>.authtype == <span class="literal">'saslanon'</span>)
-      reqstr += <span class="literal">" xmpp:version='1.0'"</span>;
-  }
-  reqstr += <span class="literal">"/>"</span>;
-  <span class="reserved">return</span> reqstr;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>._getStreamID = <span class="reserved">function</span>(slot) {
-
-  <span class="reserved">this</span>.oDbg.log(<span class="reserved">this</span>._req[slot].r.responseText,4);
-
-  <span class="reserved">if</span> (!<span class="reserved">this</span>._req[slot].r.responseXML || !<span class="reserved">this</span>._req[slot].r.responseXML.documentElement) {
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'onerror'</span>,JSJaCError(<span class="literal">'503'</span>,<span class="literal">'cancel'</span>,<span class="literal">'service-unavailable'</span>));
-    <span class="reserved">return</span>;
-  }
-  var body = <span class="reserved">this</span>._req[slot].r.responseXML.documentElement;
-
-  <span class="comment">// extract stream id used for non-SASL authentication</span>
-  <span class="reserved">if</span> (body.getAttribute(<span class="literal">'authid'</span>)) {
-    <span class="reserved">this</span>.streamid = body.getAttribute(<span class="literal">'authid'</span>);
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"got streamid: "</span>+<span class="reserved">this</span>.streamid,2);
-  } <span class="reserved">else</span> {
-    <span class="reserved">this</span>._timeout = setTimeout(JSJaC.bind(<span class="reserved">this</span>._sendEmpty, <span class="reserved">this</span>),
-                               <span class="reserved">this</span>.getPollInterval());
-    <span class="reserved">return</span>;
-  }
-
-  <span class="reserved">this</span>._timeout = setTimeout(JSJaC.bind(<span class="reserved">this</span>._process, <span class="reserved">this</span>),
-                             <span class="reserved">this</span>.getPollInterval());
-
-  <span class="reserved">if</span> (!<span class="reserved">this</span>._parseStreamFeatures(body))
-    <span class="reserved">return</span>;
-
-  <span class="reserved">if</span> (<span class="reserved">this</span>.register)
-    <span class="reserved">this</span>._doInBandReg();
-  <span class="reserved">else</span>
-    <span class="reserved">this</span>._doAuth();
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>._getSuspendVars = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> (<span class="literal">'host,port,secure,_rid,_last_rid,_wait,_min_polling,_inactivity,_hold,_last_requests,_pause'</span>).split(<span class="literal">','</span>);
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>._handleInitialResponse = <span class="reserved">function</span>(slot) {
-  try {
-    <span class="comment">// This will throw an error on Mozilla when the connection was refused</span>
-    <span class="reserved">this</span>.oDbg.log(<span class="reserved">this</span>._req[slot].r.getAllResponseHeaders(),4);
-    <span class="reserved">this</span>.oDbg.log(<span class="reserved">this</span>._req[slot].r.responseText,4);
-  } catch(ex) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"No response"</span>,4);
-  }
-
-  <span class="reserved">if</span> (<span class="reserved">this</span>._req[slot].r.status != 200 || !<span class="reserved">this</span>._req[slot].r.responseXML) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"initial response broken (status: "</span>+<span class="reserved">this</span>._req[slot].r.status+<span class="literal">")"</span>,1);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'onerror'</span>,JSJaCError(<span class="literal">'503'</span>,<span class="literal">'cancel'</span>,<span class="literal">'service-unavailable'</span>));
-    <span class="reserved">return</span>;
-  }
-  var body = <span class="reserved">this</span>._req[slot].r.responseXML.documentElement;
-
-  <span class="reserved">if</span> (!body || body.tagName != <span class="literal">'body'</span> || body.namespaceURI != <span class="literal">'http://jabber.org/protocol/httpbind'</span>) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"no body element or incorrect body in initial response"</span>,1);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">"onerror"</span>,JSJaCError(<span class="literal">"500"</span>,<span class="literal">"wait"</span>,<span class="literal">"internal-service-error"</span>));
-    <span class="reserved">return</span>;
-  }
-
-  <span class="comment">// Check for errors from the server</span>
-  <span class="reserved">if</span> (body.getAttribute(<span class="literal">"type"</span>) == <span class="literal">"terminate"</span>) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"invalid response:\n"</span> + <span class="reserved">this</span>._req[slot].r.responseText,1);
-    clearTimeout(<span class="reserved">this</span>._timeout); <span class="comment">// remove timer</span>
-    <span class="reserved">this</span>._connected = false;
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"Disconnected."</span>,1);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'ondisconnect'</span>);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'onerror'</span>,JSJaCError(<span class="literal">'503'</span>,<span class="literal">'cancel'</span>,<span class="literal">'service-unavailable'</span>));
-    <span class="reserved">return</span>;
-  }
-
-  <span class="comment">// get session ID</span>
-  <span class="reserved">this</span>._sid = body.getAttribute(<span class="literal">'sid'</span>);
-  <span class="reserved">this</span>.oDbg.log(<span class="literal">"got sid: "</span>+<span class="reserved">this</span>._sid,2);
-
-  <span class="comment">// get attributes from response body</span>
-  <span class="reserved">if</span> (body.getAttribute(<span class="literal">'polling'</span>))
-    <span class="reserved">this</span>._min_polling = body.getAttribute(<span class="literal">'polling'</span>);
-
-  <span class="reserved">if</span> (body.getAttribute(<span class="literal">'inactivity'</span>))
-    <span class="reserved">this</span>._inactivity = body.getAttribute(<span class="literal">'inactivity'</span>);
-
-  <span class="reserved">if</span> (body.getAttribute(<span class="literal">'requests'</span>))
-    <span class="reserved">this</span>._setHold(body.getAttribute(<span class="literal">'requests'</span>)-1);
-  <span class="reserved">this</span>.oDbg.log(<span class="literal">"set hold to "</span> + <span class="reserved">this</span>._getHold(),2);
-
-  <span class="reserved">if</span> (body.getAttribute(<span class="literal">'ver'</span>))
-    <span class="reserved">this</span>._bosh_version = body.getAttribute(<span class="literal">'ver'</span>);
-
-  <span class="reserved">if</span> (body.getAttribute(<span class="literal">'maxpause'</span>))
-    <span class="reserved">this</span>._pause = Number.max(body.getAttribute(<span class="literal">'maxpause'</span>), JSJACHBC_MAXPAUSE);
-
-  <span class="comment">// must be done after response attributes have been collected</span>
-  <span class="reserved">this</span>.setPollInterval(<span class="reserved">this</span>._timerval);
-
-  <span class="comment">/* start sending from queue for not polling connections */</span>
-  <span class="reserved">this</span>._connected = true;
-
-  <span class="reserved">this</span>._inQto = setInterval(JSJaC.bind(<span class="reserved">this</span>._checkInQ, <span class="reserved">this</span>),
-                            JSJAC_CHECKINQUEUEINTERVAL);
-  <span class="reserved">this</span>._interval= setInterval(JSJaC.bind(<span class="reserved">this</span>._checkQueue, <span class="reserved">this</span>),
-                              JSJAC_CHECKQUEUEINTERVAL);
-
-  <span class="comment">/* wait for initial stream response to extract streamid needed
-   * for digest auth
-   */</span>
-  <span class="reserved">this</span>._getStreamID(slot);
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>._parseResponse = <span class="reserved">function</span>(req) {
-  <span class="reserved">if</span> (!<span class="reserved">this</span>.connected() || !req)
-    <span class="reserved">return</span> null;
-
-  var r = req.r; <span class="comment">// the XmlHttpRequest</span>
-
-  try {
-    <span class="reserved">if</span> (r.status == 404 || r.status == 403) {
-      <span class="comment">// connection manager killed session</span>
-      <span class="reserved">this</span>._abort();
-      <span class="reserved">return</span> null;
-    }
-
-    <span class="reserved">if</span> (r.status != 200 || !r.responseXML) {
-      <span class="reserved">this</span>._errcnt++;
-      var errmsg = <span class="literal">"invalid response ("</span>+r.status+<span class="literal">"):\n"</span> + r.getAllResponseHeaders()+<span class="literal">"\n"</span>+r.responseText;
-      <span class="reserved">if</span> (!r.responseXML)
-        errmsg += <span class="literal">"\nResponse failed to parse!"</span>;
-      <span class="reserved">this</span>.oDbg.log(errmsg,1);
-      <span class="reserved">if</span> (<span class="reserved">this</span>._errcnt > JSJAC_ERR_COUNT) {
-        <span class="comment">// abort</span>
-        <span class="reserved">this</span>._abort();
-        <span class="reserved">return</span> null;
-      }
-      <span class="reserved">this</span>.oDbg.log(<span class="literal">"repeating ("</span>+<span class="reserved">this</span>._errcnt+<span class="literal">")"</span>,1);
-     
-      <span class="reserved">this</span>._setStatus(<span class="literal">'proto_error_fallback'</span>);
-     
-      <span class="comment">// schedule next tick</span>
-      setTimeout(JSJaC.bind(<span class="reserved">this</span>._resume, <span class="reserved">this</span>),
-                 <span class="reserved">this</span>.getPollInterval());
-     
-      <span class="reserved">return</span> null;
-    }
-  } catch (e) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"XMLHttpRequest error: status not available"</span>, 1);
-	<span class="reserved">this</span>._errcnt++;
-	<span class="reserved">if</span> (<span class="reserved">this</span>._errcnt > JSJAC_ERR_COUNT) {
-	  <span class="comment">// abort</span>
-	  <span class="reserved">this</span>._abort();
-	} <span class="reserved">else</span> {
-	  <span class="reserved">this</span>.oDbg.log(<span class="literal">"repeating ("</span>+<span class="reserved">this</span>._errcnt+<span class="literal">")"</span>,1);
-     
-	  <span class="reserved">this</span>._setStatus(<span class="literal">'proto_error_fallback'</span>);
-     
-	  <span class="comment">// schedule next tick</span>
-	  setTimeout(JSJaC.bind(<span class="reserved">this</span>._resume, <span class="reserved">this</span>),
-                     <span class="reserved">this</span>.getPollInterval()); 
-    }
-    <span class="reserved">return</span> null;
-  }
-
-  var body = r.responseXML.documentElement;
-  <span class="reserved">if</span> (!body || body.tagName != <span class="literal">'body'</span> ||
-	  body.namespaceURI != <span class="literal">'http://jabber.org/protocol/httpbind'</span>) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"invalid response:\n"</span> + r.responseText,1);
-
-    clearTimeout(<span class="reserved">this</span>._timeout); <span class="comment">// remove timer</span>
-    clearInterval(<span class="reserved">this</span>._interval);
-    clearInterval(<span class="reserved">this</span>._inQto);
-
-    <span class="reserved">this</span>._connected = false;
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"Disconnected."</span>,1);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'ondisconnect'</span>);
-
-    <span class="reserved">this</span>._setStatus(<span class="literal">'internal_server_error'</span>);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'onerror'</span>,
-					  JSJaCError(<span class="literal">'500'</span>,<span class="literal">'wait'</span>,<span class="literal">'internal-server-error'</span>));
-
-    <span class="reserved">return</span> null;
-  }
-
-  <span class="reserved">if</span> (typeof(req.rid) != <span class="literal">'undefined'</span> && <span class="reserved">this</span>._last_requests[req.rid]) {
-    <span class="reserved">if</span> (<span class="reserved">this</span>._last_requests[req.rid].handled) {
-      <span class="reserved">this</span>.oDbg.log(<span class="literal">"already handled "</span>+req.rid,2);
-      <span class="reserved">return</span> null;
-    } <span class="reserved">else</span>
-      <span class="reserved">this</span>._last_requests[req.rid].handled = true;
-  }
-
-
-  <span class="comment">// Check for errors from the server</span>
-  <span class="reserved">if</span> (body.getAttribute(<span class="literal">"type"</span>) == <span class="literal">"terminate"</span>) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"session terminated:\n"</span> + r.responseText,1);
-
-    clearTimeout(<span class="reserved">this</span>._timeout); <span class="comment">// remove timer</span>
-    clearInterval(<span class="reserved">this</span>._interval);
-    clearInterval(<span class="reserved">this</span>._inQto);
-
-    <span class="reserved">if</span> (body.getAttribute(<span class="literal">"condition"</span>) == <span class="literal">"remote-stream-error"</span>)
-      <span class="reserved">if</span> (body.getElementsByTagName(<span class="literal">"conflict"</span>).length > 0)
-        <span class="reserved">this</span>._setStatus(<span class="literal">"session-terminate-conflict"</span>);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'onerror'</span>,JSJaCError(<span class="literal">'503'</span>,<span class="literal">'cancel'</span>,body.getAttribute(<span class="literal">'condition'</span>)));
-    <span class="reserved">this</span>._connected = false;
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"Disconnected."</span>,1);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'ondisconnect'</span>);
-    <span class="reserved">return</span> null;
-  }
-
-  <span class="comment">// no error</span>
-  <span class="reserved">this</span>._errcnt = 0;
-  <span class="reserved">return</span> r.responseXML.documentElement;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>._reInitStream = <span class="reserved">function</span>(to,cb,arg) {
-  <span class="comment">/* [TODO] we can't handle 'to' here as this is not (yet) supported
-   * by the protocol
-   */</span>
-
-  <span class="comment">// tell http binding to reinit stream with/before next request</span>
-  <span class="reserved">this</span>._reinit = true;
-  cb.call(<span class="reserved">this</span>,arg); <span class="comment">// proceed with next callback</span>
-
-  <span class="comment">/* [TODO] make sure that we're checking for new stream features when
-   * 'cb' finishes
-   */</span>
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>._resume = <span class="reserved">function</span>() {
-  <span class="comment">/* make sure to repeat last request as we can be sure that
-   * it had failed (only if we're not using the 'pause' attribute
-   */</span>
-  <span class="reserved">if</span> (<span class="reserved">this</span>._pause == 0 && <span class="reserved">this</span>._rid >= <span class="reserved">this</span>._last_rid)
-    <span class="reserved">this</span>._rid = <span class="reserved">this</span>._last_rid-1;
-
-  <span class="reserved">this</span>._process();
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>._setHold = <span class="reserved">function</span>(hold)  {
-  <span class="reserved">if</span> (!hold || isNaN(hold) || hold < 0)
-    hold = 0;
-  <span class="reserved">else</span> <span class="reserved">if</span> (hold > JSJACHBC_MAX_HOLD)
-    hold = JSJACHBC_MAX_HOLD;
-  <span class="reserved">this</span>._hold = hold;
-  <span class="reserved">return</span> <span class="reserved">this</span>._hold;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>._setupRequest = <span class="reserved">function</span>(async) {
-  var req = new Object();
-  var r = XmlHttp.create();
-  try {
-    r.open(<span class="literal">"POST"</span>,<span class="reserved">this</span>._httpbase,async);
-    r.setRequestHeader(<span class="literal">'Content-Type'</span>,<span class="literal">'text/xml; charset=utf-8'</span>);
-  } catch(e) { <span class="reserved">this</span>.oDbg.log(e,1); }
-  req.r = r;
-  <span class="reserved">this</span>._rid++;
-  req.rid = <span class="reserved">this</span>._rid;
-  <span class="reserved">return</span> req;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpBindingConnection.<span class="reserved">prototype</span>._suspend = <span class="reserved">function</span>() {
-  <span class="reserved">if</span> (<span class="reserved">this</span>._pause == 0)
-    <span class="reserved">return</span>; <span class="comment">// got nothing to do</span>
-
-  var slot = <span class="reserved">this</span>._getFreeSlot();
-  <span class="comment">// Intentionally synchronous</span>
-  <span class="reserved">this</span>._req[slot] = <span class="reserved">this</span>._setupRequest(false);
-
-  var reqstr = <span class="literal">"<body pause='"</span>+<span class="reserved">this</span>._pause+<span class="literal">"' xmlns='http://jabber.org/protocol/httpbind' sid='"</span>+<span class="reserved">this</span>._sid+<span class="literal">"' rid='"</span>+<span class="reserved">this</span>._rid+<span class="literal">"'"</span>;
-  <span class="reserved">if</span> (JSJAC_HAVEKEYS) {
-    reqstr += <span class="literal">" key='"</span>+<span class="reserved">this</span>._keys.getKey()+<span class="literal">"'"</span>;
-    <span class="reserved">if</span> (<span class="reserved">this</span>._keys.lastKey()) {
-      <span class="reserved">this</span>._keys = new JSJaCKeys(hex_sha1,<span class="reserved">this</span>.oDbg);
-      reqstr += <span class="literal">" newkey='"</span>+<span class="reserved">this</span>._keys.getKey()+<span class="literal">"'"</span>;
-    }
-
-  }
-  reqstr += <span class="literal">">"</span>;
-
-  <span class="reserved">while</span> (<span class="reserved">this</span>._pQueue.length) {
-    var curNode = <span class="reserved">this</span>._pQueue[0];
-    reqstr += curNode;
-    <span class="reserved">this</span>._pQueue = <span class="reserved">this</span>._pQueue.slice(1,<span class="reserved">this</span>._pQueue.length);
-  }
-
-  <span class="comment">//reqstr += "<presence type='unavailable' xmlns='jabber:client'/>";</span>
-  reqstr += <span class="literal">"</body>"</span>;
-
-  <span class="reserved">this</span>.oDbg.log(<span class="literal">"Disconnecting: "</span> + reqstr,4);
-  <span class="reserved">this</span>._req[slot].r.send(reqstr);
-};
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-JSJaCHttpPollingConnection.js.html b/doc/overview-summary-JSJaCHttpPollingConnection.js.html
deleted file mode 100644
index 16dc020..0000000
--- a/doc/overview-summary-JSJaCHttpPollingConnection.js.html
+++ /dev/null
@@ -1,505 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="JSJaCHttpPollingConnection.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>JSJaCHttpPollingConnection.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		All stuff related to HTTP Polling
- <BR/><BR/><B>Version: </B>$Revision: 452 $<BR/><BR/><B>Author:</B> Stefan Strigler steve at zeank.in-berlin.de
- <BR/>
-	
-</p>
-
-<hr>
-
-
-    <table border="1" cellpadding="3" cellspacing="0" width="100%">
-    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
-    <td colspan=2><font size="+2">
-    
-        <b>Class Summary</b>
-    
-    </font></td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="JSJaCHttpPollingConnection.html">JSJaCHttpPollingConnection</a></b></td>
-    <td>Implementation of <a href='http://www.xmpp.org/extensions/xep-0025.html'>HTTP Polling</a>
- </td>
-    </tr>
-    
-    </table>
-    <hr/> 
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview"><span class="comment">/**
- * <span class="attrib">@fileoverview</span> All stuff related to HTTP Polling
- * <span class="attrib">@author</span> Stefan Strigler steve<span class="attrib">@zeank</span>.in-berlin.de
- * <span class="attrib">@version</span> $Revision: 452 $
- */</span>
-
-<span class="comment">/**
- * Instantiates an HTTP Polling session
- * <span class="attrib">@class</span> Implementation of {<span class="attrib">@link</span>
- * http://www.xmpp.org/extensions/xep-0025.html HTTP Polling}
- * <span class="attrib">@extends</span> JSJaCConnection
- * <span class="attrib">@constructor</span>
- */</span>
-<span class="reserved">function</span> JSJaCHttpPollingConnection(oArg) {
-  <span class="comment">/**
-   * <span class="attrib">@ignore</span>
-   */</span>
-  <span class="reserved">this</span>.base = JSJaCConnection;
-  <span class="reserved">this</span>.base(oArg);
-
-  <span class="comment">// give hint to JSJaCPacket that we're using HTTP Polling ...</span>
-  JSJACPACKET_USE_XMLNS = false;
-}
-JSJaCHttpPollingConnection.<span class="reserved">prototype</span> = new JSJaCConnection();
-
-<span class="comment">/**
- * Tells whether this implementation of JSJaCConnection is polling
- * Useful if it needs to be decided
- * whether it makes sense to allow for adjusting or adjust the
- * polling interval {<span class="attrib">@link</span> JSJaCConnection#setPollInterval}
- * <span class="attrib">@return</span> <code>true</code> if this is a polling connection,
- * <code>false</code> otherwise.
- * <span class="attrib">@type</span> boolean
- */</span>
-JSJaCHttpPollingConnection.<span class="reserved">prototype</span>.isPolling = <span class="reserved">function</span>() { <span class="reserved">return</span> true; };
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpPollingConnection.<span class="reserved">prototype</span>._getFreeSlot = <span class="reserved">function</span>() {
-  <span class="reserved">if</span> (typeof(<span class="reserved">this</span>._req[0]) == <span class="literal">'undefined'</span> ||
-      typeof(<span class="reserved">this</span>._req[0].r) == <span class="literal">'undefined'</span> ||
-      <span class="reserved">this</span>._req[0].r.readyState == 4)
-    <span class="reserved">return</span> 0;
-  <span class="reserved">else</span>
-    <span class="reserved">return</span> -1;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpPollingConnection.<span class="reserved">prototype</span>._getInitialRequestString = <span class="reserved">function</span>() {
-  var reqstr = <span class="literal">"0"</span>;
-  <span class="reserved">if</span> (JSJAC_HAVEKEYS) {
-    <span class="reserved">this</span>._keys = new JSJaCKeys(b64_sha1,<span class="reserved">this</span>.oDbg); <span class="comment">// generate first set of keys</span>
-    key = <span class="reserved">this</span>._keys.getKey();
-    reqstr += <span class="literal">";"</span>+key;
-  }
-  var streamto = <span class="reserved">this</span>.domain;
-  <span class="reserved">if</span> (<span class="reserved">this</span>.authhost)
-    streamto = <span class="reserved">this</span>.authhost;
-
-  reqstr += <span class="literal">",<stream:stream to='"</span>+streamto+<span class="literal">"' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'"</span>;
-  <span class="reserved">if</span> (<span class="reserved">this</span>.authtype == <span class="literal">'sasl'</span> || <span class="reserved">this</span>.authtype == <span class="literal">'saslanon'</span>)
-    reqstr += <span class="literal">" version='1.0'"</span>;
-  reqstr += <span class="literal">">"</span>;
-  <span class="reserved">return</span> reqstr;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpPollingConnection.<span class="reserved">prototype</span>._getRequestString = <span class="reserved">function</span>(raw, last) {
-  var reqstr = <span class="reserved">this</span>._sid;
-  <span class="reserved">if</span> (JSJAC_HAVEKEYS) {
-    reqstr += <span class="literal">";"</span>+<span class="reserved">this</span>._keys.getKey();
-    <span class="reserved">if</span> (<span class="reserved">this</span>._keys.lastKey()) {
-      <span class="reserved">this</span>._keys = new JSJaCKeys(b64_sha1,<span class="reserved">this</span>.oDbg);
-      reqstr += <span class="literal">';'</span>+<span class="reserved">this</span>._keys.getKey();
-    }
-  }
-  reqstr += <span class="literal">','</span>;
-  <span class="reserved">if</span> (raw)
-    reqstr += raw;
-  <span class="reserved">while</span> (<span class="reserved">this</span>._pQueue.length) {
-    reqstr += <span class="reserved">this</span>._pQueue[0];
-    <span class="reserved">this</span>._pQueue = <span class="reserved">this</span>._pQueue.slice(1,<span class="reserved">this</span>._pQueue.length);
-  }
-  <span class="reserved">if</span> (last)
-    reqstr += <span class="literal">'</stream:stream>'</span>;
-  <span class="reserved">return</span> reqstr;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpPollingConnection.<span class="reserved">prototype</span>._getStreamID = <span class="reserved">function</span>() {
-  <span class="reserved">if</span> (<span class="reserved">this</span>._req[0].r.responseText == <span class="literal">''</span>) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"waiting for stream id"</span>,2);
-    <span class="reserved">this</span>._timeout = setTimeout(JSJaC.bind(<span class="reserved">this</span>._sendEmpty, <span class="reserved">this</span>),1000);
-    <span class="reserved">return</span>;
-  }
-
-  <span class="reserved">this</span>.oDbg.log(<span class="reserved">this</span>._req[0].r.responseText,4);
-
-  <span class="comment">// extract stream id used for non-SASL authentication</span>
-  <span class="reserved">if</span> (<span class="reserved">this</span>._req[0].r.responseText.match(/id=[\<span class="literal">'\"]([^\'</span>\<span class="literal">"]+)[\'\"</span>]/))
-    <span class="reserved">this</span>.streamid = RegExp.$1;
-  <span class="reserved">this</span>.oDbg.log(<span class="literal">"got streamid: "</span>+<span class="reserved">this</span>.streamid,2);
-
-  var doc;
-
-  try {
-    var response = <span class="reserved">this</span>._req[0].r.responseText;
-    <span class="reserved">if</span> (!response.match(/<\/stream:stream>\s*$/))
-      response += <span class="literal">'</stream:stream>'</span>;
-
-    doc = XmlDocument.create(<span class="literal">"doc"</span>);
-    doc.loadXML(response);
-    <span class="reserved">if</span> (!<span class="reserved">this</span>._parseStreamFeatures(doc))
-      <span class="reserved">return</span>;
-  } catch(e) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"loadXML: "</span>+e.toString(),1);
-  }
-
-  <span class="reserved">this</span>._connected = true;
-
-  <span class="reserved">if</span> (<span class="reserved">this</span>.register)
-    <span class="reserved">this</span>._doInBandReg();
-  <span class="reserved">else</span>
-    <span class="reserved">this</span>._doAuth();
-
-  <span class="reserved">this</span>._process(<span class="reserved">this</span>._timerval); <span class="comment">// start polling</span>
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpPollingConnection.<span class="reserved">prototype</span>._getSuspendVars = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> new Array();
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpPollingConnection.<span class="reserved">prototype</span>._handleInitialResponse = <span class="reserved">function</span>() {
-  <span class="comment">// extract session ID</span>
-  <span class="reserved">this</span>.oDbg.log(<span class="reserved">this</span>._req[0].r.getAllResponseHeaders(),4);
-  var aPList = <span class="reserved">this</span>._req[0].r.getResponseHeader(<span class="literal">'Set-Cookie'</span>);
-  aPList = aPList.split(<span class="literal">";"</span>);
-  <span class="reserved">for</span> (var i=0;i<aPList.length;i++) {
-    aArg = aPList[i].split(<span class="literal">"="</span>);
-    <span class="reserved">if</span> (aArg[0] == <span class="literal">'ID'</span>)
-      <span class="reserved">this</span>._sid = aArg[1];
-  }
-  <span class="reserved">this</span>.oDbg.log(<span class="literal">"got sid: "</span>+<span class="reserved">this</span>._sid,2);
-
-  <span class="comment">/* start sending from queue for not polling connections */</span>
-  <span class="reserved">this</span>._connected = true;
-
-  <span class="reserved">this</span>._interval= setInterval(JSJaC.bind(<span class="reserved">this</span>._checkQueue, <span class="reserved">this</span>),
-                              JSJAC_CHECKQUEUEINTERVAL);
-  <span class="reserved">this</span>._inQto = setInterval(JSJaC.bind(<span class="reserved">this</span>._checkInQ, <span class="reserved">this</span>),
-                            JSJAC_CHECKINQUEUEINTERVAL);
-
-  <span class="comment">/* wait for initial stream response to extract streamid needed
-   * for digest auth
-   */</span>
-  <span class="reserved">this</span>._getStreamID();
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpPollingConnection.<span class="reserved">prototype</span>._parseResponse = <span class="reserved">function</span>(r) {
-  var req = r.r;
-  <span class="reserved">if</span> (!<span class="reserved">this</span>.connected())
-    <span class="reserved">return</span> null;
-
-  <span class="comment">/* handle error */</span>
-  <span class="comment">// proxy error (!)</span>
-  <span class="reserved">if</span> (req.status != 200) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"invalid response ("</span>+req.status+<span class="literal">"):"</span> + req.responseText+<span class="literal">"\n"</span>+req.getAllResponseHeaders(),1);
-
-    <span class="reserved">this</span>._setStatus(<span class="literal">'internal_server_error'</span>);
-
-    clearTimeout(<span class="reserved">this</span>._timeout); <span class="comment">// remove timer</span>
-    clearInterval(<span class="reserved">this</span>._interval);
-    clearInterval(<span class="reserved">this</span>._inQto);
-    <span class="reserved">this</span>._connected = false;
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"Disconnected."</span>,1);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'ondisconnect'</span>);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'onerror'</span>,JSJaCError(<span class="literal">'503'</span>,<span class="literal">'cancel'</span>,<span class="literal">'service-unavailable'</span>));
-    <span class="reserved">return</span> null;
-  }
-
-  <span class="reserved">this</span>.oDbg.log(req.getAllResponseHeaders(),4);
-  var sid, aPList = req.getResponseHeader(<span class="literal">'Set-Cookie'</span>);
-
-  <span class="reserved">if</span> (aPList == null)
-    sid = <span class="literal">"-1:0"</span>; <span class="comment">// Generate internal server error</span>
-  <span class="reserved">else</span> {
-    aPList = aPList.split(<span class="literal">";"</span>);
-    var sid;
-    <span class="reserved">for</span> (var i=0;i<aPList.length;i++) {
-      var aArg = aPList[i].split(<span class="literal">"="</span>);
-      <span class="reserved">if</span> (aArg[0] == <span class="literal">'ID'</span>)
-        sid = aArg[1];
-    }
-  }
-
-  <span class="comment">// http polling component error</span>
-  <span class="reserved">if</span> (typeof(sid) != <span class="literal">'undefined'</span> && sid.indexOf(<span class="literal">':0'</span>) != -1) {
-    switch (sid.substring(0,sid.indexOf(<span class="literal">':0'</span>))) {
-    case <span class="literal">'0'</span>:
-      <span class="reserved">this</span>.oDbg.log(<span class="literal">"invalid response:"</span> + req.responseText,1);
-      break;
-    case <span class="literal">'-1'</span>:
-      <span class="reserved">this</span>.oDbg.log(<span class="literal">"Internal Server Error"</span>,1);
-      break;
-    case <span class="literal">'-2'</span>:
-      <span class="reserved">this</span>.oDbg.log(<span class="literal">"Bad Request"</span>,1);
-      break;
-    case <span class="literal">'-3'</span>:
-      <span class="reserved">this</span>.oDbg.log(<span class="literal">"Key Sequence Error"</span>,1);
-      break;
-    }
-
-    <span class="reserved">this</span>._setStatus(<span class="literal">'internal_server_error'</span>);
-
-    clearTimeout(<span class="reserved">this</span>._timeout); <span class="comment">// remove timer</span>
-    clearInterval(<span class="reserved">this</span>._interval);
-    clearInterval(<span class="reserved">this</span>._inQto);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'onerror'</span>,JSJaCError(<span class="literal">'500'</span>,<span class="literal">'wait'</span>,<span class="literal">'internal-server-error'</span>));
-    <span class="reserved">this</span>._connected = false;
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"Disconnected."</span>,1);
-    <span class="reserved">this</span>._handleEvent(<span class="literal">'ondisconnect'</span>);
-    <span class="reserved">return</span> null;
-  }
-
-  <span class="reserved">if</span> (!req.responseText || req.responseText == <span class="literal">''</span>)
-    <span class="reserved">return</span> null;
-
-  try {
-    var response = req.responseText.replace(/\<\?xml.+\?\>/,<span class="literal">""</span>);
-    <span class="reserved">if</span> (response.match(/<stream:stream/))
-        response += <span class="literal">"</stream:stream>"</span>;
-    var doc = JSJaCHttpPollingConnection._parseTree(<span class="literal">"<body>"</span>+response+<span class="literal">"</body>"</span>);
-
-    <span class="reserved">if</span> (!doc || doc.tagName == <span class="literal">'parsererror'</span>) {
-      <span class="reserved">this</span>.oDbg.log(<span class="literal">"parsererror"</span>,1);
-
-      doc = JSJaCHttpPollingConnection._parseTree(<span class="literal">"<stream:stream xmlns:stream='http://etherx.jabber.org/streams'>"</span>+req.responseText);
-      <span class="reserved">if</span> (doc && doc.tagName != <span class="literal">'parsererror'</span>) {
-        <span class="reserved">this</span>.oDbg.log(<span class="literal">"stream closed"</span>,1);
-
-        <span class="reserved">if</span> (doc.getElementsByTagName(<span class="literal">'conflict'</span>).length > 0)
-          <span class="reserved">this</span>._setStatus(<span class="literal">"session-terminate-conflict"</span>);
-			
-        clearTimeout(<span class="reserved">this</span>._timeout); <span class="comment">// remove timer</span>
-        clearInterval(<span class="reserved">this</span>._interval);
-        clearInterval(<span class="reserved">this</span>._inQto);
-        <span class="reserved">this</span>._handleEvent(<span class="literal">'onerror'</span>,JSJaCError(<span class="literal">'503'</span>,<span class="literal">'cancel'</span>,<span class="literal">'session-terminate'</span>));
-        <span class="reserved">this</span>._connected = false;
-        <span class="reserved">this</span>.oDbg.log(<span class="literal">"Disconnected."</span>,1);
-        <span class="reserved">this</span>._handleEvent(<span class="literal">'ondisconnect'</span>);
-      } <span class="reserved">else</span>
-        <span class="reserved">this</span>.oDbg.log(<span class="literal">"parsererror:"</span>+doc,1);
-		
-      <span class="reserved">return</span> doc;
-    }
-
-    <span class="reserved">return</span> doc;
-  } catch (e) {
-    <span class="reserved">this</span>.oDbg.log(<span class="literal">"parse error:"</span>+e.message,1);
-  }
-  <span class="reserved">return</span> null;;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpPollingConnection.<span class="reserved">prototype</span>._reInitStream = <span class="reserved">function</span>(to,cb,arg) {
-  <span class="reserved">this</span>._sendRaw(<span class="literal">"<stream:stream xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' to='"</span>+to+<span class="literal">"' version='1.0'>"</span>,cb,arg);
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpPollingConnection.<span class="reserved">prototype</span>._resume = <span class="reserved">function</span>() {
-  <span class="reserved">this</span>._process(<span class="reserved">this</span>._timerval);
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpPollingConnection.<span class="reserved">prototype</span>._setupRequest = <span class="reserved">function</span>(async) {
-  var r = XmlHttp.create();
-  try {
-    r.open(<span class="literal">"POST"</span>,<span class="reserved">this</span>._httpbase,async);
-    <span class="reserved">if</span> (r.overrideMimeType)
-      r.overrideMimeType(<span class="literal">'text/plain; charset=utf-8'</span>);
-    r.setRequestHeader(<span class="literal">'Content-Type'</span>,<span class="literal">'application/x-www-form-urlencoded'</span>);
-  } catch(e) { <span class="reserved">this</span>.oDbg.log(e,1); }
-
-  var req = new Object();
-  req.r = r;
-  <span class="reserved">return</span> req;
-};
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpPollingConnection.<span class="reserved">prototype</span>._suspend = <span class="reserved">function</span>() {};
-
-<span class="comment">/*** [static] ***/</span>
-
-<span class="comment">/**
- * <span class="attrib">@private</span>
- */</span>
-JSJaCHttpPollingConnection._parseTree = <span class="reserved">function</span>(s) {
-  try {
-    var r = XmlDocument.create(<span class="literal">"body"</span>,<span class="literal">"foo"</span>);
-    <span class="reserved">if</span> (typeof(r.loadXML) != <span class="literal">'undefined'</span>) {
-      r.loadXML(s);
-      <span class="reserved">return</span> r.documentElement;
-    } <span class="reserved">else</span> <span class="reserved">if</span> (window.DOMParser)
-      <span class="reserved">return</span> (new DOMParser()).parseFromString(s, <span class="literal">"text/xml"</span>).documentElement;
-  } catch (e) { }
-  <span class="reserved">return</span> null;
-};
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-JSJaCJID.js.html b/doc/overview-summary-JSJaCJID.js.html
deleted file mode 100644
index 6c796f3..0000000
--- a/doc/overview-summary-JSJaCJID.js.html
+++ /dev/null
@@ -1,379 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="JSJaCJID.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>JSJaCJID.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		This file contains all things that make life easier when
- dealing with JIDs
- <BR/><BR/><B>Version: </B>$Revision: 437 $<BR/><BR/><B>Author:</B> Stefan Strigler
- <BR/>
-	
-</p>
-
-<hr>
-
-
-    <table border="1" cellpadding="3" cellspacing="0" width="100%">
-    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
-    <td colspan=2><font size="+2">
-    
-        <b>Class Summary</b>
-    
-    </font></td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="JSJaCJID.html">JSJaCJID</a></b></td>
-    <td>JSJaCJID models xmpp jid objects
- </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="JSJaCJIDInvalidException.html">JSJaCJIDInvalidException</a></b></td>
-    <td>Exception to indicate invalid values for a jid
- </td>
-    </tr>
-    
-    </table>
-    <hr/> 
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview"><span class="comment">/**
- * <span class="attrib">@fileoverview</span> This file contains all things that make life easier when
- * dealing with JIDs
- * <span class="attrib">@author</span> Stefan Strigler
- * <span class="attrib">@version</span> $Revision: 437 $
- */</span>
-
-<span class="comment">/**
- * list of forbidden chars for nodenames
- * <span class="attrib">@private</span>
- */</span>
-var JSJACJID_FORBIDDEN = [<span class="literal">'"'</span>,<span class="literal">' '</span>,<span class="literal">'&'</span>,<span class="literal">'\'</span><span class="literal">','</span>/<span class="literal">','</span>:<span class="literal">','</span><<span class="literal">','</span>><span class="literal">','</span>@<span class="literal">'];
-
-/**
- * Creates a new JSJaCJID object
- * @class JSJaCJID models xmpp jid objects
- * @constructor
- * @param {Object} jid jid may be either of type String or a JID represented
- * by JSON with fields '</span>node<span class="literal">', '</span>domain<span class="literal">' and '</span>resource<span class="literal">'
- * @throws JSJaCJIDInvalidException Thrown if jid is not valid
- * @return a new JSJaCJID object
- */
-function JSJaCJID(jid) {
-  /**
-   *@private
-   */
-  this._node = '</span><span class="literal">';
-  /**
-   *@private
-   */
-  this._domain = '</span><span class="literal">';
-  /**
-   *@private
-   */
-  this._resource = '</span><span class="literal">';
-
-  if (typeof(jid) == '</span>string<span class="literal">') {
-    if (jid.indexOf('</span>@<span class="literal">') != -1) {
-        this.setNode(jid.substring(0,jid.indexOf('</span>@<span class="literal">')));
-        jid = jid.substring(jid.indexOf('</span>@<span class="literal">')+1);
-    }
-    if (jid.indexOf('</span>/<span class="literal">') != -1) {
-      this.setResource(jid.substring(jid.indexOf('</span>/<span class="literal">')+1));
-      jid = jid.substring(0,jid.indexOf('</span>/<span class="literal">'));
-    }
-    this.setDomain(jid);
-  } else {
-    this.setNode(jid.node);
-    this.setDomain(jid.domain);
-    this.setResource(jid.resource);
-  }
-}
-
-
-/**
- * Gets the node part of the jid
- * @return A string representing the node name
- * @type String
- */
-JSJaCJID.prototype.getNode = function() { return this._node; };
-
-/**
- * Gets the domain part of the jid
- * @return A string representing the domain name
- * @type String
- */
-JSJaCJID.prototype.getDomain = function() { return this._domain; };
-
-/**
- * Gets the resource part of the jid
- * @return A string representing the resource
- * @type String
- */
-JSJaCJID.prototype.getResource = function() { return this._resource; };
-
-
-/**
- * Sets the node part of the jid
- * @param {String} node Name of the node
- * @throws JSJaCJIDInvalidException Thrown if node name contains invalid chars
- * @return This object
- * @type JSJaCJID
- */
-JSJaCJID.prototype.setNode = function(node) {
-  JSJaCJID._checkNodeName(node);
-  this._node = node || '</span><span class="literal">';
-  return this;
-};
-
-/**
- * Sets the domain part of the jid
- * @param {String} domain Name of the domain
- * @throws JSJaCJIDInvalidException Thrown if domain name contains invalid
- * chars or is empty
- * @return This object
- * @type JSJaCJID
- */
-JSJaCJID.prototype.setDomain = function(domain) {
-  if (!domain || domain == '</span><span class="literal">')
-    throw new JSJaCJIDInvalidException("domain name missing");
-  // chars forbidden for a node are not allowed in domain names
-  // anyway, so let'</span>s check
-  JSJaCJID._checkNodeName(domain);
-  <span class="reserved">this</span>._domain = domain;
-  <span class="reserved">return</span> <span class="reserved">this</span>;
-};
-
-<span class="comment">/**
- * Sets the resource part of the jid
- * <span class="attrib">@param</span> {String} resource Name of the resource
- * <span class="attrib">@return</span> This object
- * <span class="attrib">@type</span> JSJaCJID
- */</span>
-JSJaCJID.<span class="reserved">prototype</span>.setResource = <span class="reserved">function</span>(resource) {
-  <span class="reserved">this</span>._resource = resource || <span class="literal">''</span>;
-  <span class="reserved">return</span> <span class="reserved">this</span>;
-};
-
-<span class="comment">/**
- * The string representation of the full jid
- * <span class="attrib">@return</span> A string representing the jid
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCJID.<span class="reserved">prototype</span>.toString = <span class="reserved">function</span>() {
-  var jid = <span class="literal">''</span>;
-  <span class="reserved">if</span> (<span class="reserved">this</span>.getNode() && <span class="reserved">this</span>.getNode() != <span class="literal">''</span>)
-    jid = <span class="reserved">this</span>.getNode() + <span class="literal">'@'</span>;
-  jid += <span class="reserved">this</span>.getDomain(); <span class="comment">// we always have a domain</span>
-  <span class="reserved">if</span> (<span class="reserved">this</span>.getResource() && <span class="reserved">this</span>.getResource() != <span class="literal">""</span>)
-    jid += <span class="literal">'/'</span> + <span class="reserved">this</span>.getResource();
-  <span class="reserved">return</span> jid;
-};
-
-<span class="comment">/**
- * Removes the resource part of the jid
- * <span class="attrib">@return</span> This object
- * <span class="attrib">@type</span> JSJaCJID
- */</span>
-JSJaCJID.<span class="reserved">prototype</span>.removeResource = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>.setResource();
-};
-
-<span class="comment">/**
- * creates a copy of this JSJaCJID object
- * <span class="attrib">@return</span> A copy of this
- * <span class="attrib">@type</span> JSJaCJID
- */</span>
-JSJaCJID.<span class="reserved">prototype</span>.clone = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> new JSJaCJID(<span class="reserved">this</span>.toString());
-};
-
-<span class="comment">/**
- * Compares two jids if they belong to the same entity (i.e. w/o resource)
- * <span class="attrib">@param</span> {String} jid a jid as string or JSJaCJID object
- * <span class="attrib">@return</span> 'true' if jid is same entity as this
- * <span class="attrib">@type</span> Boolean
- */</span>
-JSJaCJID.<span class="reserved">prototype</span>.isEntity = <span class="reserved">function</span>(jid) {
-  <span class="reserved">if</span> (typeof jid == <span class="literal">'string'</span>)
-	  jid = (new JSJaCJID(jid));
-  jid.removeResource();
-  <span class="reserved">return</span> (<span class="reserved">this</span>.clone().removeResource().toString() === jid.toString());
-};
-
-<span class="comment">/**
- * Check if node name is valid
- * <span class="attrib">@private</span>
- * <span class="attrib">@param</span> {String} node A name for a node
- * <span class="attrib">@throws</span> JSJaCJIDInvalidException Thrown if name for node is not allowed
- */</span>
-JSJaCJID._checkNodeName = <span class="reserved">function</span>(nodeprep) {
-    <span class="reserved">if</span> (!nodeprep || nodeprep == <span class="literal">''</span>)
-      <span class="reserved">return</span>;
-    <span class="reserved">for</span> (var i=0; i< JSJACJID_FORBIDDEN.length; i++) {
-      <span class="reserved">if</span> (nodeprep.indexOf(JSJACJID_FORBIDDEN[i]) != -1) {
-        throw new JSJaCJIDInvalidException(<span class="literal">"forbidden char in nodename: "</span>+JSJACJID_FORBIDDEN[i]);
-      }
-    }
-};
-
-<span class="comment">/**
- * Creates a new Exception of type JSJaCJIDInvalidException
- * <span class="attrib">@class</span> Exception to indicate invalid values for a jid
- * <span class="attrib">@constructor</span>
- * <span class="attrib">@param</span> {String} message The message associated with this Exception
- */</span>
-<span class="reserved">function</span> JSJaCJIDInvalidException(message) {
-  <span class="comment">/**
-   * The exceptions associated message
-   * <span class="attrib">@type</span> String
-   */</span>
-  <span class="reserved">this</span>.message = message;
-  <span class="comment">/**
-   * The name of the exception
-   * <span class="attrib">@type</span> String
-   */</span>
-  <span class="reserved">this</span>.name = <span class="literal">"JSJaCJIDInvalidException"</span>;
-}
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-JSJaCJSON.js.html b/doc/overview-summary-JSJaCJSON.js.html
deleted file mode 100644
index 351af7d..0000000
--- a/doc/overview-summary-JSJaCJSON.js.html
+++ /dev/null
@@ -1,298 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="JSJaCJSON.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>JSJaCJSON.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		No overview generated for 'JSJaCJSON.js'<BR/><BR/>
-	
-</p>
-
-<hr>
-
-
-    <table border="1" cellpadding="3" cellspacing="0" width="100%">
-    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
-    <td colspan=2><font size="+2">
-    
-        <b>Class Summary</b>
-    
-    </font></td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="JSJaCJSON.html">JSJaCJSON</a></b></td>
-    <td> </td>
-    </tr>
-    
-    </table>
-    <hr/> 
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview"><span class="comment">/* Copyright (c) 2005-2007 Sam Stephenson
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy,
- * modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */</span>
-
-<span class="comment">/*
-  json.js
-  taken from prototype.js, made static
-*/</span>
-<span class="reserved">function</span> JSJaCJSON() {}
-JSJaCJSON.toString = <span class="reserved">function</span> (obj) {
-  var m = {
-    <span class="literal">'\b'</span>: <span class="literal">'\\b'</span>,
-    <span class="literal">'\t'</span>: <span class="literal">'\\t'</span>,
-    <span class="literal">'\n'</span>: <span class="literal">'\\n'</span>,
-    <span class="literal">'\f'</span>: <span class="literal">'\\f'</span>,
-    <span class="literal">'\r'</span>: <span class="literal">'\\r'</span>,
-    <span class="literal">'"'</span> : <span class="literal">'\\"'</span>,
-    <span class="literal">'\\'</span>: <span class="literal">'\\\\'</span>
-  },
-  s = {
-    array: <span class="reserved">function</span> (x) {
-      var a = [<span class="literal">'['</span>], b, f, i, l = x.length, v;
-      <span class="reserved">for</span> (i = 0; i < l; i += 1) {
-        v = x[i];
-        f = s[typeof v];
-        <span class="reserved">if</span> (f) {
-          v = f(v);
-          <span class="reserved">if</span> (typeof v == <span class="literal">'string'</span>) {
-            <span class="reserved">if</span> (b) {
-              a[a.length] = <span class="literal">','</span>;
-            }
-            a[a.length] = v;
-            b = true;
-          }
-        }
-      }
-      a[a.length] = <span class="literal">']'</span>;
-      <span class="reserved">return</span> a.join(<span class="literal">''</span>);
-    },
-    <span class="literal">'boolean'</span>: <span class="reserved">function</span> (x) {
-      <span class="reserved">return</span> String(x);
-    },
-    <span class="literal">'null'</span>: <span class="reserved">function</span> (x) {
-      <span class="reserved">return</span> <span class="literal">"null"</span>;
-    },
-    number: <span class="reserved">function</span> (x) {
-      <span class="reserved">return</span> isFinite(x) ? String(x) : <span class="literal">'null'</span>;
-    },
-    object: <span class="reserved">function</span> (x) {
-      <span class="reserved">if</span> (x) {
-        <span class="reserved">if</span> (x instanceof Array) {
-          <span class="reserved">return</span> s.array(x);
-        }
-        var a = [<span class="literal">'{'</span>], b, f, i, v;
-        <span class="reserved">for</span> (i in x) {
-          <span class="reserved">if</span> (x.hasOwnProperty(i)) {
-            v = x[i];
-            f = s[typeof v];
-            <span class="reserved">if</span> (f) {
-              v = f(v);
-              <span class="reserved">if</span> (typeof v == <span class="literal">'string'</span>) {
-                <span class="reserved">if</span> (b) {
-                  a[a.length] = <span class="literal">','</span>;
-                }
-                a.push(s.string(i), <span class="literal">':'</span>, v);
-                b = true;
-              }
-            }
-          }
-        }
-         
-        a[a.length] = <span class="literal">'}'</span>;
-        <span class="reserved">return</span> a.join(<span class="literal">''</span>);
-      }
-      <span class="reserved">return</span> <span class="literal">'null'</span>;
-    },
-    string: <span class="reserved">function</span> (x) {
-      <span class="reserved">if</span> (/[<span class="literal">"\\\x00-\x1f]/.test(x)) {
-                    x = x.replace(/([\x00-\x1f\\"</span>])/g, <span class="reserved">function</span>(a, b) {
-          var c = m[b];
-          <span class="reserved">if</span> (c) {
-            <span class="reserved">return</span> c;
-          }
-          c = b.charCodeAt();
-          <span class="reserved">return</span> <span class="literal">'\\u00'</span> +
-          Math.floor(c / 16).toString(16) +
-          (c % 16).toString(16);
-        });
-  }
-  <span class="reserved">return</span> <span class="literal">'"'</span> + x + <span class="literal">'"'</span>;
-}
-  };
-
-switch (typeof(obj)) {
- case <span class="literal">'object'</span>:
-   <span class="reserved">return</span> s.object(obj);
- case <span class="literal">'array'</span>:
-   <span class="reserved">return</span> s.array(obj);
-   
- }
-};
-
-JSJaCJSON.parse = <span class="reserved">function</span> (str) {
-  try {
-    <span class="reserved">return</span> !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
-                                                       str.replace(/<span class="literal">"(\\.|[^"</span>\\])*"/g, <span class="literal">''</span>))) &&
-            eval(<span class="literal">'('</span> + str + <span class="literal">')'</span>);
-    } catch (e) {
-        <span class="reserved">return</span> false;
-    }
-};
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-JSJaCKeys.js.html b/doc/overview-summary-JSJaCKeys.js.html
deleted file mode 100644
index 94813c0..0000000
--- a/doc/overview-summary-JSJaCKeys.js.html
+++ /dev/null
@@ -1,238 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="JSJaCKeys.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>JSJaCKeys.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		No overview generated for 'JSJaCKeys.js'<BR/><BR/>
-	
-</p>
-
-<hr>
-
-
-    <table border="1" cellpadding="3" cellspacing="0" width="100%">
-    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
-    <td colspan=2><font size="+2">
-    
-        <b>Class Summary</b>
-    
-    </font></td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="JSJaCKeys.html">JSJaCKeys</a></b></td>
-    <td>Reflects a set of sha1/md5 hash keys for securing sessions
- </td>
-    </tr>
-    
-    </table>
-    <hr/> 
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview">
-<span class="comment">/**
- * Creates a new set of hash keys
- * <span class="attrib">@class</span> Reflects a set of sha1/md5 hash keys for securing sessions
- * <span class="attrib">@constructor</span>
- * <span class="attrib">@param</span> {Function} func The hash function to be used for creating the keys
- * <span class="attrib">@param</span> {Debugger} oDbg Reference to debugger implementation [optional]
- */</span>									 
-<span class="reserved">function</span> JSJaCKeys(func,oDbg) {
-  var seed = Math.random();
-
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._k = new Array();
-  <span class="reserved">this</span>._k[0] = seed.toString();
-  <span class="reserved">if</span> (oDbg)
-    <span class="comment">/**
-     * Reference to Debugger
-     * <span class="attrib">@type</span> Debugger
-     */</span>
-    <span class="reserved">this</span>.oDbg = oDbg;
-  <span class="reserved">else</span> {
-    <span class="reserved">this</span>.oDbg = {};
-    <span class="reserved">this</span>.oDbg.log = <span class="reserved">function</span>() {};
-  }
-
-  <span class="reserved">if</span> (func) {
-    <span class="reserved">for</span> (var i=1; i<JSJAC_NKEYS; i++) {
-      <span class="reserved">this</span>._k[i] = func(<span class="reserved">this</span>._k[i-1]);
-      oDbg.log(i+<span class="literal">": "</span>+<span class="reserved">this</span>._k[i],4);
-    }
-  }
-
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._indexAt = JSJAC_NKEYS-1;
-  <span class="comment">/**
-   * Gets next key from stack
-   * <span class="attrib">@return</span> New hash key
-   * <span class="attrib">@type</span> String
-   */</span>
-  <span class="reserved">this</span>.getKey = <span class="reserved">function</span>() {
-    <span class="reserved">return</span> <span class="reserved">this</span>._k[<span class="reserved">this</span>._indexAt--];
-  };
-  <span class="comment">/**
-   * Indicates whether there's only one key left
-   * <span class="attrib">@return</span> <code>true</code> if there's only one key left, false otherwise
-   * <span class="attrib">@type</span> boolean
-   */</span>
-  <span class="reserved">this</span>.lastKey = <span class="reserved">function</span>() { <span class="reserved">return</span> (<span class="reserved">this</span>._indexAt == 0); };
-  <span class="comment">/**
-   * Returns number of overall/initial stack size
-   * <span class="attrib">@return</span> Number of keys created
-   * <span class="attrib">@type</span> int
-   */</span>
-  <span class="reserved">this</span>.size = <span class="reserved">function</span>() { <span class="reserved">return</span> <span class="reserved">this</span>._k.length; };
-
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>._getSuspendVars = <span class="reserved">function</span>() {
-    <span class="reserved">return</span> (<span class="literal">'_k,_indexAt'</span>).split(<span class="literal">','</span>);
-  }
-}
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-JSJaCPacket.js.html b/doc/overview-summary-JSJaCPacket.js.html
deleted file mode 100644
index fdcf43e..0000000
--- a/doc/overview-summary-JSJaCPacket.js.html
+++ /dev/null
@@ -1,876 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="JSJaCPacket.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>JSJaCPacket.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		Contains all Jabber/XMPP packet related classes.
- <BR/><BR/><B>Version: </B>$Revision: 480 $<BR/><BR/><B>Author:</B> Stefan Strigler steve at zeank.in-berlin.de
- <BR/>
-	
-</p>
-
-<hr>
-
-
-    <table border="1" cellpadding="3" cellspacing="0" width="100%">
-    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
-    <td colspan=2><font size="+2">
-    
-        <b>Class Summary</b>
-    
-    </font></td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="JSJaCIQ.html">JSJaCIQ</a></b></td>
-    <td>Models the XMPP notion of an 'iq' packet
- </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="JSJaCMessage.html">JSJaCMessage</a></b></td>
-    <td>Models the XMPP notion of an 'message' packet
- </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="JSJaCPacket.html">JSJaCPacket</a></b></td>
-    <td>Somewhat abstract base class for all kinds of specialised packets
- </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="JSJaCPresence.html">JSJaCPresence</a></b></td>
-    <td>Models the XMPP notion of a 'presence' packet
- </td>
-    </tr>
-    
-    </table>
-    <hr/> 
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview"><span class="comment">/**
- * <span class="attrib">@fileoverview</span> Contains all Jabber/XMPP packet related classes.
- * <span class="attrib">@author</span> Stefan Strigler steve<span class="attrib">@zeank</span>.in-berlin.de
- * <span class="attrib">@version</span> $Revision: 480 $
- */</span>
-
-var JSJACPACKET_USE_XMLNS = true;
-
-<span class="comment">/**
- * Creates a new packet with given root tag name (for internal use)
- * <span class="attrib">@class</span> Somewhat abstract base class for all kinds of specialised packets
- * <span class="attrib">@param</span> {String} name The root tag name of the packet
- * (i.e. one of 'message', 'iq' or 'presence')
- */</span>
-<span class="reserved">function</span> JSJaCPacket(name) {
-  <span class="comment">/**
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="reserved">this</span>.name = name;
-
-  <span class="reserved">if</span> (typeof(JSJACPACKET_USE_XMLNS) != <span class="literal">'undefined'</span> && JSJACPACKET_USE_XMLNS)
-    <span class="comment">/**
-     * <span class="attrib">@private</span>
-     */</span>
-    <span class="reserved">this</span>.doc = XmlDocument.create(name,<span class="literal">'jabber:client'</span>);
-  <span class="reserved">else</span>
-    <span class="comment">/**
-     * <span class="attrib">@private</span>
-     */</span>
-    <span class="reserved">this</span>.doc = XmlDocument.create(name,<span class="literal">''</span>);
-}
-
-<span class="comment">/**
- * Gets the type (name of root element) of this packet, i.e. one of
- * 'presence', 'message' or 'iq'
- * <span class="attrib">@return</span> the top level tag name
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.pType = <span class="reserved">function</span>() { <span class="reserved">return</span> <span class="reserved">this</span>.name; };
-
-<span class="comment">/**
- * Gets the associated Document for this packet.
- * <span class="attrib">@type</span> {<span class="attrib">@link</span> http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#i-Document Document}
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.getDoc = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>.doc;
-};
-<span class="comment">/**
- * Gets the root node of this packet
- * <span class="attrib">@type</span> {<span class="attrib">@link</span> http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247 Node}
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.getNode = <span class="reserved">function</span>() {
-  <span class="reserved">if</span> (<span class="reserved">this</span>.getDoc() && <span class="reserved">this</span>.getDoc().documentElement)
-    <span class="reserved">return</span> <span class="reserved">this</span>.getDoc().documentElement;
-  <span class="reserved">else</span>
-    <span class="reserved">return</span> null;
-};
-
-<span class="comment">/**
- * Sets the 'to' attribute of the root node of this packet
- * <span class="attrib">@param</span> {String} to
- * <span class="attrib">@type</span> JSJaCPacket
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.setTo = <span class="reserved">function</span>(to) {
-  <span class="reserved">if</span> (!to || to == <span class="literal">''</span>)
-    <span class="reserved">this</span>.getNode().removeAttribute(<span class="literal">'to'</span>);
-  <span class="reserved">else</span> <span class="reserved">if</span> (typeof(to) == <span class="literal">'string'</span>)
-    <span class="reserved">this</span>.getNode().setAttribute(<span class="literal">'to'</span>,to);
-  <span class="reserved">else</span>
-    <span class="reserved">this</span>.getNode().setAttribute(<span class="literal">'to'</span>,to.toString());
-  <span class="reserved">return</span> <span class="reserved">this</span>;
-};
-<span class="comment">/**
- * Sets the 'from' attribute of the root node of this
- * packet. Usually this is not needed as the server will take care
- * of this automatically.
- * <span class="attrib">@type</span> JSJaCPacket
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.setFrom = <span class="reserved">function</span>(from) {
-  <span class="reserved">if</span> (!from || from == <span class="literal">''</span>)
-    <span class="reserved">this</span>.getNode().removeAttribute(<span class="literal">'from'</span>);
-  <span class="reserved">else</span> <span class="reserved">if</span> (typeof(from) == <span class="literal">'string'</span>)
-    <span class="reserved">this</span>.getNode().setAttribute(<span class="literal">'from'</span>,from);
-  <span class="reserved">else</span>
-    <span class="reserved">this</span>.getNode().setAttribute(<span class="literal">'from'</span>,from.toString());
-  <span class="reserved">return</span> <span class="reserved">this</span>;
-};
-<span class="comment">/**
- * Sets 'id' attribute of the root node of this packet.
- * <span class="attrib">@param</span> {String} id The id of the packet.
- * <span class="attrib">@type</span> JSJaCPacket
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.setID = <span class="reserved">function</span>(id) {
-  <span class="reserved">if</span> (!id || id == <span class="literal">''</span>)
-    <span class="reserved">this</span>.getNode().removeAttribute(<span class="literal">'id'</span>);
-  <span class="reserved">else</span>
-    <span class="reserved">this</span>.getNode().setAttribute(<span class="literal">'id'</span>,id);
-  <span class="reserved">return</span> <span class="reserved">this</span>;
-};
-<span class="comment">/**
- * Sets the 'type' attribute of the root node of this packet.
- * <span class="attrib">@param</span> {String} type The type of the packet.
- * <span class="attrib">@type</span> JSJaCPacket
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.setType = <span class="reserved">function</span>(type) {
-  <span class="reserved">if</span> (!type || type == <span class="literal">''</span>)
-    <span class="reserved">this</span>.getNode().removeAttribute(<span class="literal">'type'</span>);
-  <span class="reserved">else</span>
-    <span class="reserved">this</span>.getNode().setAttribute(<span class="literal">'type'</span>,type);
-  <span class="reserved">return</span> <span class="reserved">this</span>;
-};
-<span class="comment">/**
- * Sets 'xml:lang' for this packet
- * <span class="attrib">@param</span> {String} xmllang The xml:lang of the packet.
- * <span class="attrib">@type</span> JSJaCPacket
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.setXMLLang = <span class="reserved">function</span>(xmllang) {
-  <span class="reserved">if</span> (!xmllang || xmllang == <span class="literal">''</span>)
-    <span class="reserved">this</span>.getNode().removeAttribute(<span class="literal">'xml:lang'</span>);
-  <span class="reserved">else</span>
-    <span class="reserved">this</span>.getNode().setAttribute(<span class="literal">'xml:lang'</span>,xmllang);
-  <span class="reserved">return</span> <span class="reserved">this</span>;
-};
-
-<span class="comment">/**
- * Gets the 'to' attribute of this packet
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.getTo = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>.getNode().getAttribute(<span class="literal">'to'</span>);
-};
-<span class="comment">/**
- * Gets the 'from' attribute of this packet.
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.getFrom = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>.getNode().getAttribute(<span class="literal">'from'</span>);
-};
-<span class="comment">/**
- * Gets the 'to' attribute of this packet as a JSJaCJID object
- * <span class="attrib">@type</span> JSJaCJID
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.getToJID = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> new JSJaCJID(<span class="reserved">this</span>.getTo());
-};
-<span class="comment">/**
- * Gets the 'from' attribute of this packet as a JSJaCJID object
- * <span class="attrib">@type</span> JSJaCJID
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.getFromJID = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> new JSJaCJID(<span class="reserved">this</span>.getFrom());
-};
-<span class="comment">/**
- * Gets the 'id' of this packet
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.getID = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>.getNode().getAttribute(<span class="literal">'id'</span>);
-};
-<span class="comment">/**
- * Gets the 'type' of this packet
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.getType = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>.getNode().getAttribute(<span class="literal">'type'</span>);
-};
-<span class="comment">/**
- * Gets the 'xml:lang' of this packet
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.getXMLLang = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>.getNode().getAttribute(<span class="literal">'xml:lang'</span>);
-};
-<span class="comment">/**
- * Gets the 'xmlns' (xml namespace) of the root node of this packet
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.getXMLNS = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>.getNode().namespaceURI;
-};
-
-<span class="comment">/**
- * Gets a child element of this packet. If no params given returns first child.
- * <span class="attrib">@param</span> {String} name Tagname of child to retrieve. Use '*' to match any tag. [optional]
- * <span class="attrib">@param</span> {String} ns   Namespace of child. Use '*' to match any ns.[optional]
- * <span class="attrib">@return</span> The child node, null if none found
- * <span class="attrib">@type</span> {<span class="attrib">@link</span> http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247 Node}
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.getChild = <span class="reserved">function</span>(name, ns) {
-  <span class="reserved">if</span> (!<span class="reserved">this</span>.getNode()) {
-    <span class="reserved">return</span> null;
-  }
- 
-  name = name || <span class="literal">'*'</span>;
-  ns = ns || <span class="literal">'*'</span>;
-
-  <span class="reserved">if</span> (<span class="reserved">this</span>.getNode().getElementsByTagNameNS) {
-    <span class="reserved">return</span> <span class="reserved">this</span>.getNode().getElementsByTagNameNS(ns, name).item(0);
-  }
-
-  <span class="comment">// fallback</span>
-  var nodes = <span class="reserved">this</span>.getNode().getElementsByTagName(name);
-  <span class="reserved">if</span> (ns != <span class="literal">'*'</span>) {
-    <span class="reserved">for</span> (var i=0; i<nodes.length; i++) {
-      <span class="reserved">if</span> (nodes.item(i).namespaceURI == ns) {
-        <span class="reserved">return</span> nodes.item(i);
-      }
-    }
-  } <span class="reserved">else</span> {
-    <span class="reserved">return</span> nodes.item(0);
-  }
-  <span class="reserved">return</span> null; <span class="comment">// nothing found</span>
-}
-
-<span class="comment">/**
- * Gets the node value of a child element of this packet.
- * <span class="attrib">@param</span> {String} name Tagname of child to retrieve.
- * <span class="attrib">@param</span> {String} ns   Namespace of child
- * <span class="attrib">@return</span> The value of the child node, empty string if none found
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.getChildVal = <span class="reserved">function</span>(name, ns) {
-  var node = <span class="reserved">this</span>.getChild(name, ns);
-  var ret = <span class="literal">''</span>;
-  <span class="reserved">if</span> (node && node.hasChildNodes()) {
-    <span class="comment">// concatenate all values from childNodes</span>
-    <span class="reserved">for</span> (var i=0; i<node.childNodes.length; i++)
-      <span class="reserved">if</span> (node.childNodes.item(i).nodeValue)
-        ret += node.childNodes.item(i).nodeValue;
-  }
-  <span class="reserved">return</span> ret;
-};
-
-<span class="comment">/**
- * Returns a copy of this node
- * <span class="attrib">@return</span> a copy of this node
- * <span class="attrib">@type</span> JSJaCPacket
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.clone = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> JSJaCPacket.wrapNode(<span class="reserved">this</span>.getNode());
-};
-
-<span class="comment">/**
- * Checks if packet is of type 'error'
- * <span class="attrib">@return</span> 'true' if this packet is of type 'error', 'false' otherwise
- * <span class="attrib">@type</span> boolean
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.isError = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> (<span class="reserved">this</span>.getType() == <span class="literal">'error'</span>);
-};
-
-<span class="comment">/**
- * Returns an error condition reply according to {<span class="attrib">@link</span> http://www.xmpp.org/extensions/xep-0086.html XEP-0086}. Creates a clone of the calling packet with senders and recipient exchanged and error stanza appended.
- * <span class="attrib">@param</span> {STANZA_ERROR} stanza_error an error stanza containing error cody, type and condition of the error to be indicated
- * <span class="attrib">@return</span> an error reply packet
- * <span class="attrib">@type</span> JSJaCPacket
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.errorReply = <span class="reserved">function</span>(stanza_error) {
-  var rPacket = <span class="reserved">this</span>.clone();
-  rPacket.setTo(<span class="reserved">this</span>.getFrom());
-  rPacket.setFrom();
-  rPacket.setType(<span class="literal">'error'</span>);
-
-  rPacket.appendNode(<span class="literal">'error'</span>,
-                     {code: stanza_error.code, type: stanza_error.type},
-                     [[stanza_error.cond]]);
-
-  <span class="reserved">return</span> rPacket;
-};
-
-<span class="comment">/**
- * Returns a string representation of the raw xml content of this packet.
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.xml = typeof XMLSerializer != <span class="literal">'undefined'</span> ?
-<span class="reserved">function</span>() {
-  var r = (new XMLSerializer()).serializeToString(<span class="reserved">this</span>.getNode());
-  <span class="reserved">if</span> (typeof(r) == <span class="literal">'undefined'</span>)
-    r = (new XMLSerializer()).serializeToString(<span class="reserved">this</span>.doc); <span class="comment">// oldschool</span>
-  <span class="reserved">return</span> r
-} :
-<span class="reserved">function</span>() {<span class="comment">// IE</span>
-  <span class="reserved">return</span> <span class="reserved">this</span>.getDoc().xml
-};
-
-
-<span class="comment">// PRIVATE METHODS DOWN HERE</span>
-
-<span class="comment">/**
- * Gets an attribute of the root element
- * <span class="attrib">@private</span>
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>._getAttribute = <span class="reserved">function</span>(attr) {
-  <span class="reserved">return</span> <span class="reserved">this</span>.getNode().getAttribute(attr);
-};
-
-<span class="comment">/**
- * Replaces this node with given node
- * <span class="attrib">@private</span>
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>._replaceNode = <span class="reserved">function</span>(aNode) {
-  <span class="comment">// copy attribs</span>
-  <span class="reserved">for</span> (var i=0; i<aNode.attributes.length; i++)
-    <span class="reserved">if</span> (aNode.attributes.item(i).nodeName != <span class="literal">'xmlns'</span>)
-      <span class="reserved">this</span>.getNode().setAttribute(aNode.attributes.item(i).nodeName,
-                                  aNode.attributes.item(i).nodeValue);
-
-  <span class="comment">// copy children</span>
-  <span class="reserved">for</span> (var i=0; i<aNode.childNodes.length; i++)
-    <span class="reserved">if</span> (<span class="reserved">this</span>.getDoc().importNode)
-      <span class="reserved">this</span>.getNode().appendChild(<span class="reserved">this</span>.getDoc().importNode(aNode.
-                                                          childNodes.item(i),
-                                                          true));
-    <span class="reserved">else</span>
-      <span class="reserved">this</span>.getNode().appendChild(aNode.childNodes.item(i).cloneNode(true));
-};
- 
-<span class="comment">/**
- * Set node value of a child node
- * <span class="attrib">@private</span>
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>._setChildNode = <span class="reserved">function</span>(nodeName, nodeValue) {
-  var aNode = <span class="reserved">this</span>.getChild(nodeName);
-  var tNode = <span class="reserved">this</span>.getDoc().createTextNode(nodeValue);
-  <span class="reserved">if</span> (aNode)
-    try {
-      aNode.replaceChild(tNode,aNode.firstChild);
-    } catch (e) { }
-  <span class="reserved">else</span> {
-    try {
-      aNode = <span class="reserved">this</span>.getDoc().createElementNS(<span class="reserved">this</span>.getNode().namespaceURI,
-                                            nodeName);
-    } catch (ex) {
-      aNode = <span class="reserved">this</span>.getDoc().createElement(nodeName)
-    }
-    <span class="reserved">this</span>.getNode().appendChild(aNode);
-    aNode.appendChild(tNode);
-  }
-  <span class="reserved">return</span> aNode;
-};
-
-<span class="comment">/**
- * Builds a node using {<span class="attrib">@link</span>
- * http://wiki.script.aculo.us/scriptaculous/show/Builder
- * script.aculo.us' Dom Builder} notation.
- * This code is taken from {<span class="attrib">@link</span>
- * http://wiki.script.aculo.us/scriptaculous/show/Builder
- * script.aculo.us' Dom Builder} and has been modified to suit our
- * needs.<br/>
- * The original parts of the code do have the following copyright
- * and license notice:<br/>
- * Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us,
- * http://mir.acu lo.us) <br/>
- * script.aculo.us is freely distributable under the terms of an
- * MIT-style licen se.  // For details, see the script.aculo.us web
- * site: http://script.aculo.us/<br>
- * <span class="attrib">@author</span> Thomas Fuchs
- * <span class="attrib">@author</span> Stefan Strigler
- * <span class="attrib">@return</span> The newly created node
- * <span class="attrib">@type</span> {<span class="attrib">@link</span> http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247 Node}
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.buildNode = <span class="reserved">function</span>(elementName) {
-  <span class="reserved">return</span> JSJaCBuilder.buildNode(<span class="reserved">this</span>.getDoc(),
-                                elementName,
-                                arguments[1],
-                                arguments[2]);
-};
-
-<span class="comment">/**
- * Appends node created by buildNode to this packets parent node.
- * <span class="attrib">@param</span> {<span class="attrib">@link</span> http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247 Node} element The node to append or
- * <span class="attrib">@param</span> {String} element A name plus an object hash with attributes (optional) plus an array of childnodes (optional)
- * <span class="attrib">@see</span> #buildNode
- * <span class="attrib">@return</span> This packet
- * <span class="attrib">@type</span> JSJaCPacket
- */</span>
-JSJaCPacket.<span class="reserved">prototype</span>.appendNode = <span class="reserved">function</span>(element) {
-  <span class="reserved">if</span> (typeof element==<span class="literal">'object'</span>) { <span class="comment">// seems to be a prebuilt node</span>
-    <span class="reserved">return</span> <span class="reserved">this</span>.getNode().appendChild(element)
-  } <span class="reserved">else</span> { <span class="comment">// build node</span>
-    <span class="reserved">return</span> <span class="reserved">this</span>.getNode().appendChild(<span class="reserved">this</span>.buildNode(element,
-                                                     arguments[1],
-                                                     arguments[2],
-                                                     null,
-                                                     <span class="reserved">this</span>.getNode().namespaceURI));
-  }
-};
-
-
-<span class="comment">/**
- * A jabber/XMPP presence packet
- * <span class="attrib">@class</span> Models the XMPP notion of a 'presence' packet
- * <span class="attrib">@extends</span> JSJaCPacket
- */</span>
-<span class="reserved">function</span> JSJaCPresence() {
-  <span class="comment">/**
-   * <span class="attrib">@ignore</span>
-   */</span>
-  <span class="reserved">this</span>.base = JSJaCPacket;
-  <span class="reserved">this</span>.base(<span class="literal">'presence'</span>);
-}
-JSJaCPresence.<span class="reserved">prototype</span> = new JSJaCPacket;
-
-<span class="comment">/**
- * Sets the status message for current status. Usually this is set
- * to some human readable string indicating what the user is
- * doing/feel like currently.
- * <span class="attrib">@param</span> {String} status A status message
- * <span class="attrib">@return</span> this
- * <span class="attrib">@type</span> JSJaCPacket
- */</span>
-JSJaCPresence.<span class="reserved">prototype</span>.setStatus = <span class="reserved">function</span>(status) {
-  <span class="reserved">this</span>._setChildNode(<span class="literal">"status"</span>, status);
-  <span class="reserved">return</span> <span class="reserved">this</span>;
-};
-<span class="comment">/**
- * Sets the online status for this presence packet.
- * <span class="attrib">@param</span> {String} show An XMPP complient status indicator. Must
- * be one of 'chat', 'away', 'xa', 'dnd'
- * <span class="attrib">@return</span> this
- * <span class="attrib">@type</span> JSJaCPacket
- */</span>
-JSJaCPresence.<span class="reserved">prototype</span>.setShow = <span class="reserved">function</span>(show) {
-  <span class="reserved">if</span> (show == <span class="literal">'chat'</span> || show == <span class="literal">'away'</span> || show == <span class="literal">'xa'</span> || show == <span class="literal">'dnd'</span>)
-    <span class="reserved">this</span>._setChildNode(<span class="literal">"show"</span>,show);
-  <span class="reserved">return</span> <span class="reserved">this</span>;
-};
-<span class="comment">/**
- * Sets the priority of the resource bind to with this connection
- * <span class="attrib">@param</span> {int} prio The priority to set this resource to
- * <span class="attrib">@return</span> this
- * <span class="attrib">@type</span> JSJaCPacket
- */</span>
-JSJaCPresence.<span class="reserved">prototype</span>.setPriority = <span class="reserved">function</span>(prio) {
-  <span class="reserved">this</span>._setChildNode(<span class="literal">"priority"</span>, prio);
-  <span class="reserved">return</span> <span class="reserved">this</span>;
-};
-<span class="comment">/**
- * Some combined method that allowes for setting show, status and
- * priority at once
- * <span class="attrib">@param</span> {String} show A status message
- * <span class="attrib">@param</span> {String} status A status indicator as defined by XMPP
- * <span class="attrib">@param</span> {int} prio A priority for this resource
- * <span class="attrib">@return</span> this
- * <span class="attrib">@type</span> JSJaCPacket
- */</span>
-JSJaCPresence.<span class="reserved">prototype</span>.setPresence = <span class="reserved">function</span>(show,status,prio) {
-  <span class="reserved">if</span> (show)
-    <span class="reserved">this</span>.setShow(show);
-  <span class="reserved">if</span> (status)
-    <span class="reserved">this</span>.setStatus(status);
-  <span class="reserved">if</span> (prio)
-    <span class="reserved">this</span>.setPriority(prio);
-  <span class="reserved">return</span> <span class="reserved">this</span>;
-};
-
-<span class="comment">/**
- * Gets the status message of this presence
- * <span class="attrib">@return</span> The (human readable) status message
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCPresence.<span class="reserved">prototype</span>.getStatus = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>.getChildVal(<span class="literal">'status'</span>);
-};
-<span class="comment">/**
- * Gets the status of this presence.
- * Either one of 'chat', 'away', 'xa' or 'dnd' or null.
- * <span class="attrib">@return</span> The status indicator as defined by XMPP
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCPresence.<span class="reserved">prototype</span>.getShow = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>.getChildVal(<span class="literal">'show'</span>);
-};
-<span class="comment">/**
- * Gets the priority of this status message
- * <span class="attrib">@return</span> A resource priority
- * <span class="attrib">@type</span> int
- */</span>
-JSJaCPresence.<span class="reserved">prototype</span>.getPriority = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>.getChildVal(<span class="literal">'priority'</span>);
-};
-
-
-<span class="comment">/**
- * A jabber/XMPP iq packet
- * <span class="attrib">@class</span> Models the XMPP notion of an 'iq' packet
- * <span class="attrib">@extends</span> JSJaCPacket
- */</span>
-<span class="reserved">function</span> JSJaCIQ() {
-  <span class="comment">/**
-   * <span class="attrib">@ignore</span>
-   */</span>
-  <span class="reserved">this</span>.base = JSJaCPacket;
-  <span class="reserved">this</span>.base(<span class="literal">'iq'</span>);
-}
-JSJaCIQ.<span class="reserved">prototype</span> = new JSJaCPacket;
-
-<span class="comment">/**
- * Some combined method to set 'to', 'type' and 'id' at once
- * <span class="attrib">@param</span> {String} to the recepients JID
- * <span class="attrib">@param</span> {String} type A XMPP compliant iq type (one of 'set', 'get', 'result' and 'error'
- * <span class="attrib">@param</span> {String} id A packet ID
- * <span class="attrib">@return</span> this
- * <span class="attrib">@type</span> JSJaCIQ
- */</span>
-JSJaCIQ.<span class="reserved">prototype</span>.setIQ = <span class="reserved">function</span>(to,type,id) {
-  <span class="reserved">if</span> (to)
-    <span class="reserved">this</span>.setTo(to);
-  <span class="reserved">if</span> (type)
-    <span class="reserved">this</span>.setType(type);
-  <span class="reserved">if</span> (id)
-    <span class="reserved">this</span>.setID(id);
-  <span class="reserved">return</span> <span class="reserved">this</span>;
-};
-<span class="comment">/**
- * Creates a 'query' child node with given XMLNS
- * <span class="attrib">@param</span> {String} xmlns The namespace for the 'query' node
- * <span class="attrib">@return</span> The query node
- * <span class="attrib">@type</span> {<span class="attrib">@link</span>  http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247 Node}
- */</span>
-JSJaCIQ.<span class="reserved">prototype</span>.setQuery = <span class="reserved">function</span>(xmlns) {
-  var query;
-  try {
-    query = <span class="reserved">this</span>.getDoc().createElementNS(xmlns,<span class="literal">'query'</span>);
-  } catch (e) {
-    <span class="comment">// fallback</span>
-    query = <span class="reserved">this</span>.getDoc().createElement(<span class="literal">'query'</span>);
-  }
-  <span class="reserved">if</span> (query && query.getAttribute(<span class="literal">'xmlns'</span>) != xmlns) <span class="comment">// fix opera 8.5x</span>
-    query.setAttribute(<span class="literal">'xmlns'</span>,xmlns);
-  <span class="reserved">this</span>.getNode().appendChild(query);
-  <span class="reserved">return</span> query;
-};
-
-<span class="comment">/**
- * Gets the 'query' node of this packet
- * <span class="attrib">@return</span> The query node
- * <span class="attrib">@type</span> {<span class="attrib">@link</span>  http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247 Node}
- */</span>
-JSJaCIQ.<span class="reserved">prototype</span>.getQuery = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>.getNode().getElementsByTagName(<span class="literal">'query'</span>).item(0);
-};
-<span class="comment">/**
- * Gets the XMLNS of the query node contained within this packet
- * <span class="attrib">@return</span> The namespace of the query node
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCIQ.<span class="reserved">prototype</span>.getQueryXMLNS = <span class="reserved">function</span>() {
-  <span class="reserved">if</span> (<span class="reserved">this</span>.getQuery())
-    <span class="reserved">return</span> <span class="reserved">this</span>.getQuery().namespaceURI;
-  <span class="reserved">else</span>
-    <span class="reserved">return</span> null;
-};
-
-<span class="comment">/**
- * Creates an IQ reply with type set to 'result'. If given appends payload to first child if IQ. Payload maybe XML as string or a DOM element (or an array of such elements as well).
- * <span class="attrib">@param</span> {Element} payload A payload to be appended [optional]
- * <span class="attrib">@return</span> An IQ reply packet
- * <span class="attrib">@type</span> JSJaCIQ
- */</span>
-JSJaCIQ.<span class="reserved">prototype</span>.reply = <span class="reserved">function</span>(payload) {
-  var rIQ = <span class="reserved">this</span>.clone();
-  rIQ.setTo(<span class="reserved">this</span>.getFrom());
-  rIQ.setType(<span class="literal">'result'</span>);
-  <span class="reserved">if</span> (payload) {
-    <span class="reserved">if</span> (typeof payload == <span class="literal">'string'</span>)
-      rIQ.getChild().appendChild(rIQ.getDoc().loadXML(payload));
-    <span class="reserved">else</span> <span class="reserved">if</span> (payload.constructor == Array) {
-      var node = rIQ.getChild();
-      <span class="reserved">for</span> (var i=0; i<payload.length; i++)
-        <span class="reserved">if</span>(typeof payload[i] == <span class="literal">'string'</span>)
-          node.appendChild(rIQ.getDoc().loadXML(payload[i]));
-        <span class="reserved">else</span> <span class="reserved">if</span> (typeof payload[i] == <span class="literal">'object'</span>)
-          node.appendChild(payload[i]);
-    }
-    <span class="reserved">else</span> <span class="reserved">if</span> (typeof payload == <span class="literal">'object'</span>)
-      rIQ.getChild().appendChild(payload);
-  }
-  <span class="reserved">return</span> rIQ;
-};
-
-<span class="comment">/**
- * A jabber/XMPP message packet
- * <span class="attrib">@class</span> Models the XMPP notion of an 'message' packet
- * <span class="attrib">@extends</span> JSJaCPacket
- */</span>
-<span class="reserved">function</span> JSJaCMessage() {
-  <span class="comment">/**
-   * <span class="attrib">@ignore</span>
-   */</span>
-  <span class="reserved">this</span>.base = JSJaCPacket;
-  <span class="reserved">this</span>.base(<span class="literal">'message'</span>);
-}
-JSJaCMessage.<span class="reserved">prototype</span> = new JSJaCPacket;
-
-<span class="comment">/**
- * Sets the body of the message
- * <span class="attrib">@param</span> {String} body Your message to be sent along
- * <span class="attrib">@return</span> this message
- * <span class="attrib">@type</span> JSJaCMessage
- */</span>
-JSJaCMessage.<span class="reserved">prototype</span>.setBody = <span class="reserved">function</span>(body) {
-  <span class="reserved">this</span>._setChildNode(<span class="literal">"body"</span>,body);
-  <span class="reserved">return</span> <span class="reserved">this</span>;
-};
-<span class="comment">/**
- * Sets the subject of the message
- * <span class="attrib">@param</span> {String} subject Your subject to be sent along
- * <span class="attrib">@return</span> this message
- * <span class="attrib">@type</span> JSJaCMessage
- */</span>
-JSJaCMessage.<span class="reserved">prototype</span>.setSubject = <span class="reserved">function</span>(subject) {
-  <span class="reserved">this</span>._setChildNode(<span class="literal">"subject"</span>,subject);
-  <span class="reserved">return</span> <span class="reserved">this</span>;
-};
-<span class="comment">/**
- * Sets the 'tread' attribute for this message. This is used to identify
- * threads in chat conversations
- * <span class="attrib">@param</span> {String} thread Usually a somewhat random hash.
- * <span class="attrib">@return</span> this message
- * <span class="attrib">@type</span> JSJaCMessage
- */</span>
-JSJaCMessage.<span class="reserved">prototype</span>.setThread = <span class="reserved">function</span>(thread) {
-  <span class="reserved">this</span>._setChildNode(<span class="literal">"thread"</span>, thread);
-  <span class="reserved">return</span> <span class="reserved">this</span>;
-};
-<span class="comment">/**
- * Gets the 'thread' identifier for this message
- * <span class="attrib">@return</span> A thread identifier
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCMessage.<span class="reserved">prototype</span>.getThread = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>.getChildVal(<span class="literal">'thread'</span>);
-};
-<span class="comment">/**
- * Gets the body of this message
- * <span class="attrib">@return</span> The body of this message
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCMessage.<span class="reserved">prototype</span>.getBody = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>.getChildVal(<span class="literal">'body'</span>);
-};
-<span class="comment">/**
- * Gets the subject of this message
- * <span class="attrib">@return</span> The subject of this message
- * <span class="attrib">@type</span> String
- */</span>
-JSJaCMessage.<span class="reserved">prototype</span>.getSubject = <span class="reserved">function</span>() {
-  <span class="reserved">return</span> <span class="reserved">this</span>.getChildVal(<span class="literal">'subject'</span>)
-};
-
-
-<span class="comment">/**
- * Tries to transform a w3c DOM node to JSJaC's internal representation
- * (JSJaCPacket type, one of JSJaCPresence, JSJaCMessage, JSJaCIQ)
- * <span class="attrib">@param</span>: {Node
- * http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247}
- * node The node to be transformed
- * <span class="attrib">@return</span> A JSJaCPacket representing the given node. If node's root
- * elemenent is not one of 'message', 'presence' or 'iq',
- * <code>null</code> is being returned.
- * <span class="attrib">@type</span> JSJaCPacket
- */</span>
-JSJaCPacket.wrapNode = <span class="reserved">function</span>(node) {
-  var aNode;
-  switch (node.nodeName.toLowerCase()) {
-  case <span class="literal">'presence'</span>:
-    aNode = new JSJaCPresence();
-    break;
-  case <span class="literal">'message'</span>:
-    aNode = new JSJaCMessage();
-    break;
-  case <span class="literal">'iq'</span>:
-    aNode = new JSJaCIQ();
-    break;
-  default : <span class="comment">// unknown</span>
-    <span class="reserved">return</span> null;
-  }
-
-  aNode._replaceNode(node);
-
-  <span class="reserved">return</span> aNode;
-};
-
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-crypt.js.html b/doc/overview-summary-crypt.js.html
deleted file mode 100644
index 4472c5f..0000000
--- a/doc/overview-summary-crypt.js.html
+++ /dev/null
@@ -1,1532 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="crypt.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>crypt.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		Collection of MD5 and SHA1 hashing and encoding
- methods.
- <BR/><BR/><B>Version: </B>$Revision: 482 $<BR/><BR/><B>Author:</B> Stefan Strigler steve at zeank.in-berlin.de
- <BR/>
-	
-</p>
-
-<hr>
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-	<a name="method_summary"><!-- --></a>
-	<table border="1" cellpadding="3" cellspacing="0" width="100%">
-		<tr bgcolor="#CCCCFF" class="TableHeadingColor">
-			<td colspan=2>
-				<font size="+2">
-					<b>Method Summary</b>
-				</font>
-			</td>
-		</tr>
-	
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!b64_hmac_md5">b64_hmac_md5</a></b>(key, data)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!b64_hmac_sha1">b64_hmac_sha1</a></b>(key, data)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!b64_md5">b64_md5</a></b>(s)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!b64_sha1">b64_sha1</a></b>(s)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static void</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!b64arrays">b64arrays</a></b>()
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!b64d2t">b64d2t</a></b>(d)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!b64t2d">b64t2d</a></b>(t)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!binb2b64">binb2b64</a></b>(binarray)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!binb2hex">binb2hex</a></b>(binarray)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!binb2str">binb2str</a></b>(bin)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!binl2b64">binl2b64</a></b>(binarray)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!binl2hex">binl2hex</a></b>(binarray)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!binl2str">binl2str</a></b>(bin)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!bit_rol">bit_rol</a></b>(num, cnt)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!cnonce">cnonce</a></b>(size)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!core_hmac_md5">core_hmac_md5</a></b>(key, data)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!core_hmac_sha1">core_hmac_sha1</a></b>(key, data)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!core_md5">core_md5</a></b>(x, len)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!core_sha1">core_sha1</a></b>(x, len)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!hex_hmac_md5">hex_hmac_md5</a></b>(key, data)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!hex_hmac_sha1">hex_hmac_sha1</a></b>(key, data)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!hex_md5">hex_md5</a></b>(s)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!hex_sha1">hex_sha1</a></b>(s)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!md5_cmn">md5_cmn</a></b>(q, a, b, x, s, t)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!md5_ff">md5_ff</a></b>(a, b, c, d, x, s, t)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!md5_gg">md5_gg</a></b>(a, b, c, d, x, s, t)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!md5_hh">md5_hh</a></b>(a, b, c, d, x, s, t)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!md5_ii">md5_ii</a></b>(a, b, c, d, x, s, t)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!md5_vm_test">md5_vm_test</a></b>()
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!rol">rol</a></b>(num, cnt)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!safe_add">safe_add</a></b>(x, y)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!sha1_ft">sha1_ft</a></b>(t, b, c, d)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!sha1_kt">sha1_kt</a></b>(t)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!sha1_vm_test">sha1_vm_test</a></b>()
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!str2binb">str2binb</a></b>(str)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!str2binl">str2binl</a></b>(str)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!str_hmac_md5">str_hmac_md5</a></b>(key, data)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!str_hmac_sha1">str_hmac_sha1</a></b>(key, data)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!str_md5">str_md5</a></b>(s)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!str_sha1">str_sha1</a></b>(s)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!utf8d2t">utf8d2t</a></b>(d)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-		   <tr bgcolor="white" class="TableRowColor">
-		      <td align="right" valign="top" width="1%">
-			 <font size="-1">
-			    <code>static Object</code>
-			 </font>
-		      </td>
-		      <td>
-			 <code>
-			    <b>
-			       <a href="GLOBALS.html#!s!utf8t2d">utf8t2d</a></b>(t)
-			 </code>
-			 <br>
-			           
-			 
-		      </td>
-		   </tr>
-		
-	
-	</table>
-    <p>
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview"><span class="comment">/* Copyright (c) 1998 - 2007, Paul Johnston & Contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following
- * disclaimer. 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.
- *
- * Neither the name of the author nor the names of its contributors
- * may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS 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
- * COPYRIGHT OWNER OR 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.
- *
- */</span>
-
-<span class="comment">/**
- * <span class="attrib">@fileoverview</span> Collection of MD5 and SHA1 hashing and encoding
- * methods.
- * <span class="attrib">@author</span> Stefan Strigler steve<span class="attrib">@zeank</span>.in-berlin.de
- * <span class="attrib">@version</span> $Revision: 482 $
- */</span>
-
-<span class="comment">/*
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
- * in FIPS PUB 180-1
- * Version 2.1a Copyright Paul Johnston 2000 - 2002.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- * Distributed under the BSD License
- * See http://pajhome.org.uk/crypt/md5 for details.
- */</span>
-
-<span class="comment">/*
- * Configurable variables. You may need to tweak these to be compatible with
- * the server-side, but the defaults work in most cases.
- */</span>
-var hexcase = 0;  <span class="comment">/* hex output format. 0 - lowercase; 1 - uppercase        */</span>
-var b64pad  = <span class="literal">"="</span>; <span class="comment">/* base-64 pad character. "=" for strict RFC compliance   */</span>
-var chrsz   = 8;  <span class="comment">/* bits per input character. 8 - ASCII; 16 - Unicode      */</span>
-
-<span class="comment">/*
- * These are the functions you'll usually want to call
- * They take string arguments and return either hex or base-64 encoded strings
- */</span>
-<span class="reserved">function</span> hex_sha1(s){<span class="reserved">return</span> binb2hex(core_sha1(str2binb(s),s.length * chrsz));}
-<span class="reserved">function</span> b64_sha1(s){<span class="reserved">return</span> binb2b64(core_sha1(str2binb(s),s.length * chrsz));}
-<span class="reserved">function</span> str_sha1(s){<span class="reserved">return</span> binb2str(core_sha1(str2binb(s),s.length * chrsz));}
-<span class="reserved">function</span> hex_hmac_sha1(key, data){ <span class="reserved">return</span> binb2hex(core_hmac_sha1(key, data));}
-<span class="reserved">function</span> b64_hmac_sha1(key, data){ <span class="reserved">return</span> binb2b64(core_hmac_sha1(key, data));}
-<span class="reserved">function</span> str_hmac_sha1(key, data){ <span class="reserved">return</span> binb2str(core_hmac_sha1(key, data));}
-
-<span class="comment">/*
- * Perform a simple self-test to see if the VM is working
- */</span>
-<span class="reserved">function</span> sha1_vm_test()
-{
-  <span class="reserved">return</span> hex_sha1(<span class="literal">"abc"</span>) == <span class="literal">"a9993e364706816aba3e25717850c26c9cd0d89d"</span>;
-}
-
-<span class="comment">/*
- * Calculate the SHA-1 of an array of big-endian words, and a bit length
- */</span>
-<span class="reserved">function</span> core_sha1(x, len)
-{
-  <span class="comment">/* append padding */</span>
-  x[len >> 5] |= 0x80 << (24 - len % 32);
-  x[((len + 64 >> 9) << 4) + 15] = len;
-
-  var w = Array(80);
-  var a =  1732584193;
-  var b = -271733879;
-  var c = -1732584194;
-  var d =  271733878;
-  var e = -1009589776;
-
-  <span class="reserved">for</span>(var i = 0; i < x.length; i += 16)
-    {
-      var olda = a;
-      var oldb = b;
-      var oldc = c;
-      var oldd = d;
-      var olde = e;
-
-      <span class="reserved">for</span>(var j = 0; j < 80; j++)
-        {
-          <span class="reserved">if</span>(j < 16) w[j] = x[i + j];
-          <span class="reserved">else</span> w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);
-          var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)),
-                           safe_add(safe_add(e, w[j]), sha1_kt(j)));
-          e = d;
-          d = c;
-          c = rol(b, 30);
-          b = a;
-          a = t;
-        }
-
-      a = safe_add(a, olda);
-      b = safe_add(b, oldb);
-      c = safe_add(c, oldc);
-      d = safe_add(d, oldd);
-      e = safe_add(e, olde);
-    }
-  <span class="reserved">return</span> Array(a, b, c, d, e);
-
-}
-
-<span class="comment">/*
- * Perform the appropriate triplet combination function for the current
- * iteration
- */</span>
-<span class="reserved">function</span> sha1_ft(t, b, c, d)
-{
-  <span class="reserved">if</span>(t < 20) <span class="reserved">return</span> (b & c) | ((~b) & d);
-  <span class="reserved">if</span>(t < 40) <span class="reserved">return</span> b ^ c ^ d;
-  <span class="reserved">if</span>(t < 60) <span class="reserved">return</span> (b & c) | (b & d) | (c & d);
-  <span class="reserved">return</span> b ^ c ^ d;
-}
-
-<span class="comment">/*
- * Determine the appropriate additive constant for the current iteration
- */</span>
-<span class="reserved">function</span> sha1_kt(t)
-{
-  <span class="reserved">return</span> (t < 20) ?  1518500249 : (t < 40) ?  1859775393 :
-    (t < 60) ? -1894007588 : -899497514;
-}
-
-<span class="comment">/*
- * Calculate the HMAC-SHA1 of a key and some data
- */</span>
-<span class="reserved">function</span> core_hmac_sha1(key, data)
-{
-  var bkey = str2binb(key);
-  <span class="reserved">if</span>(bkey.length > 16) bkey = core_sha1(bkey, key.length * chrsz);
-
-  var ipad = Array(16), opad = Array(16);
-  <span class="reserved">for</span>(var i = 0; i < 16; i++)
-    {
-      ipad[i] = bkey[i] ^ 0x36363636;
-      opad[i] = bkey[i] ^ 0x5C5C5C5C;
-    }
-
-  var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz);
-  <span class="reserved">return</span> core_sha1(opad.concat(hash), 512 + 160);
-}
-
-<span class="comment">/*
- * Bitwise rotate a 32-bit number to the left.
- */</span>
-<span class="reserved">function</span> rol(num, cnt)
-{
-  <span class="reserved">return</span> (num << cnt) | (num >>> (32 - cnt));
-}
-
-<span class="comment">/*
- * Convert an 8-bit or 16-bit string to an array of big-endian words
- * In 8-bit function, characters >255 have their hi-byte silently ignored.
- */</span>
-<span class="reserved">function</span> str2binb(str)
-{
-  var bin = Array();
-  var mask = (1 << chrsz) - 1;
-  <span class="reserved">for</span>(var i = 0; i < str.length * chrsz; i += chrsz)
-    bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (32 - chrsz - i%32);
-  <span class="reserved">return</span> bin;
-}
-
-<span class="comment">/*
- * Convert an array of big-endian words to a string
- */</span>
-<span class="reserved">function</span> binb2str(bin)
-{
-  var str = <span class="literal">""</span>;
-  var mask = (1 << chrsz) - 1;
-  <span class="reserved">for</span>(var i = 0; i < bin.length * 32; i += chrsz)
-    str += String.fromCharCode((bin[i>>5] >>> (32 - chrsz - i%32)) & mask);
-  <span class="reserved">return</span> str;
-}
-
-<span class="comment">/*
- * Convert an array of big-endian words to a hex string.
- */</span>
-<span class="reserved">function</span> binb2hex(binarray)
-{
-  var hex_tab = hexcase ? <span class="literal">"0123456789ABCDEF"</span> : <span class="literal">"0123456789abcdef"</span>;
-  var str = <span class="literal">""</span>;
-  <span class="reserved">for</span>(var i = 0; i < binarray.length * 4; i++)
-    {
-      str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) +
-        hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8  )) & 0xF);
-    }
-  <span class="reserved">return</span> str;
-}
-
-<span class="comment">/*
- * Convert an array of big-endian words to a base-64 string
- */</span>
-<span class="reserved">function</span> binb2b64(binarray)
-{
-  var tab = <span class="literal">"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"</span>;
-  var str = <span class="literal">""</span>;
-  <span class="reserved">for</span>(var i = 0; i < binarray.length * 4; i += 3)
-    {
-      var triplet = (((binarray[i   >> 2] >> 8 * (3 -  i   %4)) & 0xFF) << 16)
-        | (((binarray[i+1 >> 2] >> 8 * (3 - (i+1)%4)) & 0xFF) << 8 )
-        |  ((binarray[i+2 >> 2] >> 8 * (3 - (i+2)%4)) & 0xFF);
-      <span class="reserved">for</span>(var j = 0; j < 4; j++)
-        {
-          <span class="reserved">if</span>(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
-          <span class="reserved">else</span> str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
-        }
-    }
-  <span class="reserved">return</span> str.replace(/AAA\=(\=*?)$/,<span class="literal">'$1'</span>); <span class="comment">// cleans garbage chars at end of string</span>
-}
-
-<span class="comment">/*
- * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
- * Digest Algorithm, as defined in RFC 1321.
- * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- * Distributed under the BSD License
- * See http://pajhome.org.uk/crypt/md5 for more info.
- */</span>
-
-<span class="comment">/*
- * Configurable variables. You may need to tweak these to be compatible with
- * the server-side, but the defaults work in most cases.
- */</span>
-<span class="comment">// var hexcase = 0;  /* hex output format. 0 - lowercase; 1 - uppercase        */</span>
-<span class="comment">// var b64pad  = ""; /* base-64 pad character. "=" for strict RFC compliance   */</span>
-<span class="comment">// var chrsz   = 8;  /* bits per input character. 8 - ASCII; 16 - Unicode      */</span>
-
-<span class="comment">/*
- * These are the functions you'll usually want to call
- * They take string arguments and return either hex or base-64 encoded strings
- */</span>
-<span class="reserved">function</span> hex_md5(s){ <span class="reserved">return</span> binl2hex(core_md5(str2binl(s), s.length * chrsz));}
-<span class="reserved">function</span> b64_md5(s){ <span class="reserved">return</span> binl2b64(core_md5(str2binl(s), s.length * chrsz));}
-<span class="reserved">function</span> str_md5(s){ <span class="reserved">return</span> binl2str(core_md5(str2binl(s), s.length * chrsz));}
-<span class="reserved">function</span> hex_hmac_md5(key, data) { <span class="reserved">return</span> binl2hex(core_hmac_md5(key, data)); }
-<span class="reserved">function</span> b64_hmac_md5(key, data) { <span class="reserved">return</span> binl2b64(core_hmac_md5(key, data)); }
-<span class="reserved">function</span> str_hmac_md5(key, data) { <span class="reserved">return</span> binl2str(core_hmac_md5(key, data)); }
-
-<span class="comment">/*
- * Perform a simple self-test to see if the VM is working
- */</span>
-<span class="reserved">function</span> md5_vm_test()
-{
-  <span class="reserved">return</span> hex_md5(<span class="literal">"abc"</span>) == <span class="literal">"900150983cd24fb0d6963f7d28e17f72"</span>;
-}
-
-<span class="comment">/*
- * Calculate the MD5 of an array of little-endian words, and a bit length
- */</span>
-<span class="reserved">function</span> core_md5(x, len)
-{
-  <span class="comment">/* append padding */</span>
-  x[len >> 5] |= 0x80 << ((len) % 32);
-  x[(((len + 64) >>> 9) << 4) + 14] = len;
-
-  var a =  1732584193;
-  var b = -271733879;
-  var c = -1732584194;
-  var d =  271733878;
-
-  <span class="reserved">for</span>(var i = 0; i < x.length; i += 16)
-  {
-    var olda = a;
-    var oldb = b;
-    var oldc = c;
-    var oldd = d;
-
-    a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
-    d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
-    c = md5_ff(c, d, a, b, x[i+ 2], 17,  606105819);
-    b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
-    a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
-    d = md5_ff(d, a, b, c, x[i+ 5], 12,  1200080426);
-    c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
-    b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
-    a = md5_ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);
-    d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
-    c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
-    b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
-    a = md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);
-    d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
-    c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
-    b = md5_ff(b, c, d, a, x[i+15], 22,  1236535329);
-
-    a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
-    d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
-    c = md5_gg(c, d, a, b, x[i+11], 14,  643717713);
-    b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
-    a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
-    d = md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);
-    c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
-    b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
-    a = md5_gg(a, b, c, d, x[i+ 9], 5 ,  568446438);
-    d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
-    c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
-    b = md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);
-    a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
-    d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
-    c = md5_gg(c, d, a, b, x[i+ 7], 14,  1735328473);
-    b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
-
-    a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
-    d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
-    c = md5_hh(c, d, a, b, x[i+11], 16,  1839030562);
-    b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
-    a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
-    d = md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);
-    c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
-    b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
-    a = md5_hh(a, b, c, d, x[i+13], 4 ,  681279174);
-    d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
-    c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
-    b = md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);
-    a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
-    d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
-    c = md5_hh(c, d, a, b, x[i+15], 16,  530742520);
-    b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
-
-    a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
-    d = md5_ii(d, a, b, c, x[i+ 7], 10,  1126891415);
-    c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
-    b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
-    a = md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);
-    d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
-    c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
-    b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
-    a = md5_ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);
-    d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
-    c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
-    b = md5_ii(b, c, d, a, x[i+13], 21,  1309151649);
-    a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
-    d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
-    c = md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);
-    b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
-
-    a = safe_add(a, olda);
-    b = safe_add(b, oldb);
-    c = safe_add(c, oldc);
-    d = safe_add(d, oldd);
-  }
-  <span class="reserved">return</span> Array(a, b, c, d);
-
-}
-
-<span class="comment">/*
- * These functions implement the four basic operations the algorithm uses.
- */</span>
-<span class="reserved">function</span> md5_cmn(q, a, b, x, s, t)
-{
-  <span class="reserved">return</span> safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
-}
-<span class="reserved">function</span> md5_ff(a, b, c, d, x, s, t)
-{
-  <span class="reserved">return</span> md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
-}
-<span class="reserved">function</span> md5_gg(a, b, c, d, x, s, t)
-{
-  <span class="reserved">return</span> md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
-}
-<span class="reserved">function</span> md5_hh(a, b, c, d, x, s, t)
-{
-  <span class="reserved">return</span> md5_cmn(b ^ c ^ d, a, b, x, s, t);
-}
-<span class="reserved">function</span> md5_ii(a, b, c, d, x, s, t)
-{
-  <span class="reserved">return</span> md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
-}
-
-<span class="comment">/*
- * Calculate the HMAC-MD5, of a key and some data
- */</span>
-<span class="reserved">function</span> core_hmac_md5(key, data)
-{
-  var bkey = str2binl(key);
-  <span class="reserved">if</span>(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
-
-  var ipad = Array(16), opad = Array(16);
-  <span class="reserved">for</span>(var i = 0; i < 16; i++)
-  {
-    ipad[i] = bkey[i] ^ 0x36363636;
-    opad[i] = bkey[i] ^ 0x5C5C5C5C;
-  }
-
-  var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
-  <span class="reserved">return</span> core_md5(opad.concat(hash), 512 + 128);
-}
-
-<span class="comment">/*
- * Add integers, wrapping at 2^32. This uses 16-bit operations internally
- * to work around bugs in some JS interpreters.
- */</span>
-<span class="reserved">function</span> safe_add(x, y)
-{
-  var lsw = (x & 0xFFFF) + (y & 0xFFFF);
-  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
-  <span class="reserved">return</span> (msw << 16) | (lsw & 0xFFFF);
-}
-
-<span class="comment">/*
- * Bitwise rotate a 32-bit number to the left.
- */</span>
-<span class="reserved">function</span> bit_rol(num, cnt)
-{
-  <span class="reserved">return</span> (num << cnt) | (num >>> (32 - cnt));
-}
-
-<span class="comment">/*
- * Convert a string to an array of little-endian words
- * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
- */</span>
-<span class="reserved">function</span> str2binl(str)
-{
-  var bin = Array();
-  var mask = (1 << chrsz) - 1;
-  <span class="reserved">for</span>(var i = 0; i < str.length * chrsz; i += chrsz)
-    bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
-  <span class="reserved">return</span> bin;
-}
-
-<span class="comment">/*
- * Convert an array of little-endian words to a string
- */</span>
-<span class="reserved">function</span> binl2str(bin)
-{
-  var str = <span class="literal">""</span>;
-  var mask = (1 << chrsz) - 1;
-  <span class="reserved">for</span>(var i = 0; i < bin.length * 32; i += chrsz)
-    str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
-  <span class="reserved">return</span> str;
-}
-
-<span class="comment">/*
- * Convert an array of little-endian words to a hex string.
- */</span>
-<span class="reserved">function</span> binl2hex(binarray)
-{
-  var hex_tab = hexcase ? <span class="literal">"0123456789ABCDEF"</span> : <span class="literal">"0123456789abcdef"</span>;
-  var str = <span class="literal">""</span>;
-  <span class="reserved">for</span>(var i = 0; i < binarray.length * 4; i++)
-  {
-    str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
-           hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) & 0xF);
-  }
-  <span class="reserved">return</span> str;
-}
-
-<span class="comment">/*
- * Convert an array of little-endian words to a base-64 string
- */</span>
-<span class="reserved">function</span> binl2b64(binarray)
-{
-  var tab = <span class="literal">"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"</span>;
-  var str = <span class="literal">""</span>;
-  <span class="reserved">for</span>(var i = 0; i < binarray.length * 4; i += 3)
-  {
-    var triplet = (((binarray[i   >> 2] >> 8 * ( i   %4)) & 0xFF) << 16)
-                | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
-                |  ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
-    <span class="reserved">for</span>(var j = 0; j < 4; j++)
-    {
-      <span class="reserved">if</span>(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
-      <span class="reserved">else</span> str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
-    }
-  }
-  <span class="reserved">return</span> str;
-}
-
-<span class="comment">/* #############################################################################
-   UTF-8 Decoder and Encoder
-   base64 Encoder and Decoder
-   written by Tobias Kieslich, justdreams
-   Contact: tobias<span class="attrib">@justdreams</span>.de				http://www.justdreams.de/
-   ############################################################################# */</span>
-
-<span class="comment">// returns an array of byterepresenting dezimal numbers which represent the</span>
-<span class="comment">// plaintext in an UTF-8 encoded version. Expects a string.</span>
-<span class="comment">// This function includes an exception management for those nasty browsers like</span>
-<span class="comment">// NN401, which returns negative decimal numbers for chars>128. I hate it!!</span>
-<span class="comment">// This handling is unfortunately limited to the user's charset. Anyway, it works</span>
-<span class="comment">// in most of the cases! Special signs with an unicode>256 return numbers, which</span>
-<span class="comment">// can not be converted to the actual unicode and so not to the valid utf-8</span>
-<span class="comment">// representation. Anyway, this function does always return values which can not</span>
-<span class="comment">// misinterpretd by RC4 or base64 en- or decoding, because every value is >0 and</span>
-<span class="comment">// <255!!</span>
-<span class="comment">// Arrays are faster and easier to handle in b64 encoding or encrypting....</span>
-<span class="reserved">function</span> utf8t2d(t)
-{
-  t = t.replace(/\r\n/g,<span class="literal">"\n"</span>);
-  var d=new Array; var test=String.fromCharCode(237);
-  <span class="reserved">if</span> (test.charCodeAt(0) < 0)
-    <span class="reserved">for</span>(var n=0; n<t.length; n++)
-      {
-        var c=t.charCodeAt(n);
-        <span class="reserved">if</span> (c>0)
-          d[d.length]= c;
-        <span class="reserved">else</span> {
-          d[d.length]= (((256+c)>>6)|192);
-          d[d.length]= (((256+c)&63)|128);}
-      }
-  <span class="reserved">else</span>
-    <span class="reserved">for</span>(var n=0; n<t.length; n++)
-      {
-        var c=t.charCodeAt(n);
-        <span class="comment">// all the signs of asci => 1byte</span>
-        <span class="reserved">if</span> (c<128)
-          d[d.length]= c;
-        <span class="comment">// all the signs between 127 and 2047 => 2byte</span>
-        <span class="reserved">else</span> <span class="reserved">if</span>((c>127) && (c<2048)) {
-          d[d.length]= ((c>>6)|192);
-          d[d.length]= ((c&63)|128);}
-        <span class="comment">// all the signs between 2048 and 66536 => 3byte</span>
-        <span class="reserved">else</span> {
-          d[d.length]= ((c>>12)|224);
-          d[d.length]= (((c>>6)&63)|128);
-          d[d.length]= ((c&63)|128);}
-      }
-  <span class="reserved">return</span> d;
-}
-	
-<span class="comment">// returns plaintext from an array of bytesrepresenting dezimal numbers, which</span>
-<span class="comment">// represent an UTF-8 encoded text; browser which does not understand unicode</span>
-<span class="comment">// like NN401 will show "?"-signs instead</span>
-<span class="comment">// expects an array of byterepresenting decimals; returns a string</span>
-<span class="reserved">function</span> utf8d2t(d)
-{
-  var r=new Array; var i=0;
-  <span class="reserved">while</span>(i<d.length)
-    {
-      <span class="reserved">if</span> (d[i]<128) {
-        r[r.length]= String.fromCharCode(d[i]); i++;}
-      <span class="reserved">else</span> <span class="reserved">if</span>((d[i]>191) && (d[i]<224)) {
-        r[r.length]= String.fromCharCode(((d[i]&31)<<6) | (d[i+1]&63)); i+=2;}
-      <span class="reserved">else</span> {
-        r[r.length]= String.fromCharCode(((d[i]&15)<<12) | ((d[i+1]&63)<<6) | (d[i+2]&63)); i+=3;}
-    }
-  <span class="reserved">return</span> r.join(<span class="literal">""</span>);
-}
-
-<span class="comment">// included in <body onload="b64arrays"> it creates two arrays which makes base64</span>
-<span class="comment">// en- and decoding faster</span>
-<span class="comment">// this speed is noticeable especially when coding larger texts (>5k or so)</span>
-<span class="reserved">function</span> b64arrays() {
-  var b64s=<span class="literal">'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'</span>;
-  b64 = new Array();f64 =new Array();
-  <span class="reserved">for</span> (var i=0; i<b64s.length ;i++) {
-    b64[i] = b64s.charAt(i);
-    f64[b64s.charAt(i)] = i;
-  }
-}
-
-<span class="comment">// creates a base64 encoded text out of an array of byerepresenting dezimals</span>
-<span class="comment">// it is really base64 :) this makes serversided handling easier</span>
-<span class="comment">// expects an array; returns a string</span>
-<span class="reserved">function</span> b64d2t(d) {
-  var r=new Array; var i=0; var dl=d.length;
-  <span class="comment">// this is for the padding</span>
-  <span class="reserved">if</span> ((dl%3) == 1) {
-    d[d.length] = 0; d[d.length] = 0;}
-  <span class="reserved">if</span> ((dl%3) == 2)
-    d[d.length] = 0;
-  <span class="comment">// from here conversion</span>
-  <span class="reserved">while</span> (i<d.length)
-    {
-      r[r.length] = b64[d[i]>>2];
-      r[r.length] = b64[((d[i]&3)<<4) | (d[i+1]>>4)];
-      r[r.length] = b64[((d[i+1]&15)<<2) | (d[i+2]>>6)];
-      r[r.length] = b64[d[i+2]&63];
-      i+=3;
-    }
-  <span class="comment">// this is again for the padding</span>
-  <span class="reserved">if</span> ((dl%3) == 1)
-    r[r.length-1] = r[r.length-2] = <span class="literal">"="</span>;
-  <span class="reserved">if</span> ((dl%3) == 2)
-    r[r.length-1] = <span class="literal">"="</span>;
-  <span class="comment">// we join the array to return a textstring</span>
-  var t=r.join(<span class="literal">""</span>);
-  <span class="reserved">return</span> t;
-}
-
-<span class="comment">// returns array of byterepresenting numbers created of an base64 encoded text</span>
-<span class="comment">// it is still the slowest function in this modul; I hope I can make it faster</span>
-<span class="comment">// expects string; returns an array</span>
-<span class="reserved">function</span> b64t2d(t) {
-  var d=new Array; var i=0;
-  <span class="comment">// here we fix this CRLF sequenz created by MS-OS; arrrgh!!!</span>
-  t=t.replace(/\n|\r/g,<span class="literal">""</span>); t=t.replace(/=/g,<span class="literal">""</span>);
-  <span class="reserved">while</span> (i<t.length)
-    {
-      d[d.length] = (f64[t.charAt(i)]<<2) | (f64[t.charAt(i+1)]>>4);
-      d[d.length] = (((f64[t.charAt(i+1)]&15)<<4) | (f64[t.charAt(i+2)]>>2));
-      d[d.length] = (((f64[t.charAt(i+2)]&3)<<6) | (f64[t.charAt(i+3)]));
-      i+=4;
-    }
-  <span class="reserved">if</span> (t.length%4 == 2)
-    d = d.slice(0, d.length-2);
-  <span class="reserved">if</span> (t.length%4 == 3)
-    d = d.slice(0, d.length-1);
-  <span class="reserved">return</span> d;
-}
-
-<span class="reserved">if</span> (typeof(atob) == <span class="literal">'undefined'</span> || typeof(btoa) == <span class="literal">'undefined'</span>)
-  b64arrays();
-
-<span class="reserved">if</span> (typeof(atob) == <span class="literal">'undefined'</span>) {
-  atob = <span class="reserved">function</span>(s) {
-    <span class="reserved">return</span> utf8d2t(b64t2d(s));
-  }
-}
-
-<span class="reserved">if</span> (typeof(btoa) == <span class="literal">'undefined'</span>) {
-  btoa = <span class="reserved">function</span>(s) {
-    <span class="reserved">return</span> b64d2t(utf8t2d(s));
-  }
-}
-
-<span class="reserved">function</span> cnonce(size) {
-  var tab = <span class="literal">"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"</span>;
-  var cnonce = <span class="literal">''</span>;
-  <span class="reserved">for</span> (var i=0; i<size; i++) {
-    cnonce += tab.charAt(Math.round(Math.random(new Date().getTime())*(tab.length-1)));
-  }
-  <span class="reserved">return</span> cnonce;
-}
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-header.js.html b/doc/overview-summary-header.js.html
deleted file mode 100644
index 57540c1..0000000
--- a/doc/overview-summary-header.js.html
+++ /dev/null
@@ -1,164 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="header.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>header.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		No overview generated for 'header.js'<BR/><BR/>
-	
-</p>
-
-<hr>
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview"><span class="comment">/* JSJaC - The JavaScript Jabber Client Library
- * Copyright (C) 2004-2008 Stefan Strigler
- *
- * JSJaC is licensed under the terms of the Mozilla Public License
- * version 1.1 or, at your option, under the terms of the GNU General
- * Public License version 2 or subsequent, or the terms of the GNU Lesser
- * General Public License version 2.1 or subsequent. 
- *
- * Please visit http://zeank.in-berlin.de/jsjac/ for details about JSJaC.
- */</span>
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-jsextras.js.html b/doc/overview-summary-jsextras.js.html
deleted file mode 100644
index b0476f9..0000000
--- a/doc/overview-summary-jsextras.js.html
+++ /dev/null
@@ -1,245 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="jsextras.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>jsextras.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		Collection of functions to make live easier
- <BR/><BR/><B>Version: </B>$Revision: 437 $<BR/><BR/><B>Author:</B> Stefan Strigler
- <BR/>
-	
-</p>
-
-<hr>
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview"><span class="comment">/**
- * <span class="attrib">@fileoverview</span> Collection of functions to make live easier
- * <span class="attrib">@author</span> Stefan Strigler
- * <span class="attrib">@version</span> $Revision: 437 $
- */</span>
-
-<span class="comment">/**
- * Convert special chars to HTML entities
- * <span class="attrib">@addon</span>
- * <span class="attrib">@return</span> The string with chars encoded for HTML
- * <span class="attrib">@type</span> String
- */</span>
-String.<span class="reserved">prototype</span>.htmlEnc = <span class="reserved">function</span>() {
-  var str = <span class="reserved">this</span>.replace(/&/g,<span class="literal">"&amp;"</span>);
-  str = str.replace(/</g,<span class="literal">"&lt;"</span>);
-  str = str.replace(/>/g,<span class="literal">"&gt;"</span>);
-  str = str.replace(/\<span class="literal">"/g,"</span>&quot;<span class="literal">");
-  str = str.replace(/\n/g,"</span><br /><span class="literal">");
-  return str;
-};
-
-/**
- * Converts from jabber timestamps to JavaScript Date objects
- * @addon
- * @param {String} ts A string representing a jabber datetime timestamp as
- * defined by {@link http://www.xmpp.org/extensions/xep-0082.html XEP-0082}
- * @return A javascript Date object corresponding to the jabber DateTime given
- * @type Date
- */
-Date.jab2date = function(ts) {
-  var date = new Date(Date.UTC(ts.substr(0,4),ts.substr(5,2)-1,ts.substr(8,2),ts.substr(11,2),ts.substr(14,2),ts.substr(17,2)));
-  if (ts.substr(ts.length-6,1) != 'Z') { // there's an offset
-    var offset = new Date();
-    offset.setTime(0);
-    offset.setUTCHours(ts.substr(ts.length-5,2));
-    offset.setUTCMinutes(ts.substr(ts.length-2,2));
-    if (ts.substr(ts.length-6,1) == '+')
-      date.setTime(date.getTime() - offset.getTime());
-    else if (ts.substr(ts.length-6,1) == '-')
-      date.setTime(date.getTime() + offset.getTime());
-  }
-  return date;
-};
-
-/**
- * Takes a timestamp in the form of 2004-08-13T12:07:04+02:00 as argument
- * and converts it to some sort of humane readable format
- * @addon
- */
-Date.hrTime = function(ts) {
-  return Date.jab2date(ts).toLocaleString();
-};
-
-/**
- * somewhat opposit to {@link #hrTime}
- * expects a javascript Date object as parameter and returns a jabber
- * date string conforming to
- * {@link http://www.xmpp.org/extensions/xep-0082.html XEP-0082}
- * @see #hrTime
- * @return The corresponding jabber DateTime string
- * @type String
- */
-Date.prototype.jabberDate = function() {
-  var padZero = function(i) {
-    if (i < 10) return "</span>0<span class="literal">" + i;
-    return i;
-  };
-
-  var jDate = this.getUTCFullYear() + "</span>-<span class="literal">";
-  jDate += padZero(this.getUTCMonth()+1) + "</span>-<span class="literal">";
-  jDate += padZero(this.getUTCDate()) + "</span>T<span class="literal">";
-  jDate += padZero(this.getUTCHours()) + "</span>:<span class="literal">";
-  jDate += padZero(this.getUTCMinutes()) + "</span>:<span class="literal">";
-  jDate += padZero(this.getUTCSeconds()) + "</span>Z";
-
-  <span class="reserved">return</span> jDate;
-};
-
-<span class="comment">/**
- * Determines the maximum of two given numbers
- * <span class="attrib">@addon</span>
- * <span class="attrib">@param</span> {Number} A a number
- * <span class="attrib">@param</span> {Number} B another number
- * <span class="attrib">@return</span> the maximum of A and B
- * <span class="attrib">@type</span> Number
- */</span>
-Number.max = <span class="reserved">function</span>(A, B) {
-  <span class="reserved">return</span> (A > B)? A : B;
-};
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary-xmlextras.js.html b/doc/overview-summary-xmlextras.js.html
deleted file mode 100644
index 40125dd..0000000
--- a/doc/overview-summary-xmlextras.js.html
+++ /dev/null
@@ -1,391 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="xmlextras.js Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>xmlextras.js</h2>
-	
-</center>
-
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-		Wrapper to make working with XmlHttpRequest and the
- DOM more convenient (cross browser compliance).
- this code is taken from
- http://webfx.eae.net/dhtml/xmlextras/xmlextras.html
- <BR/><BR/><B>Version: </B>$Revision: 437 $<BR/><BR/><B>Author:</B> Stefan Strigler steve at zeank.in-berlin.de
- <BR/>
-	
-</p>
-
-<hr>
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-        <pre class="sourceview">
-<span class="comment">/* Copyright 2006 Erik Arvidsson
- *
- * Licensed 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.
- */</span>
-
-<span class="comment">/**
- * <span class="attrib">@fileoverview</span> Wrapper to make working with XmlHttpRequest and the
- * DOM more convenient (cross browser compliance).
- * this code is taken from
- * http://webfx.eae.net/dhtml/xmlextras/xmlextras.html
- * <span class="attrib">@author</span> Stefan Strigler steve<span class="attrib">@zeank</span>.in-berlin.de
- * <span class="attrib">@version</span> $Revision: 437 $
- */</span>
-
-<span class="comment">/**
- * XmlHttp factory
- * <span class="attrib">@private</span>
- */</span>
-<span class="reserved">function</span> XmlHttp() {}
-
-<span class="comment">/**
- * creates a cross browser compliant XmlHttpRequest object
- */</span>
-XmlHttp.create = <span class="reserved">function</span> () {
-  try {
-    <span class="reserved">if</span> (window.XMLHttpRequest) {
-      var req = new XMLHttpRequest();
-     
-      <span class="comment">// some versions of Moz do not support the readyState property</span>
-      <span class="comment">// and the onreadystate event so we patch it!</span>
-      <span class="reserved">if</span> (req.readyState == null) {
-	req.readyState = 1;
-	req.addEventListener(<span class="literal">"load"</span>, <span class="reserved">function</span> () {
-			       req.readyState = 4;
-			       <span class="reserved">if</span> (typeof req.onreadystatechange == <span class="literal">"function"</span>)
-				 req.onreadystatechange();
-			     }, false);
-      }
-     
-      <span class="reserved">return</span> req;
-    }
-    <span class="reserved">if</span> (window.ActiveXObject) {
-      <span class="reserved">return</span> new ActiveXObject(XmlHttp.getPrefix() + <span class="literal">".XmlHttp"</span>);
-    }
-  }
-  catch (ex) {}
-  <span class="comment">// fell through</span>
-  throw new Error(<span class="literal">"Your browser does not support XmlHttp objects"</span>);
-};
-
-<span class="comment">/**
- * used to find the Automation server name
- * <span class="attrib">@private</span>
- */</span>
-XmlHttp.getPrefix = <span class="reserved">function</span>() {
-  <span class="reserved">if</span> (XmlHttp.prefix) <span class="comment">// I know what you did last summer</span>
-    <span class="reserved">return</span> XmlHttp.prefix;
- 
-  var prefixes = [<span class="literal">"MSXML2"</span>, <span class="literal">"Microsoft"</span>, <span class="literal">"MSXML"</span>, <span class="literal">"MSXML3"</span>];
-  var o;
-  <span class="reserved">for</span> (var i = 0; i < prefixes.length; i++) {
-    try {
-      <span class="comment">// try to create the objects</span>
-      o = new ActiveXObject(prefixes[i] + <span class="literal">".XmlHttp"</span>);
-      <span class="reserved">return</span> XmlHttp.prefix = prefixes[i];
-    }
-    catch (ex) {};
-  }
- 
-  throw new Error(<span class="literal">"Could not find an installed XML parser"</span>);
-};
-
-
-<span class="comment">/**
- * XmlDocument factory
- * <span class="attrib">@private</span>
- */</span>
-<span class="reserved">function</span> XmlDocument() {}
-
-XmlDocument.create = <span class="reserved">function</span> (name,ns) {
-  name = name || <span class="literal">'foo'</span>;
-  ns = ns || <span class="literal">''</span>;
-  try {
-    var doc;
-    <span class="comment">// DOM2</span>
-    <span class="reserved">if</span> (document.implementation && document.implementation.createDocument) {
-      doc = document.implementation.createDocument(ns, name, null);
-      <span class="comment">// some versions of Moz do not support the readyState property</span>
-      <span class="comment">// and the onreadystate event so we patch it!</span>
-      <span class="reserved">if</span> (doc.readyState == null) {
-	doc.readyState = 1;
-	doc.addEventListener(<span class="literal">"load"</span>, <span class="reserved">function</span> () {
-			       doc.readyState = 4;
-			       <span class="reserved">if</span> (typeof doc.onreadystatechange == <span class="literal">"function"</span>)
-				 doc.onreadystatechange();
-			     }, false);
-      }
-    } <span class="reserved">else</span> <span class="reserved">if</span> (window.ActiveXObject) {
-      doc = new ActiveXObject(XmlDocument.getPrefix() + <span class="literal">".DomDocument"</span>);
-    }
-   
-    <span class="reserved">if</span> (!doc.documentElement || doc.documentElement.tagName != name ||
-        (doc.documentElement.namespaceURI &&
-         doc.documentElement.namespaceURI != ns)) {
-          try {
-            <span class="reserved">if</span> (ns != <span class="literal">''</span>)
-              doc.appendChild(doc.createElement(name)).
-                setAttribute(<span class="literal">'xmlns'</span>,ns);
-            <span class="reserved">else</span>
-              doc.appendChild(doc.createElement(name));
-          } catch (dex) {
-            doc = document.implementation.createDocument(ns,name,null);
-           
-            <span class="reserved">if</span> (doc.documentElement == null)
-              doc.appendChild(doc.createElement(name));
-
-             <span class="comment">// fix buggy opera 8.5x</span>
-            <span class="reserved">if</span> (ns != <span class="literal">''</span> &&
-                doc.documentElement.getAttribute(<span class="literal">'xmlns'</span>) != ns) {
-              doc.documentElement.setAttribute(<span class="literal">'xmlns'</span>,ns);
-            }
-          }
-        }
-   
-    <span class="reserved">return</span> doc;
-  }
-  catch (ex) { alert(ex.name+<span class="literal">": "</span>+ex.message); }
-  throw new Error(<span class="literal">"Your browser does not support XmlDocument objects"</span>);
-};
-
-<span class="comment">/**
- * used to find the Automation server name
- * <span class="attrib">@private</span>
- */</span>
-XmlDocument.getPrefix = <span class="reserved">function</span>() {
-  <span class="reserved">if</span> (XmlDocument.prefix)
-    <span class="reserved">return</span> XmlDocument.prefix;
-
-  var prefixes = [<span class="literal">"MSXML2"</span>, <span class="literal">"Microsoft"</span>, <span class="literal">"MSXML"</span>, <span class="literal">"MSXML3"</span>];
-  var o;
-  <span class="reserved">for</span> (var i = 0; i < prefixes.length; i++) {
-    try {
-      <span class="comment">// try to create the objects</span>
-      o = new ActiveXObject(prefixes[i] + <span class="literal">".DomDocument"</span>);
-      <span class="reserved">return</span> XmlDocument.prefix = prefixes[i];
-    }
-    catch (ex) {};
-  }
- 
-  throw new Error(<span class="literal">"Could not find an installed XML parser"</span>);
-};
-
-
-<span class="comment">// Create the loadXML method</span>
-<span class="reserved">if</span> (typeof(Document) != <span class="literal">'undefined'</span> && window.DOMParser) {
-
-  <span class="comment">/**
-   * XMLDocument did not extend the Document interface in some
-   * versions of Mozilla.
-   * <span class="attrib">@private</span>
-   */</span>
-  Document.<span class="reserved">prototype</span>.loadXML = <span class="reserved">function</span> (s) {
-	
-    <span class="comment">// parse the string to a new doc</span>
-    var doc2 = (new DOMParser()).parseFromString(s, <span class="literal">"text/xml"</span>);
-	
-    <span class="comment">// remove all initial children</span>
-    <span class="reserved">while</span> (<span class="reserved">this</span>.hasChildNodes())
-      <span class="reserved">this</span>.removeChild(<span class="reserved">this</span>.lastChild);
-		
-    <span class="comment">// insert and import nodes</span>
-    <span class="reserved">for</span> (var i = 0; i < doc2.childNodes.length; i++) {
-      <span class="reserved">this</span>.appendChild(<span class="reserved">this</span>.importNode(doc2.childNodes[i], true));
-    }
-  };
- }
-
-<span class="comment">// Create xml getter for Mozilla</span>
-<span class="reserved">if</span> (window.XMLSerializer &&
-    window.Node && Node.<span class="reserved">prototype</span> && Node.<span class="reserved">prototype</span>.__defineGetter__) {
-
-  <span class="comment">/**
-   * xml getter
-   *
-   * This serializes the DOM tree to an XML String
-   *
-   * Usage: var sXml = oNode.xml
-   * <span class="attrib">@deprecated</span>
-   * <span class="attrib">@private</span>
-   */</span>
-  <span class="comment">// XMLDocument did not extend the Document interface in some versions</span>
-  <span class="comment">// of Mozilla. Extend both!</span>
-  XMLDocument.<span class="reserved">prototype</span>.__defineGetter__(<span class="literal">"xml"</span>, <span class="reserved">function</span> () {
-                                           <span class="reserved">return</span> (new XMLSerializer()).serializeToString(<span class="reserved">this</span>);
-                                         });
-  <span class="comment">/**
-   * xml getter
-   *
-   * This serializes the DOM tree to an XML String
-   *
-   * Usage: var sXml = oNode.xml
-   * <span class="attrib">@deprecated</span>
-   * <span class="attrib">@private</span>
-   */</span>
-  Document.<span class="reserved">prototype</span>.__defineGetter__(<span class="literal">"xml"</span>, <span class="reserved">function</span> () {
-                                        <span class="reserved">return</span> (new XMLSerializer()).serializeToString(<span class="reserved">this</span>);
-                                      });
-
-  <span class="comment">/**
-   * xml getter
-   *
-   * This serializes the DOM tree to an XML String
-   *
-   * Usage: var sXml = oNode.xml
-   * <span class="attrib">@deprecated</span>
-   * <span class="attrib">@private</span>
-   */</span>
-  Node.<span class="reserved">prototype</span>.__defineGetter__(<span class="literal">"xml"</span>, <span class="reserved">function</span> () {
-                                    <span class="reserved">return</span> (new XMLSerializer()).serializeToString(<span class="reserved">this</span>);
-                                  });
- }
-</pre>
-	<hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>File</b></font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-summary.html b/doc/overview-summary.html
deleted file mode 100644
index 26b63e0..0000000
--- a/doc/overview-summary.html
+++ /dev/null
@@ -1,267 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
-JSJaC Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-	
-		parent.document.title="JSJaC Overview";
-	
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	 <font class="NavBarFont1Rev"><b>Overview</b></font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1"> <font class="NavBarFont1">File</font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-	
-	   <h2>JSJaC</h2>
-	
-</center>
-
-	
-		<p>
-			This document is the API Specification for 
-			JSJaC.
-		</p>
-	
-
-
-<h4>Summary</h4>
-<p>
-	
-    	No summary generated for these documents.
-	
-</p>
-
-<hr>
-
-
-    <table border="1" cellpadding="3" cellspacing="0" width="100%">
-    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
-    <td colspan=2><font size="+2">
-    
-        <b>File Summary</b>
-    
-    </font></td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-crypt.js.html">crypt.js</a></b></td>
-    <td>Collection of MD5 and SHA1 hashing and encoding
- methods.</td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-header.js.html">header.js</a></b></td>
-    <td> </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-jsextras.js.html">jsextras.js</a></b></td>
-    <td>Collection of functions to make live easier
- </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-JSJaC.js.html">JSJaC.js</a></b></td>
-    <td>Magic dependency loading.</td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-JSJaCBuilder.js.html">JSJaCBuilder.js</a></b></td>
-    <td> </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-JSJaCConfig.js.html">JSJaCConfig.js</a></b></td>
-    <td> </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-JSJaCConnection.js.html">JSJaCConnection.js</a></b></td>
-    <td>Contains all things in common for all subtypes of connections
- supported.</td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-JSJaCConsoleLogger.js.html">JSJaCConsoleLogger.js</a></b></td>
-    <td>Contains Debugger interface for Firebug and Safari
- </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-JSJaCConstants.js.html">JSJaCConstants.js</a></b></td>
-    <td> </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-JSJaCCookie.js.html">JSJaCCookie.js</a></b></td>
-    <td>OO interface to handle cookies.</td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-JSJaCError.js.html">JSJaCError.js</a></b></td>
-    <td> </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-JSJaCHttpBindingConnection.js.html">JSJaCHttpBindingConnection.js</a></b></td>
-    <td>All stuff related to HTTP Binding
- </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-JSJaCHttpPollingConnection.js.html">JSJaCHttpPollingConnection.js</a></b></td>
-    <td>All stuff related to HTTP Polling
- </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-JSJaCJID.js.html">JSJaCJID.js</a></b></td>
-    <td>This file contains all things that make life easier when
- dealing with JIDs
- </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-JSJaCJSON.js.html">JSJaCJSON.js</a></b></td>
-    <td> </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-JSJaCKeys.js.html">JSJaCKeys.js</a></b></td>
-    <td> </td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-JSJaCPacket.js.html">JSJaCPacket.js</a></b></td>
-    <td>Contains all Jabber/XMPP packet related classes.</td>
-    </tr>
-    
-    <tr bgcolor="white" class="TableRowColor">
-    <td width="15%"><b><a href="overview-summary-xmlextras.js.html">xmlextras.js</a></b></td>
-    <td>Wrapper to make working with XmlHttpRequest and the
- DOM more convenient (cross browser compliance).</td>
-    </tr>
-    
-    </table>
-    <hr/> 
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
-  <tr align="center" valign="top">
-  
-  
-  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">  <font class="NavBarFont1Rev"><b>Overview</b></font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1"> <font class="NavBarFont1">File</font> </td>
-  
-
-  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
-  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
-  </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b>JSJaC</b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- PREV 
- NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-  <a href="index.html" target="_top"><b>FRAMES</b></a>   
- <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-  
-<script>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</body>
-</html>
diff --git a/doc/overview-tree.html b/doc/overview-tree.html
deleted file mode 100644
index 6d3a361..0000000
--- a/doc/overview-tree.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
-JSJaC Class Hierarchy
-</TITLE>
-<LINK REL="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-<SCRIPT>
-function asd()
-{
-parent.document.title="JSJaC Class Hierarchy";
-}
-</SCRIPT>
-</HEAD>
-<BODY BGCOLOR="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"><A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><b>Overview</b></A></FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1Rev">   <FONT CLASS="NavBarFont1Rev"><b>Tree</b></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><b>Index</b></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><b>Help</b></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD BGCOLOR="#FFFFFF" ALIGN="right" VALIGN="top"><EM>
-<B>JSJaC</B></EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV 
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="overview-summary.html" TARGET="_top"><B>NO FRAMES</B></A>
-  
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<H2>Class Hierarchy</H2>
-
-<UL><LI TYPE="circle">Object</LI><UL>
-                <LI TYPE="circle"><B><a href='Date.html'>Date</a></B></LI> 
-                <LI TYPE="circle"><B><a href='Document.html'>Document</a></B></LI> 
-                <LI TYPE="circle"><B><a href='JSJaCConnection.html'>JSJaCConnection</a></B></LI> <UL>
-                <LI TYPE="circle"><B><a href='JSJaCHttpBindingConnection.html'>JSJaCHttpBindingConnection</a></B></LI> 
-                <LI TYPE="circle"><B><a href='JSJaCHttpPollingConnection.html'>JSJaCHttpPollingConnection</a></B></LI> </UL>
-                <LI TYPE="circle"><B><a href='JSJaCConsoleLogger.html'>JSJaCConsoleLogger</a></B></LI> 
-                <LI TYPE="circle"><B><a href='JSJaCCookie.html'>JSJaCCookie</a></B></LI> 
-                <LI TYPE="circle"><B><a href='JSJaCCookieException.html'>JSJaCCookieException</a></B></LI> 
-                <LI TYPE="circle"><B><a href='JSJaCJID.html'>JSJaCJID</a></B></LI> 
-                <LI TYPE="circle"><B><a href='JSJaCJIDInvalidException.html'>JSJaCJIDInvalidException</a></B></LI> 
-                <LI TYPE="circle"><B><a href='JSJaCJSON.html'>JSJaCJSON</a></B></LI> 
-                <LI TYPE="circle"><B><a href='JSJaCKeys.html'>JSJaCKeys</a></B></LI> 
-                <LI TYPE="circle"><B><a href='JSJaCPacket.html'>JSJaCPacket</a></B></LI> <UL>
-                <LI TYPE="circle"><B><a href='JSJaCIQ.html'>JSJaCIQ</a></B></LI> 
-                <LI TYPE="circle"><B><a href='JSJaCMessage.html'>JSJaCMessage</a></B></LI> 
-                <LI TYPE="circle"><B><a href='JSJaCPresence.html'>JSJaCPresence</a></B></LI> </UL>
-                <LI TYPE="circle"><B><a href='Node.html'>Node</a></B></LI> 
-                <LI TYPE="circle"><B><a href='Number.html'>Number</a></B></LI> 
-                <LI TYPE="circle"><B><a href='STANZA_ERROR.html'>STANZA_ERROR</a></B></LI> 
-                <LI TYPE="circle"><B><a href='String.html'>String</a></B></LI> 
-                <LI TYPE="circle"><B><a href='XMLDocument.html'>XMLDocument</a></B></LI> </UL></UL>
-
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"><A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><b>Overview</b></A></FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1Rev">   <FONT CLASS="NavBarFont1Rev"><b>Tree</b></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><b>Index</b></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><b>Help</b></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD BGCOLOR="#FFFFFF" ALIGN="right" VALIGN="top"><EM>
-<B>JSJaC</B></EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV 
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>   
- <A HREF="overview-summary.html" TARGET="_top"><B>NO FRAMES</B></A>
-  
-<SCRIPT>
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
-</NOSCRIPT>
-</FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<FONT SIZE="-1">
-
-</FONT>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" parent="_parent">JSDoc</a> on Tue Dec  9 15:09:23 2008</div>
-</BODY>
-</HTML>
diff --git a/doc/overview-xmlextras.js.html b/doc/overview-xmlextras.js.html
deleted file mode 100644
index e7d0db8..0000000
--- a/doc/overview-xmlextras.js.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<TITLE>
- xmlextras.js 
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<SCRIPT>
-function asd()
-{
-parent.document.title=" xmlextras.js";
-}
-</SCRIPT>
-<BODY BGCOLOR="white" onload="asd();">
-
-<H3 class="FrameHeadingFont"><B></B></H3>
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B><a href="overview-summary-xmlextras.js.html" 
-                                            target="classFrame">xmlextras.js</a></B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-
-
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/stylesheet.css b/doc/stylesheet.css
deleted file mode 100644
index 7a35c0c..0000000
--- a/doc/stylesheet.css
+++ /dev/null
@@ -1,39 +0,0 @@
-/* JSDoc style sheet */
-
-/* Define colors, fonts and other style attributes here to override the defaults */
-
-/* Page background color */
-body { background-color: #FFFFFF }
-
-/* Table colors */
-.TableHeadingColor     { background: #CCCCFF } /* Dark mauve */
-.TableSubHeadingColor  { background: #EEEEFF } /* Light mauve */
-.TableRowColor         { background: #FFFFFF } /* White */
-
-/* Font used in left-hand frame lists */
-.FrameTitleFont   { font-size: 10pt; font-family: Helvetica, Arial, san-serif }
-.FrameHeadingFont { font-size: 10pt; font-family: Helvetica, Arial, san-serif }
-.FrameItemFont    { font-size: 10pt; font-family: Helvetica, Arial, san-serif }
-
-/* Example of smaller, sans-serif font in frames */
-/* .FrameItemFont  { font-size: 10pt; font-family: Helvetica, Arial, sans-serif } */
-
-/* Navigation bar fonts and colors */
-.NavBarCell1    { background-color:#EEEEFF;}/* Light mauve */
-.NavBarCell1Rev { background-color:#00008B;}/* Dark Blue */
-.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;}
-.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}
-
-.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
-.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
-
-.jsdoc_ctime    { font-family: Arial, Helvetica, sans-serif; font-size: 9pt;
-                    text-align: right }
-
-/* Sourcecode view */
-.sourceview { background: #FFFFFF }
-.attrib { color: #DD7777 }
-.comment { color: #55AA55 }
-.reserved { color: #FF5555 }
-.literal { color: #5555FF }
-
diff --git a/jsjac.js b/jsjac.js
deleted file mode 100644
index 9c64e3f..0000000
--- a/jsjac.js
+++ /dev/null
@@ -1,511 +0,0 @@
-/* JSJaC - The JavaScript Jabber Client Library
- * Copyright (C) 2004-2008 Stefan Strigler
- *
- * JSJaC is licensed under the terms of the Mozilla Public License
- * version 1.1 or, at your option, under the terms of the GNU General
- * Public License version 2 or subsequent, or the terms of the GNU Lesser
- * General Public License version 2.1 or subsequent. 
- *
- * Please visit http://zeank.in-berlin.de/jsjac/ for details about JSJaC.
- */
-
-var JSJAC_HAVEKEYS = true;  // whether to use keys
-var JSJAC_NKEYS    = 16;    // number of keys to generate
-var JSJAC_INACTIVITY = 300; // qnd hack to make suspend/resume work more smoothly with polling
-var JSJAC_ERR_COUNT = 10;   // number of retries in case of connection errors
-
-var JSJAC_ALLOW_PLAIN = true; // whether to allow plaintext logins
-
-var JSJAC_CHECKQUEUEINTERVAL = 1; // msecs to poll send queue
-var JSJAC_CHECKINQUEUEINTERVAL = 1; // msecs to poll incoming queue
-
-// Options specific to HTTP Binding (BOSH)
-var JSJACHBC_BOSH_VERSION  = "1.6";
-var JSJACHBC_USE_BOSH_VER  = true;
-
-var JSJACHBC_MAX_HOLD = 1;
-var JSJACHBC_MAX_WAIT = 300;
-
-var JSJACHBC_MAXPAUSE = 120;
-
-/*** END CONFIG ***/
-
-
-String.prototype.htmlEnc=function(){var str=this.replace(/&/g,"&");str=str.replace(/</g,"<");str=str.replace(/>/g,">");str=str.replace(/\"/g,""");str=str.replace(/\n/g,"<br />");return str;};Date.jab2date=function(ts){var date=new Date(Date.UTC(ts.substr(0,4),ts.substr(5,2)-1,ts.substr(8,2),ts.substr(11,2),ts.substr(14,2),ts.substr(17,2)));if(ts.substr(ts.length-6,1)!='Z'){var offset=new Date();offset.setTime(0);offset.setUTCHours(ts.substr(ts.length-5,2));offset.setUTCMinutes(ts.substr(ts.length-2,2));if(ts.substr(ts.length-6,1)=='+')
-date.setTime(date.getTime()-offset.getTime());else if(ts.substr(ts.length-6,1)=='-')
-date.setTime(date.getTime()+offset.getTime());}
-return date;};Date.hrTime=function(ts){return Date.jab2date(ts).toLocaleString();};Date.prototype.jabberDate=function(){var padZero=function(i){if(i<10)return"0"+i;return i;};var jDate=this.getUTCFullYear()+"-";jDate+=padZero(this.getUTCMonth()+1)+"-";jDate+=padZero(this.getUTCDate())+"T";jDate+=padZero(this.getUTCHours())+":";jDate+=padZero(this.getUTCMinutes())+":";jDate+=padZero(this.getUTCSeconds())+"Z";return jDate;};Number.max=function(A,B){return(A>B)?A:B;};var hexcase=0;var b64pad="=";var chrsz=8;function hex_sha1(s){return binb2hex(core_sha1(str2binb(s),s.length*chrsz));}
-function b64_sha1(s){return binb2b64(core_sha1(str2binb(s),s.length*chrsz));}
-function str_sha1(s){return binb2str(core_sha1(str2binb(s),s.length*chrsz));}
-function hex_hmac_sha1(key,data){return binb2hex(core_hmac_sha1(key,data));}
-function b64_hmac_sha1(key,data){return binb2b64(core_hmac_sha1(key,data));}
-function str_hmac_sha1(key,data){return binb2str(core_hmac_sha1(key,data));}
-function sha1_vm_test()
-{return hex_sha1("abc")=="a9993e364706816aba3e25717850c26c9cd0d89d";}
-function core_sha1(x,len)
-{x[len>>5]|=0x80<<(24-len%32);x[((len+64>>9)<<4)+15]=len;var w=Array(80);var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;var e=-1009589776;for(var i=0;i<x.length;i+=16)
-{var olda=a;var oldb=b;var oldc=c;var oldd=d;var olde=e;for(var j=0;j<80;j++)
-{if(j<16)w[j]=x[i+j];else w[j]=rol(w[j-3]^w[j-8]^w[j-14]^w[j-16],1);var t=safe_add(safe_add(rol(a,5),sha1_ft(j,b,c,d)),safe_add(safe_add(e,w[j]),sha1_kt(j)));e=d;d=c;c=rol(b,30);b=a;a=t;}
-a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd);e=safe_add(e,olde);}
-return Array(a,b,c,d,e);}
-function sha1_ft(t,b,c,d)
-{if(t<20)return(b&c)|((~b)&d);if(t<40)return b^c^d;if(t<60)return(b&c)|(b&d)|(c&d);return b^c^d;}
-function sha1_kt(t)
-{return(t<20)?1518500249:(t<40)?1859775393:(t<60)?-1894007588:-899497514;}
-function core_hmac_sha1(key,data)
-{var bkey=str2binb(key);if(bkey.length>16)bkey=core_sha1(bkey,key.length*chrsz);var ipad=Array(16),opad=Array(16);for(var i=0;i<16;i++)
-{ipad[i]=bkey[i]^0x36363636;opad[i]=bkey[i]^0x5C5C5C5C;}
-var hash=core_sha1(ipad.concat(str2binb(data)),512+data.length*chrsz);return core_sha1(opad.concat(hash),512+160);}
-function rol(num,cnt)
-{return(num<<cnt)|(num>>>(32-cnt));}
-function str2binb(str)
-{var bin=Array();var mask=(1<<chrsz)-1;for(var i=0;i<str.length*chrsz;i+=chrsz)
-bin[i>>5]|=(str.charCodeAt(i/chrsz)&mask)<<(32-chrsz-i%32);return bin;}
-function binb2str(bin)
-{var str="";var mask=(1<<chrsz)-1;for(var i=0;i<bin.length*32;i+=chrsz)
-str+=String.fromCharCode((bin[i>>5]>>>(32-chrsz-i%32))&mask);return str;}
-function binb2hex(binarray)
-{var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var str="";for(var i=0;i<binarray.length*4;i++)
-{str+=hex_tab.charAt((binarray[i>>2]>>((3-i%4)*8+4))&0xF)+
-hex_tab.charAt((binarray[i>>2]>>((3-i%4)*8))&0xF);}
-return str;}
-function binb2b64(binarray)
-{var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var str="";for(var i=0;i<binarray.length*4;i+=3)
-{var triplet=(((binarray[i>>2]>>8*(3-i%4))&0xFF)<<16)|(((binarray[i+1>>2]>>8*(3-(i+1)%4))&0xFF)<<8)|((binarray[i+2>>2]>>8*(3-(i+2)%4))&0xFF);for(var j=0;j<4;j++)
-{if(i*8+j*6>binarray.length*32)str+=b64pad;else str+=tab.charAt((triplet>>6*(3-j))&0x3F);}}
-return str.replace(/AAA\=(\=*?)$/,'$1');}
-function hex_md5(s){return binl2hex(core_md5(str2binl(s),s.length*chrsz));}
-function b64_md5(s){return binl2b64(core_md5(str2binl(s),s.length*chrsz));}
-function str_md5(s){return binl2str(core_md5(str2binl(s),s.length*chrsz));}
-function hex_hmac_md5(key,data){return binl2hex(core_hmac_md5(key,data));}
-function b64_hmac_md5(key,data){return binl2b64(core_hmac_md5(key,data));}
-function str_hmac_md5(key,data){return binl2str(core_hmac_md5(key,data));}
-function md5_vm_test()
-{return hex_md5("abc")=="900150983cd24fb0d6963f7d28e17f72";}
-function core_md5(x,len)
-{x[len>>5]|=0x80<<((len)%32);x[(((len+64)>>>9)<<4)+14]=len;var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;for(var i=0;i<x.length;i+=16)
-{var olda=a;var oldb=b;var oldc=c;var oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936);d=md5_ff(d,a,b,c,x[i+1],12,-389564586);c=md5_ff(c,d,a,b,x[i+2],17,606105819);b=md5_ff(b,c,d,a,x[i+3],22,-1044525330);a=md5_ff(a,b,c,d,x[i+4],7,-176418897);d=md5_ff(d,a,b,c,x[i+5],12,1200080426);c=md5_ff(c,d,a,b,x[i+6],17,-1473231341);b=md5_ff(b,c,d,a,x[i+7],22,-45705983);a=md5_ff(a,b,c,d,x[i+8],7,1770035416);d=md5_ff(d,a,b,c,x[i+9],12,-1958414417);c=md5_ff(c,d,a,b,x[i+10],17,-42063);b=md5_ff(b,c,d,a,x[i+11],22,-1990404162);a=md5_ff(a,b,c,d,x[i+12],7,1804603682);d=md5_ff(d,a,b,c,x[i+13],12,-40341101);c=md5_ff(c,d,a,b,x[i+14],17,-1502002290);b=md5_ff(b,c,d,a,x[i+15],22,1236535329);a=md5_gg(a,b,c,d,x[i+1],5,-165796510);d=md5_gg(d,a,b,c,x[i+6],9,-1069501632);c=md5_gg(c,d,a,b,x[i+11],14,643717713);b=md5_gg(b,c,d,a,x[i+0],20,-373897302);a=md5_gg(a,b,c,d,x[i+5],5,-701558691);d=md5_gg(d,a,b,c,x[i+10],9,38016083);c=md5_gg(c,d,a,b,x[i+15],14,-660478335);b=md5_gg(b,c,d,a,x[i+4],20,-405537848);a=md5_gg(a,b,c,d,x[i+9],5,568446438);d=md5_gg(d,a,b,c,x[i+14],9,-1019803690);c=md5_gg(c,d,a,b,x[i+3],14,-187363961);b=md5_gg(b,c,d,a,x[i+8],20,1163531501);a=md5_gg(a,b,c,d,x[i+13],5,-1444681467);d=md5_gg(d,a,b,c,x[i+2],9,-51403784);c=md5_gg(c,d,a,b,x[i+7],14,1735328473);b=md5_gg(b,c,d,a,x[i+12],20,-1926607734);a=md5_hh(a,b,c,d,x[i+5],4,-378558);d=md5_hh(d,a,b,c,x[i+8],11,-2022574463);c=md5_hh(c,d,a,b,x[i+11],16,1839030562);b=md5_hh(b,c,d,a,x[i+14],23,-35309556);a=md5_hh(a,b,c,d,x[i+1],4,-1530992060);d=md5_hh(d,a,b,c,x[i+4],11,1272893353);c=md5_hh(c,d,a,b,x[i+7],16,-155497632);b=md5_hh(b,c,d,a,x[i+10],23,-1094730640);a=md5_hh(a,b,c,d,x[i+13],4,681279174);d=md5_hh(d,a,b,c,x[i+0],11,-358537222);c=md5_hh(c,d,a,b,x[i+3],16,-722521979);b=md5_hh(b,c,d,a,x[i+6],23,76029189);a=md5_hh(a,b,c,d,x[i+9],4,-640364487);d=md5_hh(d,a,b,c,x[i+12],11,-421815835);c=md5_hh(c,d,a,b,x[i+15],16,530742520);b=md5_hh(b,c,d,a,x[i+2],23,-995338651);a=md5_ii(a,b,c,d,x[i+0],6,-198630844);d=md5_ii(d,a,b,c,x[i+7],10,1126891415);c=md5_ii(c,d,a,b,x[i+14],15,-1416354905);b=md5_ii(b,c,d,a,x[i+5],21,-57434055);a=md5_ii(a,b,c,d,x[i+12],6,1700485571);d=md5_ii(d,a,b,c,x[i+3],10,-1894986606);c=md5_ii(c,d,a,b,x[i+10],15,-1051523);b=md5_ii(b,c,d,a,x[i+1],21,-2054922799);a=md5_ii(a,b,c,d,x[i+8],6,1873313359);d=md5_ii(d,a,b,c,x[i+15],10,-30611744);c=md5_ii(c,d,a,b,x[i+6],15,-1560198380);b=md5_ii(b,c,d,a,x[i+13],21,1309151649);a=md5_ii(a,b,c,d,x[i+4],6,-145523070);d=md5_ii(d,a,b,c,x[i+11],10,-1120210379);c=md5_ii(c,d,a,b,x[i+2],15,718787259);b=md5_ii(b,c,d,a,x[i+9],21,-343485551);a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd);}
-return Array(a,b,c,d);}
-function md5_cmn(q,a,b,x,s,t)
-{return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b);}
-function md5_ff(a,b,c,d,x,s,t)
-{return md5_cmn((b&c)|((~b)&d),a,b,x,s,t);}
-function md5_gg(a,b,c,d,x,s,t)
-{return md5_cmn((b&d)|(c&(~d)),a,b,x,s,t);}
-function md5_hh(a,b,c,d,x,s,t)
-{return md5_cmn(b^c^d,a,b,x,s,t);}
-function md5_ii(a,b,c,d,x,s,t)
-{return md5_cmn(c^(b|(~d)),a,b,x,s,t);}
-function core_hmac_md5(key,data)
-{var bkey=str2binl(key);if(bkey.length>16)bkey=core_md5(bkey,key.length*chrsz);var ipad=Array(16),opad=Array(16);for(var i=0;i<16;i++)
-{ipad[i]=bkey[i]^0x36363636;opad[i]=bkey[i]^0x5C5C5C5C;}
-var hash=core_md5(ipad.concat(str2binl(data)),512+data.length*chrsz);return core_md5(opad.concat(hash),512+128);}
-function safe_add(x,y)
-{var lsw=(x&0xFFFF)+(y&0xFFFF);var msw=(x>>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&0xFFFF);}
-function bit_rol(num,cnt)
-{return(num<<cnt)|(num>>>(32-cnt));}
-function str2binl(str)
-{var bin=Array();var mask=(1<<chrsz)-1;for(var i=0;i<str.length*chrsz;i+=chrsz)
-bin[i>>5]|=(str.charCodeAt(i/chrsz)&mask)<<(i%32);return bin;}
-function binl2str(bin)
-{var str="";var mask=(1<<chrsz)-1;for(var i=0;i<bin.length*32;i+=chrsz)
-str+=String.fromCharCode((bin[i>>5]>>>(i%32))&mask);return str;}
-function binl2hex(binarray)
-{var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var str="";for(var i=0;i<binarray.length*4;i++)
-{str+=hex_tab.charAt((binarray[i>>2]>>((i%4)*8+4))&0xF)+
-hex_tab.charAt((binarray[i>>2]>>((i%4)*8))&0xF);}
-return str;}
-function binl2b64(binarray)
-{var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var str="";for(var i=0;i<binarray.length*4;i+=3)
-{var triplet=(((binarray[i>>2]>>8*(i%4))&0xFF)<<16)|(((binarray[i+1>>2]>>8*((i+1)%4))&0xFF)<<8)|((binarray[i+2>>2]>>8*((i+2)%4))&0xFF);for(var j=0;j<4;j++)
-{if(i*8+j*6>binarray.length*32)str+=b64pad;else str+=tab.charAt((triplet>>6*(3-j))&0x3F);}}
-return str;}
-function utf8t2d(t)
-{t=t.replace(/\r\n/g,"\n");var d=new Array;var test=String.fromCharCode(237);if(test.charCodeAt(0)<0)
-for(var n=0;n<t.length;n++)
-{var c=t.charCodeAt(n);if(c>0)
-d[d.length]=c;else{d[d.length]=(((256+c)>>6)|192);d[d.length]=(((256+c)&63)|128);}}
-else
-for(var n=0;n<t.length;n++)
-{var c=t.charCodeAt(n);if(c<128)
-d[d.length]=c;else if((c>127)&&(c<2048)){d[d.length]=((c>>6)|192);d[d.length]=((c&63)|128);}
-else{d[d.length]=((c>>12)|224);d[d.length]=(((c>>6)&63)|128);d[d.length]=((c&63)|128);}}
-return d;}
-function utf8d2t(d)
-{var r=new Array;var i=0;while(i<d.length)
-{if(d[i]<128){r[r.length]=String.fromCharCode(d[i]);i++;}
-else if((d[i]>191)&&(d[i]<224)){r[r.length]=String.fromCharCode(((d[i]&31)<<6)|(d[i+1]&63));i+=2;}
-else{r[r.length]=String.fromCharCode(((d[i]&15)<<12)|((d[i+1]&63)<<6)|(d[i+2]&63));i+=3;}}
-return r.join("");}
-function b64arrays(){var b64s='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';b64=new Array();f64=new Array();for(var i=0;i<b64s.length;i++){b64[i]=b64s.charAt(i);f64[b64s.charAt(i)]=i;}}
-function b64d2t(d){var r=new Array;var i=0;var dl=d.length;if((dl%3)==1){d[d.length]=0;d[d.length]=0;}
-if((dl%3)==2)
-d[d.length]=0;while(i<d.length)
-{r[r.length]=b64[d[i]>>2];r[r.length]=b64[((d[i]&3)<<4)|(d[i+1]>>4)];r[r.length]=b64[((d[i+1]&15)<<2)|(d[i+2]>>6)];r[r.length]=b64[d[i+2]&63];i+=3;}
-if((dl%3)==1)
-r[r.length-1]=r[r.length-2]="=";if((dl%3)==2)
-r[r.length-1]="=";var t=r.join("");return t;}
-function b64t2d(t){var d=new Array;var i=0;t=t.replace(/\n|\r/g,"");t=t.replace(/=/g,"");while(i<t.length)
-{d[d.length]=(f64[t.charAt(i)]<<2)|(f64[t.charAt(i+1)]>>4);d[d.length]=(((f64[t.charAt(i+1)]&15)<<4)|(f64[t.charAt(i+2)]>>2));d[d.length]=(((f64[t.charAt(i+2)]&3)<<6)|(f64[t.charAt(i+3)]));i+=4;}
-if(t.length%4==2)
-d=d.slice(0,d.length-2);if(t.length%4==3)
-d=d.slice(0,d.length-1);return d;}
-if(typeof(atob)=='undefined'||typeof(btoa)=='undefined')
-b64arrays();if(typeof(atob)=='undefined'){atob=function(s){return utf8d2t(b64t2d(s));}}
-if(typeof(btoa)=='undefined'){btoa=function(s){return b64d2t(utf8t2d(s));}}
-function cnonce(size){var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";var cnonce='';for(var i=0;i<size;i++){cnonce+=tab.charAt(Math.round(Math.random(new Date().getTime())*(tab.length-1)));}
-return cnonce;}
-function JSJaCJSON(){}
-JSJaCJSON.toString=function(obj){var m={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},s={array:function(x){var a=['['],b,f,i,l=x.length,v;for(i=0;i<l;i+=1){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=='string'){if(b){a[a.length]=',';}
-a[a.length]=v;b=true;}}}
-a[a.length]=']';return a.join('');},'boolean':function(x){return String(x);},'null':function(x){return"null";},number:function(x){return isFinite(x)?String(x):'null';},object:function(x){if(x){if(x instanceof Array){return s.array(x);}
-var a=['{'],b,f,i,v;for(i in x){if(x.hasOwnProperty(i)){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=='string'){if(b){a[a.length]=',';}
-a.push(s.string(i),':',v);b=true;}}}}
-a[a.length]='}';return a.join('');}
-return'null';},string:function(x){if(/["\\\x00-\x1f]/.test(x)){x=x.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];if(c){return c;}
-c=b.charCodeAt();return'\\u00'+
-Math.floor(c/16).toString(16)+
-(c%16).toString(16);});}
-return'"'+x+'"';}};switch(typeof(obj)){case'object':return s.object(obj);case'array':return s.array(obj);}};JSJaCJSON.parse=function(str){try{return!(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(str.replace(/"(\\.|[^"\\])*"/g,'')))&&eval('('+str+')');}catch(e){return false;}};function XmlHttp(){}
-XmlHttp.create=function(){try{if(window.XMLHttpRequest){var req=new XMLHttpRequest();if(req.readyState==null){req.readyState=1;req.addEventListener("load",function(){req.readyState=4;if(typeof req.onreadystatechange=="function")
-req.onreadystatechange();},false);}
-return req;}
-if(window.ActiveXObject){return new ActiveXObject(XmlHttp.getPrefix()+".XmlHttp");}}
-catch(ex){}
-throw new Error("Your browser does not support XmlHttp objects");};XmlHttp.getPrefix=function(){if(XmlHttp.prefix)
-return XmlHttp.prefix;var prefixes=["MSXML2","Microsoft","MSXML","MSXML3"];var o;for(var i=0;i<prefixes.length;i++){try{o=new ActiveXObject(prefixes[i]+".XmlHttp");return XmlHttp.prefix=prefixes[i];}
-catch(ex){};}
-throw new Error("Could not find an installed XML parser");};function XmlDocument(){}
-XmlDocument.create=function(name,ns){name=name||'foo';ns=ns||'';try{var doc;if(document.implementation&&document.implementation.createDocument){doc=document.implementation.createDocument(ns,name,null);if(doc.readyState==null){doc.readyState=1;doc.addEventListener("load",function(){doc.readyState=4;if(typeof doc.onreadystatechange=="function")
-doc.onreadystatechange();},false);}}else if(window.ActiveXObject){doc=new ActiveXObject(XmlDocument.getPrefix()+".DomDocument");}
-if(!doc.documentElement||doc.documentElement.tagName!=name||(doc.documentElement.namespaceURI&&doc.documentElement.namespaceURI!=ns)){try{if(ns!='')
-doc.appendChild(doc.createElement(name)).setAttribute('xmlns',ns);else
-doc.appendChild(doc.createElement(name));}catch(dex){doc=document.implementation.createDocument(ns,name,null);if(doc.documentElement==null)
-doc.appendChild(doc.createElement(name));if(ns!=''&&doc.documentElement.getAttribute('xmlns')!=ns){doc.documentElement.setAttribute('xmlns',ns);}}}
-return doc;}
-catch(ex){alert(ex.name+": "+ex.message);}
-throw new Error("Your browser does not support XmlDocument objects");};XmlDocument.getPrefix=function(){if(XmlDocument.prefix)
-return XmlDocument.prefix;var prefixes=["MSXML2","Microsoft","MSXML","MSXML3"];var o;for(var i=0;i<prefixes.length;i++){try{o=new ActiveXObject(prefixes[i]+".DomDocument");return XmlDocument.prefix=prefixes[i];}
-catch(ex){};}
-throw new Error("Could not find an installed XML parser");};if(typeof(Document)!='undefined'&&window.DOMParser){Document.prototype.loadXML=function(s){var doc2=(new DOMParser()).parseFromString(s,"text/xml");while(this.hasChildNodes())
-this.removeChild(this.lastChild);for(var i=0;i<doc2.childNodes.length;i++){this.appendChild(this.importNode(doc2.childNodes[i],true));}};}
-if(window.XMLSerializer&&window.Node&&Node.prototype&&Node.prototype.__defineGetter__){XMLDocument.prototype.__defineGetter__("xml",function(){return(new XMLSerializer()).serializeToString(this);});Document.prototype.__defineGetter__("xml",function(){return(new XMLSerializer()).serializeToString(this);});Node.prototype.__defineGetter__("xml",function(){return(new XMLSerializer()).serializeToString(this);});}
-var JSJaCBuilder={buildNode:function(doc,elementName){var element,ns=arguments[4];if(arguments[2])
-if(JSJaCBuilder._isStringOrNumber(arguments[2])||(arguments[2]instanceof Array)){element=this._createElement(doc,elementName,ns);JSJaCBuilder._children(doc,element,arguments[2]);}else{ns=arguments[2]['xmlns']||ns;element=this._createElement(doc,elementName,ns);for(attr in arguments[2]){if(arguments[2].hasOwnProperty(attr)&&attr!='xmlns')
-element.setAttribute(attr,arguments[2][attr]);}}
-else
-element=this._createElement(doc,elementName,ns);if(arguments[3])
-JSJaCBuilder._children(doc,element,arguments[3],ns);return element;},_createElement:function(doc,elementName,ns){try{if(ns)
-return doc.createElementNS(ns,elementName);}catch(ex){}
-var el=doc.createElement(elementName);if(ns)
-el.setAttribute("xmlns",ns);return el;},_text:function(doc,text){return doc.createTextNode(text);},_children:function(doc,element,children,ns){if(typeof children=='object'){for(var i in children){if(children.hasOwnProperty(i)){var e=children[i];if(typeof e=='object'){if(e instanceof Array){var node=JSJaCBuilder.buildNode(doc,e[0],e[1],e[2],ns);element.appendChild(node);}else{element.appendChild(e);}}else{if(JSJaCBuilder._isStringOrNumber(e)){element.appendChild(JSJaCBuilder._text(doc,e));}}}}}else{if(JSJaCBuilder._isStringOrNumber(children)){element.appendChild(JSJaCBuilder._text(doc,children));}}},_attributes:function(attributes){var attrs=[];for(attribute in attributes)
-if(attributes.hasOwnProperty(attribute))
-attrs.push(attribute+'="'+attributes[attribute].toString().htmlEnc()+'"');return attrs.join(" ");},_isStringOrNumber:function(param){return(typeof param=='string'||typeof param=='number');}};var NS_DISCO_ITEMS="http://jabber.org/protocol/disco#items";var NS_DISCO_INFO="http://jabber.org/protocol/disco#info";var NS_VCARD="vcard-temp";var NS_AUTH="jabber:iq:auth";var NS_AUTH_ERROR="jabber:iq:auth:error";var NS_REGISTER="jabber:iq:register";var NS_SEARCH="jabber:iq:search";var NS_ROSTER="jabber:iq:roster";var NS_PRIVACY="jabber:iq:privacy";var NS_PRIVATE="jabber:iq:private";var NS_VERSION="jabber:iq:version";var NS_TIME="jabber:iq:time";var NS_LAST="jabber:iq:last";var NS_XDATA="jabber:x:data";var NS_IQDATA="jabber:iq:data";var NS_DELAY="jabber:x:delay";var NS_EXPIRE="jabber:x:expire";var NS_EVENT="jabber:x:event";var NS_XCONFERENCE="jabber:x:conference";var NS_STATS="http://jabber.org/protocol/stats";var NS_MUC="http://jabber.org/protocol/muc";var NS_MUC_USER="http://jabber.org/protocol/muc#user";var NS_MUC_ADMIN="http://jabber.org/protocol/muc#admin";var NS_MUC_OWNER="http://jabber.org/protocol/muc#owner";var NS_PUBSUB="http://jabber.org/protocol/pubsub";var NS_PUBSUB_EVENT="http://jabber.org/protocol/pubsub#event";var NS_PUBSUB_OWNER="http://jabber.org/protocol/pubsub#owner";var NS_PUBSUB_NMI="http://jabber.org/protocol/pubsub#node-meta-info";var NS_COMMANDS="http://jabber.org/protocol/commands";var NS_STREAM="http://etherx.jabber.org/streams";var NS_STANZAS="urn:ietf:params:xml:ns:xmpp-stanzas";var NS_STREAMS="urn:ietf:params:xml:ns:xmpp-streams";var NS_TLS="urn:ietf:params:xml:ns:xmpp-tls";var NS_SASL="urn:ietf:params:xml:ns:xmpp-sasl";var NS_SESSION="urn:ietf:params:xml:ns:xmpp-session";var NS_BIND="urn:ietf:params:xml:ns:xmpp-bind";var NS_FEATURE_IQAUTH="http://jabber.org/features/iq-auth";var NS_FEATURE_IQREGISTER="http://jabber.org/features/iq-register";var NS_FEATURE_COMPRESS="http://jabber.org/features/compress";var NS_COMPRESS="http://jabber.org/protocol/compress";function STANZA_ERROR(code,type,cond){if(window==this)
-return new STANZA_ERROR(code,type,cond);this.code=code;this.type=type;this.cond=cond;}
-var ERR_BAD_REQUEST=STANZA_ERROR("400","modify","bad-request");var ERR_CONFLICT=STANZA_ERROR("409","cancel","conflict");var ERR_FEATURE_NOT_IMPLEMENTED=STANZA_ERROR("501","cancel","feature-not-implemented");var ERR_FORBIDDEN=STANZA_ERROR("403","auth","forbidden");var ERR_GONE=STANZA_ERROR("302","modify","gone");var ERR_INTERNAL_SERVER_ERROR=STANZA_ERROR("500","wait","internal-server-error");var ERR_ITEM_NOT_FOUND=STANZA_ERROR("404","cancel","item-not-found");var ERR_JID_MALFORMED=STANZA_ERROR("400","modify","jid-malformed");var ERR_NOT_ACCEPTABLE=STANZA_ERROR("406","modify","not-acceptable");var ERR_NOT_ALLOWED=STANZA_ERROR("405","cancel","not-allowed");var ERR_NOT_AUTHORIZED=STANZA_ERROR("401","auth","not-authorized");var ERR_PAYMENT_REQUIRED=STANZA_ERROR("402","auth","payment-required");var ERR_RECIPIENT_UNAVAILABLE=STANZA_ERROR("404","wait","recipient-unavailable");var ERR_REDIRECT=STANZA_ERROR("302","modify","redirect");var ERR_REGISTRATION_REQUIRED=STANZA_ERROR("407","auth","registration-required");var ERR_REMOTE_SERVER_NOT_FOUND=STANZA_ERROR("404","cancel","remote-server-not-found");var ERR_REMOTE_SERVER_TIMEOUT=STANZA_ERROR("504","wait","remote-server-timeout");var ERR_RESOURCE_CONSTRAINT=STANZA_ERROR("500","wait","resource-constraint");var ERR_SERVICE_UNAVAILABLE=STANZA_ERROR("503","cancel","service-unavailable");var ERR_SUBSCRIPTION_REQUIRED=STANZA_ERROR("407","auth","subscription-required");var ERR_UNEXPECTED_REQUEST=STANZA_ERROR("400","wait","unexpected-request");function JSJaCConsoleLogger(level){this.level=level||4;this.start=function(){};this.log=function(msg,level){level=level||0;if(level>this.level)
-return;if(typeof(console)=='undefined')
-return;try{switch(level){case 0:console.warn(msg);break;case 1:console.error(msg);break;case 2:console.info(msg);break;case 4:console.debug(msg);break;default:console.log(msg);break;}}catch(e){try{console.log(msg)}catch(e){}}};this.setLevel=function(level){this.level=level;return this;};this.getLevel=function(){return this.level;};}
-function JSJaCCookie(name,value,secs)
-{if(window==this)
-return new JSJaCCookie(name,value,secs);this.name=name;this.value=value;this.secs=secs;this.write=function(){if(this.secs){var date=new Date();date.setTime(date.getTime()+(this.secs*1000));var expires="; expires="+date.toGMTString();}else
-var expires="";document.cookie=this.getName()+"="+this.getValue()+expires+"; path=/";};this.erase=function(){var c=new JSJaCCookie(this.getName(),"",-1);c.write();};this.getName=function(){return this.name;};this.setName=function(name){this.name=name;return this;};this.getValue=function(){return this.value;};this.setValue=function(value){this.value=value;return this;};}
-JSJaCCookie.read=function(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return new JSJaCCookie(name,c.substring(nameEQ.length,c.length));}
-throw new JSJaCCookieException("Cookie not found");};JSJaCCookie.get=function(name){return JSJaCCookie.read(name).getValue();};JSJaCCookie.remove=function(name){JSJaCCookie.read(name).erase();};function JSJaCCookieException(msg){this.message=msg;this.name="CookieException";}
-function JSJaCError(code,type,condition){var xmldoc=XmlDocument.create("error","jsjac");xmldoc.documentElement.setAttribute('code',code);xmldoc.documentElement.setAttribute('type',type);xmldoc.documentElement.appendChild(xmldoc.createElement(condition)).setAttribute('xmlns','urn:ietf:params:xml:ns:xmpp-stanzas');return xmldoc.documentElement;}
-var JSJACJID_FORBIDDEN=['"',' ','&','\'','/',':','<','>','@'];function JSJaCJID(jid){this._node='';this._domain='';this._resource='';if(typeof(jid)=='string'){if(jid.indexOf('@')!=-1){this.setNode(jid.substring(0,jid.indexOf('@')));jid=jid.substring(jid.indexOf('@')+1);}
-if(jid.indexOf('/')!=-1){this.setResource(jid.substring(jid.indexOf('/')+1));jid=jid.substring(0,jid.indexOf('/'));}
-this.setDomain(jid);}else{this.setNode(jid.node);this.setDomain(jid.domain);this.setResource(jid.resource);}}
-JSJaCJID.prototype.getNode=function(){return this._node;};JSJaCJID.prototype.getDomain=function(){return this._domain;};JSJaCJID.prototype.getResource=function(){return this._resource;};JSJaCJID.prototype.setNode=function(node){JSJaCJID._checkNodeName(node);this._node=node||'';return this;};JSJaCJID.prototype.setDomain=function(domain){if(!domain||domain=='')
-throw new JSJaCJIDInvalidException("domain name missing");JSJaCJID._checkNodeName(domain);this._domain=domain;return this;};JSJaCJID.prototype.setResource=function(resource){this._resource=resource||'';return this;};JSJaCJID.prototype.toString=function(){var jid='';if(this.getNode()&&this.getNode()!='')
-jid=this.getNode()+'@';jid+=this.getDomain();if(this.getResource()&&this.getResource()!="")
-jid+='/'+this.getResource();return jid;};JSJaCJID.prototype.removeResource=function(){return this.setResource();};JSJaCJID.prototype.clone=function(){return new JSJaCJID(this.toString());};JSJaCJID.prototype.isEntity=function(jid){if(typeof jid=='string')
-jid=(new JSJaCJID(jid));jid.removeResource();return(this.clone().removeResource().toString()===jid.toString());};JSJaCJID._checkNodeName=function(nodeprep){if(!nodeprep||nodeprep=='')
-return;for(var i=0;i<JSJACJID_FORBIDDEN.length;i++){if(nodeprep.indexOf(JSJACJID_FORBIDDEN[i])!=-1){throw new JSJaCJIDInvalidException("forbidden char in nodename: "+JSJACJID_FORBIDDEN[i]);}}};function JSJaCJIDInvalidException(message){this.message=message;this.name="JSJaCJIDInvalidException";}
-function JSJaCKeys(func,oDbg){var seed=Math.random();this._k=new Array();this._k[0]=seed.toString();if(oDbg)
-this.oDbg=oDbg;else{this.oDbg={};this.oDbg.log=function(){};}
-if(func){for(var i=1;i<JSJAC_NKEYS;i++){this._k[i]=func(this._k[i-1]);oDbg.log(i+": "+this._k[i],4);}}
-this._indexAt=JSJAC_NKEYS-1;this.getKey=function(){return this._k[this._indexAt--];};this.lastKey=function(){return(this._indexAt==0);};this.size=function(){return this._k.length;};this._getSuspendVars=function(){return('_k,_indexAt').split(',');}}
-var JSJACPACKET_USE_XMLNS=true;function JSJaCPacket(name){this.name=name;if(typeof(JSJACPACKET_USE_XMLNS)!='undefined'&&JSJACPACKET_USE_XMLNS)
-this.doc=XmlDocument.create(name,'jabber:client');else
-this.doc=XmlDocument.create(name,'');}
-JSJaCPacket.prototype.pType=function(){return this.name;};JSJaCPacket.prototype.getDoc=function(){return this.doc;};JSJaCPacket.prototype.getNode=function(){if(this.getDoc()&&this.getDoc().documentElement)
-return this.getDoc().documentElement;else
-return null;};JSJaCPacket.prototype.setTo=function(to){if(!to||to=='')
-this.getNode().removeAttribute('to');else if(typeof(to)=='string')
-this.getNode().setAttribute('to',to);else
-this.getNode().setAttribute('to',to.toString());return this;};JSJaCPacket.prototype.setFrom=function(from){if(!from||from=='')
-this.getNode().removeAttribute('from');else if(typeof(from)=='string')
-this.getNode().setAttribute('from',from);else
-this.getNode().setAttribute('from',from.toString());return this;};JSJaCPacket.prototype.setID=function(id){if(!id||id=='')
-this.getNode().removeAttribute('id');else
-this.getNode().setAttribute('id',id);return this;};JSJaCPacket.prototype.setType=function(type){if(!type||type=='')
-this.getNode().removeAttribute('type');else
-this.getNode().setAttribute('type',type);return this;};JSJaCPacket.prototype.setXMLLang=function(xmllang){if(!xmllang||xmllang=='')
-this.getNode().removeAttribute('xml:lang');else
-this.getNode().setAttribute('xml:lang',xmllang);return this;};JSJaCPacket.prototype.getTo=function(){return this.getNode().getAttribute('to');};JSJaCPacket.prototype.getFrom=function(){return this.getNode().getAttribute('from');};JSJaCPacket.prototype.getToJID=function(){return new JSJaCJID(this.getTo());};JSJaCPacket.prototype.getFromJID=function(){return new JSJaCJID(this.getFrom());};JSJaCPacket.prototype.getID=function(){return this.getNode().getAttribute('id');};JSJaCPacket.prototype.getType=function(){return this.getNode().getAttribute('type');};JSJaCPacket.prototype.getXMLLang=function(){return this.getNode().getAttribute('xml:lang');};JSJaCPacket.prototype.getXMLNS=function(){return this.getNode().namespaceURI;};JSJaCPacket.prototype.getChild=function(name,ns){if(!this.getNode()){return null;}
-name=name||'*';ns=ns||'*';if(this.getNode().getElementsByTagNameNS){return this.getNode().getElementsByTagNameNS(ns,name).item(0);}
-var nodes=this.getNode().getElementsByTagName(name);if(ns!='*'){for(var i=0;i<nodes.length;i++){if(nodes.item(i).namespaceURI==ns){return nodes.item(i);}}}else{return nodes.item(0);}
-return null;}
-JSJaCPacket.prototype.getChildVal=function(name,ns){var node=this.getChild(name,ns);var ret='';if(node&&node.hasChildNodes()){for(var i=0;i<node.childNodes.length;i++)
-if(node.childNodes.item(i).nodeValue)
-ret+=node.childNodes.item(i).nodeValue;}
-return ret;};JSJaCPacket.prototype.clone=function(){return JSJaCPacket.wrapNode(this.getNode());};JSJaCPacket.prototype.isError=function(){return(this.getType()=='error');};JSJaCPacket.prototype.errorReply=function(stanza_error){var rPacket=this.clone();rPacket.setTo(this.getFrom());rPacket.setFrom();rPacket.setType('error');rPacket.appendNode('error',{code:stanza_error.code,type:stanza_error.type},[[stanza_error.cond]]);return rPacket;};JSJaCPacket.prototype.xml=typeof XMLSerializer!='undefined'?function(){var r=(new XMLSerializer()).serializeToString(this.getNode());if(typeof(r)=='undefined')
-r=(new XMLSerializer()).serializeToString(this.doc);return r}:function(){return this.getDoc().xml};JSJaCPacket.prototype._getAttribute=function(attr){return this.getNode().getAttribute(attr);};JSJaCPacket.prototype._replaceNode=function(aNode){for(var i=0;i<aNode.attributes.length;i++)
-if(aNode.attributes.item(i).nodeName!='xmlns')
-this.getNode().setAttribute(aNode.attributes.item(i).nodeName,aNode.attributes.item(i).nodeValue);for(var i=0;i<aNode.childNodes.length;i++)
-if(this.getDoc().importNode)
-this.getNode().appendChild(this.getDoc().importNode(aNode.childNodes.item(i),true));else
-this.getNode().appendChild(aNode.childNodes.item(i).cloneNode(true));};JSJaCPacket.prototype._setChildNode=function(nodeName,nodeValue){var aNode=this.getChild(nodeName);var tNode=this.getDoc().createTextNode(nodeValue);if(aNode)
-try{aNode.replaceChild(tNode,aNode.firstChild);}catch(e){}
-else{try{aNode=this.getDoc().createElementNS(this.getNode().namespaceURI,nodeName);}catch(ex){aNode=this.getDoc().createElement(nodeName)}
-this.getNode().appendChild(aNode);aNode.appendChild(tNode);}
-return aNode;};JSJaCPacket.prototype.buildNode=function(elementName){return JSJaCBuilder.buildNode(this.getDoc(),elementName,arguments[1],arguments[2]);};JSJaCPacket.prototype.appendNode=function(element){if(typeof element=='object'){return this.getNode().appendChild(element)}else{return this.getNode().appendChild(this.buildNode(element,arguments[1],arguments[2],null,this.getNode().namespaceURI));}};function JSJaCPresence(){this.base=JSJaCPacket;this.base('presence');}
-JSJaCPresence.prototype=new JSJaCPacket;JSJaCPresence.prototype.setStatus=function(status){this._setChildNode("status",status);return this;};JSJaCPresence.prototype.setShow=function(show){if(show=='chat'||show=='away'||show=='xa'||show=='dnd')
-this._setChildNode("show",show);return this;};JSJaCPresence.prototype.setPriority=function(prio){this._setChildNode("priority",prio);return this;};JSJaCPresence.prototype.setPresence=function(show,status,prio){if(show)
-this.setShow(show);if(status)
-this.setStatus(status);if(prio)
-this.setPriority(prio);return this;};JSJaCPresence.prototype.getStatus=function(){return this.getChildVal('status');};JSJaCPresence.prototype.getShow=function(){return this.getChildVal('show');};JSJaCPresence.prototype.getPriority=function(){return this.getChildVal('priority');};function JSJaCIQ(){this.base=JSJaCPacket;this.base('iq');}
-JSJaCIQ.prototype=new JSJaCPacket;JSJaCIQ.prototype.setIQ=function(to,type,id){if(to)
-this.setTo(to);if(type)
-this.setType(type);if(id)
-this.setID(id);return this;};JSJaCIQ.prototype.setQuery=function(xmlns){var query;try{query=this.getDoc().createElementNS(xmlns,'query');}catch(e){query=this.getDoc().createElement('query');}
-if(query&&query.getAttribute('xmlns')!=xmlns)
-query.setAttribute('xmlns',xmlns);this.getNode().appendChild(query);return query;};JSJaCIQ.prototype.getQuery=function(){return this.getNode().getElementsByTagName('query').item(0);};JSJaCIQ.prototype.getQueryXMLNS=function(){if(this.getQuery())
-return this.getQuery().namespaceURI;else
-return null;};JSJaCIQ.prototype.reply=function(payload){var rIQ=this.clone();rIQ.setTo(this.getFrom());rIQ.setType('result');if(payload){if(typeof payload=='string')
-rIQ.getChild().appendChild(rIQ.getDoc().loadXML(payload));else if(payload.constructor==Array){var node=rIQ.getChild();for(var i=0;i<payload.length;i++)
-if(typeof payload[i]=='string')
-node.appendChild(rIQ.getDoc().loadXML(payload[i]));else if(typeof payload[i]=='object')
-node.appendChild(payload[i]);}
-else if(typeof payload=='object')
-rIQ.getChild().appendChild(payload);}
-return rIQ;};function JSJaCMessage(){this.base=JSJaCPacket;this.base('message');}
-JSJaCMessage.prototype=new JSJaCPacket;JSJaCMessage.prototype.setBody=function(body){this._setChildNode("body",body);return this;};JSJaCMessage.prototype.setSubject=function(subject){this._setChildNode("subject",subject);return this;};JSJaCMessage.prototype.setThread=function(thread){this._setChildNode("thread",thread);return this;};JSJaCMessage.prototype.getThread=function(){return this.getChildVal('thread');};JSJaCMessage.prototype.getBody=function(){return this.getChildVal('body');};JSJaCMessage.prototype.getSubject=function(){return this.getChildVal('subject')};JSJaCPacket.wrapNode=function(node){var aNode;switch(node.nodeName.toLowerCase()){case'presence':aNode=new JSJaCPresence();break;case'message':aNode=new JSJaCMessage();break;case'iq':aNode=new JSJaCIQ();break;default:return null;}
-aNode._replaceNode(node);return aNode;};function JSJaCConnection(oArg){if(oArg&&oArg.oDbg&&oArg.oDbg.log)
-this.oDbg=oArg.oDbg;else{this.oDbg=new Object();this.oDbg.log=function(){};}
-if(oArg&&oArg.httpbase)
-this._httpbase=oArg.httpbase;if(oArg&&oArg.allow_plain)
-this.allow_plain=oArg.allow_plain;else
-this.allow_plain=JSJAC_ALLOW_PLAIN;this._connected=false;this._events=new Array();this._keys=null;this._ID=0;this._inQ=new Array();this._pQueue=new Array();this._regIDs=new Array();this._req=new Array();this._status='intialized';this._errcnt=0;this._inactivity=JSJAC_INACTIVITY;this._sendRawCallbacks=new Array();if(oArg&&oArg.timerval)
-this.setPollInterval(oArg.timerval);}
-JSJaCConnection.prototype.connect=function(oArg){this._setStatus('connecting');this.domain=oArg.domain||'localhost';this.username=oArg.username;this.resource=oArg.resource;this.pass=oArg.pass;this.register=oArg.register;this.authhost=oArg.authhost||this.domain;this.authtype=oArg.authtype||'sasl';if(oArg.xmllang&&oArg.xmllang!='')
-this._xmllang=oArg.xmllang;this.host=oArg.host||this.domain;this.port=oArg.port||5222;if(oArg.secure)
-this.secure='true';else
-this.secure='false';if(oArg.wait)
-this._wait=oArg.wait;this.jid=this.username+'@'+this.domain;this.fulljid=this.jid+'/'+this.resource;this._rid=Math.round(100000.5+(((900000.49999)-(100000.5))*Math.random()));var slot=this._getFreeSlot();this._req[slot]=this._setupRequest(true);var reqstr=this._getInitialRequestString();this.oDbg.log(reqstr,4);this._req[slot].r.onreadystatechange=JSJaC.bind(function(){if(this._req[slot].r.readyState==4){this.oDbg.log("async recv: "+this._req[slot].r.responseText,4);this._handleInitialResponse(slot);}},this);if(typeof(this._req[slot].r.onerror)!='undefined'){this._req[slot].r.onerror=JSJaC.bind(function(e){this.oDbg.log('XmlHttpRequest error',1);return false;},this);}
-this._req[slot].r.send(reqstr);};JSJaCConnection.prototype.connected=function(){return this._connected;};JSJaCConnection.prototype.disconnect=function(){this._setStatus('disconnecting');if(!this.connected())
-return;this._connected=false;clearInterval(this._interval);clearInterval(this._inQto);if(this._timeout)
-clearTimeout(this._timeout);var slot=this._getFreeSlot();this._req[slot]=this._setupRequest(false);request=this._getRequestString(false,true);this.oDbg.log("Disconnecting: "+request,4);this._req[slot].r.send(request);try{JSJaCCookie.read('JSJaC_State').erase();}catch(e){}
-this.oDbg.log("Disconnected: "+this._req[slot].r.responseText,2);this._handleEvent('ondisconnect');};JSJaCConnection.prototype.getPollInterval=function(){return this._timerval;};JSJaCConnection.prototype.registerHandler=function(event){event=event.toLowerCase();var eArg={handler:arguments[arguments.length-1],childName:'*',childNS:'*',type:'*'};if(arguments.length>2)
-eArg.childName=arguments[1];if(arguments.length>3)
-eArg.childNS=arguments[2];if(arguments.length>4)
-eArg.type=arguments[3];if(!this._events[event])
-this._events[event]=new Array(eArg);else
-this._events[event]=this._events[event].concat(eArg);this._events[event]=this._events[event].sort(function(a,b){var aRank=0;var bRank=0;with(a){if(type=='*')
-aRank++;if(childNS=='*')
-aRank++;if(childName=='*')
-aRank++;}
-with(b){if(type=='*')
-bRank++;if(childNS=='*')
-bRank++;if(childName=='*')
-bRank++;}
-if(aRank>bRank)
-return 1;if(aRank<bRank)
-return-1;return 0;});this.oDbg.log("registered handler for event '"+event+"'",2);};JSJaCConnection.prototype.unregisterHandler=function(event,handler){event=event.toLowerCase();if(!this._events[event])
-return;var arr=this._events[event],res=new Array();for(var i=0;i<arr.length;i++)
-if(arr[i].handler!=handler)
-res.push(arr[i]);if(arr.length!=res.length){this._events[event]=res;this.oDbg.log("unregistered handler for event '"+event+"'",2);}};JSJaCConnection.prototype.registerIQGet=function(childName,childNS,handler){this.registerHandler('iq',childName,childNS,'get',handler);};JSJaCConnection.prototype.registerIQSet=function(childName,childNS,handler){this.registerHandler('iq',childName,childNS,'set',handler);};JSJaCConnection.prototype.resume=function(){try{this._setStatus('resuming');var s=unescape(JSJaCCookie.read('JSJaC_State').getValue());this.oDbg.log('read cookie: '+s,2);var o=JSJaCJSON.parse(s);for(var i in o)
-if(o.hasOwnProperty(i))
-this[i]=o[i];if(this._keys){this._keys2=new JSJaCKeys();var u=this._keys2._getSuspendVars();for(var i=0;i<u.length;i++)
-this._keys2[u[i]]=this._keys[u[i]];this._keys=this._keys2;}
-try{JSJaCCookie.read('JSJaC_State').erase();}catch(e){}
-if(this._connected){this._handleEvent('onresume');setTimeout(JSJaC.bind(this._resume,this),this.getPollInterval());this._interval=setInterval(JSJaC.bind(this._checkQueue,this),JSJAC_CHECKQUEUEINTERVAL);this._inQto=setInterval(JSJaC.bind(this._checkInQ,this),JSJAC_CHECKINQUEUEINTERVAL);}
-return(this._connected===true);}catch(e){if(e.message)
-this.oDbg.log("Resume failed: "+e.message,1);else
-this.oDbg.log("Resume failed: "+e,1);return false;}};JSJaCConnection.prototype.send=function(packet,cb,arg){if(!packet||!packet.pType){this.oDbg.log("no packet: "+packet,1);return false;}
-if(!this.connected())
-return false;if(cb){if(!packet.getID())
-packet.setID('JSJaCID_'+this._ID++);this._registerPID(packet.getID(),cb,arg);}
-try{this._handleEvent(packet.pType()+'_out',packet);this._handleEvent("packet_out",packet);this._pQueue=this._pQueue.concat(packet.xml());}catch(e){this.oDbg.log(e.toString(),1);return false;}
-return true;};JSJaCConnection.prototype.sendIQ=function(iq,handlers,arg){if(!iq||iq.pType()!='iq'){return false;}
-handlers=handlers||{};var error_handler=handlers.error_handler||function(aIq){this.oDbg.log(iq.xml(),1);};var result_handler=handlers.result_handler||function(aIq){this.oDbg.log(aIq.xml(),2);};var default_handler=handlers.default_handler||function(aIq){this.oDbg.log(aIq.xml(),2);};var iqHandler=function(aIq,arg){switch(aIq.getType()){case'error':error_handler(aIq);break;case'result':result_handler(aIq,arg);break;default:default_handler(aIq,arg);}};return this.send(iq,iqHandler,arg);};JSJaCConnection.prototype.setPollInterval=function(timerval){if(timerval&&!isNaN(timerval))
-this._timerval=timerval;return this._timerval;};JSJaCConnection.prototype.status=function(){return this._status;};JSJaCConnection.prototype.suspend=function(){clearTimeout(this._timeout);clearInterval(this._interval);clearInterval(this._inQto);this._suspend();var u=('_connected,_keys,_ID,_inQ,_pQueue,_regIDs,_errcnt,_inactivity,domain,username,resource,jid,fulljid,_sid,_httpbase,_timerval,_is_polling').split(',');u=u.concat(this._getSuspendVars());var s=new Object();for(var i=0;i<u.length;i++){if(!this[u[i]])continue;if(this[u[i]]._getSuspendVars){var uo=this[u[i]]._getSuspendVars();var o=new Object();for(var j=0;j<uo.length;j++)
-o[uo[j]]=this[u[i]][uo[j]];}else
-var o=this[u[i]];s[u[i]]=o;}
-var c=new JSJaCCookie('JSJaC_State',escape(JSJaCJSON.toString(s)),this._inactivity);this.oDbg.log("writing cookie: "+unescape(c.value)+"\n(length:"+
-unescape(c.value).length+")",2);c.write();try{var c2=JSJaCCookie.read('JSJaC_State');if(c.value!=c2.value){this.oDbg.log("Suspend failed writing cookie.\nRead: "+
-unescape(JSJaCCookie.read('JSJaC_State')),1);c.erase();}
-this._connected=false;this._setStatus('suspending');}catch(e){this.oDbg.log("Failed reading cookie 'JSJaC_State': "+e.message);}};JSJaCConnection.prototype._abort=function(){clearTimeout(this._timeout);clearInterval(this._inQto);clearInterval(this._interval);this._connected=false;this._setStatus('aborted');this.oDbg.log("Disconnected.",1);this._handleEvent('ondisconnect');this._handleEvent('onerror',JSJaCError('500','cancel','service-unavailable'));};JSJaCConnection.prototype._checkInQ=function(){for(var i=0;i<this._inQ.length&&i<10;i++){var item=this._inQ[0];this._inQ=this._inQ.slice(1,this._inQ.length);var packet=JSJaCPacket.wrapNode(item);if(!packet)
-return;this._handleEvent("packet_in",packet);if(packet.pType&&!this._handlePID(packet)){this._handleEvent(packet.pType()+'_in',packet);this._handleEvent(packet.pType(),packet);}}};JSJaCConnection.prototype._checkQueue=function(){if(this._pQueue.length!=0)
-this._process();return true;};JSJaCConnection.prototype._doAuth=function(){if(this.has_sasl&&this.authtype=='nonsasl')
-this.oDbg.log("Warning: SASL present but not used",1);if(!this._doSASLAuth()&&!this._doLegacyAuth()){this.oDbg.log("Auth failed for authtype "+this.authtype,1);this.disconnect();return false;}
-return true;};JSJaCConnection.prototype._doInBandReg=function(){if(this.authtype=='saslanon'||this.authtype=='anonymous')
-return;var iq=new JSJaCIQ();iq.setType('set');iq.setID('reg1');iq.appendNode("query",{xmlns:"jabber:iq:register"},[["username",this.username],["password",this.pass]]);this.send(iq,this._doInBandRegDone);};JSJaCConnection.prototype._doInBandRegDone=function(iq){if(iq&&iq.getType()=='error'){this.oDbg.log("registration failed for "+this.username,0);this._handleEvent('onerror',iq.getChild('error'));return;}
-this.oDbg.log(this.username+" registered succesfully",0);this._doAuth();};JSJaCConnection.prototype._doLegacyAuth=function(){if(this.authtype!='nonsasl'&&this.authtype!='anonymous')
-return false;var iq=new JSJaCIQ();iq.setIQ(this.server,'get','auth1');iq.appendNode('query',{xmlns:'jabber:iq:auth'},[['username',this.username]]);this.send(iq,this._doLegacyAuth2);return true;};JSJaCConnection.prototype._doLegacyAuth2=function(iq){if(!iq||iq.getType()!='result'){if(iq&&iq.getType()=='error')
-this._handleEvent('onerror',iq.getChild('error'));this.disconnect();return;}
-var use_digest=(iq.getChild('digest')!=null);var iq=new JSJaCIQ();iq.setIQ(this.server,'set','auth2');query=iq.appendNode('query',{xmlns:'jabber:iq:auth'},[['username',this.username],['resource',this.resource]]);if(use_digest){query.appendChild(iq.buildNode('digest',{xmlns:'jabber:iq:auth'},hex_sha1(this.streamid+this.pass)));}else if(this.allow_plain){query.appendChild(iq.buildNode('password',{xmlns:'jabber:iq:auth'},this.pass));}else{this.oDbg.log("no valid login mechanism found",1);this.disconnect();return false;}
-this.send(iq,this._doLegacyAuthDone);};JSJaCConnection.prototype._doLegacyAuthDone=function(iq){if(iq.getType()!='result'){if(iq.getType()=='error')
-this._handleEvent('onerror',iq.getChild('error'));this.disconnect();}else
-this._handleEvent('onconnect');};JSJaCConnection.prototype._doSASLAuth=function(){if(this.authtype=='nonsasl'||this.authtype=='anonymous')
-return false;if(this.authtype=='saslanon'){if(this.mechs['ANONYMOUS']){this.oDbg.log("SASL using mechanism 'ANONYMOUS'",2);return this._sendRaw("<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='ANONYMOUS'/>",this._doSASLAuthDone);}
-this.oDbg.log("SASL ANONYMOUS requested but not supported",1);}else{if(this.mechs['DIGEST-MD5']){this.oDbg.log("SASL using mechanism 'DIGEST-MD5'",2);return this._sendRaw("<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='DIGEST-MD5'/>",this._doSASLAuthDigestMd5S1);}else if(this.allow_plain&&this.mechs['PLAIN']){this.oDbg.log("SASL using mechanism 'PLAIN'",2);var authStr=this.username+'@'+
-this.domain+String.fromCharCode(0)+
-this.username+String.fromCharCode(0)+
-this.pass;this.oDbg.log("authenticating with '"+authStr+"'",2);authStr=btoa(authStr);return this._sendRaw("<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>"+authStr+"</auth>",this._doSASLAuthDone);}
-this.oDbg.log("No SASL mechanism applied",1);this.authtype='nonsasl';}
-return false;};JSJaCConnection.prototype._doSASLAuthDigestMd5S1=function(el){if(el.nodeName!="challenge"){this.oDbg.log("challenge missing",1);this._handleEvent('onerror',JSJaCError('401','auth','not-authorized'));this.disconnect();}else{var challenge=atob(el.firstChild.nodeValue);this.oDbg.log("got challenge: "+challenge,2);this._nonce=challenge.substring(challenge.indexOf("nonce=")+7);this._nonce=this._nonce.substring(0,this._nonce.indexOf("\""));this.oDbg.log("nonce: "+this._nonce,2);if(this._nonce==''||this._nonce.indexOf('\"')!=-1){this.oDbg.log("nonce not valid, aborting",1);this.disconnect();return;}
-this._digest_uri="xmpp/";this._digest_uri+=this.domain;this._cnonce=cnonce(14);this._nc='00000001';var A1=str_md5(this.username+':'+this.domain+':'+this.pass)+':'+this._nonce+':'+this._cnonce;var A2='AUTHENTICATE:'+this._digest_uri;var response=hex_md5(hex_md5(A1)+':'+this._nonce+':'+this._nc+':'+
-this._cnonce+':auth:'+hex_md5(A2));var rPlain='username="'+this.username+'",realm="'+this.domain+'",nonce="'+this._nonce+'",cnonce="'+this._cnonce+'",nc="'+this._nc+'",qop=auth,digest-uri="'+this._digest_uri+'",response="'+response+'",charset=utf-8';this.oDbg.log("response: "+rPlain,2);this._sendRaw("<response xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>"+
-binb2b64(str2binb(rPlain))+"</response>",this._doSASLAuthDigestMd5S2);}};JSJaCConnection.prototype._doSASLAuthDigestMd5S2=function(el){if(el.nodeName=='failure'){if(el.xml)
-this.oDbg.log("auth error: "+el.xml,1);else
-this.oDbg.log("auth error",1);this._handleEvent('onerror',JSJaCError('401','auth','not-authorized'));this.disconnect();return;}
-var response=atob(el.firstChild.nodeValue);this.oDbg.log("response: "+response,2);var rspauth=response.substring(response.indexOf("rspauth=")+8);this.oDbg.log("rspauth: "+rspauth,2);var A1=str_md5(this.username+':'+this.domain+':'+this.pass)+':'+this._nonce+':'+this._cnonce;var A2=':'+this._digest_uri;var rsptest=hex_md5(hex_md5(A1)+':'+this._nonce+':'+this._nc+':'+
-this._cnonce+':auth:'+hex_md5(A2));this.oDbg.log("rsptest: "+rsptest,2);if(rsptest!=rspauth){this.oDbg.log("SASL Digest-MD5: server repsonse with wrong rspauth",1);this.disconnect();return;}
-if(el.nodeName=='success')
-this._reInitStream(this.domain,this._doStreamBind);else
-this._sendRaw("<response xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/>",this._doSASLAuthDone);};JSJaCConnection.prototype._doSASLAuthDone=function(el){if(el.nodeName!='success'){this.oDbg.log("auth failed",1);this._handleEvent('onerror',JSJaCError('401','auth','not-authorized'));this.disconnect();}else
-this._reInitStream(this.domain,this._doStreamBind);};JSJaCConnection.prototype._doStreamBind=function(){var iq=new JSJaCIQ();iq.setIQ(this.domain,'set','bind_1');iq.appendNode("bind",{xmlns:"urn:ietf:params:xml:ns:xmpp-bind"},[["resource",this.resource]]);this.oDbg.log(iq.xml());this.send(iq,this._doXMPPSess);};JSJaCConnection.prototype._doXMPPSess=function(iq){if(iq.getType()!='result'||iq.getType()=='error'){this.disconnect();if(iq.getType()=='error')
-this._handleEvent('onerror',iq.getChild('error'));return;}
-this.fulljid=iq.getChildVal("jid");this.jid=this.fulljid.substring(0,this.fulljid.lastIndexOf('/'));iq=new JSJaCIQ();iq.setIQ(this.domain,'set','sess_1');iq.appendNode("session",{xmlns:"urn:ietf:params:xml:ns:xmpp-session"},[]);this.oDbg.log(iq.xml());this.send(iq,this._doXMPPSessDone);};JSJaCConnection.prototype._doXMPPSessDone=function(iq){if(iq.getType()!='result'||iq.getType()=='error'){this.disconnect();if(iq.getType()=='error')
-this._handleEvent('onerror',iq.getChild('error'));return;}else
-this._handleEvent('onconnect');};JSJaCConnection.prototype._handleEvent=function(event,arg){event=event.toLowerCase();this.oDbg.log("incoming event '"+event+"'",3);if(!this._events[event])
-return;this.oDbg.log("handling event '"+event+"'",2);for(var i=0;i<this._events[event].length;i++){var aEvent=this._events[event][i];if(aEvent.handler){try{if(arg){if(arg.pType){if((!arg.getNode().hasChildNodes()&&aEvent.childName!='*')||(arg.getNode().hasChildNodes()&&!arg.getChild(aEvent.childName,aEvent.childNS)))
-continue;if(aEvent.type!='*'&&arg.getType()!=aEvent.type)
-continue;this.oDbg.log(aEvent.childName+"/"+aEvent.childNS+"/"+aEvent.type+" => match for handler "+aEvent.handler,3);}
-if(aEvent.handler.call(this,arg))
-break;}
-else
-if(aEvent.handler.call(this))
-break;}catch(e){this.oDbg.log(aEvent.handler+"\n>>>"+e.name+": "+e.message,1);}}}};JSJaCConnection.prototype._handlePID=function(aJSJaCPacket){if(!aJSJaCPacket.getID())
-return false;for(var i in this._regIDs){if(this._regIDs.hasOwnProperty(i)&&this._regIDs[i]&&i==aJSJaCPacket.getID()){var pID=aJSJaCPacket.getID();this.oDbg.log("handling "+pID,3);try{if(this._regIDs[i].cb.call(this,aJSJaCPacket,this._regIDs[i].arg)===false){return false;}else{this._unregisterPID(pID);return true;}}catch(e){this.oDbg.log(e.name+": "+e.message);this._unregisterPID(pID);return true;}}}
-return false;};JSJaCConnection.prototype._handleResponse=function(req){var rootEl=this._parseResponse(req);if(!rootEl)
-return;for(var i=0;i<rootEl.childNodes.length;i++){if(this._sendRawCallbacks.length){var cb=this._sendRawCallbacks[0];this._sendRawCallbacks=this._sendRawCallbacks.slice(1,this._sendRawCallbacks.length);cb.fn.call(this,rootEl.childNodes.item(i),cb.arg);continue;}
-this._inQ=this._inQ.concat(rootEl.childNodes.item(i));}};JSJaCConnection.prototype._parseStreamFeatures=function(doc){if(!doc){this.oDbg.log("nothing to parse ... aborting",1);return false;}
-var errorTag;if(doc.getElementsByTagNameNS)
-errorTag=doc.getElementsByTagNameNS("http://etherx.jabber.org/streams","error").item(0);else{var errors=doc.getElementsByTagName("error");for(var i=0;i<errors.length;i++)
-if(errors.item(i).namespaceURI=="http://etherx.jabber.org/streams"){errorTag=errors.item(i);break;}}
-if(errorTag){this._setStatus("internal_server_error");clearTimeout(this._timeout);clearInterval(this._interval);clearInterval(this._inQto);this._handleEvent('onerror',JSJaCError('503','cancel','session-terminate'));this._connected=false;this.oDbg.log("Disconnected.",1);this._handleEvent('ondisconnect');return false;}
-this.mechs=new Object();var lMec1=doc.getElementsByTagName("mechanisms");this.has_sasl=false;for(var i=0;i<lMec1.length;i++)
-if(lMec1.item(i).getAttribute("xmlns")=="urn:ietf:params:xml:ns:xmpp-sasl"){this.has_sasl=true;var lMec2=lMec1.item(i).getElementsByTagName("mechanism");for(var j=0;j<lMec2.length;j++)
-this.mechs[lMec2.item(j).firstChild.nodeValue]=true;break;}
-if(this.has_sasl)
-this.oDbg.log("SASL detected",2);else{this.authtype='nonsasl';this.oDbg.log("No support for SASL detected",2);}
-return true;};JSJaCConnection.prototype._process=function(timerval){if(!this.connected()){this.oDbg.log("Connection lost ...",1);if(this._interval)
-clearInterval(this._interval);return;}
-this.setPollInterval(timerval);if(this._timeout)
-clearTimeout(this._timeout);var slot=this._getFreeSlot();if(slot<0)
-return;if(typeof(this._req[slot])!='undefined'&&typeof(this._req[slot].r)!='undefined'&&this._req[slot].r.readyState!=4){this.oDbg.log("Slot "+slot+" is not ready");return;}
-if(!this.isPolling()&&this._pQueue.length==0&&this._req[(slot+1)%2]&&this._req[(slot+1)%2].r.readyState!=4){this.oDbg.log("all slots busy, standby ...",2);return;}
-if(!this.isPolling())
-this.oDbg.log("Found working slot at "+slot,2);this._req[slot]=this._setupRequest(true);this._req[slot].r.onreadystatechange=JSJaC.bind(function(){if(!this.connected())
-return;if(this._req[slot].r.readyState==4){this._setStatus('processing');this.oDbg.log("async recv: "+this._req[slot].r.responseText,4);this._handleResponse(this._req[slot]);if(this._pQueue.length){this._timeout=setTimeout(JSJaC.bind(this._process,this),100);}else{this.oDbg.log("scheduling next poll in "+this.getPollInterval()+" msec",4);this._timeout=setTimeout(JSJaC.bind(this._process,this),this.getPollInterval());}}},this);try{this._req[slot].r.onerror=JSJaC.bind(function(){if(!this.connected())
-return;this._errcnt++;this.oDbg.log('XmlHttpRequest error ('+this._errcnt+')',1);if(this._errcnt>JSJAC_ERR_COUNT){this._abort();return false;}
-this._setStatus('onerror_fallback');setTimeout(JSJaC.bind(this._resume,this),this.getPollInterval());return false;},this);}catch(e){}
-var reqstr=this._getRequestString();if(typeof(this._rid)!='undefined')
-this._req[slot].rid=this._rid;this.oDbg.log("sending: "+reqstr,4);this._req[slot].r.send(reqstr);};JSJaCConnection.prototype._registerPID=function(pID,cb,arg){if(!pID||!cb)
-return false;this._regIDs[pID]=new Object();this._regIDs[pID].cb=cb;if(arg)
-this._regIDs[pID].arg=arg;this.oDbg.log("registered "+pID,3);return true;};JSJaCConnection.prototype._sendEmpty=function JSJaCSendEmpty(){var slot=this._getFreeSlot();this._req[slot]=this._setupRequest(true);this._req[slot].r.onreadystatechange=JSJaC.bind(function(){if(this._req[slot].r.readyState==4){this.oDbg.log("async recv: "+this._req[slot].r.responseText,4);this._getStreamID(slot);}},this);if(typeof(this._req[slot].r.onerror)!='undefined'){this._req[slot].r.onerror=JSJaC.bind(function(e){this.oDbg.log('XmlHttpRequest error',1);return false;},this);}
-var reqstr=this._getRequestString();this.oDbg.log("sending: "+reqstr,4);this._req[slot].r.send(reqstr);};JSJaCConnection.prototype._sendRaw=function(xml,cb,arg){if(cb)
-this._sendRawCallbacks.push({fn:cb,arg:arg});this._pQueue.push(xml);this._process();return true;};JSJaCConnection.prototype._setStatus=function(status){if(!status||status=='')
-return;if(status!=this._status){this._status=status;this._handleEvent('onstatuschanged',status);this._handleEvent('status_changed',status);}};JSJaCConnection.prototype._unregisterPID=function(pID){if(!this._regIDs[pID])
-return false;this._regIDs[pID]=null;this.oDbg.log("unregistered "+pID,3);return true;};function JSJaCHttpBindingConnection(oArg){this.base=JSJaCConnection;this.base(oArg);this._hold=JSJACHBC_MAX_HOLD;this._inactivity=0;this._last_requests=new Object();this._last_rid=0;this._min_polling=0;this._pause=0;this._wait=JSJACHBC_MAX_WAIT;}
-JSJaCHttpBindingConnection.prototype=new JSJaCConnection();JSJaCHttpBindingConnection.prototype.inherit=function(oArg){this.domain=oArg.domain||'localhost';this.username=oArg.username;this.resource=oArg.resource;this._sid=oArg.sid;this._rid=oArg.rid;this._min_polling=oArg.polling;this._inactivity=oArg.inactivity;this._setHold(oArg.requests-1);this.setPollInterval(this._timerval);if(oArg.wait)
-this._wait=oArg.wait;this._connected=true;this._handleEvent('onconnect');this._interval=setInterval(JSJaC.bind(this._checkQueue,this),JSJAC_CHECKQUEUEINTERVAL);this._inQto=setInterval(JSJaC.bind(this._checkInQ,this),JSJAC_CHECKINQUEUEINTERVAL);this._timeout=setTimeout(JSJaC.bind(this._process,this),this.getPollInterval());};JSJaCHttpBindingConnection.prototype.setPollInterval=function(timerval){if(timerval&&!isNaN(timerval)){if(!this.isPolling())
-this._timerval=100;else if(this._min_polling&&timerval<this._min_polling*1000)
-this._timerval=this._min_polling*1000;else if(this._inactivity&&timerval>this._inactivity*1000)
-this._timerval=this._inactivity*1000;else
-this._timerval=timerval;}
-return this._timerval;};JSJaCHttpBindingConnection.prototype.isPolling=function(){return(this._hold==0)};JSJaCHttpBindingConnection.prototype._getFreeSlot=function(){for(var i=0;i<this._hold+1;i++)
-if(typeof(this._req[i])=='undefined'||typeof(this._req[i].r)=='undefined'||this._req[i].r.readyState==4)
-return i;return-1;};JSJaCHttpBindingConnection.prototype._getHold=function(){return this._hold;};JSJaCHttpBindingConnection.prototype._getRequestString=function(raw,last){raw=raw||'';var reqstr='';if(this._rid<=this._last_rid&&typeof(this._last_requests[this._rid])!='undefined')
-reqstr=this._last_requests[this._rid].xml;else{var xml='';while(this._pQueue.length){var curNode=this._pQueue[0];xml+=curNode;this._pQueue=this._pQueue.slice(1,this._pQueue.length);}
-reqstr="<body rid='"+this._rid+"' sid='"+this._sid+"' xmlns='http://jabber.org/protocol/httpbind' ";if(JSJAC_HAVEKEYS){reqstr+="key='"+this._keys.getKey()+"' ";if(this._keys.lastKey()){this._keys=new JSJaCKeys(hex_sha1,this.oDbg);reqstr+="newkey='"+this._keys.getKey()+"' ";}}
-if(last)
-reqstr+="type='terminate'";else if(this._reinit){if(JSJACHBC_USE_BOSH_VER)
-reqstr+="xmpp:restart='true' xmlns:xmpp='urn:xmpp:xbosh'";this._reinit=false;}
-if(xml!=''||raw!=''){reqstr+=">"+raw+xml+"</body>";}else{reqstr+="/>";}
-this._last_requests[this._rid]=new Object();this._last_requests[this._rid].xml=reqstr;this._last_rid=this._rid;for(var i in this._last_requests)
-if(this._last_requests.hasOwnProperty(i)&&i<this._rid-this._hold)
-delete(this._last_requests[i]);}
-return reqstr;};JSJaCHttpBindingConnection.prototype._getInitialRequestString=function(){var reqstr="<body content='text/xml; charset=utf-8' hold='"+this._hold+"' xmlns='http://jabber.org/protocol/httpbind' to='"+this.authhost+"' wait='"+this._wait+"' rid='"+this._rid+"'";if(this.host||this.port)
-reqstr+=" route='xmpp:"+this.host+":"+this.port+"'";if(this.secure)
-reqstr+=" secure='"+this.secure+"'";if(JSJAC_HAVEKEYS){this._keys=new JSJaCKeys(hex_sha1,this.oDbg);key=this._keys.getKey();reqstr+=" newkey='"+key+"'";}
-if(this._xmllang)
-reqstr+=" xml:lang='"+this._xmllang+"'";if(JSJACHBC_USE_BOSH_VER){reqstr+=" ver='"+JSJACHBC_BOSH_VERSION+"'";reqstr+=" xmlns:xmpp='urn:xmpp:xbosh'";if(this.authtype=='sasl'||this.authtype=='saslanon')
-reqstr+=" xmpp:version='1.0'";}
-reqstr+="/>";return reqstr;};JSJaCHttpBindingConnection.prototype._getStreamID=function(slot){this.oDbg.log(this._req[slot].r.responseText,4);if(!this._req[slot].r.responseXML||!this._req[slot].r.responseXML.documentElement){this._handleEvent('onerror',JSJaCError('503','cancel','service-unavailable'));return;}
-var body=this._req[slot].r.responseXML.documentElement;if(body.getAttribute('authid')){this.streamid=body.getAttribute('authid');this.oDbg.log("got streamid: "+this.streamid,2);}else{this._timeout=setTimeout(JSJaC.bind(this._sendEmpty,this),this.getPollInterval());return;}
-this._timeout=setTimeout(JSJaC.bind(this._process,this),this.getPollInterval());if(!this._parseStreamFeatures(body))
-return;if(this.register)
-this._doInBandReg();else
-this._doAuth();};JSJaCHttpBindingConnection.prototype._getSuspendVars=function(){return('host,port,secure,_rid,_last_rid,_wait,_min_polling,_inactivity,_hold,_last_requests,_pause').split(',');};JSJaCHttpBindingConnection.prototype._handleInitialResponse=function(slot){try{this.oDbg.log(this._req[slot].r.getAllResponseHeaders(),4);this.oDbg.log(this._req[slot].r.responseText,4);}catch(ex){this.oDbg.log("No response",4);}
-if(this._req[slot].r.status!=200||!this._req[slot].r.responseXML){this.oDbg.log("initial response broken (status: "+this._req[slot].r.status+")",1);this._handleEvent('onerror',JSJaCError('503','cancel','service-unavailable'));return;}
-var body=this._req[slot].r.responseXML.documentElement;if(!body||body.tagName!='body'||body.namespaceURI!='http://jabber.org/protocol/httpbind'){this.oDbg.log("no body element or incorrect body in initial response",1);this._handleEvent("onerror",JSJaCError("500","wait","internal-service-error"));return;}
-if(body.getAttribute("type")=="terminate"){this.oDbg.log("invalid response:\n"+this._req[slot].r.responseText,1);clearTimeout(this._timeout);this._connected=false;this.oDbg.log("Disconnected.",1);this._handleEvent('ondisconnect');this._handleEvent('onerror',JSJaCError('503','cancel','service-unavailable'));return;}
-this._sid=body.getAttribute('sid');this.oDbg.log("got sid: "+this._sid,2);if(body.getAttribute('polling'))
-this._min_polling=body.getAttribute('polling');if(body.getAttribute('inactivity'))
-this._inactivity=body.getAttribute('inactivity');if(body.getAttribute('requests'))
-this._setHold(body.getAttribute('requests')-1);this.oDbg.log("set hold to "+this._getHold(),2);if(body.getAttribute('ver'))
-this._bosh_version=body.getAttribute('ver');if(body.getAttribute('maxpause'))
-this._pause=Number.max(body.getAttribute('maxpause'),JSJACHBC_MAXPAUSE);this.setPollInterval(this._timerval);this._connected=true;this._inQto=setInterval(JSJaC.bind(this._checkInQ,this),JSJAC_CHECKINQUEUEINTERVAL);this._interval=setInterval(JSJaC.bind(this._checkQueue,this),JSJAC_CHECKQUEUEINTERVAL);this._getStreamID(slot);};JSJaCHttpBindingConnection.prototype._parseResponse=function(req){if(!this.connected()||!req)
-return null;var r=req.r;try{if(r.status==404||r.status==403){this._abort();return null;}
-if(r.status!=200||!r.responseXML){this._errcnt++;var errmsg="invalid response ("+r.status+"):\n"+r.getAllResponseHeaders()+"\n"+r.responseText;if(!r.responseXML)
-errmsg+="\nResponse failed to parse!";this.oDbg.log(errmsg,1);if(this._errcnt>JSJAC_ERR_COUNT){this._abort();return null;}
-this.oDbg.log("repeating ("+this._errcnt+")",1);this._setStatus('proto_error_fallback');setTimeout(JSJaC.bind(this._resume,this),this.getPollInterval());return null;}}catch(e){this.oDbg.log("XMLHttpRequest error: status not available",1);this._errcnt++;if(this._errcnt>JSJAC_ERR_COUNT){this._abort();}else{this.oDbg.log("repeating ("+this._errcnt+")",1);this._setStatus('proto_error_fallback');setTimeout(JSJaC.bind(this._resume,this),this.getPollInterval());}
-return null;}
-var body=r.responseXML.documentElement;if(!body||body.tagName!='body'||body.namespaceURI!='http://jabber.org/protocol/httpbind'){this.oDbg.log("invalid response:\n"+r.responseText,1);clearTimeout(this._timeout);clearInterval(this._interval);clearInterval(this._inQto);this._connected=false;this.oDbg.log("Disconnected.",1);this._handleEvent('ondisconnect');this._setStatus('internal_server_error');this._handleEvent('onerror',JSJaCError('500','wait','internal-server-error'));return null;}
-if(typeof(req.rid)!='undefined'&&this._last_requests[req.rid]){if(this._last_requests[req.rid].handled){this.oDbg.log("already handled "+req.rid,2);return null;}else
-this._last_requests[req.rid].handled=true;}
-if(body.getAttribute("type")=="terminate"){this.oDbg.log("session terminated:\n"+r.responseText,1);clearTimeout(this._timeout);clearInterval(this._interval);clearInterval(this._inQto);if(body.getAttribute("condition")=="remote-stream-error")
-if(body.getElementsByTagName("conflict").length>0)
-this._setStatus("session-terminate-conflict");this._handleEvent('onerror',JSJaCError('503','cancel',body.getAttribute('condition')));this._connected=false;this.oDbg.log("Disconnected.",1);this._handleEvent('ondisconnect');return null;}
-this._errcnt=0;return r.responseXML.documentElement;};JSJaCHttpBindingConnection.prototype._reInitStream=function(to,cb,arg){this._reinit=true;cb.call(this,arg);};JSJaCHttpBindingConnection.prototype._resume=function(){if(this._pause==0&&this._rid>=this._last_rid)
-this._rid=this._last_rid-1;this._process();};JSJaCHttpBindingConnection.prototype._setHold=function(hold){if(!hold||isNaN(hold)||hold<0)
-hold=0;else if(hold>JSJACHBC_MAX_HOLD)
-hold=JSJACHBC_MAX_HOLD;this._hold=hold;return this._hold;};JSJaCHttpBindingConnection.prototype._setupRequest=function(async){var req=new Object();var r=XmlHttp.create();try{r.open("POST",this._httpbase,async);r.setRequestHeader('Content-Type','text/xml; charset=utf-8');}catch(e){this.oDbg.log(e,1);}
-req.r=r;this._rid++;req.rid=this._rid;return req;};JSJaCHttpBindingConnection.prototype._suspend=function(){if(this._pause==0)
-return;var slot=this._getFreeSlot();this._req[slot]=this._setupRequest(false);var reqstr="<body pause='"+this._pause+"' xmlns='http://jabber.org/protocol/httpbind' sid='"+this._sid+"' rid='"+this._rid+"'";if(JSJAC_HAVEKEYS){reqstr+=" key='"+this._keys.getKey()+"'";if(this._keys.lastKey()){this._keys=new JSJaCKeys(hex_sha1,this.oDbg);reqstr+=" newkey='"+this._keys.getKey()+"'";}}
-reqstr+=">";while(this._pQueue.length){var curNode=this._pQueue[0];reqstr+=curNode;this._pQueue=this._pQueue.slice(1,this._pQueue.length);}
-reqstr+="</body>";this.oDbg.log("Disconnecting: "+reqstr,4);this._req[slot].r.send(reqstr);};function JSJaCHttpPollingConnection(oArg){this.base=JSJaCConnection;this.base(oArg);JSJACPACKET_USE_XMLNS=false;}
-JSJaCHttpPollingConnection.prototype=new JSJaCConnection();JSJaCHttpPollingConnection.prototype.isPolling=function(){return true;};JSJaCHttpPollingConnection.prototype._getFreeSlot=function(){if(typeof(this._req[0])=='undefined'||typeof(this._req[0].r)=='undefined'||this._req[0].r.readyState==4)
-return 0;else
-return-1;};JSJaCHttpPollingConnection.prototype._getInitialRequestString=function(){var reqstr="0";if(JSJAC_HAVEKEYS){this._keys=new JSJaCKeys(b64_sha1,this.oDbg);key=this._keys.getKey();reqstr+=";"+key;}
-var streamto=this.domain;if(this.authhost)
-streamto=this.authhost;reqstr+=",<stream:stream to='"+streamto+"' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'";if(this.authtype=='sasl'||this.authtype=='saslanon')
-reqstr+=" version='1.0'";reqstr+=">";return reqstr;};JSJaCHttpPollingConnection.prototype._getRequestString=function(raw,last){var reqstr=this._sid;if(JSJAC_HAVEKEYS){reqstr+=";"+this._keys.getKey();if(this._keys.lastKey()){this._keys=new JSJaCKeys(b64_sha1,this.oDbg);reqstr+=';'+this._keys.getKey();}}
-reqstr+=',';if(raw)
-reqstr+=raw;while(this._pQueue.length){reqstr+=this._pQueue[0];this._pQueue=this._pQueue.slice(1,this._pQueue.length);}
-if(last)
-reqstr+='</stream:stream>';return reqstr;};JSJaCHttpPollingConnection.prototype._getStreamID=function(){if(this._req[0].r.responseText==''){this.oDbg.log("waiting for stream id",2);this._timeout=setTimeout(JSJaC.bind(this._sendEmpty,this),1000);return;}
-this.oDbg.log(this._req[0].r.responseText,4);if(this._req[0].r.responseText.match(/id=[\'\"]([^\'\"]+)[\'\"]/))
-this.streamid=RegExp.$1;this.oDbg.log("got streamid: "+this.streamid,2);var doc;try{var response=this._req[0].r.responseText;if(!response.match(/<\/stream:stream>\s*$/))
-response+='</stream:stream>';doc=XmlDocument.create("doc");doc.loadXML(response);if(!this._parseStreamFeatures(doc))
-return;}catch(e){this.oDbg.log("loadXML: "+e.toString(),1);}
-this._connected=true;if(this.register)
-this._doInBandReg();else
-this._doAuth();this._process(this._timerval);};JSJaCHttpPollingConnection.prototype._getSuspendVars=function(){return new Array();};JSJaCHttpPollingConnection.prototype._handleInitialResponse=function(){this.oDbg.log(this._req[0].r.getAllResponseHeaders(),4);var aPList=this._req[0].r.getResponseHeader('Set-Cookie');aPList=aPList.split(";");for(var i=0;i<aPList.length;i++){aArg=aPList[i].split("=");if(aArg[0]=='ID')
-this._sid=aArg[1];}
-this.oDbg.log("got sid: "+this._sid,2);this._connected=true;this._interval=setInterval(JSJaC.bind(this._checkQueue,this),JSJAC_CHECKQUEUEINTERVAL);this._inQto=setInterval(JSJaC.bind(this._checkInQ,this),JSJAC_CHECKINQUEUEINTERVAL);this._getStreamID();};JSJaCHttpPollingConnection.prototype._parseResponse=function(r){var req=r.r;if(!this.connected())
-return null;if(req.status!=200){this.oDbg.log("invalid response ("+req.status+"):"+req.responseText+"\n"+req.getAllResponseHeaders(),1);this._setStatus('internal_server_error');clearTimeout(this._timeout);clearInterval(this._interval);clearInterval(this._inQto);this._connected=false;this.oDbg.log("Disconnected.",1);this._handleEvent('ondisconnect');this._handleEvent('onerror',JSJaCError('503','cancel','service-unavailable'));return null;}
-this.oDbg.log(req.getAllResponseHeaders(),4);var sid,aPList=req.getResponseHeader('Set-Cookie');if(aPList==null)
-sid="-1:0";else{aPList=aPList.split(";");var sid;for(var i=0;i<aPList.length;i++){var aArg=aPList[i].split("=");if(aArg[0]=='ID')
-sid=aArg[1];}}
-if(typeof(sid)!='undefined'&&sid.indexOf(':0')!=-1){switch(sid.substring(0,sid.indexOf(':0'))){case'0':this.oDbg.log("invalid response:"+req.responseText,1);break;case'-1':this.oDbg.log("Internal Server Error",1);break;case'-2':this.oDbg.log("Bad Request",1);break;case'-3':this.oDbg.log("Key Sequence Error",1);break;}
-this._setStatus('internal_server_error');clearTimeout(this._timeout);clearInterval(this._interval);clearInterval(this._inQto);this._handleEvent('onerror',JSJaCError('500','wait','internal-server-error'));this._connected=false;this.oDbg.log("Disconnected.",1);this._handleEvent('ondisconnect');return null;}
-if(!req.responseText||req.responseText=='')
-return null;try{var response=req.responseText.replace(/\<\?xml.+\?\>/,"");if(response.match(/<stream:stream/))
-response+="</stream:stream>";var doc=JSJaCHttpPollingConnection._parseTree("<body>"+response+"</body>");if(!doc||doc.tagName=='parsererror'){this.oDbg.log("parsererror",1);doc=JSJaCHttpPollingConnection._parseTree("<stream:stream xmlns:stream='http://etherx.jabber.org/streams'>"+req.responseText);if(doc&&doc.tagName!='parsererror'){this.oDbg.log("stream closed",1);if(doc.getElementsByTagName('conflict').length>0)
-this._setStatus("session-terminate-conflict");clearTimeout(this._timeout);clearInterval(this._interval);clearInterval(this._inQto);this._handleEvent('onerror',JSJaCError('503','cancel','session-terminate'));this._connected=false;this.oDbg.log("Disconnected.",1);this._handleEvent('ondisconnect');}else
-this.oDbg.log("parsererror:"+doc,1);return doc;}
-return doc;}catch(e){this.oDbg.log("parse error:"+e.message,1);}
-return null;;};JSJaCHttpPollingConnection.prototype._reInitStream=function(to,cb,arg){this._sendRaw("<stream:stream xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' to='"+to+"' version='1.0'>",cb,arg);};JSJaCHttpPollingConnection.prototype._resume=function(){this._process(this._timerval);};JSJaCHttpPollingConnection.prototype._setupRequest=function(async){var r=XmlHttp.create();try{r.open("POST",this._httpbase,async);if(r.overrideMimeType)
-r.overrideMimeType('text/plain; charset=utf-8');r.setRequestHeader('Content-Type','application/x-www-form-urlencoded');}catch(e){this.oDbg.log(e,1);}
-var req=new Object();req.r=r;return req;};JSJaCHttpPollingConnection.prototype._suspend=function(){};JSJaCHttpPollingConnection._parseTree=function(s){try{var r=XmlDocument.create("body","foo");if(typeof(r.loadXML)!='undefined'){r.loadXML(s);return r.documentElement;}else if(window.DOMParser)
-return(new DOMParser()).parseFromString(s,"text/xml").documentElement;}catch(e){}
-return null;};var JSJaC={Version:'$Rev: 456 $',require:function(libraryName){document.write('<script type="text/javascript" src="'+libraryName+'"></script>');},load:function(){var includes=['xmlextras','jsextras','crypt','JSJaCConfig','JSJaCConstants','JSJaCCookie','JSJaCJSON','JSJaCJID','JSJaCBuilder','JSJaCPacket','JSJaCError','JSJaCKeys','JSJaCConnection','JSJaCHttpPollingConnection','JSJaCHttpBindingConnection','JSJaCConsoleLogger'];var scripts=document.getElementsByTagName("script");var path='./';for(var i=0;i<scripts.length;i++){if(scripts.item(i).src&&scripts.item(i).src.match(/JSJaC\.js$/)){path=scripts.item(i).src.replace(/JSJaC.js$/,'');break;}}
-for(var i=0;i<includes.length;i++)
-this.require(path+includes[i]+'.js');},bind:function(fn,obj,arg){return function(){if(arg)
-fn.apply(obj,arg);else
-fn.apply(obj);};}};if(typeof JSJaCConnection=='undefined')
-JSJaC.load();
\ No newline at end of file
diff --git a/jsjac.packed.js b/jsjac.packed.js
deleted file mode 100644
index 6c49d3c..0000000
--- a/jsjac.packed.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/* JSJaC - The JavaScript Jabber Client Library
- * Copyright (C) 2004-2008 Stefan Strigler
- *
- * JSJaC is licensed under the terms of the Mozilla Public License
- * version 1.1 or, at your option, under the terms of the GNU General
- * Public License version 2 or subsequent, or the terms of the GNU Lesser
- * General Public License version 2.1 or subsequent. 
- *
- * Please visit http://zeank.in-berlin.de/jsjac/ for details about JSJaC.
- */
-
-var JSJAC_HAVEKEYS = true;  // whether to use keys
-var JSJAC_NKEYS    = 16;    // number of keys to generate
-var JSJAC_INACTIVITY = 300; // qnd hack to make suspend/resume work more smoothly with polling
-var JSJAC_ERR_COUNT = 10;   // number of retries in case of connection errors
-
-var JSJAC_ALLOW_PLAIN = true; // whether to allow plaintext logins
-
-var JSJAC_CHECKQUEUEINTERVAL = 1; // msecs to poll send queue
-var JSJAC_CHECKINQUEUEINTERVAL = 1; // msecs to poll incoming queue
-
-// Options specific to HTTP Binding (BOSH)
-var JSJACHBC_BOSH_VERSION  = "1.6";
-var JSJACHBC_USE_BOSH_VER  = true;
-
-var JSJACHBC_MAX_HOLD = 1;
-var JSJACHBC_MAX_WAIT = 300;
-
-var JSJACHBC_MAXPAUSE = 120;
-
-/*** END CONFIG ***/
-
-eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('37.D.9N=C(){p 1a=h.2K(/&/g,"&bp;");1a=1a.2K(/</g,"&dc;");1a=1a.2K(/>/g,">");1a=1a.2K(/\\"/g,"&cw;");1a=1a.2K(/\\n/g,"<br />");z 1a};3J.aO=C(1X){p 3f=I 3J(3J.cE(1X.36(0,4),1X.36(5,2)-1,1X.36(8,2),1X.36(11,2),1X.36(14,2),1X.36(17,2)));k(1X.36(1X.F-6,1)!=\'Z\'){p 5c=I 3J();5c.7r(0);5c.cF(1X.36(1X.F-5,2));5c.cG(1X.36(1X.F-2,2));k(1X.36(1X.F-6,1)==\'+\')3f.7r(3f.50()-5c.50());J k(1X.36(1X.F-6,1)==\'-\')3f.7r(3f.50()+5c.50())}z 3f};3J.cD=C(1X){z 3J.aO(1X).cN()};3J.D.ch=C(){p 4U=C(i){k(i<10)z"0"+i;z i};p 4G=h.cg()+"-";4G+=4U(h.df()+1)+"-";4G+=4U(h.dq())+"T";4G+=4U(h.dw())+":";4G+=4U(h.dx())+":";4G+=4U(h.dv())+"Z";z 4G};ax.ar=C(A,B){z(A>B)?A:B};p 85=0;p 7U="=";p 1x=8;C 51(s){z 8S(4z(4k(s),s.F*1x))}C 8k(s){z 6g(4z(4k(s),s.F*1x))}C ds(s){z 8z(4z(4k(s),s.F*1x))}C bk(1A,1O){z 8S(6S(1A,1O))}C bg(1A,1O){z 6g(6S(1A,1O))}C bQ(1A,1O){z 8z(6S(1A,1O))}C bt(){z 51("af")=="bX"}C 4z(x,3i){x[3i>>5]|=aJ<<(24-3i%32);x[((3i+64>>9)<<4)+15]=3i;p w=1l(80);p a=b6;p b=-b3;p c=-bc;p d=ba;p e=-bY;L(p i=0;i<x.F;i+=16){p 6Y=a;p 6Z=b;p 6W=c;p 6U=d;p ab=e;L(p j=0;j<80;j++){k(j<16)w[j]=x[i+j];J w[j]=6j(w[j-3]^w[j-8]^w[j-14]^w[j-16],1);p t=26(26(6j(a,5),aa(j,b,c,d)),26(26(e,w[j]),a7(j)));e=d;d=c;c=6j(b,30);b=a;a=t}a=26(a,6Y);b=26(b,6Z);c=26(c,6W);d=26(d,6U);e=26(e,ab)}z 1l(a,b,c,d,e)}C aa(t,b,c,d){k(t<20)z(b&c)|((~b)&d);k(t<40)z b^c^d;k(t<60)z(b&c)|(b&d)|(c&d);z b^c^d}C a7(t){z(t<20)?c5:(t<40)?c6:(t<60)?-by:-bZ}C 6S(1A,1O){p 2P=4k(1A);k(2P.F>16)2P=4z(2P,1A.F*1x);p 53=1l(16),5g=1l(16);L(p i=0;i<16;i++){53[i]=2P[i]^aS;5g[i]=2P[i]^aY}p 6L=4z(53.3R(4k(1O)),6o+1O.F*1x);z 4z(5g.3R(6L),6o+bS)}C 6j(5m,5i){z(5m<<5i)|(5m>>>(32-5i))}C 4k(1a){p 2N=1l();p 41=(1<<1x)-1;L(p i=0;i<1a.F*1x;i+=1x)2N[i>>5]|=(1a.4T(i/1x)&41)<<(32-1x-i%32);z 2N}C 8z(2N){p 1a="";p 41=(1<<1x)-1;L(p i=0;i<2N.F*32;i+=1x)1a+=37.3T((2N[i>>5]>>>(32-1x-i%32))&41);z 1a}C 8S(1P){p 59=85?"9T":"9U";p 1a="";L(p i=0;i<1P.F*4;i++){1a+=59.2i((1P[i>>2]>>((3-i%4)*8+4))&71)+59.2i((1P[i>>2]>>((3-i%4)*8))&71)}z 1a}C 6g(1P){p 4F="7D+/";p 1a="";L(p i=0;i<1P.F*4;i+=3){p 78=(((1P[i>>2]>>8*(3-i%4))&52)<<16)|(((1P[i+1>>2]>>8*(3-(i+1)%4))&52)<<8)|((1P[i+2>>2]>>8*(3-(i+2)%4))&52);L(p j=0;j<4;j++){k(i*8+j*6>1P.F*32)1a+=7U;J 1a+=4F.2i((78>>6*(3-j))&9Y)}}z 1a.2K(/bT\\=(\\=*?)$/,\'$1\')}C 47(s){z 8b(4J(5j(s),s.F*1x))}C bW(s){z 8r(4J(5j(s),s.F*1x))}C 8B(s){z 8K(4J(5j(s),s.F*1x))}C bi(1A,1O){z 8b(6x(1A,1O))}C bm(1A,1O){z 8r(6x(1A,1O))}C bq(1A,1O){z 8K(6x(1A,1O))}C bf(){z 47("af")=="bh"}C 4J(x,3i){x[3i>>5]|=aJ<<((3i)%32);x[(((3i+64)>>>9)<<4)+14]=3i;p a=b6;p b=-b3;p c=-bc;p d=ba;L(p i=0;i<x.F;i+=16){p 6Y=a;p 6Z=b;p 6W=c;p 6U=d;a=2g(a,b,c,d,x[i+0],7,-bo);d=2g(d,a,b,c,x[i+1],12,-bn);c=2g(c,d,a,b,x[i+2],17,bR);b=2g(b,c,d,a,x[i+3],22,-d7);a=2g(a,b,c,d,x[i+4],7,-d5);d=2g(d,a,b,c,x[i+5],12,d4);c=2g(c,d,a,b,x[i+6],17,-d8);b=2g(b,c,d,a,x[i+7],22,-d9);a=2g(a,b,c,d,x[i+8],7,da);d=2g(d,a,b,c,x[i+9],12,-d3);c=2g(c,d,a,b,x[i+10],17,-d2);b=2g(b,c,d,a,x[i+11],22,-cW);a=2g(a,b,c,d,x[i+12],7,cV);d=2g(d,a,b,c,x[i+13],12,-cU);c=2g(c,d,a,b,x[i+14],17,-cT);b=2g(b,c,d,a,x[i+15],22,c9);a=2b(a,b,c,d,x[i+1],5,-cY);d=2b(d,a,b,c,x[i+6],9,-d0);c=2b(c,d,a,b,x[i+11],14,cZ);b=2b(b,c,d,a,x[i+0],20,-dd);a=2b(a,b,c,d,x[i+5],5,-de);d=2b(d,a,b,c,x[i+10],9,dt);c=2b(c,d,a,b,x[i+15],14,-dr);b=2b(b,c,d,a,x[i+4],20,-du);a=2b(a,b,c,d,x[i+9],5,dp);d=2b(d,a,b,c,x[i+14],9,-di);c=2b(c,d,a,b,x[i+3],14,-dh);b=2b(b,c,d,a,x[i+8],20,dg);a=2b(a,b,c,d,x[i+13],5,-dj);d=2b(d,a,b,c,x[i+2],9,-dk);c=2b(c,d,a,b,x[i+7],14,do);b=2b(b,c,d,a,x[i+12],20,-dn);a=2c(a,b,c,d,x[i+5],4,-dm);d=2c(d,a,b,c,x[i+8],11,-cS);c=2c(c,d,a,b,x[i+11],16,cR);b=2c(b,c,d,a,x[i+14],23,-cq);a=2c(a,b,c,d,x[i+1],4,-cp);d=2c(d,a,b,c,x[i+4],11,co);c=2c(c,d,a,b,x[i+7],16,-cn);b=2c(b,c,d,a,x[i+10],23,-cr);a=2c(a,b,c,d,x[i+13],4,cs);d=2c(d,a,b,c,x[i+0],11,-cu);c=2c(c,d,a,b,x[i+3],16,-ct);b=2c(b,c,d,a,x[i+6],23,cm);a=2c(a,b,c,d,x[i+9],4,-cl);d=2c(d,a,b,c,x[i+12],11,-cf);c=2c(c,d,a,b,x[i+15],16,ck);b=2c(b,c,d,a,x[i+2],23,-cj);a=2d(a,b,c,d,x[i+0],6,-ci);d=2d(d,a,b,c,x[i+7],10,cx);c=2d(c,d,a,b,x[i+14],15,-cL);b=2d(b,c,d,a,x[i+5],21,-cK);a=2d(a,b,c,d,x[i+12],6,cJ);d=2d(d,a,b,c,x[i+3],10,-cM);c=2d(c,d,a,b,x[i+10],15,-cQ);b=2d(b,c,d,a,x[i+1],21,-cP);a=2d(a,b,c,d,x[i+8],6,cO);d=2d(d,a,b,c,x[i+15],10,-cI);c=2d(c,d,a,b,x[i+6],15,-cH);b=2d(b,c,d,a,x[i+13],21,cB);a=2d(a,b,c,d,x[i+4],6,-cA);d=2d(d,a,b,c,x[i+11],10,-cz);c=2d(c,d,a,b,x[i+2],15,cy);b=2d(b,c,d,a,x[i+9],21,-cC);a=26(a,6Y);b=26(b,6Z);c=26(c,6W);d=26(d,6U)}z 1l(a,b,c,d)}C 5u(q,a,b,x,s,t){z 26(b9(26(26(a,q),26(x,t)),s),b)}C 2g(a,b,c,d,x,s,t){z 5u((b&c)|((~b)&d),a,b,x,s,t)}C 2b(a,b,c,d,x,s,t){z 5u((b&d)|(c&(~d)),a,b,x,s,t)}C 2c(a,b,c,d,x,s,t){z 5u(b^c^d,a,b,x,s,t)}C 2d(a,b,c,d,x,s,t){z 5u(c^(b|(~d)),a,b,x,s,t)}C 6x(1A,1O){p 2P=5j(1A);k(2P.F>16)2P=4J(2P,1A.F*1x);p 53=1l(16),5g=1l(16);L(p i=0;i<16;i++){53[i]=2P[i]^aS;5g[i]=2P[i]^aY}p 6L=4J(53.3R(5j(1O)),6o+1O.F*1x);z 4J(5g.3R(6L),6o+4H)}C 26(x,y){p 8u=(x&8v)+(y&8v);p aW=(x>>16)+(y>>16)+(8u>>16);z(aW<<16)|(8u&8v)}C b9(5m,5i){z(5m<<5i)|(5m>>>(32-5i))}C 5j(1a){p 2N=1l();p 41=(1<<1x)-1;L(p i=0;i<1a.F*1x;i+=1x)2N[i>>5]|=(1a.4T(i/1x)&41)<<(i%32);z 2N}C 8K(2N){p 1a="";p 41=(1<<1x)-1;L(p i=0;i<2N.F*32;i+=1x)1a+=37.3T((2N[i>>5]>>>(i%32))&41);z 1a}C 8b(1P){p 59=85?"9T":"9U";p 1a="";L(p i=0;i<1P.F*4;i++){1a+=59.2i((1P[i>>2]>>((i%4)*8+4))&71)+59.2i((1P[i>>2]>>((i%4)*8))&71)}z 1a}C 8r(1P){p 4F="7D+/";p 1a="";L(p i=0;i<1P.F*4;i+=3){p 78=(((1P[i>>2]>>8*(i%4))&52)<<16)|(((1P[i+1>>2]>>8*((i+1)%4))&52)<<8)|((1P[i+2>>2]>>8*((i+2)%4))&52);L(p j=0;j<4;j++){k(i*8+j*6>1P.F*32)1a+=7U;J 1a+=4F.2i((78>>6*(3-j))&9Y)}}z 1a}C 9G(t){t=t.2K(/\\r\\n/g,"\\n");p d=I 1l;p 7u=37.3T(cc);k(7u.4T(0)<0)L(p n=0;n<t.F;n++){p c=t.4T(n);k(c>0)d[d.F]=c;J{d[d.F]=(((9Z+c)>>6)|9M);d[d.F]=(((9Z+c)&63)|4H)}}J L(p n=0;n<t.F;n++){p c=t.4T(n);k(c<4H)d[d.F]=c;J k((c>cd)&&(c<ce)){d[d.F]=((c>>6)|9M);d[d.F]=((c&63)|4H)}J{d[d.F]=((c>>12)|9w);d[d.F]=(((c>>6)&63)|4H);d[d.F]=((c&63)|4H)}}z d}C 9I(d){p r=I 1l;p i=0;3L(i<d.F){k(d[i]<4H){r[r.F]=37.3T(d[i]);i++}J k((d[i]>cv)&&(d[i]<9w)){r[r.F]=37.3T(((d[i]&31)<<6)|(d[i+1]&63));i+=2}J{r[r.F]=37.3T(((d[i]&15)<<12)|((d[i+1]&63)<<6)|(d[i+2]&63));i+=3}}z r.5W("")}C 9v(){p 6h=\'7D+/\';5h=I 1l();44=I 1l();L(p i=0;i<6h.F;i++){5h[i]=6h.2i(i);44[6h.2i(i)]=i}}C 9F(d){p r=I 1l;p i=0;p dl=d.F;k((dl%3)==1){d[d.F]=0;d[d.F]=0}k((dl%3)==2)d[d.F]=0;3L(i<d.F){r[r.F]=5h[d[i]>>2];r[r.F]=5h[((d[i]&3)<<4)|(d[i+1]>>4)];r[r.F]=5h[((d[i+1]&15)<<2)|(d[i+2]>>6)];r[r.F]=5h[d[i+2]&63];i+=3}k((dl%3)==1)r[r.F-1]=r[r.F-2]="=";k((dl%3)==2)r[r.F-1]="=";p t=r.5W("");z t}C 9K(t){p d=I 1l;p i=0;t=t.2K(/\\n|\\r/g,"");t=t.2K(/=/g,"");3L(i<t.F){d[d.F]=(44[t.2i(i)]<<2)|(44[t.2i(i+1)]>>4);d[d.F]=(((44[t.2i(i+1)]&15)<<4)|(44[t.2i(i+2)]>>2));d[d.F]=(((44[t.2i(i+2)]&3)<<6)|(44[t.2i(i+3)]));i+=4}k(t.F%4==2)d=d.4w(0,d.F-2);k(t.F%4==3)d=d.4w(0,d.F-1);z d}k(Y(5C)==\'1E\'||Y(6p)==\'1E\')9v();k(Y(5C)==\'1E\'){5C=C(s){z 9I(9K(s))}}k(Y(6p)==\'1E\'){6p=C(s){z 9F(9G(s))}}C 5p(8N){p 4F="7D";p 5p=\'\';L(p i=0;i<8N;i++){5p+=4F.2i(5q.aV(5q.8T(I 3J().50())*(4F.F-1)))}z 5p}C 4W(){}4W.2w=C(4p){p m={\'\\b\':\'\\\\b\',\'\\t\':\'\\\\t\',\'\\n\':\'\\\\n\',\'\\f\':\'\\\\f\',\'\\r\':\'\\\\r\',\'"\':\'\\\\"\',\'\\\\\':\'\\\\\\\\\'},s={7l:C(x){p a=[\'[\'],b,f,i,l=x.F,v;L(i=0;i<l;i+=1){v=x[i];f=s[Y v];k(f){v=f(v);k(Y v==\'34\'){k(b){a[a.F]=\',\'}a[a.F]=v;b=1h}}}a[a.F]=\']\';z a.5W(\'\')},\'d1\':C(x){z 37(x)},\'1f\':C(x){z"1f"},9p:C(x){z cX(x)?37(x):\'1f\'},3N:C(x){k(x){k(x 8F 1l){z s.7l(x)}p a=[\'{\'],b,f,i,v;L(i 3p x){k(x.4e(i)){v=x[i];f=s[Y v];k(f){v=f(v);k(Y v==\'34\'){k(b){a[a.F]=\',\'}a.5s(s.34(i),\':\',v);b=1h}}}}a[a.F]=\'}\';z a.5W(\'\')}z\'1f\'},34:C(x){k(/["\\\\\\9V-\\9P]/.7u(x)){x=x.2K(/([\\9V-\\9P\\\\"])/g,C(a,b){p c=m[b];k(c){z c}c=b.4T();z\'\\\\db\'+5q.d6(c/16).2w(16)+(c%16).2w(16)})}z\'"\'+x+\'"\'}};5M(Y(4p)){2s\'3N\':z s.3N(4p);2s\'7l\':z s.7l(4p)}};4W.62=C(1a){1q{z!(/[^,:{}\\[\\]0-9.\\-+dz-u \\n\\r\\t]/.7u(1a.2K(/"(\\\\.|[^"\\\\])*"/g,\'\')))&&bs(\'(\'+1a+\')\')}1s(e){z X}};C 2X(){}2X.3D=C(){1q{k(3C.8I){p 1c=I 8I();k(1c.2B==1f){1c.2B=1;1c.9i("6N",C(){1c.2B=4;k(Y 1c.4n=="C")1c.4n()},X)}z 1c}k(3C.4Q){z I 4Q(2X.7B()+".2X")}}1s(ex){}4y I 5e("9e 9k 9l 1S 7N 2X 9t")};2X.7B=C(){k(2X.4Y)z 2X.4Y;p 3Z=["9j","9S","9Q","9O"];p o;L(p i=0;i<3Z.F;i++){1q{o=I 4Q(3Z[i]+".2X");z 2X.4Y=3Z[i]}1s(ex){}}4y I 5e("9y 1S 9z an 9u 9B 9J")};C 2F(){}2F.3D=C(W,Q){W=W||\'aw\';Q=Q||\'\';1q{p K;k(3W.7i&&3W.7i.7R){K=3W.7i.7R(Q,W,1f);k(K.2B==1f){K.2B=1;K.9i("6N",C(){K.2B=4;k(Y K.4n=="C")K.4n()},X)}}J k(3C.4Q){K=I 4Q(2F.7B()+".a1")}k(!K.1M||K.1M.5Y!=W||(K.1M.3j&&K.1M.3j!=Q)){1q{k(Q!=\'\')K.1H(K.4M(W)).2l(\'1d\',Q);J K.1H(K.4M(W))}1s(bj){K=3W.7i.7R(Q,W,1f);k(K.1M==1f)K.1H(K.4M(W));k(Q!=\'\'&&K.1M.1t(\'1d\')!=Q){K.1M.2l(\'1d\',Q)}}}z K}1s(ex){bl(ex.W+": "+ex.2J)}4y I 5e("9e 9k 9l 1S 7N 2F 9t")};2F.7B=C(){k(2F.4Y)z 2F.4Y;p 3Z=["9j","9S","9Q","9O"];p o;L(p i=0;i<3Z.F;i++){1q{o=I 4Q(3Z[i]+".a1");z 2F.4Y=3Z[i]}1s(ex){}}4y I 5e("9y 1S 9z an 9u 9B 9J")};k(Y(8Q)!=\'1E\'&&3C.6k){8Q.D.4j=C(s){p 8P=(I 6k()).a8(s,"48/U");3L(h.7w())h.c8(h.bU);L(p i=0;i<8P.3b.F;i++){h.1H(h.92(8P.3b[i],1h))}}}k(3C.4h&&3C.7A&&7A.D&&7A.D.6z){bV.D.6z("U",C(){z(I 4h()).5F(h)});8Q.D.6z("U",C(){z(I 4h()).5F(h)});7A.D.6z("U",C(){z(I 4h()).5F(h)})}p 33={4t:C(K,3y){p 29,Q=1G[4];k(1G[2])k(33.6r(1G[2])||(1G[2]8F 1l)){29=h.6y(K,3y,Q);33.8G(K,29,1G[2])}J{Q=1G[2][\'1d\']||Q;29=h.6y(K,3y,Q);L(4b 3p 1G[2]){k(1G[2].4e(4b)&&4b!=\'1d\')29.2l(4b,1G[2][4b])}}J 29=h.6y(K,3y,Q);k(1G[3])33.8G(K,29,1G[3],Q);z 29},6y:C(K,3y,Q){1q{k(Q)z K.7K(Q,3y)}1s(ex){}p el=K.4M(3y);k(Q)el.2l("1d",Q);z el},8X:C(K,48){z K.9L(48)},8G:C(K,29,4g,Q){k(Y 4g==\'3N\'){L(p i 3p 4g){k(4g.4e(i)){p e=4g[i];k(Y e==\'3N\'){k(e 8F 1l){p 1W=33.4t(K,e[0],e[1],e[2],Q);29.1H(1W)}J{29.1H(e)}}J{k(33.6r(e)){29.1H(33.8X(K,e))}}}}}J{k(33.6r(4g)){29.1H(33.8X(K,4g))}}},bP:C(3S){p 8q=[];L(76 3p 3S)k(3S.4e(76))8q.5s(76+\'="\'+3S[76].2w().9N()+\'"\');z 8q.5W(" ")},6r:C(7Y){z(Y 7Y==\'34\'||Y 7Y==\'9p\')}};p c7="1p://P.1r/27/9h#c4";p c3="1p://P.1r/27/9h#81";p c0="c1-bO";p bN="P:H:1y";p bA="P:H:1y:1g";p bB="P:H:4A";p bC="P:H:bz";p bu="P:H:bv";p bw="P:H:bx";p bD="P:H:bE";p bK="P:H:6w";p bL="P:H:bM";p bJ="P:H:5U";p bI="P:x:1O";p bF="P:H:1O";p bG="P:x:bH";p dy="P:x:eA";p gr="P:x:1j";p gq="P:x:gp";p gs="1p://P.1r/27/gu";p gw="1p://P.1r/27/6f";p gv="1p://P.1r/27/6f#go";p gn="1p://P.1r/27/6f#gi";p gh="1p://P.1r/27/6f#9m";p gg="1p://P.1r/27/6s";p gj="1p://P.1r/27/6s#1j";p gk="1p://P.1r/27/6s#9m";p gm="1p://P.1r/27/6s#1W-gl-81";p gx="1p://P.1r/27/gy";p gJ="1p://58.P.1r/4x";p gI="2e:2p:2q:U:Q:1B-a2";p gK="2e:2p:2q:U:Q:1B-4x";p gL="2e:2p:2q:U:Q:1B-gN";p gM="2e:2p:2q:U:Q:1B-3m";p gH="2e:2p:2q:U:Q:1B-3X";p gG="2e:2p:2q:U:Q:1B-1o";p gB="1p://P.1r/8o/H-1y";p gA="1p://P.1r/8o/H-4A";p gz="1p://P.1r/8o/a5";p gC="1p://P.1r/27/a5";C 1D(3A,1k,5A){k(3C==h)z I 1D(3A,1k,5A);h.3A=3A;h.1k=1k;h.5A=5A}p gD=1D("8l","5V","gF-5w");p gE=1D("gf","2t","67");p ge=1D("fR","2t","fQ-1S-fP");p fS=1D("aB","1y","9H");p fT=1D("9R","5V","fV");p fU=1D("54","2H","73-3V-1g");p fO=1D("7d","2t","1u-1S-74");p fN=1D("8l","5V","1e-fI");p fH=1D("fG","5V","1S-fJ");p fK=1D("fM","2t","1S-fL");p fW=1D("6I","1y","1S-6D");p fX=1D("g9","1y","g8-7X");p gP=1D("7d","2H","ga-4I");p gb=1D("9R","5V","gd");p gc=1D("9r","1y","b5-7X");p g6=1D("7d","2t","8A-3V-1S-74");p g5=1D("g0","2H","8A-3V-fZ");p fY=1D("54","2H","2z-g1");p g2=1D("3U","2t","4L-4I");p g4=1D("9r","1y","g3-7X");p gO=1D("8l","2H","h5-5w");C 9f(2L){h.2L=2L||4;h.hp=C(){};h.G=C(3H,2L){2L=2L||0;k(2L>h.2L)z;k(Y(4r)==\'1E\')z;1q{5M(2L){2s 0:4r.hh(3H);1T;2s 1:4r.1g(3H);1T;2s 2:4r.81(3H);1T;2s 4:4r.hg(3H);1T;88:4r.G(3H);1T}}1s(e){1q{4r.G(3H)}1s(e){}}};h.hc=C(2L){h.2L=2L;z h};h.hl=C(){z h.2L}}C 2h(W,2R,4N){k(3C==h)z I 2h(W,2R,4N);h.W=W;h.2R=2R;h.4N=4N;h.7g=C(){k(h.4N){p 3f=I 3J();3f.7r(3f.50()+(h.4N*5b));p 7o="; 7o="+3f.hk()}J p 7o="";3W.5d=h.7Z()+"="+h.6X()+7o+"; 6J=/"};h.5O=C(){p c=I 2h(h.7Z(),"",-1);c.7g()};h.7Z=C(){z h.W};h.ho=C(W){h.W=W;z h};h.6X=C(){z h.2R};h.hj=C(2R){h.2R=2R;z h}}2h.3u=C(W){p 7W=W+"=";p ca=3W.5d.3O(\';\');L(p i=0;i<ca.F;i++){p c=ca[i];3L(c.2i(0)==\' \')c=c.2Z(1,c.F);k(c.2v(7W)==0)z I 2h(W,c.2Z(7W.F,c.F))}4y I 9W("8M 1S 74")};2h.7T=C(W){z 2h.3u(W).6X()};2h.gX=C(W){2h.3u(W).5O()};C 9W(3H){h.2J=3H;h.W="gY"}C 2m(3A,1k,6i){p 4O=2F.3D("1g","hb");4O.1M.2l(\'3A\',3A);4O.1M.2l(\'1k\',1k);4O.1M.1H(4O.4M(6i)).2l(\'1d\',\'2e:2p:2q:U:Q:1B-a2\');z 4O.1M}p 7z=[\'"\',\' \',\'&\',\'\\\'\',\'/\',\':\',\'<\',\'>\',\'@\'];C 1Z(1e){h.7V=\'\';h.8V=\'\';h.98=\'\';k(Y(1e)==\'34\'){k(1e.2v(\'@\')!=-1){h.7I(1e.2Z(0,1e.2v(\'@\')));1e=1e.2Z(1e.2v(\'@\')+1)}k(1e.2v(\'/\')!=-1){h.7G(1e.2Z(1e.2v(\'/\')+1));1e=1e.2Z(0,1e.2v(\'/\'))}h.94(1e)}J{h.7I(1e.1W);h.94(1e.1w);h.7G(1e.2z)}}1Z.D.18=C(){z h.7V};1Z.D.9A=C(){z h.8V};1Z.D.7F=C(){z h.98};1Z.D.7I=C(1W){1Z.8t(1W);h.7V=1W||\'\';z h};1Z.D.94=C(1w){k(!1w||1w==\'\')4y I 6A("1w W ad");1Z.8t(1w);h.8V=1w;z h};1Z.D.7G=C(2z){h.98=2z||\'\';z h};1Z.D.2w=C(){p 1e=\'\';k(h.18()&&h.18()!=\'\')1e=h.18()+\'@\';1e+=h.9A();k(h.7F()&&h.7F()!="")1e+=\'/\'+h.7F();z 1e};1Z.D.8y=C(){z h.7G()};1Z.D.5x=C(){z I 1Z(h.2w())};1Z.D.gU=C(1e){k(Y 1e==\'34\')1e=(I 1Z(1e));1e.8y();z(h.5x().8y().2w()===1e.2w())};1Z.8t=C(7t){k(!7t||7t==\'\')z;L(p i=0;i<7z.F;i++){k(7t.2v(7z[i])!=-1){4y I 6A("9H gR 3p gS: "+7z[i])}}};C 6A(2J){h.2J=2J;h.W="6A"}C 3P(8H,E){p 9E=5q.8T();h.46=I 1l();h.46[0]=9E.2w();k(E)h.E=E;J{h.E={};h.E.G=C(){}}k(8H){L(p i=1;i<9D;i++){h.46[i]=8H(h.46[i-1]);E.G(i+": "+h.46[i],4)}}h.6C=9D-1;h.3I=C(){z h.46[h.6C--]};h.70=C(){z(h.6C==0)};h.8N=C(){z h.46.F};h.4C=C(){z(\'46,6C\').3O(\',\')}}p 6K=1h;C 1b(W){h.W=W;k(Y(6K)!=\'1E\'&&6K)h.K=2F.3D(W,\'P:8w\');J h.K=2F.3D(W,\'\')}1b.D.3Y=C(){z h.W};1b.D.2n=C(){z h.K};1b.D.18=C(){k(h.2n()&&h.2n().1M)z h.2n().1M;J z 1f};1b.D.6Q=C(1J){k(!1J||1J==\'\')h.18().5D(\'1J\');J k(Y(1J)==\'34\')h.18().2l(\'1J\',1J);J h.18().2l(\'1J\',1J.2w());z h};1b.D.9x=C(3g){k(!3g||3g==\'\')h.18().5D(\'3g\');J k(Y(3g)==\'34\')h.18().2l(\'3g\',3g);J h.18().2l(\'3g\',3g.2w());z h};1b.D.7e=C(2O){k(!2O||2O==\'\')h.18().5D(\'2O\');J h.18().2l(\'2O\',2O);z h};1b.D.5K=C(1k){k(!1k||1k==\'\')h.18().5D(\'1k\');J h.18().2l(\'1k\',1k);z h};1b.D.gZ=C(4s){k(!4s||4s==\'\')h.18().5D(\'U:7s\');J h.18().2l(\'U:7s\',4s);z h};1b.D.9C=C(){z h.18().1t(\'1J\')};1b.D.6P=C(){z h.18().1t(\'3g\')};1b.D.h0=C(){z I 1Z(h.9C())};1b.D.h8=C(){z I 1Z(h.6P())};1b.D.4S=C(){z h.18().1t(\'2O\')};1b.D.2o=C(){z h.18().1t(\'1k\')};1b.D.h9=C(){z h.18().1t(\'U:7s\')};1b.D.h2=C(){z h.18().3j};1b.D.2D=C(W,Q){k(!h.18()){z 1f}W=W||\'*\';Q=Q||\'*\';k(h.18().7E){z h.18().7E(Q,W).1u(0)}p 5z=h.18().43(W);k(Q!=\'*\'){L(p i=0;i<5z.F;i++){k(5z.1u(i).3j==Q){z 5z.1u(i)}}}J{z 5z.1u(0)}z 1f}1b.D.4a=C(W,Q){p 1W=h.2D(W,Q);p 9c=\'\';k(1W&&1W.7w()){L(p i=0;i<1W.3b.F;i++)k(1W.3b.1u(i).3Q)9c+=1W.3b.1u(i).3Q}z 9c};1b.D.5x=C(){z 1b.8f(h.18())};1b.D.h3=C(){z(h.2o()==\'1g\')};1b.D.h4=C(6n){p 5o=h.5x();5o.6Q(h.6P());5o.9x();5o.5K(\'1g\');5o.4o(\'1g\',{3A:6n.3A,1k:6n.1k},[[6n.5A]]);z 5o};1b.D.U=Y 4h!=\'1E\'?C(){p r=(I 4h()).5F(h.18());k(Y(r)==\'1E\')r=(I 4h()).5F(h.K);z r}:C(){z h.2n().U};1b.D.h1=C(4b){z h.18().1t(4b)};1b.D.9n=C(1C){L(p i=0;i<1C.3S.F;i++)k(1C.3S.1u(i).3a!=\'1d\')h.18().2l(1C.3S.1u(i).3a,1C.3S.1u(i).3Q);L(p i=0;i<1C.3b.F;i++)k(h.2n().92)h.18().1H(h.2n().92(1C.3b.1u(i),1h));J h.18().1H(1C.3b.1u(i).h6(1h))};1b.D.4D=C(3a,3Q){p 1C=h.2D(3a);p 7O=h.2n().9L(3Q);k(1C)1q{1C.h7(7O,1C.7y)}1s(e){}J{1q{1C=h.2n().7K(h.18().3j,3a)}1s(ex){1C=h.2n().4M(3a)}h.18().1H(1C);1C.1H(7O)}z 1C};1b.D.4t=C(3y){z 33.4t(h.2n(),3y,1G[1],1G[2])};1b.D.4o=C(29){k(Y 29==\'3N\'){z h.18().1H(29)}J{z h.18().1H(h.4t(29,1G[1],1G[2],1f,h.18().3j))}};C 3o(){h.3k=1b;h.3k(\'9o\')}3o.D=I 1b;3o.D.a0=C(1v){h.4D("1v",1v);z h};3o.D.9X=C(2Y){k(2Y==\'gT\'||2Y==\'gQ\'||2Y==\'gV\'||2Y==\'gW\')h.4D("2Y",2Y);z h};3o.D.9s=C(5N){h.4D("a3",5N);z h};3o.D.ha=C(2Y,1v,5N){k(2Y)h.9X(2Y);k(1v)h.a0(1v);k(5N)h.9s(5N);z h};3o.D.hn=C(){z h.4a(\'1v\')};3o.D.hm=C(){z h.4a(\'2Y\')};3o.D.he=C(){z h.4a(\'a3\')};C 2C(){h.3k=1b;h.3k(\'H\')}2C.D=I 1b;2C.D.5y=C(1J,1k,2O){k(1J)h.6Q(1J);k(1k)h.5K(1k);k(2O)h.7e(2O);z h};2C.D.hd=C(1d){p 2f;1q{2f=h.2n().7K(1d,\'2f\')}1s(e){2f=h.2n().4M(\'2f\')}k(2f&&2f.1t(\'1d\')!=1d)2f.2l(\'1d\',1d);h.18().1H(2f);z 2f};2C.D.8j=C(){z h.18().43(\'2f\').1u(0)};2C.D.hf=C(){k(h.8j())z h.8j().3j;J z 1f};2C.D.hi=C(2M){p 3v=h.5x();3v.6Q(h.6P());3v.5K(\'4X\');k(2M){k(Y 2M==\'34\')3v.2D().1H(3v.2n().4j(2M));J k(2M.g7==1l){p 1W=3v.2D();L(p i=0;i<2M.F;i++)k(Y 2M[i]==\'34\')1W.1H(3v.2n().4j(2M[i]));J k(Y 2M[i]==\'3N\')1W.1H(2M[i])}J k(Y 2M==\'3N\')3v.2D().1H(2M)}z 3v};C 3K(){h.3k=1b;h.3k(\'2J\')}3K.D=I 1b;3K.D.fE=C(V){h.4D("V",V);z h};3K.D.eg=C(6M){h.4D("6M",6M);z h};3K.D.ef=C(7f){h.4D("7f",7f);z h};3K.D.eh=C(){z h.4a(\'7f\')};3K.D.ei=C(){z h.4a(\'V\')};3K.D.ek=C(){z h.4a(\'6M\')};1b.8f=C(1W){p 1C;5M(1W.3a.6B()){2s\'9o\':1C=I 3o();1T;2s\'2J\':1C=I 3K();1T;2s\'H\':1C=I 2C();1T;88:z 1f}1C.9n(1W);z 1C};C R(S){k(S&&S.E&&S.E.G)h.E=S.E;J{h.E=I 3G();h.E.G=C(){}}k(S&&S.9q)h.7j=S.9q;k(S&&S.56)h.56=S.56;J h.56=ej;h.1V=X;h.2E=I 1l();h.1K=1f;h.86=0;h.3t=I 1l();h.1F=I 1l();h.2U=I 1l();h.N=I 1l();h.7q=\'ee\';h.2W=0;h.3e=ed;h.4m=I 1l();k(S&&S.2A)h.4Z(S.2A)}R.D.e8=C(S){h.2j(\'e7\');h.1w=S.1w||\'be\';h.1N=S.1N;h.2z=S.2z;h.45=S.45;h.4A=S.4A;h.5X=S.5X||h.1w;h.2a=S.2a||\'3m\';k(S.4s&&S.4s!=\'\')h.8d=S.4s;h.5T=S.5T||h.1w;h.5R=S.5R||e9;k(S.4K)h.4K=\'1h\';J h.4K=\'X\';k(S.2H)h.69=S.2H;h.1e=h.1N+\'@\'+h.1w;h.5B=h.1e+\'/\'+h.2z;h.1U=5q.aV(aU.5+(((ea.ec)-(aU.5))*5q.8T()));p M=h.4i();h.N[M]=h.4v(1h);p O=h.8g();h.E.G(O,4);h.N[M].r.4n=1n.1o(C(){k(h.N[M].r.2B==4){h.E.G("4d 82: "+h.N[M].r.1Q,4);h.8e(M)}},h);k(Y(h.N[M].r.1z)!=\'1E\'){h.N[M].r.1z=1n.1o(C(e){h.E.G(\'87 1g\',1);z X},h)}h.N[M].r.2V(O)};R.D.42=C(){z h.1V};R.D.2S=C(){h.2j(\'eb\');k(!h.42())z;h.1V=X;25(h.2r);25(h.2G);k(h.1Y)38(h.1Y);p M=h.4i();h.N[M]=h.4v(X);5w=h.5S(X,1h);h.E.G("aD: "+5w,4);h.N[M].r.2V(5w);1q{2h.3u(\'4E\').5O()}1s(e){}h.E.G("3z: "+h.N[M].r.1Q,2);h.19(\'3F\')};R.D.3d=C(){z h.2I};R.D.7J=C(1j){1j=1j.6B();p 5f={2k:1G[1G.F-1],39:\'*\',3q:\'*\',1k:\'*\'};k(1G.F>2)5f.39=1G[1];k(1G.F>3)5f.3q=1G[2];k(1G.F>4)5f.1k=1G[3];k(!h.2E[1j])h.2E[1j]=I 1l(5f);J h.2E[1j]=h.2E[1j].3R(5f);h.2E[1j]=h.2E[1j].em(C(a,b){p 57=0;p 55=0;6G(a){k(1k==\'*\')57++;k(3q==\'*\')57++;k(39==\'*\')57++}6G(b){k(1k==\'*\')55++;k(3q==\'*\')55++;k(39==\'*\')55++}k(57>55)z 1;k(57<55)z-1;z 0});h.E.G("83 2k L 1j \'"+1j+"\'",2)};R.D.en=C(1j,2k){1j=1j.6B();k(!h.2E[1j])z;p 5t=h.2E[1j],6R=I 1l();L(p i=0;i<5t.F;i++)k(5t[i].2k!=2k)6R.5s(5t[i]);k(5t.F!=6R.F){h.2E[1j]=6R;h.E.G("aR 2k L 1j \'"+1j+"\'",2)}};R.D.ey=C(39,3q,2k){h.7J(\'H\',39,3q,\'7T\',2k)};R.D.ew=C(39,3q,2k){h.7J(\'H\',39,3q,\'4V\',2k)};R.D.ez=C(){1q{h.2j(\'dA\');p s=6T(2h.3u(\'4E\').6X());h.E.G(\'3u 5d: \'+s,2);p o=4W.62(s);L(p i 3p o)k(o.4e(i))h[i]=o[i];k(h.1K){h.77=I 3P();p u=h.77.4C();L(p i=0;i<u.F;i++)h.77[u[i]]=h.1K[u[i]];h.1K=h.77}1q{2h.3u(\'4E\').5O()}1s(e){}k(h.1V){h.19(\'fF\');3n(1n.1o(h.4R,h),h.3d());h.2r=49(1n.1o(h.6d,h),7c);h.2G=49(1n.1o(h.6a,h),72)}z(h.1V===1h)}1s(e){k(e.2J)h.E.G("aN 4l: "+e.2J,1);J h.E.G("aN 4l: "+e,1);z X}};R.D.2V=C(1L,cb,1i){k(!1L||!1L.3Y){h.E.G("7M 1L: "+1L,1);z X}k(!h.42())z X;k(cb){k(!1L.4S())1L.7e(\'eB\'+h.86++);h.aX(1L.4S(),cb,1i)}1q{h.19(1L.3Y()+\'ev\',1L);h.19("eu",1L);h.1F=h.1F.3R(1L.U())}1s(e){h.E.G(e.2w(),1);z X}z 1h};R.D.ep=C(H,5a,1i){k(!H||H.3Y()!=\'H\'){z X}5a=5a||{};p 95=5a.95||C(3l){h.E.G(H.U(),1)};p 89=5a.89||C(3l){h.E.G(3l.U(),2)};p 8a=5a.8a||C(3l){h.E.G(3l.U(),2)};p aL=C(3l,1i){5M(3l.2o()){2s\'1g\':95(3l);1T;2s\'4X\':89(3l,1i);1T;88:8a(3l,1i)}};z h.2V(H,aL,1i)};R.D.4Z=C(2A){k(2A&&!9d(2A))h.2I=2A;z h.2I};R.D.1v=C(){z h.7q};R.D.eo=C(){38(h.1Y);25(h.2r);25(h.2G);h.7L();p u=(\'1V,1K,86,3t,1F,2U,2W,3e,1w,1N,2z,1e,5B,3w,7j,2I,eq\').3O(\',\');u=u.3R(h.4C());p s=I 3G();L(p i=0;i<u.F;i++){k(!h[u[i]])7p;k(h[u[i]].4C){p 6V=h[u[i]].4C();p o=I 3G();L(p j=0;j<6V.F;j++)o[6V[j]]=h[u[i]][6V[j]]}J p o=h[u[i]];s[u[i]]=o}p c=I 2h(\'4E\',er(4W.2w(s)),h.3e);h.E.G("aP 5d: "+6T(c.2R)+"\\n(F:"+6T(c.2R).F+")",2);c.7g();1q{p c2=2h.3u(\'4E\');k(c.2R!=c2.2R){h.E.G("et 4l aP 5d.\\es: "+6T(2h.3u(\'4E\')),1);c.5O()}h.1V=X;h.2j(\'e6\')}1s(e){h.E.G("e5 dK 5d \'4E\': "+e.2J)}};R.D.61=C(){38(h.1Y);25(h.2G);25(h.2r);h.1V=X;h.2j(\'dJ\');h.E.G("3z.",1);h.19(\'3F\');h.19(\'1z\',2m(\'54\',\'2t\',\'4L-4I\'))};R.D.6a=C(){L(p i=0;i<h.3t.F&&i<10;i++){p 1u=h.3t[0];h.3t=h.3t.4w(1,h.3t.F);p 1L=1b.8f(1u);k(!1L)z;h.19("dL",1L);k(1L.3Y&&!h.aH(1L)){h.19(1L.3Y()+\'dM\',1L);h.19(1L.3Y(),1L)}}};R.D.6d=C(){k(h.1F.F!=0)h.3r();z 1h};R.D.7a=C(){k(h.7C&&h.2a==\'5v\')h.E.G("dO: 3x dN a6 1S dI",1);k(!h.ag()&&!h.b8()){h.E.G("dH 4l L 2a "+h.2a,1);h.2S();z X}z 1h};R.D.8c=C(){k(h.2a==\'79\'||h.2a==\'7P\')z;p H=I 2C();H.5K(\'4V\');H.7e(\'dC\');H.4o("2f",{1d:"P:H:4A"},[["1N",h.1N],["ah",h.45]]);h.2V(H,h.b2)};R.D.b2=C(H){k(H&&H.2o()==\'1g\'){h.E.G("b5 4l L "+h.1N,0);h.19(\'1z\',H.2D(\'1g\'));z}h.E.G(h.1N+" 83 dB",0);h.7a()};R.D.b8=C(){k(h.2a!=\'5v\'&&h.2a!=\'7P\')z X;p H=I 2C();H.5y(h.3V,\'7T\',\'dD\');H.4o(\'2f\',{1d:\'P:H:1y\'},[[\'1N\',h.1N]]);h.2V(H,h.aQ);z 1h};R.D.aQ=C(H){k(!H||H.2o()!=\'4X\'){k(H&&H.2o()==\'1g\')h.19(\'1z\',H.2D(\'1g\'));h.2S();z}p aj=(H.2D(\'99\')!=1f);p H=I 2C();H.5y(h.3V,\'4V\',\'dE\');2f=H.4o(\'2f\',{1d:\'P:H:1y\'},[[\'1N\',h.1N],[\'2z\',h.2z]]);k(aj){2f.1H(H.4t(\'99\',{1d:\'P:H:1y\'},51(h.4B+h.45)))}J k(h.56){2f.1H(H.4t(\'ah\',{1d:\'P:H:1y\'},h.45))}J{h.E.G("7M ac dG 3s 74",1);h.2S();z X}h.2V(H,h.am)};R.D.am=C(H){k(H.2o()!=\'4X\'){k(H.2o()==\'1g\')h.19(\'1z\',H.2D(\'1g\'));h.2S()}J h.19(\'7Q\')};R.D.ag=C(){k(h.2a==\'5v\'||h.2a==\'7P\')z X;k(h.2a==\'79\'){k(h.5P[\'75\']){h.E.G("3x 93 3s \'75\'",2);z h.4c("<1y 1d=\'2e:2p:2q:U:Q:1B-3m\' 3s=\'75\'/>",h.6H)}h.E.G("3x 75 dF a6 1S dP",1)}J{k(h.5P[\'8C-6E\']){h.E.G("3x 93 3s \'8C-6E\'",2);z h.4c("<1y 1d=\'2e:2p:2q:U:Q:1B-3m\' 3s=\'8C-6E\'/>",h.ae)}J k(h.56&&h.5P[\'91\']){h.E.G("3x 93 3s \'91\'",2);p 5G=h.1N+\'@\'+h.1w+37.3T(0)+h.1N+37.3T(0)+h.45;h.E.G("dQ 6G \'"+5G+"\'",2);5G=6p(5G);z h.4c("<1y 1d=\'2e:2p:2q:U:Q:1B-3m\' 3s=\'91\'>"+5G+"</1y>",h.6H)}h.E.G("7H 3x 3s e0",1);h.2a=\'5v\'}z X};R.D.ae=C(el){k(el.3a!="4q"){h.E.G("4q ad",1);h.19(\'1z\',2m(\'6I\',\'1y\',\'1S-6D\'));h.2S()}J{p 4q=5C(el.7y.3Q);h.E.G("68 4q: "+4q,2);h.2Q=4q.2Z(4q.2v("6m=")+7);h.2Q=h.2Q.2Z(0,h.2Q.2v("\\""));h.E.G("6m: "+h.2Q,2);k(h.2Q==\'\'||h.2Q.2v(\'\\"\')!=-1){h.E.G("6m 1S ac, ap",1);h.2S();z}h.5E="1B/";h.5E+=h.1w;h.5l=5p(14);h.6u=\'dZ\';p 6l=8B(h.1N+\':\'+h.1w+\':\'+h.45)+\':\'+h.2Q+\':\'+h.5l;p 6v=\'e1:\'+h.5E;p 1m=47(47(6l)+\':\'+h.2Q+\':\'+h.6u+\':\'+h.5l+\':1y:\'+47(6v));p 9b=\'1N="\'+h.1N+\'",e2="\'+h.1w+\'",6m="\'+h.2Q+\'",5p="\'+h.5l+\'",e4="\'+h.6u+\'",e3=1y,99-dY="\'+h.5E+\'",1m="\'+1m+\'",7x=7k-8\';h.E.G("1m: "+9b,2);h.4c("<1m 1d=\'2e:2p:2q:U:Q:1B-3m\'>"+6g(4k(9b))+"</1m>",h.aG)}};R.D.aG=C(el){k(el.3a==\'dX\'){k(el.U)h.E.G("1y 1g: "+el.U,1);J h.E.G("1y 1g",1);h.19(\'1z\',2m(\'6I\',\'1y\',\'1S-6D\'));h.2S();z}p 1m=5C(el.7y.3Q);h.E.G("1m: "+1m,2);p 4P=1m.2Z(1m.2v("4P=")+8);h.E.G("4P: "+4P,2);p 6l=8B(h.1N+\':\'+h.1w+\':\'+h.45)+\':\'+h.2Q+\':\'+h.5l;p 6v=\':\'+h.5E;p 6F=47(47(6l)+\':\'+h.2Q+\':\'+h.6u+\':\'+h.5l+\':1y:\'+47(6v));h.E.G("6F: "+6F,2);k(6F!=4P){h.E.G("3x dS-6E: 3V dR 6G dT 4P",1);h.2S();z}k(el.3a==\'au\')h.7h(h.1w,h.8O);J h.4c("<1m 1d=\'2e:2p:2q:U:Q:1B-3m\'/>",h.6H)};R.D.6H=C(el){k(el.3a!=\'au\'){h.E.G("1y 4l",1);h.19(\'1z\',2m(\'6I\',\'1y\',\'1S-6D\'));h.2S()}J h.7h(h.1w,h.8O)};R.D.8O=C(){p H=I 2C();H.5y(h.1w,\'4V\',\'dU\');H.4o("1o",{1d:"2e:2p:2q:U:Q:1B-1o"},[["2z",h.2z]]);h.E.G(H.U());h.2V(H,h.av)};R.D.av=C(H){k(H.2o()!=\'4X\'||H.2o()==\'1g\'){h.2S();k(H.2o()==\'1g\')h.19(\'1z\',H.2D(\'1g\'));z}h.5B=H.4a("1e");h.1e=h.5B.2Z(0,h.5B.dW(\'/\'));H=I 2C();H.5y(h.1w,\'4V\',\'dV\');H.4o("3X",{1d:"2e:2p:2q:U:Q:1B-3X"},[]);h.E.G(H.U());h.2V(H,h.ay)};R.D.ay=C(H){k(H.2o()!=\'4X\'||H.2o()==\'1g\'){h.2S();k(H.2o()==\'1g\')h.19(\'1z\',H.2D(\'1g\'));z}J h.19(\'7Q\')};R.D.19=C(1j,1i){1j=1j.6B();h.E.G("eC 1j \'"+1j+"\'",3);k(!h.2E[1j])z;h.E.G("aC 1j \'"+1j+"\'",2);L(p i=0;i<h.2E[1j].F;i++){p 2x=h.2E[1j][i];k(2x.2k){1q{k(1i){k(1i.3Y){k((!1i.18().7w()&&2x.39!=\'*\')||(1i.18().7w()&&!1i.2D(2x.39,2x.3q)))7p;k(2x.1k!=\'*\'&&1i.2o()!=2x.1k)7p;h.E.G(2x.39+"/"+2x.3q+"/"+2x.1k+" => 5J L 2k "+2x.2k,3)}k(2x.2k.5Z(h,1i))1T}J k(2x.2k.5Z(h))1T}1s(e){h.E.G(2x.2k+"\\n>>>"+e.W+": "+e.2J,1)}}}};R.D.aH=C(5L){k(!5L.4S())z X;L(p i 3p h.2U){k(h.2U.4e(i)&&h.2U[i]&&i==5L.4S()){p 2y=5L.4S();h.E.G("aC "+2y,3);1q{k(h.2U[i].cb.5Z(h,5L,h.2U[i].1i)===X){z X}J{h.8h(2y);z 1h}}1s(e){h.E.G(e.W+": "+e.2J);h.8h(2y);z 1h}}}z X};R.D.b1=C(1c){p 5H=h.90(1c);k(!5H)z;L(p i=0;i<5H.3b.F;i++){k(h.4m.F){p cb=h.4m[0];h.4m=h.4m.4w(1,h.4m.F);cb.fn.5Z(h,5H.3b.1u(i),cb.1i);7p}h.3t=h.3t.3R(5H.3b.1u(i))}};R.D.8n=C(K){k(!K){h.E.G("eD 1J 62 ... ap",1);z X}p 7m;k(K.7E)7m=K.7E("1p://58.P.1r/4x","1g").1u(0);J{p 7n=K.43("1g");L(p i=0;i<7n.F;i++)k(7n.1u(i).3j=="1p://58.P.1r/4x"){7m=7n.1u(i);1T}}k(7m){h.2j("6O");38(h.1Y);25(h.2r);25(h.2G);h.19(\'1z\',2m(\'3U\',\'2t\',\'3X-4f\'));h.1V=X;h.E.G("3z.",1);h.19(\'3F\');z X}h.5P=I 3G();p 7v=K.43("fj");h.7C=X;L(p i=0;i<7v.F;i++)k(7v.1u(i).1t("1d")=="2e:2p:2q:U:Q:1B-3m"){h.7C=1h;p 8s=7v.1u(i).43("3s");L(p j=0;j<8s.F;j++)h.5P[8s.1u(j).7y.3Q]=1h;1T}k(h.7C)h.E.G("3x al",2);J{h.2a=\'5v\';h.E.G("7H 7N L 3x al",2)}z 1h};R.D.3r=C(2A){k(!h.42()){h.E.G("fi fk ...",1);k(h.2r)25(h.2r);z}h.4Z(2A);k(h.1Y)38(h.1Y);p M=h.4i();k(M<0)z;k(Y(h.N[M])!=\'1E\'&&Y(h.N[M].r)!=\'1E\'&&h.N[M].r.2B!=4){h.E.G("fl "+M+" fo 1S fm");z}k(!h.66()&&h.1F.F==0&&h.N[(M+1)%2]&&h.N[(M+1)%2].r.2B!=4){h.E.G("fh fg fb, fa ...",2);z}k(!h.66())h.E.G("fc fd M at "+M,2);h.N[M]=h.4v(1h);h.N[M].r.4n=1n.1o(C(){k(!h.42())z;k(h.N[M].r.2B==4){h.2j(\'ff\');h.E.G("4d 82: "+h.N[M].r.1Q,4);h.b1(h.N[M]);k(h.1F.F){h.1Y=3n(1n.1o(h.3r,h),b4)}J{h.E.G("fe fp fq 3p "+h.3d()+" fA",4);h.1Y=3n(1n.1o(h.3r,h),h.3d())}}},h);1q{h.N[M].r.1z=1n.1o(C(){k(!h.42())z;h.2W++;h.E.G(\'87 1g (\'+h.2W+\')\',1);k(h.2W>8R){h.61();z X}h.2j(\'fz\');3n(1n.1o(h.4R,h),h.3d());z X},h)}1s(e){}p O=h.5S();k(Y(h.1U)!=\'1E\')h.N[M].3c=h.1U;h.E.G("aZ: "+O,4);h.N[M].r.2V(O)};R.D.aX=C(2y,cb,1i){k(!2y||!cb)z X;h.2U[2y]=I 3G();h.2U[2y].cb=cb;k(1i)h.2U[2y].1i=1i;h.E.G("83 "+2y,3);z 1h};R.D.8p=C fB(){p M=h.4i();h.N[M]=h.4v(1h);h.N[M].r.4n=1n.1o(C(){k(h.N[M].r.2B==4){h.E.G("4d 82: "+h.N[M].r.1Q,4);h.6e(M)}},h);k(Y(h.N[M].r.1z)!=\'1E\'){h.N[M].r.1z=1n.1o(C(e){h.E.G(\'87 1g\',1);z X},h)}p O=h.5S();h.E.G("aZ: "+O,4);h.N[M].r.2V(O)};R.D.4c=C(U,cb,1i){k(cb)h.4m.5s({fn:cb,1i:1i});h.1F.5s(U);h.3r();z 1h};R.D.2j=C(1v){k(!1v||1v==\'\')z;k(1v!=h.7q){h.7q=1v;h.19(\'fC\',1v);h.19(\'fD\',1v)}};R.D.8h=C(2y){k(!h.2U[2y])z X;h.2U[2y]=1f;h.E.G("aR "+2y,3);z 1h};C 1R(S){h.3k=R;h.3k(S);h.3E=97;h.3e=0;h.2T=I 3G();h.5n=0;h.4u=0;h.5r=0;h.69=fy}1R.D=I R();1R.D.fx=C(S){h.1w=S.1w||\'be\';h.1N=S.1N;h.2z=S.2z;h.3w=S.2u;h.1U=S.3c;h.4u=S.96;h.3e=S.8U;h.9a(S.8D-1);h.4Z(h.2I);k(S.2H)h.69=S.2H;h.1V=1h;h.19(\'7Q\');h.2r=49(1n.1o(h.6d,h),7c);h.2G=49(1n.1o(h.6a,h),72);h.1Y=3n(1n.1o(h.3r,h),h.3d())};1R.D.4Z=C(2A){k(2A&&!9d(2A)){k(!h.66())h.2I=b4;J k(h.4u&&2A<h.4u*5b)h.2I=h.4u*5b;J k(h.3e&&2A>h.3e*5b)h.2I=h.3e*5b;J h.2I=2A}z h.2I};1R.D.66=C(){z(h.3E==0)};1R.D.4i=C(){L(p i=0;i<h.3E+1;i++)k(Y(h.N[i])==\'1E\'||Y(h.N[i].r)==\'1E\'||h.N[i].r.2B==4)z i;z-1};1R.D.az=C(){z h.3E};1R.D.5S=C(3M,5U){3M=3M||\'\';p O=\'\';k(h.1U<=h.5n&&Y(h.2T[h.1U])!=\'1E\')O=h.2T[h.1U].U;J{p U=\'\';3L(h.1F.F){p 6q=h.1F[0];U+=6q;h.1F=h.1F.4w(1,h.1F.F)}O="<V 3c=\'"+h.1U+"\' 2u=\'"+h.3w+"\' 1d=\'1p://P.1r/27/65\' ";k(5Q){O+="1A=\'"+h.1K.3I()+"\' ";k(h.1K.70()){h.1K=I 3P(51,h.E);O+="8W=\'"+h.1K.3I()+"\' "}}k(5U)O+="1k=\'4f\'";J k(h.8Y){k(aK)O+="1B:fs=\'1h\' 1d:1B=\'2e:1B:ak\'";h.8Y=X}k(U!=\'\'||3M!=\'\'){O+=">"+3M+U+"</V>"}J{O+="/>"}h.2T[h.1U]=I 3G();h.2T[h.1U].U=O;h.5n=h.1U;L(p i 3p h.2T)k(h.2T.4e(i)&&i<h.1U-h.3E)fr(h.2T[i])}z O};1R.D.8g=C(){p O="<V ft=\'48/U; 7x=7k-8\' 3h=\'"+h.3E+"\' 1d=\'1p://P.1r/27/65\' 1J=\'"+h.5X+"\' 2H=\'"+h.69+"\' 3c=\'"+h.1U+"\'";k(h.5T||h.5R)O+=" fu=\'1B:"+h.5T+":"+h.5R+"\'";k(h.4K)O+=" 4K=\'"+h.4K+"\'";k(5Q){h.1K=I 3P(51,h.E);1A=h.1K.3I();O+=" 8W=\'"+1A+"\'"}k(h.8d)O+=" U:7s=\'"+h.8d+"\'";k(aK){O+=" 8x=\'"+fw+"\'";O+=" 1d:1B=\'2e:1B:ak\'";k(h.2a==\'3m\'||h.2a==\'79\')O+=" 1B:6w=\'1.0\'"}O+="/>";z O};1R.D.6e=C(M){h.E.G(h.N[M].r.1Q,4);k(!h.N[M].r.3B||!h.N[M].r.3B.1M){h.19(\'1z\',2m(\'3U\',\'2t\',\'4L-4I\'));z}p V=h.N[M].r.3B.1M;k(V.1t(\'ao\')){h.4B=V.1t(\'ao\');h.E.G("68 4B: "+h.4B,2)}J{h.1Y=3n(1n.1o(h.8p,h),h.3d());z}h.1Y=3n(1n.1o(h.3r,h),h.3d());k(!h.8n(V))z;k(h.4A)h.8c();J h.7a()};1R.D.4C=C(){z(\'5T,5R,4K,1U,5n,69,4u,3e,3E,2T,5r\').3O(\',\')};1R.D.8e=C(M){1q{h.E.G(h.N[M].r.6b(),4);h.E.G(h.N[M].r.1Q,4)}1s(ex){h.E.G("7H 1m",4)}k(h.N[M].r.1v!=8Z||!h.N[M].r.3B){h.E.G("as 1m fv (1v: "+h.N[M].r.1v+")",1);h.19(\'1z\',2m(\'3U\',\'2t\',\'4L-4I\'));z}p V=h.N[M].r.3B.1M;k(!V||V.5Y!=\'V\'||V.3j!=\'1p://P.1r/27/65\'){h.E.G("7M V 29 f9 f8 V 3p as 1m",1);h.19("1z",2m("54","2H","73-4L-1g"));z}k(V.1t("1k")=="4f"){h.E.G("6c 1m:\\n"+h.N[M].r.1Q,1);38(h.1Y);h.1V=X;h.E.G("3z.",1);h.19(\'3F\');h.19(\'1z\',2m(\'3U\',\'2t\',\'4L-4I\'));z}h.3w=V.1t(\'2u\');h.E.G("68 2u: "+h.3w,2);k(V.1t(\'96\'))h.4u=V.1t(\'96\');k(V.1t(\'8U\'))h.3e=V.1t(\'8U\');k(V.1t(\'8D\'))h.9a(V.1t(\'8D\')-1);h.E.G("4V 3h 1J "+h.az(),2);k(V.1t(\'8x\'))h.eN=V.1t(\'8x\');k(V.1t(\'aA\'))h.5r=ax.ar(V.1t(\'aA\'),eM);h.4Z(h.2I);h.1V=1h;h.2G=49(1n.1o(h.6a,h),72);h.2r=49(1n.1o(h.6d,h),7c);h.6e(M)};1R.D.90=C(1c){k(!h.42()||!1c)z 1f;p r=1c.r;1q{k(r.1v==7d||r.1v==aB){h.61();z 1f}k(r.1v!=8Z||!r.3B){h.2W++;p 8J="6c 1m ("+r.1v+"):\\n"+r.6b()+"\\n"+r.1Q;k(!r.3B)8J+="\\eO 4l 1J 62!";h.E.G(8J,1);k(h.2W>8R){h.61();z 1f}h.E.G("aI ("+h.2W+")",1);h.2j(\'aF\');3n(1n.1o(h.4R,h),h.3d());z 1f}}1s(e){h.E.G("8I 1g: 1v 1S eP",1);h.2W++;k(h.2W>8R){h.61()}J{h.E.G("aI ("+h.2W+")",1);h.2j(\'aF\');3n(1n.1o(h.4R,h),h.3d())}z 1f}p V=r.3B.1M;k(!V||V.5Y!=\'V\'||V.3j!=\'1p://P.1r/27/65\'){h.E.G("6c 1m:\\n"+r.1Q,1);38(h.1Y);25(h.2r);25(h.2G);h.1V=X;h.E.G("3z.",1);h.19(\'3F\');h.2j(\'6O\');h.19(\'1z\',2m(\'54\',\'2H\',\'73-3V-1g\'));z 1f}k(Y(1c.3c)!=\'1E\'&&h.2T[1c.3c]){k(h.2T[1c.3c].8E){h.E.G("eR 8E "+1c.3c,2);z 1f}J h.2T[1c.3c].8E=1h}k(V.1t("1k")=="4f"){h.E.G("3X eQ:\\n"+r.1Q,1);38(h.1Y);25(h.2r);25(h.2G);k(V.1t("6i")=="8A-1I-1g")k(V.43("67").F>0)h.2j("3X-4f-67");h.19(\'1z\',2m(\'3U\',\'2t\',V.1t(\'6i\')));h.1V=X;h.E.G("3z.",1);h.19(\'3F\');z 1f}h.2W=0;z r.3B.1M};1R.D.7h=C(1J,cb,1i){h.8Y=1h;cb.5Z(h,1i)};1R.D.4R=C(){k(h.5r==0&&h.1U>=h.5n)h.1U=h.5n-1;h.3r()};1R.D.9a=C(3h){k(!3h||9d(3h)||3h<0)3h=0;J k(3h>97)3h=97;h.3E=3h;z h.3E};1R.D.4v=C(4d){p 1c=I 3G();p r=2X.3D();1q{r.ai("b7",h.7j,4d);r.a9(\'aq-aE\',\'48/U; 7x=7k-8\')}1s(e){h.E.G(e,1)}1c.r=r;h.1U++;1c.3c=h.1U;z 1c};1R.D.7L=C(){k(h.5r==0)z;p M=h.4i();h.N[M]=h.4v(X);p O="<V eL=\'"+h.5r+"\' 1d=\'1p://P.1r/27/65\' 2u=\'"+h.3w+"\' 3c=\'"+h.1U+"\'";k(5Q){O+=" 1A=\'"+h.1K.3I()+"\'";k(h.1K.70()){h.1K=I 3P(51,h.E);O+=" 8W=\'"+h.1K.3I()+"\'"}}O+=">";3L(h.1F.F){p 6q=h.1F[0];O+=6q;h.1F=h.1F.4w(1,h.1F.F)}O+="</V>";h.E.G("aD: "+O,4);h.N[M].r.2V(O)};C 28(S){h.3k=R;h.3k(S);6K=X}28.D=I R();28.D.66=C(){z 1h};28.D.4i=C(){k(Y(h.N[0])==\'1E\'||Y(h.N[0].r)==\'1E\'||h.N[0].r.2B==4)z 0;J z-1};28.D.8g=C(){p O="0";k(5Q){h.1K=I 3P(8k,h.E);1A=h.1K.3I();O+=";"+1A}p 7S=h.1w;k(h.5X)7S=h.5X;O+=",<1I:1I 1J=\'"+7S+"\' 1d=\'P:8w\' 1d:1I=\'1p://58.P.1r/4x\'";k(h.2a==\'3m\'||h.2a==\'79\')O+=" 6w=\'1.0\'";O+=">";z O};28.D.5S=C(3M,5U){p O=h.3w;k(5Q){O+=";"+h.1K.3I();k(h.1K.70()){h.1K=I 3P(8k,h.E);O+=\';\'+h.1K.3I()}}O+=\',\';k(3M)O+=3M;3L(h.1F.F){O+=h.1F[0];h.1F=h.1F.4w(1,h.1F.F)}k(5U)O+=\'</1I:1I>\';z O};28.D.6e=C(){k(h.N[0].r.1Q==\'\'){h.E.G("eK L 1I 2O",2);h.1Y=3n(1n.1o(h.8p,h),5b);z}h.E.G(h.N[0].r.1Q,4);k(h.N[0].r.1Q.5J(/2O=[\\\'\\"]([^\\\'\\"]+)[\\\'\\"]/))h.4B=eF.$1;h.E.G("68 4B: "+h.4B,2);p K;1q{p 1m=h.N[0].r.1Q;k(!1m.5J(/<\\/1I:1I>\\s*$/))1m+=\'</1I:1I>\';K=2F.3D("K");K.4j(1m);k(!h.8n(K))z}1s(e){h.E.G("4j: "+e.2w(),1)}h.1V=1h;k(h.4A)h.8c();J h.7a();h.3r(h.2I)};28.D.4C=C(){z I 1l()};28.D.8e=C(){h.E.G(h.N[0].r.6b(),4);p 35=h.N[0].r.bd(\'b0-8M\');35=35.3O(";");L(p i=0;i<35.F;i++){5k=35[i].3O("=");k(5k[0]==\'aT\')h.3w=5k[1]}h.E.G("68 2u: "+h.3w,2);h.1V=1h;h.2r=49(1n.1o(h.6d,h),7c);h.2G=49(1n.1o(h.6a,h),72);h.6e()};28.D.90=C(r){p 1c=r.r;k(!h.42())z 1f;k(1c.1v!=8Z){h.E.G("6c 1m ("+1c.1v+"):"+1c.1Q+"\\n"+1c.6b(),1);h.2j(\'6O\');38(h.1Y);25(h.2r);25(h.2G);h.1V=X;h.E.G("3z.",1);h.19(\'3F\');h.19(\'1z\',2m(\'3U\',\'2t\',\'4L-4I\'));z 1f}h.E.G(1c.6b(),4);p 2u,35=1c.bd(\'b0-8M\');k(35==1f)2u="-1:0";J{35=35.3O(";");p 2u;L(p i=0;i<35.F;i++){p 5k=35[i].3O("=");k(5k[0]==\'aT\')2u=5k[1]}}k(Y(2u)!=\'1E\'&&2u.2v(\':0\')!=-1){5M(2u.2Z(0,2u.2v(\':0\'))){2s\'0\':h.E.G("6c 1m:"+1c.1Q,1);1T;2s\'-1\':h.E.G("eE eG 5e",1);1T;2s\'-2\':h.E.G("eH eJ",1);1T;2s\'-3\':h.E.G("eI eS 5e",1);1T}h.2j(\'6O\');38(h.1Y);25(h.2r);25(h.2G);h.19(\'1z\',2m(\'54\',\'2H\',\'73-3V-1g\'));h.1V=X;h.E.G("3z.",1);h.19(\'3F\');z 1f}k(!1c.1Q||1c.1Q==\'\')z 1f;1q{p 1m=1c.1Q.2K(/\\<\\?U.+\\?\\>/,"");k(1m.5J(/<1I:1I/))1m+="</1I:1I>";p K=28.8L("<V>"+1m+"</V>");k(!K||K.5Y==\'6t\'){h.E.G("6t",1);K=28.8L("<1I:1I 1d:1I=\'1p://58.P.1r/4x\'>"+1c.1Q);k(K&&K.5Y!=\'6t\'){h.E.G("1I eT",1);k(K.43(\'67\').F>0)h.2j("3X-4f-67");38(h.1Y);25(h.2r);25(h.2G);h.19(\'1z\',2m(\'3U\',\'2t\',\'3X-4f\'));h.1V=X;h.E.G("3z.",1);h.19(\'3F\')}J h.E.G("6t:"+K,1);z K}z K}1s(e){h.E.G("62 1g:"+e.2J,1)}z 1f};28.D.7h=C(1J,cb,1i){h.4c("<1I:1I 1d:1I=\'1p://58.P.1r/4x\' 1d=\'P:8w\' 1J=\'"+1J+"\' 6w=\'1.0\'>",cb,1i)};28.D.4R=C(){h.3r(h.2I)};28.D.4v=C(4d){p r=2X.3D();1q{r.ai("b7",h.7j,4d);k(r.bb)r.bb(\'48/f3; 7x=7k-8\');r.a9(\'aq-aE\',\'f2/x-f4-f5-f7\')}1s(e){h.E.G(e,1)}p 1c=I 3G();1c.r=r;z 1c};28.D.7L=C(){};28.8L=C(s){1q{p r=2F.3D("V","aw");k(Y(r.4j)!=\'1E\'){r.4j(s);z r.1M}J k(3C.6k)z(I 6k()).a8(s,"48/U").1M}1s(e){}z 1f};p 1n={f6:\'$f1: f0 $\',a4:C(aM){3W.7g(\'<8m 1k="48/eV" 7b="\'+aM+\'"></8m>\')},6N:C(){p 8i=[\'eU\',\'eW\',\'eX\',\'eZ\',\'eY\',\'2h\',\'4W\',\'1Z\',\'33\',\'1b\',\'2m\',\'3P\',\'R\',\'28\',\'1R\',\'9f\'];p 5I=3W.43("8m");p 6J=\'./\';L(p i=0;i<5I.F;i++){k(5I.1u(i).7b&&5I.1u(i).7b.5J(/1n\\.84$/)){6J=5I.1u(i).7b.2K(/1n.84$/,\'\');1T}}L(p i=0;i<8i.F;i++)h.a4(6J+8i[i]+\'.84\')},1o:C(fn,4p,1i){z C(){k(1i)fn.9g(4p,1i);J fn.9g(4p)}}};k(Y R==\'1E\')1n.6N();',62,1080,'|||||||||||||||||this|||if|||||var||||||||||return|||function|prototype|oDbg|length|log|iq|new|else|doc|for|slot|_req|reqstr|jabber|ns|JSJaCConnection|oArg||xml|body|name|false|typeof||||||||||getNode|_handleEvent|str|JSJaCPacket|req|xmlns|jid|null|error|true|arg|event|type|Array|response|JSJaC|bind|http|try|org|catch|getAttribute|item|status|domain|chrsz|auth|onerror|key|xmpp|aNode|STANZA_ERROR|undefined|_pQueue|arguments|appendChild|stream|to|_keys|packet|documentElement|username|data|binarray|responseText|JSJaCHttpBindingConnection|not|break|_rid|_connected|node|ts|_timeout|JSJaCJID||||||clearInterval|safe_add|protocol|JSJaCHttpPollingConnection|element|authtype|md5_gg|md5_hh|md5_ii|urn|query|md5_ff|JSJaCCookie|charAt|_setStatus|handler|setAttribute|JSJaCError|getDoc|getType|ietf|params|_interval|case|cancel|sid|indexOf|toString|aEvent|pID|resource|timerval|readyState|JSJaCIQ|getChild|_events|XmlDocument|_inQto|wait|_timerval|message|replace|level|payload|bin|id|bkey|_nonce|value|disconnect|_last_requests|_regIDs|send|_errcnt|XmlHttp|show|substring||||JSJaCBuilder|string|aPList|substr|String|clearTimeout|childName|nodeName|childNodes|rid|getPollInterval|_inactivity|date|from|hold|len|namespaceURI|base|aIq|sasl|setTimeout|JSJaCPresence|in|childNS|_process|mechanism|_inQ|read|rIQ|_sid|SASL|elementName|Disconnected|code|responseXML|window|create|_hold|ondisconnect|Object|msg|getKey|Date|JSJaCMessage|while|raw|object|split|JSJaCKeys|nodeValue|concat|attributes|fromCharCode|503|server|document|session|pType|prefixes||mask|connected|getElementsByTagName|f64|pass|_k|hex_md5|text|setInterval|getChildVal|attr|_sendRaw|async|hasOwnProperty|terminate|children|XMLSerializer|_getFreeSlot|loadXML|str2binb|failed|_sendRawCallbacks|onreadystatechange|appendNode|obj|challenge|console|xmllang|buildNode|_min_polling|_setupRequest|slice|streams|throw|core_sha1|register|streamid|_getSuspendVars|_setChildNode|JSJaC_State|tab|jDate|128|unavailable|core_md5|secure|service|createElement|secs|xmldoc|rspauth|ActiveXObject|_resume|getID|charCodeAt|padZero|set|JSJaCJSON|result|prefix|setPollInterval|getTime|hex_sha1|0xFF|ipad|500|bRank|allow_plain|aRank|etherx|hex_tab|handlers|1000|offset|cookie|Error|eArg|opad|b64|cnt|str2binl|aArg|_cnonce|num|_last_rid|rPacket|cnonce|Math|_pause|push|arr|md5_cmn|nonsasl|request|clone|setIQ|nodes|cond|fulljid|atob|removeAttribute|_digest_uri|serializeToString|authStr|rootEl|scripts|match|setType|aJSJaCPacket|switch|prio|erase|mechs|JSJAC_HAVEKEYS|port|_getRequestString|host|last|modify|join|authhost|tagName|call||_abort|parse|||httpbind|isPolling|conflict|got|_wait|_checkInQ|getAllResponseHeaders|invalid|_checkQueue|_getStreamID|muc|binb2b64|b64s|condition|rol|DOMParser|A1|nonce|stanza_error|512|btoa|curNode|_isStringOrNumber|pubsub|parsererror|_nc|A2|version|core_hmac_md5|_createElement|__defineGetter__|JSJaCJIDInvalidException|toLowerCase|_indexAt|authorized|MD5|rsptest|with|_doSASLAuthDone|401|path|JSJACPACKET_USE_XMLNS|hash|subject|load|internal_server_error|getFrom|setTo|res|core_hmac_sha1|unescape|oldd|uo|oldc|getValue|olda|oldb|lastKey|0xF|JSJAC_CHECKINQUEUEINTERVAL|internal|found|ANONYMOUS|attribute|_keys2|triplet|saslanon|_doAuth|src|JSJAC_CHECKQUEUEINTERVAL|404|setID|thread|write|_reInitStream|implementation|_httpbase|utf|array|errorTag|errors|expires|continue|_status|setTime|lang|nodeprep|test|lMec1|hasChildNodes|charset|firstChild|JSJACJID_FORBIDDEN|Node|getPrefix|has_sasl|ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789|getElementsByTagNameNS|getResource|setResource|No|setNode|registerHandler|createElementNS|_suspend|no|support|tNode|anonymous|onconnect|createDocument|streamto|get|b64pad|_node|nameEQ|required|param|getName||info|recv|registered|js|hexcase|_ID|XmlHttpRequest|default|result_handler|default_handler|binl2hex|_doInBandReg|_xmllang|_handleInitialResponse|wrapNode|_getInitialRequestString|_unregisterPID|includes|getQuery|b64_sha1|400|script|_parseStreamFeatures|features|_sendEmpty|attrs|binl2b64|lMec2|_checkNodeName|lsw|0xFFFF|client|ver|removeResource|binb2str|remote|str_md5|DIGEST|requests|handled|instanceof|_children|func|XMLHttpRequest|errmsg|binl2str|_parseTree|Cookie|size|_doStreamBind|doc2|Document|JSJAC_ERR_COUNT|binb2hex|random|inactivity|_domain|newkey|_text|_reinit|200|_parseResponse|PLAIN|importNode|using|setDomain|error_handler|polling|JSJACHBC_MAX_HOLD|_resource|digest|_setHold|rPlain|ret|isNaN|Your|JSJaCConsoleLogger|apply|disco|addEventListener|MSXML2|browser|does|owner|_replaceNode|presence|number|httpbase|407|setPriority|objects|installed|b64arrays|224|setFrom|Could|find|getDomain|XML|getTo|JSJAC_NKEYS|seed|b64d2t|utf8t2d|forbidden|utf8d2t|parser|b64t2d|createTextNode|192|htmlEnc|MSXML3|x1f|MSXML|302|Microsoft|0123456789ABCDEF|0123456789abcdef|x00|JSJaCCookieException|setShow|0x3F|256|setStatus|DomDocument|stanzas|priority|require|compress|but|sha1_kt|parseFromString|setRequestHeader|sha1_ft|olde|valid|missing|_doSASLAuthDigestMd5S1|abc|_doSASLAuth|password|open|use_digest|xbosh|detected|_doLegacyAuthDone||authid|aborting|Content|max|initial||success|_doXMPPSess|foo|Number|_doXMPPSessDone|_getHold|maxpause|403|handling|Disconnecting|Type|proto_error_fallback|_doSASLAuthDigestMd5S2|_handlePID|repeating|0x80|JSJACHBC_USE_BOSH_VER|iqHandler|libraryName|Resume|jab2date|writing|_doLegacyAuth2|unregistered|0x36363636|ID|100000|round|msw|_registerPID|0x5C5C5C5C|sending|Set|_handleResponse|_doInBandRegDone|271733879|100|registration|1732584193|POST|_doLegacyAuth|bit_rol|271733878|overrideMimeType|1732584194|getResponseHeader|localhost|md5_vm_test|b64_hmac_sha1|900150983cd24fb0d6963f7d28e17f72|hex_hmac_md5|dex|hex_hmac_sha1|alert|b64_hmac_md5|389564586|680876936|amp|str_hmac_md5||eval|sha1_vm_test|NS_ROSTER|roster|NS_PRIVACY|privacy|1894007588|search|NS_AUTH_ERROR|NS_REGISTER|NS_SEARCH|NS_PRIVATE|private|NS_IQDATA|NS_DELAY|delay|NS_XDATA|NS_LAST|NS_VERSION|NS_TIME|time|NS_AUTH|temp|_attributes|str_hmac_sha1|606105819|160|AAA|lastChild|XMLDocument|b64_md5|a9993e364706816aba3e25717850c26c9cd0d89d|1009589776|899497514|NS_VCARD|vcard||NS_DISCO_INFO|items|1518500249|1859775393|NS_DISCO_ITEMS|removeChild|1236535329|||237|127|2048|421815835|getUTCFullYear|jabberDate|198630844|995338651|530742520|640364487|76029189|155497632|1272893353|1530992060|35309556|1094730640|681279174|722521979|358537222|191|quot|1126891415|718787259|1120210379|145523070|1309151649|343485551|hrTime|UTC|setUTCHours|setUTCMinutes|1560198380|30611744|1700485571|57434055|1416354905|1894986606|toLocaleString|1873313359|2054922799|1051523|1839030562|2022574463|1502002290|40341101|1804603682|1990404162|isFinite|165796510|643717713|1069501632|boolean|42063|1958414417|1200080426|176418897|floor|1044525330|1473231341|45705983|1770035416|u00|lt|373897302|701558691|getUTCMonth|1163531501|187363961|1019803690|1444681467|51403784||378558|1926607734|1735328473|568446438|getUTCDate|660478335|str_sha1|38016083|405537848|getUTCSeconds|getUTCHours|getUTCMinutes|NS_EXPIRE|Eaeflnr|resuming|succesfully|reg1|auth1|auth2|requested|login|Auth|used|aborted|reading|packet_in|_in|present|Warning|supported|authenticating|repsonse|Digest|wrong|bind_1|sess_1|lastIndexOf|failure|uri|00000001|applied|AUTHENTICATE|realm|qop|nc|Failed|suspending|connecting|connect|5222|900000|disconnecting|49999|JSJAC_INACTIVITY|intialized|setThread|setSubject|getThread|getBody|JSJAC_ALLOW_PLAIN|getSubject||sort|unregisterHandler|suspend|sendIQ|_is_polling|escape|nRead|Suspend|packet_out|_out|registerIQSet||registerIQGet|resume|expire|JSJaCID_|incoming|nothing|Internal|RegExp|Server|Bad|Key|Request|waiting|pause|JSJACHBC_MAXPAUSE|_bosh_version|nResponse|available|terminated|already|Sequence|closed|xmlextras|javascript|jsextras|crypt|JSJaCConstants|JSJaCConfig|456|Rev|application|plain|www|form|Version|urlencoded|incorrect|or|standby|busy|Found|working|scheduling|processing|slots|all|Connection|mechanisms|lost|Slot|ready||is|next|poll|delete|restart|content|route|broken|JSJACHBC_BOSH_VERSION|inherit|JSJACHBC_MAX_WAIT|onerror_fallback|msec|JSJaCSendEmpty|onstatuschanged|status_changed|setBody|onresume|406|ERR_NOT_ACCEPTABLE|malformed|acceptable|ERR_NOT_ALLOWED|allowed|405|ERR_JID_MALFORMED|ERR_ITEM_NOT_FOUND|implemented|feature|501|ERR_FORBIDDEN|ERR_GONE|ERR_INTERNAL_SERVER_ERROR|gone|ERR_NOT_AUTHORIZED|ERR_PAYMENT_REQUIRED|ERR_RESOURCE_CONSTRAINT|timeout|504|constraint|ERR_SERVICE_UNAVAILABLE|subscription|ERR_SUBSCRIPTION_REQUIRED|ERR_REMOTE_SERVER_TIMEOUT|ERR_REMOTE_SERVER_NOT_FOUND|constructor|payment|402|recipient|ERR_REDIRECT|ERR_REGISTRATION_REQUIRED|redirect|ERR_FEATURE_NOT_IMPLEMENTED|409|NS_PUBSUB|NS_MUC_OWNER|admin|NS_PUBSUB_EVENT|NS_PUBSUB_OWNER|meta|NS_PUBSUB_NMI|NS_MUC_ADMIN|user|conference|NS_XCONFERENCE|NS_EVENT|NS_STATS||stats|NS_MUC_USER|NS_MUC|NS_COMMANDS|commands|NS_FEATURE_COMPRESS|NS_FEATURE_IQREGISTER|NS_FEATURE_IQAUTH|NS_COMPRESS|ERR_BAD_REQUEST|ERR_CONFLICT|bad|NS_BIND|NS_SESSION|NS_STANZAS|NS_STREAM|NS_STREAMS|NS_TLS|NS_SASL|tls|ERR_UNEXPECTED_REQUEST|ERR_RECIPIENT_UNAVAILABLE|away|char|nodename|chat|isEntity|xa|dnd|remove|CookieException|setXMLLang|getToJID|_getAttribute|getXMLNS|isError|errorReply|unexpected|cloneNode|replaceChild|getFromJID|getXMLLang|setPresence|jsjac|setLevel|setQuery|getPriority|getQueryXMLNS|debug|warn|reply|setValue|toGMTString|getLevel|getShow|getStatus|setName|start'.split('|'),0,{}))
diff --git a/utils/Makefile b/utils/Makefile
deleted file mode 100644
index fa692db..0000000
--- a/utils/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-CC = gcc
-CFLAGS = -O2
-
-all: jsmin
-
-jsmin:
-	@$(CC) $(CFLAGS) -o jsmin jsmin.c
-
-clean:
-	@rm -f jsmin
\ No newline at end of file
diff --git a/utils/fulljslint.js b/utils/fulljslint.js
deleted file mode 100644
index 5f196d5..0000000
--- a/utils/fulljslint.js
+++ /dev/null
@@ -1,3237 +0,0 @@
-// jslint.js
-// 2007-06-19
-/*
-Copyright (c) 2002 Douglas Crockford  (www.JSLint.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-The Software shall be used for Good, not Evil.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-
-/*
-    JSLINT is a global function. It takes two parameters.
-
-        var myResult = JSLINT(source, option);
-
-    The first parameter is either a string or an array of strings. If it is a
-    string, it will be split on '\n' or '\r'. If it is an array of strings, it
-    is assumed that each string represents one line. The source can be a
-    JavaScript text, or HTML text, or a Konfabulator text.
-
-    The second parameter is an optional object of options which control the
-    operation of JSLINT. All of the options are booleans. All are optional and
-    have a default value of false.
-
-    If it checks out, JSLINT returns true. Otherwise, it returns false.
-
-    If false, you can inspect JSLINT.errors to find out the problems.
-    JSLINT.errors is an array of objects containing these members:
-
-    {
-        line      : The line (relative to 0) at which the lint was found
-        character : The character (relative to 0) at which the lint was found
-        reason    : The problem
-        evidence  : The text line in which the problem occurred
-        raw       : The raw message before the details were inserted
-        a         : The first detail
-        b         : The second detail
-        c         : The third detail
-        d         : The fourth detail
-    }
-
-    If a fatal error was found, a null will be the last element of the
-    JSLINT.errors array.
-
-    You can request a Function Report, which shows all of the functions
-    and the parameters and vars that they use. This can be used to find
-    implied global variables and other problems. The report is in HTML and
-    can be inserted in a <body>.
-
-        var myReport = JSLINT.report(option);
-
-    If the option is true, then the report will be limited to only errors.
-*/
-
-/*jslint evil: true, nomen: false */
-
-Object.prototype.beget = function () {
-    function F() {}
-    F.prototype = this;
-    return new F();
-};
-
-String.prototype.entityify = function () {
-    return this.
-        replace(/&/g, '&').
-        replace(/</g, '<').
-        replace(/>/g, '>');
-};
-
-String.prototype.isAlpha = function () {
-    return (this >= 'a' && this <= 'z\uffff') ||
-        (this >= 'A' && this <= 'Z\uffff');
-};
-
-
-String.prototype.isDigit = function () {
-    return (this >= '0' && this <= '9');
-};
-
-
-String.prototype.supplant = function (o) {
-    return this.replace(/{([^{}]*)}/g, function (a, b) {
-        var r = o[b];
-        return typeof r === 'string' || typeof r === 'number' ? r : a;
-    });
-};
-
-
-
-// We build the application inside a function so that we produce only a single
-// global variable. The function will be invoked, its return value is the JSLINT
-// function itself.
-
-var JSLINT;
-JSLINT = function () {
-
-// These are words that should not be permitted in third party ads.
-
-    var adsafe = {
-        activexobject   : true,
-        alert           : true,
-        back            : true,
-        body            : true,
-        close           : true,
-        confirm         : true,
-        cookie          : true,
-        constructor     : true,
-        createpopup     : true,
-        defaultstatus   : true,
-        defaultview     : true,
-        document        : true,
-        documentelement : true,
-        domain          : true,
-        'eval'          : true,
-        execScript      : true,
-        external        : true,
-        forms           : true,
-        forward         : true,
-        frameelement    : true,
-        fromcharcode    : true,
-        history         : true,
-        home            : true,
-        location        : true,
-        moveby          : true,
-        moveto          : true,
-        navigate        : true,
-        opener          : true,
-        parent          : true,
-        print           : true,
-        prompt          : true,
-        prototype       : true,
-        referrer        : true,
-        resizeby        : true,
-        resizeto        : true,
-        self            : true,
-        showhelp        : true,
-        showmodaldialog : true,
-        status          : true,
-        stop            : true,
-        top             : true,
-        window          : true,
-        write           : true,
-        writeln         : true,
-        __proto__       : true
-    };
-
-// These are all of the JSLint options.
-
-    var allOptions =     {
-        adsafe     : true, // if use of some browser features should be restricted
-        bitwise    : true, // if bitwise operators should not be allowed
-        browser    : true, // if the standard browser globals should be predefined
-        cap        : true, // if upper case HTML should be allowed
-        debug      : true, // if debugger statements should be allowed
-        eqeqeq     : true, // if === should be required
-        evil       : true, // if eval should be allowed
-        fragment   : true, // if HTML fragments should be allowed
-        laxbreak   : true, // if line breaks should not be checked
-        nomen      : true, // if names should be checked
-        passfail   : true, // if the scan should stop on first error
-        plusplus   : true, // if increment/decrement should not be allowed
-        rhino      : true, // if the Rhino environment globals should be predefined
-        undef      : true, // if undefined variables are errors
-        white      : true, // if strict whitespace rules apply
-        widget     : true  // if the Yahoo Widgets globals should be predefined
-    };
-
-    var anonname;   // The guessed name for anonymous functions.
-
-// browser contains a set of global names which are commonly provided by a
-// web browser environment.
-
-    var browser = {
-        alert           : true,
-        blur            : true,
-        clearInterval   : true,
-        clearTimeout    : true,
-        close           : true,
-        closed          : true,
-        confirm         : true,
-        console         : true,
-        Debug           : true,
-        defaultStatus   : true,
-        document        : true,
-        event           : true,
-        focus           : true,
-        frames          : true,
-        history         : true,
-        Image           : true,
-        length          : true,
-        location        : true,
-        moveBy          : true,
-        moveTo          : true,
-        name            : true,
-        navigator       : true,
-        onblur          : true,
-        onerror         : true,
-        onfocus         : true,
-        onload          : true,
-        onresize        : true,
-        onunload        : true,
-        open            : true,
-        opener          : true,
-        opera           : true,
-        parent          : true,
-        print           : true,
-        prompt          : true,
-        resizeBy        : true,
-        resizeTo        : true,
-        screen          : true,
-        scroll          : true,
-        scrollBy        : true,
-        scrollTo        : true,
-        self            : true,
-        setInterval     : true,
-        setTimeout      : true,
-        status          : true,
-        top             : true,
-        window          : true,
-        XMLHttpRequest  : true
-    };
-    var funlab;
-    var funstack;
-    var functions;
-    var globals;
-    var inblock;
-    var indent;
-
-// konfab contains the global names which are provided to a Yahoo
-// (fna Konfabulator) widget.
-
-    var konfab = {
-        alert                   : true,
-        appleScript             : true,
-        animator                : true,
-        appleScript             : true,
-        beep                    : true,
-        bytesToUIString         : true,
-        Canvas                  : true,
-        chooseColor             : true,
-        chooseFile              : true,
-        chooseFolder            : true,
-        convertPathToHFS        : true,
-        convertPathToPlatform   : true,
-        closeWidget             : true,
-        COM                     : true,
-        CustomAnimation         : true,
-        escape                  : true,
-        FadeAnimation           : true,
-        filesystem              : true,
-        focusWidget             : true,
-        form                    : true,
-        Frame                   : true,
-        HotKey                  : true,
-        Image                   : true,
-        include                 : true,
-        isApplicationRunning    : true,
-        iTunes                  : true,
-        konfabulatorVersion     : true,
-        log                     : true,
-        MenuItem                : true,
-        MoveAnimation           : true,
-        openURL                 : true,
-        play                    : true,
-        Point                   : true,
-        popupMenu               : true,
-        preferenceGroups        : true,
-        preferences             : true,
-        print                   : true,
-        prompt                  : true,
-        random                  : true,
-        reloadWidget            : true,
-        resolvePath             : true,
-        resumeUpdates           : true,
-        RotateAnimation         : true,
-        runCommand              : true,
-        runCommandInBg          : true,
-        saveAs                  : true,
-        savePreferences         : true,
-        screen                  : true,
-        ScrollBar               : true,
-        showWidgetPreferences   : true,
-        sleep                   : true,
-        speak                   : true,
-        suppressUpdates         : true,
-        system                  : true,
-        tellWidget              : true,
-        Text                    : true,
-        TextArea                : true,
-        unescape                : true,
-        updateNow               : true,
-        URL                     : true,
-        widget                  : true,
-        Window                  : true,
-        XMLDOM                  : true,
-        XMLHttpRequest          : true,
-        yahooCheckLogin         : true,
-        yahooLogin              : true,
-        yahooLogout             : true
-    };
-    var lines;
-    var lookahead;
-    var member;
-    var nexttoken;
-    var noreach;
-    var option;
-    var prereg;
-    var prevtoken;
-    var quit;
-    var rhino = {
-        defineClass : true,
-        deserialize : true,
-        gc          : true,
-        help        : true,
-        load        : true,
-        loadClass   : true,
-        print       : true,
-        quit        : true,
-        readFile    : true,
-        readUrl     : true,
-        runCommand  : true,
-        seal        : true,
-        serialize   : true,
-        spawn       : true,
-        sync        : true,
-        toint32     : true,
-        version     : true
-    };
-    var stack;
-
-// standard contains the global names that are provided by the
-// ECMAScript standard.
-
-    var standard = {
-        Array               : true,
-        Boolean             : true,
-        Date                : true,
-        decodeURI           : true,
-        decodeURIComponent  : true,
-        encodeURI           : true,
-        encodeURIComponent  : true,
-        Error               : true,
-        escape              : true,
-        'eval'              : true,
-        EvalError           : true,
-        Function            : true,
-        isFinite            : true,
-        isNaN               : true,
-        Math                : true,
-        Number              : true,
-        Object              : true,
-        parseInt            : true,
-        parseFloat          : true,
-        RangeError          : true,
-        ReferenceError      : true,
-        RegExp              : true,
-        String              : true,
-        SyntaxError         : true,
-        TypeError           : true,
-        unescape            : true,
-        URIError            : true
-    };
-    var syntax = {};
-    var token;
-    var verb;
-    var warnings;
-    var wmode;
-
-//  xmode is used to adapt to the exceptions in XML parsing.
-//  It can have these states:
-//      false   .js script file
-//      "       A " attribute
-//      '       A ' attribute
-//      content The content of a script tag
-//      CDATA   A CDATA block
-
-    var xmode;
-
-//  xtype identifies the type of document being analyzed.
-//  It can have these states:
-//      false   .js script file
-//      html    .html file
-//      widget  .kon Konfabulator file
-
-    var xtype;
-// token
-    var tx = /^\s*([(){}[.,:;'"~]|\](\]>)?|\?>?|==?=?|\/(\*(global|extern|jslint)?|=|\/)?|\*[\/=]?|\+[+=]?|-[-=]?|%[=>]?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=%\?]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+-]?[0-9]+)?)/;
-// regular expression
-    var rx = /^(\\[^\x00-\x1f]|\[(\\[^\x00-\x1f]|[^\x00-\x1f\\\/])*\]|[^\x00-\x1f\\\/\[])+\/[gim]*/;
-// star slash
-    var lx = /\*\/|\/\*/;
-// global identifier
-    var gx = /^\s*([a-zA-Z_$][a-zA-Z0-9_$]*)/;
-// identifier
-    var ix = /^([a-zA-Z_$][a-zA-Z0-9_$]*$)/;
-// global separators
-    var hx = /^[\x00-\x20]*(,|\*\/)/;
-// boolean
-    var bx = /^\s*(true|false)/;
-// colon
-    var cx = /^\s*(:)/;
-// javascript url
-    var jx = /(javascript|jscript|ecmascript)\s*:/i;
-
-
-// Produce an error warning.
-
-    function warning(m, t, a, b, c, d) {
-        var ch, l, w;
-        t = t || nexttoken;
-        if (t.id === '(end)') {
-            t = token;
-        }
-        l = t.line || 0;
-        ch = t.from || 0;
-        w = {
-            id: '(error)',
-            raw: m,
-            evidence: lines[l] || '',
-            line: l,
-            character: ch,
-            a: a,
-            b: b,
-            c: c,
-            d: d
-        };
-        w.reason = m.supplant(w);
-        JSLINT.errors.push(w);
-        if (option.passfail) {
-            quit('Stopping. ', l, ch);
-        }
-        warnings += 1;
-        if (warnings === 50) {
-            quit("Too many errors.", l, ch);
-        }
-        return w;
-    }
-
-    function warningAt(m, l, ch, a, b, c, d) {
-        return warning(m, {
-            line: l,
-            from: ch
-        }, a, b, c, d);
-    }
-
-    function error(m, t, a, b, c, d) {
-        var w = warning(m, t, a, b, c, d);
-        quit("Stopping, unable to continue.", w.line, w.character);
-    }
-
-    function errorAt(m, l, ch, a, b, c, d) {
-        return error(m, {
-            line: l,
-            from: ch
-        }, a, b, c, d);
-    }
-
-    quit = function quit(m, l, ch) {
-        warningAt("{a} ({b}% scanned).",
-                l, ch, m, Math.floor((l / lines.length) * 100));
-        JSLINT.errors.push(null);
-        throw null;
-    };
-
-
-
-// lexical analysis
-
-    var lex = function () {
-        var character;
-        var from;
-        var line;
-        var s;
-
-// Private lex methods
-
-        function nextLine() {
-            line += 1;
-            if (line >= lines.length) {
-                return false;
-            }
-            character = 0;
-            s = lines[line];
-            return true;
-        }
-
-// Produce a token object.  The token inherits from a syntax symbol.
-
-        function it(type, value, quote) {
-            var i, t;
-            if (option.adsafe &&
-                    adsafe.hasOwnProperty(value.toLowerCase())) {
-                warning("Adsafe restricted word '{a}'.",
-                        {line: line, from: character}, value);
-            }
-            if (type === '(punctuator)' ||
-                    (type === '(identifier)' && syntax.hasOwnProperty(value))) {
-                t = syntax[value];
-
-// Mozilla bug workaround.
-
-                if (!t.id) {
-                    t = syntax[type];
-                }
-            } else {
-                t = syntax[type];
-            }
-            t = t.beget();
-            if (type === '(string)') {
-                if (/(javascript|jscript|ecmascript)\s*:/i.test(value)) {
-                    warningAt("JavaScript URL.", line, from);
-                }
-            }
-            t.value = value;
-            t.line = line;
-            t.character = character;
-            t.from = from;
-            if (quote) {
-                t.quote = quote;
-            }
-            i = t.id;
-            prereg = i &&
-                    (('(,=:[!&|?{};'.indexOf(i.charAt(i.length - 1)) >= 0) ||
-                    i === 'return');
-            return t;
-        }
-
-// Public lex methods
-
-        return {
-            init: function (source) {
-                if (typeof source === 'string') {
-                    lines = source.split('\r\n');
-                    if (lines.length === 1) {
-                        lines = lines[0].split('\n');
-                        if (lines.length === 1) {
-                            lines = lines[0].split('\r');
-                        }
-                    }
-                } else {
-                    lines = source;
-                }
-                line = 0;
-                character = 0;
-                from = 0;
-                s = lines[0];
-            },
-
-// token -- this is called by advance to get the next token.
-
-            token: function () {
-                var c;
-                var i;
-                var l;
-                var r;
-                var t;
-
-                function match(x) {
-                    var r = x.exec(s), r1;
-                    if (r) {
-                        l = r[0].length;
-                        r1 = r[1];
-                        c = r1.charAt(0);
-                        s = s.substr(l);
-                        character += l;
-                        from = character - r1.length;
-                        return r1;
-                    }
-                }
-
-                function more() {
-                    while (!s) {
-                        if (!nextLine()) {
-                            errorAt("Unclosed comment.", line, character);
-                        }
-                    }
-                }
-
-                function string(x) {
-                    var c, j, r = '';
-
-                    if (xmode === x || xmode === 'string') {
-                        return it('(punctuator)', x);
-                    }
-
-                    function esc(n) {
-                        var i = parseInt(s.substr(j + 1, n), 16);
-                        j += n;
-                        if (i >= 32 && i <= 127) {
-                            warningAt("Unnecessary escapement.", line, character);
-                        }
-                        character += n;
-                        c = String.fromCharCode(i);
-                    }
-
-                    for (j = 0; j < s.length; j += 1) {
-                        c = s.charAt(j);
-                        if (c === x) {
-                            character += 1;
-                            s = s.substr(j + 1);
-                            return it('(string)', r, x);
-                        }
-                        if (c < ' ') {
-                            if (c === '\n' || c === '\r') {
-                                break;
-                            }
-                            warningAt("Control character in string: {a}.",
-                                    line, character + j, s.substring(0, j));
-                        } else if (c === '<') {
-                            if (s.charAt(j + 1) === '/' && xmode && xmode !== 'CDATA') {
-                                warningAt("Expected '<\\/' and instead saw '</'.", line, character);
-                            }
-                        } else if (c === '\\') {
-                            j += 1;
-                            character += 1;
-                            c = s.charAt(j);
-                            switch (c) {
-                            case '\\':
-                            case '\'':
-                            case '"':
-                            case '/':
-                                break;
-                            case 'b':
-                                c = '\b';
-                                break;
-                            case 'f':
-                                c = '\f';
-                                break;
-                            case 'n':
-                                c = '\n';
-                                break;
-                            case 'r':
-                                c = '\r';
-                                break;
-                            case 't':
-                                c = '\t';
-                                break;
-                            case 'u':
-                                esc(4);
-                                break;
-                            case 'v':
-                                c = '\v';
-                                break;
-                            case 'x':
-                                esc(2);
-                                break;
-                            default:
-                                warningAt("Bad escapement.", line, character);
-                            }
-                        }
-                        r += c;
-                        character += 1;
-                    }
-                    errorAt("Unclosed string.", line, from);
-                }
-
-                for (;;) {
-                    if (!s) {
-                        return it(nextLine() ? '(endline)' : '(end)', '');
-                    }
-                    t = match(tx);
-                    if (!t) {
-                        t = '';
-                        c = '';
-                        while (s && s < '!') {
-                            s = s.substr(1);
-                        }
-                        if (s) {
-                            errorAt("Unexpected '{a}'.",
-                                    line, character, s.substr(0, 1));
-                        }
-                    }
-
-//      identifier
-
-                    if (c.isAlpha() || c === '_' || c === '$') {
-                        return it('(identifier)', t);
-                    }
-
-//      number
-
-                    if (c.isDigit()) {
-                        if (!isFinite(Number(t))) {
-                            warningAt("Bad number '{a}'.",
-                                line, character, t);
-                        }
-                        if (s.substr(0, 1).isAlpha()) {
-                            warningAt("Missing space after '{a}'.",
-                                    line, character, t);
-                        }
-                        if (c === '0' && t.substr(1,1).isDigit()) {
-                            warningAt("Don't use extra leading zeros '{a}'.",
-                                    line, character, t);
-                        }
-                        if (t.substr(t.length - 1) === '.') {
-                            warningAt(
-    "A trailing decimal point can be confused with a dot '{a}'.",
-                                    line, character, t);
-                        }
-                        return it('(number)', t);
-                    }
-
-//      string
-
-                    switch (t) {
-                    case '"':
-                    case "'":
-                        return string(t);
-
-//      // comment
-
-                    case '//':
-                        s = '';
-                        break;
-
-//      /* comment
-
-                    case '/*':
-                        for (;;) {
-                            i = s.search(lx);
-                            if (i >= 0) {
-                                break;
-                            }
-                            if (!nextLine()) {
-                                errorAt("Unclosed comment.", line, character);
-                            }
-                        }
-                        character += i + 2;
-                        if (s.substr(i, 1) === '/') {
-                            errorAt("Nested comment.", line, character);
-                        }
-                        s = s.substr(i + 2);
-                        break;
-
-//      /*extern
-
-                    case '/*extern':
-                    case '/*global':
-                        for (;;) {
-                            more();
-                            r = match(hx);
-                            if (r === '*/') {
-                                break;
-                            }
-                            if (r !== ',') {
-                                more();
-                                r = match(gx);
-                                if (r) {
-                                    globals[r] = true;
-                                } else {
-                                    errorAt("Bad extern identifier '{a}'.",
-                                            line, character, s);
-                                }
-                            }
-                        }
-                        return this.token();
-
-//      /*jslint
-
-                    case '/*jslint':
-                        if (option.adsafe) {
-                            errorAt("Adsafe restriction.", line, character);
-                        }
-                        for (;;) {
-                            more();
-                            r = match(hx);
-                            if (r === '*/') {
-                                break;
-                            }
-                            if (r !== ',') {
-                                more();
-                                r = match(gx);
-                                if (r) {
-                                    if (!allOptions.hasOwnProperty(r)) {
-                                        errorAt("Bad jslint option '{a}'.",
-                                                line, character, r);
-                                    }
-                                    more();
-                                    if (!match(cx)) {
-                                        errorAt("Missing ':' after '{a}'.",
-                                            line, character, r);
-                                    }
-                                    more();
-                                    t = match(bx);
-                                    if (!t) {
-                                        errorAt("Missing boolean after '{a}'.",
-                                            line, character, r);
-                                    }
-                                    option[r] = t === 'true';
-                                } else {
-                                    errorAt("Bad jslint option '{a}'.",
-                                            line, character, s);
-                                }
-                            }
-                        }
-                        break;
-
-//      */
-
-                    case '*/':
-                        errorAt("Unbegun comment.", line, character);
-                        break;
-
-                    case '':
-                        break;
-//      /
-                    case '/':
-                        if (prereg) {
-                            r = rx.exec(s);
-                            if (r) {
-                                c = r[0];
-                                l = c.length;
-                                character += l;
-                                s = s.substr(l);
-                                return it('(regex)', c);
-                            }
-                            errorAt("Bad regular expression.", line, character);
-                        }
-                        return it('(punctuator)', t);
-
-//      punctuator
-
-                    default:
-                        return it('(punctuator)', t);
-                    }
-                }
-            },
-
-// skip -- skip past the next occurrence of a particular string.
-// If the argument is empty, skip to just before the next '<' character.
-// This is used to ignore HTML content. Return false if it isn't found.
-
-            skip: function (p) {
-                var i, t = p;
-                if (nexttoken.id) {
-                    if (!t) {
-                        t = '';
-                        if (nexttoken.id.substr(0, 1) === '<') {
-                            lookahead.push(nexttoken);
-                            return true;
-                        }
-                    } else if (nexttoken.id.indexOf(t) >= 0) {
-                        return true;
-                    }
-                }
-                token = nexttoken;
-                nexttoken = syntax['(end)'];
-                for (;;) {
-                    i = s.indexOf(t || '<');
-                    if (i >= 0) {
-                        character += i + t.length;
-                        s = s.substr(i + t.length);
-                        return true;
-                    }
-                    if (!nextLine()) {
-                        break;
-                    }
-                }
-                return false;
-            }
-        };
-    }();
-
-    function builtin(name) {
-        return standard[name] === true ||
-               globals[name] === true ||
-              (option.rhino && rhino[name] === true) ||
-             ((xtype === 'widget' || option.widget) && konfab[name] === true) ||
-             ((xtype === 'html' || option.browser) && browser[name] === true);
-    }
-
-    function addlabel(t, type) {
-        if (t) {
-            if (typeof funlab[t] === 'string') {
-                switch (funlab[t]) {
-                case 'var':
-                case 'var*':
-                    if (type === 'global') {
-                        funlab[t] = 'var*';
-                        return;
-                    }
-                    break;
-                case 'global':
-                    if (type === 'var') {
-                        warning("Variable {a} was used before it was declared.", token, t);
-                        return;
-                    }
-                    if (type === 'var*' || type === 'global') {
-                        return;
-                    }
-                    break;
-                case 'function':
-                case 'parameter':
-                    if (type === 'global') {
-                        return;
-                    }
-                    break;
-                }
-                warning("Identifier {a} already declared as {b}.",
-                        token, t, funlab[t]);
-            }
-            funlab[t] = type;
-        }
-    }
-
-
-// We need a peek function. If it has an argument, it peeks that much farther
-// ahead. It is used to distinguish
-//     for ( var i in ...
-// from
-//     for ( var i = ...
-
-    function peek(p) {
-        var i = p || 0, j = 0;
-        var t;
-/****        if (nexttoken === syntax['(error)']) {
-            return nexttoken;
-        }****/
-        while (j <= i) {
-            t = lookahead[j];
-            if (!t) {
-                t = lookahead[j] = lex.token();
-            }
-            j += 1;
-        }
-        return t;
-    }
-
-
-    var badbreak = {
-        ')': true,
-        ']': true,
-        '++': true,
-        '--': true
-    };
-
-// Produce the next token. It looks for programming errors.
-
-    function advance(id, t) {
-        var l;
-        switch (token.id) {
-        case '(number)':
-            if (nexttoken.id === '.') {
-                warning(
-"A dot following a number can be confused with a decimal point.", token);
-            }
-            break;
-        case '-':
-            if (nexttoken.id === '-' || nexttoken.id === '--') {
-                warning("Confusing minusses.");
-            }
-            break;
-        case '+':
-            if (nexttoken.id === '+' || nexttoken.id === '++') {
-                warning("Confusing plusses.");
-            }
-            break;
-        }
-        if (token.type === '(string)' || token.identifier) {
-            anonname = token.value;
-        }
-
-        if (id && nexttoken.id !== id) {
-            if (t) {
-                if (nexttoken.id === '(end)') {
-                    warning("Unmatched '{a}'.", t, t.id);
-                } else {
-                    warning("Expected '{a}' to match '{b}' from line {c} and instead saw '{d}'.",
-                            nexttoken, id, t.id, t.line + 1, nexttoken.value);
-                }
-            } else {
-                warning("Expected '{a}' and instead saw '{b}'.",
-                        nexttoken, id, nexttoken.value);
-            }
-        }
-        prevtoken = token;
-        token = nexttoken;
-        for (;;) {
-            nexttoken = lookahead.shift() || lex.token();
-            if (nexttoken.id === '<![') {
-                if (xtype === 'html') {
-                    error("Unexpected '{a}'.", nexttoken, '<![');
-                }
-                if (xmode === 'script') {
-                    nexttoken = lex.token();
-                    if (nexttoken.value !== 'CDATA') {
-                        error("Missing '{a}'.", nexttoken, 'CDATA');
-                    }
-                    nexttoken = lex.token();
-                    if (nexttoken.id !== '[') {
-                        error("Missing '{a}'.", nexttoken, '[');
-                    }
-                    xmode = 'CDATA';
-                } else if (xmode === 'xml') {
-                    lex.skip(']]>');
-                } else {
-                    error("Unexpected '{a}'.", nexttoken, '<![');
-                }
-            } else if (nexttoken.id === ']]>') {
-                if (xmode === 'CDATA') {
-                    xmode = 'script';
-                } else {
-                    error("Unexpected '{a}'.", nexttoken, ']]>');
-                }
-            } else if (nexttoken.id !== '(endline)') {
-                break;
-            }
-            if (xmode === '"' || xmode === "'") {
-                error("Missing '{a}'.", token, xmode);
-            }
-            l = !xmode && !option.laxbreak &&
-                (token.type === '(string)' || token.type === '(number)' ||
-                token.type === '(identifier)' || badbreak[token.id]);
-        }
-        if (l) {
-            switch (nexttoken.id) {
-            case '{':
-            case '}':
-            case ']':
-                break;
-            case ')':
-                switch (token.id) {
-                case ')':
-                case '}':
-                case ']':
-                    break;
-                default:
-                    warning("Line breaking error '{a}'.", token, ')');
-                }
-                break;
-            default:
-                warning("Line breaking error '{a}'.",
-                        token, token.value);
-            }
-        }
-        if (xtype === 'widget' && xmode === 'script' && nexttoken.id) {
-            l = nexttoken.id.charAt(0);
-            if (l === '<' || l === '&') {
-                nexttoken.nud = nexttoken.led = null;
-                nexttoken.lbp = 0;
-                nexttoken.reach = true;
-            }
-        }
-    }
-
-
-    function beginfunction(i) {
-        var f = {
-            '(name)': i,
-            '(line)': nexttoken.line + 1,
-            '(context)': funlab
-        };
-        funstack.push(funlab);
-        funlab = f;
-        functions.push(funlab);
-    }
-
-
-    function endfunction() {
-        funlab = funstack.pop();
-    }
-
-
-// This is the heart of JSLINT, the Pratt parser. In addition to parsing, it
-// is looking for ad hoc lint patterns. We add to Pratt's model .fud, which is
-// like nud except that it is only used on the first token of a statement.
-// Having .fud makes it much easier to define JavaScript. I retained Pratt's
-// nomenclature.
-
-// .nud     Null denotation
-// .fud     First null denotation
-// .led     Left denotation
-//  lbp     Left binding power
-//  rbp     Right binding power
-
-// They are key to the parsing method called Top Down Operator Precedence.
-
-    function parse(rbp, initial) {
-        var l;
-        var left;
-        var o;
-        if (nexttoken.id === '(end)') {
-            error("Unexpected early end of program.", token);
-        }
-        advance();
-        if (initial) {
-            anonname = 'anonymous';
-            verb = token.value;
-        }
-        if (initial && token.fud) {
-            token.fud();
-        } else {
-            if (token.nud) {
-                o = token.exps;
-                left = token.nud();
-            } else {
-                if (nexttoken.type === '(number)' && token.id === '.') {
-                    warning(
-"A leading decimal point can be confused with a dot: '.{a}'.",
-                            token, nexttoken.value);
-                    advance();
-                    return token;
-                } else {
-                    error("Expected an identifier and instead saw '{a}'.",
-                            token, token.id);
-                }
-            }
-            while (rbp < nexttoken.lbp) {
-                o = nexttoken.exps;
-                advance();
-                if (token.led) {
-                    left = token.led(left);
-                } else {
-                    error("Expected an operator and instead saw '{a}'.",
-                        token, token.id);
-                }
-            }
-            if (initial && !o) {
-                warning(
-"Expected an assignment or function call and instead saw an expression.",
-                        token);
-            }
-        }
-        if (l) {
-            funlab[l] = 'label';
-        }
-        if (!option.evil && left && left.value === 'eval') {
-            warning("eval is evil.", left);
-        }
-        return left;
-    }
-
-
-// Functions for conformance of style.
-
-    function adjacent(left, right) {
-        if (option.white) {
-            if (left.character !== right.from) {
-                warning("Unexpected space after '{a}'.",
-                        nexttoken, left.value);
-            }
-        }
-    }
-
-
-    function nonadjacent(left, right) {
-        if (option.white) {
-            if (left.character === right.from) {
-                warning("Missing space after '{a}'.",
-                        nexttoken, left.value);
-            }
-        }
-    }
-
-    function indentation(bias) {
-        var i;
-        if (option.white && nexttoken.id !== '(end)') {
-            i = indent + (bias || 0);
-            if (nexttoken.from !== i) {
-                warning("Expected '{a}' to have an indentation of {b} instead of {c}.",
-                        nexttoken, nexttoken.value, i, nexttoken.from);
-            }
-        }
-    }
-
-
-
-// Parasitic constructors for making the symbols that will be inherited by
-// tokens.
-
-    function symbol(s, p) {
-        return syntax[s] || (syntax[s] = {
-            id: s,
-            lbp: p,
-            value: s
-        });
-    }
-
-
-    function delim(s) {
-        return symbol(s, 0);
-    }
-
-
-    function stmt(s, f) {
-        var x = delim(s);
-        x.identifier = x.reserved = true;
-        x.fud = f;
-        return x;
-    }
-
-
-    function blockstmt(s, f) {
-        var x = stmt(s, f);
-        x.block = true;
-        return x;
-    }
-
-
-    function reserveName(x) {
-        var c = x.id.charAt(0);
-        if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
-            x.identifier = x.reserved = true;
-        }
-        return x;
-    }
-
-
-    function prefix(s, f) {
-        var x = symbol(s, 150);
-        reserveName(x);
-        x.nud = (typeof f === 'function') ? f : function () {
-            if (option.plusplus && (this.id === '++' || this.id === '--')) {
-                warning("Unexpected use of '{a}'.", this, this.id);
-            }
-            parse(150);
-            return this;
-        };
-        return x;
-    }
-
-
-    function type(s, f) {
-        var x = delim(s);
-        x.type = s;
-        x.nud = f;
-        return x;
-    }
-
-
-    function reserve(s, f) {
-        var x = type(s, f);
-        x.identifier = x.reserved = true;
-        return x;
-    }
-
-
-    function reservevar(s) {
-        return reserve(s, function () {
-            return this;
-        });
-    }
-
-
-    function infix(s, f, p) {
-        var x = symbol(s, p);
-        reserveName(x);
-        x.led = (typeof f === 'function') ? f : function (left) {
-            nonadjacent(prevtoken, token);
-            nonadjacent(token, nexttoken);
-            return [this.id, left, parse(p)];
-        };
-        return x;
-    }
-
-
-    function relation(s, f) {
-        var x = symbol(s, 100);
-        x.led = function (left) {
-            nonadjacent(prevtoken, token);
-            nonadjacent(token, nexttoken);
-            var right = parse(100);
-            if ((left && left.id === 'NaN') || (right && right.id === 'NaN')) {
-                warning("Use the isNaN function to compare with NaN.", this);
-            } else if (f) {
-                f.apply(this, [left, right]);
-            }
-            return [this.id, left, right];
-        };
-        return x;
-    }
-
-
-    function isPoorRelation(node) {
-        return (node.type === '(number)' && !+node.value) ||
-               (node.type === '(string)' && !node.value) ||
-                node.type === 'true' ||
-                node.type === 'false' ||
-                node.type === 'undefined' ||
-                node.type === 'null';
-    }
-
-
-    function assignop(s, f) {
-        symbol(s, 20).exps = true;
-        return infix(s, function (left) {
-            nonadjacent(prevtoken, token);
-            nonadjacent(token, nexttoken);
-            if (left) {
-                if (left.id === '.' || left.id === '[' ||
-                        (left.identifier && !left.reserved)) {
-                    parse(19);
-                    return left;
-                }
-                if (left === syntax['function']) {
-                    warning(
-"Expected an identifier in an assignment and instead saw a function invocation.",
-                                token);
-                }
-            }
-            error("Bad assignment.", this);
-        }, 20);
-    }
-
-    function bitwise(s, f, p) {
-        var x = symbol(s, p);
-        reserveName(x);
-        x.led = (typeof f === 'function') ? f : function (left) {
-            if (option.bitwise) {
-                warning("Unexpected use of '{a}'.", this, this.id);
-            }
-            nonadjacent(prevtoken, token);
-            nonadjacent(token, nexttoken);
-            return [this.id, left, parse(p)];
-        };
-        return x;
-    }
-
-    function bitwiseassignop(s) {
-        symbol(s, 20).exps = true;
-        return infix(s, function (left) {
-            if (option.bitwise) {
-                warning("Unexpected use of '{a}'.", this, this.id);
-            }
-            nonadjacent(prevtoken, token);
-            nonadjacent(token, nexttoken);
-            if (left) {
-                if (left.id === '.' || left.id === '[' ||
-                        (left.identifier && !left.reserved)) {
-                    parse(19);
-                    return left;
-                }
-                if (left === syntax['function']) {
-                    warning(
-"Expected an identifier in an assignment, and instead saw a function invocation.",
-                                token);
-                }
-            }
-            error("Bad assignment.", this);
-        }, 20);
-    }
-
-
-    function suffix(s, f) {
-        var x = symbol(s, 150);
-        x.led = function (left) {
-            if (option.plusplus) {
-                warning("Unexpected use of '{a}'.", this, this.id);
-            }
-            return [f, left];
-        };
-        return x;
-    }
-
-
-    function optionalidentifier() {
-        if (nexttoken.reserved) {
-            warning("Expected an identifier and instead saw '{a}' (a reserved word).",
-                    nexttoken, nexttoken.id);
-        }
-        if (nexttoken.identifier) {
-            if (option.nomen) {
-                if (nexttoken.value.charAt(0) === '_' ||
-                        nexttoken.value.indexOf('$') >= 0) {
-                    warning("Unexpected characters in '{a}'.",
-                            nexttoken, nexttoken.value);
-                }
-            }
-            advance();
-            return token.value;
-        }
-    }
-
-
-    function identifier() {
-        var i = optionalidentifier();
-        if (i) {
-            return i;
-        }
-        if (token.id === 'function' && nexttoken.id === '(') {
-            warning("Missing name in function statement.");
-        } else {
-            error("Expected an identifier and instead saw '{a}'.",
-                    nexttoken, nexttoken.value);
-        }
-    }
-
-    function reachable(s) {
-        var i = 0;
-        var t;
-        if (nexttoken.id !== ';' || noreach) {
-            return;
-        }
-        for (;;) {
-            t = peek(i);
-            if (t.reach) {
-                return;
-            }
-            if (t.id !== '(endline)') {
-                if (t.id === 'function') {
-                    warning(
-"Inner functions should be listed at the top of the outer function.", t);
-                    break;
-                }
-                warning("Unreachable '{a}' after '{b}'.", t, t.value, s);
-                break;
-            }
-            i += 1;
-        }
-    }
-
-
-    function statement() {
-        var t = nexttoken;
-        if (t.id === ';') {
-            warning("Unnecessary semicolon.", t);
-            advance(';');
-            return;
-        }
-        if (t.identifier && !t.reserved && peek().id === ':') {
-            advance();
-            advance(':');
-            addlabel(t.value, 'live*');
-            if (!nexttoken.labelled) {
-                warning("Label '{a}' on {b} statement.",
-                        nexttoken, t.value, nexttoken.value);
-            }
-            if (jx.test(t.value + ':')) {
-                warning("Label '{a}' looks like a javascript url.",
-                        t, t.value);
-            }
-            nexttoken.label = t.value;
-            t = nexttoken;
-        }
-        parse(0, true);
-        if (!t.block) {
-            if (nexttoken.id !== ';') {
-                warningAt("Missing semicolon.", token.line,
-                        token.from + token.value.length);
-            } else {
-                adjacent(token, nexttoken);
-                advance(';');
-                nonadjacent(token, nexttoken);
-            }
-        }
-    }
-
-
-    function statements() {
-        while (!nexttoken.reach && nexttoken.id !== '(end)') {
-            indentation();
-            statement();
-        }
-    }
-
-
-    function block(f) {
-        var b = inblock;
-        inblock = f;
-        nonadjacent(token, nexttoken);
-        var t = nexttoken;
-        if (nexttoken.id === '{') {
-            advance('{');
-            if (nexttoken.id !== '}' || token.line !== nexttoken.line) {
-                indent += 4;
-                statements();
-                indent -= 4;
-                indentation();
-            }
-            advance('}', t);
-        } else {
-            warning("Expected '{a}' and instead saw '{b}'.",
-                    nexttoken, '{', nexttoken.value);
-            noreach = true;
-            statement();
-            noreach = false;
-        }
-        verb = null;
-        inblock = b;
-    }
-
-
-// An identity function, used by string and number tokens.
-
-    function idValue() {
-        return this;
-    }
-
-
-    function countMember(m) {
-        if (typeof member[m] === 'number') {
-            member[m] += 1;
-        } else {
-            member[m] = 1;
-        }
-    }
-
-
-// Common HTML attributes that carry scripts.
-
-    var scriptstring = {
-        onblur:      true,
-        onchange:    true,
-        onclick:     true,
-        ondblclick:  true,
-        onfocus:     true,
-        onkeydown:   true,
-        onkeypress:  true,
-        onkeyup:     true,
-        onload:      true,
-        onmousedown: true,
-        onmousemove: true,
-        onmouseout:  true,
-        onmouseover: true,
-        onmouseup:   true,
-        onreset:     true,
-        onselect:    true,
-        onsubmit:    true,
-        onunload:    true
-    };
-
-
-// XML types. Currently we support html and widget.
-
-    var xmltype = {
-        HTML: {
-            doBegin: function (n) {
-                if (!option.cap) {
-                    warning("HTML case error.");
-                }
-                xmltype.html.doBegin();
-            }
-        },
-        html: {
-            doBegin: function (n) {
-                xtype = 'html';
-                xmltype.html.script = false;
-            },
-            doTagName: function (n, p) {
-                var i;
-                var t = xmltype.html.tag[n];
-                var x;
-                if (!t) {
-                    error("Unrecognized tag '<{a}>'.",
-                            nexttoken,
-                            n === n.toLowerCase() ? n :
-                                n + ' (capitalization error)');
-                }
-                x = t.parent;
-                if (x) {
-                    if (x.indexOf(' ' + p + ' ') < 0) {
-                        error("A '<{a}>' must be within '<{b}>'.",
-                                token, n, x);
-                    }
-                } else {
-                    i = stack.length;
-                    do {
-                        if (i <= 0) {
-                            error("A '<{a}>' must be within '<{b}>'.",
-                                    token, n, 'body');
-                        }
-                        i -= 1;
-                    } while (stack[i].name !== 'body');
-                }
-                xmltype.html.script = n === 'script';
-                return t.empty;
-            },
-            doAttribute: function (n, a) {
-                if (n === 'script') {
-                    if (a === 'src') {
-                        xmltype.html.script = false;
-                        return 'string';
-                    } else if (a === 'language') {
-                        warning("The 'language' attribute is deprecated.",
-                                token);
-                        return false;
-                    }
-                }
-                if (a === 'href') {
-                    return 'href';
-                }
-                return scriptstring[a] && 'script';
-            },
-            doIt: function (n) {
-                return xmltype.html.script ? 'script' : n !== 'html' &&
-                        xmltype.html.tag[n].special && 'special';
-            },
-            tag: {
-                a:        {},
-                abbr:     {},
-                acronym:  {},
-                address:  {},
-                applet:   {},
-                area:     {empty: true, parent: ' map '},
-                b:        {},
-                base:     {empty: true, parent: ' head '},
-                bdo:      {},
-                big:      {},
-                blockquote: {},
-                body:     {parent: ' html noframes '},
-                br:       {empty: true},
-                button:   {},
-                canvas:   {parent: ' body p div th td '},
-                caption:  {parent: ' table '},
-                center:   {},
-                cite:     {},
-                code:     {},
-                col:      {empty: true, parent: ' table colgroup '},
-                colgroup: {parent: ' table '},
-                dd:       {parent: ' dl '},
-                del:      {},
-                dfn:      {},
-                dir:      {},
-                div:      {},
-                dl:       {},
-                dt:       {parent: ' dl '},
-                em:       {},
-                embed:    {},
-                fieldset: {},
-                font:     {},
-                form:     {},
-                frame:    {empty: true, parent: ' frameset '},
-                frameset: {parent: ' html frameset '},
-                h1:       {},
-                h2:       {},
-                h3:       {},
-                h4:       {},
-                h5:       {},
-                h6:       {},
-                head:     {parent: ' html '},
-                html:     {},
-                hr:       {empty: true},
-                i:        {},
-                iframe:   {},
-                img:      {empty: true},
-                input:    {empty: true},
-                ins:      {},
-                kbd:      {},
-                label:    {},
-                legend:   {parent: ' fieldset '},
-                li:       {parent: ' dir menu ol ul '},
-                link:     {empty: true, parent: ' head '},
-                map:      {},
-                menu:     {},
-                meta:     {empty: true, parent: ' head noscript '},
-                noframes: {parent: ' html body '},
-                noscript: {parent:
-' applet blockquote body button center dd del div fieldset form frameset head html iframe ins li map noframes noscript object td th '},
-                object:   {},
-                ol:       {},
-                optgroup: {parent: ' select '},
-                option:   {parent: ' optgroup select '},
-                p:        {},
-                param:    {empty: true, parent: ' applet object '},
-                pre:      {},
-                q:        {},
-                samp:     {},
-                script:   {parent:
-' head body p div span abbr acronym address bdo blockquote cite code del dfn em ins kbd pre samp strong table tbody td th tr var '},
-                select:   {},
-                small:    {},
-                span:     {},
-                strong:   {},
-                style:    {parent: ' head ', special: true},
-                sub:      {},
-                sup:      {},
-                table:    {},
-                tbody:    {parent: ' table '},
-                td:       {parent: ' tr '},
-                textarea: {},
-                tfoot:    {parent: ' table '},
-                th:       {parent: ' tr '},
-                thead:    {parent: ' table '},
-                title:    {parent: ' head '},
-                tr:       {parent: ' table tbody thead tfoot '},
-                tt:       {},
-                u:        {},
-                ul:       {},
-                'var':    {}
-            }
-        },
-        widget: {
-            doBegin: function (n) {
-                xtype = 'widget';
-            },
-            doTagName: function (n, p) {
-                var t = xmltype.widget.tag[n];
-                if (!t) {
-                    error("Unrecognized tag '<{a}>'.", nexttoken, n);
-                }
-                var x = t.parent;
-                if (x.indexOf(' ' + p + ' ') < 0) {
-                    error("A '<{a}>' must be within '<{b}>'.",
-                            token, n, x);
-                }
-            },
-            doAttribute: function (n, a) {
-                var t = xmltype.widget.tag[a];
-                if (!t) {
-                    error("Unrecognized attribute '<{a} {b}>'.", nexttoken, n, a);
-                }
-                var x = t.parent;
-                if (x.indexOf(' ' + n + ' ') < 0) {
-                    error("Attribute '{a}' does not belong in '<{b}>'.", nexttoken, a, n);
-                }
-                return t.script ? 'script' : a === 'name' ? 'define' : 'string';
-            },
-            doIt: function (n) {
-                var x = xmltype.widget.tag[n];
-                return x && x.script && 'script';
-            },
-            tag: {
-                "about-box":            {parent: ' widget '},
-                "about-image":          {parent: ' about-box '},
-                "about-text":           {parent: ' about-box '},
-                "about-version":        {parent: ' about-box '},
-                action:                 {parent: ' widget ', script: true},
-                alignment:              {parent: ' canvas frame image scrollbar text textarea window '},
-                anchorStyle:            {parent: ' text '},
-                author:                 {parent: ' widget '},
-                autoHide:               {parent: ' scrollbar '},
-                beget:                  {parent: ' canvas frame image scrollbar text window '},
-                bgColor:                {parent: ' text textarea '},
-                bgColour:               {parent: ' text textarea '},
-                bgOpacity:              {parent: ' text textarea '},
-                canvas:                 {parent: ' frame window '},
-                checked:                {parent: ' image menuItem '},
-                clipRect:               {parent: ' image '},
-                color:                  {parent: ' about-text about-version shadow text textarea '},
-                colorize:               {parent: ' image '},
-                colour:                 {parent: ' about-text about-version shadow text textarea '},
-                columns:                {parent: ' textarea '},
-                company:                {parent: ' widget '},
-                contextMenuItems:       {parent: ' canvas frame image scrollbar text textarea window '},
-                copyright:              {parent: ' widget '},
-                data:                   {parent: ' about-text about-version text textarea '},
-                debug:                  {parent: ' widget '},
-                defaultValue:           {parent: ' preference '},
-                defaultTracking:        {parent: ' widget '},
-                description:            {parent: ' preference '},
-                directory:              {parent: ' preference '},
-                editable:               {parent: ' textarea '},
-                enabled:                {parent: ' menuItem '},
-                extension:              {parent: ' preference '},
-                file:                   {parent: ' action preference '},
-                fillMode:               {parent: ' image '},
-                font:                   {parent: ' about-text about-version text textarea '},
-                fontStyle:              {parent: ' textarea '},
-                frame:                  {parent: ' frame window '},
-                group:                  {parent: ' preference '},
-                hAlign:                 {parent: ' canvas frame image scrollbar text textarea '},
-                handleLinks:            {parent: ' textArea '},
-                height:                 {parent: ' canvas frame image scrollbar text textarea window '},
-                hidden:                 {parent: ' preference '},
-                hLineSize:              {parent: ' frame '},
-                hOffset:                {parent: ' about-text about-version canvas frame image scrollbar shadow text textarea window '},
-                hotkey:                 {parent: ' widget '},
-                hRegistrationPoint:     {parent: ' canvas frame image scrollbar text '},
-                hScrollBar:             {parent: ' frame '},
-                hslAdjustment:          {parent: ' image '},
-                hslTinting:             {parent: ' image '},
-                icon:                   {parent: ' preferenceGroup '},
-                id:                     {parent: ' canvas frame hotkey image preference text textarea timer scrollbar widget window '},
-                image:                  {parent: ' about-box frame window widget '},
-                interval:               {parent: ' action timer '},
-                key:                    {parent: ' hotkey '},
-                kind:                   {parent: ' preference '},
-                level:                  {parent: ' window '},
-                lines:                  {parent: ' textarea '},
-                loadingSrc:             {parent: ' image '},
-                locked:                 {parent: ' window '},
-                max:                    {parent: ' scrollbar '},
-                maxLength:              {parent: ' preference '},
-                menuItem:               {parent: ' contextMenuItems '},
-                min:                    {parent: ' scrollbar '},
-                minimumVersion:         {parent: ' widget '},
-                minLength:              {parent: ' preference '},
-                missingSrc:             {parent: ' image '},
-                modifier:               {parent: ' hotkey '},
-                name:                   {parent: ' canvas frame hotkey image preference preferenceGroup scrollbar text textarea timer widget window '},
-                notSaved:               {parent: ' preference '},
-                onClick:                {parent: ' canvas frame image scrollbar text textarea ', script: true},
-                onContextMenu:          {parent: ' canvas frame image scrollbar text textarea window ', script: true},
-                onDragDrop:             {parent: ' canvas frame image scrollbar text textarea ', script: true},
-                onDragEnter:            {parent: ' canvas frame image scrollbar text textarea ', script: true},
-                onDragExit:             {parent: ' canvas frame image scrollbar text textarea ', script: true},
-                onFirstDisplay:         {parent: ' window ', script: true},
-                onGainFocus:            {parent: ' textarea window ', script: true},
-                onKeyDown:              {parent: ' hotkey text textarea window ', script: true},
-                onKeyPress:             {parent: ' textarea window ', script: true},
-                onKeyUp:                {parent: ' hotkey text textarea window ', script: true},
-                onImageLoaded:          {parent: ' image ', script: true},
-                onLoseFocus:            {parent: ' textarea window ', script: true},
-                onMouseDown:            {parent: ' canvas frame image scrollbar text textarea window ', script: true},
-                onMouseDrag:            {parent: ' canvas frame image scrollbar text textArea window ', script: true},
-                onMouseEnter:           {parent: ' canvas frame image scrollbar text textarea window ', script: true},
-                onMouseExit:            {parent: ' canvas frame image scrollbar text textarea window ', script: true},
-                onMouseMove:            {parent: ' canvas frame image scrollbar text textarea window ', script: true},
-                onMouseUp:              {parent: ' canvas frame image scrollbar text textarea window ', script: true},
-                onMouseWheel:           {parent: ' frame ', script: true},
-                onMultiClick:           {parent: ' canvas frame image scrollbar text textarea window ', script: true},
-                onSelect:               {parent: ' menuItem ', script: true},
-                onTextInput:            {parent: ' window ', script: true},
-                onTimerFired:           {parent: ' timer ', script: true},
-                onValueChanged:         {parent: ' scrollbar ', script: true},
-                opacity:                {parent: ' canvas frame image scrollbar shadow text textarea window '},
-                option:                 {parent: ' preference widget '},
-                optionValue:            {parent: ' preference '},
-                order:                  {parent: ' preferenceGroup '},
-                orientation:            {parent: ' scrollbar '},
-                pageSize:               {parent: ' scrollbar '},
-                preference:             {parent: ' widget '},
-                preferenceGroup:        {parent: ' widget '},
-                remoteAsync:            {parent: ' image '},
-                requiredPlatform:       {parent: ' widget '},
-                root:                   {parent: ' window '},
-                rotation:               {parent: ' canvas frame image scrollbar text '},
-                scrollbar:              {parent: ' frame text textarea window '},
-                scrolling:              {parent: ' text '},
-                scrollX:                {parent: ' frame '},
-                scrollY:                {parent: ' frame '},
-                secure:                 {parent: ' preference textarea '},
-                shadow:                 {parent: ' about-text about-version text window '},
-                size:                   {parent: ' about-text about-version text textarea '},
-                spellcheck:             {parent: ' textarea '},
-                src:                    {parent: ' image '},
-                srcHeight:              {parent: ' image '},
-                srcWidth:               {parent: ' image '},
-                style:                  {parent: ' about-text about-version canvas frame image preference scrollbar text textarea window '},
-                subviews:               {parent: ' frame '},
-                superview:              {parent: ' canvas frame image scrollbar text textarea '},
-                text:                   {parent: ' frame text textarea window '},
-                textarea:               {parent: ' frame window '},
-                timer:                  {parent: ' widget '},
-                thumbColor:             {parent: ' scrollbar textarea '},
-                ticking:                {parent: ' timer '},
-                ticks:                  {parent: ' preference '},
-                tickLabel:              {parent: ' preference '},
-                tileOrigin:             {parent: ' image '},
-                title:                  {parent: ' menuItem preference preferenceGroup window '},
-                tooltip:                {parent: ' image text textarea '},
-                tracking:               {parent: ' canvas image '},
-                trigger:                {parent: ' action '},
-                truncation:             {parent: ' text '},
-                type:                   {parent: ' preference '},
-                url:                    {parent: ' about-box about-text about-version '},
-                useFileIcon:            {parent: ' image '},
-                vAlign:                 {parent: ' canvas frame image scrollbar text textarea '},
-                value:                  {parent: ' preference scrollbar '},
-                version:                {parent: ' widget '},
-                visible:                {parent: ' canvas frame image scrollbar text textarea window '},
-                vLineSize:              {parent: ' frame '},
-                vOffset:                {parent: ' about-text about-version canvas frame image scrollbar shadow text textarea window '},
-                vRegistrationPoint:     {parent: ' canvas frame image scrollbar text '},
-                vScrollBar:             {parent: ' frame '},
-                width:                  {parent: ' canvas frame image scrollbar text textarea window '},
-                window:                 {parent: ' canvas frame image scrollbar text textarea widget '},
-                wrap:                   {parent: ' text '},
-                zOrder:                 {parent: ' canvas frame image scrollbar text textarea window '}
-            }
-        }
-    };
-
-    function xmlword(tag) {
-        var w = nexttoken.value;
-        if (!nexttoken.identifier) {
-            if (nexttoken.id === '<') {
-                if (tag) {
-                    error("Expected '{a}' and instead saw '{b}'.",
-                        token, '<', '<');
-                } else {
-                    error("Missing '{a}'.", token, '>');
-                }
-            } else if (nexttoken.id === '(end)') {
-                error("Bad structure.");
-            } else {
-                warning("Missing quote.", token);
-            }
-        }
-        advance();
-        while (nexttoken.id === '-' || nexttoken.id === ':') {
-            w += nexttoken.id;
-            advance();
-            if (!nexttoken.identifier) {
-                error("Bad name '{a}'.", nexttoken, w + nexttoken.value);
-            }
-            w += nexttoken.value;
-            advance();
-        }
-        return w;
-    }
-
-    function closetag(n) {
-        return '</' + n + '>';
-    }
-
-    function xml() {
-        var a, e, n, q, t;
-        xmode = 'xml';
-        stack = null;
-        for (;;) {
-            switch (nexttoken.value) {
-            case '<':
-                if (!stack) {
-                    stack = [];
-                }
-                advance('<');
-                t = nexttoken;
-                n = xmlword(true);
-                t.name = n;
-                if (!xtype) {
-                    if (xmltype[n]) {
-                        xmltype[n].doBegin();
-                        n = xtype;
-                        e = false;
-                    } else {
-                        if (option.fragment) {
-                            xmltype.html.doBegin();
-                            stack = [{name: 'body'}];
-                            e = xmltype[xtype].doTagName(n, 'body');
-                        } else {
-                            error("Unrecognized tag '<{a}>'.", nexttoken, n);
-                        }
-                    }
-                } else {
-                    if (option.cap && xtype === 'html') {
-                        n = n.toLowerCase();
-                    }
-                    if (stack.length === 0) {
-                        error("What the hell is this?");
-                    }
-                    e = xmltype[xtype].doTagName(n,
-                            stack[stack.length - 1].name);
-                }
-                t.type = n;
-                for (;;) {
-                    if (nexttoken.id === '/') {
-                        advance('/');
-                        e = true;
-                        break;
-                    }
-                    if (nexttoken.id && nexttoken.id.substr(0, 1) === '>') {
-                        break;
-                    }
-                    a = xmlword();
-                    switch (xmltype[xtype].doAttribute(n, a)) {
-                    case 'script':
-                        xmode = 'string';
-                        advance('=');
-                        q = nexttoken.id;
-                        if (q !== '"' && q !== "'") {
-                            error("Missing quote.");
-                        }
-                        xmode = q;
-                        wmode = option.white;
-                        option.white = false;
-                        advance(q);
-                        statements();
-                        option.white = wmode;
-                        if (nexttoken.id !== q) {
-                            error("Missing close quote on script attribute.");
-                        }
-                        xmode = 'xml';
-                        advance(q);
-                        break;
-                    case 'value':
-                        advance('=');
-                        if (!nexttoken.identifier &&
-                                nexttoken.type !== '(string)' &&
-                                nexttoken.type !== '(number)') {
-                            error("Bad value '{a}'.",
-                                    nexttoken, nexttoken.value);
-                        }
-                        advance();
-                        break;
-                    case 'string':
-                    case 'href':
-                        advance('=');
-                        if (nexttoken.type !== '(string)') {
-                            error("Bad value '{a}'.",
-                                    nexttoken, nexttoken.value);
-                        }
-                        advance();
-                        break;
-                    case 'define':
-                        advance('=');
-                        if (nexttoken.type !== '(string)') {
-                            error("Bad value '{a}'.",
-                                    nexttoken, nexttoken.value);
-                        }
-                        addlabel(nexttoken.value, 'var*');
-                        advance();
-                        break;
-                    default:
-                        if (nexttoken.id === '=') {
-                            advance('=');
-                            if (!nexttoken.identifier &&
-                                    nexttoken.type !== '(string)' &&
-                                    nexttoken.type !== '(number)') {
-                            }
-                            advance();
-                        }
-                    }
-                }
-                switch (xmltype[xtype].doIt(n)) {
-                case 'script':
-                    xmode = 'script';
-                    advance('>');
-                    indent = nexttoken.from;
-                    statements();
-                    if (nexttoken.id !== '</' && nexttoken.id !== '(end)') {
-                        warning("Unexpected '{a}'.", nexttoken, nexttoken.id);
-                    }
-                    xmode = 'xml';
-                    break;
-                case 'special':
-                    e = true;
-                    n = closetag(t.name);
-                    if (!lex.skip(n)) {
-                        error("Missing '{a}'.", t, n);
-                    }
-                    break;
-                default:
-                    lex.skip('>');
-                }
-                if (!e) {
-                    stack.push(t);
-                }
-                break;
-            case '</':
-                advance('</');
-                n = xmlword(true);
-                t = stack.pop();
-                if (!t) {
-                    error("Unexpected '{a}'.", nexttoken, closetag(n));
-                }
-                if (t.name !== n) {
-                    error("Expected '{a}' and instead saw '{b}'.",
-                            nexttoken, closetag(t.name), closetag(n));
-                }
-                if (nexttoken.id !== '>') {
-                    error("Missing '{a}'.", nexttoken, '>');
-                }
-                if (stack.length > 0) {
-                    lex.skip('>');
-                } else {
-                    advance('>');
-                }
-                break;
-            case '<!':
-                for (;;) {
-                    advance();
-                    if (nexttoken.id === '>') {
-                        break;
-                    }
-                    if (nexttoken.id === '<' || nexttoken.id === '(end)') {
-                        error("Missing '{a}'.", token, '>');
-                    }
-                }
-                lex.skip('>');
-                break;
-            case '<!--':
-                lex.skip('-->');
-                break;
-            case '<%':
-                lex.skip('%>');
-                break;
-            case '<?':
-                for (;;) {
-                    advance();
-                    if (nexttoken.id === '?>') {
-                        break;
-                    }
-                    if (nexttoken.id === '<?' || nexttoken.id === '<' ||
-                            nexttoken.id === '>' || nexttoken.id === '(end)') {
-                        error("Missing '{a}'.", token, '?>');
-                    }
-                }
-                lex.skip('?>');
-                break;
-            case '<=':
-            case '<<':
-            case '<<=':
-                error("Missing '{a}'.", nexttoken, '<');
-                break;
-            case '(end)':
-                return;
-            }
-            if (stack && stack.length === 0) {
-                return;
-            }
-            if (!lex.skip('')) {
-                t = stack.pop();
-                if (t.value) {
-                    error("Missing '{a}'.", t, closetag(t.name));
-                } else {
-                    return;
-                }
-            }
-            advance();
-        }
-    }
-
-
-// Build the syntax table by declaring the syntactic elements of the language.
-
-    type('(number)', idValue);
-    type('(string)', idValue);
-
-    syntax['(identifier)'] = {
-        type: '(identifier)',
-        lbp: 0,
-        identifier: true,
-        nud: function () {
-            var c;
-            if (option.undef && !builtin(this.value) &&
-                    xmode !== '"' && xmode !== "'") {
-                c = funlab;
-                while (!c[this.value]) {
-                    c = c['(context)'];
-                    if (!c) {
-                        warning("Undefined {b} '{a}'.",
-                                token, this.value,
-                                nexttoken.id === '(' ? "function" : "variable");
-                        break;
-                    }
-                }
-            }
-            addlabel(this.value, 'global');
-            return this;
-        },
-        led: function () {
-            error("Expected an operator and instead saw '{a}'.",
-                    nexttoken, nexttoken.value);
-        }
-    };
-
-    type('(regex)', function () {
-        return [this.id, this.value, this.flags];
-    });
-
-    delim('(endline)');
-    delim('(begin)');
-    delim('(end)').reach = true;
-    delim('</').reach = true;
-    delim('<![').reach = true;
-    delim('<%');
-    delim('<?');
-    delim('<!');
-    delim('<!--');
-    delim('%>');
-    delim('?>');
-    delim('(error)').reach = true;
-    delim('}').reach = true;
-    delim(')');
-    delim(']');
-    delim(']]>').reach = true;
-    delim('"').reach = true;
-    delim("'").reach = true;
-    delim(';');
-    delim(':').reach = true;
-    delim(',');
-    reserve('else');
-    reserve('case').reach = true;
-    reserve('catch');
-    reserve('default').reach = true;
-    reserve('finally');
-    reservevar('arguments');
-    reservevar('eval');
-    reservevar('false');
-    reservevar('Infinity');
-    reservevar('NaN');
-    reservevar('null');
-    reservevar('this');
-    reservevar('true');
-    reservevar('undefined');
-    assignop('=', 'assign', 20);
-    assignop('+=', 'assignadd', 20);
-    assignop('-=', 'assignsub', 20);
-    assignop('*=', 'assignmult', 20);
-    assignop('/=', 'assigndiv', 20).nud = function () {
-        error("A regular expression literal can be confused with '/='.");
-    };
-    assignop('%=', 'assignmod', 20);
-    bitwiseassignop('&=', 'assignbitand', 20);
-    bitwiseassignop('|=', 'assignbitor', 20);
-    bitwiseassignop('^=', 'assignbitxor', 20);
-    bitwiseassignop('<<=', 'assignshiftleft', 20);
-    bitwiseassignop('>>=', 'assignshiftright', 20);
-    bitwiseassignop('>>>=', 'assignshiftrightunsigned', 20);
-    infix('?', function (left) {
-        parse(10);
-        advance(':');
-        parse(10);
-    }, 30);
-
-    infix('||', 'or', 40);
-    infix('&&', 'and', 50);
-    bitwise('|', 'bitor', 70);
-    bitwise('^', 'bitxor', 80);
-    bitwise('&', 'bitand', 90);
-    relation('==', function (left, right) {
-        if (option.eqeqeq) {
-            warning("Expected '{a}' and instead saw '{b}'.",
-                    this, '===', '==');
-        } else if (isPoorRelation(left)) {
-            warning("Use '{a}' to compare with '{b}'.",
-                this, '===', left.value);
-        } else if (isPoorRelation(right)) {
-            warning("Use '{a}' to compare with '{b}'.",
-                this, '===', right.value);
-        }
-        return ['==', left, right];
-    });
-    relation('===');
-    relation('!=', function (left, right) {
-        if (option.eqeqeq) {
-            warning("Expected '{a}' and instead saw '{b}'.",
-                    this, '!==', '!=');
-        } else if (isPoorRelation(left)) {
-            warning("Use '{a}' to compare with '{b}'.",
-                    this, '!==', left.value);
-        } else if (isPoorRelation(right)) {
-            warning("Use '{a}' to compare with '{b}'.",
-                    this, '!==', right.value);
-        }
-        return ['!=', left, right];
-    });
-    relation('!==');
-    relation('<');
-    relation('>');
-    relation('<=');
-    relation('>=');
-    bitwise('<<', 'shiftleft', 120);
-    bitwise('>>', 'shiftright', 120);
-    bitwise('>>>', 'shiftrightunsigned', 120);
-    infix('in', 'in', 120);
-    infix('instanceof', 'instanceof', 120);
-    infix('+', function (left) {
-        nonadjacent(prevtoken, token);
-        nonadjacent(token, nexttoken);
-        var right = parse(130);
-        if (left && right && left.id === '(string)' && right.id === '(string)') {
-            left.value += right.value;
-            left.character = right.character;
-            if (option.adsafe && adsafe.hasOwnProperty(left.value.toLowerCase())) {
-                warning("Adsafe restricted word '{a}'.", left, left.value);
-            }
-            if (jx.test(left.value)) {
-                warning("JavaScript URL.", left);
-            }
-            return left;
-        }
-        return [this.id, left, right];
-    }, 130);
-    prefix('+', 'num');
-    infix('-', 'sub', 130);
-    prefix('-', 'neg');
-    infix('*', 'mult', 140);
-    infix('/', 'div', 140);
-    infix('%', 'mod', 140);
-
-    suffix('++', 'postinc');
-    prefix('++', 'preinc');
-    syntax['++'].exps = true;
-
-    suffix('--', 'postdec');
-    prefix('--', 'predec');
-    syntax['--'].exps = true;
-    prefix('delete', function () {
-        parse(0);
-    }).exps = true;
-
-
-    prefix('~', function () {
-        if (option.bitwise) {
-            warning("Unexpected '{a}'.", this, '~');
-        }
-        parse(150);
-        return this;
-    });
-    prefix('!', 'not');
-    prefix('typeof', 'typeof');
-    prefix('new', function () {
-        var c = parse(155), i;
-        if (c) {
-            if (c.identifier) {
-                c['new'] = true;
-                switch (c.value) {
-                case 'Object':
-                    warning("Use the object literal notation {}.", token);
-                    break;
-                case 'Array':
-                    warning("Use the array literal notation [].", token);
-                    break;
-                case 'Number':
-                case 'String':
-                case 'Boolean':
-                    warning("Do not use the {a} function as a constructor.",
-                            token, c.value);
-                    break;
-                case 'Function':
-                    if (!option.evil) {
-                        warning("The Function constructor is eval.");
-                    }
-                    break;
-                default:
-                    if (c.id !== 'function') {
-                        i = c.value.substr(0, 1);
-                        if (i < 'A' || i > 'Z') {
-                            warning(
-                    "A constructor name should start with an uppercase letter.",
-                                token);
-                        }
-                    }
-                }
-            } else {
-                if (c.id !== '.' && c.id !== '[' && c.id !== '(') {
-                    warning("Bad constructor.", token);
-                }
-            }
-        } else {
-            warning("Weird construction. Delete 'new'.", this);
-        }
-        adjacent(token, nexttoken);
-        if (nexttoken.id === '(') {
-            advance('(');
-            if (nexttoken.id !== ')') {
-                for (;;) {
-                    parse(10);
-                    if (nexttoken.id !== ',') {
-                        break;
-                    }
-                    advance(',');
-                }
-            }
-            advance(')');
-        } else {
-            warning("Missing '()' invoking a constructor.");
-        }
-        return syntax['function'];
-    });
-    syntax['new'].exps = true;
-
-    infix('.', function (left) {
-        adjacent(prevtoken, token);
-        var m = identifier();
-        if (typeof m === 'string') {
-            countMember(m);
-        }
-        if (!option.evil && left && left.value === 'document' &&
-                (m === 'write' || m === 'writeln')) {
-            warning("document.write can be a form of eval.", left);
-        }
-        this.left = left;
-        this.right = m;
-        return this;
-    }, 160);
-
-    infix('(', function (left) {
-        adjacent(prevtoken, token);
-        var n = 0;
-        var p = [];
-        if (left && left.type === '(identifier)') {
-            if (left.value.match(/^[A-Z](.*[a-z].*)?$/)) {
-                if (left.value !== 'Number' && left.value !== 'String' &&
-                        left.value !== 'Boolean' && left.value !== 'Date') {
-                    warning("Missing 'new' prefix when invoking a constructor.",
-                            left);
-                }
-            }
-        }
-        if (nexttoken.id !== ')') {
-            for (;;) {
-                p[p.length] = parse(10);
-                n += 1;
-                if (nexttoken.id !== ',') {
-                    break;
-                }
-                advance(',');
-            }
-        }
-        advance(')');
-        if (typeof left === 'object') {
-            if (left.value === 'parseInt' && n === 1) {
-                warning("Missing radix parameter.", left);
-            }
-            if (!option.evil) {
-                if (left.value === 'eval' || left.value === 'Function') {
-                    warning("eval is evil.", left);
-                } else if (p[0] && p[0].id === '(string)' &&
-                       (left.value === 'setTimeout' ||
-                        left.value === 'setInterval')) {
-                    warning(
-    "Implied eval is evil. Pass a function instead of a string.", p[0]);
-                }
-            }
-            if (!left.identifier && left.id !== '.' &&
-                    left.id !== '[' && left.id !== '(') {
-                warning("Bad invocation.", left);
-            }
-
-        }
-        return syntax['function'];
-    }, 155).exps = true;
-
-    prefix('(', function () {
-        var v = parse(0);
-        advance(')', this);
-        return v;
-    });
-
-    infix('[', function (left) {
-        var e = parse(0), s;
-        if (e && e.type === '(string)') {
-            countMember(e.value);
-            if (ix.test(e.value)) {
-                s = syntax[e.value];
-                if (!s || !s.reserved) {
-                    warning("['{a}'] is better written in dot notation.",
-                            e, e.value);
-                }
-            }
-        }
-        advance(']', this);
-        this.left = left;
-        this.right = e;
-        return this;
-    }, 160);
-
-    prefix('[', function () {
-        if (nexttoken.id === ']') {
-            advance(']');
-            return;
-        }
-        var b = token.line !== nexttoken.line;
-        if (b) {
-            indent += 4;
-        }
-        for (;;) {
-            if (b && token.line !== nexttoken.line) {
-                indentation();
-            }
-            parse(10);
-            if (nexttoken.id === ',') {
-                adjacent(token, nexttoken);
-                advance(',');
-                if (nexttoken.id === ',' || nexttoken.id === ']') {
-                    warning("Extra comma.", token);
-                }
-                nonadjacent(token, nexttoken);
-            } else {
-                if (b) {
-                    indent -= 4;
-                    indentation();
-                }
-                advance(']', this);
-                return;
-            }
-        }
-    }, 160);
-
-    (function (x) {
-        x.nud = function () {
-            var i, s;
-            if (nexttoken.id === '}') {
-                advance('}');
-                return;
-            }
-            var b = token.line !== nexttoken.line;
-            if (b) {
-                indent += 4;
-            }
-            for (;;) {
-                if (b) {
-                    indentation();
-                }
-                i = optionalidentifier(true);
-                if (!i) {
-                    if (nexttoken.id === '(string)') {
-                        i = nexttoken.value;
-                        if (ix.test(i)) {
-                            s = syntax[i];
-                        }
-                        advance();
-                    } else if (nexttoken.id === '(number)') {
-                        i = nexttoken.value.toString();
-                        advance();
-                    } else {
-                        error("Expected '{a}' and instead saw '{b}'.",
-                                nexttoken, '}', nexttoken.value);
-                    }
-                }
-                countMember(i);
-                advance(':');
-                nonadjacent(token, nexttoken);
-                parse(10);
-                if (nexttoken.id === ',') {
-                    adjacent(token, nexttoken);
-                    advance(',');
-                    if (nexttoken.id === ',' || nexttoken.id === '}') {
-                        warning("Extra comma.", token);
-                    }
-                    nonadjacent(token, nexttoken);
-                } else {
-                    if (b) {
-                        indent -= 4;
-                        indentation();
-                    }
-                    advance('}', this);
-                    return;
-                }
-            }
-        };
-        x.fud = function () {
-            error("Expected to see a statement and instead saw a block.");
-        };
-    })(delim('{'));
-
-
-    function varstatement() {
-
-// JavaScript does not have block scope. It only has function scope. So,
-// declaring a variable in a block can have unexpected consequences. We
-// will keep an inblock flag, which will be set when we enter a block, and
-// cleared when we enter a function.
-
-        if (inblock) {
-            warning("{b} {a} declared in a block.",
-                    nexttoken, nexttoken.value, 'variable');
-        }
-        for (;;) {
-            nonadjacent(token, nexttoken);
-            addlabel(identifier(), 'var');
-            if (nexttoken.id === '=') {
-                for (;;) {
-                    nonadjacent(token, nexttoken);
-                    advance('=');
-                    nonadjacent(token, nexttoken);
-                    if (peek(0).id === '=') {
-                        warning("Variable {a} was not declared correctly.",
-                                nexttoken, nexttoken.value);
-                        advance();
-                        addlabel(token.value, 'global');
-                    } else {
-                        parse(20);
-                        break;
-                    }
-                }
-            }
-            if (nexttoken.id !== ',') {
-                return;
-            }
-            adjacent(token, nexttoken);
-            advance(',');
-            nonadjacent(token, nexttoken);
-        }
-    }
-
-
-    stmt('var', varstatement);
-
-    stmt('new', function () {
-        error("'new' should not be used as a statement.");
-    });
-
-
-    function functionparams() {
-        var t = nexttoken;
-        advance('(');
-        if (nexttoken.id === ')') {
-            advance(')');
-            return;
-        }
-        for (;;) {
-            addlabel(identifier(), 'parameter');
-            if (nexttoken.id === ',') {
-                advance(',');
-            } else {
-                advance(')', t);
-                return;
-            }
-        }
-    }
-
-
-    blockstmt('function', function () {
-        var i = identifier();
-        if (inblock) {
-            warning("{b} {a} declared in a block.", token, i, 'function');
-        }
-        addlabel(i, 'var*');
-        beginfunction(i);
-        addlabel(i, 'function');
-        adjacent(token, nexttoken);
-        functionparams();
-        block(false);
-        endfunction();
-        if (nexttoken.id === '(' && nexttoken.line === token.line) {
-            error(
-"Function statements are not invocable. Wrap the function expression in parens.");
-        }
-    });
-
-    prefix('function', function () {
-        var i = optionalidentifier();
-        if (i) {
-            adjacent(token, nexttoken);
-        } else {
-            nonadjacent(token, nexttoken);
-            i = '"' + anonname + '"';
-        }
-        beginfunction(i);
-        addlabel(i, 'function');
-        functionparams();
-        block(false);
-        endfunction();
-    });
-
-    blockstmt('if', function () {
-        var t = nexttoken;
-        advance('(');
-        nonadjacent(this, t);
-        parse(20);
-        if (nexttoken.id === '=') {
-            warning("Assignment in control part.");
-            advance('=');
-            parse(20);
-        }
-        advance(')', t);
-        block(true);
-        if (nexttoken.id === 'else') {
-            nonadjacent(token, nexttoken);
-            advance('else');
-            if (nexttoken.id === 'if' || nexttoken.id === 'switch') {
-                statement();
-            } else {
-                block(true);
-            }
-        }
-    });
-
-    blockstmt('try', function () {
-        var b;
-        block(true);
-        if (nexttoken.id === 'catch') {
-            advance('catch');
-            beginfunction('"catch"');
-            functionparams();
-            block(true);
-            endfunction();
-            b = true;
-        }
-        if (nexttoken.id === 'finally') {
-            advance('finally');
-            beginfunction('"finally"');
-            block(true);
-            endfunction();
-            return;
-        } else if (!b) {
-            error("Expected '{a}' and instead saw '{b}'.",
-                    nexttoken, 'catch', nexttoken.value);
-        }
-    });
-
-    blockstmt('while', function () {
-        var t = nexttoken;
-        advance('(');
-        nonadjacent(this, t);
-        parse(20);
-        if (nexttoken.id === '=') {
-            warning("Assignment in control part.");
-            advance('=');
-            parse(20);
-        }
-        advance(')', t);
-        block(true);
-    }).labelled = true;
-
-    reserve('with');
-
-    blockstmt('switch', function () {
-        var t = nexttoken;
-        var g = false;
-        advance('(');
-        nonadjacent(this, t);
-        this.condition = parse(20);
-        advance(')', t);
-        nonadjacent(token, nexttoken);
-        t = nexttoken;
-        advance('{');
-        nonadjacent(token, nexttoken);
-        indent += 4;
-        this.cases = [];
-        for (;;) {
-            switch (nexttoken.id) {
-            case 'case':
-                switch (verb) {
-                case 'break':
-                case 'case':
-                case 'continue':
-                case 'return':
-                case 'switch':
-                case 'throw':
-                    break;
-                default:
-                    warning(
-                        "Expected a 'break' statement before 'case'.",
-                        token);
-                }
-                indentation(-4);
-                advance('case');
-                this.cases.push(parse(20));
-                g = true;
-                advance(':');
-                verb = 'case';
-                break;
-            case 'default':
-                switch (verb) {
-                case 'break':
-                case 'continue':
-                case 'return':
-                case 'throw':
-                    break;
-                default:
-                    warning(
-                        "Expected a 'break' statement before 'default'.",
-                        token);
-                }
-                indentation(-4);
-                advance('default');
-                g = true;
-                advance(':');
-                break;
-            case '}':
-                indent -= 4;
-                indentation();
-                advance('}', t);
-                if (this.cases.length === 1 || this.condition.id === 'true' ||
-                        this.condition.id === 'false') {
-                    warning("This 'switch' should be an 'if'.", this);
-                }
-                return;
-            case '(end)':
-                error("Missing '{a}'.", nexttoken, '}');
-                return;
-            default:
-                if (g) {
-                    switch (token.id) {
-                    case ',':
-                        error("Each value should have its own case label.");
-                        return;
-                    case ':':
-                        statements();
-                        break;
-                    default:
-                        error("Missing ':' on a case clause.", token);
-                    }
-                } else {
-                    error("Expected '{a}' and instead saw '{b}'.",
-                        nexttoken, 'case', nexttoken.value);
-                }
-            }
-        }
-    }).labelled = true;
-
-    stmt('debugger', function () {
-        if (!option.debug) {
-            warning("All 'debugger' statements should be removed.");
-        }
-    });
-
-    stmt('do', function () {
-        block(true);
-        advance('while');
-        var t = nexttoken;
-        nonadjacent(token, t);
-        advance('(');
-        parse(20);
-        advance(')', t);
-    }).labelled = true;
-
-    blockstmt('for', function () {
-        var t = nexttoken;
-        advance('(');
-        nonadjacent(this, t);
-        if (peek(nexttoken.id === 'var' ? 1 : 0).id === 'in') {
-            if (nexttoken.id === 'var') {
-                advance('var');
-                addlabel(identifier(), 'var');
-            } else {
-                advance();
-            }
-            advance('in');
-            parse(20);
-            advance(')', t);
-            block(true);
-            return;
-        } else {
-            if (nexttoken.id !== ';') {
-                if (nexttoken.id === 'var') {
-                    advance('var');
-                    varstatement();
-                } else {
-                    for (;;) {
-                        parse(0);
-                        if (nexttoken.id !== ',') {
-                            break;
-                        }
-                        advance(',');
-                    }
-                }
-            }
-            advance(';');
-            if (nexttoken.id !== ';') {
-                parse(20);
-            }
-            advance(';');
-            if (nexttoken.id === ';') {
-                error("Expected '{a}' and instead saw '{b}'.",
-                        nexttoken, ')', ';');
-            }
-            if (nexttoken.id !== ')') {
-                for (;;) {
-                    parse(0);
-                    if (nexttoken.id !== ',') {
-                        break;
-                    }
-                    advance(',');
-                }
-            }
-            advance(')', t);
-            block(true);
-        }
-    }).labelled = true;
-
-
-    function nolinebreak(t) {
-        if (t.line !== nexttoken.line) {
-            warning("Line breaking error '{a}'.", t, t.id);
-        }
-    }
-
-
-    stmt('break', function () {
-        nolinebreak(this);
-        if (funlab[nexttoken.value] === 'live*') {
-            advance();
-        }
-        reachable('break');
-    });
-
-
-    stmt('continue', function () {
-        nolinebreak(this);
-        if (funlab[nexttoken.value] === 'live*') {
-            advance();
-        }
-        reachable('continue');
-    });
-
-
-    stmt('return', function () {
-        nolinebreak(this);
-        if (nexttoken.id !== ';' && !nexttoken.reach) {
-            nonadjacent(token, nexttoken);
-            parse(20);
-        }
-        reachable('return');
-    });
-
-
-    stmt('throw', function () {
-        nolinebreak(this);
-        nonadjacent(token, nexttoken);
-        parse(20);
-        reachable('throw');
-    });
-
-
-//  Superfluous reserved words
-
-    reserve('abstract');
-    reserve('boolean');
-    reserve('byte');
-    reserve('char');
-    reserve('class');
-    reserve('const');
-    reserve('double');
-    reserve('enum');
-    reserve('export');
-    reserve('extends');
-    reserve('final');
-    reserve('float');
-    reserve('goto');
-    reserve('implements');
-    reserve('import');
-    reserve('int');
-    reserve('interface');
-    reserve('long');
-    reserve('native');
-    reserve('package');
-    reserve('private');
-    reserve('protected');
-    reserve('public');
-    reserve('short');
-    reserve('static');
-    reserve('super');
-    reserve('synchronized');
-    reserve('throws');
-    reserve('transient');
-    reserve('void');
-    reserve('volatile');
-
-
-    function jsonValue() {
-        function jsonObject() {
-            var t = nexttoken;
-            advance('{');
-            while (nexttoken.id !== '}') {
-                if (nexttoken.id === '(end)') {
-                    error("Missing '}' to match '{' from line {a}.",
-                            nexttoken, t.line + 1);
-                } else if (nexttoken.id !== '(string)') {
-                    warning("Expected a string and instead saw {a}.",
-                            nexttoken, nexttoken.value);
-                } else {
-                    if (nexttoken.quote !== '"') {
-                        warning(
-"Expected double quotes and instead saw single quotes.", nexttoken);
-                    }
-                }
-                advance();
-                advance(':');
-                jsonValue();
-                if (nexttoken.id !== ',') {
-                    break;
-                }
-                advance(',');
-            }
-            advance('}');
-        }
-
-        function jsonArray() {
-            var t = nexttoken;
-            advance('[');
-            while (nexttoken.id !== ']') {
-                if (nexttoken.id === '(end)') {
-                    error("Missing ']' to match '[' from line {a}.",
-                            nexttoken, t.line + 1);
-                }
-                jsonValue();
-                if (nexttoken.id !== ',') {
-                    break;
-                }
-                advance(',');
-            }
-            advance(']');
-        }
-
-        var id = nexttoken.id;
-
-        if (id === '{') {
-            jsonObject();
-        } else if (id === '[') {
-            jsonArray();
-        } else if (id === 'true' || id === 'false' || id === 'null' ||
-                id === '(number)') {
-            advance();
-        } else if (id === '(string)') {
-            if (nexttoken.quote !== '"') {
-                        warning(
-"Expected double quotes and instead saw single quotes.", nexttoken);
-            }
-            advance();
-        } else {
-            error("Expected a JSON value.", nexttoken);
-        }
-    }
-
-
-// The actual JSLINT function itself.
-
-    var itself = function (s, o) {
-        option = o || {};
-        JSLINT.errors = [];
-        globals = {};
-        functions = [];
-        xmode = false;
-        xtype = '';
-        stack = null;
-        funlab = {};
-        member = {};
-        funstack = [];
-        lookahead = [];
-        inblock = false;
-        indent = 0;
-        warnings = 0;
-        lex.init(s);
-        prereg = true;
-
-        prevtoken = token = nexttoken = syntax['(begin)'];
-        try {
-            advance();
-            if (nexttoken.value.charAt(0) === '<') {
-                xml();
-            } else if (nexttoken.id === '{' || nexttoken.id === '[') {
-                option.laxbreak = true;
-                jsonValue();
-            } else {
-                statements();
-            }
-            advance('(end)');
-        } catch (e) {
-            if (e) {
-                JSLINT.errors.push({
-                    reason: "JSLint error: " + e.description,
-                    line: nexttoken.line,
-                    character: nexttoken.from,
-                    evidence: nexttoken.value
-                });
-            }
-        }
-        return JSLINT.errors.length === 0;
-    };
-
-
-// Report generator.
-
-    itself.report = function (option) {
-        var a = [];
-        var c;
-        var cc;
-        var f;
-        var i;
-        var k;
-        var o = [];
-        var s;
-        var v;
-
-        function detail(h) {
-            if (s.length) {
-                o.push('<div>' + h + ':  ' + s.sort().join(', ') +
-                    '</div>');
-            }
-        }
-
-        k = JSLINT.errors.length;
-        if (k) {
-            o.push(
-                '<div id=errors>Error:<blockquote>');
-            for (i = 0; i < k; i += 1) {
-                c = JSLINT.errors[i];
-                if (c) {
-                    o.push('<p>Problem at line ' + (c.line + 1) +
-                            ' character ' + (c.character + 1) +
-                            ': ' + c.reason.entityify() + '</p><p><tt>' +
-                            (c.evidence && (c.evidence.length > 80 ?
-                            c.evidence.substring(0, 77) + '...' :
-                            c.evidence).entityify()) + '</tt></p>');
-                }
-            }
-            o.push('</blockquote></div><br>');
-            if (!c) {
-                return o.join('');
-            }
-        }
-
-        if (!option) {
-            for (k in member) {
-                if (typeof member[k] === 'number') {
-                    a.push(k);
-                }
-            }
-            if (a.length) {
-                a = a.sort();
-                o.push(
-                 '<table><tbody><tr><th>Members</th><th>Occurrences</th></tr>');
-                for (i = 0; i < a.length; i += 1) {
-                    o.push('<tr><td><tt>', a[i].replace(/([\x00-\x1f\\"])/g, function (a, b) {
-                        var c = b.charCodeAt();
-                        return '\\u00' +
-                            Math.floor(c / 16).toString(16) +
-                            (c % 16).toString(16);
-                    }), '</tt></td><td>', member[a[i]], '</td></tr>');
-                }
-                o.push('</tbody></table>');
-            }
-            for (i = 0; i < functions.length; i += 1) {
-                f = functions[i];
-                for (k in f) {
-                    if (f.hasOwnProperty(k) && f[k] === 'global') {
-                        c = f['(context)'];
-                        for (;;) {
-                            cc = c['(context)'];
-                            if (!cc) {
-                                if ((!funlab[k] || funlab[k] === 'var?') &&
-                                        !builtin(k)) {
-                                    funlab[k] = 'var?';
-                                    f[k] = 'global?';
-                                }
-                                break;
-                            }
-                            if (c[k] === 'parameter!' || c[k] === 'var!') {
-                                f[k] = 'var.';
-                                break;
-                            }
-                            if (c[k] === 'var' || c[k] === 'var*' ||
-                                    c[k] === 'var!') {
-                                f[k] = 'var.';
-                                c[k] = 'var!';
-                                break;
-                            }
-                            if (c[k] === 'parameter') {
-                                f[k] = 'var.';
-                                c[k] = 'parameter!';
-                                break;
-                            }
-                            c = cc;
-                        }
-                    }
-                }
-            }
-            s = [];
-            for (k in funlab) {
-                if (funlab.hasOwnProperty(k)) {
-                    c = funlab[k];
-                    if (typeof c === 'string' && c.substr(0, 3) === 'var') {
-                        if (c === 'var?') {
-                            s.push('<tt>' + k + '</tt><small> (?)</small>');
-                        } else {
-                            s.push('<tt>' + k + '</tt>');
-                        }
-                    } else {
-                        if (c === 'global' && !builtin(k)) {
-                            s.push('<tt>' + k + '</tt><small> (?)</small>');
-                        }
-                    }
-                }
-            }
-            detail('Global');
-            if (functions.length) {
-                o.push('<br>Function:<ol style="padding-left:0.5in">');
-            }
-            for (i = 0; i < functions.length; i += 1) {
-                f = functions[i];
-                o.push('<li value=' +
-                        f['(line)'] + '><tt>' + (f['(name)'] || '') + '</tt>');
-                s = [];
-                for (k in f) {
-                    if (f.hasOwnProperty(k) && k.charAt(0) !== '(') {
-                        switch (f[k]) {
-                        case 'parameter':
-                            s.push('<tt>' + k + '</tt>');
-                            break;
-                        case 'parameter!':
-                            s.push('<tt>' + k +
-                                    '</tt><small> (closure)</small>');
-                            break;
-                        }
-                    }
-                }
-                detail('Parameter');
-                s = [];
-                for (k in f) {
-                    if (f.hasOwnProperty(k) && k.charAt(0) !== '(') {
-                        switch (f[k]) {
-                        case 'var':
-                            s.push('<tt>' + k +
-                                    '</tt><small> (unused)</small>');
-                            break;
-                        case 'var*':
-                            s.push('<tt>' + k + '</tt>');
-                            break;
-                        case 'var!':
-                            s.push('<tt>' + k +
-                                    '</tt><small> (closure)</small>');
-                            break;
-                        case 'var.':
-                            s.push('<tt>' + k +
-                                    '</tt><small> (outer)</small>');
-                            break;
-                        }
-                    }
-                }
-                detail('Var');
-                s = [];
-                c = f['(context)'];
-                for (k in f) {
-                    v = f[k];
-                    if (f.hasOwnProperty(k) && k.charAt(0) !== '(' &&
-                            v.substr(0, 6) === 'global') {
-                        if (v === 'global?') {
-                            s.push('<tt>' + k +
-                                    '</tt><small> (?)</small>');
-                        } else {
-                            s.push('<tt>' + k + '</tt>');
-                        }
-                    }
-                }
-                detail('Global');
-                s = [];
-                for (k in f) {
-                    if (f.hasOwnProperty(k) && k.charAt(0) !== '(' && f[k] === 'label') {
-                        s.push(k);
-                    }
-                }
-                detail('Label');
-                o.push('</li>');
-            }
-            if (functions.length) {
-                o.push('</ol>');
-            }
-        }
-        return o.join('');
-    };
-
-    return itself;
-
-}();
\ No newline at end of file
diff --git a/utils/jsmin b/utils/jsmin
deleted file mode 100755
index 1b5dba8..0000000
Binary files a/utils/jsmin and /dev/null differ
diff --git a/utils/jsmin.c b/utils/jsmin.c
deleted file mode 100644
index 84eb97a..0000000
--- a/utils/jsmin.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/* jsmin.c
-   2007-05-22
-
-Copyright (c) 2002 Douglas Crockford  (www.crockford.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-The Software shall be used for Good, not Evil.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-
-static int   theA;
-static int   theB;
-static int   theLookahead = EOF;
-
-
-/* isAlphanum -- return true if the character is a letter, digit, underscore,
-        dollar sign, or non-ASCII character.
-*/
-
-static int
-isAlphanum(int c)
-{
-    return ((c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') ||
-        (c >= 'A' && c <= 'Z') || c == '_' || c == '$' || c == '\\' ||
-        c > 126);
-}
-
-
-/* get -- return the next character from stdin. Watch out for lookahead. If
-        the character is a control character, translate it to a space or
-        linefeed.
-*/
-
-static int
-get()
-{
-    int c = theLookahead;
-    theLookahead = EOF;
-    if (c == EOF) {
-        c = getc(stdin);
-    }
-    if (c >= ' ' || c == '\n' || c == EOF) {
-        return c;
-    }
-    if (c == '\r') {
-        return '\n';
-    }
-    return ' ';
-}
-
-
-/* peek -- get the next character without getting it.
-*/
-
-static int
-peek()
-{
-    theLookahead = get();
-    return theLookahead;
-}
-
-
-/* next -- get the next character, excluding comments. peek() is used to see
-        if a '/' is followed by a '/' or '*'.
-*/
-
-static int
-next()
-{
-    int c = get();
-    if  (c == '/') {
-        switch (peek()) {
-        case '/':
-            for (;;) {
-                c = get();
-                if (c <= '\n') {
-                    return c;
-                }
-            }
-        case '*':
-            get();
-            for (;;) {
-                switch (get()) {
-                case '*':
-                    if (peek() == '/') {
-                        get();
-                        return ' ';
-                    }
-                    break;
-                case EOF:
-                    fprintf(stderr, "Error: JSMIN Unterminated comment.\n");
-                    exit(1);
-                }
-            }
-        default:
-            return c;
-        }
-    }
-    return c;
-}
-
-
-/* action -- do something! What you do is determined by the argument:
-        1   Output A. Copy B to A. Get the next B.
-        2   Copy B to A. Get the next B. (Delete A).
-        3   Get the next B. (Delete B).
-   action treats a string as a single character. Wow!
-   action recognizes a regular expression if it is preceded by ( or , or =.
-*/
-
-static void
-action(int d)
-{
-    switch (d) {
-    case 1:
-        putc(theA, stdout);
-    case 2:
-        theA = theB;
-        if (theA == '\'' || theA == '"') {
-            for (;;) {
-                putc(theA, stdout);
-                theA = get();
-                if (theA == theB) {
-                    break;
-                }
-                if (theA <= '\n') {
-                    fprintf(stderr,
-"Error: JSMIN unterminated string literal: %c\n", theA);
-                    exit(1);
-                }
-                if (theA == '\\') {
-                    putc(theA, stdout);
-                    theA = get();
-                }
-            }
-        }
-    case 3:
-        theB = next();
-        if (theB == '/' && (theA == '(' || theA == ',' || theA == '=' ||
-                            theA == ':' || theA == '[' || theA == '!' || 
-                            theA == '&' || theA == '|' || theA == '?' || 
-                            theA == '{' || theA == '}' || theA == ';' || 
-                            theA == '\n')) {
-            putc(theA, stdout);
-            putc(theB, stdout);
-            for (;;) {
-                theA = get();
-                if (theA == '/') {
-                    break;
-                } else if (theA =='\\') {
-                    putc(theA, stdout);
-                    theA = get();
-                } else if (theA <= '\n') {
-                    fprintf(stderr,
-"Error: JSMIN unterminated Regular Expression literal.\n", theA);
-                    exit(1);
-                }
-                putc(theA, stdout);
-            }
-            theB = next();
-        }
-    }
-}
-
-
-/* jsmin -- Copy the input to the output, deleting the characters which are
-        insignificant to JavaScript. Comments will be removed. Tabs will be
-        replaced with spaces. Carriage returns will be replaced with linefeeds.
-        Most spaces and linefeeds will be removed.
-*/
-
-static void
-jsmin()
-{
-    theA = '\n';
-    action(3);
-    while (theA != EOF) {
-        switch (theA) {
-        case ' ':
-            if (isAlphanum(theB)) {
-                action(1);
-            } else {
-                action(2);
-            }
-            break;
-        case '\n':
-            switch (theB) {
-            case '{':
-            case '[':
-            case '(':
-            case '+':
-            case '-':
-                action(1);
-                break;
-            case ' ':
-                action(3);
-                break;
-            default:
-                if (isAlphanum(theB)) {
-                    action(1);
-                } else {
-                    action(2);
-                }
-            }
-            break;
-        default:
-            switch (theB) {
-            case ' ':
-                if (isAlphanum(theA)) {
-                    action(1);
-                    break;
-                }
-                action(3);
-                break;
-            case '\n':
-                switch (theA) {
-                case '}':
-                case ']':
-                case ')':
-                case '+':
-                case '-':
-                case '"':
-                case '\'':
-                    action(1);
-                    break;
-                default:
-                    if (isAlphanum(theA)) {
-                        action(1);
-                    } else {
-                        action(3);
-                    }
-                }
-                break;
-            default:
-                action(1);
-                break;
-            }
-        }
-    }
-}
-
-
-/* main -- Output any command line arguments as comments
-        and then minify the input.
-*/
-extern int
-main(int argc, char* argv[])
-{
-    int i;
-    for (i = 1; i < argc; i += 1) {
-        fprintf(stdout, "// %s\n", argv[i]);
-    }
-    jsmin();
-    return 0;
-}
diff --git a/utils/rhino.js b/utils/rhino.js
deleted file mode 100644
index 580f40b..0000000
--- a/utils/rhino.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// rhino.js
-// 2007-02-19
-/*
-Copyright (c) 2002 Douglas Crockford  (www.JSLint.com) Rhino Edition
-*/
-
-// This is the Rhino companion to fulljslint.js.
-
-/*extern JSLINT */
-
-(function (a) {
-    if (!a[0]) {
-        print("Usage: jslint.js file.js");
-        quit(1);
-    }
-    var input = readFile(a[0]);
-    if (!input) {
-        print("jslint: Couldn't open file '" + a[0] + "'.");
-        quit(1);
-    }
-    if (!JSLINT(input, {rhino: true, passfail: false})) {
-        for (var i = 0; i < JSLINT.errors.length; i += 1) {
-            var e = JSLINT.errors[i];
-            if (e) {
-                print('Lint at line ' + (e.line + 1) + ' character ' +
-                        (e.character + 1) + ': ' + e.reason);
-                print((e.evidence || '').
-                        replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1"));
-                print('');
-            }
-        }
-    } else {
-        print("jslint: No problems found in " + a[0]);
-        quit();
-    }
-})(arguments);
\ No newline at end of file

-- 
jsjac package from xmpp team



More information about the Pkg-xmpp-commits mailing list