aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@redhat.com>2010-06-23 15:12:16 +0200
committerMatěj Cepl <mcepl@redhat.com>2010-06-23 15:12:16 +0200
commit47f8de7261fa8077a63058d5185e3cbb74983ff7 (patch)
tree5b63f4317e72a91315ff7a2c93e7d3f7587654f7 /docs
parentd3a21445ad2f70565d10f632aa9d522e190f9e00 (diff)
downloadbugzilla-triage-47f8de7261fa8077a63058d5185e3cbb74983ff7.tar.gz
Raw HTML documentation generated by JSDoc from Javadoc comments in the code
Diffstat (limited to 'docs')
-rw-r--r--docs/html/BZPage.html1521
-rw-r--r--docs/html/Color.html746
-rw-r--r--docs/html/GLOBALS.html406
-rw-r--r--docs/html/Logger.html471
-rw-r--r--docs/html/MozillaBugzilla.html250
-rw-r--r--docs/html/PersistentPageMod.html445
-rw-r--r--docs/html/RHBugzillaPage.html1500
-rw-r--r--docs/html/XMLRPCMessage.html562
-rw-r--r--docs/html/allclasses-frame.html77
-rw-r--r--docs/html/allclasses-noframe.html78
-rw-r--r--docs/html/help-doc.html160
-rw-r--r--docs/html/index-all.html898
-rw-r--r--docs/html/index.html27
-rw-r--r--docs/html/overview-bzpage.js.html36
-rw-r--r--docs/html/overview-clipboard.js.html30
-rw-r--r--docs/html/overview-color.js.html36
-rw-r--r--docs/html/overview-frame.html63
-rw-r--r--docs/html/overview-logger.js.html36
-rw-r--r--docs/html/overview-main.js.html30
-rw-r--r--docs/html/overview-mozillabzpage.js.html36
-rw-r--r--docs/html/overview-offline-support.js.html30
-rw-r--r--docs/html/overview-persistent-page-mod.js.html36
-rw-r--r--docs/html/overview-rhbzpage.js.html36
-rw-r--r--docs/html/overview-summary-bzpage.js.html915
-rw-r--r--docs/html/overview-summary-clipboard.js.html327
-rw-r--r--docs/html/overview-summary-color.js.html407
-rw-r--r--docs/html/overview-summary-logger.js.html301
-rw-r--r--docs/html/overview-summary-main.js.html366
-rw-r--r--docs/html/overview-summary-mozillabzpage.js.html188
-rw-r--r--docs/html/overview-summary-offline-support.js.html307
-rw-r--r--docs/html/overview-summary-persistent-page-mod.js.html228
-rw-r--r--docs/html/overview-summary-rhbzpage.js.html1092
-rw-r--r--docs/html/overview-summary-util.js.html453
-rw-r--r--docs/html/overview-summary-xmlrpc.js.html322
-rw-r--r--docs/html/overview-summary.html216
-rw-r--r--docs/html/overview-tree.html128
-rw-r--r--docs/html/overview-util.js.html30
-rw-r--r--docs/html/overview-xmlrpc.js.html30
-rw-r--r--docs/html/stylesheet.css39
-rw-r--r--docs/jsdoc.xml2304
40 files changed, 15163 insertions, 0 deletions
diff --git a/docs/html/BZPage.html b/docs/html/BZPage.html
new file mode 100644
index 0000000..cc2086c
--- /dev/null
+++ b/docs/html/BZPage.html
@@ -0,0 +1,1521 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+BZPage
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title="BZPage";
+}
+</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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary-bzpage.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<B>PREV CLASS</B><!--
+ NEXT CLASS
+-->
+&nbsp;<A HREF="Color.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> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<!-- =========== END OF NAVBAR =========== -->
+<HR>
+
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>Class BZPage</H2>
+<PRE>Object
+ |
+ +--<b>BZPage</b>
+</PRE>
+
+
+<HR>
+<DL>
+ <!-- Class definition -->
+ <DT>class
+ <B>BZPage</B>
+
+
+</DL>
+
+ <P>
+ <I>Defined in <a href='overview-summary-bzpage.js.html'>bzpage.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="#BZPage()">BZPage</A></B>(win, config)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
+
+&nbsp;
+
+<!-- ========== 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>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#addStuffToTextBox">addStuffToTextBox</A></B>(id, stuff)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Add object to the text box (comment box or status whiteboard)
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#addToCCList">addToCCList</A></B>(who)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ adds a person to the CC list, if it isn't already there
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#addToCommentsDropdown">addToCommentsDropdown</A></B>(pkg, cmd)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Adds new option to the 'comment_action' scroll down box
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#centralCommandDispatch">centralCommandDispatch</A></B>(cmdLabel, cmdParams)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Actual execution function
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#changeAssignee">changeAssignee</A></B>(newAssignee)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Add XGL to the CC list
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#checkComments">checkComments</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Set background color of all comments made by reporter in ReporterColor color
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#clickMouse">clickMouse</A></B>(targetID)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Send mouse click to the specified element
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#collectComments">collectComments</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#commentsWalker">commentsWalker</A></B>(fce)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#createNewButton">createNewButton</A></B>(location, after, pkg, id)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Generic function to add new button to the page.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#executeCommand">executeCommand</A></B>(cmd)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Take the ID of the package/id combination, and execute it
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#generateButtons">generateButtons</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getAttachments">getAttachments</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ collect the list of attachments in a structured format
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getBugId">getBugId</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Get the ID of the bug.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getCCList">getCCList</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ a collect a list of emails on CC list
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getDefaultBugzillaMaintainer">getDefaultBugzillaMaintainer</A></B>(component)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Return maintainer which is per default by bugzilla
+ (which is not necessarily the one who is default maintainer per component)
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getInstalledPackages">getInstalledPackages</A></B>(cfg)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getLogin">getLogin</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Get login of the currently logged-in user.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getOptionValue">getOptionValue</A></B>(id)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getOwner">getOwner</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getPassword">getPassword</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ returns password from the current storage, or if there isn't
+ one, then it will ask user for it.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getReporter">getReporter</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Get the current email of the reporter of the bug.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getVersion">getVersion</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Get the current version of the Fedora release ...
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#hasKeyword">hasKeyword</A></B>(str)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Check for the presence of a keyword
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#idContainsWord">idContainsWord</A></B>(id, str)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ generalized hasKeyword ...
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#removeStuffFromTextBox">removeStuffFromTextBox</A></B>(id, stuff)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Remove a keyword from the element if it is there
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#selectOption">selectOption</A></B>(id, label)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Select option with given label on the <SELECT> element with given id.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#setNeedinfoReporter">setNeedinfoReporter</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Set the bug to NEEDINFO state
+
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#setUpLogging">setUpLogging</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </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="BZPage()"><!-- --></A><H3>
+BZPage</H3>
+<PRE><B>BZPage</B>(win, config)</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="addStuffToTextBox"><!-- --></A>
+ <H3>addStuffToTextBox</H3>
+ <PRE>Object <B>addStuffToTextBox</B>(id, stuff)</PRE>
+
+ <UL>Add object to the text box (comment box or status whiteboard)</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>id</CODE> - String with the id of the element
+ </UL>
+
+ <UL><CODE>stuff</CODE> - String/Array to be added to the comment box
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ none
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="addToCCList"><!-- --></A>
+ <H3>addToCCList</H3>
+ <PRE>void <B>addToCCList</B>(who)</PRE>
+
+ <UL>adds a person to the CC list, if it isn't already there</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>who</CODE> - String with email address or "self" if the current user of the bugzilla should be added
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="addToCommentsDropdown"><!-- --></A>
+ <H3>addToCommentsDropdown</H3>
+ <PRE>void <B>addToCommentsDropdown</B>(pkg, cmd)</PRE>
+
+ <UL>Adds new option to the 'comment_action' scroll down box</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>pkg</CODE> - String package name
+ </UL>
+
+ <UL><CODE>cmd</CODE> - String with the name of the command If the 'comment_action' scroll down box doesn't exist, this function will set up new one.
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="centralCommandDispatch"><!-- --></A>
+ <H3>centralCommandDispatch</H3>
+ <PRE>void <B>centralCommandDispatch</B>(cmdLabel, cmdParams)</PRE>
+
+ <UL>Actual execution function</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>cmdLabel</CODE> - String with the name of the command to be executed
+ </UL>
+
+ <UL><CODE>cmdParams</CODE> - Object with the appropriate parameters for the command
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="changeAssignee"><!-- --></A>
+ <H3>changeAssignee</H3>
+ <PRE>Object <B>changeAssignee</B>(newAssignee)</PRE>
+
+ <UL>Add XGL to the CC list</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>evt</CODE> - Event which made this function active
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ none
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="checkComments"><!-- --></A>
+ <H3>checkComments</H3>
+ <PRE>void <B>checkComments</B>()</PRE>
+
+ <UL>Set background color of all comments made by reporter in ReporterColor color</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="clickMouse"><!-- --></A>
+ <H3>clickMouse</H3>
+ <PRE>Object <B>clickMouse</B>(targetID)</PRE>
+
+ <UL>Send mouse click to the specified element</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>String</CODE> - ID of the element to send mouseclick to
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ None
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="collectComments"><!-- --></A>
+ <H3>collectComments</H3>
+ <PRE>Object <B>collectComments</B>()</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="commentsWalker"><!-- --></A>
+ <H3>commentsWalker</H3>
+ <PRE>void <B>commentsWalker</B>(fce)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="createNewButton"><!-- --></A>
+ <H3>createNewButton</H3>
+ <PRE>Object <B>createNewButton</B>(location, after, pkg, id)</PRE>
+
+ <UL>Generic function to add new button to the page. Actually copies new button
+ from the old one (in order to have the same look-and-feel, etc.</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>location</CODE> - Object around which the new button will be added
+ </UL>
+
+ <UL><CODE>after</CODE> - Boolean before or after location ?
+ </UL>
+
+ <UL><CODE>pkg</CODE> - String which package to take the command from
+ </UL>
+
+ <UL><CODE>id</CODE> - String which command to take
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ none
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="executeCommand"><!-- --></A>
+ <H3>executeCommand</H3>
+ <PRE>void <B>executeCommand</B>(cmd)</PRE>
+
+ <UL>Take the ID of the package/id combination, and execute it</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>String</CODE> - combined package + "//" + id combination Fetches the command object from this.installedPackages and then goes through all commands contained in it, and calls this.centralCommandDispatch to execute them.
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="generateButtons"><!-- --></A>
+ <H3>generateButtons</H3>
+ <PRE>void <B>generateButtons</B>()</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getAttachments"><!-- --></A>
+ <H3>getAttachments</H3>
+ <PRE>Object <B>getAttachments</B>()</PRE>
+
+ <UL>collect the list of attachments in a structured format</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ Array of arrays, one for each attachments; each record has string name of the attachment, integer its id number, string of MIME type, integer of size in kilobytes, and the whole element itself
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getBugId"><!-- --></A>
+ <H3>getBugId</H3>
+ <PRE>Object <B>getBugId</B>()</PRE>
+
+ <UL>Get the ID of the bug.</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ string
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getCCList"><!-- --></A>
+ <H3>getCCList</H3>
+ <PRE>Object <B>getCCList</B>()</PRE>
+
+ <UL>a collect a list of emails on CC list</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ Array with email addresses as Strings.
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getDefaultBugzillaMaintainer"><!-- --></A>
+ <H3>getDefaultBugzillaMaintainer</H3>
+ <PRE>Object <B>getDefaultBugzillaMaintainer</B>(component)</PRE>
+
+ <UL>Return maintainer which is per default by bugzilla
+ (which is not necessarily the one who is default maintainer per component)</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ String with the maintainer's email address
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getInstalledPackages"><!-- --></A>
+ <H3>getInstalledPackages</H3>
+ <PRE>Object <B>getInstalledPackages</B>(cfg)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getLogin"><!-- --></A>
+ <H3>getLogin</H3>
+ <PRE>Object <B>getLogin</B>()</PRE>
+
+ <UL>Get login of the currently logged-in user.</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ String with the login name of the currently logged-in user
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getOptionValue"><!-- --></A>
+ <H3>getOptionValue</H3>
+ <PRE>Object <B>getOptionValue</B>(id)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getOwner"><!-- --></A>
+ <H3>getOwner</H3>
+ <PRE>Object <B>getOwner</B>()</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getPassword"><!-- --></A>
+ <H3>getPassword</H3>
+ <PRE>Object <B>getPassword</B>()</PRE>
+
+ <UL>returns password from the current storage, or if there isn't
+ one, then it will ask user for it.</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ String with the password
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getReporter"><!-- --></A>
+ <H3>getReporter</H3>
+ <PRE>Object <B>getReporter</B>()</PRE>
+
+ <UL>Get the current email of the reporter of the bug.</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ string
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getVersion"><!-- --></A>
+ <H3>getVersion</H3>
+ <PRE>Object <B>getVersion</B>()</PRE>
+
+ <UL>Get the current version of the Fedora release ... even if changed meanwhile
+ by bug triager.</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ string (integer for released Fedora, float for RHEL, rawhide)
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="hasKeyword"><!-- --></A>
+ <H3>hasKeyword</H3>
+ <PRE>Object <B>hasKeyword</B>(str)</PRE>
+
+ <UL>Check for the presence of a keyword</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>str</CODE> - String with the keyword
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ Boolean
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="idContainsWord"><!-- --></A>
+ <H3>idContainsWord</H3>
+ <PRE>Object <B>idContainsWord</B>(id, str)</PRE>
+
+ <UL>generalized hasKeyword ... search in the value of the box with given id</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>id</CODE> - String with ID of the element we want to check
+ </UL>
+
+ <UL><CODE>str</CODE> - String to be searched for
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ Boolean found?
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="removeStuffFromTextBox"><!-- --></A>
+ <H3>removeStuffFromTextBox</H3>
+ <PRE>void <B>removeStuffFromTextBox</B>(id, stuff)</PRE>
+
+ <UL>Remove a keyword from the element if it is there</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>id</CODE> - String with the id of the element
+ </UL>
+
+ <UL><CODE>stuff</CODE> - String/Array with keyword(s) to be removed
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="selectOption"><!-- --></A>
+ <H3>selectOption</H3>
+ <PRE>Object <B>selectOption</B>(id, label)</PRE>
+
+ <UL>Select option with given label on the <SELECT> element with given id.
+
+ Also execute change HTMLEvent, so that the form behaves accordingly.</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>id</CODE> -
+ </UL>
+
+ <UL><CODE>label</CODE> -
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ none FIXME bugzilla-comments version has this signature: selectOption = function selectOption(select, value) { var doc = select[0].ownerDocument; select.val(value);
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="setNeedinfoReporter"><!-- --></A>
+ <H3>setNeedinfoReporter</H3>
+ <PRE>Object <B>setNeedinfoReporter</B>()</PRE>
+
+ <UL>Set the bug to NEEDINFO state
+
+ Working function.</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ none
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="setUpLogging"><!-- --></A>
+ <H3>setUpLogging</H3>
+ <PRE>void <B>setUpLogging</B>()</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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary-bzpage.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<B>PREV CLASS</B><!--
+ NEXT CLASS
+-->
+&nbsp;<A HREF="Color.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> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<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 Wed Jun 23 09:33:14 2010</div>
+</BODY>
+</HTML>
diff --git a/docs/html/Color.html b/docs/html/Color.html
new file mode 100644
index 0000000..a55660d
--- /dev/null
+++ b/docs/html/Color.html
@@ -0,0 +1,746 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+Color
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title="Color";
+}
+</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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary-color.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="BZPage.html"><B>PREV CLASS</B></A><!--
+ NEXT CLASS
+-->
+&nbsp;<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> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<!-- =========== END OF NAVBAR =========== -->
+<HR>
+
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>Class Color</H2>
+<PRE>Object
+ |
+ +--<b>Color</b>
+</PRE>
+
+
+<HR>
+<DL>
+ <!-- Class definition -->
+ <DT>class
+ <B>Color</B>
+
+
+</DL>
+
+ <P>
+ <I>Defined in <a href='overview-summary-color.js.html'>color.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>&nbsp;Object</CODE></FONT></TD>
+ <TD><CODE><B><A HREF="#b">b</A></B></CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE></FONT></TD>
+ <TD><CODE><B><A HREF="#Desaturated">Desaturated</A></B></CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE></FONT></TD>
+ <TD><CODE><B><A HREF="#g">g</A></B></CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE></FONT></TD>
+ <TD><CODE><B><A HREF="#Luminosity">Luminosity</A></B></CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE></FONT></TD>
+ <TD><CODE><B><A HREF="#r">r</A></B></CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+
+
+ </TABLE>
+ &nbsp;
+
+
+
+
+<!-- =========== 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="#Color()">Color</A></B>(r, g, b)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
+
+&nbsp;
+
+<!-- ========== 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>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#hs">hs</A></B>(nStr)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#hsl">hsl</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Converts an RGB color value to HSL.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#hslToRgb">hslToRgb</A></B>(h, s, l)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Converts an HSL color value to RGB.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#hsv">hsv</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Converts an RGB color value to HSV.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#hsvToRgb">hsvToRgb</A></B>(h, s, v)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Converts an HSV color value to RGB.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#lightColor">lightColor</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Provide
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#toString">toString</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#update">update</A></B>(r, g, b)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </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="b"><!-- --></A>
+ <H3>b</H3>
+ <PRE>Object&nbsp;<B>b</B></PRE>
+ <UL>
+
+
+ </UL>
+ <HR>
+
+ <A NAME="Desaturated"><!-- --></A>
+ <H3>Desaturated</H3>
+ <PRE>Object&nbsp;<B>Desaturated</B></PRE>
+ <UL>
+
+
+ </UL>
+ <HR>
+
+ <A NAME="g"><!-- --></A>
+ <H3>g</H3>
+ <PRE>Object&nbsp;<B>g</B></PRE>
+ <UL>
+
+
+ </UL>
+ <HR>
+
+ <A NAME="Luminosity"><!-- --></A>
+ <H3>Luminosity</H3>
+ <PRE>Object&nbsp;<B>Luminosity</B></PRE>
+ <UL>
+
+
+ </UL>
+ <HR>
+
+ <A NAME="r"><!-- --></A>
+ <H3>r</H3>
+ <PRE>Object&nbsp;<B>r</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="Color()"><!-- --></A><H3>
+Color</H3>
+<PRE><B>Color</B>(r, g, 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="hs"><!-- --></A>
+ <H3>hs</H3>
+ <PRE>Object <B>hs</B>(nStr)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="hsl"><!-- --></A>
+ <H3>hsl</H3>
+ <PRE>Object <B>hsl</B>()</PRE>
+
+ <UL>Converts an RGB color value to HSL. Conversion formula adapted from
+ http://en.wikipedia.org/wiki/HSL_color_space. Assumes r, g, and b are
+ contained in the set [0, 255] and returns h, s, and l in the set [0, 1].4343</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>Number</CODE> - r The red color value
+ </UL>
+
+ <UL><CODE>Number</CODE> - g The green color value
+ </UL>
+
+ <UL><CODE>Number</CODE> - b The blue color value
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ Array The HSL representation
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="hslToRgb"><!-- --></A>
+ <H3>hslToRgb</H3>
+ <PRE>Object <B>hslToRgb</B>(h, s, l)</PRE>
+
+ <UL>Converts an HSL color value to RGB. Conversion formula adapted from
+ http://en.wikipedia.org/wiki/HSL_color_space. Assumes h, s, and l are
+ contained in the set [0, 1] and returns r, g, and b in the set [0, 255].</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>Number</CODE> - h The hue
+ </UL>
+
+ <UL><CODE>Number</CODE> - s The saturation
+ </UL>
+
+ <UL><CODE>Number</CODE> - l The lightness
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ Array The RGB representation
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="hsv"><!-- --></A>
+ <H3>hsv</H3>
+ <PRE>Object <B>hsv</B>()</PRE>
+
+ <UL>Converts an RGB color value to HSV. Conversion formula adapted from
+ http://en.wikipedia.org/wiki/HSV_color_space. Assumes r, g, and b are
+ contained in the set [0, 255] and returns h, s, and v in the set [0, 1].</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>Number</CODE> - r The red color value
+ </UL>
+
+ <UL><CODE>Number</CODE> - g The green color value
+ </UL>
+
+ <UL><CODE>Number</CODE> - b The blue color value
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ Array The HSV representation
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="hsvToRgb"><!-- --></A>
+ <H3>hsvToRgb</H3>
+ <PRE>Object <B>hsvToRgb</B>(h, s, v)</PRE>
+
+ <UL>Converts an HSV color value to RGB. Conversion formula adapted from
+ http://en.wikipedia.org/wiki/HSV_color_space. Assumes h, s, and v are
+ contained in the set [0, 1] and returns r, g, and b in the set [0, 255].</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>Number</CODE> - h The hue
+ </UL>
+
+ <UL><CODE>Number</CODE> - s The saturation
+ </UL>
+
+ <UL><CODE>Number</CODE> - v The value
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ Array The RGB representation
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="lightColor"><!-- --></A>
+ <H3>lightColor</H3>
+ <PRE>Object <B>lightColor</B>()</PRE>
+
+ <UL>Provide</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="toString"><!-- --></A>
+ <H3>toString</H3>
+ <PRE>Object <B>toString</B>()</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="update"><!-- --></A>
+ <H3>update</H3>
+ <PRE>void <B>update</B>(r, g, b)</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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary-color.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="BZPage.html"><B>PREV CLASS</B></A><!--
+ NEXT CLASS
+-->
+&nbsp;<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> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<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 Wed Jun 23 09:33:14 2010</div>
+</BODY>
+</HTML>
diff --git a/docs/html/GLOBALS.html b/docs/html/GLOBALS.html
new file mode 100644
index 0000000..c0e3a9c
--- /dev/null
+++ b/docs/html/GLOBALS.html
@@ -0,0 +1,406 @@
+<!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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="Color.html"><B>PREV CLASS</B></A><!--
+ NEXT CLASS
+-->
+&nbsp;<A HREF="Logger.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> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<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 ======== -->
+
+&nbsp;
+
+<!-- ========== 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>&lt;static&gt;&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#!s!createTransferable">createTransferable</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&lt;static&gt;&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#!s!getClipboard">getClipboard</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ returns content of the system clipboard
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&lt;static&gt;&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#!s!initialize">initialize</A></B>(callback)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&lt;static&gt;&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#!s!isOurPage">isOurPage</A></B>(window, matchingURLs)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&lt;static&gt;&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#!s!skipThisPage">skipThisPage</A></B>(doc)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </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!createTransferable"><!-- --></A>
+ <H3>createTransferable</H3>
+ <PRE>&lt;static&gt; Object <B>createTransferable</B>()</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="!s!getClipboard"><!-- --></A>
+ <H3>getClipboard</H3>
+ <PRE>&lt;static&gt; Object <B>getClipboard</B>()</PRE>
+
+ <UL>returns content of the system clipboard</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ string with the content of the clipboard or "" if empty. originally from https://developer.mozilla.org/en/Using_the_Clipboard https://wiki.mozilla.org/Labs/Jetpack/JEP/10
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="!s!initialize"><!-- --></A>
+ <H3>initialize</H3>
+ <PRE>&lt;static&gt; void <B>initialize</B>(callback)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="!s!isOurPage"><!-- --></A>
+ <H3>isOurPage</H3>
+ <PRE>&lt;static&gt; Object <B>isOurPage</B>(window, matchingURLs)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="!s!skipThisPage"><!-- --></A>
+ <H3>skipThisPage</H3>
+ <PRE>&lt;static&gt; void <B>skipThisPage</B>(doc)</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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="Color.html"><B>PREV CLASS</B></A><!--
+ NEXT CLASS
+-->
+&nbsp;<A HREF="Logger.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> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<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 Wed Jun 23 09:33:14 2010</div>
+</BODY>
+</HTML>
diff --git a/docs/html/Logger.html b/docs/html/Logger.html
new file mode 100644
index 0000000..4eaf23f
--- /dev/null
+++ b/docs/html/Logger.html
@@ -0,0 +1,471 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+Logger
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title="Logger";
+}
+</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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary-logger.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="GLOBALS.html"><B>PREV CLASS</B></A><!--
+ NEXT CLASS
+-->
+&nbsp;<A HREF="MozillaBugzilla.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> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<!-- =========== END OF NAVBAR =========== -->
+<HR>
+
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>Class Logger</H2>
+<PRE>Object
+ |
+ +--<b>Logger</b>
+</PRE>
+
+
+<HR>
+<DL>
+ <!-- Class definition -->
+ <DT>class
+ <B>Logger</B>
+
+
+</DL>
+
+ <P>
+ <I>Defined in <a href='overview-summary-logger.js.html'>logger.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="#Logger()">Logger</A></B>(store, abbsMap)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
+
+&nbsp;
+
+<!-- ========== 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>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#addLogRecord">addLogRecord</A></B>(that)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#createBlankPage">createBlankPage</A></B>(ttl, bodyBuildCB)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#generateTimeSheet">generateTimeSheet</A></B>(body)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getBugzillaAbbr">getBugzillaAbbr</A></B>(url)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getLength">getLength</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#timeSheetRecordsPrinter">timeSheetRecordsPrinter</A></B>(body, records)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </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="Logger()"><!-- --></A><H3>
+Logger</H3>
+<PRE><B>Logger</B>(store, abbsMap)</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="addLogRecord"><!-- --></A>
+ <H3>addLogRecord</H3>
+ <PRE>Object <B>addLogRecord</B>(that)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="createBlankPage"><!-- --></A>
+ <H3>createBlankPage</H3>
+ <PRE>void <B>createBlankPage</B>(ttl, bodyBuildCB)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="generateTimeSheet"><!-- --></A>
+ <H3>generateTimeSheet</H3>
+ <PRE>void <B>generateTimeSheet</B>(body)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getBugzillaAbbr"><!-- --></A>
+ <H3>getBugzillaAbbr</H3>
+ <PRE>Object <B>getBugzillaAbbr</B>(url)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getLength"><!-- --></A>
+ <H3>getLength</H3>
+ <PRE>Object <B>getLength</B>()</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="timeSheetRecordsPrinter"><!-- --></A>
+ <H3>timeSheetRecordsPrinter</H3>
+ <PRE>void <B>timeSheetRecordsPrinter</B>(body, records)</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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary-logger.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="GLOBALS.html"><B>PREV CLASS</B></A><!--
+ NEXT CLASS
+-->
+&nbsp;<A HREF="MozillaBugzilla.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> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<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 Wed Jun 23 09:33:14 2010</div>
+</BODY>
+</HTML>
diff --git a/docs/html/MozillaBugzilla.html b/docs/html/MozillaBugzilla.html
new file mode 100644
index 0000000..1eef098
--- /dev/null
+++ b/docs/html/MozillaBugzilla.html
@@ -0,0 +1,250 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+MozillaBugzilla
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title="MozillaBugzilla";
+}
+</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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary-mozillabzpage.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="Logger.html"><B>PREV CLASS</B></A><!--
+ NEXT CLASS
+-->
+&nbsp;<A HREF="PersistentPageMod.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> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<!-- =========== END OF NAVBAR =========== -->
+<HR>
+
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>Class MozillaBugzilla</H2>
+<PRE>Object
+ |
+ +--<b>MozillaBugzilla</b>
+</PRE>
+
+
+<HR>
+<DL>
+ <!-- Class definition -->
+ <DT>class
+ <B>MozillaBugzilla</B>
+
+
+</DL>
+
+ <P>
+ <I>Defined in <a href='overview-summary-mozillabzpage.js.html'>mozillabzpage.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="#MozillaBugzilla()">MozillaBugzilla</A></B>(doc, config)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
+
+&nbsp;
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+
+
+<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="MozillaBugzilla()"><!-- --></A><H3>
+MozillaBugzilla</H3>
+<PRE><B>MozillaBugzilla</B>(doc, config)</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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary-mozillabzpage.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="Logger.html"><B>PREV CLASS</B></A><!--
+ NEXT CLASS
+-->
+&nbsp;<A HREF="PersistentPageMod.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> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<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 Wed Jun 23 09:33:14 2010</div>
+</BODY>
+</HTML>
diff --git a/docs/html/PersistentPageMod.html b/docs/html/PersistentPageMod.html
new file mode 100644
index 0000000..824a550
--- /dev/null
+++ b/docs/html/PersistentPageMod.html
@@ -0,0 +1,445 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+PersistentPageMod
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title="PersistentPageMod";
+}
+</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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary-persistent-page-mod.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="MozillaBugzilla.html"><B>PREV CLASS</B></A><!--
+ NEXT CLASS
+-->
+&nbsp;<A HREF="RHBugzillaPage.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> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<!-- =========== END OF NAVBAR =========== -->
+<HR>
+
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>Class PersistentPageMod</H2>
+<PRE>Object
+ |
+ +--<b>PersistentPageMod</b>
+</PRE>
+
+
+<HR>
+<DL>
+ <!-- Class definition -->
+ <DT>class
+ <B>PersistentPageMod</B>
+
+
+</DL>
+
+ <P>
+ <I>Defined in <a href='overview-summary-persistent-page-mod.js.html'>persistent-page-mod.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>&nbsp;Object</CODE></FONT></TD>
+ <TD><CODE><B><A HREF="#callback">callback</A></B></CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE></FONT></TD>
+ <TD><CODE><B><A HREF="#REPLACE_DELAY">REPLACE_DELAY</A></B></CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE></FONT></TD>
+ <TD><CODE><B><A HREF="#window">window</A></B></CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+
+
+ </TABLE>
+ &nbsp;
+
+
+
+
+<!-- =========== 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="#PersistentPageMod()">PersistentPageMod</A></B>(window, callback)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
+
+&nbsp;
+
+<!-- ========== 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>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#doMod">doMod</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#handleEvent">handleEvent</A></B>(event)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#unload">unload</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </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="callback"><!-- --></A>
+ <H3>callback</H3>
+ <PRE>Object&nbsp;<B>callback</B></PRE>
+ <UL>
+
+
+ </UL>
+ <HR>
+
+ <A NAME="REPLACE_DELAY"><!-- --></A>
+ <H3>REPLACE_DELAY</H3>
+ <PRE>Object&nbsp;<B>REPLACE_DELAY</B></PRE>
+ <UL>
+
+
+ </UL>
+ <HR>
+
+ <A NAME="window"><!-- --></A>
+ <H3>window</H3>
+ <PRE>Object&nbsp;<B>window</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="PersistentPageMod()"><!-- --></A><H3>
+PersistentPageMod</H3>
+<PRE><B>PersistentPageMod</B>(window, callback)</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="doMod"><!-- --></A>
+ <H3>doMod</H3>
+ <PRE>void <B>doMod</B>()</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="handleEvent"><!-- --></A>
+ <H3>handleEvent</H3>
+ <PRE>void <B>handleEvent</B>(event)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="unload"><!-- --></A>
+ <H3>unload</H3>
+ <PRE>void <B>unload</B>()</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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary-persistent-page-mod.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="MozillaBugzilla.html"><B>PREV CLASS</B></A><!--
+ NEXT CLASS
+-->
+&nbsp;<A HREF="RHBugzillaPage.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> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<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 Wed Jun 23 09:33:14 2010</div>
+</BODY>
+</HTML>
diff --git a/docs/html/RHBugzillaPage.html b/docs/html/RHBugzillaPage.html
new file mode 100644
index 0000000..6268565
--- /dev/null
+++ b/docs/html/RHBugzillaPage.html
@@ -0,0 +1,1500 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+RHBugzillaPage
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title="RHBugzillaPage";
+}
+</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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary-rhbzpage.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="PersistentPageMod.html"><B>PREV CLASS</B></A><!--
+ NEXT CLASS
+-->
+&nbsp;<A HREF="XMLRPCMessage.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> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<!-- =========== END OF NAVBAR =========== -->
+<HR>
+
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>Class RHBugzillaPage</H2>
+<PRE>Object
+ |
+ +--<b>RHBugzillaPage</b>
+</PRE>
+
+
+<HR>
+<DL>
+ <!-- Class definition -->
+ <DT>class
+ <B>RHBugzillaPage</B>
+
+
+</DL>
+
+ <P>
+ <I>Defined in <a href='overview-summary-rhbzpage.js.html'>rhbzpage.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>&nbsp;Object</CODE></FONT></TD>
+ <TD><CODE><B><A HREF="#ProfessionalProducts">ProfessionalProducts</A></B></CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+
+
+ </TABLE>
+ &nbsp;
+
+
+
+
+<!-- =========== 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="#RHBugzillaPage()">RHBugzillaPage</A></B>(win, config)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
+
+&nbsp;
+
+<!-- ========== 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>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#addClosingUpstream">addClosingUpstream</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Add information about the upstream bug upstream, and closing it.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#addTextLink">addTextLink</A></B>(row)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Add a link to the bad attachment for fixing it.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#centralCommandDispatch">centralCommandDispatch</A></B>(cmdLabel, cmdParams)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Additional commands specific for this subclass, overriding superclass one.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#closeSomeRelease">closeSomeRelease</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Auxiliary function to computer more complicated resolution
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#createFixAllButton">createFixAllButton</A></B>(list)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Create a button for fixing all bad attachments.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#fillInChipMagic">fillInChipMagic</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Get attached Xorg.0.log, parse it and find the value of chip.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#fillInWhiteBoard">fillInWhiteBoard</A></B>(iLine, driverStr)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Given line to be parsed, find out which chipset it is and fill in the
+ whiteboard
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#fixAttachById">fixAttachById</A></B>(id, type, email)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ The worker function -- call XMLRPC to fix MIME type of the particular
+ attachment
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#fixElement">fixElement</A></B>(elem, beforeText, accKey, afterText)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Add accesskey to the particular element
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#fixingMIMECallBack">fixingMIMECallBack</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Callback function for the XMLRPC request
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getBugzillaName">getBugzillaName</A></B>(URLhostname)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Return string with the ID for the external_id SELECT for external bugzilla
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getDefaultAssignee">getDefaultAssignee</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Find default assignee based on the current component
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getSelectionOrClipboard">getSelectionOrClipboard</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#isEnterprise">isEnterprise</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Is this bug a RHEL bug?
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#isTriaged">isTriaged</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Find out whether the bug is needed an attention of bugZappers
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#markBadAttachments">markBadAttachments</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#markBugTriaged">markBugTriaged</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#parseAttachmentLine">parseAttachmentLine</A></B>(inElem)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Parse the row with the attachment
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#parseBacktrace">parseBacktrace</A></B>(ret)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#pasteBacktraceInComments">pasteBacktraceInComments</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#queryForSelection">queryForSelection</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Get the text to search for and prepare other things for the real executive
+ function this.queryInNewTab, and run it.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#queryInNewTab">queryInNewTab</A></B>(text, component, product)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Opens a new tab with a query for the given text in the selected component
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#queryUpstream">queryUpstream</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Search simple query in the upstream bugzilla appropriate for the component.
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#sendBugUpstream">sendBugUpstream</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#serializeForm">serializeForm</A></B>(form)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#setBranding">setBranding</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Set branding colours to easily distinguish between Fedora and RHEL bugs
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#setDefaultAssignee">setDefaultAssignee</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Set default assignee
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#toString">toString</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </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="ProfessionalProducts"><!-- --></A>
+ <H3>ProfessionalProducts</H3>
+ <PRE>Object&nbsp;<B>ProfessionalProducts</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="RHBugzillaPage()"><!-- --></A><H3>
+RHBugzillaPage</H3>
+<PRE><B>RHBugzillaPage</B>(win, config)</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="addClosingUpstream"><!-- --></A>
+ <H3>addClosingUpstream</H3>
+ <PRE>Object <B>addClosingUpstream</B>()</PRE>
+
+ <UL>Add information about the upstream bug upstream, and closing it.</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>evt</CODE> - Event which called this handler
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ none
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="addTextLink"><!-- --></A>
+ <H3>addTextLink</H3>
+ <PRE>Object <B>addTextLink</B>(row)</PRE>
+
+ <UL>Add a link to the bad attachment for fixing it.</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>TR</CODE> - > DOM jQuery element with a bad attachment
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ none
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="centralCommandDispatch"><!-- --></A>
+ <H3>centralCommandDispatch</H3>
+ <PRE>void <B>centralCommandDispatch</B>(cmdLabel, cmdParams)</PRE>
+
+ <UL>Additional commands specific for this subclass, overriding superclass one.</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="closeSomeRelease"><!-- --></A>
+ <H3>closeSomeRelease</H3>
+ <PRE>void <B>closeSomeRelease</B>()</PRE>
+
+ <UL>Auxiliary function to computer more complicated resolution</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="createFixAllButton"><!-- --></A>
+ <H3>createFixAllButton</H3>
+ <PRE>Object <B>createFixAllButton</B>(list)</PRE>
+
+ <UL>Create a button for fixing all bad attachments.</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>list</CODE> - Array of all bad attachmentss
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ button fixing all bad Attachments
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="fillInChipMagic"><!-- --></A>
+ <H3>fillInChipMagic</H3>
+ <PRE>Object <B>fillInChipMagic</B>()</PRE>
+
+ <UL>Get attached Xorg.0.log, parse it and find the value of chip. Does not fill
+ the whiteboard itself, just adds button to do so,paramList so that slow
+ XMLHttpRequest is done in advance.</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ None
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="fillInWhiteBoard"><!-- --></A>
+ <H3>fillInWhiteBoard</H3>
+ <PRE>Object <B>fillInWhiteBoard</B>(iLine, driverStr)</PRE>
+
+ <UL>Given line to be parsed, find out which chipset it is and fill in the
+ whiteboard</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>iLine</CODE> - String with the whole unparsed "interesting line"
+ </UL>
+
+ <UL><CODE>driverStr</CODE> - String with the driver name
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ None
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="fixAttachById"><!-- --></A>
+ <H3>fixAttachById</H3>
+ <PRE>void <B>fixAttachById</B>(id, type, email)</PRE>
+
+ <UL>The worker function -- call XMLRPC to fix MIME type of the particular
+ attachment</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>id</CODE> - Integer with the attachment id to be fixed
+ </UL>
+
+ <UL><CODE>type</CODE> - String with the new MIME type, optional defaults to "text/plain"
+ </UL>
+
+ <UL><CODE>email</CODE> - Boolean whether email should be sent to appropriate person; option, defaults to false updateAttachMimeType($data_ref, $username, $password) Update the attachment mime type of an attachment. The first argument is a data hash containing information on the new MIME type and the attachment id that you want to act on. $data_ref = { "attach_id" => "<Attachment ID>", # Attachment ID to perform MIME type change on. "mime_type" => "<New MIME Type Value>", # Legal MIME type value that you want to change the attachment to. "nomail" => 0, # OPTIONAL Flag that is either 1 or 0 if you want email to be sent or not for this change };
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="fixElement"><!-- --></A>
+ <H3>fixElement</H3>
+ <PRE>Object <B>fixElement</B>(elem, beforeText, accKey, afterText)</PRE>
+
+ <UL>Add accesskey to the particular element</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>beforeText</CODE> - Text before the accesskey character
+ </UL>
+
+ <UL><CODE>accKey</CODE> - what will be the accesskey itself
+ </UL>
+
+ <UL><CODE>afterText</CODE> - text after the accesskey character
+ </UL>
+
+ <UL><CODE>rootElement</CODE> - Element to which the new text object will be attached
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ modified element with the fixed accesskey
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="fixingMIMECallBack"><!-- --></A>
+ <H3>fixingMIMECallBack</H3>
+ <PRE>void <B>fixingMIMECallBack</B>()</PRE>
+
+ <UL>Callback function for the XMLRPC request</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>ret</CODE> - Object with xmlhttprequest response with attributes: + status -- int return code + statusText + responseHeaders + responseText
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getBugzillaName"><!-- --></A>
+ <H3>getBugzillaName</H3>
+ <PRE>Object <B>getBugzillaName</B>(URLhostname)</PRE>
+
+ <UL>Return string with the ID for the external_id SELECT for external bugzilla</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>URLhostname</CODE> - String hostname of the external bugzilla
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ String with the string for the external_id SELECT
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getDefaultAssignee"><!-- --></A>
+ <H3>getDefaultAssignee</H3>
+ <PRE>Object <B>getDefaultAssignee</B>()</PRE>
+
+ <UL>Find default assignee based on the current component</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ String what would be a default assignee if we haven't set it up.
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getSelectionOrClipboard"><!-- --></A>
+ <H3>getSelectionOrClipboard</H3>
+ <PRE>Object <B>getSelectionOrClipboard</B>()</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="isEnterprise"><!-- --></A>
+ <H3>isEnterprise</H3>
+ <PRE>Object <B>isEnterprise</B>()</PRE>
+
+ <UL>Is this bug a RHEL bug?</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ Boolean true if it is a RHEL bug
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="isTriaged"><!-- --></A>
+ <H3>isTriaged</H3>
+ <PRE>Object <B>isTriaged</B>()</PRE>
+
+ <UL>Find out whether the bug is needed an attention of bugZappers</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ Boolean whether the bug has been triaged or not
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="markBadAttachments"><!-- --></A>
+ <H3>markBadAttachments</H3>
+ <PRE>void <B>markBadAttachments</B>()</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="markBugTriaged"><!-- --></A>
+ <H3>markBugTriaged</H3>
+ <PRE>void <B>markBugTriaged</B>()</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="parseAttachmentLine"><!-- --></A>
+ <H3>parseAttachmentLine</H3>
+ <PRE>Object <B>parseAttachmentLine</B>(inElem)</PRE>
+
+ <UL>Parse the row with the attachment</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>DOM</CODE> - element to be parsed
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ array with string name of the attachment, integer its id number, string of MIME type, integer of size in kilobytes, and the whole element itself
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="parseBacktrace"><!-- --></A>
+ <H3>parseBacktrace</H3>
+ <PRE>Object <B>parseBacktrace</B>(ret)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="pasteBacktraceInComments"><!-- --></A>
+ <H3>pasteBacktraceInComments</H3>
+ <PRE>void <B>pasteBacktraceInComments</B>()</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="queryForSelection"><!-- --></A>
+ <H3>queryForSelection</H3>
+ <PRE>void <B>queryForSelection</B>()</PRE>
+
+ <UL>Get the text to search for and prepare other things for the real executive
+ function this.queryInNewTab, and run it.</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="queryInNewTab"><!-- --></A>
+ <H3>queryInNewTab</H3>
+ <PRE>Object <B>queryInNewTab</B>(text, component, product)</PRE>
+
+ <UL>Opens a new tab with a query for the given text in the selected component</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>text</CODE> - to be searched for
+ </UL>
+
+ <UL><CODE>component</CODE> - String with the component name (maybe latter regexp?)
+ </UL>
+
+ <UL><CODE>product</CODE> - (optional) string with the product name, if undefined, search in all products
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ None
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="queryUpstream"><!-- --></A>
+ <H3>queryUpstream</H3>
+ <PRE>void <B>queryUpstream</B>()</PRE>
+
+ <UL>Search simple query in the upstream bugzilla appropriate for the component.</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="sendBugUpstream"><!-- --></A>
+ <H3>sendBugUpstream</H3>
+ <PRE>void <B>sendBugUpstream</B>()</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="serializeForm"><!-- --></A>
+ <H3>serializeForm</H3>
+ <PRE>Object <B>serializeForm</B>(form)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="setBranding"><!-- --></A>
+ <H3>setBranding</H3>
+ <PRE>Object <B>setBranding</B>()</PRE>
+
+ <UL>Set branding colours to easily distinguish between Fedora and RHEL bugs</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <UL>
+ <B>Parameters:</B>
+
+ <UL><CODE>brand</CODE> - String with product of the current bug
+ </UL>
+
+ <UL><CODE>version</CODE> - String with the version of the bug
+ </UL>
+
+ <UL><CODE>its</CODE> - String with the IsueTracker numbers
+ </UL>
+
+ </UL>
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ none
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="setDefaultAssignee"><!-- --></A>
+ <H3>setDefaultAssignee</H3>
+ <PRE>Object <B>setDefaultAssignee</B>()</PRE>
+
+ <UL>Set default assignee</UL>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+ <UL>
+ <B>Returns:</B>
+ <UL>
+ none sets this.defaultAssignee property according to defaultAssignee list
+ </UL>
+ </UL>
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="toString"><!-- --></A>
+ <H3>toString</H3>
+ <PRE>Object <B>toString</B>()</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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary-rhbzpage.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="PersistentPageMod.html"><B>PREV CLASS</B></A><!--
+ NEXT CLASS
+-->
+&nbsp;<A HREF="XMLRPCMessage.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> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<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 Wed Jun 23 09:33:14 2010</div>
+</BODY>
+</HTML>
diff --git a/docs/html/XMLRPCMessage.html b/docs/html/XMLRPCMessage.html
new file mode 100644
index 0000000..89f4f80
--- /dev/null
+++ b/docs/html/XMLRPCMessage.html
@@ -0,0 +1,562 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+XMLRPCMessage
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title="XMLRPCMessage";
+}
+</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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="RHBugzillaPage.html"><B>PREV CLASS</B></A><!--
+ NEXT CLASS
+-->
+&nbsp;<B>NEXT CLASS</B></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<!-- =========== END OF NAVBAR =========== -->
+<HR>
+
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>Class XMLRPCMessage</H2>
+<PRE>Object
+ |
+ +--<b>XMLRPCMessage</b>
+</PRE>
+
+
+<HR>
+<DL>
+ <!-- Class definition -->
+ <DT>class
+ <B>XMLRPCMessage</B>
+
+
+</DL>
+
+ <HR>
+
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<!-- ======== END NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+
+
+<!-- =========== END FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
+
+&nbsp;
+
+<!-- ========== 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>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#addParameter">addParameter</A></B>(data)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#dataTypeOf">dataTypeOf</A></B>(o)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#doArrayXML">doArrayXML</A></B>(data)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#doBooleanXML">doBooleanXML</A></B>(data)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#doDateXML">doDateXML</A></B>(data)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#doStructXML">doStructXML</A></B>(data)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#doValueXML">doValueXML</A></B>(type, data)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#getParamXML">getParamXML</A></B>(type, data)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;void</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#setMethod">setMethod</A></B>(methodName)
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </TD>
+ </TR>
+
+ <TR BGCOLOR="white" CLASS="TableRowColor">
+ <TD ALIGN="right" VALIGN="top" WIDTH="1%">
+ <FONT SIZE="-1">
+ <CODE>&nbsp;Object</CODE>
+ </FONT>
+ </TD>
+ <TD>
+ <CODE>
+ <B>
+ <A HREF="#xml">xml</A></B>()
+ </CODE>
+ <BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </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="addParameter"><!-- --></A>
+ <H3>addParameter</H3>
+ <PRE>void <B>addParameter</B>(data)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="dataTypeOf"><!-- --></A>
+ <H3>dataTypeOf</H3>
+ <PRE>Object <B>dataTypeOf</B>(o)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="doArrayXML"><!-- --></A>
+ <H3>doArrayXML</H3>
+ <PRE>Object <B>doArrayXML</B>(data)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="doBooleanXML"><!-- --></A>
+ <H3>doBooleanXML</H3>
+ <PRE>Object <B>doBooleanXML</B>(data)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="doDateXML"><!-- --></A>
+ <H3>doDateXML</H3>
+ <PRE>Object <B>doDateXML</B>(data)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="doStructXML"><!-- --></A>
+ <H3>doStructXML</H3>
+ <PRE>Object <B>doStructXML</B>(data)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="doValueXML"><!-- --></A>
+ <H3>doValueXML</H3>
+ <PRE>Object <B>doValueXML</B>(type, data)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="getParamXML"><!-- --></A>
+ <H3>getParamXML</H3>
+ <PRE>Object <B>getParamXML</B>(type, data)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="setMethod"><!-- --></A>
+ <H3>setMethod</H3>
+ <PRE>void <B>setMethod</B>(methodName)</PRE>
+
+
+ <!-- METHOD PARAMETERS START -->
+
+ <!-- METHOD PARAMETERS END -->
+
+
+
+ <!-- ADDITIONAL ATTRIBUTES START -->
+
+ <!-- ADDITIONAL ATTRIBUTES END -->
+<HR>
+
+ <A NAME="xml"><!-- --></A>
+ <H3>xml</H3>
+ <PRE>Object <B>xml</B>()</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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"--> <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="RHBugzillaPage.html"><B>PREV CLASS</B></A><!--
+ NEXT CLASS
+-->
+&nbsp;<B>NEXT CLASS</B></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<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 Wed Jun 23 09:33:14 2010</div>
+</BODY>
+</HTML>
diff --git a/docs/html/allclasses-frame.html b/docs/html/allclasses-frame.html
new file mode 100644
index 0000000..cb8a249
--- /dev/null
+++ b/docs/html/allclasses-frame.html
@@ -0,0 +1,77 @@
+<!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="BZPage.html" TARGET="classFrame">BZPage</A>
+<BR>
+</FONT></TD>
+</TR>
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Color.html" TARGET="classFrame">Color</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="Logger.html" TARGET="classFrame">Logger</A>
+<BR>
+</FONT></TD>
+</TR>
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="MozillaBugzilla.html" TARGET="classFrame">MozillaBugzilla</A>
+<BR>
+</FONT></TD>
+</TR>
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="PersistentPageMod.html" TARGET="classFrame">PersistentPageMod</A>
+<BR>
+</FONT></TD>
+</TR>
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="RHBugzillaPage.html" TARGET="classFrame">RHBugzillaPage</A>
+<BR>
+</FONT></TD>
+</TR>
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="XMLRPCMessage.html" TARGET="classFrame">XMLRPCMessage</A>
+<BR>
+</FONT></TD>
+</TR>
+
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/html/allclasses-noframe.html b/docs/html/allclasses-noframe.html
new file mode 100644
index 0000000..3eda9d1
--- /dev/null
+++ b/docs/html/allclasses-noframe.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<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();">
+
+ <IMG SRC="./"/>
+
+<H3 CLASS="FrameHeadingFont"></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="BZPage.html" >BZPage</A>
+<BR>
+</FONT></TD>
+</TR>
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Color.html" >Color</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="Logger.html" >Logger</A>
+<BR>
+</FONT></TD>
+</TR>
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="MozillaBugzilla.html" >MozillaBugzilla</A>
+<BR>
+</FONT></TD>
+</TR>
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="PersistentPageMod.html" >PersistentPageMod</A>
+<BR>
+</FONT></TD>
+</TR>
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="RHBugzillaPage.html" >RHBugzillaPage</A>
+<BR>
+</FONT></TD>
+</TR>
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="XMLRPCMessage.html" >XMLRPCMessage</A>
+<BR>
+</FONT></TD>
+</TR>
+
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/html/help-doc.html b/docs/html/help-doc.html
new file mode 100644
index 0000000..541ba3f
--- /dev/null
+++ b/docs/html/help-doc.html
@@ -0,0 +1,160 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+<TITLE>
+ 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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="help-doc.html" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD-->
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="help-doc.html" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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 Wed Jun 23 09:33:14 2010</div>
+</BODY>
+</HTML>
diff --git a/docs/html/index-all.html b/docs/html/index-all.html
new file mode 100644
index 0000000..3775c3f
--- /dev/null
+++ b/docs/html/index-all.html
@@ -0,0 +1,898 @@
+<!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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD-->
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="index-all.html" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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
+-->
+&nbsp;<A HREF="index-all.html#__A__">A</A>&nbsp;<A HREF="index-all.html#__B__">B</A>&nbsp;<A HREF="index-all.html#__C__">C</A>&nbsp;<A HREF="index-all.html#__D__">D</A>&nbsp;<A HREF="index-all.html#__E__">E</A>&nbsp;<A HREF="index-all.html#__F__">F</A>&nbsp;<A HREF="index-all.html#__G__">G</A>&nbsp;<A HREF="index-all.html#__H__">H</A>&nbsp;<A HREF="index-all.html#__I__">I</A>&nbsp;<A HREF="index-all.html#__L__">L</A>&nbsp;<A HREF="index-all.html#__M__">M</A>&nbsp;<A HREF="index-all.html#__P__">P</A>&nbsp;<A HREF="index-all.html#__Q__">Q</A>&nbsp;<A HREF="index-all.html#__R__">R</A>&nbsp;<A HREF="index-all.html#__S__">S</A>&nbsp;<A HREF="index-all.html#__T__">T</A>&nbsp;<A HREF="index-all.html#__U__">U</A>&nbsp;<A HREF="index-all.html#__W__">W</A>&nbsp;<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="RHBugzillaPage.html#addClosingUpstream"><B>addClosingUpstream()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Logger.html#addLogRecord"><B>addLogRecord(that)</B></A> -
+Instance method in class <A HREF="Logger.html">Logger</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="XMLRPCMessage.html#addParameter"><B>addParameter(data)</B></A> -
+Instance method in class <A HREF="XMLRPCMessage.html">XMLRPCMessage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#addStuffToTextBox"><B>addStuffToTextBox(id, stuff)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#addTextLink"><B>addTextLink(row)</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#addToCCList"><B>addToCCList(who)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#addToCommentsDropdown"><B>addToCommentsDropdown(pkg, cmd)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__B__"><!-- --></A><H2>
+<B>B</B></H2>
+
+<DL>
+<DT><A HREF="Color.html#b"><B>b</B></A> -
+Instance field in class <A HREF="Color.html">Color</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#"><B>BZPage</B></A> -
+ class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#constructor_detail"><B>BZPage(win, config)</B></A> -
+Constructor in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__C__"><!-- --></A><H2>
+<B>C</B></H2>
+
+<DL>
+<DT><A HREF="PersistentPageMod.html#callback"><B>callback</B></A> -
+Instance field in class <A HREF="PersistentPageMod.html">PersistentPageMod</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#centralCommandDispatch"><B>centralCommandDispatch(cmdLabel, cmdParams)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#centralCommandDispatch"><B>centralCommandDispatch(cmdLabel, cmdParams)</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#changeAssignee"><B>changeAssignee(newAssignee)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#checkComments"><B>checkComments()</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#clickMouse"><B>clickMouse(targetID)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#closeSomeRelease"><B>closeSomeRelease()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#collectComments"><B>collectComments()</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Color.html#"><B>Color</B></A> -
+ class <A HREF="Color.html">Color</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Color.html#constructor_detail"><B>Color(r, g, b)</B></A> -
+Constructor in class <A HREF="Color.html">Color</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#commentsWalker"><B>commentsWalker(fce)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Logger.html#createBlankPage"><B>createBlankPage(ttl, bodyBuildCB)</B></A> -
+Instance method in class <A HREF="Logger.html">Logger</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#createFixAllButton"><B>createFixAllButton(list)</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#createNewButton"><B>createNewButton(location, after, pkg, id)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="GLOBALS.html#createTransferable"><B>createTransferable()</B></A> -
+Class method in class <A HREF="GLOBALS.html">GLOBALS</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__D__"><!-- --></A><H2>
+<B>D</B></H2>
+
+<DL>
+<DT><A HREF="XMLRPCMessage.html#dataTypeOf"><B>dataTypeOf(o)</B></A> -
+Instance method in class <A HREF="XMLRPCMessage.html">XMLRPCMessage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Color.html#Desaturated"><B>Desaturated</B></A> -
+Instance field in class <A HREF="Color.html">Color</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="XMLRPCMessage.html#doArrayXML"><B>doArrayXML(data)</B></A> -
+Instance method in class <A HREF="XMLRPCMessage.html">XMLRPCMessage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="XMLRPCMessage.html#doBooleanXML"><B>doBooleanXML(data)</B></A> -
+Instance method in class <A HREF="XMLRPCMessage.html">XMLRPCMessage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="XMLRPCMessage.html#doDateXML"><B>doDateXML(data)</B></A> -
+Instance method in class <A HREF="XMLRPCMessage.html">XMLRPCMessage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="PersistentPageMod.html#doMod"><B>doMod()</B></A> -
+Instance method in class <A HREF="PersistentPageMod.html">PersistentPageMod</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="XMLRPCMessage.html#doStructXML"><B>doStructXML(data)</B></A> -
+Instance method in class <A HREF="XMLRPCMessage.html">XMLRPCMessage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="XMLRPCMessage.html#doValueXML"><B>doValueXML(type, data)</B></A> -
+Instance method in class <A HREF="XMLRPCMessage.html">XMLRPCMessage</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__E__"><!-- --></A><H2>
+<B>E</B></H2>
+
+<DL>
+<DT><A HREF="BZPage.html#executeCommand"><B>executeCommand(cmd)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__F__"><!-- --></A><H2>
+<B>F</B></H2>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#fillInChipMagic"><B>fillInChipMagic()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#fillInWhiteBoard"><B>fillInWhiteBoard(iLine, driverStr)</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#fixAttachById"><B>fixAttachById(id, type, email)</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#fixElement"><B>fixElement(elem, beforeText, accKey, afterText)</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#fixingMIMECallBack"><B>fixingMIMECallBack()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__G__"><!-- --></A><H2>
+<B>G</B></H2>
+
+<DL>
+<DT><A HREF="Color.html#g"><B>g</B></A> -
+Instance field in class <A HREF="Color.html">Color</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#generateButtons"><B>generateButtons()</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Logger.html#generateTimeSheet"><B>generateTimeSheet(body)</B></A> -
+Instance method in class <A HREF="Logger.html">Logger</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#getAttachments"><B>getAttachments()</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#getBugId"><B>getBugId()</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Logger.html#getBugzillaAbbr"><B>getBugzillaAbbr(url)</B></A> -
+Instance method in class <A HREF="Logger.html">Logger</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#getBugzillaName"><B>getBugzillaName(URLhostname)</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#getCCList"><B>getCCList()</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="GLOBALS.html#getClipboard"><B>getClipboard()</B></A> -
+Class method in class <A HREF="GLOBALS.html">GLOBALS</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#getDefaultAssignee"><B>getDefaultAssignee()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#getDefaultBugzillaMaintainer"><B>getDefaultBugzillaMaintainer(component)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#getInstalledPackages"><B>getInstalledPackages(cfg)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Logger.html#getLength"><B>getLength()</B></A> -
+Instance method in class <A HREF="Logger.html">Logger</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#getLogin"><B>getLogin()</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#getOptionValue"><B>getOptionValue(id)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#getOwner"><B>getOwner()</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="XMLRPCMessage.html#getParamXML"><B>getParamXML(type, data)</B></A> -
+Instance method in class <A HREF="XMLRPCMessage.html">XMLRPCMessage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#getPassword"><B>getPassword()</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#getReporter"><B>getReporter()</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#getSelectionOrClipboard"><B>getSelectionOrClipboard()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#getVersion"><B>getVersion()</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="GLOBALS.html#"><B>GLOBALS</B></A> -
+ class <A HREF="GLOBALS.html">GLOBALS</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__H__"><!-- --></A><H2>
+<B>H</B></H2>
+
+<DL>
+<DT><A HREF="PersistentPageMod.html#handleEvent"><B>handleEvent(event)</B></A> -
+Instance method in class <A HREF="PersistentPageMod.html">PersistentPageMod</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#hasKeyword"><B>hasKeyword(str)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Color.html#hs"><B>hs(nStr)</B></A> -
+Instance method in class <A HREF="Color.html">Color</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Color.html#hsl"><B>hsl()</B></A> -
+Instance method in class <A HREF="Color.html">Color</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Color.html#hslToRgb"><B>hslToRgb(h, s, l)</B></A> -
+Instance method in class <A HREF="Color.html">Color</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Color.html#hsv"><B>hsv()</B></A> -
+Instance method in class <A HREF="Color.html">Color</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Color.html#hsvToRgb"><B>hsvToRgb(h, s, v)</B></A> -
+Instance method in class <A HREF="Color.html">Color</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__I__"><!-- --></A><H2>
+<B>I</B></H2>
+
+<DL>
+<DT><A HREF="BZPage.html#idContainsWord"><B>idContainsWord(id, str)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="GLOBALS.html#initialize"><B>initialize(callback)</B></A> -
+Class method in class <A HREF="GLOBALS.html">GLOBALS</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#isEnterprise"><B>isEnterprise()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="GLOBALS.html#isOurPage"><B>isOurPage(window, matchingURLs)</B></A> -
+Class method in class <A HREF="GLOBALS.html">GLOBALS</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#isTriaged"><B>isTriaged()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__L__"><!-- --></A><H2>
+<B>L</B></H2>
+
+<DL>
+<DT><A HREF="Color.html#lightColor"><B>lightColor()</B></A> -
+Instance method in class <A HREF="Color.html">Color</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Logger.html#"><B>Logger</B></A> -
+ class <A HREF="Logger.html">Logger</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Logger.html#constructor_detail"><B>Logger(store, abbsMap)</B></A> -
+Constructor in class <A HREF="Logger.html">Logger</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Color.html#Luminosity"><B>Luminosity</B></A> -
+Instance field in class <A HREF="Color.html">Color</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__M__"><!-- --></A><H2>
+<B>M</B></H2>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#markBadAttachments"><B>markBadAttachments()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#markBugTriaged"><B>markBugTriaged()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="MozillaBugzilla.html#"><B>MozillaBugzilla</B></A> -
+ class <A HREF="MozillaBugzilla.html">MozillaBugzilla</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="MozillaBugzilla.html#constructor_detail"><B>MozillaBugzilla(doc, config)</B></A> -
+Constructor in class <A HREF="MozillaBugzilla.html">MozillaBugzilla</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__P__"><!-- --></A><H2>
+<B>P</B></H2>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#parseAttachmentLine"><B>parseAttachmentLine(inElem)</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#parseBacktrace"><B>parseBacktrace(ret)</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#pasteBacktraceInComments"><B>pasteBacktraceInComments()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="PersistentPageMod.html#"><B>PersistentPageMod</B></A> -
+ class <A HREF="PersistentPageMod.html">PersistentPageMod</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="PersistentPageMod.html#constructor_detail"><B>PersistentPageMod(window, callback)</B></A> -
+Constructor in class <A HREF="PersistentPageMod.html">PersistentPageMod</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#ProfessionalProducts"><B>ProfessionalProducts</B></A> -
+Instance field in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__Q__"><!-- --></A><H2>
+<B>Q</B></H2>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#queryForSelection"><B>queryForSelection()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#queryInNewTab"><B>queryInNewTab(text, component, product)</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#queryUpstream"><B>queryUpstream()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__R__"><!-- --></A><H2>
+<B>R</B></H2>
+
+<DL>
+<DT><A HREF="Color.html#r"><B>r</B></A> -
+Instance field in class <A HREF="Color.html">Color</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#removeStuffFromTextBox"><B>removeStuffFromTextBox(id, stuff)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="PersistentPageMod.html#REPLACE_DELAY"><B>REPLACE_DELAY</B></A> -
+Instance field in class <A HREF="PersistentPageMod.html">PersistentPageMod</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#"><B>RHBugzillaPage</B></A> -
+ class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#constructor_detail"><B>RHBugzillaPage(win, config)</B></A> -
+Constructor in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__S__"><!-- --></A><H2>
+<B>S</B></H2>
+
+<DL>
+<DT><A HREF="BZPage.html#selectOption"><B>selectOption(id, label)</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#sendBugUpstream"><B>sendBugUpstream()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#serializeForm"><B>serializeForm(form)</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#setBranding"><B>setBranding()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#setDefaultAssignee"><B>setDefaultAssignee()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="XMLRPCMessage.html#setMethod"><B>setMethod(methodName)</B></A> -
+Instance method in class <A HREF="XMLRPCMessage.html">XMLRPCMessage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#setNeedinfoReporter"><B>setNeedinfoReporter()</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="BZPage.html#setUpLogging"><B>setUpLogging()</B></A> -
+Instance method in class <A HREF="BZPage.html">BZPage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="GLOBALS.html#skipThisPage"><B>skipThisPage(doc)</B></A> -
+Class method in class <A HREF="GLOBALS.html">GLOBALS</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__T__"><!-- --></A><H2>
+<B>T</B></H2>
+
+<DL>
+<DT><A HREF="Logger.html#timeSheetRecordsPrinter"><B>timeSheetRecordsPrinter(body, records)</B></A> -
+Instance method in class <A HREF="Logger.html">Logger</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Color.html#toString"><B>toString()</B></A> -
+Instance method in class <A HREF="Color.html">Color</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="RHBugzillaPage.html#toString"><B>toString()</B></A> -
+Instance method in class <A HREF="RHBugzillaPage.html">RHBugzillaPage</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__U__"><!-- --></A><H2>
+<B>U</B></H2>
+
+<DL>
+<DT><A HREF="PersistentPageMod.html#unload"><B>unload()</B></A> -
+Instance method in class <A HREF="PersistentPageMod.html">PersistentPageMod</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="Color.html#update"><B>update(r, g, b)</B></A> -
+Instance method in class <A HREF="Color.html">Color</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__W__"><!-- --></A><H2>
+<B>W</B></H2>
+
+<DL>
+<DT><A HREF="PersistentPageMod.html#window"><B>window</B></A> -
+Instance field in class <A HREF="PersistentPageMod.html">PersistentPageMod</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<A NAME="__X__"><!-- --></A><H2>
+<B>X</B></H2>
+
+<DL>
+<DT><A HREF="XMLRPCMessage.html#xml"><B>xml()</B></A> -
+Instance method in class <A HREF="XMLRPCMessage.html">XMLRPCMessage</A>
+<DD>&nbsp;
+</DL>
+
+<DL>
+<DT><A HREF="XMLRPCMessage.html#"><B>XMLRPCMessage</B></A> -
+ class <A HREF="XMLRPCMessage.html">XMLRPCMessage</A>
+<DD>&nbsp;
+</DL>
+
+<HR>
+
+<!--
+ Listing of letters
+-->
+&nbsp;<A HREF="index-all.html#__A__">A</A>&nbsp;<A HREF="index-all.html#__B__">B</A>&nbsp;<A HREF="index-all.html#__C__">C</A>&nbsp;<A HREF="index-all.html#__D__">D</A>&nbsp;<A HREF="index-all.html#__E__">E</A>&nbsp;<A HREF="index-all.html#__F__">F</A>&nbsp;<A HREF="index-all.html#__G__">G</A>&nbsp;<A HREF="index-all.html#__H__">H</A>&nbsp;<A HREF="index-all.html#__I__">I</A>&nbsp;<A HREF="index-all.html#__L__">L</A>&nbsp;<A HREF="index-all.html#__M__">M</A>&nbsp;<A HREF="index-all.html#__P__">P</A>&nbsp;<A HREF="index-all.html#__Q__">Q</A>&nbsp;<A HREF="index-all.html#__R__">R</A>&nbsp;<A HREF="index-all.html#__S__">S</A>&nbsp;<A HREF="index-all.html#__T__">T</A>&nbsp;<A HREF="index-all.html#__U__">U</A>&nbsp;<A HREF="index-all.html#__W__">W</A>&nbsp;<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>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
+ <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD-->
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B></B>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="index-all.html" TARGET="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;
+<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 Wed Jun 23 09:33:14 2010</div>
+</BODY>
+</HTML>
diff --git a/docs/html/index.html b/docs/html/index.html
new file mode 100644
index 0000000..8a7b7ad
--- /dev/null
+++ b/docs/html/index.html
@@ -0,0 +1,27 @@
+<!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/docs/html/overview-bzpage.js.html b/docs/html/overview-bzpage.js.html
new file mode 100644
index 0000000..d1bed51
--- /dev/null
+++ b/docs/html/overview-bzpage.js.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+ bzpage.js
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title=" bzpage.js";
+}
+</SCRIPT>
+<BODY BGCOLOR="white" onload="asd();">
+
+<H3 class="FrameHeadingFont"><B></B></H3>
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B><a href="overview-summary-bzpage.js.html"
+ target="classFrame">bzpage.js</a></B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%">
+
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="BZPage.html" TARGET="classFrame">BZPage</A>
+<BR>
+</FONT></TD>
+</TR>
+
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/html/overview-clipboard.js.html b/docs/html/overview-clipboard.js.html
new file mode 100644
index 0000000..1acfdea
--- /dev/null
+++ b/docs/html/overview-clipboard.js.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+ clipboard.js
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title=" clipboard.js";
+}
+</SCRIPT>
+<BODY BGCOLOR="white" onload="asd();">
+
+<H3 class="FrameHeadingFont"><B></B></H3>
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B><a href="overview-summary-clipboard.js.html"
+ target="classFrame">clipboard.js</a></B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%">
+
+
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/html/overview-color.js.html b/docs/html/overview-color.js.html
new file mode 100644
index 0000000..166cc3c
--- /dev/null
+++ b/docs/html/overview-color.js.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+ color.js
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title=" color.js";
+}
+</SCRIPT>
+<BODY BGCOLOR="white" onload="asd();">
+
+<H3 class="FrameHeadingFont"><B></B></H3>
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B><a href="overview-summary-color.js.html"
+ target="classFrame">color.js</a></B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%">
+
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Color.html" TARGET="classFrame">Color</A>
+<BR>
+</FONT></TD>
+</TR>
+
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/html/overview-frame.html b/docs/html/overview-frame.html
new file mode 100644
index 0000000..089e23f
--- /dev/null
+++ b/docs/html/overview-frame.html
@@ -0,0 +1,63 @@
+<!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></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-bzpage.js.html" TARGET="packageFrame">bzpage.js</A></FONT><BR>
+
+<FONT CLASS="FrameItemFont"><A HREF="overview-clipboard.js.html" TARGET="packageFrame">clipboard.js</A></FONT><BR>
+
+<FONT CLASS="FrameItemFont"><A HREF="overview-color.js.html" TARGET="packageFrame">color.js</A></FONT><BR>
+
+<FONT CLASS="FrameItemFont"><A HREF="overview-logger.js.html" TARGET="packageFrame">logger.js</A></FONT><BR>
+
+<FONT CLASS="FrameItemFont"><A HREF="overview-main.js.html" TARGET="packageFrame">main.js</A></FONT><BR>
+
+<FONT CLASS="FrameItemFont"><A HREF="overview-mozillabzpage.js.html" TARGET="packageFrame">mozillabzpage.js</A></FONT><BR>
+
+<FONT CLASS="FrameItemFont"><A HREF="overview-offline-support.js.html" TARGET="packageFrame">offline-support.js</A></FONT><BR>
+
+<FONT CLASS="FrameItemFont"><A HREF="overview-persistent-page-mod.js.html" TARGET="packageFrame">persistent-page-mod.js</A></FONT><BR>
+
+<FONT CLASS="FrameItemFont"><A HREF="overview-rhbzpage.js.html" TARGET="packageFrame">rhbzpage.js</A></FONT><BR>
+
+<FONT CLASS="FrameItemFont"><A HREF="overview-util.js.html" TARGET="packageFrame">util.js</A></FONT><BR>
+
+<FONT CLASS="FrameItemFont"><A HREF="overview-xmlrpc.js.html" TARGET="packageFrame">xmlrpc.js</A></FONT><BR>
+
+</TD>
+</TR>
+</TABLE>
+
+<P>
+&nbsp;
+</BODY>
+</HTML>
diff --git a/docs/html/overview-logger.js.html b/docs/html/overview-logger.js.html
new file mode 100644
index 0000000..076514b
--- /dev/null
+++ b/docs/html/overview-logger.js.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+ logger.js
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title=" logger.js";
+}
+</SCRIPT>
+<BODY BGCOLOR="white" onload="asd();">
+
+<H3 class="FrameHeadingFont"><B></B></H3>
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B><a href="overview-summary-logger.js.html"
+ target="classFrame">logger.js</a></B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%">
+
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Logger.html" TARGET="classFrame">Logger</A>
+<BR>
+</FONT></TD>
+</TR>
+
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/html/overview-main.js.html b/docs/html/overview-main.js.html
new file mode 100644
index 0000000..a2031cf
--- /dev/null
+++ b/docs/html/overview-main.js.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+ main.js
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title=" main.js";
+}
+</SCRIPT>
+<BODY BGCOLOR="white" onload="asd();">
+
+<H3 class="FrameHeadingFont"><B></B></H3>
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B><a href="overview-summary-main.js.html"
+ target="classFrame">main.js</a></B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%">
+
+
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/html/overview-mozillabzpage.js.html b/docs/html/overview-mozillabzpage.js.html
new file mode 100644
index 0000000..15cfc5a
--- /dev/null
+++ b/docs/html/overview-mozillabzpage.js.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+ mozillabzpage.js
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title=" mozillabzpage.js";
+}
+</SCRIPT>
+<BODY BGCOLOR="white" onload="asd();">
+
+<H3 class="FrameHeadingFont"><B></B></H3>
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B><a href="overview-summary-mozillabzpage.js.html"
+ target="classFrame">mozillabzpage.js</a></B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%">
+
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="MozillaBugzilla.html" TARGET="classFrame">MozillaBugzilla</A>
+<BR>
+</FONT></TD>
+</TR>
+
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/html/overview-offline-support.js.html b/docs/html/overview-offline-support.js.html
new file mode 100644
index 0000000..09162ac
--- /dev/null
+++ b/docs/html/overview-offline-support.js.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+ offline-support.js
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title=" offline-support.js";
+}
+</SCRIPT>
+<BODY BGCOLOR="white" onload="asd();">
+
+<H3 class="FrameHeadingFont"><B></B></H3>
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B><a href="overview-summary-offline-support.js.html"
+ target="classFrame">offline-support.js</a></B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%">
+
+
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/html/overview-persistent-page-mod.js.html b/docs/html/overview-persistent-page-mod.js.html
new file mode 100644
index 0000000..d153e56
--- /dev/null
+++ b/docs/html/overview-persistent-page-mod.js.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+ persistent-page-mod.js
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title=" persistent-page-mod.js";
+}
+</SCRIPT>
+<BODY BGCOLOR="white" onload="asd();">
+
+<H3 class="FrameHeadingFont"><B></B></H3>
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B><a href="overview-summary-persistent-page-mod.js.html"
+ target="classFrame">persistent-page-mod.js</a></B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%">
+
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="PersistentPageMod.html" TARGET="classFrame">PersistentPageMod</A>
+<BR>
+</FONT></TD>
+</TR>
+
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/html/overview-rhbzpage.js.html b/docs/html/overview-rhbzpage.js.html
new file mode 100644
index 0000000..340c07e
--- /dev/null
+++ b/docs/html/overview-rhbzpage.js.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+ rhbzpage.js
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title=" rhbzpage.js";
+}
+</SCRIPT>
+<BODY BGCOLOR="white" onload="asd();">
+
+<H3 class="FrameHeadingFont"><B></B></H3>
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B><a href="overview-summary-rhbzpage.js.html"
+ target="classFrame">rhbzpage.js</a></B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%">
+
+
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="RHBugzillaPage.html" TARGET="classFrame">RHBugzillaPage</A>
+<BR>
+</FONT></TD>
+</TR>
+
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/html/overview-summary-bzpage.js.html b/docs/html/overview-summary-bzpage.js.html
new file mode 100644
index 0000000..d5a478d
--- /dev/null
+++ b/docs/html/overview-summary-bzpage.js.html
@@ -0,0 +1,915 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
+<html>
+<head>
+<title>
+ Overview
+</title>
+<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script>
+function asd() {
+
+ parent.document.title="bzpage.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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top">
+<em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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>bzpage.js</h2>
+
+</center>
+
+
+
+
+<h4>Summary</h4>
+<p>
+
+ No overview generated for 'bzpage.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="BZPage.html">BZPage</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ <hr/>
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<!-- ========== END METHOD SUMMARY =========== -->
+
+
+ <pre class="sourceview"><span class="comment">/*jslint onevar: false, browser: true, evil: true, laxbreak: true, undef: true, nomen: true, eqeqeq: true, bitwise: true, maxerr: 1000, immed: false, white: false, plusplus: false, regexp: false, undef: false */</span>
+<span class="comment">// Released under the MIT/X11 license</span>
+<span class="comment">// http://www.opensource.org/licenses/mit-license.php</span>
+<span class="literal">"use strict"</span>;
+var util = require(<span class="literal">"util"</span>);
+var apiUtils = require(<span class="literal">"api-utils"</span>);
+var simpleStorage = require(<span class="literal">"simple-storage"</span>);
+var preferences = require(<span class="literal">"preferences-service"</span>);
+var Color = require(<span class="literal">"color"</span>).Color;
+
+var TriagedDistro = 13;
+var NumberOfFrames = 7;
+var bugURL = <span class="literal">"https://bugzilla.redhat.com/show_bug.cgi?id="</span>;
+
+<span class="comment">// ====================================================================================</span>
+<span class="comment">// BZPage's methods</span>
+var BZPage = <span class="reserved">function</span> BZPage(win, config) {
+ var keys = <span class="literal">""</span>;
+ <span class="reserved">for</span> (var key in config) {
+ keys += key + <span class="literal">", "</span>;
+ }
+ console.log(<span class="literal">"config keys = "</span> + keys);
+
+ <span class="comment">// constants</span>
+ <span class="reserved">this</span>.SalmonPink = new Color(255, 224, 176); <span class="comment">// RGB 255, 224, 176; HSL 36, 2,</span>
+ <span class="comment">// 85</span>
+ <span class="reserved">this</span>.ReporterColor = new Color(255, 255, 166); <span class="comment">// RGB 255, 255, 166; HSL 60, 2,</span>
+ <span class="comment">// 83</span>
+ <span class="comment">// initialize dynamic properties</span>
+ <span class="reserved">this</span>.win = win;
+ <span class="reserved">this</span>.doc = win.document;
+ <span class="reserved">this</span>.packages = <span class="reserved">this</span>.getInstalledPackages(config);
+
+ <span class="reserved">if</span> (<span class="literal">"commentStrings"</span> in config.gJSONData) {
+ <span class="reserved">this</span>.commentStrings = config.gJSONData.commentStrings;
+ }
+
+ <span class="reserved">if</span> (<span class="literal">"constantData"</span> in config.gJSONData) {
+ <span class="reserved">this</span>.constantData = config.gJSONData.constantData;
+ }
+
+ <span class="reserved">if</span> (<span class="literal">"CCmaintainer"</span> in config.gJSONData.constantData) {
+ <span class="reserved">this</span>.defBugzillaMaintainerArr = config.gJSONData.constantData.CCmaintainer;
+ }
+
+ <span class="reserved">if</span> (<span class="literal">"suspiciousComponents"</span> in config.gJSONData.configData) {
+ <span class="reserved">this</span>.suspiciousComponents = config.gJSONData.configData.suspiciousComponents;
+ }
+
+ <span class="reserved">if</span> (<span class="literal">"submitsLogging"</span> in config.gJSONData.configData &amp;&amp;
+ config.gJSONData.configData.submitsLogging) {
+ <span class="reserved">this</span>.log = config.logger;
+ console.log(<span class="literal">"length of this.log.store = "</span> + <span class="reserved">this</span>.log.getLength());
+ <span class="reserved">this</span>.setUpLogging();
+ }
+
+ <span class="reserved">this</span>.submitHandlerInstalled = false;
+ <span class="reserved">this</span>.bugNo = util.getBugNo(<span class="reserved">this</span>.doc.location.toString());
+
+ <span class="reserved">this</span>.reporter = <span class="reserved">this</span>.getReporter();
+ <span class="reserved">this</span>.product = <span class="reserved">this</span>.getOptionValue(<span class="literal">"product"</span>);
+ <span class="reserved">this</span>.component = <span class="reserved">this</span>.getOptionValue(<span class="literal">"component"</span>);
+ <span class="reserved">this</span>.version = <span class="reserved">this</span>.getVersion();
+ <span class="reserved">this</span>.title = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"short_desc_nonedit_display"</span>).textContent;
+ <span class="reserved">this</span>.CCList = <span class="reserved">this</span>.getCCList();
+
+ <span class="comment">// Prepare for query buttons</span>
+ <span class="comment">// FIXME getting null for commentArea sometimes</span>
+ var commentArea = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"comment_status_commit"</span>);
+ <span class="reserved">if</span> (commentArea) {
+ var brElementPlacer = commentArea.getElementsByTagName(<span class="literal">"br"</span>);
+ brElementPlacer = brElementPlacer[0];
+ <span class="reserved">if</span> (brElementPlacer) {
+ brElementPlacer.setAttribute(<span class="literal">"id"</span>,<span class="literal">"brElementPlacer_location"</span>);
+ brElementPlacer.parentNode.insertBefore(<span class="reserved">this</span>.doc.createElement(<span class="literal">"br"</span>),
+ brElementPlacer);
+ }
+ } <span class="reserved">else</span> {
+ console.log(<span class="literal">"Cannot find element with 'comment_status_commit' ID!"</span>);
+ }
+
+ <span class="reserved">this</span>.generateButtons();
+};
+
+<span class="comment">/**
+ * Get the ID of the bug.
+ *
+ * <span class="attrib">@return</span> string
+ */</span>
+BZPage.<span class="reserved">prototype</span>.getBugId = <span class="reserved">function</span> getBugId () {
+ <span class="reserved">return</span> util.getBugNo(<span class="reserved">this</span>.doc.location.href);
+};
+
+<span class="comment">/**
+ *
+ */</span>
+BZPage.<span class="reserved">prototype</span>.getInstalledPackages = <span class="reserved">function</span> getInstalledPackages(cfg) {
+ var installedPackages = {};
+
+ <span class="reserved">if</span> (cfg.gJSONData &amp;&amp; (<span class="literal">"commentPackages"</span> in cfg.gJSONData)) {
+ <span class="comment">// TODO: Temporary hack ... should be replaced by a proper configuration</span>
+ <span class="comment">// when replacement for jetpack.storage.settings lands</span>
+ var enabledPackages = cfg.gJSONData.configData.enabledPacks.split(/[, ]/);
+ enabledPackages.forEach(<span class="reserved">function</span> (pkg, idx, arr) {
+ <span class="reserved">if</span> (pkg in cfg.gJSONData.commentPackages) {
+ installedPackages[pkg] = cfg.gJSONData.commentPackages[pkg];
+ }
+ });
+ }
+ <span class="reserved">return</span> installedPackages;
+};
+
+<span class="comment">/**
+ * Actual execution function
+ *
+ * <span class="attrib">@param</span> cmdLabel String with the name of the command to be executed
+ * <span class="attrib">@param</span> cmdParams Object with the appropriate parameters for the command
+ */</span>
+BZPage.<span class="reserved">prototype</span>.centralCommandDispatch = <span class="reserved">function</span> centralCommandDispatch (cmdLabel, cmdParams) {
+ switch (cmdLabel) {
+ case <span class="literal">"resolution"</span>:
+ case <span class="literal">"product"</span>:
+ case <span class="literal">"component"</span>:
+ case <span class="literal">"version"</span>:
+ case <span class="literal">"priority"</span>:
+ <span class="reserved">this</span>.selectOption(cmdLabel, cmdParams);
+ break;
+ case <span class="literal">"status"</span>:
+ <span class="reserved">this</span>.selectOption(<span class="literal">"bug_status"</span>, cmdParams);
+ break;
+ case <span class="literal">"platform"</span>:
+ <span class="reserved">this</span>.selectOption(<span class="literal">"rep_platform"</span>, cmdParams);
+ break;
+ case <span class="literal">"os"</span>:
+ <span class="reserved">this</span>.selectOption(<span class="literal">"op_sys"</span>, cmdParams);
+ break;
+ case <span class="literal">"severity"</span>:
+ <span class="reserved">this</span>.selectOption(<span class="literal">"bug_severity"</span>, cmdParams);
+ break;
+ case <span class="literal">"target"</span>:
+ <span class="reserved">this</span>.selectOption(<span class="literal">"target_milestone"</span>, cmdParams);
+ break;
+ case <span class="literal">"addKeyword"</span>:
+ <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"keywords"</span>,cmdParams);
+ break;
+ case <span class="literal">"removeKeyword"</span>:
+ <span class="reserved">this</span>.removeStuffFromTextBox(<span class="literal">"keywords"</span>, cmdParams);
+ break;
+ case <span class="literal">"addWhiteboard"</span>:
+ <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"status_whiteboard"</span>,cmdParams);
+ break;
+ case <span class="literal">"removeWhiteboard"</span>:
+ <span class="reserved">this</span>.removeStuffFromTextBox(<span class="literal">"status_whiteboard"</span>,cmdParams);
+ break;
+ case <span class="literal">"assignee"</span>:
+ <span class="reserved">this</span>.changeAssignee(cmdParams);
+ break;
+ case <span class="literal">"qacontact"</span>:
+ <span class="reserved">this</span>.clickMouse(<span class="literal">"bz_qa_contact_edit_action"</span>);
+ <span class="reserved">this</span>.doc.getElementById(<span class="literal">"qa_contact"</span>).value = cmdParams;
+ break;
+ case <span class="literal">"url"</span>:
+ <span class="reserved">this</span>.clickMouse(<span class="literal">"bz_url_edit_action"</span>);
+ <span class="reserved">this</span>.doc.getElementById(<span class="literal">"bug_file_loc"</span>).value = cmdParams;
+ break;
+ <span class="comment">// TODO dependson/blocked doesn't work. Find out why.</span>
+ case <span class="literal">"addDependsOn"</span>:
+ <span class="reserved">this</span>.clickMouse(<span class="literal">"dependson_edit_action"</span>);
+ <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"dependson"</span>, cmdParams);
+ break;
+ case <span class="literal">"removeDependsOn"</span>:
+ <span class="reserved">this</span>.clickMouse(<span class="literal">"dependson_edit_action"</span>);
+ <span class="reserved">this</span>.removeStuffFromTextBox(<span class="literal">"dependson"</span>, cmdParams);
+ break;
+ case <span class="literal">"addBlocks"</span>:
+ <span class="reserved">this</span>.clickMouse(<span class="literal">"blocked_edit_action"</span>);
+ <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"blocked"</span>, cmdParams);
+ break;
+ case <span class="literal">"removeBlocks"</span>:
+ <span class="reserved">this</span>.clickMouse(<span class="literal">"blocked_edit_action"</span>);
+ <span class="reserved">this</span>.removeStuffFromTextBox(<span class="literal">"blocked"</span>, cmdParams);
+ break;
+ case <span class="literal">"comment"</span>:
+ <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"comment"</span>, cmdParams);
+ break;
+ case <span class="literal">"commentIdx"</span>:
+ var commentText = <span class="reserved">this</span>.commentStrings[cmdParams];
+ <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"comment"</span>, commentText);
+ break;
+ case <span class="literal">"setNeedinfo"</span>:
+ <span class="comment">// cmdParams are actually ignored for now; we may in future</span>
+ <span class="comment">// distinguish different actors to be target of needinfo</span>
+ <span class="reserved">this</span>.setNeedinfoReporter();
+ break;
+ case <span class="literal">"addCC"</span>:
+ <span class="reserved">this</span>.addToCCList(cmdParams);
+ break;
+ <span class="comment">// TODO flags, see also</span>
+
+ case <span class="literal">"commit"</span>:
+ <span class="reserved">if</span> (cmdParams) {
+ <span class="comment">// Directly commit the form</span>
+ <span class="reserved">this</span>.doc.forms.namedItem(<span class="literal">"changeform"</span>).submit();
+ }
+ break;
+ }
+};
+
+<span class="comment">/**
+ * Take the ID of the package/id combination, and execute it
+ *
+ * <span class="attrib">@param</span> String combined package + "//" + id combination
+ * Fetches the command object from this.installedPackages and then
+ * goes through all commands contained in it, and calls
+ * this.centralCommandDispatch to execute them.
+ */</span>
+BZPage.<span class="reserved">prototype</span>.executeCommand = <span class="reserved">function</span> executeCommand (cmd) {
+ var cmdArr = cmd.split(<span class="literal">"//"</span>);
+ var commentObj = <span class="reserved">this</span>.packages[cmdArr[0]][cmdArr[1]];
+
+ <span class="reserved">for</span> (var key in commentObj) {
+ <span class="reserved">this</span>.centralCommandDispatch(key,commentObj[key]);
+ }
+};
+
+<span class="comment">/**
+ * Add XGL to the CC list
+ *
+ * <span class="attrib">@param</span> evt Event which made this function active
+ * <span class="attrib">@return</span> none
+ */</span>
+BZPage.<span class="reserved">prototype</span>.changeAssignee = <span class="reserved">function</span> changeAssignee (newAssignee) {
+ var defAssigneeButton = null;
+ <span class="reserved">this</span>.addToCCList(<span class="reserved">this</span>.owner);
+ <span class="reserved">if</span> (newAssignee === null) {
+ <span class="reserved">this</span>.doc.getElementById(<span class="literal">"set_default_assignee"</span>).removeAttribute(
+ <span class="literal">"checked"</span>);
+ <span class="reserved">return</span> ;
+ }
+
+ <span class="reserved">if</span> (<span class="reserved">this</span>.getDefaultAssignee) {
+ <span class="reserved">if</span> (newAssignee === <span class="literal">"default"</span>) {
+ var defAss = <span class="reserved">this</span>.getDefaultAssignee();
+ <span class="reserved">if</span> (defAss) {
+ newAssignee = defAss;
+ } <span class="reserved">else</span> {
+ <span class="reserved">return</span> ;
+ }
+ }
+ }
+
+ <span class="reserved">if</span> (newAssignee) {
+ <span class="reserved">this</span>.clickMouse(<span class="literal">"bz_assignee_edit_action"</span>);
+ <span class="reserved">this</span>.doc.getElementById(<span class="literal">"assigned_to"</span>).value = newAssignee;
+ <span class="reserved">this</span>.doc.getElementById(<span class="literal">"set_default_assignee"</span>).checked = false;
+ defAssigneeButton = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"setDefaultAssignee_btn"</span>);
+ <span class="reserved">if</span> (defAssigneeButton) {
+ defAssigneeButton.style.display = <span class="literal">"none"</span>;
+ }
+ }
+};
+
+<span class="comment">/**
+ * Adds new option to the 'comment_action' scroll down box
+ *
+ * <span class="attrib">@param</span> pkg String package name
+ * <span class="attrib">@param</span> cmd String with the name of the command
+ * If the 'comment_action' scroll down box doesn't exist, this
+ * function will set up new one.
+ */</span>
+BZPage.<span class="reserved">prototype</span>.addToCommentsDropdown = <span class="reserved">function</span> addToCommentsDropdown (pkg, cmd) {
+ var select = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"comment_action"</span>);
+ <span class="reserved">if</span> (!select) {
+ var that = <span class="reserved">this</span>;
+ <span class="reserved">this</span>.doc.getElementById(<span class="literal">"comments"</span>).innerHTML +=
+ <span class="literal">"&lt;div id='make_bugzilla_comment_action'&gt;"</span> +
+ <span class="literal">" &lt;label for='comment_action'&gt;Add Comment: &lt;/label&gt;"</span> +
+ <span class="literal">" &lt;select id='comment_action'&gt;"</span> +
+ <span class="literal">" &lt;option value=''&gt;-- Select Comment from List --&lt;/option&gt;"</span> +
+ <span class="literal">"&lt;/div&gt;"</span>;
+ select = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"comment_action"</span>);
+ select.addEventListener(<span class="literal">"change"</span>, <span class="reserved">function</span> () {
+ var value = <span class="literal">""</span>;
+ var valueElement = that.doc.getElementById(<span class="literal">"comment_action"</span>);
+ <span class="reserved">if</span> (valueElement) {
+ value = valueElement.getAttribute(<span class="literal">"value"</span>);
+ } <span class="reserved">else</span> {
+ <span class="reserved">return</span>;
+ }
+ that.executeCommand(value);
+ }, false);
+ }
+
+ var opt = <span class="reserved">this</span>.doc.createElement(<span class="literal">"option"</span>);
+ opt.value = pkg + <span class="literal">"//"</span> + cmd;
+ opt.textContent = <span class="reserved">this</span>.packages[pkg][cmd].name;
+ select.appendChild(opt);
+};
+
+<span class="comment">/**
+ * Generic function to add new button to the page. Actually copies new button
+ * from the old one (in order to have the same look-and-feel, etc.
+ *
+ * <span class="attrib">@param</span> location Object around which the new button will be added
+ * <span class="attrib">@param</span> after Boolean before or after location ?
+ * <span class="attrib">@param</span> pkg String which package to take the command from
+ * <span class="attrib">@param</span> id String which command to take
+ * <span class="attrib">@return</span> none
+ */</span>
+BZPage.<span class="reserved">prototype</span>.createNewButton = <span class="reserved">function</span> createNewButton (location, after, pkg, id) {
+ var that = <span class="reserved">this</span>;
+ var cmdObj = <span class="reserved">this</span>.packages[pkg][id];
+ var newId = id + <span class="literal">"_btn"</span>;
+ var label = cmdObj.name;
+
+ <span class="comment">// protection against double-firings</span>
+ <span class="reserved">if</span> (<span class="reserved">this</span>.doc.getElementById(newId)) {
+ console.log(<span class="literal">"Element with id "</span> + newId + <span class="literal">"already exists!"</span>);
+ <span class="reserved">return</span> ;
+ }
+
+ <span class="comment">// creation of button might be conditional on existence of data in constantData</span>
+ <span class="reserved">if</span> (<span class="literal">"ifExist"</span> in cmdObj) {
+ <span class="reserved">if</span> (!(cmdObj.ifExist in <span class="reserved">this</span>.constantData)) {
+ <span class="reserved">return</span> ;
+ }
+ }
+
+ var newButton = <span class="reserved">this</span>.doc.createElement(<span class="literal">"input"</span>);
+ newButton.setAttribute(<span class="literal">"id"</span>, newId);
+ newButton.setAttribute(<span class="literal">"type"</span>, <span class="literal">"button"</span>);
+ newButton.value = label;
+ newButton.addEventListener(<span class="literal">"click"</span>, <span class="reserved">function</span>(evt) {
+ that.executeCommand(pkg + <span class="literal">"//"</span> + id);
+ }, false);
+
+ var originalLocation = <span class="reserved">this</span>.doc.getElementById(location);
+
+ <span class="reserved">if</span> (after) {
+ originalLocation.parentNode.insertBefore(newButton,
+ originalLocation.nextSibling);
+ originalLocation.parentNode.insertBefore(<span class="reserved">this</span>.doc
+ .createTextNode(<span class="literal">"\u00A0"</span>), newButton);
+ } <span class="reserved">else</span> {
+ originalLocation.parentNode.insertBefore(newButton, originalLocation);
+ originalLocation.parentNode.insertBefore(<span class="reserved">this</span>.doc
+ .createTextNode(<span class="literal">"\u00A0"</span>), originalLocation);
+ }
+};
+
+<span class="comment">/**
+ *
+ */</span>
+BZPage.<span class="reserved">prototype</span>.generateButtons = <span class="reserved">function</span> generateButtons () {
+ var topRowPosition = <span class="literal">"topRowPositionID"</span>;
+ var bottomRowPosition = <span class="literal">"commit"</span>;
+
+ <span class="comment">// create anchor for the top toolbar</span>
+ var commentBox = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"comment"</span>);
+ var brElement = <span class="reserved">this</span>.doc.createElement(<span class="literal">"br"</span>);
+ brElement.setAttribute(<span class="literal">"id"</span>,topRowPosition);
+ commentBox.parentNode.normalize();
+ commentBox.parentNode.insertBefore(brElement, commentBox);
+
+ <span class="reserved">for</span> (var pkg in <span class="reserved">this</span>.packages) {
+ <span class="reserved">for</span> (var cmdIdx in <span class="reserved">this</span>.packages[pkg]) {
+ var cmdObj = <span class="reserved">this</span>.packages[pkg][cmdIdx];
+ switch (cmdObj.position) {
+ case <span class="literal">"topRow"</span>:
+ <span class="reserved">this</span>.createNewButton(topRowPosition, false, pkg, cmdIdx);
+ break;
+ case <span class="literal">"bottomRow"</span>:
+ <span class="reserved">this</span>.createNewButton(bottomRowPosition, false, pkg, cmdIdx);
+ break;
+ case <span class="literal">"dropDown"</span>:
+ <span class="reserved">this</span>.addToCommentsDropdown(pkg,cmdIdx);
+ break;
+ default: <span class="comment">// [+-]ID</span>
+ var firstChr = cmdObj.position.charAt(0);
+ var newId = cmdObj.position.substr(1);
+ <span class="reserved">this</span>.createNewButton(newId, firstChr === <span class="literal">"+"</span>, pkg, cmdIdx);
+ break;
+ }
+ }
+ }
+};
+
+<span class="comment">/**
+ * Get the current email of the reporter of the bug.
+ *
+ * <span class="attrib">@return</span> string
+ */</span>
+BZPage.<span class="reserved">prototype</span>.getReporter = <span class="reserved">function</span> getReporter () {
+ var reporterElement = <span class="reserved">this</span>.doc.
+ querySelector(<span class="literal">"#bz_show_bug_column_2 &gt; table .vcard:first-of-type &gt; a"</span>);
+ <span class="reserved">if</span> (reporterElement) {
+ <span class="reserved">return</span> reporterElement.textContent;
+ }
+ <span class="reserved">return</span> <span class="literal">""</span>;
+};
+
+<span class="comment">/**
+ * Get the current version of the Fedora release ... even if changed meanwhile
+ * by bug triager.
+ *
+ * <span class="attrib">@return</span> string (integer for released Fedora, float for RHEL, rawhide)
+ */</span>
+BZPage.<span class="reserved">prototype</span>.getVersion = <span class="reserved">function</span> getVersion () {
+ var verStr = <span class="reserved">this</span>.getOptionValue(<span class="literal">"version"</span>).toLowerCase();
+ var verNo = 0;
+ <span class="reserved">if</span> (/rawhide/.test(verStr)) {
+ verNo = 999;
+ } <span class="reserved">else</span> {
+ verNo = Number(verStr);
+ }
+ <span class="reserved">return</span> verNo;
+};
+
+BZPage.<span class="reserved">prototype</span>.commentsWalker = <span class="reserved">function</span> commentsWalker (fce) {
+ var comments = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"comments"</span>).getElementsByClassName(
+ <span class="literal">"bz_comment"</span>);
+ Array.forEach(comments, <span class="reserved">function</span>(item) {
+ fce(item);
+ }, <span class="reserved">this</span>);
+};
+
+<span class="comment">/**
+ * Set background color of all comments made by reporter in ReporterColor color
+ *
+ */</span>
+BZPage.<span class="reserved">prototype</span>.checkComments = <span class="reserved">function</span> checkComments () {
+ var that = <span class="reserved">this</span>;
+ <span class="reserved">this</span>.commentsWalker(<span class="reserved">function</span>(x) {
+ var email = x.getElementsByClassName(<span class="literal">"vcard"</span>)[0]
+ .getElementsByTagName(<span class="literal">"a"</span>)[0].textContent;
+ <span class="reserved">if</span> (new RegExp(that.reporter).test(email)) {
+ x.style.backgroundColor = that.ReporterColor.toString();
+ }
+ });
+};
+
+BZPage.<span class="reserved">prototype</span>.collectComments = <span class="reserved">function</span> collectComments () {
+ var outStr = <span class="literal">""</span>;
+ <span class="reserved">this</span>.commentsWalker(<span class="reserved">function</span>(x) {
+ outStr += x.getElementsByTagName(<span class="literal">"pre"</span>)[0].textContent + <span class="literal">"\n"</span>;
+ });
+ <span class="reserved">return</span> outStr.trim();
+};
+
+
+<span class="comment">/**
+ * Select option with given label on the &lt;SELECT&gt; element with given id.
+ *
+ * Also execute change HTMLEvent, so that the form behaves accordingly.
+ *
+ * <span class="attrib">@param</span> id
+ * <span class="attrib">@param</span> label
+ * <span class="attrib">@return</span> none
+ *
+ * FIXME bugzilla-comments version has this signature:
+ * selectOption = function selectOption(select, value) {
+ var doc = select[0].ownerDocument;
+ select.val(value);
+ */</span>
+BZPage.<span class="reserved">prototype</span>.selectOption = <span class="reserved">function</span> selectOption (id, label) {
+ var sel = <span class="reserved">this</span>.doc.getElementById(id);
+ sel.value = label;
+ var intEvent = <span class="reserved">this</span>.doc.createEvent(<span class="literal">"HTMLEvents"</span>);
+ intEvent.initEvent(<span class="literal">"change"</span>, true, true);
+ sel.dispatchEvent(intEvent);
+};
+
+<span class="comment">/**
+ * Send mouse click to the specified element
+ *
+ * <span class="attrib">@param</span> String ID of the element to send mouseclick to
+ * <span class="attrib">@return</span> None
+ */</span>
+BZPage.<span class="reserved">prototype</span>.clickMouse = <span class="reserved">function</span> clickMouse (targetID) {
+ var localEvent = <span class="reserved">this</span>.doc.createEvent(<span class="literal">"MouseEvents"</span>);
+ localEvent.initMouseEvent(<span class="literal">"click"</span>, true, true, <span class="reserved">this</span>.doc.defaultView, 0, 0,
+ 0, 0, 0, false, false, false, false, 0, null);
+ <span class="reserved">this</span>.doc.getElementById(targetID).dispatchEvent(localEvent);
+};
+
+<span class="comment">/**
+ * Add object to the text box (comment box or status whiteboard)
+ *
+ * <span class="attrib">@param</span> id String with the id of the element
+ * <span class="attrib">@param</span> stuff String/Array to be added to the comment box
+ *
+ * <span class="attrib">@return</span> none
+ */</span>
+BZPage.<span class="reserved">prototype</span>.addStuffToTextBox = <span class="reserved">function</span> addStuffToTextBox (id, stuff) {
+ var textBox = <span class="reserved">this</span>.doc.getElementById(id);
+ <span class="reserved">if</span> (textBox.tagName.toLowerCase() === <span class="literal">"textarea"</span>) {
+ stuff = textBox.value ? <span class="literal">"\n\n"</span> + stuff : stuff;
+ textBox.value += stuff;
+ } <span class="reserved">else</span> {
+ textBox.value = util.addCSVValue(textBox.value,stuff);
+ }
+};
+
+<span class="comment">/**
+ * Remove a keyword from the element if it is there
+ *
+ * <span class="attrib">@param</span> id String with the id of the element
+ * <span class="attrib">@param</span> stuff String/Array with keyword(s) to be removed
+ */</span>
+BZPage.<span class="reserved">prototype</span>.removeStuffFromTextBox = <span class="reserved">function</span> removeStuffFromTextBox (id, stuff) {
+ var changedElement = <span class="reserved">this</span>.getElementById(id);
+ changedElement.value = util.removeCSVValue(changedElement.value,stuff);
+};
+
+<span class="comment">/**
+ * generalized hasKeyword ... search in the value of the box with given id
+ *
+ * <span class="attrib">@param</span> id String with ID of the element we want to check
+ * <span class="attrib">@param</span> str String to be searched for
+ * <span class="attrib">@return</span> Boolean found?
+ */</span>
+BZPage.<span class="reserved">prototype</span>.idContainsWord = <span class="reserved">function</span> idContainsWord (id, str) {
+ var kwd = <span class="literal">""</span>;
+ try {
+ kwd = <span class="reserved">this</span>.doc.getElementById(id).value;
+ } catch (e) {
+ <span class="comment">// For those who don't have particular element at all or if it is empty</span>
+ <span class="reserved">return</span> false;
+ }
+ <span class="reserved">return</span> (kwd.trim().indexOf(str) !== -1);
+};
+
+<span class="comment">/**
+ * Check for the presence of a keyword
+ *
+ * <span class="attrib">@param</span> str String with the keyword
+ * <span class="attrib">@return</span> Boolean
+ */</span>
+BZPage.<span class="reserved">prototype</span>.hasKeyword = <span class="reserved">function</span> hasKeyword (str) {
+ <span class="reserved">return</span> (<span class="reserved">this</span>.idContainsWord(<span class="literal">'keywords'</span>, str));
+};
+
+<span class="comment">/**
+ *
+ */</span>
+BZPage.<span class="reserved">prototype</span>.getOptionValue = <span class="reserved">function</span> getOptionValue (id) {
+ <span class="comment">// Some special bugs don't have version for example</span>
+ var element = <span class="reserved">this</span>.doc.getElementById(id);
+ <span class="reserved">if</span> (element) {
+ <span class="reserved">return</span> element.value;
+ } <span class="reserved">else</span> {
+ console.error(<span class="literal">"Failed to find element with id = "</span> + id);
+ <span class="reserved">return</span> <span class="literal">"#NA"</span>;
+ }
+};
+
+<span class="comment">/**
+ * Set the bug to NEEDINFO state
+ *
+ * Working function.
+ * <span class="attrib">@return</span> none
+ * <span class="attrib">@todo</span> TODO we may extend this to general setNeedinfo function
+ * with parameter [reporter|assignee|general-email-address]
+ */</span>
+BZPage.<span class="reserved">prototype</span>.setNeedinfoReporter = <span class="reserved">function</span> setNeedinfoReporter () {
+ <span class="reserved">this</span>.clickMouse(<span class="literal">"needinfo"</span>);
+ <span class="reserved">this</span>.selectOption(<span class="literal">"needinfo_role"</span>, <span class="literal">"reporter"</span>);
+};
+
+<span class="comment">/**
+ *
+ */</span>
+BZPage.<span class="reserved">prototype</span>.getOwner = <span class="reserved">function</span> getOwner () {
+ var priorityParent = <span class="reserved">this</span>.doc.querySelector(<span class="literal">"label[for~='target_milestone']"</span>)
+ .parentNode.parentNode.parentNode;
+ var assigneeAElement = priorityParent.querySelector(<span class="literal">"tr:nth-of-type(1) a.email"</span>);
+ var assgineeHref = decodeURI(assigneeAElement.getAttribute(<span class="literal">"href"</span>));
+ var email = assgineeHref.split(<span class="literal">":"</span>)[1];
+ <span class="reserved">return</span> email;
+};
+
+<span class="comment">/**
+ * Get login of the currently logged-in user.
+ *
+ * <span class="attrib">@return</span> String with the login name of the currently logged-in user
+ */</span>
+BZPage.<span class="reserved">prototype</span>.getLogin = <span class="reserved">function</span> getLogin () {
+ var lastLIElement = <span class="reserved">this</span>.doc.querySelector(<span class="literal">"#header ul.links li:last-of-type"</span>);
+ var loginArr = lastLIElement.textContent.split(<span class="literal">"\n"</span>);
+ var loginStr = loginArr[loginArr.length - 1].trim();
+ <span class="reserved">return</span> loginStr;
+};
+
+<span class="comment">/**
+ * Return maintainer which is per default by bugzilla
+ * (which is not necessarily the one who is default maintainer per component)
+ *
+ * <span class="attrib">@return</span> String with the maintainer's email address
+ */</span>
+BZPage.<span class="reserved">prototype</span>.getDefaultBugzillaMaintainer = <span class="reserved">function</span> getDefaultBugzillaMaintainer (component) {
+ var address = util.filterByRegexp(<span class="reserved">this</span>.defBugzillaMaintainerArr, component);
+ <span class="reserved">return</span> address;
+};
+
+<span class="comment">/**
+ * collect the list of attachments in a structured format
+ *
+ * <span class="attrib">@return</span> Array of arrays, one for each attachments;
+ * each record has string name of the attachment, integer its id number,
+ * string of MIME type, integer of size in kilobytes, and the whole
+ * element itself
+ */</span>
+BZPage.<span class="reserved">prototype</span>.getAttachments = <span class="reserved">function</span> getAttachments () {
+ var outAtts = [];
+ var atts = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"attachment_table"</span>)
+ .getElementsByTagName(<span class="literal">"tr"</span>);
+ <span class="reserved">for</span> ( var i = 1, ii = atts.length - 1; i &lt; ii; i++) {
+ outAtts.push(<span class="reserved">this</span>.parseAttachmentLine(atts[i]));
+ }
+ <span class="reserved">return</span> outAtts;
+};
+
+<span class="comment">/**
+ * returns password from the current storage, or if there isn't
+ * one, then it will ask user for it.
+ *
+ * <span class="attrib">@return</span> String with the password
+ */</span>
+BZPage.<span class="reserved">prototype</span>.getPassword = <span class="reserved">function</span> getPassword () {
+ <span class="reserved">if</span> (preferences.isSet(<span class="literal">"BZpassword"</span>)) {
+ <span class="reserved">return</span> preferences.get(<span class="literal">"BZpassword"</span>,undefined);
+ } <span class="reserved">else</span> {
+ var passwordText = util.getPassword();
+ <span class="reserved">if</span> (passwordText) {
+ preferences.set(<span class="literal">"BZpassword"</span>, passwordText);
+ }
+ }
+};
+
+<span class="comment">/**
+ *
+ */</span>
+BZPage.<span class="reserved">prototype</span>.setUpLogging = <span class="reserved">function</span> setUpLogging () {
+ <span class="comment">// Protection against double-call</span>
+ <span class="reserved">if</span> (<span class="reserved">this</span>.doc.getElementById(<span class="literal">"generateTSButton"</span>)) {
+ console.log(<span class="literal">"Logging has been already set up!"</span>);
+ <span class="reserved">return</span> ;
+ }
+
+ <span class="comment">// For adding additional buttons to the top toolbar</span>
+ var additionalButtons = <span class="reserved">this</span>.doc.querySelector(<span class="literal">"#bugzilla-body *.related_actions"</span>);
+ var that = <span class="reserved">this</span>;
+
+ <span class="comment">// logging all submits for timesheet</span>
+ <span class="comment">// FIXME we should merge in functionality of RHBugzillaPage.submitCallback</span>
+ <span class="comment">// and actually make it working</span>
+ <span class="comment">// Maybe rewriting whole offline capability into a separate object?</span>
+ <span class="reserved">if</span> (!<span class="reserved">this</span>.submitHandlerInstalled) {
+ console.log(<span class="literal">"Installing submit callback!"</span>);
+ <span class="reserved">this</span>.doc.forms.namedItem(<span class="literal">"changeform"</span>).addEventListener(<span class="literal">"submit"</span>,<span class="reserved">function</span> (evt) {
+ console.log(<span class="literal">"Submit callback!"</span>);
+
+ var resp = that.log.addLogRecord(that);
+ <span class="reserved">if</span> (resp === null) {
+ console.log(<span class="literal">"Avoiding submitting!"</span>);
+ <span class="comment">// FIXME doesn't work ... still submitting'</span>
+ evt.stopPropagation();
+ evt.preventDefault();
+ }
+ }, false);
+ <span class="reserved">this</span>.submitHandlerInstalled = true;
+ }
+
+ var generateTimeSheetUI = <span class="reserved">this</span>.doc.createElement(<span class="literal">"li"</span>);
+ generateTimeSheetUI.innerHTML = <span class="literal">"\u00A0-\u00A0&lt;a href='#' id='generateTSButton'&gt;"</span>
+ + <span class="literal">"Generate timesheet&lt;/a&gt;"</span>;
+ additionalButtons.appendChild(generateTimeSheetUI);
+ <span class="reserved">this</span>.doc.getElementById(<span class="literal">"generateTSButton"</span>).addEventListener(
+ <span class="literal">"click"</span>,
+ <span class="reserved">function</span>(evt) {
+ that.log.createBlankPage.call(that.log, <span class="literal">"TimeSheet"</span>,
+ that.log.generateTimeSheet);
+ evt.stopPropagation();
+ evt.preventDefault();
+ }, false);
+
+ var clearLogsUI = <span class="reserved">this</span>.doc.createElement(<span class="literal">"li"</span>);
+ clearLogsUI.innerHTML = <span class="literal">"\u00A0-\u00A0&lt;a href='#' id='clearLogs'&gt;"</span>
+ + <span class="literal">"Clear logs&lt;/a&gt;"</span>;
+ additionalButtons.appendChild(clearLogsUI);
+ var clearLogAElem = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"clearLogs"</span>);
+ clearLogAElem.addEventListener(<span class="literal">"click"</span>, <span class="reserved">function</span>() {
+ that.log.store = {};
+ <span class="reserved">this</span>.style.color = that.log.EmptyLogsColor;
+ <span class="reserved">this</span>.style.fontWeight = <span class="literal">"normal"</span>;
+ console.log(<span class="literal">"this.store wiped out!"</span>);
+ }, false);
+
+ <span class="reserved">if</span> (<span class="reserved">this</span>.log.store.length &gt; 0) {
+ clearLogAElem.style.color = <span class="reserved">this</span>.log.FullLogsColor;
+ clearLogAElem.style.fontWeight = <span class="literal">"bolder"</span>;
+ } <span class="reserved">else</span> {
+ clearLogAElem.style.color = <span class="reserved">this</span>.log.EmptyLogsColor;
+ clearLogAElem.style.fontWeight = <span class="literal">"normal"</span>;
+ }
+};
+
+<span class="comment">/**
+ * adds a person to the CC list, if it isn't already there
+ *
+ * <span class="attrib">@param</span> who String with email address or "self" if the current user
+ * of the bugzilla should be added
+ */</span>
+BZPage.<span class="reserved">prototype</span>.addToCCList = <span class="reserved">function</span> addToCCList (who) {
+ <span class="reserved">if</span> (!who) {
+ <span class="reserved">return</span> ;
+ }
+ <span class="reserved">if</span> (who === <span class="literal">"self"</span>) {
+ <span class="reserved">this</span>.doc.getElementById(<span class="literal">"addselfcc"</span>).checked = true;
+ } <span class="reserved">else</span> {
+ <span class="reserved">this</span>.clickMouse(<span class="literal">"cc_edit_area_showhide"</span>);
+ <span class="reserved">if</span> (!util.isInList(who, <span class="reserved">this</span>.CCList)) {
+ <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"newcc"</span>,who);
+ }
+ }
+};
+
+<span class="comment">/**
+ * a collect a list of emails on CC list
+ *
+ * <span class="attrib">@return</span> Array with email addresses as Strings.
+ */</span>
+BZPage.<span class="reserved">prototype</span>.getCCList = <span class="reserved">function</span> getCCList () {
+ var CCListSelect = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"cc"</span>);
+ outCCList = [];
+ <span class="reserved">if</span> (CCListSelect) {
+ outCCList = Array.map(CCListSelect.options, <span class="reserved">function</span>(item) {
+ <span class="reserved">return</span> item.value;
+ });
+ }
+ <span class="reserved">return</span> outCCList;
+};
+
+<span class="comment">// exports.BZPage = apiUtils.publicConstructor(BZPage);</span>
+exports.BZPage = BZPage;</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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top"><em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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 Wed Jun 23 09:33:14 2010</div>
+</body>
+</html>
diff --git a/docs/html/overview-summary-clipboard.js.html b/docs/html/overview-summary-clipboard.js.html
new file mode 100644
index 0000000..3ee98b4
--- /dev/null
+++ b/docs/html/overview-summary-clipboard.js.html
@@ -0,0 +1,327 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
+<html>
+<head>
+<title>
+ Overview
+</title>
+<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script>
+function asd() {
+
+ parent.document.title="clipboard.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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top">
+<em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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>clipboard.js</h2>
+
+</center>
+
+
+
+
+<h4>Summary</h4>
+<p>
+
+ No overview generated for 'clipboard.js'<BR/><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&nbsp;Object</code>
+ </font>
+ </td>
+ <td>
+ <code>
+ <b>
+ <a href="GLOBALS.html#!s!createTransferable">createTransferable</a></b>()
+ </code>
+ <br>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </td>
+ </tr>
+
+ <tr bgcolor="white" class="TableRowColor">
+ <td align="right" valign="top" width="1%">
+ <font size="-1">
+ <code>static&nbsp;Object</code>
+ </font>
+ </td>
+ <td>
+ <code>
+ <b>
+ <a href="GLOBALS.html#!s!getClipboard">getClipboard</a></b>()
+ </code>
+ <br>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ returns content of the system clipboard
+ </td>
+ </tr>
+
+
+ </table>
+ <p>
+
+<!-- ========== END METHOD SUMMARY =========== -->
+
+
+ <pre class="sourceview"><span class="comment">// Released under the MIT/X11 license</span>
+<span class="comment">// http://www.opensource.org/licenses/mit-license.php</span>
+
+<span class="comment">/**
+ * returns content of the system clipboard
+ * <span class="attrib">@return</span> string with the content of the clipboard or "" if empty.
+ * originally from
+ * https://developer.mozilla.org/en/Using_the_Clipboard
+ * https://wiki.mozilla.org/Labs/Jetpack/JEP/10
+ */</span>
+
+<span class="reserved">function</span> getClipboard() {
+ var clip = Cc[<span class="literal">"@mozilla.org/widget/clipboard;1"</span>].
+ getService(Ci.nsIClipboard);
+ <span class="reserved">if</span> (!clip) {
+ throw new Error(<span class="literal">"No access to the clipboard!"</span>);
+ }
+ <span class="reserved">return</span> clip;
+}
+
+<span class="reserved">function</span> createTransferable() {
+ var trans = Cc[<span class="literal">"@mozilla.org/widget/transferable;1"</span>].
+ createInstance(Ci.nsITransferable);
+ <span class="reserved">if</span> (!trans) {
+ throw new Error(<span class="literal">"No access to the transfer object during the set of clipboard!"</span>);
+ }
+ <span class="reserved">return</span> trans;
+}
+
+var getMethod = exports.get = <span class="reserved">function</span> getMethod( flavor ) {
+ var pastetext = <span class="literal">""</span>, mimeType = <span class="literal">""</span>, stuff = {};
+ var len = 0, clipId = 0, clip = {}, trans = {};
+
+ <span class="comment">// flavor argument is optional</span>
+ <span class="reserved">if</span> (flavor === undefined) {
+ flavor = <span class="literal">"plain"</span>;
+ }
+
+ <span class="reserved">if</span> (flavor === <span class="literal">"plain"</span>) {
+ mimeType = <span class="literal">"text/unicode"</span>;
+ } <span class="reserved">else</span> <span class="reserved">if</span> (favor === <span class="literal">"html"</span>) {
+ mimeType = <span class="literal">"text/html"</span>;
+ } <span class="reserved">else</span> {
+ throw new Error(<span class="literal">"Unsupported flavor '"</span> + flavor + <span class="literal">"'!"</span>);
+ }
+
+ clip = getClipboard();
+
+ trans = createTransferable();
+
+ trans.addDataFlavor(mimeType);
+ clip.getData(trans, clip.kGlobalClipboard);
+
+ var str = {};
+ var strLength = {};
+
+ trans.getTransferData(mimeType, str, strLength);
+
+ <span class="reserved">if</span> (str) {
+ str = str.value.QueryInterface(Ci.nsISupportsString);
+ pastetext = str.data.substring(0, strLength.value / 2);
+ }
+ <span class="reserved">return</span> pastetext;
+};
+
+var setMethod = exports.set = <span class="reserved">function</span> setMethod(content, flavor) {
+ var mimeType = <span class="literal">""</span>, stuff = {};
+ var len = 0, clipId = 0, clip = {}, trans = {};
+
+ <span class="comment">// flavor argument is optional</span>
+ <span class="reserved">if</span> (flavor === undefined) {
+ flavor = <span class="literal">"plain"</span>;
+ }
+
+ <span class="reserved">if</span> (flavor === <span class="literal">"plain"</span>) {
+ mimeType = <span class="literal">"text/unicode"</span>;
+ } <span class="reserved">else</span> <span class="reserved">if</span> (favor === <span class="literal">"html"</span>) {
+ mimeType = <span class="literal">"text/html"</span>;
+ } <span class="reserved">else</span> {
+ throw new Error(<span class="literal">"Unsupported flavor '"</span> + flavor + <span class="literal">"'!"</span>);
+ }
+
+ stuff = Cc[<span class="literal">"@mozilla.org/supports-string;1"</span>].
+ createInstance(Ci.nsISupportsString);
+ <span class="reserved">if</span> (!stuff) {
+ <span class="reserved">return</span> false;
+ }
+ stuff.data = content;
+ len = content.length * 2;
+
+ clip = getClipboard();
+
+ trans = createTransferable();
+
+ trans.addDataFlavor(mimeType);
+ trans.setTransferData(mimeType, stuff, content.length * 2);
+
+ clip.setData(trans, null, clip.kGlobalClipboard);
+ <span class="reserved">return</span> true;
+};
+
+var flavorsMethod = exports.getCurrentFlavors = <span class="reserved">function</span> flavorsMethod(test) {
+ <span class="comment">// currently the only possible flavors in Jetpack-prototype are "plain" and</span>
+ <span class="comment">// "html", i.e., "text/plain" (or text/unicode?) and "text/html" (or</span>
+ <span class="comment">// application/xml+xhtml?)</span>
+ var possibleTypes = {
+ <span class="literal">"text/unicode"</span>: <span class="literal">"plain"</span>,
+ <span class="literal">"text/plain"</span>: <span class="literal">"plain"</span>,
+ <span class="literal">"text/html"</span>: <span class="literal">"html"</span>
+ };
+ var flavorArray = [];
+ var clip = getClipboard();
+
+ <span class="reserved">for</span> (var flavor in possibleTypes) {
+ var presentFlavor = clip.hasDataMatchingFlavors(
+ [flavor],
+ 1,
+ clip.kGlobalClipboard
+ );
+ <span class="reserved">if</span> (presentFlavor) {
+ flavorArray.push(possibleTypes[flavor]);
+ }
+ }
+ <span class="reserved">return</span> flavorArray;
+};</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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top"><em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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 Wed Jun 23 09:33:14 2010</div>
+</body>
+</html>
diff --git a/docs/html/overview-summary-color.js.html b/docs/html/overview-summary-color.js.html
new file mode 100644
index 0000000..2050d02
--- /dev/null
+++ b/docs/html/overview-summary-color.js.html
@@ -0,0 +1,407 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
+<html>
+<head>
+<title>
+ Overview
+</title>
+<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script>
+function asd() {
+
+ parent.document.title="color.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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top">
+<em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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>color.js</h2>
+
+</center>
+
+
+
+
+<h4>Summary</h4>
+<p>
+
+ No overview generated for 'color.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="Color.html">Color</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ <hr/>
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<!-- ========== END METHOD SUMMARY =========== -->
+
+
+ <pre class="sourceview"><span class="comment">// Released under the MIT/X11 license</span>
+<span class="comment">// http://www.opensource.org/licenses/mit-license.php</span>
+<span class="literal">"use strict"</span>;
+<span class="comment">// ============================================================================</span>
+<span class="comment">// Color management methods</span>
+<span class="comment">// originally from</span>
+<span class="comment">// http://www.mjijackson.com/2008/02\</span>
+<span class="comment">// /rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript</span>
+var Color = exports.Color = <span class="reserved">function</span> Color(r, g, b) {
+ <span class="reserved">this</span>.Luminosity = 0.85;
+ <span class="reserved">this</span>.Desaturated = 0.4;
+
+ <span class="reserved">if</span> (r instanceof Array) {
+ <span class="reserved">this</span>.r = r[0];
+ <span class="reserved">this</span>.g = r[1];
+ <span class="reserved">this</span>.b = r[2];
+ } <span class="reserved">else</span> {
+ <span class="reserved">this</span>.r = r;
+ <span class="reserved">this</span>.g = g;
+ <span class="reserved">this</span>.b = b;
+ }
+};
+
+Color.<span class="reserved">prototype</span>.update = <span class="reserved">function</span>(r, g, b) {
+ <span class="reserved">this</span>.r = r;
+ <span class="reserved">this</span>.g = g;
+ <span class="reserved">this</span>.b = b;
+};
+
+Color.<span class="reserved">prototype</span>.hs = <span class="reserved">function</span>(nStr) {
+ <span class="reserved">if</span> (Number(nStr) === 0) {
+ <span class="reserved">return</span> <span class="literal">"00"</span>;
+ } <span class="reserved">else</span> <span class="reserved">if</span> (nStr.length &lt; 2) {
+ <span class="reserved">return</span> <span class="literal">"0"</span> + nStr;
+ } <span class="reserved">else</span> {
+ <span class="reserved">return</span> nStr;
+ }
+};
+
+Color.<span class="reserved">prototype</span>.toString = <span class="reserved">function</span>() {
+ var rH = Number(<span class="reserved">this</span>.r.toFixed()).toString(16);
+ var gH = Number(<span class="reserved">this</span>.g.toFixed()).toString(16);
+ var bH = Number(<span class="reserved">this</span>.b.toFixed()).toString(16);
+ <span class="reserved">return</span> <span class="literal">"#"</span> + <span class="reserved">this</span>.hs(rH) + <span class="reserved">this</span>.hs(gH) + <span class="reserved">this</span>.hs(bH);
+};
+
+<span class="comment">/**
+ * Converts an RGB color value to HSL. Conversion formula adapted from
+ * http://en.wikipedia.org/wiki/HSL_color_space. Assumes r, g, and b are
+ * contained in the set [0, 255] and returns h, s, and l in the set [0, 1].4343
+ *
+ * <span class="attrib">@param</span> Number r The red color value
+ * <span class="attrib">@param</span> Number g The green color value
+ * <span class="attrib">@param</span> Number b The blue color value
+ * <span class="attrib">@return</span> Array The HSL representation
+ */</span>
+Color.<span class="reserved">prototype</span>.hsl = <span class="reserved">function</span>() {
+ var r = <span class="reserved">this</span>.r / 255;
+ var g = <span class="reserved">this</span>.g / 255;
+ var b = <span class="reserved">this</span>.b / 255;
+ var max = Math.max(r, g, b), min = Math.min(r, g, b);
+ var h, s, l = (max + min) / 2;
+
+ <span class="reserved">if</span> (max === min) {
+ h = s = 0; <span class="comment">// achromatic</span>
+ } <span class="reserved">else</span> {
+ var d = max - min;
+ s = l &gt; 0.5 ? d / (2 - max - min) : d / (max + min);
+ switch (max) {
+ case r:
+ h = (g - b) / d + (g &lt; b ? 6 : 0);
+ break;
+ case g:
+ h = (b - r) / d + 2;
+ break;
+ case b:
+ h = (r - g) / d + 4;
+ break;
+ }
+ h /= 6;
+ }
+
+ <span class="reserved">return</span> [ h, s, l ];
+};
+
+<span class="comment">/**
+ * Converts an HSL color value to RGB. Conversion formula adapted from
+ * http://en.wikipedia.org/wiki/HSL_color_space. Assumes h, s, and l are
+ * contained in the set [0, 1] and returns r, g, and b in the set [0, 255].
+ *
+ * <span class="attrib">@param</span> Number h The hue
+ * <span class="attrib">@param</span> Number s The saturation
+ * <span class="attrib">@param</span> Number l The lightness
+ * <span class="attrib">@return</span> Array The RGB representation
+ */</span>
+Color.<span class="reserved">prototype</span>.hslToRgb = <span class="reserved">function</span>(h, s, l) {
+ <span class="reserved">function</span> hue2rgb(p, q, t) {
+ <span class="reserved">if</span> (t &lt; 0) {
+ t += 1;
+ }
+ <span class="reserved">if</span> (t &gt; 1) {
+ t -= 1;
+ }
+ <span class="reserved">if</span> (t &lt; 1 / 6) {
+ <span class="reserved">return</span> p + (q - p) * 6 * t;
+ }
+ <span class="reserved">if</span> (t &lt; 1 / 2) {
+ <span class="reserved">return</span> q;
+ }
+ <span class="reserved">if</span> (t &lt; 2 / 3) {
+ <span class="reserved">return</span> p + (q - p) * (2 / 3 - t) * 6;
+ }
+ <span class="reserved">return</span> p;
+ }
+
+ var r, g, b;
+
+ <span class="reserved">if</span> (s === 0) {
+ r = g = b = l; <span class="comment">// achromatic</span>
+ } <span class="reserved">else</span> {
+ var q = l &lt; 0.5 ? l * (1 + s) : l + s - l * s;
+ var p = 2 * l - q;
+ r = hue2rgb(p, q, h + 1 / 3);
+ g = hue2rgb(p, q, h);
+ b = hue2rgb(p, q, h - 1 / 3);
+ }
+
+ <span class="reserved">return</span> [ r * 255, g * 255, b * 255 ];
+};
+
+<span class="comment">/**
+ * Converts an RGB color value to HSV. Conversion formula adapted from
+ * http://en.wikipedia.org/wiki/HSV_color_space. Assumes r, g, and b are
+ * contained in the set [0, 255] and returns h, s, and v in the set [0, 1].
+ *
+ * <span class="attrib">@param</span> Number r The red color value
+ * <span class="attrib">@param</span> Number g The green color value
+ * <span class="attrib">@param</span> Number b The blue color value
+ * <span class="attrib">@return</span> Array The HSV representation
+ */</span>
+Color.<span class="reserved">prototype</span>.hsv = <span class="reserved">function</span>() {
+ var r = <span class="reserved">this</span>.r / 255;
+ var g = <span class="reserved">this</span>.g / 255;
+ var b = <span class="reserved">this</span>.b / 255;
+ var max = Math.max(r, g, b), min = Math.min(r, g, b);
+ var h, s, v = max;
+
+ var d = max - min;
+ s = max === 0 ? 0 : d / max;
+
+ <span class="reserved">if</span> (max === min) {
+ h = 0; <span class="comment">// achromatic</span>
+ } <span class="reserved">else</span> {
+ switch (max) {
+ case r:
+ h = (g - b) / d + (g &lt; b ? 6 : 0);
+ break;
+ case g:
+ h = (b - r) / d + 2;
+ break;
+ case b:
+ h = (r - g) / d + 4;
+ break;
+ }
+ h /= 6;
+ }
+
+ <span class="reserved">return</span> [ h, s, v ];
+};
+
+<span class="comment">/**
+ * Converts an HSV color value to RGB. Conversion formula adapted from
+ * http://en.wikipedia.org/wiki/HSV_color_space. Assumes h, s, and v are
+ * contained in the set [0, 1] and returns r, g, and b in the set [0, 255].
+ *
+ * <span class="attrib">@param</span> Number h The hue
+ * <span class="attrib">@param</span> Number s The saturation
+ * <span class="attrib">@param</span> Number v The value
+ * <span class="attrib">@return</span> Array The RGB representation
+ */</span>
+Color.<span class="reserved">prototype</span>.hsvToRgb = <span class="reserved">function</span>(h, s, v) {
+ var r, g, b;
+
+ var i = Math.floor(h * 6);
+ var f = h * 6 - i;
+ var p = v * (1 - s);
+ var q = v * (1 - f * s);
+ var t = v * (1 - (1 - f) * s);
+
+ switch (i % 6) {
+ case 0:
+ r = v;
+ g = t;
+ b = p;
+ break;
+ case 1:
+ r = q;
+ g = v;
+ b = p;
+ break;
+ case 2:
+ r = p;
+ g = v;
+ b = t;
+ break;
+ case 3:
+ r = p;
+ g = q;
+ b = v;
+ break;
+ case 4:
+ r = t;
+ g = p;
+ b = v;
+ break;
+ case 5:
+ r = v;
+ g = p;
+ b = q;
+ break;
+ }
+
+ <span class="reserved">return</span> [ r * 255, g * 255, b * 255 ];
+};
+
+<span class="comment">/**
+ * Provide
+ */</span>
+Color.<span class="reserved">prototype</span>.lightColor = <span class="reserved">function</span>() {
+ var hslArray = <span class="reserved">this</span>.hsl();
+ var h = Number(hslArray[0]);
+ var s = Number(hslArray[1]) * <span class="reserved">this</span>.Desaturated;
+ var l = <span class="reserved">this</span>.Luminosity;
+ var desA = <span class="reserved">this</span>.hslToRgb(h, s, l);
+ <span class="reserved">return</span> new Color(desA[0], desA[1], desA[2]);
+};
+</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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top"><em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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 Wed Jun 23 09:33:14 2010</div>
+</body>
+</html>
diff --git a/docs/html/overview-summary-logger.js.html b/docs/html/overview-summary-logger.js.html
new file mode 100644
index 0000000..a011906
--- /dev/null
+++ b/docs/html/overview-summary-logger.js.html
@@ -0,0 +1,301 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
+<html>
+<head>
+<title>
+ Overview
+</title>
+<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script>
+function asd() {
+
+ parent.document.title="logger.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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top">
+<em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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>logger.js</h2>
+
+</center>
+
+
+
+
+<h4>Summary</h4>
+<p>
+
+ No overview generated for 'logger.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="Logger.html">Logger</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ <hr/>
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<!-- ========== END METHOD SUMMARY =========== -->
+
+
+ <pre class="sourceview"><span class="comment">// Released under the MIT/X11 license</span>
+<span class="comment">// http://www.opensource.org/licenses/mit-license.php</span>
+<span class="literal">"use strict"</span>;
+var urlMod = require(<span class="literal">"url"</span>);
+var utilMod = require(<span class="literal">"util"</span>);
+var Color = require(<span class="literal">"color"</span>).Color;
+var tabs = require(<span class="literal">"tabs"</span>);
+var apiUtils = require(<span class="literal">"api-utils"</span>);
+
+<span class="reserved">function</span> Logger(store, abbsMap) {
+ <span class="reserved">this</span>.EmptyLogsColor = new Color(0, 255, 0);
+ <span class="reserved">this</span>.FullLogsColor = new Color(0, 40, 103);
+
+ <span class="reserved">this</span>.store = store;
+ <span class="reserved">this</span>.abbsMap = abbsMap;
+};
+
+exports.Logger = Logger;
+
+Logger.<span class="reserved">prototype</span>.addLogRecord = <span class="reserved">function</span>(that) {
+ console.log(<span class="literal">"Adding log record!"</span>);
+ var rec = {};
+ rec.date = new Date();
+ rec.url = that.doc.location.toString();
+ rec.title = that.title;
+ var comment = tabs.activeTab.contentWindow.prompt(
+ <span class="literal">"Enter comments for this comment"</span>);
+ console.log(<span class="literal">"comment = "</span> + comment);
+ <span class="reserved">if</span> (comment &amp;&amp; comment.length &gt; 0) {
+ console.log(<span class="literal">"I am in!"</span>);
+ comment = comment.trim();
+ rec.comment = comment;
+ console.log(<span class="literal">"rec.comment = "</span> + rec.comment);
+ <span class="comment">// FIXME We break on the following line. Not sure what's going on!</span>
+ var dateStr = utilMod.getISODate(rec.date);
+ console.log(<span class="literal">"rec.date = "</span> + rec.date + <span class="literal">", dateStr = "</span> + dateStr);
+ var urlStr = urlMod.URL(rec.url).host;
+ console.log(<span class="literal">"rec.url = "</span> + rec.url + <span class="literal">", urlStr = "</span> + urlStr);
+ var recKey = dateStr + <span class="literal">"+"</span>
+ + urlStr
+ + <span class="literal">"+"</span> + that.bugNo;
+ console.log(<span class="literal">"recKey = "</span> + recKey);
+ console.log(<span class="literal">"rec = "</span> + rec.toSource());
+
+ <span class="reserved">if</span> (<span class="reserved">this</span>.store[recKey]) {
+ <span class="reserved">this</span>.store[recKey].comment += <span class="literal">"&lt;br/&gt;\n"</span> + comment;
+ } <span class="reserved">else</span> {
+ <span class="reserved">this</span>.store[recKey] = rec;
+ }
+ }
+ <span class="reserved">return</span> comment;
+};
+
+Logger.<span class="reserved">prototype</span>.getLength = <span class="reserved">function</span> () {
+ var counter = 0;
+ <span class="reserved">for</span> (var key in <span class="reserved">this</span>.store) {
+ counter += 1;
+ }
+ <span class="reserved">return</span> counter;
+};
+
+Logger.<span class="reserved">prototype</span>.getBugzillaAbbr = <span class="reserved">function</span>(url) {
+ <span class="comment">// for https://bugzilla.redhat.com/show_bug.cgi?id=579123 get RH</span>
+ <span class="comment">// for https://bugzilla.mozilla.org/show_bug.cgi?id=579123 get MoFo</span>
+ var abbr = <span class="reserved">this</span>.abbsMap[urlMod.URL(url).host];
+ <span class="reserved">return</span> abbr;
+};
+
+Logger.<span class="reserved">prototype</span>.timeSheetRecordsPrinter = <span class="reserved">function</span>(body, records) {
+ var that = <span class="reserved">this</span>;
+ var commentBugRE = new RegExp(<span class="literal">"[bB]ug\\s+([0-9]+)"</span>,<span class="literal">"g"</span>);
+ <span class="comment">// sort the records into temporary array</span>
+ var tmpArr = [];
+
+ <span class="reserved">for</span> ( var i in records) {
+ <span class="reserved">if</span> (records.hasOwnProperty(i)) {
+ tmpArr.push( [ i, records[i] ]);
+ }
+ }
+ tmpArr.sort(<span class="reserved">function</span>(a, b) {
+ <span class="reserved">return</span> a[0] &gt; b[0] ? 1 : -1;
+ });
+
+ var currentDay = <span class="literal">""</span>;
+ <span class="comment">// now print the array</span>
+ tmpArr.forEach(<span class="reserved">function</span>(rec) {
+ var x = rec[1];
+ var dayStr = utilMod.getISODate(x.date);
+ var host = urlMod.URL(x.url).host;
+ var BZName = that.getBugzillaAbbr(x.url);
+ var bugNo = utilMod.getBugNo(x.url);
+ <span class="reserved">if</span> (dayStr != currentDay) {
+ currentDay = dayStr;
+ body.innerHTML += <span class="literal">"&lt;hr/&gt;&lt;p&gt;&lt;strong&gt;"</span> + currentDay
+ + <span class="literal">"&lt;/strong&gt;&lt;/p&gt;"</span>;
+ }
+ <span class="comment">// replace "bug ####" with a hyperlink to the current bugzilla</span>
+ var comment = x.comment.replace(commentBugRE,
+ <span class="literal">"&lt;a href='http://"</span>+host+<span class="literal">"/show_bug.cgi?id=$1'&gt;$&amp;&lt;/a&gt;"</span>);
+ body.innerHTML += <span class="literal">"&lt;p&gt;&lt;em&gt;&lt;a href='"</span>
+ + x.url
+ + <span class="literal">"'&gt;Bug "</span>
+ + BZName + <span class="literal">"/"</span> + bugNo + <span class="literal">": "</span>
+ + x.title
+ + <span class="literal">"&lt;/a&gt;"</span>
+ + <span class="literal">" &lt;/em&gt;\n&lt;br/&gt;"</span> + comment + <span class="literal">"&lt;/p&gt;"</span>;
+ });
+};
+
+<span class="comment">/**
+ *
+ */</span>
+Logger.<span class="reserved">prototype</span>.createBlankPage = <span class="reserved">function</span> (ttl, bodyBuildCB) {
+ var title = ttl || <span class="literal">"Yet another untitled page"</span>;
+ var that = <span class="reserved">this</span>;
+
+ var logTab = tabs.open({
+ url: <span class="literal">"about:blank"</span>,
+ onOpen: <span class="reserved">function</span> (tab) {
+ var otherDoc = tab.contentDocument;
+ otherDoc.title = title;
+ otherDoc.body.innerHTML = <span class="literal">"&lt;h1&gt;"</span> + title + <span class="literal">"&lt;/h1&gt;"</span>;
+ bodyBuildCB.call(that, otherDoc.body);
+ }
+ });
+};
+
+Logger.<span class="reserved">prototype</span>.generateTimeSheet = <span class="reserved">function</span>(body) {
+ var doc = body.ownerDocument;
+ <span class="reserved">this</span>.timeSheetRecordsPrinter(body, <span class="reserved">this</span>.store);
+};</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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top"><em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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 Wed Jun 23 09:33:14 2010</div>
+</body>
+</html>
diff --git a/docs/html/overview-summary-main.js.html b/docs/html/overview-summary-main.js.html
new file mode 100644
index 0000000..4e3d98b
--- /dev/null
+++ b/docs/html/overview-summary-main.js.html
@@ -0,0 +1,366 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
+<html>
+<head>
+<title>
+ Overview
+</title>
+<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script>
+function asd() {
+
+ parent.document.title="main.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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top">
+<em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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>main.js</h2>
+
+</center>
+
+
+
+
+<h4>Summary</h4>
+<p>
+
+ No overview generated for 'main.js'<BR/><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&nbsp;void</code>
+ </font>
+ </td>
+ <td>
+ <code>
+ <b>
+ <a href="GLOBALS.html#!s!initialize">initialize</a></b>(callback)
+ </code>
+ <br>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </td>
+ </tr>
+
+ <tr bgcolor="white" class="TableRowColor">
+ <td align="right" valign="top" width="1%">
+ <font size="-1">
+ <code>static&nbsp;Object</code>
+ </font>
+ </td>
+ <td>
+ <code>
+ <b>
+ <a href="GLOBALS.html#!s!isOurPage">isOurPage</a></b>(window, matchingURLs)
+ </code>
+ <br>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </td>
+ </tr>
+
+ <tr bgcolor="white" class="TableRowColor">
+ <td align="right" valign="top" width="1%">
+ <font size="-1">
+ <code>static&nbsp;void</code>
+ </font>
+ </td>
+ <td>
+ <code>
+ <b>
+ <a href="GLOBALS.html#!s!skipThisPage">skipThisPage</a></b>(doc)
+ </code>
+ <br>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ </td>
+ </tr>
+
+
+ </table>
+ <p>
+
+<!-- ========== END METHOD SUMMARY =========== -->
+
+
+ <pre class="sourceview"><span class="comment">/*jslint onevar: false, browser: true, evil: true, laxbreak: true, undef: true, nomen: true, eqeqeq: true, bitwise: true, maxerr: 1000, immed: false, white: false, plusplus: false, regexp: false, undef: false */</span>
+<span class="comment">// Released under the MIT/X11 license</span>
+<span class="comment">// http://www.opensource.org/licenses/mit-license.php</span>
+<span class="comment">//</span>
+<span class="comment">// Links to read through</span>
+<span class="comment">// http://ehsanakhgari.org/blog/2010-01-07/bugzilla-tweaks-enhanced</span>
+<span class="comment">// http://hg.mozilla.org/users/ehsan.akhgari_gmail.com/extensions/file/tip/bugzillatweaks</span>
+<span class="comment">// http://hg.mozilla.org/users/ehsan.akhgari_gmail.com/extensions/file/ecfa0f028b81/bugzillatweaks/lib/main.js</span>
+<span class="comment">// http://hg.mozilla.org/users/avarma_mozilla.com/atul-packages/file/42ac1e99a107/packages\</span>
+<span class="comment">// /facebook-acquaintances/lib/main.js#l11</span>
+<span class="comment">// http://ehsanakhgari.org/blog/2010-05-31/my-experience-jetpack-sdk#comment-1253</span>
+<span class="comment">//</span>
+<span class="literal">"use strict"</span>;
+var util = require(<span class="literal">"util"</span>);
+var logger = require(<span class="literal">"logger"</span>);
+var myStorage = require(<span class="literal">"simple-storage"</span>).storage;
+var browser = require(<span class="literal">"tab-browser"</span>);
+var urlMod = require(<span class="literal">"url"</span>);
+var JSONURL = <span class="literal">"http://matej.ceplovi.cz/progs/data/RH_Data-packages.json"</span>;
+
+var TriagedDistro = 13;
+var NumberOfFrames = 7;
+var XMLRPCurl = <span class="literal">"https://bugzilla.redhat.com/xmlrpc.cgi"</span>;
+
+var config = {};
+config.matches = [
+ <span class="literal">"https://bugzilla.redhat.com/show_bug.cgi"</span>,
+ <span class="literal">"https://bz-web2-test.devel.redhat.com/show_bug.cgi"</span>,
+ <span class="literal">"https://bugzilla.mozilla.org/show_bug.cgi"</span>
+];
+
+config.skipMatches = [
+ <span class="literal">"https://bugzilla.redhat.com/(process|post)_bug.cgi"</span>,
+ <span class="literal">"https://bz-web2-test.devel.redhat.com/(process|post)_bug.cgi"</span>,
+ <span class="literal">"https://bugzilla.mozilla.org/post_bug.cgi"</span>,
+ <span class="literal">"https://bugzilla.mozilla.org/process_bug.cgi"</span>,
+ <span class="literal">"https://bugzilla.(redhat.com|mozilla.org)/attachment.cgi$"</span>
+];
+
+<span class="comment">// ==============================================================</span>
+<span class="comment">// https://wiki.mozilla.org/Labs/Jetpack/JEP/24</span>
+var WillBemanifest = {
+ settings : [
+ {
+ name : <span class="literal">"BZpassword"</span>,
+ type : <span class="literal">"password"</span>,
+ label : <span class="literal">"Bugzilla password"</span>
+ },
+ {
+ name : <span class="literal">"JSONURL"</span>,
+ type : <span class="literal">"text"</span>,
+ label : <span class="literal">"Configuration file URL"</span>,
+ <span class="literal">"default"</span> : <span class="literal">"http://mcepl.fedorapeople.org/scripts/BugZappers_data.json"</span>
+ },
+ {
+ name : <span class="literal">"enabledPacks"</span>,
+ type : <span class="literal">"text"</span>,
+ label : <span class="literal">"comment packs which should be enabled"</span>,
+ <span class="literal">"default"</span> : <span class="literal">""</span>
+ }
+ ]
+};
+
+<span class="reserved">function</span> isOurPage(window, matchingURLs) {
+ var url = window.location.href;
+
+ <span class="comment">// like ["regexp-url1", "regexp-url2"]</span>
+ <span class="reserved">return</span> matchingURLs.some(<span class="reserved">function</span> (element,i,a) {
+ <span class="reserved">return</span> new RegExp(element).test(url);
+ });
+}
+
+<span class="comment">/**
+ *
+ */</span>
+<span class="reserved">function</span> skipThisPage(doc) {
+ var stemURL = <span class="literal">"https://HOSTNAME/show_bug.cgi?id="</span>;
+ var titleStr = doc.getElementsByTagName(<span class="literal">"title"</span>)[0].textContent;
+ var REArr = new RegExp(<span class="literal">"[bB]ug\\s+([0-9]+)"</span>).exec(titleStr);
+ var hostname = urlMod.URL(doc.location.href).host;
+ <span class="reserved">if</span> (REArr) {
+ var bugNo = REArr[1];
+ console.log(<span class="literal">"bugNo = "</span> + bugNo + <span class="literal">", hostname = "</span> + hostname);
+ var emailsSent = doc.
+ querySelector(<span class="literal">"#bugzilla-body &gt; dl:nth-of-type(1)"</span>).textContent;
+ emailsSent = emailsSent.replace(/^(\s*)$/mg,<span class="literal">""</span>);
+ util.notification(emailsSent);
+ doc.location = stemURL.replace(<span class="literal">"HOSTNAME"</span>,hostname) + bugNo;
+ }
+}
+
+<span class="reserved">function</span> initialize(callback) {
+ util.loadJSON(JSONURL, <span class="reserved">function</span>(parsedData) {
+ config.gJSONData = parsedData;
+
+ var keys = <span class="literal">""</span>, key = <span class="literal">""</span>;
+ <span class="reserved">for</span> (key in config.gJSONData) {
+ keys += key + <span class="literal">" "</span>;
+ }
+ console.log(<span class="literal">"loaded JSON object keys: "</span> + keys);
+
+ <span class="comment">// Get card translation table</span>
+ <span class="reserved">if</span> (<span class="literal">"PCIIDsURL"</span> in config.gJSONData.configData) {
+ util.loadJSON(config.gJSONData.configData.PCIIDsURL, <span class="reserved">function</span>(response) {
+ config.PCI_ID_Array = response;
+ });
+ }
+
+ <span class="reserved">if</span> (!myStorage.logs) {
+ console.log(<span class="literal">"myStorage.logs empty!"</span>);
+ myStorage.logs = {};
+ }
+
+ var logConstructor = logger.Logger;
+ config.logger = new logConstructor(myStorage.logs,
+ config.gJSONData.constantData.bugzillalabelAbbreviations);
+
+ callback(config);
+ }, <span class="reserved">this</span>);
+}
+
+exports.main = <span class="reserved">function</span> main(options, callbacks) {
+ initialize(<span class="reserved">function</span> (config) {
+ browser.whenContentLoaded(
+ <span class="reserved">function</span>(window) {
+ <span class="comment">// is this good for anything?</span>
+ <span class="reserved">if</span> (<span class="literal">"window"</span> in window) { window = window.window; }
+
+ var construct = {};
+ var bzType = config.gJSONData.configData.objectStyle;
+ <span class="reserved">if</span> (bzType === <span class="literal">"RH"</span>) {
+ construct = require(<span class="literal">"rhbzpage"</span>).RHBugzillaPage;
+ } <span class="reserved">else</span> <span class="reserved">if</span> (bzType === <span class="literal">"MoFo"</span>) {
+ construct = require(<span class="literal">"mozillabzpage"</span>).MozillaBugzilla;
+ }
+ <span class="reserved">if</span> (isOurPage(window, config.matches)) {
+ var curPage = new construct(window, config);
+ } <span class="reserved">else</span> <span class="reserved">if</span> (isOurPage(window, config.skipMatches)) {
+ skipThisPage(window.document);
+ } <span class="reserved">else</span> {
+ console.log(<span class="literal">"Not our page: "</span> + window.location.href);
+ }
+ }
+ );
+ });
+};
+</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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top"><em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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 Wed Jun 23 09:33:14 2010</div>
+</body>
+</html>
diff --git a/docs/html/overview-summary-mozillabzpage.js.html b/docs/html/overview-summary-mozillabzpage.js.html
new file mode 100644
index 0000000..5c25046
--- /dev/null
+++ b/docs/html/overview-summary-mozillabzpage.js.html
@@ -0,0 +1,188 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
+<html>
+<head>
+<title>
+ Overview
+</title>
+<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script>
+function asd() {
+
+ parent.document.title="mozillabzpage.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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top">
+<em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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>mozillabzpage.js</h2>
+
+</center>
+
+
+
+
+<h4>Summary</h4>
+<p>
+
+ No overview generated for 'mozillabzpage.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="MozillaBugzilla.html">MozillaBugzilla</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ <hr/>
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<!-- ========== END METHOD SUMMARY =========== -->
+
+
+ <pre class="sourceview"><span class="comment">// Released under the MIT/X11 license</span>
+<span class="comment">// http://www.opensource.org/licenses/mit-license.php</span>
+<span class="literal">"use strict"</span>;
+var utilMod = require(<span class="literal">"util"</span>);
+var apiUtils = require(<span class="literal">"api-utils"</span>);
+
+<span class="comment">// ============================================================================</span>
+<span class="comment">// MozillaBugzilla object</span>
+
+var MozillaBugzilla = <span class="reserved">function</span> MozillaBugzilla (doc, config) {
+ BZPage.call(<span class="reserved">this</span>, doc, config);
+};
+
+MozillaBugzilla.<span class="reserved">prototype</span> = utilMod.heir(BZPage);
+MozillaBugzilla.<span class="reserved">prototype</span>.constructor = MozillaBugzilla;
+
+<span class="comment">// exports.MozillaBugzilla = apiUtils.publicConstructor(MozillaBugzilla);</span>
+exports.MozillaBugzilla = MozillaBugzilla;</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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top"><em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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 Wed Jun 23 09:33:14 2010</div>
+</body>
+</html>
diff --git a/docs/html/overview-summary-offline-support.js.html b/docs/html/overview-summary-offline-support.js.html
new file mode 100644
index 0000000..7d8ccc7
--- /dev/null
+++ b/docs/html/overview-summary-offline-support.js.html
@@ -0,0 +1,307 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
+<html>
+<head>
+<title>
+ Overview
+</title>
+<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script>
+function asd() {
+
+ parent.document.title="offline-support.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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top">
+<em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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>offline-support.js</h2>
+
+</center>
+
+
+
+
+<h4>Summary</h4>
+<p>
+
+ No overview generated for 'offline-support.js'<BR/><BR/>
+
+</p>
+
+<hr>
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<!-- ========== END METHOD SUMMARY =========== -->
+
+
+ <pre class="sourceview"><span class="comment">/*jslint onevar: false, browser: true, evil: true, laxbreak: true, undef: true, nomen: true, eqeqeq: true, bitwise: true, maxerr: 1000, immed: false, white: false, plusplus: false, regexp: false, undef: false */</span>
+<span class="comment">/*global jetpack */</span>
+<span class="comment">// Released under the MIT/X11 license</span>
+<span class="comment">// http://www.opensource.org/licenses/mit-license.php</span>
+<span class="literal">"use strict"</span>;
+
+<span class="comment">/* Offline supporting functions */</span>
+<span class="comment">/**
+ *
+ * <span class="attrib">@todo</span> FIXME this probably makes a closure and a memory leak name='changeform'
+ * investigate
+ * https://developer.mozilla.org/en/How_to_Turn_Off_Form_Autocompletion
+ *
+ * &lt;form method="post" action="process_bug.cgi" autocomplete="off"&gt;
+ *
+ * Reading
+ * http://www.w3.org/TR/1999/REC-html401-19991224/interact/forms.html#h-17.13
+ * random notes: - 17.13.3 provides all steps necessary - enctype !=
+ * application/x-www-form-urlencoded =&gt; SHOULD fails (no further questions
+ * needed) - http://www.w3.org/MarkUp/html-spec/html-spec_8.html#SEC8.2.1. is
+ * nice explanation (albeit quite dated) - on multiple values
+ * http://www.w3.org/TR/1999/REC-html401-19991224/interact/forms.html#h-17.6.1 -
+ * příliš jednoduché
+ * http://www.innovation.ch/java/HTTPClient/emulating_forms.html -
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.serializeForm = <span class="reserved">function</span>(form) {
+ var serialForm = {
+ dataOut : <span class="literal">""</span>,
+ name : form.name,
+ method : form.method,
+ acceptCharset : form.acceptCharset,
+ action : form.action, <span class="comment">// TODO shouldn't we get a non-relative URL?</span>
+ enctype : form.enctype,
+ cookie : <span class="reserved">this</span>.doc.cookie,
+ autocomplete : form.getAttribute(<span class="literal">"autocomplete"</span>),
+ bugNo : <span class="reserved">this</span>.bugNo
+ };
+
+ <span class="reserved">function</span> genURIElement(sName, sValue) {
+ <span class="reserved">return</span> encodeURIComponent(sName) + <span class="literal">"="</span> + encodeURIComponent(sValue);
+ }
+
+ <span class="comment">/**
+ * <span class="attrib">@param</span> o
+ * control to be serialized
+ * <span class="attrib">@return</span> String with the serialized control
+ */</span>
+ <span class="reserved">function</span> serializeControl(element) {
+ var val = element.value;
+ <span class="comment">// console.log("val.toSource() = " + val.toSource());</span>
+ <span class="comment">/*
+ * on HTMLSelectElement we have an attribute 'type' of type DOMString,
+ * readonly The type of this form control. This is the string
+ * "select-multiple" when the multiple attribute is true and the string
+ * "select-one" when false.
+ */</span>
+ <span class="reserved">if</span> ((val == null) || (val == undefined) || (val == <span class="literal">""</span>)) {
+ <span class="reserved">return</span>;
+ } <span class="reserved">else</span> <span class="reserved">if</span> (val instanceof Array) {
+ <span class="reserved">return</span> val.map(<span class="reserved">function</span>(x) {
+ <span class="reserved">return</span> genURIElement(element.name, x.value);
+ }).join(<span class="literal">"&amp;"</span>);
+ } <span class="reserved">else</span> <span class="reserved">if</span> (val instanceof String) {
+ <span class="reserved">return</span> genURIElement(element.name, val);
+ } <span class="reserved">else</span> { <span class="comment">// assume HTMLCollection</span>
+ <span class="reserved">return</span> Array.map(val, <span class="reserved">function</span>(x) {
+ <span class="reserved">return</span> genURIElement(element.name, x.value);
+ }).join(<span class="literal">"&amp;"</span>);
+ }
+ }
+
+ serialForm.dataOut = Array.filter(form.elements,<span class="reserved">function</span>(el) {
+ <span class="reserved">return</span> !el.disabled &amp;&amp; el.name &amp;&amp;
+ <span class="comment">// FIXME shouldn't I just add &amp;&amp; el.value here?</span>
+ (el.checked || /select|textarea/i.test(el.nodeName) ||
+ /text|hidden|password|search/i.test(el.type));
+ }).map(serializeControl).join(<span class="literal">"&amp;"</span>);
+ <span class="reserved">return</span> serialForm;
+};
+
+<span class="comment">//RHBugzillaPage.prototype.submitCallback = function(evt) {</span>
+<span class="comment">// console.log("Submit Callback!");</span>
+<span class="comment">// if (jetpack.__parent__.navigator.onLine) {</span>
+<span class="comment">// var serForm = this</span>
+<span class="comment">// .serializeForm(jetpack.tabs.focused.contentWindow.document.forms</span>
+<span class="comment">// .namedItem("changeform"));</span>
+<span class="comment">//// console.log("serForm:\n" + serForm.toSource());</span>
+<span class="comment">// } else {</span>
+<span class="comment">// var serForm = this</span>
+<span class="comment">// .serializeForm(jetpack.tabs.focused.contentWindow.document.forms</span>
+<span class="comment">// .namedItem("changeform"));</span>
+<span class="comment">// myStorage.forms[this.bugNo] = serForm;</span>
+<span class="comment">// evt.stopPropagation();</span>
+<span class="comment">// evt.preventDefault();</span>
+<span class="comment">// }</span>
+<span class="comment">//};</span>
+
+<span class="comment">/**
+ *
+ *
+ * Yes, this is correct, this is NOT method of RHBugzillaPage!
+ */</span>
+<span class="comment">/*function onlineCallback() {
+ function deserializeAndSend(formData) {
+ // FIXME notImplemented
+ // is it enough to just
+ // run XMLHttpRequest? Probably yes, this is just a form
+ // and this is just a HTTP request
+ // it is probably better to get already processed
+ // application/x-www-form-urlencoded
+ // see http://htmlhelp.com/reference/html40/forms/form.html for details
+ // and also https://developer.mozilla.org/en/AJAX/Getting_Started
+ // what's?
+ // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference\
+ // /Global_Functions/encodeURI &amp; co.
+ // this seems to be also interesting
+ // https://developer.mozilla.org/en/Code_snippets/Post_data_to_window
+ console.error("Sending bugs not implemented yet!");
+ return ""; // FIXME check other HTTP headers to be set
+
+ var bugID = formData.bugNo;
+ var req = new XMLHttpRequest();
+ req.open("POST", formData.action, true);
+ // FIXME co očekávám za odpověď? req.overrideMimeType("text/xml");
+ // * Accept-Encoding
+ // * Accept-Language
+ // * Accept (MIME types)
+ req.setRequestHeader("Connection", "keep-alive");
+ req.setRequestHeader("Keep-Alive", 300);
+ req.setRequestHeader("Content-Type", formData.enctype);
+ req.setRequestHeader("Referer", bugURL + bugID);
+ req.setRequestHeader("Accept-Charset", formData.acceptCharset);
+ req.setRequestHeader("Cookie", formData.cookie);
+ req.onreadystatechange = function(aEvt) {
+ if (req.readyState == 4) {
+ if (req.status == 200) {
+ console.log("Sent form for bug " + bugID);
+ delete myStorage.forms[bugID];
+ } else {
+ console.error("Sending form for bug " + bugID + "failed!");
+ }
+ }
+ };
+ req.send(formData.data);
+ }
+
+ if (myStorage.forms.length &gt; 0) {
+ myStorage.forms.forEach(function(x) {
+ deserializeAndSend(x);
+ });
+ }
+}
+*/</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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top"><em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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 Wed Jun 23 09:33:14 2010</div>
+</body>
+</html>
diff --git a/docs/html/overview-summary-persistent-page-mod.js.html b/docs/html/overview-summary-persistent-page-mod.js.html
new file mode 100644
index 0000000..927faba
--- /dev/null
+++ b/docs/html/overview-summary-persistent-page-mod.js.html
@@ -0,0 +1,228 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
+<html>
+<head>
+<title>
+ Overview
+</title>
+<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script>
+function asd() {
+
+ parent.document.title="persistent-page-mod.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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top">
+<em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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>persistent-page-mod.js</h2>
+
+</center>
+
+
+
+
+<h4>Summary</h4>
+<p>
+
+ No overview generated for 'persistent-page-mod.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="PersistentPageMod.html">PersistentPageMod</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ <hr/>
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<!-- ========== END METHOD SUMMARY =========== -->
+
+
+ <pre class="sourceview">var timer = require(<span class="literal">"timer"</span>);
+var self = require(<span class="literal">"self"</span>);
+
+<span class="reserved">function</span> PersistentPageMod(window, callback) {
+ memory.track(<span class="reserved">this</span>);
+ <span class="reserved">this</span>.window = window;
+ <span class="reserved">this</span>.callback = callback;
+ <span class="reserved">this</span>.window.addEventListener(<span class="literal">"unload"</span>, <span class="reserved">this</span>, false);
+ <span class="reserved">this</span>.window.addEventListener(<span class="literal">"DOMSubtreeModified"</span>, <span class="reserved">this</span>, false);
+ <span class="reserved">this</span>.doMod();
+ require(<span class="literal">"unload-2"</span>).ensure(<span class="reserved">this</span>);
+}
+
+PersistentPageMod.<span class="reserved">prototype</span> = {
+ REPLACE_DELAY: 100,
+ doMod: <span class="reserved">function</span> doMod() {
+ try {
+ <span class="reserved">this</span>.callback.call(undefined, <span class="reserved">this</span>.window);
+ } catch (e) {
+ console.exception(e);
+ }
+ <span class="reserved">this</span>.timerID = null;
+ },
+ handleEvent: <span class="reserved">function</span> handleEvent(event) {
+ switch (event.type) {
+ case <span class="literal">"unload"</span>:
+ <span class="reserved">if</span> (event.target == <span class="reserved">this</span>.window.document)
+ <span class="reserved">this</span>.unload();
+ break;
+ case <span class="literal">"DOMSubtreeModified"</span>:
+ <span class="reserved">if</span> (<span class="reserved">this</span>.timerID == null) {
+ <span class="comment">// Wait a bit to do the replacing. Otherwise, we just get called</span>
+ <span class="comment">// tons of times in a tiny period and end up hanging the browser</span>
+ <span class="comment">// for a while.</span>
+ var self = <span class="reserved">this</span>;
+ <span class="reserved">this</span>.timerID = timer.setTimeout(<span class="reserved">function</span>() {self.doMod();},
+ <span class="reserved">this</span>.REPLACE_DELAY);
+ }
+ break;
+ }
+ },
+ unload: <span class="reserved">function</span> unload() {
+ <span class="reserved">if</span> (<span class="reserved">this</span>.timerID != null) {
+ timer.clearTimeout(<span class="reserved">this</span>.timerID);
+ <span class="reserved">this</span>.timerID = null;
+ }
+ <span class="reserved">this</span>.window.removeEventListener(<span class="literal">"DOMSubtreeModified"</span>, <span class="reserved">this</span>, false);
+ <span class="reserved">this</span>.window.removeEventListener(<span class="literal">"unload"</span>, <span class="reserved">this</span>, false);
+ }
+};
+
+require(<span class="literal">"errors"</span>).catchAndLogProps(PersistentPageMod.<span class="reserved">prototype</span>,
+ <span class="literal">"handleEvent"</span>);
+
+var register = exports.register = <span class="reserved">function</span> register(window, callback) {
+ new PersistentPageMod(window, callback);
+};
+</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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top"><em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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 Wed Jun 23 09:33:14 2010</div>
+</body>
+</html>
diff --git a/docs/html/overview-summary-rhbzpage.js.html b/docs/html/overview-summary-rhbzpage.js.html
new file mode 100644
index 0000000..56dcb4c
--- /dev/null
+++ b/docs/html/overview-summary-rhbzpage.js.html
@@ -0,0 +1,1092 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
+<html>
+<head>
+<title>
+ Overview
+</title>
+<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script>
+function asd() {
+
+ parent.document.title="rhbzpage.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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top">
+<em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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>rhbzpage.js</h2>
+
+</center>
+
+
+
+
+<h4>Summary</h4>
+<p>
+
+ No overview generated for 'rhbzpage.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="RHBugzillaPage.html">RHBugzillaPage</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ <hr/>
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<!-- ========== END METHOD SUMMARY =========== -->
+
+
+ <pre class="sourceview"><span class="comment">/*jslint onevar: false, browser: true, evil: true, laxbreak: true, undef: true, nomen: true, eqeqeq: true, bitwise: true, maxerr: 1000, immed: false, white: false, plusplus: false, regexp: false, undef: false */</span>
+<span class="comment">// Released under the MIT/X11 license</span>
+<span class="comment">// http://www.opensource.org/licenses/mit-license.php</span>
+<span class="literal">"use strict"</span>;
+var util = require(<span class="literal">"util"</span>);
+var xrpc = require(<span class="literal">"xmlrpc"</span>);
+var apiUtils = require(<span class="literal">"api-utils"</span>);
+var xhr = require(<span class="literal">"xhr"</span>);
+var clip = require(<span class="literal">"clipboard"</span>);
+var Color = require(<span class="literal">"color"</span>).Color;
+var BZPage = require(<span class="literal">"bzpage"</span>).BZPage;
+var url = require(<span class="literal">"url"</span>);
+var timer = require(<span class="literal">"timer"</span>);
+var selection = require(<span class="literal">"selection"</span>);
+var tabs = require(<span class="literal">"tabs"</span>);
+<span class="comment">// var NumberOfFrames = 7;</span>
+<span class="comment">// var bugURL = "https://bugzilla.redhat.com/show_bug.cgi?id=";</span>
+
+<span class="comment">// ====================================================================================</span>
+<span class="comment">// RHBugzillaPage object</span>
+
+var RHBugzillaPage = <span class="reserved">function</span> RHBugzillaPage(win, config) {
+ <span class="comment">// inheritance ... call superobject's constructor</span>
+ BZPage.call(<span class="reserved">this</span>, win, config);
+
+ <span class="comment">// For identification of graphics card</span>
+ var manuChipStrs = [ [ <span class="literal">"ATI Radeon"</span>, <span class="literal">"ATI"</span>, <span class="literal">"1002"</span> ],
+ [ <span class="literal">"ATI Mobility Radeon"</span>, <span class="literal">"ATI"</span>, <span class="literal">"1002"</span> ],
+ [ <span class="literal">"Intel Corporation"</span>, <span class="literal">"INTEL"</span>, <span class="literal">"8086"</span> ], [ <span class="literal">"NVIDIA"</span>, <span class="literal">"NV"</span>, <span class="literal">"10de"</span> ] ];
+
+ <span class="comment">// http://en.wikipedia.org/wiki/HSL_color_space</span>
+ <span class="comment">// when only the value of S is changed</span>
+ <span class="comment">// stupido!!! the string is value in hex for each color</span>
+ <span class="reserved">this</span>.RHColor = new Color(158, 41, 43); <span class="comment">// RGB 158, 41, 43; HSL 359, 1, 39</span>
+ <span class="reserved">this</span>.FedoraColor = new Color(0, 40, 103); <span class="comment">// RGB 0, 40, 103; HSL 359, 1, 39</span>
+ <span class="reserved">this</span>.RawhideColor = new Color(0, 119, 0); <span class="comment">// or "green", or RGB 0, 119, 0, or</span>
+ <span class="comment">// HSL</span>
+ <span class="comment">// 120, 0, 23</span>
+ <span class="reserved">this</span>.RHITColor = new Color(102, 0, 102); <span class="comment">// RGB 102, 0, 102; HSL 300, 0, 20</span>
+
+ <span class="reserved">this</span>.RE = {
+ Comment: new RegExp(<span class="literal">"^\\s*#"</span>), <span class="comment">// unsused</span>
+ BlankLine: new RegExp(<span class="literal">"^\\s*$"</span>), <span class="comment">// unused</span>
+ <span class="comment">// new line</span>
+ <span class="comment">// [ 65.631] (--) intel(0): Chipset: "845G"</span>
+ Chipset: new RegExp(<span class="literal">"^\\s*\\[?[ 0-9.]*\\]?\\s*\\(--\\) "</span>+
+ <span class="literal">"([A-Za-z]+)\\([0-9]?\\): Chipset: (.*)$"</span>),
+ ATIgetID: new RegExp(<span class="literal">"^.*\\(ChipID = 0x([0-9a-fA-F]+)\\).*$"</span>),
+ Abrt: new RegExp(<span class="literal">"^\\s*\\[abrt\\]"</span>),
+ signalHandler: new RegExp(<span class="literal">"^\\s*#[0-9]*\\s*&lt;signal handler called&gt;"</span>),
+ frameNo: new RegExp(<span class="literal">"^\\s*#([0-9]*)\\s"</span>)
+ };
+
+ <span class="reserved">this</span>.XMLRPCurl = <span class="literal">"https://bugzilla.redhat.com/xmlrpc.cgi"</span>;
+ <span class="comment">// END OF CONSTANTS</span>
+
+ var that = <span class="reserved">this</span>;
+ <span class="reserved">this</span>.reqCounter = 0;
+ <span class="reserved">this</span>.signaturesCounter = 0;
+ <span class="reserved">this</span>.chipMagicInterestingLine = <span class="literal">""</span>;
+
+ <span class="reserved">this</span>.login = <span class="reserved">this</span>.getLogin();
+ <span class="reserved">this</span>.password = <span class="reserved">this</span>.getPassword();
+
+ var ITbutton = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"cf_issuetracker"</span>);
+ <span class="reserved">this</span>.its = ITbutton ? ITbutton.value.trim() : <span class="literal">""</span>;
+
+ <span class="comment">// set default assignee on change of the component</span>
+ <span class="reserved">this</span>.doc.getElementById(<span class="literal">"component"</span>).addEventListener(<span class="literal">"change"</span>,
+ <span class="reserved">function</span>() {
+ that.component = that.getOptionValue(<span class="literal">"component"</span>);
+ that.changeAssignee(<span class="literal">"default"</span>);
+ }, false);
+
+ <span class="comment">// getBadAttachments</span>
+ <span class="reserved">this</span>.XorgLogAttList = [];
+ <span class="reserved">this</span>.XorgLogAttListIndex = 0;
+ <span class="reserved">this</span>.attachments = <span class="reserved">this</span>.getAttachments();
+ <span class="reserved">this</span>.markBadAttachments();
+ <span class="reserved">this</span>.setDefaultAssignee();
+
+ <span class="comment">// Dig out backtrace</span>
+ <span class="reserved">this</span>.btSnippet = <span class="literal">""</span>;
+
+ var parseAbrtBacktraces = config.gJSONData.configData.parseAbrtBacktraces;
+ <span class="reserved">if</span> (parseAbrtBacktraces &amp;&amp; <span class="reserved">this</span>.RE.Abrt.test(<span class="reserved">this</span>.title)) {
+ <span class="reserved">this</span>.pasteBacktraceInComments();
+ }
+
+ <span class="comment">// Take care of signature for Fedora bugzappers</span>
+ <span class="reserved">if</span> (config.gJSONData.configData.signature.length &gt; 0) {
+ var signatureFedoraString = config.gJSONData.configData.signature;
+ <span class="reserved">this</span>.doc.forms.namedItem(<span class="literal">"changeform"</span>).addEventListener(<span class="literal">"submit"</span>,
+ <span class="reserved">function</span>() {
+ <span class="reserved">if</span> (<span class="reserved">this</span>.signaturesCounter &lt; 1) {
+ that.addStuffToTextBox(<span class="literal">"comment"</span>, signatureFedoraString);
+ <span class="reserved">this</span>.signaturesCounter += 1;
+ }
+ }, false);
+ }
+
+ <span class="reserved">this</span>.setBranding();
+ <span class="reserved">this</span>.checkComments();
+
+ <span class="comment">// TODO Get compiz bugs as well</span>
+ <span class="reserved">if</span> ((config.gJSONData.configData.PCIIDsURL
+ &amp;&amp; (config.PCI_ID_Array.length &gt; 0))
+ &amp;&amp; <span class="reserved">this</span>.maintCCAddr === <span class="literal">"xgl-maint@redhat.com"</span>) {
+ <span class="comment">// Add find chip magic button</span>
+ var whiteboard_string = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"status_whiteboard"</span>).value;
+ <span class="reserved">if</span> (!/card_/.test(whiteboard_string)) {
+ <span class="reserved">this</span>.fillInChipMagic();
+ }
+ }
+}; <span class="comment">// END OF RHBugzillaPage CONSTRUCTOR</span>
+
+RHBugzillaPage.<span class="reserved">prototype</span>.toString = <span class="reserved">function</span> toString () {
+ <span class="reserved">return</span> (<span class="literal">"[Object RHBugzillaPage]"</span>);
+};
+
+RHBugzillaPage.<span class="reserved">prototype</span> = util.heir(BZPage);
+RHBugzillaPage.<span class="reserved">prototype</span>.constructor = RHBugzillaPage;
+
+<span class="comment">/**
+ * Find default assignee based on the current component
+ *
+ * <span class="attrib">@return</span> String what would be a default assignee if
+ * we haven't set it up.
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.getDefaultAssignee = <span class="reserved">function</span>() {
+ <span class="reserved">return</span> util.filterByRegexp(<span class="reserved">this</span>.constantData.defaultAssignee,
+ <span class="reserved">this</span>.component).toLowerCase();
+};
+
+<span class="comment">/**
+ * Set default assignee
+ *
+ * <span class="attrib">@return</span> none
+ * sets this.defaultAssignee property according to defaultAssignee list
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.setDefaultAssignee = <span class="reserved">function</span>() {
+ <span class="reserved">this</span>.defaultAssignee = <span class="reserved">this</span>.getDefaultAssignee();
+ var defAss = <span class="reserved">this</span>.defaultAssignee;
+
+ <span class="comment">// Add setting default assignee</span>
+ <span class="reserved">if</span> ((defAss.length &gt; 0) &amp;&amp; (defAss !== <span class="reserved">this</span>.getOwner())) {
+ <span class="reserved">this</span>.constantData.defaultAssigneeTrigger = true;
+ <span class="reserved">this</span>.createNewButton(<span class="literal">"bz_assignee_edit_container"</span>,true,<span class="literal">"rh-common"</span>,<span class="literal">"setDefaultAssignee"</span>);
+ }
+};
+
+<span class="comment">/**
+ * Auxiliary function to computer more complicated resolution
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.closeSomeRelease = <span class="reserved">function</span>() {
+ <span class="comment">// for RAWHIDE close as RAWHIDE,</span>
+ <span class="comment">// if active selection -&gt; CURRENTRELEASE</span>
+ <span class="comment">// and put the release version to</span>
+ <span class="comment">// "Fixed in Version" textbox</span>
+ <span class="comment">// otherwise -&gt; NEXTRELEASE</span>
+ var verNo = <span class="reserved">this</span>.getVersion();
+ <span class="reserved">this</span>.selectOption(<span class="literal">"bug_status"</span>, <span class="literal">"CLOSED"</span>);
+ var text = <span class="literal">""</span>;
+ var resolution = <span class="literal">""</span>;
+
+ <span class="reserved">if</span> (selection.text) {
+ text = selection.text.trim();
+ }
+ <span class="reserved">if</span> (text.length &gt; 0) {
+ resolution = <span class="literal">"CURRENTRELEASE"</span>;
+ <span class="reserved">this</span>.doc.getElementById(<span class="literal">"cf_fixed_in"</span>).value = text;
+ } <span class="reserved">else</span> <span class="reserved">if</span> (verNo === 999) {
+ resolution = <span class="literal">"RAWHIDE"</span>;
+ } <span class="reserved">else</span> {
+ resolution = <span class="literal">"NEXTRELEASE"</span>;
+ }
+ <span class="reserved">this</span>.centralCommandDispatch(<span class="literal">"resolution"</span>, resolution);
+};
+
+<span class="comment">/**
+ * Additional commands specific for this subclass, overriding superclass one.
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.centralCommandDispatch = <span class="reserved">function</span>(cmdLabel, cmdParams) {
+ console.log(<span class="literal">"cmdLabel = "</span> + cmdLabel + <span class="literal">", cmdParams = "</span> + cmdParams);
+ switch (cmdLabel) {
+ <span class="comment">// Set up our own commands</span>
+ case <span class="literal">"closeUpstream"</span>:
+ <span class="reserved">this</span>.addClosingUpstream();
+ break;
+ case <span class="literal">"computeResolution"</span>:
+ <span class="reserved">this</span>.closeSomeRelease();
+ break;
+ case <span class="literal">"queryStringOurBugzilla"</span>:
+ <span class="reserved">this</span>.queryForSelection();
+ break;
+ case <span class="literal">"queryUpstreamBugzilla"</span>:
+ <span class="reserved">this</span>.queryUpstream();
+ break;
+ case <span class="literal">"sendBugUpstream"</span>:
+ <span class="reserved">this</span>.sendBugUpstream();
+ break;
+ case <span class="literal">"markTriaged"</span>:
+ <span class="reserved">this</span>.markBugTriaged();
+ break;
+ case <span class="literal">"chipMagic"</span>:
+ var splitArr = cmdParams.split(<span class="literal">"\t"</span>);
+ <span class="reserved">this</span>.fillInWhiteBoard(splitArr[0], splitArr[1]);
+ break;
+ <span class="comment">// If we don't have it here, call superclass method</span>
+ default:
+ BZPage.<span class="reserved">prototype</span>.centralCommandDispatch.call(<span class="reserved">this</span>, cmdLabel, cmdParams);
+ break;
+ }
+};
+
+
+<span class="comment">/* Bugzilla functions. */</span>
+
+RHBugzillaPage.<span class="reserved">prototype</span>.ProfessionalProducts = [
+ <span class="literal">"Red Hat Enterprise Linux"</span>,
+ <span class="literal">"Red Hat Enterprise MRG"</span>
+];
+
+<span class="comment">/**
+ *
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.pasteBacktraceInComments = <span class="reserved">function</span>() {
+ <span class="comment">// FIXME This paragraph looks suspicous ... what is it?</span>
+ <span class="comment">// Does it belong to this function?</span>
+ var notedLabel = <span class="reserved">this</span>.doc.querySelector(<span class="literal">"label[for='newcc']"</span>);
+ <span class="reserved">while</span> (notedLabel.firstChild) {
+ var node = notedLabel.removeChild(notedLabel.firstChild);
+ notedLabel.parentNode.insertBefore(node, notedLabel);
+ }
+ notedLabel.parentNode.removeChild(notedLabel);
+
+ var abrtQueryURL = <span class="literal">"https://bugzilla.redhat.com/buglist.cgi?"</span>
+ + <span class="literal">"cmdtype=dorem&amp;remaction=run&amp;namedcmd=all%20NEW%20abrt%20crashes&amp;sharer_id=74116"</span>;
+
+ var mainTitle = <span class="reserved">this</span>.doc
+ .getElementsByClassName(<span class="literal">"bz_alias_short_desc_container"</span>)[0];
+ var abrtButton = <span class="reserved">this</span>.doc.createElement(<span class="literal">"a"</span>);
+ abrtButton.setAttribute(<span class="literal">"accesskey"</span>, <span class="literal">"a"</span>);
+ abrtButton.setAttribute(<span class="literal">"href"</span>, abrtQueryURL);
+ abrtButton.textContent = <span class="literal">"Abrt bugs"</span>;
+ mainTitle.appendChild(abrtButton);
+
+ <span class="reserved">if</span> (<span class="reserved">this</span>.idContainsWord(<span class="literal">"cf_devel_whiteboard"</span>, <span class="literal">'btparsed'</span>)) {
+ <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">'status_whiteboard'</span>, <span class="literal">'btparsed'</span>);
+ }
+
+ <span class="reserved">if</span> (!(<span class="reserved">this</span>.isTriaged() || <span class="reserved">this</span>.idContainsWord(<span class="literal">"status_whiteboard"</span>,
+ <span class="literal">'btparsed'</span>))) {
+ var btAttachments = <span class="reserved">this</span>.attachments
+ .filter(<span class="reserved">function</span>(att, idx, arr) {
+ <span class="reserved">return</span> (/backtrace/.test(att[0]));
+ });
+ <span class="comment">// TODO we need to go through all backtrace attachments, but</span>
+ <span class="comment">// just the first one will do for now, we would need to do async</span>
+ <span class="comment">// parsing</span>
+ btAttachments.forEach(<span class="reserved">function</span>(x) {
+ attURL = <span class="literal">"https://bugzilla.redhat.com/attachment.cgi?id="</span>
+ + x[1];
+ <span class="reserved">if</span> (!<span class="reserved">this</span>.btSnippet) {
+ var btRaw = util.loadText(attURL, <span class="reserved">function</span>(ret) {
+ <span class="reserved">this</span>.btSnippet = <span class="reserved">this</span>.parseBacktrace(ret);
+ <span class="reserved">if</span> (<span class="reserved">this</span>.btSnippet) {
+ <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"comment"</span>, <span class="reserved">this</span>.btSnippet);
+ <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"status_whiteboard"</span>,
+ <span class="literal">"btparsed"</span>);
+ }
+ }, <span class="reserved">this</span>);
+ }
+ }, <span class="reserved">this</span>);
+ }
+};
+
+<span class="comment">/**
+ *
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.markBadAttachments = <span class="reserved">function</span>() {
+ var badMIMEArray = [ <span class="literal">"application/octet-stream"</span>, <span class="literal">"text/x-log"</span>, <span class="literal">"undefined"</span> ];
+
+ var badAttachments = <span class="reserved">this</span>.attachments.filter(<span class="reserved">function</span>(att, idx, arr) {
+ <span class="reserved">return</span> (util.isInList(att[2], badMIMEArray));
+ });
+
+ <span class="reserved">if</span> (badAttachments.length &gt; 0) {
+ var titleElement = <span class="reserved">this</span>.doc
+ .getElementsByClassName(<span class="literal">"bz_alias_short_desc_container"</span>)[0];
+ titleElement.style.backgroundColor = <span class="literal">"olive"</span>;
+ titleElement.appendChild(<span class="reserved">this</span>.createFixAllButton(badAttachments));
+ badAttachments.forEach(<span class="reserved">function</span>(x, i, a) {
+ <span class="reserved">this</span>.addTextLink(x);
+ }, <span class="reserved">this</span>);
+ }
+};
+
+<span class="comment">/**
+ * Is this bug a RHEL bug?
+ *
+ * <span class="attrib">@return</span> Boolean true if it is a RHEL bug
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.isEnterprise = <span class="reserved">function</span>() {
+ var prod = <span class="reserved">this</span>.product;
+ var result = <span class="reserved">this</span>.ProfessionalProducts.some(<span class="reserved">function</span>(elem,idx,arr) {
+ <span class="reserved">return</span> new RegExp(elem).test(prod);
+ });
+ <span class="reserved">return</span> result;
+};
+
+<span class="comment">/**
+ * Find out whether the bug is needed an attention of bugZappers
+ *
+ * <span class="attrib">@return</span> Boolean whether the bug has been triaged or not
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.isTriaged = <span class="reserved">function</span>() {
+ <span class="comment">// First excceptions</span>
+ <span class="reserved">if</span> (<span class="reserved">this</span>.version &gt; 7 &amp;&amp; <span class="reserved">this</span>.version &lt; 12) {
+ <span class="reserved">return</span> <span class="reserved">this</span>.doc.getElementById(<span class="literal">"bug_status"</span>).value.toUpperCase() !== <span class="literal">"NEW"</span>;
+ } <span class="reserved">else</span> { <span class="comment">// and then the rule</span>
+ <span class="reserved">return</span> <span class="reserved">this</span>.hasKeyword(<span class="literal">"Triaged"</span>);
+ }
+};
+
+<span class="comment">/**
+ * Set branding colours to easily distinguish between Fedora and RHEL bugs
+ *
+ * <span class="attrib">@param</span> brand String with product of the current bug
+ * <span class="attrib">@param</span> version String with the version of the bug
+ * <span class="attrib">@param</span> its String with the IsueTracker numbers
+ * <span class="attrib">@return</span> none
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.setBranding = <span class="reserved">function</span>() {
+ var brandColor = {};
+ var TriagedColor = {};
+
+ <span class="reserved">if</span> (<span class="reserved">this</span>.isEnterprise()) {
+ <span class="reserved">if</span> (<span class="reserved">this</span>.its &amp;&amp; (<span class="reserved">this</span>.its.length &gt; 0)) {
+ brandColor = <span class="reserved">this</span>.RHITColor;
+ } <span class="reserved">else</span> {
+ brandColor = <span class="reserved">this</span>.RHColor;
+ }
+ } <span class="reserved">else</span> <span class="reserved">if</span> (new RegExp(<span class="literal">"Fedora"</span>).test(<span class="reserved">this</span>.product)) {
+ <span class="reserved">if</span> (<span class="reserved">this</span>.version === 999) {
+ brandColor = <span class="reserved">this</span>.RawhideColor;
+ } <span class="reserved">else</span> {
+ brandColor = <span class="reserved">this</span>.FedoraColor;
+ }
+ }
+
+ <span class="comment">// Comment each of the following lines to get only partial branding</span>
+ <span class="reserved">this</span>.doc.getElementsByTagName(<span class="literal">"body"</span>)[0].style.background = brandColor
+ .toString()
+ + <span class="literal">" none"</span>;
+ <span class="reserved">this</span>.doc.getElementById(<span class="literal">"titles"</span>).style.background = brandColor.toString()
+ + <span class="literal">" none"</span>;
+
+ <span class="comment">// Remove "Bug" from the title of the bug page, so we have more space with</span>
+ <span class="comment">// plenty of tabs</span>
+ var titleElem = <span class="reserved">this</span>.doc.getElementsByTagName(<span class="literal">"title"</span>)[0];
+
+ titleElem.textContent = titleElem.textContent.slice(4);
+ var bodyTitleParent = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"summary_alias_container"</span>).parentNode;
+ var bodyTitleElem = bodyTitleParent.getElementsByTagName(<span class="literal">"b"</span>)[0];
+ bodyTitleElem.textContent = bodyTitleElem.textContent.slice(4);
+
+ <span class="comment">// Make background-color of the body of bug salmon pink</span>
+ <span class="comment">// for security bugs.</span>
+ <span class="reserved">if</span> (<span class="reserved">this</span>.hasKeyword(<span class="literal">"Security"</span>)) {
+ <span class="reserved">this</span>.doc.getElementById(<span class="literal">"bugzilla-body"</span>).style.background = <span class="reserved">this</span>.SalmonPink
+ .toString() + <span class="literal">' none'</span>;
+ }
+
+ <span class="comment">// Make it visible whether the bug has been triaged</span>
+ <span class="reserved">if</span> (<span class="reserved">this</span>.isTriaged()) {
+ <span class="reserved">this</span>.doc.getElementById(<span class="literal">"bz_field_status"</span>).style.background = brandColor
+ .lightColor().toString()
+ + <span class="literal">" none"</span>;
+ }
+
+ <span class="comment">// we should make visible whether maintCCAddr is in CCList</span>
+ <span class="reserved">if</span> (util.isInList(<span class="reserved">this</span>.maintCCAddr, <span class="reserved">this</span>.CCList)) {
+ var ccEditBoxElem = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"cc_edit_area_showhide"</span>);
+ <span class="comment">// ccEditBoxElem.textContent = "*"+ccEditBoxElem.textContent;</span>
+ ccEditBoxElem.style.color = <span class="literal">"navy"</span>;
+ ccEditBoxElem.style.fontWeight = <span class="literal">"bolder"</span>;
+ ccEditBoxElem.style.textDecoration = <span class="literal">"underline"</span>;
+ }
+
+ <span class="comment">// mark suspicious components</span>
+ var compElems;
+ <span class="reserved">if</span> (<span class="reserved">this</span>.suspiciousComponents
+ &amp;&amp; util.isInList(<span class="reserved">this</span>.component, <span class="reserved">this</span>.suspiciousComponents)
+ &amp;&amp; (compElems = <span class="reserved">this</span>.doc
+ .getElementById(<span class="literal">"bz_component_edit_container"</span>))) {
+ compElems.style.background = <span class="literal">"red none"</span>;
+ }
+};
+
+<span class="comment">/**
+ * Given line to be parsed, find out which chipset it is and fill in the
+ * whiteboard
+ *
+ * <span class="attrib">@param</span> iLine String with the whole unparsed "interesting line"
+ * <span class="attrib">@param</span> driverStr String with the driver name
+ * <span class="attrib">@return</span> None
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.fillInWhiteBoard = <span class="reserved">function</span>(iLine, driverStr) {
+ var that = <span class="reserved">this</span>;
+
+ <span class="reserved">function</span> groupIDs(manStr, cardStrID) {
+ var outStr = util.filterByRegexp(chipIDsGroupings, manStr + <span class="literal">","</span> + cardStrID);
+ <span class="reserved">if</span> (outStr.length === 0) {
+ outStr = <span class="literal">"UNGROUPED_"</span> + manStr + <span class="literal">"/"</span> + cardStrID;
+ }
+ <span class="reserved">return</span> outStr;
+ }
+
+ <span class="comment">/**
+ * Given PCI IDs for manufacturer and card ID return chipset string
+ *
+ * <span class="attrib">@param</span> manufacturerNo String with manufacturer PCI ID
+ * <span class="attrib">@param</span> cardNo String with card PCI ID
+ * <span class="attrib">@return</span> Array with chip string and optinoal variants
+ */</span>
+ <span class="reserved">function</span> checkChipStringFromID(manufacturerNo, cardNo) {
+ var soughtID = (manufacturerNo + <span class="literal">","</span> + cardNo).toUpperCase();
+ var outList = config.PCI_ID_Array[soughtID];
+ <span class="reserved">if</span> (outList) {
+ <span class="reserved">return</span> outList;
+ } <span class="reserved">else</span> {
+ <span class="reserved">return</span> <span class="literal">""</span>;
+ }
+ }
+
+ var outStr = <span class="literal">""</span>;
+ var cardIDStr = <span class="literal">""</span>;
+ var cardIDArr = [];
+
+ chipSwitchboard: <span class="reserved">if</span> (driverStr === <span class="literal">"RADEON"</span>) {
+ var cardID = iLine.replace(<span class="reserved">this</span>.RE.ATIgetID, <span class="literal">"$1"</span>);
+ cardIDArr = checkChipStringFromID(<span class="literal">"1002"</span>, cardID);
+ <span class="reserved">if</span> (cardIDArr.length &gt; 0) {
+ cardIDStr = cardIDArr[0];
+ <span class="reserved">if</span> (cardIDArr[1]) {
+ optionStr = cardIDArr[1];
+ outStr = groupIDs(driverStr, cardIDStr) + <span class="literal">"/"</span> + optionStr;
+ } <span class="reserved">else</span> {
+ outStr = groupIDs(driverStr, cardIDStr);
+ optionStr = <span class="literal">""</span>;
+ }
+ } <span class="reserved">else</span> {
+ outStr = <span class="literal">"**** FULLSTRING: "</span> + iLine;
+ }
+ } <span class="reserved">else</span> {
+ <span class="comment">// Intel Corporation, NVIDIA</span>
+ cardIDArr = manuChipStrs.filter(<span class="reserved">function</span>(el, ind, arr) {
+ <span class="reserved">return</span> new RegExp(el[0], <span class="literal">"i"</span>).test(iLine);
+ });
+ <span class="reserved">if</span> (cardIDArr &amp;&amp; (cardIDArr.length &gt; 0)) {
+ cardIDArr = cardIDArr[0];
+ } <span class="reserved">else</span> {
+ outStr = iLine;
+ break chipSwitchboard;
+ }
+ <span class="comment">// cardIDArr [0] = RE, [1] = ("RADEON","INTEL","NOUVEAU"), [2] = manu</span>
+ <span class="comment">// PCIID</span>
+ iLine = iLine.replace(new RegExp(cardIDArr[0], <span class="literal">"i"</span>)).trim();
+ <span class="comment">// nVidia developers opted-out from grouping</span>
+ <span class="reserved">if</span> (driverStr === <span class="literal">"INTEL"</span>) {
+ outStr = groupIDs(cardIDArr[1], iLine);
+ } <span class="reserved">else</span> {
+ outStr = iLine;
+ }
+ }
+ <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"status_whiteboard"</span>, (<span class="literal">"card_"</span> + outStr).trim());
+ <span class="reserved">this</span>.doc.getElementById(<span class="literal">"chipmagic"</span>).style.display = <span class="literal">"none"</span>;
+};
+
+<span class="comment">/**
+ * Get attached Xorg.0.log, parse it and find the value of chip. Does not fill
+ * the whiteboard itself, just adds button to do so,paramList so that slow
+ * XMLHttpRequest is done in advance.
+ *
+ * <span class="attrib">@return</span> None
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.fillInChipMagic = <span class="reserved">function</span> () {
+ var that = <span class="reserved">this</span>;
+ var XorgLogURL = <span class="literal">""</span>;
+ var XorgLogAttID = <span class="literal">""</span>;
+ var XorgLogFound = false;
+ var attURL = <span class="literal">""</span>, interestingLine = <span class="literal">""</span>;
+ var interestingArray = [];
+
+
+ <span class="comment">// Find out Xorg.0.log attachment URL</span>
+ <span class="reserved">this</span>.XorgLogAttList = <span class="reserved">this</span>.attachments.filter(<span class="reserved">function</span> (value, index, array) {
+ <span class="comment">// Xorg.0.log must be text, otherwise we cannot parse it</span>
+ <span class="reserved">return</span> (/[xX].*log/.test(value[0]) &amp;&amp; /text/.test(value[2]));
+ });
+ <span class="reserved">if</span> (<span class="reserved">this</span>.XorgLogAttList.length === 0) {
+ <span class="reserved">return</span>;
+ }
+
+ XorgLogAttID = <span class="reserved">this</span>.XorgLogAttList[<span class="reserved">this</span>.XorgLogAttListIndex][1];
+ attURL = <span class="literal">"https://bugzilla.redhat.com/attachment.cgi?id="</span>+XorgLogAttID;
+ that = <span class="reserved">this</span>;
+
+ <span class="comment">// parse Xorg.0.log</span>
+ util.loadText(attURL, <span class="reserved">function</span>(ret){
+ var interestingLineArr = ret.split(<span class="literal">"\n"</span>).
+ filter(<span class="reserved">function</span> (v,i,a) {
+ <span class="reserved">return</span> that.RE.Chipset.test(v);
+ });
+ <span class="reserved">if</span> (interestingLineArr.length &gt;0) {
+ <span class="comment">// TODO we are parsing only the first found line; is it alright?</span>
+ interestingArray = that.RE.Chipset.exec(interestingLineArr[0]);
+ interestingLine = interestingArray[2].
+ replace(/[\s<span class="literal">"]+/g,"</span> <span class="literal">").trim();
+ // Persuade createNewButton to have mercy and to actually add
+ // non-default button
+ that.constantData.chipMagicTrigger = true;
+ that.chipMagicInterestingLine = interestingLine+"</span>\t<span class="literal">"+interestingArray[1]
+ .toUpperCase();
+ that.createNewButton("</span>status_whiteboard<span class="literal">", true, "</span>rh-xorg<span class="literal">", "</span>chipMagic<span class="literal">");
+ }
+ });
+ this.XorgLogAttListIndex++;
+};
+
+RHBugzillaPage.prototype.getSelectionOrClipboard = function getSelectionOrClipboard () {
+ var text = selection.text;
+ if (!text) {
+ text = clip.get();
+ }
+ return text;
+};
+
+/**
+ * Opens a new tab with a query for the given text in the selected component
+ *
+ * @param text to be searched for
+ * @param component String with the component name (maybe latter regexp?)
+ * @param product (optional) string with the product name, if undefined,
+ * search in all products
+ * @return None
+ *
+ */
+RHBugzillaPage.prototype.queryInNewTab = function(text, component, product) {
+ var urlStr = "</span>https:<span class="comment">//bugzilla.redhat.com/buglist.cgi?query_format=advanced";</span>
+ <span class="reserved">if</span> (product) {
+ urlStr += <span class="literal">"&amp;product="</span> + product.trim();
+ }
+ <span class="reserved">if</span> (component) {
+ urlStr += <span class="literal">"&amp;field0-0-0=component&amp;type0-0-0=substring&amp;value0-0-0="</span>
+ + component.trim();
+ }
+ <span class="comment">// using more complicated query tables here, because they can be more easily</span>
+ <span class="comment">// edited</span>
+ <span class="comment">// for further investigative searches</span>
+ <span class="reserved">if</span> (text) {
+ text = encodeURIComponent(text.trim());
+ var searchText = <span class="literal">"&amp;field1-0-0=longdesc&amp;type1-0-0=substring&amp;value1-0-0="</span>
+ + text
+ + <span class="literal">"&amp;field1-0-1=attach_data.thedata&amp;type1-0-1=substring&amp;value1-0-1="</span>
+ + text
+ + <span class="literal">"&amp;field1-0-2=status_whiteboard&amp;type1-0-2=substring&amp;value1-0-2="</span>
+ + text;
+ urlStr += searchText;
+ tabs.open({url: urlStr});
+ }
+};
+
+<span class="comment">/**
+ * Get the text to search for and prepare other things for the real executive
+ * function this.queryInNewTab, and run it.
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.queryForSelection = <span class="reserved">function</span>() {
+ var text = <span class="reserved">this</span>.getSelectionOrClipboard();
+ <span class="reserved">if</span> (text) {
+ <span class="reserved">this</span>.queryInNewTab(text, <span class="reserved">this</span>.component);
+ }
+};
+
+<span class="comment">/**
+ * Search simple query in the upstream bugzilla appropriate for the component.
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.queryUpstream = <span class="reserved">function</span>() {
+ console.log(<span class="literal">"Querying upstream!"</span>);
+ var text = <span class="reserved">this</span>.getSelectionOrClipboard();
+ <span class="reserved">if</span> (text) {
+ text = encodeURIComponent(text.trim());
+ var queryUpstreamBugsURLArray = <span class="reserved">this</span>.constantData.queryUpstreamBug;
+ var urlBase = util.filterByRegexp(queryUpstreamBugsURLArray, <span class="reserved">this</span>.component);
+ tabs.open({
+ url: urlBase + text,
+ inBackground: true,
+ onOpen: <span class="reserved">function</span> (t) {
+ t.activate();
+ }
+ });
+ }
+};
+
+<span class="comment">/**
+ *
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.sendBugUpstream = <span class="reserved">function</span>() {
+ var that = <span class="reserved">this</span>;
+ var urlStr = util.filterByRegexp(<span class="reserved">this</span>.constantData.newUpstreamBug, <span class="reserved">this</span>
+ .getOptionValue(<span class="literal">"component"</span>));
+
+ var ret = tabs.open({
+ url: urlStr,
+ inBackground: true,
+ onOpen: <span class="reserved">function</span> (tab) {
+ var otherDoc = tab.contentDocument;
+ var otherElems = otherDoc.forms.namedItem(<span class="literal">"Create"</span>).elements;
+ otherElems.namedItem(<span class="literal">"short_desc"</span>).value = that.doc
+ .getElementById(<span class="literal">"short_desc_nonedit_display"</span>).textContent
+ .trim();
+ otherElems.namedItem(<span class="literal">"comment"</span>).value = that.collectComments();
+ ret.focus();
+ }
+ });
+};
+
+<span class="comment">/**
+ * Parse the row with the attachment
+ *
+ * <span class="attrib">@param</span> DOM element to be parsed
+ * <span class="attrib">@return</span> array with string name of the attachment, integer its id number,
+ * string of MIME type, integer of size in kilobytes, and the whole
+ * element itself
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.parseAttachmentLine = <span class="reserved">function</span>(inElem) {
+ var MIMEtype = <span class="literal">""</span>;
+ var size = 0;
+
+ <span class="comment">// Skip over obsolete attachments</span>
+ <span class="reserved">if</span> (inElem.getElementsByClassName(<span class="literal">"bz_obsolete"</span>).length &gt; 0) {
+ <span class="reserved">return</span> ( []);
+ }
+
+ <span class="comment">// getting name of the attachment</span>
+ <span class="comment">// FIXME probably could use url.URL object</span>
+ var attName = inElem.getElementsByTagName(<span class="literal">"b"</span>)[0].textContent.trim();
+
+ var aHrefsArr = inElem.getElementsByTagName(<span class="literal">"a"</span>);
+ var aHref = Array.filter(aHrefsArr, <span class="reserved">function</span>(x) {
+ <span class="reserved">return</span> x.textContent.trim() === <span class="literal">"Details"</span>;
+ })[0];
+ var id = parseInt(aHref.getAttribute(<span class="literal">"href"</span>).replace(
+ /^.*attachment.cgi\?id=/, <span class="literal">""</span>), 10);
+
+ <span class="comment">// getting MIME type and size</span>
+ var stringArray = inElem.getElementsByClassName(<span class="literal">"bz_attach_extra_info"</span>)[0].textContent
+ .replace(/[\n ()]+/g, <span class="literal">" "</span>).trim().split(<span class="literal">", "</span>);
+ size = parseInt(stringArray[0], 10);
+ MIMEtype = stringArray[1].split(<span class="literal">" "</span>)[0];
+
+ <span class="reserved">return</span> [ attName, id, MIMEtype, size, inElem ];
+};
+
+<span class="comment">/**
+ * Add accesskey to the particular element
+ *
+ * <span class="attrib">@param</span> rootElement Element to which the new text object will be attached
+ * <span class="attrib">@param</span> beforeText Text before the accesskey character
+ * <span class="attrib">@param</span> accKey what will be the accesskey itself
+ * <span class="attrib">@param</span> afterText text after the accesskey character
+ * <span class="attrib">@return</span> modified element with the fixed accesskey
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.fixElement = <span class="reserved">function</span>(elem, beforeText, accKey, afterText) {
+ elem.setAttribute(<span class="literal">"accesskey"</span>, accKey.toLowerCase());
+ elem.innerHTML = beforeText + <span class="literal">"&lt;b&gt;&lt;u&gt;"</span> + accKey + <span class="literal">"&lt;/u&gt;&lt;/b&gt;"</span> + afterText;
+ <span class="reserved">return</span> elem;
+};
+
+<span class="comment">/**
+ * Return string with the ID for the external_id SELECT for external bugzilla
+ *
+ * <span class="attrib">@param</span> URLhostname String hostname of the external bugzilla
+ * <span class="attrib">@return</span> String with the string for the external_id SELECT
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.getBugzillaName = <span class="reserved">function</span>(URLhostname) {
+ var bugzillaID = <span class="literal">""</span>;
+ <span class="reserved">if</span> (<span class="reserved">this</span>.constantData.bugzillalabelNames[URLhostname]) {
+ bugzillaID = <span class="reserved">this</span>.constantData.bugzillalabelNames[URLhostname];
+ } <span class="reserved">else</span> {
+ bugzillaID = <span class="literal">""</span>;
+ }
+ <span class="reserved">return</span> bugzillaID;
+};
+
+<span class="comment">/**
+ * Callback function for the XMLRPC request
+ *
+ * <span class="attrib">@param</span> ret Object with xmlhttprequest response with attributes:
+ * + status -- int return code
+ * + statusText
+ * + responseHeaders
+ * + responseText
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.fixingMIMECallBack = <span class="reserved">function</span>() {
+ var that = <span class="reserved">this</span>;
+ console.log(<span class="literal">"fixingMIMECallBack / that.doc = "</span> + that.doc);
+ console.log(<span class="literal">"fixingMIMECallBack / that.win = "</span> + that.win);
+ <span class="reserved">if</span> (--<span class="reserved">this</span>.reqCounter &lt;= 0) {
+ timer.setTimeout(<span class="reserved">function</span> () {
+ that.win.location.reload(true);
+ }, 1000);
+ }
+};
+
+<span class="comment">/**
+ * The worker function -- call XMLRPC to fix MIME type of the particular
+ * attachment
+ *
+ * <span class="attrib">@param</span> id Integer with the attachment id to be fixed
+ * <span class="attrib">@param</span> type String with the new MIME type, optional defaults to "text/plain"
+ * <span class="attrib">@param</span> email Boolean whether email should be sent to appropriate person;
+ * option, defaults to false
+ *
+ * updateAttachMimeType($data_ref, $username, $password)
+ *
+ * Update the attachment mime type of an attachment. The first argument is a
+ * data hash containing information on the new MIME type and the attachment id
+ * that you want to act on.
+ *
+ * $data_ref = { "attach_id" =&gt; "&lt;Attachment ID&gt;", # Attachment ID to perform
+ * MIME type change on. "mime_type" =&gt; "&lt;New MIME Type Value&gt;", # Legal MIME
+ * type value that you want to change the attachment to. "nomail" =&gt; 0, #
+ * OPTIONAL Flag that is either 1 or 0 if you want email to be sent or not for
+ * this change };
+ *
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.fixAttachById = <span class="reserved">function</span>(id, type, email) {
+ <span class="reserved">if</span> (type === undefined) {
+ type = <span class="literal">"text/plain"</span>;
+ }
+ <span class="reserved">if</span> (email === undefined) {
+ email = false;
+ }
+
+ var msg = new xrpc.XMLRPCMessage(<span class="literal">"bugzilla.updateAttachMimeType"</span>);
+ msg.addParameter( {
+ <span class="literal">'attach_id'</span> : id,
+ <span class="literal">'mime_type'</span> : type,
+ <span class="literal">'nomail'</span> : !email
+ });
+ msg.addParameter(<span class="reserved">this</span>.login);
+ msg.addParameter(<span class="reserved">this</span>.password);
+
+ <span class="comment">// https://bugzilla.redhat.com/\</span>
+ <span class="comment">// docs/en/html/api/extensions/compat_xmlrpc/code/webservice.html</span>
+ <span class="comment">// test on https://bugzilla.redhat.com/show_bug.cgi?id=485145</span>
+ util.httpPOST(<span class="reserved">this</span>.XMLRPCurl, msg.xml(), <span class="reserved">this</span>.fixingMIMECallBack,
+ <span class="reserved">this</span>, <span class="literal">"text/xml"</span>, <span class="literal">"text/xml"</span>);
+ <span class="reserved">this</span>.reqCounter++;
+};
+
+<span class="comment">/**
+ * Create a button for fixing all bad attachments.
+ *
+ * <span class="attrib">@param</span> list Array of all bad attachmentss
+ * <span class="attrib">@return</span> button fixing all bad Attachments
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.createFixAllButton = <span class="reserved">function</span>(list) {
+ <span class="reserved">if</span> (!xrpc.XMLRPCMessage) {
+ <span class="reserved">return</span>;
+ }
+ var that = <span class="reserved">this</span>;
+ var elem = <span class="reserved">this</span>.doc.createElement(<span class="literal">"a"</span>);
+ elem.setAttribute(<span class="literal">"href"</span>, <span class="literal">""</span>);
+ elem.setAttribute(<span class="literal">"accesskey"</span>, <span class="literal">"f"</span>);
+ elem.innerHTML = <span class="literal">"&lt;b&gt;F&lt;/b&gt;ix all"</span>;
+ elem.addEventListener(<span class="literal">"click"</span>, <span class="reserved">function</span>() {
+ Array.forEach(list, <span class="reserved">function</span>(x) {
+ <span class="reserved">this</span>.fixAttachById(x[1]);
+ }, that);
+ }, false);
+ <span class="reserved">return</span> elem;
+};
+
+<span class="comment">/**
+ * Add a link to the bad attachment for fixing it.
+ *
+ * <span class="attrib">@param</span>
+ * &lt;TR&gt; DOM jQuery element with a bad attachment
+ * <span class="attrib">@return</span> none
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.addTextLink = <span class="reserved">function</span>(row) {
+ var that = <span class="reserved">this</span>;
+ var elemS = row[4].getElementsByTagName(<span class="literal">"td"</span>);
+ var elem = elemS[elemS.length - 1];
+ elem.innerHTML += <span class="literal">"&lt;br/&gt;&lt;a href=''&gt;Text&lt;/a&gt;"</span>;
+ elem.addEventListener(<span class="literal">"click"</span>, <span class="reserved">function</span>(x) {
+ that.fixAttachById(row[1], <span class="literal">"text/plain"</span>);
+ }, false);
+};
+
+<span class="comment">/**
+ * Add information about the upstream bug upstream, and closing it.
+ *
+ * <span class="attrib">@param</span> evt Event which called this handler
+ * <span class="attrib">@return</span> none
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.addClosingUpstream = <span class="reserved">function</span>() {
+ var refs = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"external_bugs_table"</span>)
+ .getElementsByTagName(<span class="literal">"tr"</span>);
+ <span class="comment">// that's a bad id, if there is a one. :)</span>
+ var inputBox = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"inputbox"</span>);
+ var externalBugID = 0;
+ var wholeURL = <span class="literal">""</span>;
+
+ <span class="comment">// FIXME Hopefully unfinished and even less tested</span>
+ <span class="comment">// Fix missing ID on the external_id SELECT</span>
+ <span class="reserved">this</span>.doc.getElementsByName(<span class="literal">"external_id"</span>)[0].setAttribute(<span class="literal">"id"</span>,
+ <span class="literal">"external_id"</span>);
+
+ <span class="reserved">if</span> (inputBox.value.match(/^http.*/)) {
+ wholeURL = inputBox.value;
+ var helpURL = new url.URL(wholeURL);
+ var paramsArr = helpURL.path.replace(/^\?/, <span class="literal">''</span>).split(<span class="literal">'&amp;'</span>);
+ <span class="comment">// get convert URL parameters to an Object</span>
+ var params = {}, s = [];
+ paramsArr.forEach(<span class="reserved">function</span>(par, idx, arr) {
+ s = par.split(<span class="literal">'='</span>);
+ params[s[0]] = s[1];
+ });
+ <span class="reserved">if</span> (params.id) {
+ externalBugID = parseInt(params.id, 10);
+ inputBox.value = externalBugID;
+ }
+ <span class="comment">// get host and bugzillaName</span>
+ var bugzillaName = <span class="reserved">this</span>.getBugzillaName(helpURL.hostname);
+ <span class="reserved">this</span>.selectOption(<span class="literal">"external_id"</span>, bugzillaName);
+ } <span class="reserved">else</span> <span class="reserved">if</span> (!isNaN(inputBox.value)) {
+ externalBugID = parseInt(inputBox.value, 10);
+ var bugzillaHostname = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"external_id"</span>).value;
+ wholeURL = bugzillaHostname+<span class="literal">"show_bug.cgi?id="</span>+externalBugID;
+ } <span class="reserved">else</span> {
+ <span class="comment">// no inputBox.value -- maybe there is an external bug from</span>
+ <span class="comment">// the previous commit?</span>
+ }
+
+ <span class="comment">// FIXME THis is not good, we don't have a feedback for other commands,</span>
+ <span class="comment">// not to be run, if this fails.</span>
+
+ <span class="comment">// It is not good to close bug as UPSTREAM, if there is no reference</span>
+ <span class="comment">// to the upstream bug.</span>
+ <span class="reserved">if</span> ((externalBugID &gt; 0) || (refs.length &gt; 2)) {
+ var msgStr = <span class="reserved">this</span>.commentStrings.sentUpstreamString;
+ msgStr = msgStr.replace(<span class="literal">"§§§"</span>, wholeURL);
+ <span class="reserved">this</span>.centralCommandDispatch(<span class="literal">"comment"</span>,msgStr);
+ <span class="reserved">this</span>.centralCommandDispatch(<span class="literal">"status"</span>, <span class="literal">"CLOSED"</span>);
+ <span class="reserved">this</span>.centralCommandDispatch(<span class="literal">"resolution"</span>, <span class="literal">"UPSTREAM"</span>);
+ } <span class="reserved">else</span> {
+ console.log(<span class="literal">"No external bug specified among the External References!"</span>);
+ }
+};
+
+RHBugzillaPage.<span class="reserved">prototype</span>.markBugTriaged = <span class="reserved">function</span>() {
+ <span class="comment">// Now we lie completely, we just set keyword Triaged,</span>
+ <span class="comment">// this is not just plain ASSIGNED, but</span>
+ <span class="comment">// modified according to</span>
+ <span class="comment">// https://fedoraproject.org/wiki/BugZappers/Meetings/Minutes-2009-Oct-27</span>
+ <span class="comment">// and</span>
+ <span class="comment">// http://meetbot.fedoraproject.org/fedora-meeting/2009-11-24\</span>
+ <span class="comment">// /fedora-meeting.2009-11-24-15.11.log.html</span>
+ <span class="comment">// and</span>
+ <span class="comment">// http://meetbot.fedoraproject.org/fedora-meeting/2009-11-24\</span>
+ <span class="comment">// /fedora-meeting.2009-11-24-15.11.log.html</span>
+ <span class="comment">// for F13 and later, ASSIGNED is "add Triaged keyword" (as well)</span>
+ <span class="comment">// for &lt;F13 it is "add both" (ASSIGNED status and Triaged keyword)</span>
+ var ver = <span class="reserved">this</span>.getVersion();
+ console.log(<span class="literal">"Marking bug as Triaged!"</span>);
+ <span class="reserved">if</span> ((!<span class="reserved">this</span>.isEnterprise()) &amp;&amp; (ver &lt;= 12)) {
+ <span class="reserved">this</span>.selectOption(<span class="literal">"bug_status"</span>, <span class="literal">"ASSIGNED"</span>);
+ }
+ <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"keywords"</span>,<span class="literal">"Triaged"</span>);
+};
+
+<span class="comment">/**
+ *
+ */</span>
+RHBugzillaPage.<span class="reserved">prototype</span>.parseBacktrace = <span class="reserved">function</span>(ret) {
+ var splitArray = ret.split(<span class="literal">"\n"</span>);
+ var i = 0, ii = splitArray.length;
+ var outStr = <span class="literal">""</span>, curLine = <span class="literal">""</span>, numStr = <span class="literal">""</span>;
+ var lineCounter = 0, endLineNo = 0;
+
+ <span class="reserved">while</span> (i &lt; ii) {
+ <span class="reserved">if</span> (<span class="reserved">this</span>.RE.signalHandler.test(splitArray[i])) {
+ break;
+ }
+ i++;
+ }
+
+ <span class="reserved">if</span> (i &lt; ii) {
+ lineCounter = parseInt(<span class="reserved">this</span>.RE.frameNo.exec(splitArray[i])[1], 10);
+ endLineNo = lineCounter + NumberOfFrames;
+ curLine = splitArray[i];
+ <span class="reserved">while</span> ((lineCounter &lt; endLineNo) &amp;&amp; (curLine.trim().length &gt; 0)
+ &amp;&amp; (i &lt; ii)) {
+ outStr += curLine + <span class="literal">'\n'</span>;
+ numStr = <span class="reserved">this</span>.RE.frameNo.exec(curLine);
+ <span class="reserved">if</span> (numStr) {
+ lineCounter = parseInt(numStr[1], 10);
+ }
+ i++;
+ curLine = splitArray[i];
+ }
+ }
+ <span class="reserved">return</span> outStr;
+};
+
+<span class="comment">// exports.RHBugzillaPage = apiUtils.publicConstructor(RHBugzillaPage);</span>
+exports.RHBugzillaPage = RHBugzillaPage;
+</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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top"><em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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 Wed Jun 23 09:33:14 2010</div>
+</body>
+</html>
diff --git a/docs/html/overview-summary-util.js.html b/docs/html/overview-summary-util.js.html
new file mode 100644
index 0000000..6be01b5
--- /dev/null
+++ b/docs/html/overview-summary-util.js.html
@@ -0,0 +1,453 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
+<html>
+<head>
+<title>
+ Overview
+</title>
+<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script>
+function asd() {
+
+ parent.document.title="util.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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top">
+<em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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>util.js</h2>
+
+</center>
+
+
+
+
+<h4>Summary</h4>
+<p>
+
+ No overview generated for 'util.js'<BR/><BR/>
+
+</p>
+
+<hr>
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<!-- ========== END METHOD SUMMARY =========== -->
+
+
+ <pre class="sourceview"><span class="comment">/*global exports: false, require: false, Cc: false, Ci: false, console: false */</span>
+<span class="comment">/*jslint onevar: false */</span>
+<span class="comment">// Released under the MIT/X11 license</span>
+<span class="comment">// http://www.opensource.org/licenses/mit-license.php</span>
+<span class="literal">"use strict"</span>;
+<span class="comment">// ==============================================================</span>
+var xhrMod = require(<span class="literal">"xhr"</span>);
+var urlMod = require(<span class="literal">"url"</span>);
+
+<span class="comment">/**
+ * Function for the management of the prototypal inheritace
+ * David Flanagan, Javascript: The Definitve Guide,
+ * IV. edition, O'Reilly, 2006, p. 168
+ *
+ * <span class="attrib">@param</span> superobject
+ * <span class="attrib">@return</span> new object, it needs new prototype.constructor
+ *
+ * &lt;pre&gt;
+ * function Father(x) {
+ * this.family = x;
+ * }
+ *
+ * function Son(x,w) {
+ * Father.call(this,x);
+ * this.wife = w;
+ * }
+ * Son.prototype = heir(Father);
+ * Son.prototype.constructor = Son;
+ * &lt;/pre&gt;
+ */</span>
+exports.heir = <span class="reserved">function</span> heir(p) {
+ <span class="reserved">function</span> f() {};
+ f.<span class="reserved">prototype</span> = p.<span class="reserved">prototype</span>;
+ <span class="reserved">return</span> new f();
+};
+
+
+exports.getBugNo = <span class="reserved">function</span> getBugNo(url) {
+ var re = new RegExp(<span class="literal">".*id=([0-9]+).*$"</span>);
+ var bugNo = null;
+ <span class="reserved">if</span> (!url) {
+ throw new Error(<span class="literal">"Missing URL value!"</span>);
+ }
+ var reResult = re.exec(url);
+ <span class="reserved">if</span> (reResult[1]) {
+ bugNo = reResult[1];
+ }
+ <span class="reserved">return</span> bugNo;
+};
+
+<span class="comment">/**
+ * Show a system notification with the given message
+ *
+ * <span class="attrib">@param</span> String or Object with a message to be shown in a default
+ * notification or object with properties title, icon, and body
+ * <span class="attrib">@return</span> None
+ */</span>
+exports.notification = <span class="reserved">function</span> notification(msg) {
+ var body = msg;
+ var title = <span class="literal">"Bugzilla Notification"</span>;
+ var icon = null;
+
+ <span class="reserved">if</span> (typeof(msg) === <span class="literal">"object"</span>) {
+ body = msg.body;
+ <span class="reserved">if</span> (<span class="literal">"title"</span> in msg) {
+ title = msg.title;
+ }
+ <span class="reserved">if</span> (<span class="literal">"icon"</span> in msg) {
+ icon = msg.icon;
+ }
+ }
+ try {
+ var classObj = Cc[<span class="literal">"@mozilla.org/alerts-service;1"</span>];
+ var alertService = classObj.getService(Ci.nsIAlertsService);
+
+ alertService.showAlertNotification(icon, title, body);
+ <span class="reserved">return</span> true;
+ } catch (e) {
+ console.error(<span class="literal">"Unable to display notification:"</span>, msg);
+ <span class="reserved">return</span> false;
+ }
+};
+
+<span class="comment">/**
+ * format date to be in ISO format (just day part)
+ *
+ * <span class="attrib">@param</span> date
+ * <span class="attrib">@return</span> string with the formatted date
+ */</span>
+exports.getISODate = <span class="reserved">function</span> getISODate(dateStr) {
+ <span class="reserved">function</span> pad(n) {
+ <span class="reserved">return</span> n &lt; 10 ? <span class="literal">'0'</span> + n : n;
+ }
+ var date = new Date(dateStr);
+ <span class="reserved">return</span> date.getFullYear() + <span class="literal">'-'</span> + pad(date.getMonth() + 1) + <span class="literal">'-'</span> +
+ pad(date.getDate());
+};
+
+<span class="comment">/**
+ * Check whether an item is member of the list. Idea is just to make long if
+ * commands slightly more readable.
+ *
+ * <span class="attrib">@param</span> mbr string to be searched in the list
+ * <span class="attrib">@param</span> list list
+ * <span class="attrib">@return</span> position of the string in the list, or -1 if none found.
+ */</span>
+var isInList = exports.isInList = <span class="reserved">function</span> isInList(mbr, list) {
+ <span class="reserved">if</span> (!list) {
+ <span class="reserved">return</span> false;
+ }
+ <span class="reserved">return</span> (list.indexOf(mbr) !== -1);
+};
+
+<span class="comment">/**
+ * Make sure value returned is Array
+ *
+ * <span class="attrib">@param</span> Array/String
+ * <span class="attrib">@return</span> Array
+ *
+ * If something else than Array or String is passed to the function
+ * the result will be untouched actual argument of the call.
+ */</span>
+var valToArray = exports.valToArray = <span class="reserved">function</span> valToArray(val) {
+ var isArr = val &amp;&amp;
+ val.constructor &amp;&amp;
+ val.constructor.name === <span class="literal">"Array"</span>;
+ <span class="reserved">return</span> isArr ? val : [val];
+};
+
+<span class="comment">/**
+ * Merges two comma separated string as a list and returns new string
+ *
+ * <span class="attrib">@param</span> str String with old values
+ * <span class="attrib">@param</span> value String/Array with other values
+ * <span class="attrib">@return</span> String with merged lists
+ */</span>
+exports.addCSVValue = <span class="reserved">function</span> addCSVValue(str, value) {
+ var parts = (str.trim().length &gt; 0 ? str.split(/,\s*/) : []);
+ <span class="reserved">if</span> (!value) {
+ <span class="reserved">return</span> str;
+ }
+ <span class="reserved">if</span> (!isInList(value, parts)) {
+ var newValue = valToArray(value);
+ parts = parts.concat(newValue);
+ }
+ <span class="comment">// this is necessary to get comma-space separated string even when</span>
+ <span class="comment">// value is an array already</span>
+ parts = parts.join(<span class="literal">","</span>).split(<span class="literal">","</span>);
+ <span class="reserved">return</span> parts.join(<span class="literal">", "</span>);
+};
+
+<span class="comment">/**
+ * Treats comma separated string as a list and removes one item from it
+ *
+ * <span class="attrib">@param</span> str String treated as a list
+ * <span class="attrib">@param</span> value String with the value to be removed from str
+ * <span class="attrib">@return</span> String with the resulting list comma separated
+ */</span>
+exports.removeCSVValue = <span class="reserved">function</span> removeCSVValue(str, value) {
+ str = str.trim();
+ var parts = str ? str.split(/,\s*/) : [];
+ var valueArr = value instanceof Array ? value : value.split(/,\s*/);
+ parts = parts.filter(<span class="reserved">function</span> (e, i, a) {
+ <span class="reserved">return</span> (!isInList(e, valueArr));
+ });
+ <span class="reserved">return</span> parts.join(<span class="literal">", "</span>);
+};
+
+<span class="comment">/**
+ * select element of the array where regexp in the first element matches second
+ * parameter of this function
+ *
+ * <span class="attrib">@param</span> list Array with regexps and return values
+ * <span class="attrib">@param</span> chosingMark String by which the element of array is to be matched
+ * <span class="attrib">@return</span> Object chosen element
+ */</span>
+var filterByRegexp = exports.filterByRegexp =
+ <span class="reserved">function</span> filterByRegexp(list, chosingMark) {
+ var chosenPair = [];
+ <span class="reserved">if</span> (list.length &gt; 0) {
+ chosenPair = list.filter(<span class="reserved">function</span> (pair) {
+ <span class="reserved">return</span> new RegExp(pair.regexp, <span class="literal">"i"</span>).test(chosingMark);
+ });
+ }
+ <span class="reserved">if</span> (chosenPair.length &gt; 0) {
+ <span class="reserved">return</span> chosenPair[0].addr;
+ } <span class="reserved">else</span> {
+ <span class="reserved">return</span> <span class="literal">""</span>;
+ }
+};
+
+<span class="comment">/**
+ * returns password with a special password
+ *
+ * <span class="attrib">@return</span> String with the password
+ */</span>
+var getPassword = exports.getPassword = <span class="reserved">function</span> getPassword() {
+ var prompts = Cc[<span class="literal">"@mozilla.org/embedcomp/prompt-service;1"</span>]
+ .getService(Ci.nsIPromptService);
+ var password = {
+ value : <span class="literal">""</span>
+ }; <span class="comment">// default the password to pass</span>
+ var check = {
+ value : true
+ }; <span class="comment">// default the checkbox to true</span>
+ var result = prompts.promptPassword(null, <span class="literal">"Title"</span>, <span class="literal">"Enter password:"</span>,
+ password, null, check);
+ <span class="comment">// result is true if OK was pressed, false if cancel was pressed.</span>
+ <span class="comment">// password.value is set if OK was pressed.</span>
+ <span class="comment">// The checkbox is not displayed.</span>
+ <span class="reserved">if</span> (result) {
+ <span class="reserved">return</span> password.value ? password.value : null;
+ } <span class="reserved">else</span> {
+ <span class="reserved">return</span> undefined;
+ }
+};
+
+<span class="comment">/**
+ * Load text from URL
+ *
+ * <span class="attrib">@param</span> URL String
+ * <span class="attrib">@param</span> cb_function Function to be called when the download happens with
+ * the downloaded body of the HTTP message as the only parameter
+ * <span class="attrib">@param</span> what optional Object argument representing this for this call
+ * <span class="attrib">@return</span> none
+ */</span>
+var loadText = exports.loadText = <span class="reserved">function</span> loadText(URL, cb_function, what) {
+ <span class="reserved">if</span> (what === undefined) { <span class="comment">// missing optional argument</span>
+ what = <span class="reserved">this</span>;
+ }
+
+ var req = new xhrMod.XMLHttpRequest();
+ req.open(<span class="literal">"GET"</span>, URL, true);
+ req.onreadystatechange = <span class="reserved">function</span> (aEvt) {
+ <span class="reserved">if</span> (req.readyState === 4) {
+ <span class="reserved">if</span> (req.status === 200) {
+ cb_function.call(what, req.responseText);
+ } <span class="reserved">else</span> {
+ throw <span class="literal">"Getting "</span> + URL + <span class="literal">"failed!"</span>;
+ }
+ }
+ };
+ req.send(<span class="literal">""</span>);
+};
+
+<span class="comment">/**
+ * Load JSON from URL
+ *
+ * <span class="attrib">@param</span> URL String
+ * <span class="attrib">@param</span> cb_function Function to be called when the download happens with
+ * the downloaded JSON as the only parameter
+ * <span class="attrib">@param</span> what optional Object argument representing this for this call
+ * <span class="attrib">@return</span> none
+ */</span>
+exports.loadJSON = <span class="reserved">function</span> loadJSON(URL, cb_function, what) {
+ <span class="reserved">if</span> (what === undefined) { <span class="comment">// missing optional argument</span>
+ what = <span class="reserved">this</span>;
+ }
+
+ loadText(URL, <span class="reserved">function</span> (text) {
+ var data = JSON.parse(text);
+ cb_function.call(what, data);
+ }, what);
+};
+
+<span class="comment">/**
+ * run HTTP POST request
+ *
+ * <span class="attrib">@param</span> URL String with URL; required
+ * <span class="attrib">@param</span> data Object/String with data ; required
+ * <span class="attrib">@param</span> cb_function Function called when the request succeeds, with
+ * the only parameter being request object ; required
+ * <span class="attrib">@param</span> what Object which will represent this for the cb_function ; optional
+ * <span class="attrib">@param</span> mimeData String with MIME type of data
+ * <span class="attrib">@param</span> mimeGet String with MIME type expected on return
+ */</span>
+exports.httpPOST = <span class="reserved">function</span> httpPOST(URL, data, cb_function, what, mimeData, mimeGet) {
+ what = what === undefined ? <span class="reserved">this</span> : what;
+ mimeData = mimeData === undefined ? <span class="literal">"application/x-www-form-urlencoded"</span> : mimeData;
+ mimeGet = mimeGet === undefined ? <span class="literal">"text/plain"</span> : mimeGet;
+
+ var req = new xhrMod.XMLHttpRequest();
+ console.log(<span class="literal">"req = "</span> + req.toSource());
+ req.open(<span class="literal">"POST"</span>, URL, true);
+
+ req.overrideMimeType(mimeGet);
+ req.setRequestHeader(<span class="literal">"Content-type"</span>, mimeData);
+ req.onreadystatechange = <span class="reserved">function</span>(aEvt) {
+ <span class="reserved">if</span> (req.readyState === 4) {
+ <span class="reserved">if</span> (req.status === 200) {
+ console.log(<span class="literal">"POST success!"</span>);
+ cb_function.call(what, req);
+ } <span class="reserved">else</span> {
+ console.error(<span class="literal">"POST failed!"</span>);
+ }
+ }
+ };
+ req.send(data);
+};
+</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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top"><em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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 Wed Jun 23 09:33:14 2010</div>
+</body>
+</html>
diff --git a/docs/html/overview-summary-xmlrpc.js.html b/docs/html/overview-summary-xmlrpc.js.html
new file mode 100644
index 0000000..fa8f786
--- /dev/null
+++ b/docs/html/overview-summary-xmlrpc.js.html
@@ -0,0 +1,322 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
+<html>
+<head>
+<title>
+ Overview
+</title>
+<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script>
+function asd() {
+
+ parent.document.title="xmlrpc.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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top">
+<em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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>xmlrpc.js</h2>
+
+</center>
+
+
+
+
+<h4>Summary</h4>
+<p>
+
+ No overview generated for 'xmlrpc.js'<BR/><BR/>
+
+</p>
+
+<hr>
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<!-- ========== END METHOD SUMMARY =========== -->
+
+
+ <pre class="sourceview"><span class="comment">// Released under the MIT/X11 license</span>
+<span class="comment">// http://www.opensource.org/licenses/mit-license.php</span>
+<span class="literal">"use strict"</span>;
+<span class="comment">/*
+ *
+ * xmlrpc.js beta version 1 Tool for creating XML-RPC formatted requests in
+ * JavaScript
+ *
+ * Copyright 2001 Scott Andrew LePera scott<span class="attrib">@scottandrew</span>.com
+ * http://www.scottandrew.com/xml-rpc
+ *
+ * License: You are granted the right to use and/or redistribute this code only
+ * if this license and the copyright notice are included and you accept that no
+ * warranty of any kind is made or implied by the author.
+ *
+ */</span>
+
+var XMLRPCMessage = exports.XMLRPCMessage = <span class="reserved">function</span> XMLRPCMessage(methodname) {
+ <span class="reserved">this</span>.method = methodname || <span class="literal">"system.listMethods"</span>;
+ <span class="reserved">this</span>.params = [];
+ <span class="reserved">return</span> <span class="reserved">this</span>;
+};
+
+XMLRPCMessage.<span class="reserved">prototype</span>.setMethod = <span class="reserved">function</span>(methodName) {
+ <span class="reserved">if</span> (!methodName) <span class="reserved">return</span>;
+ <span class="reserved">this</span>.method = methodName;
+};
+
+XMLRPCMessage.<span class="reserved">prototype</span>.addParameter = <span class="reserved">function</span>(data) {
+ <span class="reserved">if</span> (arguments.length == 0) <span class="reserved">return</span>;
+ <span class="reserved">this</span>.params[<span class="reserved">this</span>.params.length] = data;
+};
+
+XMLRPCMessage.<span class="reserved">prototype</span>.xml = <span class="reserved">function</span>() {
+
+ var method = <span class="reserved">this</span>.method;
+
+ <span class="comment">// assemble the XML message header</span>
+ var xml = <span class="literal">""</span>;
+
+ xml += <span class="literal">"&lt;?xml version=\"</span>1.0\<span class="literal">"?&gt;\n"</span>;
+ xml += <span class="literal">"&lt;methodCall&gt;\n"</span>;
+ xml += <span class="literal">"&lt;methodName&gt;"</span> + method + <span class="literal">"&lt;/methodName&gt;\n"</span>;
+ xml += <span class="literal">"&lt;params&gt;\n"</span>;
+
+ <span class="comment">// do individual parameters</span>
+ <span class="reserved">for</span> ( var i = 0; i &lt; <span class="reserved">this</span>.params.length; i++) {
+ var data = <span class="reserved">this</span>.params[i];
+ xml += <span class="literal">"&lt;param&gt;\n"</span>;
+ xml += <span class="literal">"&lt;value&gt;"</span>
+ + <span class="reserved">this</span>.getParamXML(<span class="reserved">this</span>.dataTypeOf(data),
+ data) + <span class="literal">"&lt;/value&gt;\n"</span>;
+ xml += <span class="literal">"&lt;/param&gt;\n"</span>;
+ }
+
+ xml += <span class="literal">"&lt;/params&gt;\n"</span>;
+ xml += <span class="literal">"&lt;/methodCall&gt;"</span>;
+
+ <span class="reserved">return</span> xml; <span class="comment">// for now</span>
+};
+
+XMLRPCMessage.<span class="reserved">prototype</span>.dataTypeOf = <span class="reserved">function</span>(o) {
+ <span class="comment">// identifies the data type</span>
+ var type = typeof (o);
+ type = type.toLowerCase();
+ switch (type) {
+ case <span class="literal">"number"</span>:
+ <span class="reserved">if</span> (Math.round(o) == o)
+ type = <span class="literal">"i4"</span>;
+ <span class="reserved">else</span>
+ type = <span class="literal">"double"</span>;
+ break;
+ case <span class="literal">"object"</span>:
+ var con = o.constructor;
+ <span class="reserved">if</span> (con == Date)
+ type = <span class="literal">"date"</span>;
+ <span class="reserved">else</span> <span class="reserved">if</span> (con == Array)
+ type = <span class="literal">"array"</span>;
+ <span class="reserved">else</span>
+ type = <span class="literal">"struct"</span>;
+ break;
+ }
+ <span class="reserved">return</span> type;
+};
+
+XMLRPCMessage.<span class="reserved">prototype</span>.doValueXML = <span class="reserved">function</span>(type, data) {
+ var xml = <span class="literal">"&lt;"</span> + type + <span class="literal">"&gt;"</span> + data + <span class="literal">"&lt;/"</span> + type + <span class="literal">"&gt;"</span>;
+ <span class="reserved">return</span> xml;
+};
+
+XMLRPCMessage.<span class="reserved">prototype</span>.doBooleanXML = <span class="reserved">function</span>(data) {
+ var value = (data == true) ? 1 : 0;
+ var xml = <span class="literal">"&lt;boolean&gt;"</span> + value + <span class="literal">"&lt;/boolean&gt;"</span>;
+ <span class="reserved">return</span> xml;
+};
+
+XMLRPCMessage.<span class="reserved">prototype</span>.doDateXML = <span class="reserved">function</span>(data) {
+ var leadingZero = <span class="reserved">function</span> (n) {
+ <span class="comment">// pads a single number with a leading zero. Heh.</span>
+ <span class="reserved">if</span> (n.length == 1)
+ n = <span class="literal">"0"</span> + n;
+ <span class="reserved">return</span> n;
+ };
+ var dateToISO8601 = <span class="reserved">function</span>(date) {
+ <span class="comment">// wow I hate working with the Date object</span>
+ var year = new String(date.getYear());
+ var month = <span class="reserved">this</span>.leadingZero(new String(date.getMonth()));
+ var day = <span class="reserved">this</span>.leadingZero(new String(date.getDate()));
+ var time = <span class="reserved">this</span>.leadingZero(new String(date.getHours())) + <span class="literal">":"</span>
+ + <span class="reserved">this</span>.leadingZero(new String(date.getMinutes())) + <span class="literal">":"</span>
+ + <span class="reserved">this</span>.leadingZero(new String(date.getSeconds()));
+
+ var converted = year + month + day + <span class="literal">"T"</span> + time;
+ <span class="reserved">return</span> converted;
+ };
+
+ var xml = <span class="literal">"&lt;dateTime.iso8601&gt;"</span>;
+ xml += dateToISO8601(data);
+ xml += <span class="literal">"&lt;/dateTime.iso8601&gt;"</span>;
+ <span class="reserved">return</span> xml;
+};
+
+XMLRPCMessage.<span class="reserved">prototype</span>.doArrayXML = <span class="reserved">function</span>(data) {
+ var xml = <span class="literal">"&lt;array&gt;&lt;data&gt;\n"</span>;
+ <span class="reserved">for</span> ( var i = 0; i &lt; data.length; i++) {
+ xml += <span class="literal">"&lt;value&gt;"</span>
+ + <span class="reserved">this</span>.getParamXML(<span class="reserved">this</span>.dataTypeOf(data[i]),
+ data[i]) + <span class="literal">"&lt;/value&gt;\n"</span>;
+ }
+ xml += <span class="literal">"&lt;/data&gt;&lt;/array&gt;\n"</span>;
+ <span class="reserved">return</span> xml;
+};
+
+XMLRPCMessage.<span class="reserved">prototype</span>.doStructXML = <span class="reserved">function</span>(data) {
+ var xml = <span class="literal">"&lt;struct&gt;\n"</span>;
+ <span class="reserved">for</span> ( var i in data) {
+ xml += <span class="literal">"&lt;member&gt;\n"</span>;
+ xml += <span class="literal">"&lt;name&gt;"</span> + i + <span class="literal">"&lt;/name&gt;\n"</span>;
+ xml += <span class="literal">"&lt;value&gt;"</span>
+ + <span class="reserved">this</span>.getParamXML(<span class="reserved">this</span>.dataTypeOf(data[i]),
+ data[i]) + <span class="literal">"&lt;/value&gt;\n"</span>;
+ xml += <span class="literal">"&lt;/member&gt;\n"</span>;
+ }
+ xml += <span class="literal">"&lt;/struct&gt;\n"</span>;
+ <span class="reserved">return</span> xml;
+};
+
+XMLRPCMessage.<span class="reserved">prototype</span>.getParamXML = <span class="reserved">function</span>(type, data) {
+ var xml;
+ switch (type) {
+ case <span class="literal">"date"</span>:
+ xml = <span class="reserved">this</span>.doDateXML(data);
+ break;
+ case <span class="literal">"array"</span>:
+ xml = <span class="reserved">this</span>.doArrayXML(data);
+ break;
+ case <span class="literal">"struct"</span>:
+ xml = <span class="reserved">this</span>.doStructXML(data);
+ break;
+ case <span class="literal">"boolean"</span>:
+ xml = <span class="reserved">this</span>.doBooleanXML(data);
+ break;
+ default:
+ xml = <span class="reserved">this</span>.doValueXML(type, data);
+ break;
+ }
+ <span class="reserved">return</span> xml;
+};
+</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>&nbsp;</td>
+ <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top"><em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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 Wed Jun 23 09:33:14 2010</div>
+</body>
+</html>
diff --git a/docs/html/overview-summary.html b/docs/html/overview-summary.html
new file mode 100644
index 0000000..09e9076
--- /dev/null
+++ b/docs/html/overview-summary.html
@@ -0,0 +1,216 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
+<html>
+<head>
+<title>
+ Overview
+</title>
+<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script>
+function asd() {
+
+ parent.document.title=" 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"> &nbsp;<font class="NavBarFont1Rev"><b>Overview</b></font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <font class="NavBarFont1">File</font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top">
+<em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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>JSDoc Documentation</h2>
+
+</center>
+
+
+<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-bzpage.js.html">bzpage.js</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr bgcolor="white" class="TableRowColor">
+ <td width="15%"><b><a href="overview-summary-clipboard.js.html">clipboard.js</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr bgcolor="white" class="TableRowColor">
+ <td width="15%"><b><a href="overview-summary-color.js.html">color.js</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr bgcolor="white" class="TableRowColor">
+ <td width="15%"><b><a href="overview-summary-logger.js.html">logger.js</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr bgcolor="white" class="TableRowColor">
+ <td width="15%"><b><a href="overview-summary-main.js.html">main.js</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr bgcolor="white" class="TableRowColor">
+ <td width="15%"><b><a href="overview-summary-mozillabzpage.js.html">mozillabzpage.js</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr bgcolor="white" class="TableRowColor">
+ <td width="15%"><b><a href="overview-summary-offline-support.js.html">offline-support.js</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr bgcolor="white" class="TableRowColor">
+ <td width="15%"><b><a href="overview-summary-persistent-page-mod.js.html">persistent-page-mod.js</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr bgcolor="white" class="TableRowColor">
+ <td width="15%"><b><a href="overview-summary-rhbzpage.js.html">rhbzpage.js</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr bgcolor="white" class="TableRowColor">
+ <td width="15%"><b><a href="overview-summary-util.js.html">util.js</a></b></td>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr bgcolor="white" class="TableRowColor">
+ <td width="15%"><b><a href="overview-summary-xmlrpc.js.html">xmlrpc.js</a></b></td>
+ <td>&nbsp;</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"> &nbsp;<font class="NavBarFont1Rev"><b>Overview</b></font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <font class="NavBarFont1">File</font>&nbsp;</td>
+
+
+ <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
+ <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
+ </tr>
+</table>
+</td>
+<td bgcolor="#EEEEFF" align="right" valign="top"><em>
+<b></b></em>
+</td>
+</tr>
+
+<tr>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</font></td>
+<td bgcolor="white" class="NavBarCell2"><font size="-2">
+ <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
+&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
+&nbsp;&nbsp;
+<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 Wed Jun 23 09:33:14 2010</div>
+</body>
+</html>
diff --git a/docs/html/overview-tree.html b/docs/html/overview-tree.html
new file mode 100644
index 0000000..1c1ae4a
--- /dev/null
+++ b/docs/html/overview-tree.html
@@ -0,0 +1,128 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+ Class Hierarchy
+</TITLE>
+<LINK REL="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<SCRIPT>
+function asd()
+{
+parent.document.title=" 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>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><b>Tree</b></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><b>Index</b></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><b>Help</b></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD BGCOLOR="#FFFFFF" ALIGN="right" VALIGN="top"><EM>
+<B></B></EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="overview-summary.html" TARGET="_top"><B>NO FRAMES</B></A>
+&nbsp;&nbsp;
+<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='BZPage.html'>BZPage</a></B></LI>
+ <LI TYPE="circle"><B><a href='Color.html'>Color</a></B></LI>
+ <LI TYPE="circle"><B><a href='Logger.html'>Logger</a></B></LI>
+ <LI TYPE="circle"><B><a href='MozillaBugzilla.html'>MozillaBugzilla</a></B></LI>
+ <LI TYPE="circle"><B><a href='PersistentPageMod.html'>PersistentPageMod</a></B></LI>
+ <LI TYPE="circle"><B><a href='RHBugzillaPage.html'>RHBugzillaPage</a></B></LI>
+ <LI TYPE="circle"><B><a href='XMLRPCMessage.html'>XMLRPCMessage</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>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><b>Tree</b></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><b>Index</b></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><b>Help</b></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD BGCOLOR="#FFFFFF" ALIGN="right" VALIGN="top"><EM>
+<B></B></EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="overview-summary.html" TARGET="_top"><B>NO FRAMES</B></A>
+&nbsp;&nbsp;
+<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 Wed Jun 23 09:33:14 2010</div>
+</BODY>
+</HTML>
diff --git a/docs/html/overview-util.js.html b/docs/html/overview-util.js.html
new file mode 100644
index 0000000..444cba1
--- /dev/null
+++ b/docs/html/overview-util.js.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+ util.js
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title=" util.js";
+}
+</SCRIPT>
+<BODY BGCOLOR="white" onload="asd();">
+
+<H3 class="FrameHeadingFont"><B></B></H3>
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B><a href="overview-summary-util.js.html"
+ target="classFrame">util.js</a></B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%">
+
+
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/html/overview-xmlrpc.js.html b/docs/html/overview-xmlrpc.js.html
new file mode 100644
index 0000000..3de7623
--- /dev/null
+++ b/docs/html/overview-xmlrpc.js.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<TITLE>
+ xmlrpc.js
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title=" xmlrpc.js";
+}
+</SCRIPT>
+<BODY BGCOLOR="white" onload="asd();">
+
+<H3 class="FrameHeadingFont"><B></B></H3>
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B><a href="overview-summary-xmlrpc.js.html"
+ target="classFrame">xmlrpc.js</a></B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%">
+
+
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/html/stylesheet.css b/docs/html/stylesheet.css
new file mode 100644
index 0000000..7a35c0c
--- /dev/null
+++ b/docs/html/stylesheet.css
@@ -0,0 +1,39 @@
+/* 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/docs/jsdoc.xml b/docs/jsdoc.xml
new file mode 100644
index 0000000..a6a1d0a
--- /dev/null
+++ b/docs/jsdoc.xml
@@ -0,0 +1,2304 @@
+<?xml version="1.0"?>
+<javascript>
+ <classes>
+
+ <class
+ name="GLOBALS"
+ >
+ <constructor_args></constructor_args>
+ <constructor_vars>
+
+ </constructor_vars>
+
+ <constructor_detail><![CDATA[]]></constructor_detail>
+
+ <instance-methods>
+
+ </instance-methods>
+
+ <instance-fields>
+
+ </instance-fields>
+
+ <class-methods>
+
+ <method mapped_name="isOurPage">
+ <description><![CDATA[]]></description>
+ <argument_list>(window, matchingURLs)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[main.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+
+ <method mapped_name="createTransferable">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[clipboard.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+
+ <method mapped_name="getClipboard">
+ <description><![CDATA[returns content of the system clipboard]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[clipboard.js]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[string with the content of the clipboard or "" if empty. originally from https://developer.mozilla.org/en/Using_the_Clipboard https://wiki.mozilla.org/Labs/Jetpack/JEP/10]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+
+ <method mapped_name="initialize">
+ <description><![CDATA[]]></description>
+ <argument_list>(callback)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[main.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+
+ <method mapped_name="skipThisPage">
+ <description><![CDATA[]]></description>
+ <argument_list>(doc)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[main.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+
+
+
+ </class-methods>
+
+ <class-fields>
+
+
+ </class-fields>
+
+ <inner-classes>
+
+ </inner-classes>
+
+
+ </class>
+
+ <class
+ name="XMLRPCMessage"
+ >
+ <constructor_args></constructor_args>
+ <constructor_vars>
+
+ </constructor_vars>
+
+ <constructor_detail><![CDATA[]]></constructor_detail>
+
+ <instance-methods>
+
+ <method mapped_name="setMethod">
+ <description><![CDATA[]]></description>
+ <argument_list>(methodName)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[xmlrpc.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="addParameter">
+ <description><![CDATA[]]></description>
+ <argument_list>(data)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[xmlrpc.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="xml">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[xmlrpc.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="dataTypeOf">
+ <description><![CDATA[]]></description>
+ <argument_list>(o)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[xmlrpc.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="doValueXML">
+ <description><![CDATA[]]></description>
+ <argument_list>(type, data)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[xmlrpc.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="doBooleanXML">
+ <description><![CDATA[]]></description>
+ <argument_list>(data)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[xmlrpc.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="doDateXML">
+ <description><![CDATA[]]></description>
+ <argument_list>(data)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[xmlrpc.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="doArrayXML">
+ <description><![CDATA[]]></description>
+ <argument_list>(data)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[xmlrpc.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="doStructXML">
+ <description><![CDATA[]]></description>
+ <argument_list>(data)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[xmlrpc.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getParamXML">
+ <description><![CDATA[]]></description>
+ <argument_list>(type, data)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[xmlrpc.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ </instance-methods>
+
+ <instance-fields>
+
+ </instance-fields>
+
+ <class-methods>
+
+
+
+ </class-methods>
+
+ <class-fields>
+
+
+ </class-fields>
+
+ <inner-classes>
+
+ </inner-classes>
+
+
+ </class>
+
+ <class
+ name="PersistentPageMod"
+ >
+ <constructor_args>(window, callback)</constructor_args>
+ <constructor_vars>
+
+ <var name="filename">
+
+ <value><![CDATA[persistent-page-mod.js]]></value>
+
+ </var>
+
+ <var name="constructor">
+
+ <value><![CDATA[]]></value>
+
+ </var>
+
+ </constructor_vars>
+
+ <constructor_detail><![CDATA[]]></constructor_detail>
+
+ <instance-methods>
+
+ <method mapped_name="doMod">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[persistent-page-mod.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="handleEvent">
+ <description><![CDATA[]]></description>
+ <argument_list>(event)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[persistent-page-mod.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="unload">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[persistent-page-mod.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ </instance-methods>
+
+ <instance-fields>
+
+ <field name="window">
+ <field-value><![CDATA[window]]></field-value>
+ <field-description><![CDATA[]]></field-description>
+ <vars>
+
+ </vars>
+ </field>
+
+ <field name="callback">
+ <field-value><![CDATA[callback]]></field-value>
+ <field-description><![CDATA[]]></field-description>
+ <vars>
+
+ </vars>
+ </field>
+
+ <field name="REPLACE_DELAY">
+ <field-value><![CDATA[100]]></field-value>
+ <field-description><![CDATA[]]></field-description>
+ <vars>
+
+ </vars>
+ </field>
+
+ </instance-fields>
+
+ <class-methods>
+
+
+
+ </class-methods>
+
+ <class-fields>
+
+
+ </class-fields>
+
+ <inner-classes>
+
+ </inner-classes>
+
+
+ </class>
+
+ <class
+ name="Logger"
+ >
+ <constructor_args>(store, abbsMap)</constructor_args>
+ <constructor_vars>
+
+ <var name="filename">
+
+ <value><![CDATA[logger.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </constructor_vars>
+
+ <constructor_detail><![CDATA[]]></constructor_detail>
+
+ <instance-methods>
+
+ <method mapped_name="addLogRecord">
+ <description><![CDATA[]]></description>
+ <argument_list>(that)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[logger.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getLength">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[logger.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getBugzillaAbbr">
+ <description><![CDATA[]]></description>
+ <argument_list>(url)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[logger.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="timeSheetRecordsPrinter">
+ <description><![CDATA[]]></description>
+ <argument_list>(body, records)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[logger.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="createBlankPage">
+ <description><![CDATA[]]></description>
+ <argument_list>(ttl, bodyBuildCB)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[logger.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="generateTimeSheet">
+ <description><![CDATA[]]></description>
+ <argument_list>(body)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[logger.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ </instance-methods>
+
+ <instance-fields>
+
+ </instance-fields>
+
+ <class-methods>
+
+
+
+ </class-methods>
+
+ <class-fields>
+
+
+ </class-fields>
+
+ <inner-classes>
+
+ </inner-classes>
+
+
+ </class>
+
+ <class
+ name="Color"
+ >
+ <constructor_args>(r, g, b)</constructor_args>
+ <constructor_vars>
+
+ <var name="filename">
+
+ <value><![CDATA[color.js]]></value>
+
+ </var>
+
+ </constructor_vars>
+
+ <constructor_detail><![CDATA[]]></constructor_detail>
+
+ <instance-methods>
+
+ <method mapped_name="update">
+ <description><![CDATA[]]></description>
+ <argument_list>(r, g, b)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[color.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="hs">
+ <description><![CDATA[]]></description>
+ <argument_list>(nStr)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[color.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="toString">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[color.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="hsl">
+ <description><![CDATA[Converts an RGB color value to HSL. Conversion formula adapted from
+ http://en.wikipedia.org/wiki/HSL_color_space. Assumes r, g, and b are
+ contained in the set [0, 255] and returns h, s, and l in the set [0, 1].4343]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[color.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[Number r The red color value ]]></value>
+
+ <value><![CDATA[Number g The green color value ]]></value>
+
+ <value><![CDATA[Number b The blue color value ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[Array The HSL representation]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="hslToRgb">
+ <description><![CDATA[Converts an HSL color value to RGB. Conversion formula adapted from
+ http://en.wikipedia.org/wiki/HSL_color_space. Assumes h, s, and l are
+ contained in the set [0, 1] and returns r, g, and b in the set [0, 255].]]></description>
+ <argument_list>(h, s, l)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[color.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[Number h The hue ]]></value>
+
+ <value><![CDATA[Number s The saturation ]]></value>
+
+ <value><![CDATA[Number l The lightness ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[Array The RGB representation]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="hsv">
+ <description><![CDATA[Converts an RGB color value to HSV. Conversion formula adapted from
+ http://en.wikipedia.org/wiki/HSV_color_space. Assumes r, g, and b are
+ contained in the set [0, 255] and returns h, s, and v in the set [0, 1].]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[color.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[Number r The red color value ]]></value>
+
+ <value><![CDATA[Number g The green color value ]]></value>
+
+ <value><![CDATA[Number b The blue color value ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[Array The HSV representation]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="hsvToRgb">
+ <description><![CDATA[Converts an HSV color value to RGB. Conversion formula adapted from
+ http://en.wikipedia.org/wiki/HSV_color_space. Assumes h, s, and v are
+ contained in the set [0, 1] and returns r, g, and b in the set [0, 255].]]></description>
+ <argument_list>(h, s, v)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[color.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[Number h The hue ]]></value>
+
+ <value><![CDATA[Number s The saturation ]]></value>
+
+ <value><![CDATA[Number v The value ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[Array The RGB representation]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="lightColor">
+ <description><![CDATA[Provide]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[color.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ </instance-methods>
+
+ <instance-fields>
+
+ <field name="Luminosity">
+ <field-value><![CDATA[0.85]]></field-value>
+ <field-description><![CDATA[]]></field-description>
+ <vars>
+
+ </vars>
+ </field>
+
+ <field name="Desaturated">
+ <field-value><![CDATA[0.4]]></field-value>
+ <field-description><![CDATA[]]></field-description>
+ <vars>
+
+ </vars>
+ </field>
+
+ <field name="r">
+ <field-value><![CDATA[r[0]]]></field-value>
+ <field-description><![CDATA[]]></field-description>
+ <vars>
+
+ </vars>
+ </field>
+
+ <field name="g">
+ <field-value><![CDATA[r[1]]]></field-value>
+ <field-description><![CDATA[]]></field-description>
+ <vars>
+
+ </vars>
+ </field>
+
+ <field name="b">
+ <field-value><![CDATA[r[2]]]></field-value>
+ <field-description><![CDATA[]]></field-description>
+ <vars>
+
+ </vars>
+ </field>
+
+ </instance-fields>
+
+ <class-methods>
+
+
+
+ </class-methods>
+
+ <class-fields>
+
+
+ </class-fields>
+
+ <inner-classes>
+
+ </inner-classes>
+
+
+ </class>
+
+ <class
+ name="RHBugzillaPage"
+ >
+ <constructor_args>(win, config)</constructor_args>
+ <constructor_vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ </constructor_vars>
+
+ <constructor_detail><![CDATA[]]></constructor_detail>
+
+ <instance-methods>
+
+ <method mapped_name="serializeForm">
+ <description><![CDATA[]]></description>
+ <argument_list>(form)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[offline-support.js]]></value>
+
+ </var>
+
+ <var name="todo">
+
+ <value><![CDATA[FIXME this probably makes a closure and a memory leak name='changeform' investigate https://developer.mozilla.org/en/How_to_Turn_Off_Form_Autocompletion <form method="post" action="process_bug.cgi" autocomplete="off"> Reading http://www.w3.org/TR/1999/REC-html401-19991224/interact/forms.html#h-17.13 random notes: - 17.13.3 provides all steps necessary - enctype != application/x-www-form-urlencoded => SHOULD fails (no further questions needed) - http://www.w3.org/MarkUp/html-spec/html-spec_8.html#SEC8.2.1. is nice explanation (albeit quite dated) - on multiple values http://www.w3.org/TR/1999/REC-html401-19991224/interact/forms.html#h-17.6.1 - příliš jednoduché http://www.innovation.ch/java/HTTPClient/emulating_forms.html -]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="toString">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getDefaultAssignee">
+ <description><![CDATA[Find default assignee based on the current component]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[String what would be a default assignee if we haven't set it up.]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="setDefaultAssignee">
+ <description><![CDATA[Set default assignee]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[none sets this.defaultAssignee property according to defaultAssignee list]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="closeSomeRelease">
+ <description><![CDATA[Auxiliary function to computer more complicated resolution]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="centralCommandDispatch">
+ <description><![CDATA[Additional commands specific for this subclass, overriding superclass one.]]></description>
+ <argument_list>(cmdLabel, cmdParams)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="pasteBacktraceInComments">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="markBadAttachments">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="isEnterprise">
+ <description><![CDATA[Is this bug a RHEL bug?]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[Boolean true if it is a RHEL bug]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="isTriaged">
+ <description><![CDATA[Find out whether the bug is needed an attention of bugZappers]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[Boolean whether the bug has been triaged or not]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="setBranding">
+ <description><![CDATA[Set branding colours to easily distinguish between Fedora and RHEL bugs]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[brand String with product of the current bug ]]></value>
+
+ <value><![CDATA[version String with the version of the bug ]]></value>
+
+ <value><![CDATA[its String with the IsueTracker numbers ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[none]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="fillInWhiteBoard">
+ <description><![CDATA[Given line to be parsed, find out which chipset it is and fill in the
+ whiteboard]]></description>
+ <argument_list>(iLine, driverStr)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[iLine String with the whole unparsed "interesting line" ]]></value>
+
+ <value><![CDATA[driverStr String with the driver name ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[None]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="fillInChipMagic">
+ <description><![CDATA[Get attached Xorg.0.log, parse it and find the value of chip. Does not fill
+ the whiteboard itself, just adds button to do so,paramList so that slow
+ XMLHttpRequest is done in advance.]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[None]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getSelectionOrClipboard">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="queryInNewTab">
+ <description><![CDATA[Opens a new tab with a query for the given text in the selected component]]></description>
+ <argument_list>(text, component, product)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[text to be searched for ]]></value>
+
+ <value><![CDATA[component String with the component name (maybe latter regexp?) ]]></value>
+
+ <value><![CDATA[product (optional) string with the product name, if undefined, search in all products ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[None]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="queryForSelection">
+ <description><![CDATA[Get the text to search for and prepare other things for the real executive
+ function this.queryInNewTab, and run it.]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="queryUpstream">
+ <description><![CDATA[Search simple query in the upstream bugzilla appropriate for the component.]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="sendBugUpstream">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="parseAttachmentLine">
+ <description><![CDATA[Parse the row with the attachment]]></description>
+ <argument_list>(inElem)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[DOM element to be parsed ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[array with string name of the attachment, integer its id number, string of MIME type, integer of size in kilobytes, and the whole element itself]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="fixElement">
+ <description><![CDATA[Add accesskey to the particular element]]></description>
+ <argument_list>(elem, beforeText, accKey, afterText)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[rootElement Element to which the new text object will be attached ]]></value>
+
+ <value><![CDATA[beforeText Text before the accesskey character ]]></value>
+
+ <value><![CDATA[accKey what will be the accesskey itself ]]></value>
+
+ <value><![CDATA[afterText text after the accesskey character ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[modified element with the fixed accesskey]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getBugzillaName">
+ <description><![CDATA[Return string with the ID for the external_id SELECT for external bugzilla]]></description>
+ <argument_list>(URLhostname)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[URLhostname String hostname of the external bugzilla ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[String with the string for the external_id SELECT]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="fixingMIMECallBack">
+ <description><![CDATA[Callback function for the XMLRPC request]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[ret Object with xmlhttprequest response with attributes: + status -- int return code + statusText + responseHeaders + responseText ]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="fixAttachById">
+ <description><![CDATA[The worker function -- call XMLRPC to fix MIME type of the particular
+ attachment]]></description>
+ <argument_list>(id, type, email)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[id Integer with the attachment id to be fixed ]]></value>
+
+ <value><![CDATA[type String with the new MIME type, optional defaults to "text/plain" ]]></value>
+
+ <value><![CDATA[email Boolean whether email should be sent to appropriate person; option, defaults to false updateAttachMimeType($data_ref, $username, $password) Update the attachment mime type of an attachment. The first argument is a data hash containing information on the new MIME type and the attachment id that you want to act on. $data_ref = { "attach_id" => "<Attachment ID>", # Attachment ID to perform MIME type change on. "mime_type" => "<New MIME Type Value>", # Legal MIME type value that you want to change the attachment to. "nomail" => 0, # OPTIONAL Flag that is either 1 or 0 if you want email to be sent or not for this change }; ]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="createFixAllButton">
+ <description><![CDATA[Create a button for fixing all bad attachments.]]></description>
+ <argument_list>(list)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[list Array of all bad attachmentss ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[button fixing all bad Attachments]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="addTextLink">
+ <description><![CDATA[Add a link to the bad attachment for fixing it.]]></description>
+ <argument_list>(row)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[<TR> DOM jQuery element with a bad attachment ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[none]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="addClosingUpstream">
+ <description><![CDATA[Add information about the upstream bug upstream, and closing it.]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[evt Event which called this handler ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[none]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="markBugTriaged">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="parseBacktrace">
+ <description><![CDATA[]]></description>
+ <argument_list>(ret)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[rhbzpage.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ </instance-methods>
+
+ <instance-fields>
+
+ <field name="ProfessionalProducts">
+ <field-value><![CDATA[[]]></field-value>
+ <field-description><![CDATA[]]></field-description>
+ <vars>
+
+ </vars>
+ </field>
+
+ </instance-fields>
+
+ <class-methods>
+
+
+
+ </class-methods>
+
+ <class-fields>
+
+
+ </class-fields>
+
+ <inner-classes>
+
+ </inner-classes>
+
+
+ </class>
+
+ <class
+ name="BZPage"
+ >
+ <constructor_args>(win, config)</constructor_args>
+ <constructor_vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ </constructor_vars>
+
+ <constructor_detail><![CDATA[]]></constructor_detail>
+
+ <instance-methods>
+
+ <method mapped_name="getBugId">
+ <description><![CDATA[Get the ID of the bug.]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[string]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getInstalledPackages">
+ <description><![CDATA[]]></description>
+ <argument_list>(cfg)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="centralCommandDispatch">
+ <description><![CDATA[Actual execution function]]></description>
+ <argument_list>(cmdLabel, cmdParams)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[cmdLabel String with the name of the command to be executed ]]></value>
+
+ <value><![CDATA[cmdParams Object with the appropriate parameters for the command ]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="executeCommand">
+ <description><![CDATA[Take the ID of the package/id combination, and execute it]]></description>
+ <argument_list>(cmd)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[String combined package + "//" + id combination Fetches the command object from this.installedPackages and then goes through all commands contained in it, and calls this.centralCommandDispatch to execute them. ]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="changeAssignee">
+ <description><![CDATA[Add XGL to the CC list]]></description>
+ <argument_list>(newAssignee)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[evt Event which made this function active ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[none]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="addToCommentsDropdown">
+ <description><![CDATA[Adds new option to the 'comment_action' scroll down box]]></description>
+ <argument_list>(pkg, cmd)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[pkg String package name ]]></value>
+
+ <value><![CDATA[cmd String with the name of the command If the 'comment_action' scroll down box doesn't exist, this function will set up new one. ]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="createNewButton">
+ <description><![CDATA[Generic function to add new button to the page. Actually copies new button
+ from the old one (in order to have the same look-and-feel, etc.]]></description>
+ <argument_list>(location, after, pkg, id)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[location Object around which the new button will be added ]]></value>
+
+ <value><![CDATA[after Boolean before or after location ? ]]></value>
+
+ <value><![CDATA[pkg String which package to take the command from ]]></value>
+
+ <value><![CDATA[id String which command to take ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[none]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="generateButtons">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getReporter">
+ <description><![CDATA[Get the current email of the reporter of the bug.]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[string]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getVersion">
+ <description><![CDATA[Get the current version of the Fedora release ... even if changed meanwhile
+ by bug triager.]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[string (integer for released Fedora, float for RHEL, rawhide)]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="commentsWalker">
+ <description><![CDATA[]]></description>
+ <argument_list>(fce)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="checkComments">
+ <description><![CDATA[Set background color of all comments made by reporter in ReporterColor color]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="collectComments">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="selectOption">
+ <description><![CDATA[Select option with given label on the <SELECT> element with given id.
+
+ Also execute change HTMLEvent, so that the form behaves accordingly.]]></description>
+ <argument_list>(id, label)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[id ]]></value>
+
+ <value><![CDATA[label ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[none FIXME bugzilla-comments version has this signature: selectOption = function selectOption(select, value) { var doc = select[0].ownerDocument; select.val(value);]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="clickMouse">
+ <description><![CDATA[Send mouse click to the specified element]]></description>
+ <argument_list>(targetID)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[String ID of the element to send mouseclick to ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[None]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="addStuffToTextBox">
+ <description><![CDATA[Add object to the text box (comment box or status whiteboard)]]></description>
+ <argument_list>(id, stuff)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[id String with the id of the element ]]></value>
+
+ <value><![CDATA[stuff String/Array to be added to the comment box ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[none]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="removeStuffFromTextBox">
+ <description><![CDATA[Remove a keyword from the element if it is there]]></description>
+ <argument_list>(id, stuff)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[id String with the id of the element ]]></value>
+
+ <value><![CDATA[stuff String/Array with keyword(s) to be removed ]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="idContainsWord">
+ <description><![CDATA[generalized hasKeyword ... search in the value of the box with given id]]></description>
+ <argument_list>(id, str)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[id String with ID of the element we want to check ]]></value>
+
+ <value><![CDATA[str String to be searched for ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[Boolean found?]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="hasKeyword">
+ <description><![CDATA[Check for the presence of a keyword]]></description>
+ <argument_list>(str)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[str String with the keyword ]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[Boolean]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getOptionValue">
+ <description><![CDATA[]]></description>
+ <argument_list>(id)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="setNeedinfoReporter">
+ <description><![CDATA[Set the bug to NEEDINFO state
+
+ Working function.]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="todo">
+
+ <value><![CDATA[TODO we may extend this to general setNeedinfo function with parameter [reporter|assignee|general-email-address]]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[none ]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getOwner">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getLogin">
+ <description><![CDATA[Get login of the currently logged-in user.]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[String with the login name of the currently logged-in user]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getDefaultBugzillaMaintainer">
+ <description><![CDATA[Return maintainer which is per default by bugzilla
+ (which is not necessarily the one who is default maintainer per component)]]></description>
+ <argument_list>(component)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[String with the maintainer's email address]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getAttachments">
+ <description><![CDATA[collect the list of attachments in a structured format]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[Array of arrays, one for each attachments; each record has string name of the attachment, integer its id number, string of MIME type, integer of size in kilobytes, and the whole element itself]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getPassword">
+ <description><![CDATA[returns password from the current storage, or if there isn't
+ one, then it will ask user for it.]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[String with the password]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="setUpLogging">
+ <description><![CDATA[]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="addToCCList">
+ <description><![CDATA[adds a person to the CC list, if it isn't already there]]></description>
+ <argument_list>(who)</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="type">
+
+ <value><![CDATA[void]]></value>
+
+ </var>
+
+ <var name="param">
+
+ <value><![CDATA[who String with email address or "self" if the current user of the bugzilla should be added ]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ <method mapped_name="getCCList">
+ <description><![CDATA[a collect a list of emails on CC list]]></description>
+ <argument_list>()</argument_list>
+ <vars>
+
+ <var name="filename">
+
+ <value><![CDATA[bzpage.js]]></value>
+
+ </var>
+
+ <var name="return">
+
+ <value><![CDATA[Array with email addresses as Strings.]]></value>
+
+ </var>
+
+ </vars>
+ </method>
+
+ </instance-methods>
+
+ <instance-fields>
+
+ </instance-fields>
+
+ <class-methods>
+
+
+
+ </class-methods>
+
+ <class-fields>
+
+
+ </class-fields>
+
+ <inner-classes>
+
+ </inner-classes>
+
+
+ </class>
+
+ <class
+ name="MozillaBugzilla"
+ >
+ <constructor_args>(doc, config)</constructor_args>
+ <constructor_vars>
+
+ <var name="filename">
+
+ <value><![CDATA[mozillabzpage.js]]></value>
+
+ </var>
+
+ </constructor_vars>
+
+ <constructor_detail><![CDATA[]]></constructor_detail>
+
+ <instance-methods>
+
+ </instance-methods>
+
+ <instance-fields>
+
+ </instance-fields>
+
+ <class-methods>
+
+
+
+ </class-methods>
+
+ <class-fields>
+
+
+ </class-fields>
+
+ <inner-classes>
+
+ </inner-classes>
+
+
+ </class>
+
+ </classes>
+</javascript>