75. Araxis Merge File Comparison Report

Produced by Araxis Merge on Fri Nov 21 17:21:52 2008 UTC. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a reasonably standards compliant browser such as the latest version of Firefox or Internet Explorer. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

75.1 Files compared

# Location File Last Modified
1 C:\Documents and Settings\allums\Desktop\2008.1.20396.b\Formats\WebWorks Help 5.0\Files\wwhelp\wwhimpl\js\scripts index.js Fri Feb 29 22:30:18 2008 UTC
2 C:\Documents and Settings\allums\Desktop\2008.2.20597.p2\Formats\WebWorks Help 5.0\Files\wwhelp\wwhimpl\js\scripts index.js Tue Aug 12 22:40:50 2008 UTC

75.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 6 3012
Changed 1 2
Inserted 2 8
Removed 2 2

75.3 Comparison options

Whitespace Differences in whitespace are significant
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

75.4 Active regular expressions

Expression Description
\$(Author|Date|Header|Id|Locker|Name|RCSfile|Revision|Source|State):[^$]*\$ CVS comments

75.5 Comparison detail

1   // Copyrig ht (c) 200 0-2003 Qua dralay Cor poration.   All right s reserved .   1   // Copyrig ht (c) 200 0-2003 Qua dralay Cor poration.   All right s reserved .
2   //   2   //
3     3  
4   function   WWHIndex_O bject()   4   function   WWHIndex_O bject()
5   {   5   {
6     this.mbP anelInitia lized  = f alse;   6     this.mbP anelInitia lized  = f alse;
7     this.mPa nelAnchor         = n ull;   7     this.mPa nelAnchor         = n ull;
8     this.mPa nelTabTitl e      = W WHFrame.WW HJavaScrip t.mMessage s.mTabsInd exLabel;   8     this.mPa nelTabTitl e      = W WHFrame.WW HJavaScrip t.mMessage s.mTabsInd exLabel;
9     this.mPa nelTabInde x      = - 1;   9     this.mPa nelTabInde x      = - 1;
10     this.mPa nelFilenam e      = ( (WWHFrame. WWHBrowser .mBrowser  == 1) ? "p anelfni.ht m" : "pane lfsi.htm") ;   10     this.mPa nelFilenam e      = ( (WWHFrame. WWHBrowser .mBrowser  == 1) ? "p anelfni.ht m" : "pane lfsi.htm") ;
11     this.mIn itIndex           = 0 ;   11     this.mIn itIndex           = 0 ;
12     this.mOp tions             = n ew WWHInde xOptions_O bject();   12     this.mOp tions             = n ew WWHInde xOptions_O bject();
13     this.mTo pEntry            = n ew WWHInde xEntry_Obj ect(false,  -1, null) ;   13     this.mTo pEntry            = n ew WWHInde xEntry_Obj ect(false,  -1, null) ;
14     this.mMa xLevel            = 0 ;   14     this.mMa xLevel            = 0 ;
15     this.mEn tryCount          = 0 ;   15     this.mEn tryCount          = 0 ;
16     this.mSe eAlsoArray        = n ew Array() ;   16     this.mSe eAlsoArray        = n ew Array() ;
17     this.mSe ctionIndex        = 0 ;   17     this.mSe ctionIndex        = 0 ;
18     this.mbT hresholdEx ceeded = n ull;   18     this.mbT hresholdEx ceeded = n ull;
19     this.mSe ctionCache        = n ew WWHSect ionCache_O bject();   19     this.mSe ctionCache        = n ew WWHSect ionCache_O bject();
20     this.mIt erator            = n ew WWHInde xIterator_ Object();   20     this.mIt erator            = n ew WWHInde xIterator_ Object();
21     this.mHT MLSegment         = n ew WWHStri ngBuffer_O bject();   21     this.mHT MLSegment         = n ew WWHStri ngBuffer_O bject();
22     this.mEv entString         = W WHPopup_Ev entString( );   22     this.mEv entString         = W WHPopup_Ev entString( );
23     this.mCl ickedEntry        = n ull;   23     this.mCl ickedEntry        = n ull;
24     24  
25     this.fIn itHeadHTML            = WWHIndex _InitHeadH TML;   25     this.fIn itHeadHTML            = WWHIndex _InitHeadH TML;
26     this.fIn itBodyHTML            = WWHIndex _InitBodyH TML;   26     this.fIn itBodyHTML            = WWHIndex _InitBodyH TML;
27     this.fIn itLoadBook Index      = WWHIndex _InitLoadB ookIndex;   27     this.fIn itLoadBook Index      = WWHIndex _InitLoadB ookIndex;
28     this.fAd dSeeAlsoEn try        = WWHIndex _AddSeeAls oEntry;   28     this.fAd dSeeAlsoEn try        = WWHIndex _AddSeeAls oEntry;
29     this.fPr ocessSeeAl soEntries  = WWHIndex _ProcessSe eAlsoEntri es;   29     this.fPr ocessSeeAl soEntries  = WWHIndex _ProcessSe eAlsoEntri es;
30     this.fNa vigationHe adHTML     = WWHIndex _Navigatio nHeadHTML;   30     this.fNa vigationHe adHTML     = WWHIndex _Navigatio nHeadHTML;
31     this.fNa vigationBo dyHTML     = WWHIndex _Navigatio nBodyHTML;   31     this.fNa vigationBo dyHTML     = WWHIndex _Navigatio nBodyHTML;
32     this.fHe adHTML                = WWHIndex _HeadHTML;   32     this.fHe adHTML                = WWHIndex _HeadHTML;
33     this.fSt artHTMLSeg ments      = WWHIndex _StartHTML Segments;   33     this.fSt artHTMLSeg ments      = WWHIndex _StartHTML Segments;
34     this.fAd vanceHTMLS egment     = WWHIndex _AdvanceHT MLSegment;   34     this.fAd vanceHTMLS egment     = WWHIndex _AdvanceHT MLSegment;
35     this.fGe tHTMLSegme nt         = WWHIndex _GetHTMLSe gment;   35     this.fGe tHTMLSegme nt         = WWHIndex _GetHTMLSe gment;
36     this.fEn dHTMLSegme nts        = WWHIndex _EndHTMLSe gments;   36     this.fEn dHTMLSegme nts        = WWHIndex _EndHTMLSe gments;
37     this.fPa nelNavigat ionLoaded  = WWHIndex _PanelNavi gationLoad ed;   37     this.fPa nelNavigat ionLoaded  = WWHIndex _PanelNavi gationLoad ed;
38     this.fPa nelViewLoa ded        = WWHIndex _PanelView Loaded;   38     this.fPa nelViewLoa ded        = WWHIndex _PanelView Loaded;
39     this.fHo verTextTra nslate     = WWHIndex _HoverText Translate;   39     this.fHo verTextTra nslate     = WWHIndex _HoverText Translate;
40     this.fHo verTextFor mat        = WWHIndex _HoverText Format;   40     this.fHo verTextFor mat        = WWHIndex _HoverText Format;
41     this.fGe tPopupActi on         = WWHIndex _GetPopupA ction;   41     this.fGe tPopupActi on         = WWHIndex _GetPopupA ction;
42     this.fTh resholdExc eeded      = WWHIndex _Threshold Exceeded;   42     this.fTh resholdExc eeded      = WWHIndex _Threshold Exceeded;
43     this.fGe tSectionNa vigation   = WWHIndex _GetSectio nNavigatio n;   43     this.fGe tSectionNa vigation   = WWHIndex _GetSectio nNavigatio n;
44     this.fDi splaySecti on         = WWHIndex _DisplaySe ction;   44     this.fDi splaySecti on         = WWHIndex _DisplaySe ction;
45     this.fSe lectionLis tHeadHTML  = WWHIndex _Selection ListHeadHT ML;   45     this.fSe lectionLis tHeadHTML  = WWHIndex _Selection ListHeadHT ML;
46     this.fSe lectionLis tBodyHTML  = WWHIndex _Selection ListBodyHT ML;   46     this.fSe lectionLis tBodyHTML  = WWHIndex _Selection ListBodyHT ML;
47     this.fSe lectionLis tLoaded    = WWHIndex _Selection ListLoaded ;   47     this.fSe lectionLis tLoaded    = WWHIndex _Selection ListLoaded ;
48     this.fDi splayLink             = WWHIndex _DisplayLi nk;   48     this.fDi splayLink             = WWHIndex _DisplayLi nk;
49     this.fGe tEntry                = WWHIndex _GetEntry;   49     this.fGe tEntry                = WWHIndex _GetEntry;
50     this.fCl ickedEntry            = WWHIndex _ClickedEn try;   50     this.fCl ickedEntry            = WWHIndex _ClickedEn try;
51     this.fCl ickedSeeAl soEntry    = WWHIndex _ClickedSe eAlsoEntry ;   51     this.fCl ickedSeeAl soEntry    = WWHIndex _ClickedSe eAlsoEntry ;
52     52  
53     // Set o ptions   53     // Set o ptions
54     //   54     //
55     WWHJavaS criptSetti ngs_Index_ DisplayOpt ions(this. mOptions);   55     WWHJavaS criptSetti ngs_Index_ DisplayOpt ions(this. mOptions);
56   }   56   }
57     57  
58   function   WWHIndex_I nitHeadHTM L()   58   function   WWHIndex_I nitHeadHTM L()
59   {   59   {
60     var  Ini tHeadHTML  = "";   60     var  Ini tHeadHTML  = "";
61     61  
62     62  
63     return I nitHeadHTM L;   63     return I nitHeadHTM L;
64   }   64   }
65     65  
66   function   WWHIndex_I nitBodyHTM L()   66   function   WWHIndex_I nitBodyHTM L()
67   {   67   {
68     var  Var HTML = new  WWHString Buffer_Obj ect();   68     var  Var HTML = new  WWHString Buffer_Obj ect();
69     var  Var BookList =  WWHFrame. WWHHelp.mB ooks.mBook List;   69     var  Var BookList =  WWHFrame. WWHHelp.mB ooks.mBook List;
70     var  Var Parameters ;   70     var  Var Parameters ;
71     71  
72     72  
73     // Worka round Safa ri reload  bug   73     // Worka round Safa ri reload  bug
74     //   74     //
75     VarParam eters = "" ;   75     VarParam eters = "" ;
76     if (WWHF rame.WWHBr owser.mBro wser == 5)   // Short hhand for  Safari   76     if (WWHF rame.WWHBr owser.mBro wser == 5)   // Short hhand for  Safari
77     {   77     {
78       VarPar ameters =  "?" + (new  Date() *  1);   78       VarPar ameters =  "?" + (new  Date() *  1);
79     }   79     }
80     80  
81     // Displ ay initial izing mess age   81     // Displ ay initial izing mess age
82     //   82     //
83     VarHTML. fAppend("< h2>" + WWH Frame.WWHJ avaScript. mMessages. mInitializ ingMessage  + "</h2>\ n");   83     VarHTML. fAppend("< h2>" + WWH Frame.WWHJ avaScript. mMessages. mInitializ ingMessage  + "</h2>\ n");
84     84  
85     // Load  index data   85     // Load  index data
86     //   86     //
87     this.mIn itIndex =  0;   87     this.mIn itIndex =  0;
88     for (Max Index = Va rBookList. length, In dex = 0 ;  Index < Ma xIndex ; I ndex++)   88     for (Max Index = Va rBookList. length, In dex = 0 ;  Index < Ma xIndex ; I ndex++)
89     {   89     {
90       // Ref erence Ind ex data   90       // Ref erence Ind ex data
91       //   91       //
92       VarHTM L.fAppend( "<script l anguage=\" JavaScript 1.2\" src= \"" + WWHF rame.WWHHe lp.mHelpUR LPrefix +  WWHFrame.W WHBrowser. fRestoreEs capedSpace s( VarBookLis t[Index].m Directory )  + "wwhdat a/js/index .js" + Var Parameters  + "\"></s cript>\n") ;   92       VarHTM L.fAppend( "<script l anguage=\" JavaScript 1.2\" src= \"" + WWHF rame.WWHHe lp.mHelpUR LPrefix + 
VarBookLis t[Index].m Directory
 + "wwhdat a/js/index .js" + Var Parameters  + "\"></s cript>\n") ;
93     93  
94       // Loa d Index da ta for cur rent book   94       // Loa d Index da ta for cur rent book
95       //   95       //
96       VarHTM L.fAppend( "<script l anguage=\" JavaScript 1.2\" src= \"" + WWHF rame.WWHHe lp.mHelpUR LPrefix +  "wwhelp/ww himpl/js/s cripts/ind ex1s.js" +  VarParame ters + "\" ></script> \n");   96       VarHTM L.fAppend( "<script l anguage=\" JavaScript 1.2\" src= \"" + WWHF rame.WWHHe lp.mHelpUR LPrefix +  "wwhelp/ww himpl/js/s cripts/ind ex1s.js" +  VarParame ters + "\" ></script> \n");
97     }   97     }
98     98  
99     return V arHTML.fGe tBuffer();   99     return V arHTML.fGe tBuffer();
100   }   100   }
101     101  
102   function   WWHIndex_I nitLoadBoo kIndex(Par amAddIndex EntriesFun c)   102   function   WWHIndex_I nitLoadBoo kIndex(Par amAddIndex EntriesFun c)
103   {   103   {
104     var  Var MaxIndex;   104     var  Var MaxIndex;
105     var  Var Index;   105     var  Var Index;
106     106  
107     107  
108     // Load  Index   108     // Load  Index
109     //   109     //
110     ParamAdd IndexEntri esFunc(thi s.mTopEntr y);   110     ParamAdd IndexEntri esFunc(thi s.mTopEntr y);
111     111  
112     // Incre ment init  book index   112     // Incre ment init  book index
113     //   113     //
114     this.mIn itIndex++;   114     this.mIn itIndex++;
115     115  
116     // Check  if done   116     // Check  if done
117     //   117     //
118     if (this .mInitInde x == WWHFr ame.WWHHel p.mBooks.m BookList.l ength)   118     if (this .mInitInde x == WWHFr ame.WWHHel p.mBooks.m BookList.l ength)
119     {   119     {
120       // Pro cess see a lso entrie s to set u p links be tween sour ce and tar get   120       // Pro cess see a lso entrie s to set u p links be tween sour ce and tar get
121       // Do  this befor e the top  level hash es are cle ared by th e sort chi ldren call   121       // Do  this befor e the top  level hash es are cle ared by th e sort chi ldren call
122       //   122       //
123       this.f ProcessSee AlsoEntrie s();   123       this.f ProcessSee AlsoEntrie s();
124     124  
125       // Sor t top leve l entries   125       // Sor t top leve l entries
126       //   126       //
127       if (th is.mTopEnt ry.mChildr enSortArra y == null)   127       if (th is.mTopEnt ry.mChildr enSortArra y == null)
128       {   128       {
129         WWHI ndexEntry_ SortChildr en(this.mT opEntry);   129         WWHI ndexEntry_ SortChildr en(this.mT opEntry);
130       }   130       }
131     131  
132       // Ass ign sectio n indices   132       // Ass ign sectio n indices
133       //   133       //
134       for (V arMaxIndex  = this.mT opEntry.mC hildrenSor tArray.len gth, VarIn dex = 0 ;  VarIndex <  VarMaxInd ex ; VarIn dex++)   134       for (V arMaxIndex  = this.mT opEntry.mC hildrenSor tArray.len gth, VarIn dex = 0 ;  VarIndex <  VarMaxInd ex ; VarIn dex++)
135       {   135       {
136         this .mTopEntry .mChildren SortArray[ VarIndex]. mSectionIn dex = VarI ndex;   136         this .mTopEntry .mChildren SortArray[ VarIndex]. mSectionIn dex = VarI ndex;
137       }   137       }
138     138  
139       // Pan el is init ialized   139       // Pan el is init ialized
140       //   140       //
141       this.m bPanelInit ialized =  true;   141       this.m bPanelInit ialized =  true;
142     }   142     }
143   }   143   }
144     144  
145   function   WWHIndex_A ddSeeAlsoE ntry(Param Entry)   145   function   WWHIndex_A ddSeeAlsoE ntry(Param Entry)
146   {   146   {
147     this.mSe eAlsoArray [this.mSee AlsoArray. length] =  ParamEntry ;   147     this.mSe eAlsoArray [this.mSee AlsoArray. length] =  ParamEntry ;
148   }   148   }
149     149  
150   function   WWHIndex_P rocessSeeA lsoEntries ()   150   function   WWHIndex_P rocessSeeA lsoEntries ()
151   {   151   {
152     var  Var MaxIndex;   152     var  Var MaxIndex;
153     var  Var Index;   153     var  Var Index;
154     var  Var Entry;   154     var  Var Entry;
155     var  Var SeeAlsoGro upEntry;   155     var  Var SeeAlsoGro upEntry;
156     var  Var SeeAlsoEnt ry;   156     var  Var SeeAlsoEnt ry;
157     157  
158     158  
159     // Set s ee also re ferences   159     // Set s ee also re ferences
160     //   160     //
161     for (Var MaxIndex =  this.mSee AlsoArray. length, Va rIndex = 0  ; VarInde x < VarMax Index ; Va rIndex++)   161     for (Var MaxIndex =  this.mSee AlsoArray. length, Va rIndex = 0  ; VarInde x < VarMax Index ; Va rIndex++)
162     {   162     {
163       // Acc ess entry   163       // Acc ess entry
164       //   164       //
165       VarEnt ry = this. mSeeAlsoAr ray[VarInd ex];   165       VarEnt ry = this. mSeeAlsoAr ray[VarInd ex];
166     166  
167       // Acc ess group  entry   167       // Acc ess group  entry
168       //   168       //
169       VarSee AlsoGroupE ntry = thi s.mTopEntr y.mChildre n[VarEntry .mSeeAlsoG roupKey +  "~"];   169       VarSee AlsoGroupE ntry = thi s.mTopEntr y.mChildre n[VarEntry .mSeeAlsoG roupKey +  "~"];
170       if ((t ypeof(VarS eeAlsoGrou pEntry) !=  "undefine d") &&   170       if ((t ypeof(VarS eeAlsoGrou pEntry) !=  "undefine d") &&
171           (V arSeeAlsoG roupEntry  != null) & &   171           (V arSeeAlsoG roupEntry  != null) & &
172           (V arSeeAlsoG roupEntry. mChildren  != null))   172           (V arSeeAlsoG roupEntry. mChildren  != null))
173       {   173       {
174         // A ccess see  also entry   174         // A ccess see  also entry
175         //   175         //
176         VarS eeAlsoEntr y = VarSee AlsoGroupE ntry.mChil dren[VarEn try.mSeeAl soKey + "~ "];   176         VarS eeAlsoEntr y = VarSee AlsoGroupE ntry.mChil dren[VarEn try.mSeeAl soKey + "~ "];
177         if ( (typeof(Va rSeeAlsoEn try) != "u ndefined")  &&   177         if ( (typeof(Va rSeeAlsoEn try) != "u ndefined")  &&
178              (VarSeeAls oEntry !=  null))   178              (VarSeeAls oEntry !=  null))
179         {   179         {
180           //  Setup lin ks between  source an d destinat ion   180           //  Setup lin ks between  source an d destinat ion
181           //   181           //
182     182  
183           //  See if ta rget entry  is alread y tagged   183           //  See if ta rget entry  is alread y tagged
184           //   184           //
185           if  (typeof(V arSeeAlsoE ntry.mSeeA lsoTargetN ame) == "u ndefined")   185           if  (typeof(V arSeeAlsoE ntry.mSeeA lsoTargetN ame) == "u ndefined")
186           {   186           {
187              // Update  target ent ry   187              // Update  target ent ry
188              //   188              //
189              VarSeeAlso Entry.mSee AlsoTarget Name = "s"  + VarInde x;   189              VarSeeAlso Entry.mSee AlsoTarget Name = "s"  + VarInde x;
190           }   190           }
191     191  
192           //  Update so urce entry   192           //  Update so urce entry
193           //   193           //
194           Va rEntry.mSe eAlsoTarge tName = Va rSeeAlsoEn try.mSeeAl soTargetNa me;   194           Va rEntry.mSe eAlsoTarge tName = Va rSeeAlsoEn try.mSeeAl soTargetNa me;
195           Va rEntry.mSe eAlsoTarge tGroupID =  VarSeeAls oGroupEntr y.mGroupID ;   195           Va rEntry.mSe eAlsoTarge tGroupID =  VarSeeAls oGroupEntr y.mGroupID ;
196         }   196         }
197       }   197       }
198     }   198     }
199     199  
200     // Clear  see also  array   200     // Clear  see also  array
201     //   201     //
202     this.mSe eAlsoArray  = null;   202     this.mSe eAlsoArray  = null;
203   }   203   }
204     204  
205   function   WWHIndex_N avigationH eadHTML()   205   function   WWHIndex_N avigationH eadHTML()
206   {   206   {
207     var  HTM L = new WW HStringBuf fer_Object ();   207     var  HTM L = new WW HStringBuf fer_Object ();
208     208  
209     209  
210     // Gener ate style  section   210     // Gener ate style  section
211     //   211     //
212     HTML.fAp pend("<sty le type=\" text/css\" >\n");   212     HTML.fAp pend("<sty le type=\" text/css\" >\n");
213     HTML.fAp pend(" <!- -\n");   213     HTML.fAp pend(" <!- -\n");
214     HTML.fAp pend("  a. selected\n ");   214     HTML.fAp pend("  a. selected\n ");
215     HTML.fAp pend("  {\ n");   215     HTML.fAp pend("  {\ n");
216     HTML.fAp pend("     text-decor ation: non e;\n");   216     HTML.fAp pend("     text-decor ation: non e;\n");
217     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mNavigati onCurrentC olor + ";\ n");   217     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mNavigati onCurrentC olor + ";\ n");
218     HTML.fAp pend("  }\ n");   218     HTML.fAp pend("  }\ n");
219     HTML.fAp pend("  a. enabled\n" );   219     HTML.fAp pend("  a. enabled\n" );
220     HTML.fAp pend("  {\ n");   220     HTML.fAp pend("  {\ n");
221     HTML.fAp pend("     text-decor ation: non e;\n");   221     HTML.fAp pend("     text-decor ation: non e;\n");
222     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mNavigati onEnabledC olor + ";\ n");   222     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mNavigati onEnabledC olor + ";\ n");
223     HTML.fAp pend("  }\ n");   223     HTML.fAp pend("  }\ n");
224     HTML.fAp pend("  p. navigation \n");   224     HTML.fAp pend("  p. navigation \n");
225     HTML.fAp pend("  {\ n");   225     HTML.fAp pend("  {\ n");
226     HTML.fAp pend("     margin-top : 1pt;\n") ;   226     HTML.fAp pend("     margin-top : 1pt;\n") ;
227     HTML.fAp pend("     margin-bot tom: 1pt;\ n");   227     HTML.fAp pend("     margin-bot tom: 1pt;\ n");
228     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mNavigati onDisabled Color + "; \n");   228     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mNavigati onDisabled Color + "; \n");
229     HTML.fAp pend("     " + WWHFra me.WWHJava Script.mSe ttings.mIn dex.mNavig ationFontS tyle + ";\ n");   229     HTML.fAp pend("     " + WWHFra me.WWHJava Script.mSe ttings.mIn dex.mNavig ationFontS tyle + ";\ n");
230     HTML.fAp pend("  }\ n");   230     HTML.fAp pend("  }\ n");
231     HTML.fAp pend(" --> \n");   231     HTML.fAp pend(" --> \n");
232     HTML.fAp pend("</st yle>\n");   232     HTML.fAp pend("</st yle>\n");
233     233  
234     return H TML.fGetBu ffer();   234     return H TML.fGetBu ffer();
235   }   235   }
236     236  
237   function   WWHIndex_N avigationB odyHTML()   237   function   WWHIndex_N avigationB odyHTML()
238   {   238   {
239     var  HTM L = new WW HStringBuf fer_Object ();   239     var  HTM L = new WW HStringBuf fer_Object ();
240     var  Var CacheKey;   240     var  Var CacheKey;
241     241  
242     242  
243     // Defin e accessor  functions  to reduce  file size   243     // Defin e accessor  functions  to reduce  file size
244     //   244     //
245     HTML.fAp pend("<scr ipt type=\ "text/java script\" l anguage=\" JavaScript 1.2\">\n") ;   245     HTML.fAp pend("<scr ipt type=\ "text/java script\" l anguage=\" JavaScript 1.2\">\n") ;
246     HTML.fAp pend(" <!- -\n");   246     HTML.fAp pend(" <!- -\n");
247     HTML.fAp pend("  fu nction  fD (ParamSect ionIndex)\ n");   247     HTML.fAp pend("  fu nction  fD (ParamSect ionIndex)\ n");
248     HTML.fAp pend("  {\ n");   248     HTML.fAp pend("  {\ n");
249     HTML.fAp pend("     WWHFrame.W WHIndex.fD isplaySect ion(ParamS ectionInde x);\n");   249     HTML.fAp pend("     WWHFrame.W WHIndex.fD isplaySect ion(ParamS ectionInde x);\n");
250     HTML.fAp pend("  }\ n");   250     HTML.fAp pend("  }\ n");
251     HTML.fAp pend(" //  -->\n");   251     HTML.fAp pend(" //  -->\n");
252     HTML.fAp pend("</sc ript>\n");   252     HTML.fAp pend("</sc ript>\n");
253     253  
254     // Displ ay navigat ion shortc uts   254     // Displ ay navigat ion shortc uts
255     //   255     //
256     if (this .fThreshol dExceeded( ))   256     if (this .fThreshol dExceeded( ))
257     {   257     {
258       VarCac heKey = th is.mSectio nIndex;   258       VarCac heKey = th is.mSectio nIndex;
259     }   259     }
260     else   260     else
261     {   261     {
262       VarCac heKey = -1 ;   262       VarCac heKey = -1 ;
263     }   263     }
264     264  
265     // Calcu late secti on navigat ion if not  already c ached   265     // Calcu late secti on navigat ion if not  already c ached
266     //   266     //
267     if (type of(this.mS ectionCach e[VarCache Key]) == " undefined" )   267     if (type of(this.mS ectionCach e[VarCache Key]) == " undefined" )
268     {   268     {
269       this.m SectionCac he[VarCach eKey] = th is.fGetSec tionNaviga tion();   269       this.m SectionCac he[VarCach eKey] = th is.fGetSec tionNaviga tion();
270     }   270     }
271     271  
272     // Displ ay section  selection   272     // Displ ay section  selection
273     //   273     //
274     HTML.fAp pend(this. mSectionCa che[VarCac heKey]);   274     HTML.fAp pend(this. mSectionCa che[VarCac heKey]);
275     HTML.fAp pend("<p>& nbsp;</p>\ n");   275     HTML.fAp pend("<p>& nbsp;</p>\ n");
276     276  
277     return H TML.fGetBu ffer();   277     return H TML.fGetBu ffer();
278   }   278   }
279     279  
280   function   WWHIndex_H eadHTML()   280   function   WWHIndex_H eadHTML()
281   {   281   {
282     var  HTM L = new WW HStringBuf fer_Object ();   282     var  HTM L = new WW HStringBuf fer_Object ();
283     var  Max Level;   283     var  Max Level;
284     var  Lev el;   284     var  Lev el;
285     285  
286     // Gener ate style  section   286     // Gener ate style  section
287     //   287     //
288     HTML.fAp pend("<sty le type=\" text/css\" >\n");   288     HTML.fAp pend("<sty le type=\" text/css\" >\n");
289     HTML.fAp pend(" <!- -\n");   289     HTML.fAp pend(" <!- -\n");
290     HTML.fAp pend("  a. Section\n" );   290     HTML.fAp pend("  a. Section\n" );
291     HTML.fAp pend("  {\ n");   291     HTML.fAp pend("  {\ n");
292     HTML.fAp pend("     text-decor ation: non e;\n");   292     HTML.fAp pend("     text-decor ation: non e;\n");
293     HTML.fAp pend("     font-weigh t: bold;\n ");   293     HTML.fAp pend("     font-weigh t: bold;\n ");
294     HTML.fAp pend("  }\ n");   294     HTML.fAp pend("  }\ n");
295     HTML.fAp pend("  a: active\n") ;   295     HTML.fAp pend("  a: active\n") ;
296     HTML.fAp pend("  {\ n");   296     HTML.fAp pend("  {\ n");
297     HTML.fAp pend("     text-decor ation: non e;\n");   297     HTML.fAp pend("     text-decor ation: non e;\n");
298     HTML.fAp pend("     background -color: "  + WWHFrame .WWHJavaSc ript.mSett ings.mInde x.mHighlig htColor +  ";\n");   298     HTML.fAp pend("     background -color: "  + WWHFrame .WWHJavaSc ript.mSett ings.mInde x.mHighlig htColor +  ";\n");
299     HTML.fAp pend("  }\ n");   299     HTML.fAp pend("  }\ n");
300     HTML.fAp pend("  a: hover\n");   300     HTML.fAp pend("  a: hover\n");
301     HTML.fAp pend("  {\ n");   301     HTML.fAp pend("  {\ n");
302     HTML.fAp pend("     text-decor ation: und erline;\n" );   302     HTML.fAp pend("     text-decor ation: und erline;\n" );
303     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mEnabledC olor + ";\ n");   303     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mEnabledC olor + ";\ n");
304     HTML.fAp pend("  }\ n");   304     HTML.fAp pend("  }\ n");
305     HTML.fAp pend("  a\ n");   305     HTML.fAp pend("  a\ n");
306     HTML.fAp pend("  {\ n");   306     HTML.fAp pend("  {\ n");
307     HTML.fAp pend("     text-decor ation: non e;\n");   307     HTML.fAp pend("     text-decor ation: non e;\n");
308     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mEnabledC olor + ";\ n");   308     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mEnabledC olor + ";\ n");
309     HTML.fAp pend("  }\ n");   309     HTML.fAp pend("  }\ n");
310     HTML.fAp pend("  a. AnchorOnly \n");   310     HTML.fAp pend("  a. AnchorOnly \n");
311     HTML.fAp pend("  {\ n");   311     HTML.fAp pend("  {\ n");
312     HTML.fAp pend("     text-decor ation: non e;\n");   312     HTML.fAp pend("     text-decor ation: non e;\n");
313     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mDisabled Color + "; \n");   313     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mDisabled Color + "; \n");
314     HTML.fAp pend("  }\ n");   314     HTML.fAp pend("  }\ n");
315     HTML.fAp pend("  p\ n");   315     HTML.fAp pend("  p\ n");
316     HTML.fAp pend("  {\ n");   316     HTML.fAp pend("  {\ n");
317     HTML.fAp pend("     margin-top : 1pt;\n") ;   317     HTML.fAp pend("     margin-top : 1pt;\n") ;
318     HTML.fAp pend("     margin-bot tom: 1pt;\ n");   318     HTML.fAp pend("     margin-bot tom: 1pt;\ n");
319     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mDisabled Color + "; \n");   319     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mDisabled Color + "; \n");
320     HTML.fAp pend("     " + WWHFra me.WWHJava Script.mSe ttings.mIn dex.mFontS tyle + ";\ n");   320     HTML.fAp pend("     " + WWHFra me.WWHJava Script.mSe ttings.mIn dex.mFontS tyle + ";\ n");
321     HTML.fAp pend("  }\ n");   321     HTML.fAp pend("  }\ n");
322     322  
323     for (Max Level = th is.mMaxLev el + 1, Le vel = 0 ;  Level <= M axLevel ;  Level++)   323     for (Max Level = th is.mMaxLev el + 1, Le vel = 0 ;  Level <= M axLevel ;  Level++)
324     {   324     {
325       HTML.f Append("   p.l" + Lev el + "\n") ;   325       HTML.f Append("   p.l" + Lev el + "\n") ;
326       HTML.f Append("   {\n");   326       HTML.f Append("   {\n");
327       HTML.f Append("     margin-l eft: " + ( WWHFrame.W WHJavaScri pt.mSettin gs.mIndex. mIndent *  Level) + " pt;\n");   327       HTML.f Append("     margin-l eft: " + ( WWHFrame.W WHJavaScri pt.mSettin gs.mIndex. mIndent *  Level) + " pt;\n");
328       HTML.f Append("   }\n");   328       HTML.f Append("   }\n");
329     }   329     }
330     HTML.fAp pend(" --> \n");   330     HTML.fAp pend(" --> \n");
331     HTML.fAp pend("</st yle>\n");   331     HTML.fAp pend("</st yle>\n");
332     332  
333     return H TML.fGetBu ffer();   333     return H TML.fGetBu ffer();
334   }   334   }
335     335  
336   function   WWHIndex_S tartHTMLSe gments()   336   function   WWHIndex_S tartHTMLSe gments()
337   {   337   {
338     var  HTM L = new WW HStringBuf fer_Object ();   338     var  HTM L = new WW HStringBuf fer_Object ();
339     339  
340     340  
341     // Setup  iterator  for displa y   341     // Setup  iterator  for displa y
342     //   342     //
343     if (this .fThreshol dExceeded( ))   343     if (this .fThreshol dExceeded( ))
344     {   344     {
345       this.m Iterator.f Reset(this .mSectionI ndex);   345       this.m Iterator.f Reset(this .mSectionI ndex);
346     }   346     }
347     else   347     else
348     {   348     {
349       this.m Iterator.f Reset(-1);   349       this.m Iterator.f Reset(-1);
350     }   350     }
351     351  
352     // Defin e accessor  functions  to reduce  file size   352     // Defin e accessor  functions  to reduce  file size
353     //   353     //
354     HTML.fAp pend("<scr ipt type=\ "text/java script\" l anguage=\" JavaScript 1.2\">\n") ;   354     HTML.fAp pend("<scr ipt type=\ "text/java script\" l anguage=\" JavaScript 1.2\">\n") ;
355     HTML.fAp pend(" <!- -\n");   355     HTML.fAp pend(" <!- -\n");
356     HTML.fAp pend("  fu nction  fC (ParamEntr yInfo)\n") ;   356     HTML.fAp pend("  fu nction  fC (ParamEntr yInfo)\n") ;
357     HTML.fAp pend("  {\ n");   357     HTML.fAp pend("  {\ n");
358     HTML.fAp pend("     WWHFrame.W WHIndex.fC lickedEntr y(ParamEnt ryInfo);\n ");   358     HTML.fAp pend("     WWHFrame.W WHIndex.fC lickedEntr y(ParamEnt ryInfo);\n ");
359     HTML.fAp pend("  }\ n");   359     HTML.fAp pend("  }\ n");
360     HTML.fAp pend("\n") ;   360     HTML.fAp pend("\n") ;
361     HTML.fAp pend("  fu nction  fA (ParamEntr yInfo)\n") ;   361     HTML.fAp pend("  fu nction  fA (ParamEntr yInfo)\n") ;
362     HTML.fAp pend("  {\ n");   362     HTML.fAp pend("  {\ n");
363     HTML.fAp pend("     WWHFrame.W WHIndex.fC lickedSeeA lsoEntry(P aramEntryI nfo);\n");   363     HTML.fAp pend("     WWHFrame.W WHIndex.fC lickedSeeA lsoEntry(P aramEntryI nfo);\n");
364     HTML.fAp pend("  }\ n");   364     HTML.fAp pend("  }\ n");
365     HTML.fAp pend("\n") ;   365     HTML.fAp pend("\n") ;
366     HTML.fAp pend("  fu nction  fN ()\n");   366     HTML.fAp pend("  fu nction  fN ()\n");
367     HTML.fAp pend("  {\ n");   367     HTML.fAp pend("  {\ n");
368     HTML.fAp pend("     return fal se;\n");   368     HTML.fAp pend("     return fal se;\n");
369     HTML.fAp pend("  }\ n");   369     HTML.fAp pend("  }\ n");
370     HTML.fAp pend("\n") ;   370     HTML.fAp pend("\n") ;
371     HTML.fAp pend("  fu nction  fS (ParamEntr yID,\n");   371     HTML.fAp pend("  fu nction  fS (ParamEntr yID,\n");
372     HTML.fAp pend("                 ParamEven t)\n");   372     HTML.fAp pend("                 ParamEven t)\n");
373     HTML.fAp pend("  {\ n");   373     HTML.fAp pend("  {\ n");
374     HTML.fAp pend("     WWHFrame.W WHJavaScri pt.mPanels .mPopup.fS how(ParamE ntryID, Pa ramEvent); \n");   374     HTML.fAp pend("     WWHFrame.W WHJavaScri pt.mPanels .mPopup.fS how(ParamE ntryID, Pa ramEvent); \n");
375     HTML.fAp pend("  }\ n");   375     HTML.fAp pend("  }\ n");
376     HTML.fAp pend("\n") ;   376     HTML.fAp pend("\n") ;
377     HTML.fAp pend("  fu nction  fH ()\n");   377     HTML.fAp pend("  fu nction  fH ()\n");
378     HTML.fAp pend("  {\ n");   378     HTML.fAp pend("  {\ n");
379     HTML.fAp pend("     WWHFrame.W WHJavaScri pt.mPanels .mPopup.fH ide();\n") ;   379     HTML.fAp pend("     WWHFrame.W WHJavaScri pt.mPanels .mPopup.fH ide();\n") ;
380     HTML.fAp pend("  }\ n");   380     HTML.fAp pend("  }\ n");
381     HTML.fAp pend(" //  -->\n");   381     HTML.fAp pend(" //  -->\n");
382     HTML.fAp pend("</sc ript>\n");   382     HTML.fAp pend("</sc ript>\n");
383     383  
384     return H TML.fGetBu ffer();   384     return H TML.fGetBu ffer();
385   }   385   }
386     386  
387   function   WWHIndex_A dvanceHTML Segment()   387   function   WWHIndex_A dvanceHTML Segment()
388   {   388   {
389     var  Max HTMLSegmen tSize = WW HFrame.WWH JavaScript .mMaxHTMLS egmentSize ;   389     var  Max HTMLSegmen tSize = WW HFrame.WWH JavaScript .mMaxHTMLS egmentSize ;
390     var  mbA ccessible  = WWHFrame .WWHHelp.m bAccessibl e;   390     var  mbA ccessible  = WWHFrame .WWHHelp.m bAccessibl e;
391     var  Bas eEntryInfo  = "";   391     var  Bas eEntryInfo  = "";
392     var  Ent ry;   392     var  Ent ry;
393     var  Ent ryAnchorNa me;   393     var  Ent ryAnchorNa me;
394     var  Var Accessibil ityTitle =  "";   394     var  Var Accessibil ityTitle =  "";
395     var  Max Index;   395     var  Max Index;
396     var  Ind ex;   396     var  Ind ex;
397     var  Var ParentEntr y;   397     var  Var ParentEntr y;
398     var  Ent ryPrefix;   398     var  Ent ryPrefix;
399     var  Ent rySuffix;   399     var  Ent rySuffix;
400     var  Ent ryInfo;   400     var  Ent ryInfo;
401     401  
402     402  
403     // Add i ndex in to p entry to  entry inf o if Itera torScope ! = TopEntry   403     // Add i ndex in to p entry to  entry inf o if Itera torScope ! = TopEntry
404     //   404     //
405     if (this .fThreshol dExceeded( ))   405     if (this .fThreshol dExceeded( ))
406     {   406     {
407       BaseEn tryInfo +=  this.mSec tionIndex;   407       BaseEn tryInfo +=  this.mSec tionIndex;
408     }   408     }
409     409  
410     this.mHT MLSegment. fReset();   410     this.mHT MLSegment. fReset();
411     while (( this.mHTML Segment.fS ize() < Ma xHTMLSegme ntSize) &&   411     while (( this.mHTML Segment.fS ize() < Ma xHTMLSegme ntSize) &&
412            ( this.mIter ator.fAdva nce()))   412            ( this.mIter ator.fAdva nce()))
413     {   413     {
414       Entry  = this.mIt erator.mEn try;   414       Entry  = this.mIt erator.mEn try;
415     415  
416       // Ins ert breaks  between s ections   416       // Ins ert breaks  between s ections
417       //   417       //
418       if (En try.mbGrou p)   418       if (En try.mbGrou p)
419       {   419       {
420         // E mit spacin g, if nece ssary   420         // E mit spacin g, if nece ssary
421         //   421         //
422         if ( this.mHTML Segment.fS ize() == 0 )   422         if ( this.mHTML Segment.fS ize() == 0 )
423         {   423         {
424           //  No spacin g   424           //  No spacin g
425           //   425           //
426         }   426         }
427         else   427         else
428         {   428         {
429           //  Emit a sp ace   429           //  Emit a sp ace
430           //   430           //
431           th is.mHTMLSe gment.fApp end("<p>&n bsp;</p>\n ");   431           th is.mHTMLSe gment.fApp end("<p>&n bsp;</p>\n ");
432         }   432         }
433       }   433       }
434     434  
435       // Dis play the e ntry   435       // Dis play the e ntry
436       //   436       //
437     437  
438       // See  if entry  needs a na med anchor  target   438       // See  if entry  needs a na med anchor  target
439       //   439       //
440       if (ty peof(Entry .mSeeAlsoT argetName)  == "strin g")   440       if (ty peof(Entry .mSeeAlsoT argetName)  == "strin g")
441       {   441       {
442         Entr yAnchorNam e = " name =\"sa" + E ntry.mSeeA lsoTargetN ame + "\"" ;   442         Entr yAnchorNam e = " name =\"sa" + E ntry.mSeeA lsoTargetN ame + "\"" ;
443       }   443       }
444       else   444       else
445       {   445       {
446         Entr yAnchorNam e = "";   446         Entr yAnchorNam e = "";
447       }   447       }
448     448  
449       // Det ermine acc essibility  title   449       // Det ermine acc essibility  title
450       //   450       //
451       if (mb Accessible )   451       if (mb Accessible )
452       {   452       {
453         VarA ccessibili tyTitle =  "";   453         VarA ccessibili tyTitle =  "";
454         for  (MaxIndex  = this.mIt erator.mPa rentStack. length, In dex = 0 ;  Index < Ma xIndex ; I ndex++)   454         for  (MaxIndex  = this.mIt erator.mPa rentStack. length, In dex = 0 ;  Index < Ma xIndex ; I ndex++)
455         {   455         {
456           Va rParentEnt ry = this. mIterator. mParentSta ck[Index];   456           Va rParentEnt ry = this. mIterator. mParentSta ck[Index];
457     457  
458           if  ((VarPare ntEntry ==  this.mTop Entry) ||   458           if  ((VarPare ntEntry ==  this.mTop Entry) ||
459                (VarPare ntEntry.mb Group))   459                (VarPare ntEntry.mb Group))
460           {   460           {
461              // Nothing  to do   461              // Nothing  to do
462              //   462              //
463           }   463           }
464           el se   464           el se
465           {   465           {
466              VarAccessi bilityTitl e += VarPa rentEntry. mText + WW HFrame.WWH Help.mMess ages.mAcce ssibilityL istSeparat or + " ";   466              VarAccessi bilityTitl e += VarPa rentEntry. mText + WW HFrame.WWH Help.mMess ages.mAcce ssibilityL istSeparat or + " ";
467           }   467           }
468         }   468         }
469     469  
470         VarA ccessibili tyTitle +=  Entry.mTe xt;   470         VarA ccessibili tyTitle +=  Entry.mTe xt;
471     471  
472         VarA ccessibili tyTitle =  WWHStringU tilities_E scapeHTML( VarAccessi bilityTitl e);   472         VarA ccessibili tyTitle =  WWHStringU tilities_E scapeHTML( VarAccessi bilityTitl e);
473     473  
474         VarA ccessibili tyTitle =  " title=\" " + VarAcc essibility Title + "\ "";   474         VarA ccessibili tyTitle =  " title=\" " + VarAcc essibility Title + "\ "";
475       }   475       }
476     476  
477       // Det ermine ent ry type   477       // Det ermine ent ry type
478       //   478       //
479       if (En try.mbGrou p)   479       if (En try.mbGrou p)
480       {   480       {
481         Entr yPrefix =  "<b><a cla ss=\"Secti on\" name= \"section"  + Entry.m SectionInd ex + "\">" ;   481         Entr yPrefix =  "<b><a cla ss=\"Secti on\" name= \"section"  + Entry.m SectionInd ex + "\">" ;
482         Entr ySuffix =  "</a></b>" ;   482         Entr ySuffix =  "</a></b>" ;
483       }   483       }
484       else i f (typeof( Entry.mSee AlsoKey) = = "string" )   484       else i f (typeof( Entry.mSee AlsoKey) = = "string" )
485       {   485       {
486         if ( typeof(Ent ry.mSeeAls oTargetNam e) == "str ing")   486         if ( typeof(Ent ry.mSeeAls oTargetNam e) == "str ing")
487         {   487         {
488           //  Use posit ion stack  for link i nfo   488           //  Use posit ion stack  for link i nfo
489           //   489           //
490           En tryInfo =  BaseEntryI nfo;   490           En tryInfo =  BaseEntryI nfo;
491           fo r (MaxInde x = this.m Iterator.m PositionSt ack.length , Index =  0 ; Index  < MaxIndex  ; Index++ )   491           fo r (MaxInde x = this.m Iterator.m PositionSt ack.length , Index =  0 ; Index  < MaxIndex  ; Index++ )
492           {   492           {
493              if (EntryI nfo.length  > 0)   493              if (EntryI nfo.length  > 0)
494              {   494              {
495                EntryInf o += ":";   495                EntryInf o += ":";
496              }   496              }
497              EntryInfo  += this.mI terator.mP ositionSta ck[Index];   497              EntryInfo  += this.mI terator.mP ositionSta ck[Index];
498           }   498           }
499     499  
500           En tryPrefix  = "<i><a h ref=\"java script:fA( '" + Entry Info + "') ;\"" + thi s.fGetPopu pAction(En tryInfo) +  VarAccess ibilityTit le + ">";   500           En tryPrefix  = "<i><a h ref=\"java script:fA( '" + Entry Info + "') ;\"" + thi s.fGetPopu pAction(En tryInfo) +  VarAccess ibilityTit le + ">";
501           En trySuffix  = "</a></i >";   501           En trySuffix  = "</a></i >";
502         }   502         }
503         else   503         else
504         {   504         {
505           En tryPrefix  = "<i>";   505           En tryPrefix  = "<i>";
506           En trySuffix  = "</i>";   506           En trySuffix  = "</i>";
507         }   507         }
508       }   508       }
509       else i f (Entry.m BookLinks  != null)   509       else i f (Entry.m BookLinks  != null)
510       {   510       {
511         // U se positio n stack fo r link inf o   511         // U se positio n stack fo r link inf o
512         //   512         //
513         Entr yInfo = Ba seEntryInf o;   513         Entr yInfo = Ba seEntryInf o;
514         for  (MaxIndex  = this.mIt erator.mPo sitionStac k.length,  Index = 0  ; Index <  MaxIndex ;  Index++)   514         for  (MaxIndex  = this.mIt erator.mPo sitionStac k.length,  Index = 0  ; Index <  MaxIndex ;  Index++)
515         {   515         {
516           if  (EntryInf o.length >  0)   516           if  (EntryInf o.length >  0)
517           {   517           {
518              EntryInfo  += ":";   518              EntryInfo  += ":";
519           }   519           }
520           En tryInfo +=  this.mIte rator.mPos itionStack [Index];   520           En tryInfo +=  this.mIte rator.mPos itionStack [Index];
521         }   521         }
522     522  
523         Entr yPrefix =  "<a" + Ent ryAnchorNa me + " hre f=\"javasc ript:fC('"  + EntryIn fo + "');\ "" + this. fGetPopupA ction(Entr yInfo) + V arAccessib ilityTitle  + ">";   523         Entr yPrefix =  "<a" + Ent ryAnchorNa me + " hre f=\"javasc ript:fC('"  + EntryIn fo + "');\ "" + this. fGetPopupA ction(Entr yInfo) + V arAccessib ilityTitle  + ">";
524         Entr ySuffix =  "</a>";   524         Entr ySuffix =  "</a>";
525       }   525       }
526       else i f (EntryAn chorName.l ength > 0)   526       else i f (EntryAn chorName.l ength > 0)
527       {   527       {
528         Entr yPrefix =  "<a class= \"AnchorOn ly\"" + En tryAnchorN ame + VarA ccessibili tyTitle +  " href=\"j avascript: fN();\">";   528         Entr yPrefix =  "<a class= \"AnchorOn ly\"" + En tryAnchorN ame + VarA ccessibili tyTitle +  " href=\"j avascript: fN();\">";
529         Entr ySuffix =  "</a>";   529         Entr ySuffix =  "</a>";
530       }   530       }
531       else   531       else
532       {   532       {
533         Entr yPrefix =  "";   533         Entr yPrefix =  "";
534         Entr ySuffix =  "";   534         Entr ySuffix =  "";
535       }   535       }
536     536  
537       this.m HTMLSegmen t.fAppend( "<p class= l" + (this .mIterator .mPosition Stack.leng th - 1) +  "><nobr>"  + EntryPre fix + Entr y.mText +  EntrySuffi x + "</nob r></p>\n") ;   537       this.m HTMLSegmen t.fAppend( "<p class= l" + (this .mIterator .mPosition Stack.leng th - 1) +  "><nobr>"  + EntryPre fix + Entr y.mText +  EntrySuffi x + "</nob r></p>\n") ;
538     }   538     }
539     539  
540     return ( this.mHTML Segment.fS ize() > 0) ;   540     return ( this.mHTML Segment.fS ize() > 0) ;
541   }   541   }
542     542  
543   function   WWHIndex_G etHTMLSegm ent()   543   function   WWHIndex_G etHTMLSegm ent()
544   {   544   {
545     return t his.mHTMLS egment.fGe tBuffer();   545     return t his.mHTMLS egment.fGe tBuffer();
546   }   546   }
547     547  
548   function   WWHIndex_E ndHTMLSegm ents()   548   function   WWHIndex_E ndHTMLSegm ents()
549   {   549   {
550     return " ";   550     return " ";
551   }   551   }
552     552  
553   function   WWHIndex_P anelNaviga tionLoaded ()   553   function   WWHIndex_P anelNaviga tionLoaded ()
554   {   554   {
555     // Resto re focus   555     // Resto re focus
556     //   556     //
557     WWHFrame .WWHHelp.f Focus("WWH PanelNavig ationFrame ", "in" +  this.mSect ionIndex);   557     WWHFrame .WWHHelp.f Focus("WWH PanelNavig ationFrame ", "in" +  this.mSect ionIndex);
558   }   558   }
559     559  
560   function   WWHIndex_P anelViewLo aded()   560   function   WWHIndex_P anelViewLo aded()
561   {   561   {
562   }   562   }
563     563  
564   function   WWHIndex_H overTextTr anslate(Pa ramEntryIn fo)   564   function   WWHIndex_H overTextTr anslate(Pa ramEntryIn fo)
565   {   565   {
566     var  Ent ry;   566     var  Ent ry;
567     567  
568     568  
569     // Locat e specifie d entry   569     // Locat e specifie d entry
570     //   570     //
571     Entry =  this.fGetE ntry(Param EntryInfo) ;   571     Entry =  this.fGetE ntry(Param EntryInfo) ;
572     572  
573     return E ntry.mText ;   573     return E ntry.mText ;
574   }   574   }
575     575  
576   function   WWHIndex_H overTextFo rmat(Param Width,   576   function   WWHIndex_H overTextFo rmat(Param Width,
577                                         Param TextID,   577                                         Param TextID,
578                                         Param Text)   578                                         Param Text)
579   {   579   {
580     var  For mattedText    = "";   580     var  For mattedText    = "";
581     var  For egroundCol or = WWHFr ame.WWHJav aScript.mS ettings.mH overText.m Foreground Color;   581     var  For egroundCol or = WWHFr ame.WWHJav aScript.mS ettings.mH overText.m Foreground Color;
582     var  Bac kgroundCol or = WWHFr ame.WWHJav aScript.mS ettings.mH overText.m Background Color;   582     var  Bac kgroundCol or = WWHFr ame.WWHJav aScript.mS ettings.mH overText.m Background Color;
583     var  Bor derColor      = WWHFr ame.WWHJav aScript.mS ettings.mH overText.m BorderColo r;   583     var  Bor derColor      = WWHFr ame.WWHJav aScript.mS ettings.mH overText.m BorderColo r;
584     var  Ima geDir         = WWHFr ame.WWHHel p.mHelpURL Prefix + " wwhelp/wwh impl/commo n/images";   584     var  Ima geDir         = WWHFr ame.WWHHel p.mHelpURL Prefix + " wwhelp/wwh impl/commo n/images";
585     var  Req Spacer1w2h    = "<img  src=\"" +  ImageDir  + "/spc1w2 h.gif\" wi dth=1 heig ht=2 alt=\ "\">";   585     var  Req Spacer1w2h    = "<img  src=\"" +  ImageDir  + "/spc1w2 h.gif\" wi dth=1 heig ht=2 alt=\ "\">";
586     var  Req Spacer2w1h    = "<img  src=\"" +  ImageDir  + "/spc2w1 h.gif\" wi dth=2 heig ht=1 alt=\ "\">";   586     var  Req Spacer2w1h    = "<img  src=\"" +  ImageDir  + "/spc2w1 h.gif\" wi dth=2 heig ht=1 alt=\ "\">";
587     var  Req Spacer1w7h    = "<img  src=\"" +  ImageDir  + "/spc1w7 h.gif\" wi dth=1 heig ht=7 alt=\ "\">";   587     var  Req Spacer1w7h    = "<img  src=\"" +  ImageDir  + "/spc1w7 h.gif\" wi dth=1 heig ht=7 alt=\ "\">";
588     var  Req Spacer5w1h    = "<img  src=\"" +  ImageDir  + "/spc5w1 h.gif\" wi dth=5 heig ht=1 alt=\ "\">";   588     var  Req Spacer5w1h    = "<img  src=\"" +  ImageDir  + "/spc5w1 h.gif\" wi dth=5 heig ht=1 alt=\ "\">";
589     var  Spa cer1w2h       = ReqSp acer1w2h;   589     var  Spa cer1w2h       = ReqSp acer1w2h;
590     var  Spa cer2w1h       = ReqSp acer2w1h;   590     var  Spa cer2w1h       = ReqSp acer2w1h;
591     var  Spa cer1w7h       = ReqSp acer1w7h;   591     var  Spa cer1w7h       = ReqSp acer1w7h;
592     var  Spa cer5w1h       = ReqSp acer5w1h;   592     var  Spa cer5w1h       = ReqSp acer5w1h;
593     var  Sty leAtttribu te;   593     var  Sty leAtttribu te;
594     594  
595     595  
596     // Set s tyle attri bute to in sure small  image hei ght   596     // Set s tyle attri bute to in sure small  image hei ght
597     //   597     //
598     StyleAtt ribute = "  style=\"f ont-size:  1px; line- height: 1p x;\"";   598     StyleAtt ribute = "  style=\"f ont-size:  1px; line- height: 1p x;\"";
599     599  
600     Formatte dText += " <table wid th=\"" + P aramWidth  + "\" bord er=0 cells pacing=0 c ellpadding =0 bgcolor =\"" + Bac kgroundCol or + "\">" ;   600     Formatte dText += " <table wid th=\"" + P aramWidth  + "\" bord er=0 cells pacing=0 c ellpadding =0 bgcolor =\"" + Bac kgroundCol or + "\">" ;
601     Formatte dText += "  <tr>";   601     Formatte dText += "  <tr>";
602     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=2 col span=5 bgc olor=\"" +  BorderCol or + "\">"  + Spacer1 w2h + "</t d>";   602     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=2 col span=5 bgc olor=\"" +  BorderCol or + "\">"  + Spacer1 w2h + "</t d>";
603     Formatte dText += "  </tr>";   603     Formatte dText += "  </tr>";
604     604  
605     Formatte dText += "  <tr>";   605     Formatte dText += "  <tr>";
606     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=7 bgc olor=\"" +  BorderCol or + "\">"  + Spacer2 w1h + "</t d>";   606     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=7 bgc olor=\"" +  BorderCol or + "\">"  + Spacer2 w1h + "</t d>";
607     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=7 col span=3>" +  Spacer1w7 h + "</td> ";   607     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=7 col span=3>" +  Spacer1w7 h + "</td> ";
608     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=7 bgc olor=\"" +  BorderCol or + "\">"  + Spacer2 w1h + "</t d>";   608     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=7 bgc olor=\"" +  BorderCol or + "\">"  + Spacer2 w1h + "</t d>";
609     Formatte dText += "  </tr>";   609     Formatte dText += "  </tr>";
610     610  
611     Formatte dText += "  <tr>";   611     Formatte dText += "  <tr>";
612     Formatte dText += "   <td bgco lor=\"" +  BorderColo r + "\">"  + ReqSpace r2w1h + "< /td>";   612     Formatte dText += "   <td bgco lor=\"" +  BorderColo r + "\">"  + ReqSpace r2w1h + "< /td>";
613     Formatte dText += "   <td>" +  ReqSpacer5 w1h + "</t d>";   613     Formatte dText += "   <td>" +  ReqSpacer5 w1h + "</t d>";
614     Formatte dText += "   <td widt h=\"100%\"  id=\"" +  ParamTextI D + "\" st yle=\"colo r: " + For egroundCol or + " ; "  + WWHFram e.WWHJavaS cript.mSet tings.mHov erText.mFo ntStyle +  "\">" + Pa ramText +  "</td>";   614     Formatte dText += "   <td widt h=\"100%\"  id=\"" +  ParamTextI D + "\" st yle=\"colo r: " + For egroundCol or + " ; "  + WWHFram e.WWHJavaS cript.mSet tings.mHov erText.mFo ntStyle +  "\">" + Pa ramText +  "</td>";
615     Formatte dText += "   <td>" +  ReqSpacer5 w1h + "</t d>";   615     Formatte dText += "   <td>" +  ReqSpacer5 w1h + "</t d>";
616     Formatte dText += "   <td bgco lor=\"" +  BorderColo r + "\">"  + ReqSpace r2w1h + "< /td>";   616     Formatte dText += "   <td bgco lor=\"" +  BorderColo r + "\">"  + ReqSpace r2w1h + "< /td>";
617     Formatte dText += "  </tr>";   617     Formatte dText += "  </tr>";
618     618  
619     Formatte dText += "  <tr>";   619     Formatte dText += "  <tr>";
620     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=7 bgc olor=\"" +  BorderCol or + "\">"  + Spacer2 w1h + "</t d>";   620     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=7 bgc olor=\"" +  BorderCol or + "\">"  + Spacer2 w1h + "</t d>";
621     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=7 col span=3>" +  Spacer1w7 h + "</td> ";   621     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=7 col span=3>" +  Spacer1w7 h + "</td> ";
622     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=7 bgc olor=\"" +  BorderCol or + "\">"  + Spacer2 w1h + "</t d>";   622     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=7 bgc olor=\"" +  BorderCol or + "\">"  + Spacer2 w1h + "</t d>";
623     Formatte dText += "  </tr>";   623     Formatte dText += "  </tr>";
624     624  
625     Formatte dText += "  <tr>";   625     Formatte dText += "  <tr>";
626     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=2 col span=5 bgc olor=\"" +  BorderCol or + "\">"  + Spacer1 w2h + "</t d>";   626     Formatte dText += "   <td" + S tyleAttrib ute + " he ight=2 col span=5 bgc olor=\"" +  BorderCol or + "\">"  + Spacer1 w2h + "</t d>";
627     Formatte dText += "  </tr>";   627     Formatte dText += "  </tr>";
628     Formatte dText += " </table>";   628     Formatte dText += " </table>";
629     629  
630     return F ormattedTe xt;   630     return F ormattedTe xt;
631   }   631   }
632     632  
633   function   WWHIndex_G etPopupAct ion(ParamE ntryInfo)   633   function   WWHIndex_G etPopupAct ion(ParamE ntryInfo)
634   {   634   {
635     var  Pop upAction =  "";   635     var  Pop upAction =  "";
636     636  
637     637  
638     if (WWHF rame.WWHJa vaScript.m Settings.m HoverText. mbEnabled)   638     if (WWHF rame.WWHJa vaScript.m Settings.m HoverText. mbEnabled)
639     {   639     {
640       PopupA ction += "  onmouseov er=\"fS('"  + ParamEn tryInfo +  "', " + th is.mEventS tring + ") ;\"";   640       PopupA ction += "  onmouseov er=\"fS('"  + ParamEn tryInfo +  "', " + th is.mEventS tring + ") ;\"";
641       PopupA ction += "  onmouseou t=\"fH();\ "";   641       PopupA ction += "  onmouseou t=\"fH();\ "";
642     }   642     }
643     643  
644     return P opupAction ;   644     return P opupAction ;
645   }   645   }
646     646  
647   function   WWHIndex_T hresholdEx ceeded()   647   function   WWHIndex_T hresholdEx ceeded()
648   {   648   {
649     if (this .mbThresho ldExceeded  == null)   649     if (this .mbThresho ldExceeded  == null)
650     {   650     {
651       if ((W WHFrame.WW HHelp.mbAc cessible)  ||   651       if ((W WHFrame.WW HHelp.mbAc cessible)  ||
652           (( this.mOpti ons.mThres hold > 0)  &&   652           (( this.mOpti ons.mThres hold > 0)  &&
653            ( this.mEntr yCount > t his.mOptio ns.mThresh old)))   653            ( this.mEntr yCount > t his.mOptio ns.mThresh old)))
654       {   654       {
655         this .mbThresho ldExceeded  = true;   655         this .mbThresho ldExceeded  = true;
656       }   656       }
657       else   657       else
658       {   658       {
659         this .mbThresho ldExceeded  = false;   659         this .mbThresho ldExceeded  = false;
660       }   660       }
661     }   661     }
662     662  
663     return t his.mbThre sholdExcee ded;   663     return t his.mbThre sholdExcee ded;
664   }   664   }
665     665  
666   function   WWHIndex_G etSectionN avigation( )   666   function   WWHIndex_G etSectionN avigation( )
667   {   667   {
668     var  Sec tionNavHTM L = "";   668     var  Sec tionNavHTM L = "";
669     var  Sec tionArray;   669     var  Sec tionArray;
670     var  Max Index;   670     var  Max Index;
671     var  Ind ex;   671     var  Ind ex;
672     672  
673     673  
674     SectionN avHTML +=  "<p class= \"navigati on\">";   674     SectionN avHTML +=  "<p class= \"navigati on\">";
675     675  
676     // Calcu late secti on selecti on   676     // Calcu late secti on selecti on
677     //   677     //
678     SectionA rray = thi s.mTopEntr y.mChildre nSortArray ;   678     SectionA rray = thi s.mTopEntr y.mChildre nSortArray ;
679     for (Max Index = Se ctionArray .length, I ndex = 0 ;  Index < M axIndex ;  Index++)   679     for (Max Index = Se ctionArray .length, I ndex = 0 ;  Index < M axIndex ;  Index++)
680     {   680     {
681       // Add  spacers i f necessar y   681       // Add  spacers i f necessar y
682       //   682       //
683       if (In dex > 0)   683       if (In dex > 0)
684       {   684       {
685         Sect ionNavHTML  += this.m Options.mS eperator;   685         Sect ionNavHTML  += this.m Options.mS eperator;
686       }   686       }
687     687  
688       // Dis play secti on with or  without l ink as nec essary   688       // Dis play secti on with or  without l ink as nec essary
689       //   689       //
690       if ((t his.fThres holdExceed ed()) &&   690       if ((t his.fThres holdExceed ed()) &&
691           (I ndex == th is.mSectio nIndex))   // Current ly being d isplayed   691           (I ndex == th is.mSectio nIndex))   // Current ly being d isplayed
692       {   692       {
693         Sect ionNavHTML  += "<a cl ass=\"sele cted\" nam e=\"in" +  Index + "\ " href=\"j avascript: void(0);\" >" + Secti onArray[In dex].mText  + "</a>";   693         Sect ionNavHTML  += "<a cl ass=\"sele cted\" nam e=\"in" +  Index + "\ " href=\"j avascript: void(0);\" >" + Secti onArray[In dex].mText  + "</a>";
694       }   694       }
695       else i f ((Sectio nArray[Ind ex].mChild ren == nul l) &&          // Alw ays displa y group   695       else i f ((Sectio nArray[Ind ex].mChild ren == nul l) &&          // Alw ays displa y group
696                 (Sectio nArray[Ind ex].mChild renSortArr ay == null ))  // Sor tArray nul l before s ort, hash  null after   696                 (Sectio nArray[Ind ex].mChild renSortArr ay == null ))  // Sor tArray nul l before s ort, hash  null after
697       {   697       {
698         Sect ionNavHTML  += Sectio nArray[Ind ex].mText;   698         Sect ionNavHTML  += Sectio nArray[Ind ex].mText;
699       }   699       }
700       else   700       else
701       {   701       {
702         Sect ionNavHTML  += "<a cl ass=\"enab led\" name =\"in" + I ndex + "\"  href=\"ja vascript:f D(" + Inde x + ");\"> " + Sectio nArray[Ind ex].mText  + "</a>";   702         Sect ionNavHTML  += "<a cl ass=\"enab led\" name =\"in" + I ndex + "\"  href=\"ja vascript:f D(" + Inde x + ");\"> " + Sectio nArray[Ind ex].mText  + "</a>";
703       }   703       }
704     }   704     }
705     705  
706     SectionN avHTML +=  "</p>";   706     SectionN avHTML +=  "</p>";
707     707  
708     return S ectionNavH TML;   708     return S ectionNavH TML;
709   }   709   }
710     710  
711   function   WWHIndex_D isplaySect ion(ParamS ectionInde x)   711   function   WWHIndex_D isplaySect ion(ParamS ectionInde x)
712   {   712   {
713     // Set s ection   713     // Set s ection
714     //   714     //
715     this.mSe ctionIndex  = ParamSe ctionIndex ;   715     this.mSe ctionIndex  = ParamSe ctionIndex ;
716     716  
717     if (this .fThreshol dExceeded( ))   717     if (this .fThreshol dExceeded( ))
718     {   718     {
719       // Rel oad panel   719       // Rel oad panel
720       //   720       //
721       WWHFra me.WWHJava Script.mPa nels.fClea rScrollPos ition();   721       WWHFra me.WWHJava Script.mPa nels.fClea rScrollPos ition();
722       WWHFra me.WWHJava Script.mPa nels.fRelo adPanel();   722       WWHFra me.WWHJava Script.mPa nels.fRelo adPanel();
723     }   723     }
724     else   724     else
725     {   725     {
726       // Foc us current  section   726       // Foc us current  section
727       //   727       //
728       WWHFra me.WWHHelp .fFocus("W WHPanelNav igationFra me", "in"  + this.mSe ctionIndex );   728       WWHFra me.WWHHelp .fFocus("W WHPanelNav igationFra me", "in"  + this.mSe ctionIndex );
729     729  
730       // Who le index a lready vis ible, just  jump to t he specifi ed entry   730       // Who le index a lready vis ible, just  jump to t he specifi ed entry
731       //   731       //
732       this.m PanelAncho r = "secti on" + this .mSectionI ndex;   732       this.m PanelAncho r = "secti on" + this .mSectionI ndex;
733     733  
734       // Wor karound fo r IE probl ems   734       // Wor karound fo r IE probl ems
735       //   735       //
736       if (WW HFrame.WWH Browser.mb SupportsFo cus)   736       if (WW HFrame.WWH Browser.mb SupportsFo cus)
737       {   737       {
738         if ( WWHFrame.W WHBrowser. mBrowser = = 2)  // S horthand f or IE   738         if ( WWHFrame.W WHBrowser. mBrowser = = 2)  // S horthand f or IE
739         {   739         {
740           WW HFrame.WWH Browser.mb SupportsFo cus = fals e;   740           WW HFrame.WWH Browser.mb SupportsFo cus = fals e;
741     741  
742           WW HFrame.WWH JavaScript .mPanels.f JumpToAnch or();   742           WW HFrame.WWH JavaScript .mPanels.f JumpToAnch or();
743     743  
744           WW HFrame.WWH Browser.mb SupportsFo cus = true ;   744           WW HFrame.WWH Browser.mb SupportsFo cus = true ;
745         }   745         }
746       }   746       }
747     747  
748       WWHFra me.WWHJava Script.mPa nels.fJump ToAnchor() ;   748       WWHFra me.WWHJava Script.mPa nels.fJump ToAnchor() ;
749     }   749     }
750   }   750   }
751     751  
752   function   WWHIndex_S electionLi stHeadHTML ()   752   function   WWHIndex_S electionLi stHeadHTML ()
753   {   753   {
754     var  HTM L = new WW HStringBuf fer_Object ();   754     var  HTM L = new WW HStringBuf fer_Object ();
755     var  Lev el;   755     var  Lev el;
756     756  
757     757  
758     HTML.fAp pend("<sty le type=\" text/css\" >\n");   758     HTML.fAp pend("<sty le type=\" text/css\" >\n");
759     HTML.fAp pend(" <!- -\n");   759     HTML.fAp pend(" <!- -\n");
760     HTML.fAp pend("  a\ n");   760     HTML.fAp pend("  a\ n");
761     HTML.fAp pend("  {\ n");   761     HTML.fAp pend("  {\ n");
762     HTML.fAp pend("     text-decor ation: non e;\n");   762     HTML.fAp pend("     text-decor ation: non e;\n");
763     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mEnabledC olor + ";\ n");   763     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mEnabledC olor + ";\ n");
764     HTML.fAp pend("  }\ n");   764     HTML.fAp pend("  }\ n");
765     HTML.fAp pend("  p\ n");   765     HTML.fAp pend("  p\ n");
766     HTML.fAp pend("  {\ n");   766     HTML.fAp pend("  {\ n");
767     HTML.fAp pend("     margin-top : 1pt;\n") ;   767     HTML.fAp pend("     margin-top : 1pt;\n") ;
768     HTML.fAp pend("     margin-bot tom: 1pt;\ n");   768     HTML.fAp pend("     margin-bot tom: 1pt;\ n");
769     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mDisabled Color + "; \n");   769     HTML.fAp pend("     color: " +  WWHFrame. WWHJavaScr ipt.mSetti ngs.mIndex .mDisabled Color + "; \n");
770     HTML.fAp pend("     " + WWHFra me.WWHJava Script.mSe ttings.mIn dex.mFontS tyle + ";\ n");   770     HTML.fAp pend("     " + WWHFra me.WWHJava Script.mSe ttings.mIn dex.mFontS tyle + ";\ n");
771     HTML.fAp pend("  }\ n");   771     HTML.fAp pend("  }\ n");
772     for (Lev el = 1 ; L evel < 3 ;  Level++)   772     for (Lev el = 1 ; L evel < 3 ;  Level++)
773     {   773     {
774       HTML.f Append("   p.l" + Lev el + "\n") ;   774       HTML.f Append("   p.l" + Lev el + "\n") ;
775       HTML.f Append("   {\n");   775       HTML.f Append("   {\n");
776       HTML.f Append("     margin-l eft: " + ( WWHFrame.W WHJavaScri pt.mSettin gs.mIndex. mIndent *  Level) + " pt;\n");   776       HTML.f Append("     margin-l eft: " + ( WWHFrame.W WHJavaScri pt.mSettin gs.mIndex. mIndent *  Level) + " pt;\n");
777       HTML.f Append("   }\n");   777       HTML.f Append("   }\n");
778     }   778     }
779     HTML.fAp pend("  h2 \n");   779     HTML.fAp pend("  h2 \n");
780     HTML.fAp pend("  {\ n");   780     HTML.fAp pend("  {\ n");
781     HTML.fAp pend("     " + WWHFra me.WWHJava Script.mSe ttings.mIn dex.mFontS tyle + ";\ n");   781     HTML.fAp pend("     " + WWHFra me.WWHJava Script.mSe ttings.mIn dex.mFontS tyle + ";\ n");
782     HTML.fAp pend("  }\ n");   782     HTML.fAp pend("  }\ n");
783     HTML.fAp pend(" --> \n");   783     HTML.fAp pend(" --> \n");
784     HTML.fAp pend("</st yle>\n");   784     HTML.fAp pend("</st yle>\n");
785     785  
786     return H TML.fGetBu ffer();   786     return H TML.fGetBu ffer();
787   }   787   }
788     788  
789   function   WWHIndex_S electionLi stBodyHTML ()   789   function   WWHIndex_S electionLi stBodyHTML ()
790   {   790   {
791     var  HTM L = new WW HStringBuf fer_Object ();   791     var  HTM L = new WW HStringBuf fer_Object ();
792     var  Boo kList = WW HFrame.WWH Help.mBook s.mBookLis t;   792     var  Boo kList = WW HFrame.WWH Help.mBook s.mBookLis t;
793     var  Ent ryClass;   793     var  Ent ryClass;
794     var  Max BookIndex;   794     var  Max BookIndex;
795     var  Boo kIndex;   795     var  Boo kIndex;
796     var  Boo kListEntry ;   796     var  Boo kListEntry ;
797     var  Lin kArray;   797     var  Lin kArray;
798     var  Max LinkIndex;   798     var  Max LinkIndex;
799     var  Lin kIndex;   799     var  Lin kIndex;
800     var  Par ts;   800     var  Par ts;
801     var  Pre vLinkFileI ndex;   801     var  Pre vLinkFileI ndex;
802     var  Lin kFileIndex ;   802     var  Lin kFileIndex ;
803     var  Lin kAnchor;   803     var  Lin kAnchor;
804     var  Var Accessibil ityTitle;   804     var  Var Accessibil ityTitle;
805     var  Num beredLinkC ounter;   805     var  Num beredLinkC ounter;
806     var  Doc umentURL;   806     var  Doc umentURL;
807     807  
808     808  
809     if (this .mClickedE ntry != nu ll)   809     if (this .mClickedE ntry != nu ll)
810     {   810     {
811       // Dis play multi ple entry  message   811       // Dis play multi ple entry  message
812       //   812       //
813       HTML.f Append("<h 2>");   813       HTML.f Append("<h 2>");
814       HTML.f Append(WWH Frame.WWHJ avaScript. mMessages. mIndexSele ctMessage1  + " ");   814       HTML.f Append(WWH Frame.WWHJ avaScript. mMessages. mIndexSele ctMessage1  + " ");
815       HTML.f Append(WWH Frame.WWHJ avaScript. mMessages. mIndexSele ctMessage2 );   815       HTML.f Append(WWH Frame.WWHJ avaScript. mMessages. mIndexSele ctMessage2 );
816       HTML.f Append("</ h2>\n");   816       HTML.f Append("</ h2>\n");
817     817  
818       // Dis play text  of entry c licked   818       // Dis play text  of entry c licked
819       //   819       //
820       HTML.f Append("<p ><b>" + th is.mClicke dEntry.mTe xt + "</b> </p>\n");   820       HTML.f Append("<p ><b>" + th is.mClicke dEntry.mTe xt + "</b> </p>\n");
821     821  
822       // Det ermine lev el at whic h to displ ay entries   822       // Det ermine lev el at whic h to displ ay entries
823       //   823       //
824       if (Bo okList.len gth == 1)   824       if (Bo okList.len gth == 1)
825       {   825       {
826         Entr yClass = " l1";   826         Entr yClass = " l1";
827       }   827       }
828       else   828       else
829       {   829       {
830         Entr yClass = " l2";   830         Entr yClass = " l2";
831       }   831       }
832     832  
833       // Dis play each  book's lin k for this  entry   833       // Dis play each  book's lin k for this  entry
834       //   834       //
835       for (M axBookInde x = BookLi st.length,  BookIndex  = 0 ; Boo kIndex < M axBookInde x ; BookIn dex++)   835       for (M axBookInde x = BookLi st.length,  BookIndex  = 0 ; Boo kIndex < M axBookInde x ; BookIn dex++)
836       {   836       {
837         if ( typeof(thi s.mClicked Entry.mBoo kLinks[Boo kIndex]) ! = "undefin ed")   837         if ( typeof(thi s.mClicked Entry.mBoo kLinks[Boo kIndex]) ! = "undefin ed")
838         {   838         {
839           Bo okListEntr y = BookLi st[BookInd ex];   839           Bo okListEntr y = BookLi st[BookInd ex];
840     840  
841           //  Write the  book's ti tle, if ne cessary   841           //  Write the  book's ti tle, if ne cessary
842           //   842           //
843           if  (BookList .length >  1)   843           if  (BookList .length >  1)
844           {   844           {
845              HTML.fAppe nd("<p>&nb sp;</p>\n" );   845              HTML.fAppe nd("<p>&nb sp;</p>\n" );
846              HTML.fAppe nd("<p cla ss=\"l1\"> <nobr><b>"  + BookLis tEntry.mTi tle + "</b >");   846              HTML.fAppe nd("<p cla ss=\"l1\"> <nobr><b>"  + BookLis tEntry.mTi tle + "</b >");
847           }   847           }
848     848  
849           //  Sort link  array to  group file s with anc hors   849           //  Sort link  array to  group file s with anc hors
850           //   850           //
851           //  Use for l oop to cop y entries  to workaro und bug/pr oblem in I E 5.0 on W indows   851           //  Use for l oop to cop y entries  to workaro und bug/pr oblem in I E 5.0 on W indows
852           //   852           //
853           Li nkArray =  new Array( );   853           Li nkArray =  new Array( );
854           fo r (MaxLink Index = th is.mClicke dEntry.mBo okLinks[Bo okIndex].l ength, Lin kIndex = 0  ; LinkInd ex < MaxLi nkIndex ;  LinkIndex+ +)   854           fo r (MaxLink Index = th is.mClicke dEntry.mBo okLinks[Bo okIndex].l ength, Lin kIndex = 0  ; LinkInd ex < MaxLi nkIndex ;  LinkIndex+ +)
855           {   855           {
856              LinkArray[ LinkIndex]  = this.mC lickedEntr y.mBookLin ks[BookInd ex][LinkIn dex];   856              LinkArray[ LinkIndex]  = this.mC lickedEntr y.mBookLin ks[BookInd ex][LinkIn dex];
857           }   857           }
858           Li nkArray =  LinkArray. sort();   858           Li nkArray =  LinkArray. sort();
859     859  
860           //  Now displ ay file li nks   860           //  Now displ ay file li nks
861           //   861           //
862           Pr evLinkFile Index = nu ll;   862           Pr evLinkFile Index = nu ll;
863           fo r (MaxLink Index = Li nkArray.le ngth, Link Index = 0  ; LinkInde x < MaxLin kIndex ; L inkIndex++ )   863           fo r (MaxLink Index = Li nkArray.le ngth, Link Index = 0  ; LinkInde x < MaxLin kIndex ; L inkIndex++ )
864           {   864           {
865              // Determi ne link fi le index a nd anchor   865              // Determi ne link fi le index a nd anchor
866              //   866              //
867              Parts = Li nkArray[Li nkIndex].s plit("#");   867              Parts = Li nkArray[Li nkIndex].s plit("#");
868              LinkFileIn dex = pars eInt(Parts [0]);   868              LinkFileIn dex = pars eInt(Parts [0]);
869              LinkAnchor  = null;   869              LinkAnchor  = null;
870              if (Parts. length > 1 )   870              if (Parts. length > 1 )
871              {   871              {
872                if (Part s[1].lengt h > 0)   872                if (Part s[1].lengt h > 0)
873                {   873                {
874                  LinkAn chor = Par ts[1];   874                  LinkAn chor = Par ts[1];
875                }   875                }
876              }   876              }
877     877  
878              // Determi ne if all  links for  a single d ocument ha ve been pr ocessed   878              // Determi ne if all  links for  a single d ocument ha ve been pr ocessed
879              //   879              //
880              if ((PrevL inkFileInd ex == null ) ||   880              if ((PrevL inkFileInd ex == null ) ||
881                  (LinkF ileIndex ! = PrevLink FileIndex) )   881                  (LinkF ileIndex ! = PrevLink FileIndex) )
882              {   882              {
883                Numbered LinkCounte r = 1;   883                Numbered LinkCounte r = 1;
884     884  
885                // Deter mine title  for acces sibility   885                // Deter mine title  for acces sibility
886                //   886                //
887                if (WWHF rame.WWHHe lp.mbAcces sible)   887                if (WWHF rame.WWHHe lp.mbAcces sible)
888                {   888                {
889                  VarAcc essibility Title = WW HStringUti lities_For matMessage (WWHFrame. WWHJavaScr ipt.mMessa ges.mAcces sibilityIn dexEntry,   889                  VarAcc essibility Title = WW HStringUti lities_For matMessage (WWHFrame. WWHJavaScr ipt.mMessa ges.mAcces sibilityIn dexEntry,
890                                                                                 BookListE ntry.mFile s.fFileInd exToTitle( LinkFileIn dex),   890                                                                                 BookListE ntry.mFile s.fFileInd exToTitle( LinkFileIn dex),
891                                                                                 BookListE ntry.mTitl e);   891                                                                                 BookListE ntry.mTitl e);
892                  VarAcc essibility Title = WW HStringUti lities_Esc apeHTML(Va rAccessibi lityTitle) ;   892                  VarAcc essibility Title = WW HStringUti lities_Esc apeHTML(Va rAccessibi lityTitle) ;
893                  VarAcc essibility Title = "  title=\""  + VarAcces sibilityTi tle + "\"" ;   893                  VarAcc essibility Title = "  title=\""  + VarAcces sibilityTi tle + "\"" ;
894                }   894                }
895     895  
896                HTML.fAp pend("</no br></p>\n" );   896                HTML.fAp pend("</no br></p>\n" );
897     897  
898                // Build  up absolu te link UR L   898                // Build  up absolu te link UR L
899                //   899                //
900                Document URL = WWHF rame.WWHHe lp.fGetBoo kIndexFile IndexURL(B ookIndex,  LinkFileIn dex, LinkA nchor);   900                Document URL = WWHF rame.WWHHe lp.fGetBoo kIndexFile IndexURL(B ookIndex,  LinkFileIn dex, LinkA nchor);
901                Document URL = WWHF rame.WWHBr owser.fRes toreEscape dSpaces(Do cumentURL) ;        
902                Document URL = WWHS tringUtili ties_Escap eURLForJav aScriptAnc hor(Docume ntURL);   901                Document URL = WWHS tringUtili ties_Escap eURLForJav aScriptAnc hor(Docume ntURL);
903     902  
        903                // Handl e "double- indirectio n" issue
        904                //
        905                Document URL = WWHS tringUtili ties_Searc hReplace(D ocumentURL , "%", "%2 5");
        906  
904                HTML.fAp pend("<p c lass=\"" +  EntryClas s + "\"><n obr>");   907                HTML.fAp pend("<p c lass=\"" +  EntryClas s + "\"><n obr>");
905                HTML.fAp pend("<a n ame=\"inde xselect\"  href=\"jav ascript:WW HFrame.WWH Index.fDis playLink(' " + Docume ntURL + "' );\"" + Va rAccessibi lityTitle  + ">");   908                HTML.fAp pend("<a n ame=\"inde xselect\"  href=\"jav ascript:WW HFrame.WWH Index.fDis playLink(' " + Docume ntURL + "' );\"" + Va rAccessibi lityTitle  + ">");
906                HTML.fAp pend(BookL istEntry.m Files.fFil eIndexToTi tle(LinkFi leIndex) +  "</a>");   909                HTML.fAp pend(BookL istEntry.m Files.fFil eIndexToTi tle(LinkFi leIndex) +  "</a>");
907              }   910              }
908              else   911              else
909              {   912              {
910                Numbered LinkCounte r += 1;   913                Numbered LinkCounte r += 1;
911     914  
912                // Deter mine title  for acces sibility   915                // Deter mine title  for acces sibility
913                //   916                //
914                if (WWHF rame.WWHHe lp.mbAcces sible)   917                if (WWHF rame.WWHHe lp.mbAcces sible)
915                {   918                {
916                  VarAcc essibility Title = WW HStringUti lities_For matMessage (WWHFrame. WWHJavaScr ipt.mMessa ges.mAcces sibilityIn dexSecondE ntry,   919                  VarAcc essibility Title = WW HStringUti lities_For matMessage (WWHFrame. WWHJavaScr ipt.mMessa ges.mAcces sibilityIn dexSecondE ntry,
917                                                                                 BookListE ntry.mFile s.fFileInd exToTitle( LinkFileIn dex),   920                                                                                 BookListE ntry.mFile s.fFileInd exToTitle( LinkFileIn dex),
918                                                                                 BookListE ntry.mTitl e,   921                                                                                 BookListE ntry.mTitl e,
919                                                                                 NumberedL inkCounter );   922                                                                                 NumberedL inkCounter );
920                  VarAcc essibility Title = WW HStringUti lities_Esc apeHTML(Va rAccessibi lityTitle) ;   923                  VarAcc essibility Title = WW HStringUti lities_Esc apeHTML(Va rAccessibi lityTitle) ;
921                  VarAcc essibility Title = "  title=\""  + VarAcces sibilityTi tle + "\"" ;   924                  VarAcc essibility Title = "  title=\""  + VarAcces sibilityTi tle + "\"" ;
922                }   925                }
923     926  
924                // Build  up absolu te link UR L   927                // Build  up absolu te link UR L
925                //   928                //
926                Document URL = WWHF rame.WWHHe lp.fGetBoo kIndexFile IndexURL(B ookIndex,  LinkFileIn dex, LinkA nchor);   929                Document URL = WWHF rame.WWHHe lp.fGetBoo kIndexFile IndexURL(B ookIndex,  LinkFileIn dex, LinkA nchor);
927                Document URL = WWHF rame.WWHBr owser.fRes toreEscape dSpaces(Do cumentURL) ;        
928                Document URL = WWHS tringUtili ties_Escap eURLForJav aScriptAnc hor(Docume ntURL);   930                Document URL = WWHS tringUtili ties_Escap eURLForJav aScriptAnc hor(Docume ntURL);
929     931  
        932                // Handl e "double- indirectio n" issue
        933                //
        934                Document URL = WWHS tringUtili ties_Searc hReplace(D ocumentURL , "%", "%2 5");
        935  
930                HTML.fAp pend(",&nb sp;");   936                HTML.fAp pend(",&nb sp;");
931                HTML.fAp pend("<a h ref=\"java script:WWH Frame.WWHI ndex.fDisp layLink('"  + Documen tURL + "') ;\"" + Var Accessibil ityTitle +  ">");   937                HTML.fAp pend("<a h ref=\"java script:WWH Frame.WWHI ndex.fDisp layLink('"  + Documen tURL + "') ;\"" + Var Accessibil ityTitle +  ">");
932                HTML.fAp pend(Numbe redLinkCou nter + "</ a>");   938                HTML.fAp pend(Numbe redLinkCou nter + "</ a>");
933              }   939              }
934     940  
935              PrevLinkFi leIndex =  LinkFileIn dex;   941              PrevLinkFi leIndex =  LinkFileIn dex;
936           }   942           }
937     943  
938           HT ML.fAppend ("</nobr>< /p>\n");   944           HT ML.fAppend ("</nobr>< /p>\n");
939         }   945         }
940       }   946       }
941     }   947     }
942     948  
943     return H TML.fGetBu ffer();   949     return H TML.fGetBu ffer();
944   }   950   }
945     951  
946   function   WWHIndex_S electionLi stLoaded()   952   function   WWHIndex_S electionLi stLoaded()
947   {   953   {
948     // Move  focus to d ocument se lection li st   954     // Move  focus to d ocument se lection li st
949     //   955     //
950     WWHFrame .WWHHelp.f Focus("WWH DocumentFr ame", "ind exselect") ;   956     WWHFrame .WWHHelp.f Focus("WWH DocumentFr ame", "ind exselect") ;
951   }   957   }
952     958  
953   function   WWHIndex_D isplayLink (ParamURL)   959   function   WWHIndex_D isplayLink (ParamURL)
954   {   960   {
955     WWHFrame .WWHHelp.f SetDocumen tHREF(Para mURL, fals e);   961     WWHFrame .WWHHelp.f SetDocumen tHREF(Para mURL, fals e);
956   }   962   }
957     963  
958   function   WWHIndex_G etEntry(Pa ramEntryIn fo)   964   function   WWHIndex_G etEntry(Pa ramEntryIn fo)
959   {   965   {
960     var  Ent ry = null;   966     var  Ent ry = null;
961     var  Ent ryInfoPart s;   967     var  Ent ryInfoPart s;
962     var  Max Index;   968     var  Max Index;
963     var  Ind ex;   969     var  Ind ex;
964     970  
965     971  
966     // Locat e specifie d entry   972     // Locat e specifie d entry
967     //   973     //
968     Entry =  this.mTopE ntry;   974     Entry =  this.mTopE ntry;
969     EntryInf oParts = P aramEntryI nfo.split( ":");   975     EntryInf oParts = P aramEntryI nfo.split( ":");
970     for (Max Index = En tryInfoPar ts.length,  Index = 0  ; Index <  MaxIndex  ; Index++)   976     for (Max Index = En tryInfoPar ts.length,  Index = 0  ; Index <  MaxIndex  ; Index++)
971     {   977     {
972       Entry  = Entry.mC hildrenSor tArray[Ent ryInfoPart s[Index]];   978       Entry  = Entry.mC hildrenSor tArray[Ent ryInfoPart s[Index]];
973     }   979     }
974     980  
975     return E ntry;   981     return E ntry;
976   }   982   }
977     983  
978   function   WWHIndex_C lickedEntr y(ParamEnt ryInfo)   984   function   WWHIndex_C lickedEntr y(ParamEnt ryInfo)
979   {   985   {
980     var  Ent ry;   986     var  Ent ry;
981     var  Boo kCount;   987     var  Boo kCount;
982     var  Boo kIndex;   988     var  Boo kIndex;
983     var  Boo kListEntry ;   989     var  Boo kListEntry ;
984     var  Par ts;   990     var  Par ts;
985     var  Lin kFileIndex ;   991     var  Lin kFileIndex ;
986     var  Lin kAnchor;   992     var  Lin kAnchor;
987     var  Doc umentURL;   993     var  Doc umentURL;
988     994  
989     995  
990     // Locat e specifie d entry   996     // Locat e specifie d entry
991     //   997     //
992     Entry =  this.fGetE ntry(Param EntryInfo) ;   998     Entry =  this.fGetE ntry(Param EntryInfo) ;
993     999  
994     // Displ ay target  document o r selectio n list   1000     // Displ ay target  document o r selectio n list
995     //   1001     //
996     BookCoun t = 0;   1002     BookCoun t = 0;
997     for (Boo kIndex in  Entry.mBoo kLinks)   1003     for (Boo kIndex in  Entry.mBoo kLinks)
998     {   1004     {
999       BookCo unt++;   1005       BookCo unt++;
1000     }   1006     }
1001     1007  
1002     // See i f this is  a single e ntry   1008     // See i f this is  a single e ntry
1003     //   1009     //
1004     if ((Boo kCount ==  1) &&   1010     if ((Boo kCount ==  1) &&
1005         (Ent ry.mBookLi nks[BookIn dex].lengt h == 1))   1011         (Ent ry.mBookLi nks[BookIn dex].lengt h == 1))
1006     {   1012     {
1007       BookLi stEntry =  WWHFrame.W WHHelp.mBo oks.mBookL ist[BookIn dex];   1013       BookLi stEntry =  WWHFrame.W WHHelp.mBo oks.mBookL ist[BookIn dex];
1008     1014  
1009       // Det ermine lin k file ind ex and anc hor   1015       // Det ermine lin k file ind ex and anc hor
1010       //   1016       //
1011       Parts  = Entry.mB ookLinks[B ookIndex][ 0].split(" #");   1017       Parts  = Entry.mB ookLinks[B ookIndex][ 0].split(" #");
1012       LinkFi leIndex =  parseInt(P arts[0]);   1018       LinkFi leIndex =  parseInt(P arts[0]);
1013       LinkAn chor = nul l;   1019       LinkAn chor = nul l;
1014       if (Pa rts.length  > 1)   1020       if (Pa rts.length  > 1)
1015       {   1021       {
1016         if ( Parts[1].l ength > 0)   1022         if ( Parts[1].l ength > 0)
1017         {   1023         {
1018           Li nkAnchor =  Parts[1];   1024           Li nkAnchor =  Parts[1];
1019         }   1025         }
1020       }   1026       }
1021     1027  
1022       // Set  Document   1028       // Set  Document
1023       //   1029       //
1024       Docume ntURL = WW HFrame.WWH Help.fGetB ookIndexFi leIndexURL (BookIndex , LinkFile Index, Lin kAnchor);   1030       Docume ntURL = WW HFrame.WWH Help.fGetB ookIndexFi leIndexURL (BookIndex , LinkFile Index, Lin kAnchor);
1025     }   1031     }
1026     else   1032     else
1027     {   1033     {
1028       // Dis play selec tion list   1034       // Dis play selec tion list
1029       //   1035       //
1030       this.m ClickedEnt ry = Entry ;   1036       this.m ClickedEnt ry = Entry ;
1031       Docume ntURL = WW HFrame.WWH Help.mBase URL + "wwh elp/wwhimp l/js/html/ indexsel.h tm";   1037       Docume ntURL = WW HFrame.WWH Help.mBase URL + "wwh elp/wwhimp l/js/html/ indexsel.h tm";
1032     }   1038     }
1033     1039  
1034     this.fDi splayLink( DocumentUR L);   1040     this.fDi splayLink( DocumentUR L);
1035   }   1041   }
1036     1042  
1037   function   WWHIndex_C lickedSeeA lsoEntry(P aramEntryI nfo)   1043   function   WWHIndex_C lickedSeeA lsoEntry(P aramEntryI nfo)
1038   {   1044   {
1039     var  Ent ry;   1045     var  Ent ry;
1040     var  Tar getSection Index;   1046     var  Tar getSection Index;
1041     var  Max Index;   1047     var  Max Index;
1042     var  Ind ex;   1048     var  Ind ex;
1043     1049  
1044     1050  
1045     // Locat e specifie d entry   1051     // Locat e specifie d entry
1046     //   1052     //
1047     Entry =  this.fGetE ntry(Param EntryInfo) ;   1053     Entry =  this.fGetE ntry(Param EntryInfo) ;
1048     1054  
1049     // Confi rm entry h as target  informatio n   1055     // Confi rm entry h as target  informatio n
1050     //   1056     //
1051     if ((typ eof(Entry. mSeeAlsoTa rgetName)  == "string ") &&   1057     if ((typ eof(Entry. mSeeAlsoTa rgetName)  == "string ") &&
1052         (typ eof(Entry. mSeeAlsoTa rgetGroupI D) == "num ber"))   1058         (typ eof(Entry. mSeeAlsoTa rgetGroupI D) == "num ber"))
1053     {   1059     {
1054       // Det ermine if  we need to  jump to a nother pag e   1060       // Det ermine if  we need to  jump to a nother pag e
1055       //   1061       //
1056       Target SectionInd ex = -1;   1062       Target SectionInd ex = -1;
1057       for (M axIndex =  this.mTopE ntry.mChil drenSortAr ray.length , Index =  0 ; Index  < MaxIndex  ; Index++ )   1063       for (M axIndex =  this.mTopE ntry.mChil drenSortAr ray.length , Index =  0 ; Index  < MaxIndex  ; Index++ )
1058       {   1064       {
1059         if ( this.mTopE ntry.mChil drenSortAr ray[Index] .mGroupID  == Entry.m SeeAlsoTar getGroupID )   1065         if ( this.mTopE ntry.mChil drenSortAr ray[Index] .mGroupID  == Entry.m SeeAlsoTar getGroupID )
1060         {   1066         {
1061           Ta rgetSectio nIndex = I ndex;   1067           Ta rgetSectio nIndex = I ndex;
1062     1068  
1063           //  Exit for  loop   1069           //  Exit for  loop
1064           //   1070           //
1065           In dex = MaxI ndex;   1071           In dex = MaxI ndex;
1066         }   1072         }
1067       }   1073       }
1068     1074  
1069       // Con firm the t arget entr y was loca ted   1075       // Con firm the t arget entr y was loca ted
1070       //   1076       //
1071       if (Ta rgetSectio nIndex !=  -1)   1077       if (Ta rgetSectio nIndex !=  -1)
1072       {   1078       {
1073         // S et target  entry   1079         // S et target  entry
1074         //   1080         //
1075         this .mPanelAnc hor = "sa"  + Entry.m SeeAlsoTar getName;   1081         this .mPanelAnc hor = "sa"  + Entry.m SeeAlsoTar getName;
1076     1082  
1077         // C hange navi gation bar ?   1083         // C hange navi gation bar ?
1078         //   1084         //
1079         if ( (this.fThr esholdExce eded()) &&   1085         if ( (this.fThr esholdExce eded()) &&
1080              (TargetSec tionIndex  != this.mS ectionInde x))   1086              (TargetSec tionIndex  != this.mS ectionInde x))
1081         {   1087         {
1082           //  Need to s witch to p roper sect ion   1088           //  Need to s witch to p roper sect ion
1083           //   1089           //
1084           th is.fDispla ySection(T argetSecti onIndex);   1090           th is.fDispla ySection(T argetSecti onIndex);
1085         }   1091         }
1086         else   1092         else
1087         {   1093         {
1088           //  Focus cur rent secti on   1094           //  Focus cur rent secti on
1089           //   1095           //
1090           WW HFrame.WWH Help.fFocu s("WWHPane lNavigatio nFrame", " in" + this .mSectionI ndex);   1096           WW HFrame.WWH Help.fFocu s("WWHPane lNavigatio nFrame", " in" + this .mSectionI ndex);
1091     1097  
1092           //  We're on  the right  page, so j ust jump t o the corr ect entry   1098           //  We're on  the right  page, so j ust jump t o the corr ect entry
1093           //   1099           //
1094           WW HFrame.WWH JavaScript .mPanels.f JumpToAnch or();   1100           WW HFrame.WWH JavaScript .mPanels.f JumpToAnch or();
1095         }   1101         }
1096       }   1102       }
1097     }   1103     }
1098   }   1104   }
1099     1105  
1100   function   WWHIndexIt erator_Obj ect()   1106   function   WWHIndexIt erator_Obj ect()
1101   {   1107   {
1102     this.mIt eratorScop e      = n ull;   1108     this.mIt eratorScop e      = n ull;
1103     this.mEn try               = n ull;   1109     this.mEn try               = n ull;
1104     this.mPa rentStack         = n ew Array() ;   1110     this.mPa rentStack         = n ew Array() ;
1105     this.mPo sitionStac k      = n ew Array() ;   1111     this.mPo sitionStac k      = n ew Array() ;
1106     1112  
1107     this.fRe set   = WW HIndexIter ator_Reset ;   1113     this.fRe set   = WW HIndexIter ator_Reset ;
1108     this.fAd vance = WW HIndexIter ator_Advan ce;   1114     this.fAd vance = WW HIndexIter ator_Advan ce;
1109   }   1115   }
1110     1116  
1111   function   WWHIndexIt erator_Res et(ParamIn dex)   1117   function   WWHIndexIt erator_Res et(ParamIn dex)
1112   {   1118   {
1113     if (Para mIndex ==  -1)  // It erate buck ets as wel l!   1119     if (Para mIndex ==  -1)  // It erate buck ets as wel l!
1114     {   1120     {
1115       this.m IteratorSc ope = WWHF rame.WWHIn dex.mTopEn try;   1121       this.m IteratorSc ope = WWHF rame.WWHIn dex.mTopEn try;
1116     }   1122     }
1117     else if  ((WWHFrame .WWHIndex. mTopEntry. mChildrenS ortArray ! = null) &&   1123     else if  ((WWHFrame .WWHIndex. mTopEntry. mChildrenS ortArray ! = null) &&
1118               (WWHFrame .WWHIndex. mTopEntry. mChildrenS ortArray.l ength > 0) )   1124               (WWHFrame .WWHIndex. mTopEntry. mChildrenS ortArray.l ength > 0) )
1119     {   1125     {
1120       this.m IteratorSc ope = WWHF rame.WWHIn dex.mTopEn try.mChild renSortArr ay[ParamIn dex];   1126       this.m IteratorSc ope = WWHF rame.WWHIn dex.mTopEn try.mChild renSortArr ay[ParamIn dex];
1121     }   1127     }
1122     else   1128     else
1123     {   1129     {
1124       this.m IteratorSc ope = null ;   1130       this.m IteratorSc ope = null ;
1125     }   1131     }
1126     this.mEn try                 =  this.mIte ratorScope ;   1132     this.mEn try                 =  this.mIte ratorScope ;
1127     this.mPa rentStack. length   =  0;   1133     this.mPa rentStack. length   =  0;
1128     this.mPo sitionStac k.length =  0;   1134     this.mPo sitionStac k.length =  0;
1129   }   1135   }
1130     1136  
1131   function   WWHIndexIt erator_Adv ance()   1137   function   WWHIndexIt erator_Adv ance()
1132   {   1138   {
1133     var  Par entEntry;   1139     var  Par entEntry;
1134     var  Sta ckTop;   1140     var  Sta ckTop;
1135     1141  
1136     1142  
1137     // Advan ce to the  next visib le entry   1143     // Advan ce to the  next visib le entry
1138     //   1144     //
1139     if (this .mEntry !=  null)   1145     if (this .mEntry !=  null)
1140     {   1146     {
1141       // Che ck for chi ldren   1147       // Che ck for chi ldren
1142       //   1148       //
1143       if (th is.mEntry. mChildren  != null)   1149       if (th is.mEntry. mChildren  != null)
1144       {   1150       {
1145         // D etermine s ort order  if necessa ry   1151         // D etermine s ort order  if necessa ry
1146         //   1152         //
1147         if ( this.mEntr y.mChildre nSortArray  == null)   1153         if ( this.mEntr y.mChildre nSortArray  == null)
1148         {   1154         {
1149           WW HIndexEntr y_SortChil dren(this. mEntry);   1155           WW HIndexEntr y_SortChil dren(this. mEntry);
1150         }   1156         }
1151       }   1157       }
1152     1158  
1153       // Pro cess child ren   1159       // Pro cess child ren
1154       //   1160       //
1155       if ((t his.mEntry .mChildren SortArray  != null) & &   1161       if ((t his.mEntry .mChildren SortArray  != null) & &
1156           (t his.mEntry .mChildren SortArray. length > 0 ))   1162           (t his.mEntry .mChildren SortArray. length > 0 ))
1157       {   1163       {
1158         this .mParentSt ack[this.m ParentStac k.length]  = this.mEn try;   1164         this .mParentSt ack[this.m ParentStac k.length]  = this.mEn try;
1159         this .mPosition Stack[this .mPosition Stack.leng th] = 0;   1165         this .mPosition Stack[this .mPosition Stack.leng th] = 0;
1160         this .mEntry =  this.mEntr y.mChildre nSortArray [0];   1166         this .mEntry =  this.mEntr y.mChildre nSortArray [0];
1161       }   1167       }
1162       // If  we've reac hed the it erator sco pe, we're  done   1168       // If  we've reac hed the it erator sco pe, we're  done
1163       //   1169       //
1164       else i f (this.mE ntry == th is.mIterat orScope)   1170       else i f (this.mE ntry == th is.mIterat orScope)
1165       {   1171       {
1166         this .mEntry =  null;   1172         this .mEntry =  null;
1167       }   1173       }
1168       else   1174       else
1169       {   1175       {
1170         Pare ntEntry =  this.mPare ntStack[th is.mParent Stack.leng th - 1];   1176         Pare ntEntry =  this.mPare ntStack[th is.mParent Stack.leng th - 1];
1171         this .mEntry =  null;   1177         this .mEntry =  null;
1172     1178  
1173         // F ind next c hild of pa rent entry   1179         // F ind next c hild of pa rent entry
1174         //   1180         //
1175         whil e (ParentE ntry != nu ll)   1181         whil e (ParentE ntry != nu ll)
1176         {   1182         {
1177           //  Increment  position   1183           //  Increment  position
1178           //   1184           //
1179           St ackTop = t his.mPosit ionStack.l ength - 1;   1185           St ackTop = t his.mPosit ionStack.l ength - 1;
1180           th is.mPositi onStack[St ackTop]++;   1186           th is.mPositi onStack[St ackTop]++;
1181     1187  
1182           //  Confirm t his is a v alid entry   1188           //  Confirm t his is a v alid entry
1183           //   1189           //
1184           if  (this.mPo sitionStac k[StackTop ] < Parent Entry.mChi ldrenSortA rray.lengt h)   1190           if  (this.mPo sitionStac k[StackTop ] < Parent Entry.mChi ldrenSortA rray.lengt h)
1185           {   1191           {
1186              // Return  the parent 's next ch ild   1192              // Return  the parent 's next ch ild
1187              //   1193              //
1188              this.mEntr y = Parent Entry.mChi ldrenSortA rray[this. mPositionS tack[Stack Top]];   1194              this.mEntr y = Parent Entry.mChi ldrenSortA rray[this. mPositionS tack[Stack Top]];
1189     1195  
1190              // Signal  break from  loop   1196              // Signal  break from  loop
1191              //   1197              //
1192              ParentEntr y = null;   1198              ParentEntr y = null;
1193           }   1199           }
1194           el se   1200           el se
1195           {   1201           {
1196              // Last ch ild of par ent, try u p a level   1202              // Last ch ild of par ent, try u p a level
1197              //   1203              //
1198              if (Parent Entry == t his.mItera torScope)   1204              if (Parent Entry == t his.mItera torScope)
1199              {   1205              {
1200                ParentEn try = null ;   1206                ParentEn try = null ;
1201              }   1207              }
1202              else   1208              else
1203              {   1209              {
1204                this.mPa rentStack. length--;   1210                this.mPa rentStack. length--;
1205                this.mPo sitionStac k.length-- ;   1211                this.mPo sitionStac k.length-- ;
1206     1212  
1207                ParentEn try = this .mParentSt ack[this.m ParentStac k.length -  1];   1213                ParentEn try = this .mParentSt ack[this.m ParentStac k.length -  1];
1208              }   1214              }
1209           }   1215           }
1210         }   1216         }
1211       }   1217       }
1212     }   1218     }
1213     1219  
1214     return ( this.mEntr y != null) ;   1220     return ( this.mEntr y != null) ;
1215   }   1221   }
1216     1222  
1217   function   WWHIndexEn try_Object (bParamGro upHeading,   1223   function   WWHIndexEn try_Object (bParamGro upHeading,
1218                                     ParamBook Index,   1224                                     ParamBook Index,
1219                                     ParamText ,   1225                                     ParamText ,
1220                                     ParamLink s,   1226                                     ParamLink s,
1221                                     ParamSeeA lsoKey,   1227                                     ParamSeeA lsoKey,
1222                                     ParamSeeA lsoGroupKe y)   1228                                     ParamSeeA lsoGroupKe y)
1223   {   1229   {
1224     if (bPar amGroupHea ding)   1230     if (bPar amGroupHea ding)
1225     {   1231     {
1226       this.m bGroup  =  true;   1232       this.m bGroup  =  true;
1227       this.m GroupID =  WWHFrame.W WHIndex.mE ntryCount;   1233       this.m GroupID =  WWHFrame.W WHIndex.mE ntryCount;
1228     }   1234     }
1229     else   1235     else
1230     {   1236     {
1231       this.m bGroup = f alse;   1237       this.m bGroup = f alse;
1232     }   1238     }
1233     1239  
1234     this.mTe xt               = Pa ramText;   1240     this.mTe xt               = Pa ramText;
1235     this.mBo okLinks          = nu ll;   1241     this.mBo okLinks          = nu ll;
1236     this.mCh ildren           = nu ll;   1242     this.mCh ildren           = nu ll;
1237     this.mCh ildrenSort Array = nu ll;   1243     this.mCh ildrenSort Array = nu ll;
1238     1244  
1239     if (type of(ParamSe eAlsoKey)  == "string ")   1245     if (type of(ParamSe eAlsoKey)  == "string ")
1240     {   1246     {
1241       this.m SeeAlsoKey  = ParamSe eAlsoKey;   1247       this.m SeeAlsoKey  = ParamSe eAlsoKey;
1242     }   1248     }
1243     if (type of(ParamSe eAlsoGroup Key) == "s tring")   1249     if (type of(ParamSe eAlsoGroup Key) == "s tring")
1244     {   1250     {
1245       this.m SeeAlsoGro upKey = Pa ramSeeAlso GroupKey;   1251       this.m SeeAlsoGro upKey = Pa ramSeeAlso GroupKey;
1246     }   1252     }
1247     1253  
1248     this.fAd dEntry  =  WWHIndexEn try_AddEnt ry;   1254     this.fAd dEntry  =  WWHIndexEn try_AddEnt ry;
1249     this.fA          =  WWHIndexEn try_AddEnt ry;   1255     this.fA          =  WWHIndexEn try_AddEnt ry;
1250     1256  
1251     // Bump  entry coun t if not t he top lev el node   1257     // Bump  entry coun t if not t he top lev el node
1252     //   1258     //
1253     if (Para mBookIndex  != -1)   1259     if (Para mBookIndex  != -1)
1254     {   1260     {
1255       WWHFra me.WWHInde x.mEntryCo unt++;   1261       WWHFra me.WWHInde x.mEntryCo unt++;
1256     }   1262     }
1257     1263  
1258     // Add l inks   1264     // Add l inks
1259     //   1265     //
1260     if ((typ eof(ParamL inks) != " undefined" ) &&   1266     if ((typ eof(ParamL inks) != " undefined" ) &&
1261         (Par amLinks !=  null))   1267         (Par amLinks !=  null))
1262     {   1268     {
1263       this.m BookLinks  = new WWHI ndexEntryB ookHash_Ob ject();   1269       this.m BookLinks  = new WWHI ndexEntryB ookHash_Ob ject();
1264       this.m BookLinks[ ParamBookI ndex] = Pa ramLinks;   1270       this.m BookLinks[ ParamBookI ndex] = Pa ramLinks;
1265     }   1271     }
1266   }   1272   }
1267     1273  
1268   function   WWHIndexEn try_GetKey (ParamGrou pTag,   1274   function   WWHIndexEn try_GetKey (ParamGrou pTag,
1269                                     ParamText ,   1275                                     ParamText ,
1270                                     ParamSort )   1276                                     ParamSort )
1271   {   1277   {
1272     var  Var Key = null ;   1278     var  Var Key = null ;
1273     1279  
1274     1280  
1275     if ((typ eof(ParamT ext) != "u ndefined")  &&   1281     if ((typ eof(ParamT ext) != "u ndefined")  &&
1276         (Par amText !=  null) &&   1282         (Par amText !=  null) &&
1277         (Par amText.len gth > 0))   1283         (Par amText.len gth > 0))
1278     {   1284     {
1279       if ((t ypeof(Para mGroupTag)  != "undef ined") &&   1285       if ((t ypeof(Para mGroupTag)  != "undef ined") &&
1280           (P aramGroupT ag != null ) &&   1286           (P aramGroupT ag != null ) &&
1281           (P aramGroupT ag.length  > 0))   1287           (P aramGroupT ag.length  > 0))
1282       {   1288       {
1283         if ( VarKey ==  null)   1289         if ( VarKey ==  null)
1284         {   1290         {
1285           Va rKey = "";   1291           Va rKey = "";
1286         }   1292         }
1287     1293  
1288         VarK ey += Para mGroupTag;   1294         VarK ey += Para mGroupTag;
1289       }   1295       }
1290     1296  
1291       if ((t ypeof(Para mSort) !=  "undefined ") &&   1297       if ((t ypeof(Para mSort) !=  "undefined ") &&
1292           (P aramSort ! = null) &&   1298           (P aramSort ! = null) &&
1293           (P aramSort.l ength > 0)  &&   1299           (P aramSort.l ength > 0)  &&
1294           (P aramSort ! = ParamTex t))   1300           (P aramSort ! = ParamTex t))
1295       {   1301       {
1296         if ( VarKey ==  null)   1302         if ( VarKey ==  null)
1297         {   1303         {
1298           Va rKey = "";   1304           Va rKey = "";
1299         }   1305         }
1300     1306  
1301         VarK ey += ":"  + ParamSor t;   1307         VarK ey += ":"  + ParamSor t;
1302       }   1308       }
1303     1309  
1304       if (Va rKey == nu ll)   1310       if (Va rKey == nu ll)
1305       {   1311       {
1306         VarK ey = "";   1312         VarK ey = "";
1307       }   1313       }
1308     1314  
1309       VarKey  += ":" +  ParamText;   1315       VarKey  += ":" +  ParamText;
1310     }   1316     }
1311     1317  
1312     return V arKey;   1318     return V arKey;
1313   }   1319   }
1314     1320  
1315   function   WWHIndexEn try_AddEnt ry(ParamTe xt,   1321   function   WWHIndexEn try_AddEnt ry(ParamTe xt,
1316                                       ParamLi nks,   1322                                       ParamLi nks,
1317                                       ParamSo rt,   1323                                       ParamSo rt,
1318                                       ParamGr oupTag,   1324                                       ParamGr oupTag,
1319                                       ParamSe eAlso,   1325                                       ParamSe eAlso,
1320                                       ParamSe eAlsoSort,   1326                                       ParamSe eAlsoSort,
1321                                       ParamSe eAlsoGroup ,   1327                                       ParamSe eAlsoGroup ,
1322                                       ParamSe eAlsoGroup Sort,   1328                                       ParamSe eAlsoGroup Sort,
1323                                       ParamSe eAlsoGroup Tag)   1329                                       ParamSe eAlsoGroup Tag)
1324   {   1330   {
1325     var  bVa rGroupHead ing;   1331     var  bVa rGroupHead ing;
1326     var  Lin ks;   1332     var  Lin ks;
1327     var  Var Key;   1333     var  Var Key;
1328     var  Var SeeAlsoKey ;   1334     var  Var SeeAlsoKey ;
1329     var  Var SeeAlsoGro upKey;   1335     var  Var SeeAlsoGro upKey;
1330     var  Boo kIndex;   1336     var  Boo kIndex;
1331     var  Chi ldEntry;   1337     var  Chi ldEntry;
1332     var  Boo kLinks;   1338     var  Boo kLinks;
1333     var  Max Index;   1339     var  Max Index;
1334     var  Ind ex;   1340     var  Ind ex;
1335     1341  
1336     1342  
1337     // See i f this is  a group he ading   1343     // See i f this is  a group he ading
1338     //   1344     //
1339     if ((typ eof(ParamG roupTag) ! = "undefin ed") &&   1345     if ((typ eof(ParamG roupTag) ! = "undefin ed") &&
1340         (Par amGroupTag  != null)  &&   1346         (Par amGroupTag  != null)  &&
1341         (Par amGroupTag .length >  0))   1347         (Par amGroupTag .length >  0))
1342     {   1348     {
1343       bVarGr oupHeading  = true;   1349       bVarGr oupHeading  = true;
1344     }   1350     }
1345     1351  
1346     // Set l inks if en tries exis t   1352     // Set l inks if en tries exis t
1347     //   1353     //
1348     if ((typ eof(ParamL inks) != " undefined" ) &&   1354     if ((typ eof(ParamL inks) != " undefined" ) &&
1349         (Par amLinks !=  null) &&   1355         (Par amLinks !=  null) &&
1350         (Par amLinks.le ngth > 0))   1356         (Par amLinks.le ngth > 0))
1351     {   1357     {
1352       Links  = ParamLin ks;   1358       Links  = ParamLin ks;
1353     }   1359     }
1354     else   1360     else
1355     {   1361     {
1356       Links  = null;   1362       Links  = null;
1357     }   1363     }
1358     1364  
1359     // See i f this obj ect has an y children   1365     // See i f this obj ect has an y children
1360     //   1366     //
1361     if (this .mChildren  == null)   1367     if (this .mChildren  == null)
1362     {   1368     {
1363       this.m Children =  new WWHIn dexEntryHa sh_Object( );   1369       this.m Children =  new WWHIn dexEntryHa sh_Object( );
1364     }   1370     }
1365     1371  
1366     // Defin e keys   1372     // Defin e keys
1367     //   1373     //
1368     VarKey               = WWHInde xEntry_Get Key(ParamG roupTag, P aramText,  ParamSort) ;   1374     VarKey               = WWHInde xEntry_Get Key(ParamG roupTag, P aramText,  ParamSort) ;
1369     VarSeeAl soKey       = WWHInde xEntry_Get Key(null,  ParamSeeAl so, ParamS eeAlsoSort );   1375     VarSeeAl soKey       = WWHInde xEntry_Get Key(null,  ParamSeeAl so, ParamS eeAlsoSort );
1370     VarSeeAl soGroupKey  = WWHInde xEntry_Get Key(ParamS eeAlsoGrou pTag, Para mSeeAlsoGr oup, Param SeeAlsoGro upSort);   1376     VarSeeAl soGroupKey  = WWHInde xEntry_Get Key(ParamS eeAlsoGrou pTag, Para mSeeAlsoGr oup, Param SeeAlsoGro upSort);
1371     1377  
1372     // Acces s entry, c reating it  if it doe sn't exist   1378     // Acces s entry, c reating it  if it doe sn't exist
1373     //   1379     //
1374     BookInde x = WWHFra me.WWHInde x.mInitInd ex;   1380     BookInde x = WWHFra me.WWHInde x.mInitInd ex;
1375     ChildEnt ry = this. mChildren[ VarKey + " ~"];   1381     ChildEnt ry = this. mChildren[ VarKey + " ~"];
1376     if (type of(ChildEn try) == "u ndefined")   1382     if (type of(ChildEn try) == "u ndefined")
1377     {   1383     {
1378       ChildE ntry = new  WWHIndexE ntry_Objec t(bVarGrou pHeading,  BookIndex,  ParamText ,   1384       ChildE ntry = new  WWHIndexE ntry_Objec t(bVarGrou pHeading,  BookIndex,  ParamText ,
1379                                                 Links, V arSeeAlsoK ey, VarSee AlsoGroupK ey);   1385                                                 Links, V arSeeAlsoK ey, VarSee AlsoGroupK ey);
1380       this.m Children[V arKey + "~ "] = Child Entry;   1386       this.m Children[V arKey + "~ "] = Child Entry;
1381     1387  
1382       // Add  entry to  see also c ollection  if it is a  see also  entry   1388       // Add  entry to  see also c ollection  if it is a  see also  entry
1383       //   1389       //
1384       if (ty peof(VarSe eAlsoKey)  == "string ")   1390       if (ty peof(VarSe eAlsoKey)  == "string ")
1385       {   1391       {
1386         WWHF rame.WWHIn dex.fAddSe eAlsoEntry (ChildEntr y);   1392         WWHF rame.WWHIn dex.fAddSe eAlsoEntry (ChildEntr y);
1387       }   1393       }
1388     }   1394     }
1389     else  //  Child ent ry exists,  update wi th new inf ormation   1395     else  //  Child ent ry exists,  update wi th new inf ormation
1390     {   1396     {
1391       // Add  book link s   1397       // Add  book link s
1392       //   1398       //
1393       if (Li nks != nul l)   1399       if (Li nks != nul l)
1394       {   1400       {
1395         if ( ChildEntry .mBookLink s == null)   1401         if ( ChildEntry .mBookLink s == null)
1396         {   1402         {
1397           Ch ildEntry.m BookLinks  = new WWHI ndexEntryB ookHash_Ob ject();   1403           Ch ildEntry.m BookLinks  = new WWHI ndexEntryB ookHash_Ob ject();
1398         }   1404         }
1399     1405  
1400         if ( typeof(Chi ldEntry.mB ookLinks[B ookIndex])  == "undef ined")   1406         if ( typeof(Chi ldEntry.mB ookLinks[B ookIndex])  == "undef ined")
1401         {   1407         {
1402           Ch ildEntry.m BookLinks[ BookIndex]  = Links;   1408           Ch ildEntry.m BookLinks[ BookIndex]  = Links;
1403         }   1409         }
1404         else   1410         else
1405         {   1411         {
1406           //  Append ne w links   1412           //  Append ne w links
1407           //   1413           //
1408           Bo okLinks =  ChildEntry .mBookLink s[BookInde x];   1414           Bo okLinks =  ChildEntry .mBookLink s[BookInde x];
1409           fo r (MaxInde x = Links. length, In dex = 0 ;  Index < Ma xIndex ; I ndex++)   1415           fo r (MaxInde x = Links. length, In dex = 0 ;  Index < Ma xIndex ; I ndex++)
1410           {   1416           {
1411              BookLinks[ BookLinks. length] =  Links[Inde x];   1417              BookLinks[ BookLinks. length] =  Links[Inde x];
1412           }   1418           }
1413         }   1419         }
1414       }   1420       }
1415     }   1421     }
1416     1422  
1417     return C hildEntry;   1423     return C hildEntry;
1418   }   1424   }
1419     1425  
1420   function   WWHIndexEn try_SortCh ildren(Par amEntry)   1426   function   WWHIndexEn try_SortCh ildren(Par amEntry)
1421   {   1427   {
1422     var  Uns ortedArray ;   1428     var  Uns ortedArray ;
1423     var  Key Hash = new  Object();   1429     var  Key Hash = new  Object();
1424     var  Sor tedArray;   1430     var  Sor tedArray;
1425     var  Var Key;   1431     var  Var Key;
1426     var  Var KeyTrimmed ;   1432     var  Var KeyTrimmed ;
1427     var  Var KeyUpperCa se;   1433     var  Var KeyUpperCa se;
1428     var  Var SortKey;   1434     var  Var SortKey;
1429     var  Max Index;   1435     var  Max Index;
1430     var  Ind ex;   1436     var  Ind ex;
1431     1437  
1432     1438  
1433     // Accum ulate hash  keys   1439     // Accum ulate hash  keys
1434     //   1440     //
1435     Unsorted Array = ne w Array();   1441     Unsorted Array = ne w Array();
1436     for (Var Key in Par amEntry.mC hildren)   1442     for (Var Key in Par amEntry.mC hildren)
1437     {   1443     {
1438       VarKey Trimmed =  VarKey.sub string(1,  VarKey.len gth - 1);   1444       VarKey Trimmed =  VarKey.sub string(1,  VarKey.len gth - 1);
1439       VarKey UpperCase  = VarKeyTr immed.toUp perCase();   1445       VarKey UpperCase  = VarKeyTr immed.toUp perCase();
1440       VarSor tKey = Var KeyUpperCa se + ":" +  VarKey;   1446       VarSor tKey = Var KeyUpperCa se + ":" +  VarKey;
1441     1447  
1442       Unsort edArray[Un sortedArra y.length]  = VarSortK ey;   1448       Unsort edArray[Un sortedArra y.length]  = VarSortK ey;
1443       KeyHas h[VarSortK ey] = VarK ey;   1449       KeyHas h[VarSortK ey] = VarK ey;
1444     }   1450     }
1445     1451  
1446     // Insur e array ex ists   1452     // Insur e array ex ists
1447     //   1453     //
1448     if (Unso rtedArray. length > 0 )   1454     if (Unso rtedArray. length > 0 )
1449     {   1455     {
1450       // Sor t array   1456       // Sor t array
1451       //   1457       //
1452       Sorted Array = Un sortedArra y.sort();   1458       Sorted Array = Un sortedArra y.sort();
1453     1459  
1454       // Rep lace sort  keys with  entries   1460       // Rep lace sort  keys with  entries
1455       //   1461       //
1456       for (M axIndex =  SortedArra y.length,  Index = 0  ; Index <  MaxIndex ;  Index++)   1462       for (M axIndex =  SortedArra y.length,  Index = 0  ; Index <  MaxIndex ;  Index++)
1457       {   1463       {
1458         VarS ortKey = S ortedArray [Index];   1464         VarS ortKey = S ortedArray [Index];
1459         if ( (typeof(Ke yHash[VarS ortKey]) ! = "undefin ed") &&   1465         if ( (typeof(Ke yHash[VarS ortKey]) ! = "undefin ed") &&
1460              (KeyHash[V arSortKey]  != null))   1466              (KeyHash[V arSortKey]  != null))
1461         {   1467         {
1462           Va rKey = Key Hash[VarSo rtKey];   1468           Va rKey = Key Hash[VarSo rtKey];
1463           So rtedArray[ Index] = P aramEntry. mChildren[ VarKey];   1469           So rtedArray[ Index] = P aramEntry. mChildren[ VarKey];
1464         }   1470         }
1465       }   1471       }
1466     }   1472     }
1467     else   1473     else
1468     {   1474     {
1469       // No  children,  possible e rror occur red?   1475       // No  children,  possible e rror occur red?
1470       //   1476       //
1471       Sorted Array = ne w Array();   1477       Sorted Array = ne w Array();
1472     }   1478     }
1473     1479  
1474     // Set c hildren so rt array   1480     // Set c hildren so rt array
1475     // Clear  hash tabl e as it is  no longer  needed   1481     // Clear  hash tabl e as it is  no longer  needed
1476     //   1482     //
1477     ParamEnt ry.mChildr enSortArra y = Sorted Array;   1483     ParamEnt ry.mChildr enSortArra y = Sorted Array;
1478     ParamEnt ry.mChildr en = null;   1484     ParamEnt ry.mChildr en = null;
1479   }   1485   }
1480     1486  
1481   function   WWHIndexEn tryHash_Ob ject()   1487   function   WWHIndexEn tryHash_Ob ject()
1482   {   1488   {
1483   }   1489   }
1484     1490  
1485   function   WWHIndexEn tryBookHas h_Object()   1491   function   WWHIndexEn tryBookHas h_Object()
1486   {   1492   {
1487   }   1493   }
1488     1494  
1489   function   WWHSection Cache_Obje ct()   1495   function   WWHSection Cache_Obje ct()
1490   {   1496   {
1491   }   1497   }
1492     1498  
1493   function   WWHIndexOp tions_Obje ct()   1499   function   WWHIndexOp tions_Obje ct()
1494   {   1500   {
1495     this.mTh reshold      = 0;   1501     this.mTh reshold      = 0;
1496     1502  
1497     this.fSe tThreshold  = WWHInde xOptions_S etThreshol d;   1503     this.fSe tThreshold  = WWHInde xOptions_S etThreshol d;
1498     this.fSe tSeperator  = WWHInde xOptions_S etSeperato r;   1504     this.fSe tSeperator  = WWHInde xOptions_S etSeperato r;
1499   }   1505   }
1500     1506  
1501   function   WWHIndexOp tions_SetT hreshold(P aramThresh old)   1507   function   WWHIndexOp tions_SetT hreshold(P aramThresh old)
1502   {   1508   {
1503     this.mTh reshold =  ParamThres hold;   1509     this.mTh reshold =  ParamThres hold;
1504   }   1510   }
1505     1511  
1506   function   WWHIndexOp tions_SetS eperator(P aramSepera tor)   1512   function   WWHIndexOp tions_SetS eperator(P aramSepera tor)
1507   {   1513   {
1508     this.mSe perator =  ParamSeper ator;   1514     this.mSe perator =  ParamSeper ator;
1509   }   1515   }