72. 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.

72.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\common\scripts help.js Thu Mar 20 16:22:28 2008 UTC
2 C:\Documents and Settings\allums\Desktop\2008.2.20597.p2\Formats\WebWorks Help 5.0\Files\wwhelp\wwhimpl\common\scripts help.js Tue Aug 12 22:40:50 2008 UTC

72.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 17 3382
Changed 11 42
Inserted 1 1
Removed 4 5

72.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

72.4 Active regular expressions

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

72.5 Comparison detail

1   // Copyrig ht (c) 200 0-2005 Qua dralay Cor poration.   All right s reserved .   1   // Copyrig ht (c) 200 0-2005 Qua dralay Cor poration.   All right s reserved .
2   //   2   //
3     3  
4   function   WWHHelp_Ob ject(Param URL)   4   function   WWHHelp_Ob ject(Param URL)
5   {   5   {
6     var  URL Params;   6     var  URL Params;
7     7  
8     8  
9     this.mbI nitialized         =  false;   9     this.mbI nitialized         =  false;
10     this.mbA ccessible          =  false;   10     this.mbA ccessible          =  false;
11     this.mIn itialTabNa me      =  null;   11     this.mIn itialTabNa me      =  null;
12     this.mNe wTabName           =  null;   12     this.mNe wTabName           =  null;
13     this.mIn itStage            =  0;   13     this.mIn itStage            =  0;
14     this.mSe ttings             =  new WWHCom monSetting s_Object() ;   14     this.mSe ttings             =  new WWHCom monSetting s_Object() ;
15     this.mMe ssages             =  new WWHCom monMessage s_Object() ;   15     this.mMe ssages             =  new WWHCom monMessage s_Object() ;
16     this.mDo cumentLoad ed      =  null;   16     this.mDo cumentLoad ed      =  null;
17     this.mLo cationURL          =  WWHFrame.W WHBrowser. fNormalize URL(ParamU RL);   17     this.mLo cationURL          =  WWHFrame.W WHBrowser. fNormalize URL(ParamU RL);
18     this.mBa seURL              =  WWHStringU tilities_G etBaseURL( this.mLoca tionURL);   18     this.mBa seURL              =  WWHStringU tilities_G etBaseURL( this.mLoca tionURL);
19     this.mHe lpURLPrefi x       =  WWHFrame.W WHBrowser. fRestoreEs capedSpace s( this.mBase URL ) ;   19     this.mHe lpURLPrefi x       = 
this.mBase URL
;
20     this.mCo ntextDir           =  null;   20     this.mCo ntextDir           =  null;
21     this.mTo picTag             =  null;   21     this.mTo picTag             =  null;
22     this.mDo cumentURL          =  "";   22     this.mDo cumentURL          =  "";
23     this.mPo pup                =  null;   23     this.mPo pup                =  null;
24     this.mPo pupContext         =  "";   24     this.mPo pupContext         =  "";
25     this.mPo pupLink            =  "";   25     this.mPo pupLink            =  "";
26     this.mPo pupLoaded          =  false;   26     this.mPo pupLoaded          =  false;
27     this.mPo pupHideDis abled   =  false;   27     this.mPo pupHideDis abled   =  false;
28     this.mBo okGroups           =  new WWHBoo kGroups_Ob ject();   28     this.mBo okGroups           =  new WWHBoo kGroups_Ob ject();
29     this.mBo oks                =  new WWHBoo kList_Obje ct();   29     this.mBo oks                =  new WWHBoo kList_Obje ct();
30     this.mFa voritesCoo kie     =  "WWH" + th is.mSettin gs.mCookie sID + "_Fa vs";   30     this.mFa voritesCoo kie     =  "WWH" + th is.mSettin gs.mCookie sID + "_Fa vs";
31     this.mbI gnoreNextK eyPress =  false;   31     this.mbI gnoreNextK eyPress =  false;
32     this.mbA ltKeyDown          =  false;   32     this.mbA ltKeyDown          =  false;
33     this.mAc cessKey            =  -1;   33     this.mAc cessKey            =  -1;
34     this.mbA utoSyncTOC         =  false;   34     this.mbA utoSyncTOC         =  false;
35     this.mbA lwaysSyncT OC      =  true;   35     this.mbA lwaysSyncT OC      =  true;
        36     this.mCo llapsingTO CEntry  =  false;
36     this.mIm ages               =  new Array( );   37     this.mIm ages               =  new Array( );
37     38  
38     this.fSi ngleTopic                      =  WWHHelp_S ingleTopic ;   39     this.fSi ngleTopic                      =  WWHHelp_S ingleTopic ;
39     this.fGe tFrameRefe rence               =  WWHHelp_G etFrameRef erence;   40     this.fGe tFrameRefe rence               =  WWHHelp_G etFrameRef erence;
40     this.fSe tLocation                      =  WWHHelp_S etLocation ;   41     this.fSe tLocation                      =  WWHHelp_S etLocation ;
41     this.fRe placeLocat ion                 =  WWHHelp_R eplaceLoca tion;   42     this.fRe placeLocat ion                 =  WWHHelp_R eplaceLoca tion;
42     this.fRe loadLocati on                  =  WWHHelp_R eloadLocat ion;   43     this.fRe loadLocati on                  =  WWHHelp_R eloadLocat ion;
43     this.fGe tURLParame ters                =  WWHHelp_G etURLParam eters;   44     this.fGe tURLParame ters                =  WWHHelp_G etURLParam eters;
44     this.fCo okiesEnabl ed                  =  WWHHelp_C ookiesEnab led;   45     this.fCo okiesEnabl ed                  =  WWHHelp_C ookiesEnab led;
45     this.fIn itStage                        =  WWHHelp_I nitStage;   46     this.fIn itStage                        =  WWHHelp_I nitStage;
46     this.fHa ndlerIniti alized              =  WWHHelp_H andlerInit ialized;   47     this.fHa ndlerIniti alized              =  WWHHelp_H andlerInit ialized;
47     this.fGe tFrameName                     =  WWHHelp_G etFrameNam e;   48     this.fGe tFrameName                     =  WWHHelp_G etFrameNam e;
48     this.fSe tFrameName                     =  WWHHelp_S etFrameNam e;   49     this.fSe tFrameName                     =  WWHHelp_S etFrameNam e;
49     this.fSe tDocumentF rameWithUR L        =  WWHHelp_S etDocument FrameWithU RL;   50     this.fSe tDocumentF rameWithUR L        =  WWHHelp_S etDocument FrameWithU RL;
50     this.fSe tDocumentF rame                =  WWHHelp_S etDocument Frame;   51     this.fSe tDocumentF rame                =  WWHHelp_S etDocument Frame;
51     this.fSe tDocumentH REF                 =  WWHHelp_S etDocument HREF;   52     this.fSe tDocumentH REF                 =  WWHHelp_S etDocument HREF;
52     this.fGe tBookIndex FileIndexU RL       =  WWHHelp_G etBookInde xFileIndex URL;   53     this.fGe tBookIndex FileIndexU RL       =  WWHHelp_G etBookInde xFileIndex URL;
53     this.fDe termineCon textDocume nt       =  WWHHelp_D etermineCo ntextDocum ent;   54     this.fDe termineCon textDocume nt       =  WWHHelp_D etermineCo ntextDocum ent;
54     this.fLo adTopicDat a                   =  WWHHelp_L oadTopicDa ta;   55     this.fLo adTopicDat a                   =  WWHHelp_L oadTopicDa ta;
55     this.fPr ocessTopic Result              =  WWHHelp_P rocessTopi cResult;   56     this.fPr ocessTopic Result              =  WWHHelp_P rocessTopi cResult;
56     this.fDi splayConte xtDocument          =  WWHHelp_D isplayCont extDocumen t;   57     this.fDi splayConte xtDocument          =  WWHHelp_D isplayCont extDocumen t;
57     this.fSe tContextDo cument              =  WWHHelp_S etContextD ocument;   58     this.fSe tContextDo cument              =  WWHHelp_S etContextD ocument;
58     this.fGe tBookFileH REF                 =  WWHHelp_G etBookFile HREF;   59     this.fGe tBookFileH REF                 =  WWHHelp_G etBookFile HREF;
59     this.fHR EFToBookIn dexFileInd exAnchor =  WWHHelp_H REFToBookI ndexFileIn dexAnchor;   60     this.fHR EFToBookIn dexFileInd exAnchor =  WWHHelp_H REFToBookI ndexFileIn dexAnchor;
60     this.fGe tSyncPrevN ext                 =  WWHHelp_G etSyncPrev Next;   61     this.fGe tSyncPrevN ext                 =  WWHHelp_G etSyncPrev Next;
61     this.fHR EFToTitle                      =  WWHHelp_H REFToTitle ;   62     this.fHR EFToTitle                      =  WWHHelp_H REFToTitle ;
62     this.fEs capeHTML                       =  WWHHelp_E scapeHTML;   63     this.fEs capeHTML                       =  WWHHelp_E scapeHTML;
63     this.fPo pupHTML                        =  WWHHelp_P opupHTML;   64     this.fPo pupHTML                        =  WWHHelp_P opupHTML;
64     this.fSh owPopup                        =  WWHHelp_S howPopup;   65     this.fSh owPopup                        =  WWHHelp_S howPopup;
65     this.fPo pupAdjustS ize                 =  WWHHelp_P opupAdjust Size;   66     this.fPo pupAdjustS ize                 =  WWHHelp_P opupAdjust Size;
66     this.fPo pupLoaded                      =  WWHHelp_P opupLoaded ;   67     this.fPo pupLoaded                      =  WWHHelp_P opupLoaded ;
67     this.fRe vealPopup                      =  WWHHelp_R evealPopup ;   68     this.fRe vealPopup                      =  WWHHelp_R evealPopup ;
68     this.fRe setPopupHi deDisabled          =  WWHHelp_R esetPopupH ideDisable d;   69     this.fRe setPopupHi deDisabled          =  WWHHelp_R esetPopupH ideDisable d;
69     this.fHi dePopup                        =  WWHHelp_H idePopup;   70     this.fHi dePopup                        =  WWHHelp_H idePopup;
70     this.fCl ickedPopup                     =  WWHHelp_C lickedPopu p;   71     this.fCl ickedPopup                     =  WWHHelp_C lickedPopu p;
71     this.fDi splayFile                      =  WWHHelp_D isplayFile ;   72     this.fDi splayFile                      =  WWHHelp_D isplayFile ;
72     this.fDi splayFirst                     =  WWHHelp_D isplayFirs t;   73     this.fDi splayFirst                     =  WWHHelp_D isplayFirs t;
73     this.fSh owTopic                        =  WWHHelp_S howTopic;   74     this.fSh owTopic                        =  WWHHelp_S howTopic;
74     this.fUp date                           =  WWHHelp_U pdate;   75     this.fUp date                           =  WWHHelp_U pdate;
75     this.fUp dateHash                       =  WWHHelp_U pdateHash;   76     this.fUp dateHash                       =  WWHHelp_U pdateHash;
76     this.fSy ncTOC                          =  WWHHelp_S yncTOC;   77     this.fSy ncTOC                          =  WWHHelp_S yncTOC;
77     this.fFa voritesCur rent                =  WWHHelp_F avoritesCu rrent;   78     this.fFa voritesCur rent                =  WWHHelp_F avoritesCu rrent;
78     this.fDo cumentBook keeping             =  WWHHelp_D ocumentBoo kkeeping;   79     this.fDo cumentBook keeping             =  WWHHelp_D ocumentBoo kkeeping;
79     this.fAu toSyncTOC                      =  WWHHelp_A utoSyncTOC ;   80     this.fAu toSyncTOC                      =  WWHHelp_A utoSyncTOC ;
80     this.fUn load                           =  WWHHelp_U nload;   81     this.fUn load                           =  WWHHelp_U nload;
81     this.fIg noreNextKe yPress              =  WWHHelp_I gnoreNextK eyPress;   82     this.fIg noreNextKe yPress              =  WWHHelp_I gnoreNextK eyPress;
82     this.fHa ndleKeyDow n                   =  WWHHelp_H andleKeyDo wn;   83     this.fHa ndleKeyDow n                   =  WWHHelp_H andleKeyDo wn;
83     this.fHa ndleKeyPre ss                  =  WWHHelp_H andleKeyPr ess;   84     this.fHa ndleKeyPre ss                  =  WWHHelp_H andleKeyPr ess;
84     this.fHa ndleKeyUp                      =  WWHHelp_H andleKeyUp ;   85     this.fHa ndleKeyUp                      =  WWHHelp_H andleKeyUp ;
85     this.fPr ocessAcces sKey                =  WWHHelp_P rocessAcce ssKey;   86     this.fPr ocessAcces sKey                =  WWHHelp_P rocessAcce ssKey;
86     this.fFo cus                            =  WWHHelp_F ocus;   87     this.fFo cus                            =  WWHHelp_F ocus;
87     88  
88     // Load  up message s   89     // Load  up message s
89     //   90     //
90     this.mMe ssages.fSe tByLocale( WWHFrame.W WHBrowser. mLocale);   91     this.mMe ssages.fSe tByLocale( WWHFrame.W WHBrowser. mLocale);
91     92  
92     // Set c ookie path   93     // Set c ookie path
93     //   94     //
94     WWHFrame .WWHBrowse r.fSetCook iePath(WWH StringUtil ities_GetB aseURL(Par amURL));   95     WWHFrame .WWHBrowse r.fSetCook iePath(WWH StringUtil ities_GetB aseURL(Par amURL));
95     96  
96     // Check  URL param eters   97     // Check  URL param eters
97     //   98     //
98     URLParam s = this.f GetURLPara meters(thi s.mLocatio nURL);   99     URLParam s = this.f GetURLPara meters(thi s.mLocatio nURL);
99     100  
100     // Set a ccessibili ty flag   101     // Set a ccessibili ty flag
101     //   102     //
102     if (this .mSettings .mAccessib le == "tru e")   103     if (this .mSettings .mAccessib le == "tru e")
103     {   104     {
104       this.m bAccessibl e = true;   105       this.m bAccessibl e = true;
105     }   106     }
106     else   107     else
107     {   108     {
108       if (UR LParams[4]  != null)   109       if (UR LParams[4]  != null)
109       {   110       {
110         if ( URLParams[ 4] == "tru e")   111         if ( URLParams[ 4] == "tru e")
111         {   112         {
112           th is.mbAcces sible = tr ue;   113           th is.mbAcces sible = tr ue;
113         }   114         }
114       }   115       }
115     }   116     }
116     117  
117     // Deter mine initi al tab   118     // Deter mine initi al tab
118     //   119     //
119     if (URLP arams[5] ! = null)   120     if (URLP arams[5] ! = null)
120     {   121     {
121       this.m InitialTab Name = URL Params[5];   122       this.m InitialTab Name = URL Params[5];
122     }   123     }
123     124  
124     // Set p opup capab ilities   125     // Set p opup capab ilities
125     //   126     //
126     if (this .mbAccessi ble)   127     if (this .mbAccessi ble)
127     {   128     {
128       WWHFra me.WWHBrow ser.mbSupp ortsPopups  = false;   129       WWHFra me.WWHBrow ser.mbSupp ortsPopups  = false;
129       WWHFra me.WWHBrow ser.mbSupp ortsIFrame s = false;   130       WWHFra me.WWHBrow ser.mbSupp ortsIFrame s = false;
130     }   131     }
131     132  
132     // Creat e popup   133     // Creat e popup
133     //   134     //
134     this.mPo pup = new  WWHPopup_O bject("WWH Frame.WWHH elp.mPopup ",   135     this.mPo pup = new  WWHPopup_O bject("WWH Frame.WWHH elp.mPopup ",
135                                          this .fGetFrame Reference( "WWHDocume ntFrame"),   136                                          this .fGetFrame Reference( "WWHDocume ntFrame"),
136                                          WWHP opupFormat _Translate ,   137                                          WWHP opupFormat _Translate ,
137                                          WWHP opupFormat _Format,   138                                          WWHP opupFormat _Format,
138                                          "WWH PopupDIV",  "WWHPopup Text", 500 , 12, 20,   139                                          "WWH PopupDIV",  "WWHPopup Text", 500 , 12, 20,
139                                          this .mSettings .mPopup.mW idth);   140                                          this .mSettings .mPopup.mW idth);
140   }   141   }
141     142  
142   function   WWHHelp_Si ngleTopic( )   143   function   WWHHelp_Si ngleTopic( )
143   {   144   {
144     var  bVa rSingleTop ic = false ;   145     var  bVa rSingleTop ic = false ;
145     146  
146     147  
147     if (this .mLocation URL.indexO f("wwhelp/ wwhimpl/co mmon/html/ wwhelp.htm ") != -1)   148     if (this .mLocation URL.indexO f("wwhelp/ wwhimpl/co mmon/html/ wwhelp.htm ") != -1)
148     {   149     {
149       bVarSi ngleTopic  = true;   150       bVarSi ngleTopic  = true;
150     }   151     }
151     152  
152     return b VarSingleT opic;   153     return b VarSingleT opic;
153   }   154   }
154     155  
155   function   WWHHelp_Ge tFrameRefe rence(Para mFrameName )   156   function   WWHHelp_Ge tFrameRefe rence(Para mFrameName )
156   {   157   {
157     var  Var FrameRefer ence;   158     var  Var FrameRefer ence;
158     159  
159     160  
160     switch ( ParamFrame Name)   161     switch ( ParamFrame Name)
161     {   162     {
162       case " WWHFrame":   163       case " WWHFrame":
163         // W WHFrame   164         // W WHFrame
164         //   165         //
165         VarF rameRefere nce = "WWH Frame";   166         VarF rameRefere nce = "WWH Frame";
166         brea k;   167         brea k;
167     168  
168       case " WWHNavigat ionFrame":   169       case " WWHNavigat ionFrame":
169         // W WHFrame.WW HNavigatio nFrame   170         // W WHFrame.WW HNavigatio nFrame
170         //   171         //
171         VarF rameRefere nce = "WWH Frame.fram es[0]";   172         VarF rameRefere nce = "WWH Frame.fram es[0]";
172         brea k;   173         brea k;
173     174  
174       case " WWHTabsFra me":   175       case " WWHTabsFra me":
175       case " WWHPanelFr ame":   176       case " WWHPanelFr ame":
176       case " WWHPanelNa vigationFr ame":   177       case " WWHPanelNa vigationFr ame":
177       case " WWHPanelVi ewFrame":   178       case " WWHPanelVi ewFrame":
178         // W WHFrame.WW HNavigatio nFrame.WWH TabsFrame   179         // W WHFrame.WW HNavigatio nFrame.WWH TabsFrame
179         //   180         //
180         // W WHFrame.WW HNavigatio nFrame.WWH PanelFrame   181         // W WHFrame.WW HNavigatio nFrame.WWH PanelFrame
181         //   182         //
182         // W WHFrame.WW HNavigatio nFrame.WWH PanelFrame .WWHPanelN avigationF rame   183         // W WHFrame.WW HNavigatio nFrame.WWH PanelFrame .WWHPanelN avigationF rame
183         //   184         //
184         // W WHFrame.WW HNavigatio nFrame.WWH PanelFrame .WWHPanelV iewFrame   185         // W WHFrame.WW HNavigatio nFrame.WWH PanelFrame .WWHPanelV iewFrame
185         //   186         //
186         VarF rameRefere nce = WWHF rame.WWHHa ndler.fGet FrameRefer ence(Param FrameName) ;   187         VarF rameRefere nce = WWHF rame.WWHHa ndler.fGet FrameRefer ence(Param FrameName) ;
187         brea k;   188         brea k;
188     189  
189       case " WWHContent Frame":   190       case " WWHContent Frame":
190         // W WHFrame.WW HContentFr ame   191         // W WHFrame.WW HContentFr ame
191         //   192         //
192         if ( this.fSing leTopic())   193         if ( this.fSing leTopic())
193         {   194         {
194           Va rFrameRefe rence = "W WHFrame";   195           Va rFrameRefe rence = "W WHFrame";
195         }   196         }
196         else   197         else
197         {   198         {
198           Va rFrameRefe rence = "W WHFrame.fr ames[1]";   199           Va rFrameRefe rence = "W WHFrame.fr ames[1]";
199         }   200         }
200         brea k;   201         brea k;
201     202  
202       case " WWHPageNav Frame":   203       case " WWHPageNav Frame":
203         // W WHFrame.WW HContentFr ame.WWHPag eNavFrame   204         // W WHFrame.WW HContentFr ame.WWHPag eNavFrame
204         //   205         //
205         VarF rameRefere nce = this .fGetFrame Reference( "WWHConten tFrame") +  ".frames[ 0]";   206         VarF rameRefere nce = this .fGetFrame Reference( "WWHConten tFrame") +  ".frames[ 0]";
206         brea k;   207         brea k;
207     208  
208       case " WWHControl sLeftFrame ":   209       case " WWHControl sLeftFrame ":
209         // W WHFrame.WW HContentFr ame.WWHPag eNavFrame. WWHControl sLeftFrame   210         // W WHFrame.WW HContentFr ame.WWHPag eNavFrame. WWHControl sLeftFrame
210         //   211         //
211         VarF rameRefere nce = this .fGetFrame Reference( "WWHPageNa vFrame") +  ".frames[ 0]";   212         VarF rameRefere nce = this .fGetFrame Reference( "WWHPageNa vFrame") +  ".frames[ 0]";
212         brea k;   213         brea k;
213     214  
214       case " WWHTitleFr ame":   215       case " WWHTitleFr ame":
215         // W WHFrame.WW HContentFr ame.WWHPag eNavFrame. WWHTitleFr ame   216         // W WHFrame.WW HContentFr ame.WWHPag eNavFrame. WWHTitleFr ame
216         //   217         //
217         VarF rameRefere nce = this .fGetFrame Reference( "WWHPageNa vFrame") +  ".frames[ 1]";   218         VarF rameRefere nce = this .fGetFrame Reference( "WWHPageNa vFrame") +  ".frames[ 1]";
218         brea k;   219         brea k;
219     220  
220       case " WWHControl sRightFram e":   221       case " WWHControl sRightFram e":
221         // W WHFrame.WW HContentFr ame.WWHPag eNavFrame. WWHControl sRightFram e   222         // W WHFrame.WW HContentFr ame.WWHPag eNavFrame. WWHControl sRightFram e
222         //   223         //
223         VarF rameRefere nce = this .fGetFrame Reference( "WWHPageNa vFrame") +  ".frames[ 2]";   224         VarF rameRefere nce = this .fGetFrame Reference( "WWHPageNa vFrame") +  ".frames[ 2]";
224         brea k;   225         brea k;
225     226  
226       case " WWHDocumen tFrame":   227       case " WWHDocumen tFrame":
227         // W WHFrame.WW HContentFr ame.WWHDoc umentFrame   228         // W WHFrame.WW HContentFr ame.WWHDoc umentFrame
228         //   229         //
229         VarF rameRefere nce = this .fGetFrame Reference( "WWHConten tFrame") +  ".frames[ 1]";   230         VarF rameRefere nce = this .fGetFrame Reference( "WWHConten tFrame") +  ".frames[ 1]";
230         brea k;   231         brea k;
231     232  
232       defaul t:   233       defaul t:
233         VarF rameRefere nce = null ;   234         VarF rameRefere nce = null ;
234         brea k;   235         brea k;
235     }   236     }
236     237  
237     return V arFrameRef erence;   238     return V arFrameRef erence;
238   }   239   }
239     240  
240   function   WWHHelp_Se tLocation( ParamFrame ,   241   function   WWHHelp_Se tLocation( ParamFrame ,
241                                    ParamURL)   242                                    ParamURL)
242   {   243   {
243     var  Var FrameRefer ence;   244     var  Var FrameRefer ence;
244     245  
245     246  
246     VarFrame Reference  = this.fGe tFrameRefe rence(Para mFrame);   247     VarFrame Reference  = this.fGe tFrameRefe rence(Para mFrame);
247     WWHFrame .WWHBrowse r.fSetLoca tion(VarFr ameReferen ce, ParamU RL);   248     WWHFrame .WWHBrowse r.fSetLoca tion(VarFr ameReferen ce, ParamU RL);
248   }   249   }
249     250  
250   function   WWHHelp_Re placeLocat ion(ParamF rame,   251   function   WWHHelp_Re placeLocat ion(ParamF rame,
251                                        ParamU RL)   252                                        ParamU RL)
252   {   253   {
253     var  Var FrameRefer ence;   254     var  Var FrameRefer ence;
254     255  
255     256  
256     VarFrame Reference  = this.fGe tFrameRefe rence(Para mFrame);   257     VarFrame Reference  = this.fGe tFrameRefe rence(Para mFrame);
257     WWHFrame .WWHBrowse r.fReplace Location(V arFrameRef erence, Pa ramURL);   258     WWHFrame .WWHBrowse r.fReplace Location(V arFrameRef erence, Pa ramURL);
258   }   259   }
259     260  
260   function   WWHHelp_Re loadLocati on(ParamFr ame)   261   function   WWHHelp_Re loadLocati on(ParamFr ame)
261   {   262   {
262     var  Var FrameRefer ence;   263     var  Var FrameRefer ence;
263     264  
264     265  
265     VarFrame Reference  = this.fGe tFrameRefe rence(Para mFrame);   266     VarFrame Reference  = this.fGe tFrameRefe rence(Para mFrame);
266     WWHFrame .WWHBrowse r.fReloadL ocation(Va rFrameRefe rence);   267     WWHFrame .WWHBrowse r.fReloadL ocation(Va rFrameRefe rence);
267   }   268   }
268     269  
269   function   WWHHelp_Ge tURLParame ters(Param URL)   270   function   WWHHelp_Ge tURLParame ters(Param URL)
270   {   271   {
271     var  URL Params = n ew Array(n ull, null,  null, nul l, null, n ull);   272     var  URL Params = n ew Array(n ull, null,  null, nul l, null, n ull);
272     var  Par ts;   273     var  Par ts;
273     var  Con textMarker     = "con text=";   274     var  Con textMarker     = "con text=";
274     var  Top icMarker       = "top ic=";   275     var  Top icMarker       = "top ic=";
275     var  Fil eMarker        = "fil e=";   276     var  Fil eMarker        = "fil e=";
276     var  HRE FMarker        = "hre f=";   277     var  HRE FMarker        = "hre f=";
277     var  Acc essibleMar ker = "acc essible=";   278     var  Acc essibleMar ker = "acc essible=";
278     var  Tab Marker         = "tab =";   279     var  Tab Marker         = "tab =";
279     var  Max Index;   280     var  Max Index;
280     var  Ind ex;   281     var  Ind ex;
281     282  
282          
283     // Using  a closure  for this  function.  It is copi ed in swit ch.js as w ell   283     // Using  a closure  for this  function.  It is copi ed in swit ch.js as w ell
284     //     284     //
285     function  GetDelimi tedArgumen ts(ParamUR L)    285     function  GetDelimi tedArgumen ts(ParamUR L) 
286     {   286     {
287       var  D elimiters  = ["?", "# "];        
288       var  P arts = [];   287       var  P arts = [];
289       var   i ;   288       var   Parameters ;
290     289  
291     290       // Pro cess URL p arameters
292       for (i =0; i < De limiters.l ength; i++ )   291       //
        292       if (lo cation.hre f.indexOf( "?") != -1 )
293       {   293       {
294           if ( P a
r amURL .indexOf( Delimiters [i] ) != -1)
  294         Part s = locati on.href.sp lit("?");
295           {   295       }
296             Par
t
s = Par amURL .s plit(De li mit e rs[ i ] );
  296        else  if ( loc a tion.h r ef .indexOf( "#" ) != -1)
297         
 
  b r e a k ;
  297       
{
298         }   298         Part s = locati on.href.sp lit("#");
        299         
Par ame t er s = Par ts .s
li c e (1).jo i n("#" );
        300         Part s.length =  2;
        301          Parts[1]   =   Pa r
a meters ;
299       }   302       }
300     303  
301       return  Parts;   304       return  Parts;
302     }   305     }
303     306  
304     // Check  for possi ble contex t specific ation   307     // Check  for possi ble contex t specific ation
305     //   308     //
306     Parts =  GetDelimit edArgument s(ParamURL );   309     Parts =  GetDelimit edArgument s(ParamURL );
307     if (Part s.length >  1)    310     if (Part s.length >  1) 
308     {   311     {
309       // Get  parameter s   312       // Get  parameter s
310       //   313       //
311       Parts[ 0] = Parts [1];   314       Parts[ 0] = Parts [1];
312       Parts. length = 1 ;   315       Parts. length = 1 ;
313       if (Pa rts[0].ind exOf("&")  != -1)   316       if (Pa rts[0].ind exOf("&")  != -1)
314       {   317       {
315         Part s = Parts[ 0].split(" &");   318         Part s = Parts[ 0].split(" &");
316       }   319       }
317     320  
318       // Pro cess param eters   321       // Pro cess param eters
319       //   322       //
320       for (M axIndex =  Parts.leng th, Index  = 0 ; Inde x < MaxInd ex ; Index ++)   323       for (M axIndex =  Parts.leng th, Index  = 0 ; Inde x < MaxInd ex ; Index ++)
321       {   324       {
322         if ( Parts[Inde x].indexOf (ContextMa rker) == 0 )   325         if ( Parts[Inde x].indexOf (ContextMa rker) == 0 )
323         {   326         {
324           UR LParams[0]  = Parts[I ndex].subs tring(Cont extMarker. length, Pa rts[Index] .length);   327           UR LParams[0]  = Parts[I ndex].subs tring(Cont extMarker. length, Pa rts[Index] .length);
325         }   328         }
326         if ( Parts[Inde x].indexOf (TopicMark er) == 0)   329         if ( Parts[Inde x].indexOf (TopicMark er) == 0)
327         {   330         {
328           UR LParams[1]  = Parts[I ndex].subs tring(Topi cMarker.le ngth, Part s[Index].l ength);   331           UR LParams[1]  = Parts[I ndex].subs tring(Topi cMarker.le ngth, Part s[Index].l ength);
329         }   332         }
330         if ( Parts[Inde x].indexOf (FileMarke r) == 0)   333         if ( Parts[Inde x].indexOf (FileMarke r) == 0)
331         {   334         {
332           UR LParams[2]  = Parts[I ndex].subs tring(File Marker.len gth, Parts [Index].le ngth);   335           UR LParams[2]  = Parts[I ndex].subs tring(File Marker.len gth, Parts [Index].le ngth);
333         }   336         }
334         if ( Parts[Inde x].indexOf (HREFMarke r) == 0)   337         if ( Parts[Inde x].indexOf (HREFMarke r) == 0)
335         {   338         {
336           UR LParams[3]  = Parts[I ndex].subs tring(HREF Marker.len gth, Parts [Index].le ngth);   339           UR LParams[3]  = Parts[I ndex].subs tring(HREF Marker.len gth, Parts [Index].le ngth);
337         }   340         }
338         if ( Parts[Inde x].indexOf (Accessibl eMarker) = = 0)   341         if ( Parts[Inde x].indexOf (Accessibl eMarker) = = 0)
339         {   342         {
340           UR LParams[4]  = Parts[I ndex].subs tring(Acce ssibleMark er.length,  Parts[Ind ex].length );   343           UR LParams[4]  = Parts[I ndex].subs tring(Acce ssibleMark er.length,  Parts[Ind ex].length );
341         }   344         }
342         if ( Parts[Inde x].indexOf (TabMarker ) == 0)   345         if ( Parts[Inde x].indexOf (TabMarker ) == 0)
343         {   346         {
344           UR LParams[5]  = Parts[I ndex].subs tring(TabM arker.leng th, Parts[ Index].len gth);   347           UR LParams[5]  = Parts[I ndex].subs tring(TabM arker.leng th, Parts[ Index].len gth);
345         }   348         }
346       }   349       }
347     350  
348       // Mak e certain  we have bo th a Conte xtTag and  either a T opicTag or  FileTag   351       // Mak e certain  we have bo th a Conte xtTag and  either a T opicTag or  FileTag
349       // Oth erwise, re set them   352       // Oth erwise, re set them
350       //   353       //
351       if ((U RLParams[0 ] == null)  ||   354       if ((U RLParams[0 ] == null)  ||
352           (( URLParams[ 1] == null ) &&   355           (( URLParams[ 1] == null ) &&
353            ( URLParams[ 2] == null )))   356            ( URLParams[ 2] == null )))
354       {   357       {
355         URLP arams[0] =  null;   358         URLP arams[0] =  null;
356         URLP arams[1] =  null;   359         URLP arams[1] =  null;
357         URLP arams[2] =  null;   360         URLP arams[2] =  null;
358       }   361       }
359     }   362     }
360     363  
361     return U RLParams;   364     return U RLParams;
362   }   365   }
363     366  
364   function   WWHHelp_Co okiesEnabl ed()   367   function   WWHHelp_Co okiesEnabl ed()
365   {   368   {
366     var  bVa rEnabled;   369     var  bVa rEnabled;
367     370  
368     371  
369     bVarEnab led = fals e;   372     bVarEnab led = fals e;
370     if ((WWH Frame.WWHH elp.mSetti ngs.mbCook ies) &&   373     if ((WWH Frame.WWHH elp.mSetti ngs.mbCook ies) &&
371         (WWH Frame.WWHB rowser.fCo okiesEnabl ed()))   374         (WWH Frame.WWHB rowser.fCo okiesEnabl ed()))
372     {   375     {
373       bVarEn abled = tr ue;   376       bVarEn abled = tr ue;
374     }   377     }
375     378  
376     return b VarEnabled ;   379     return b VarEnabled ;
377   }   380   }
378     381  
379   function   WWHHelp_In itStage(Pa ramStage)   382   function   WWHHelp_In itStage(Pa ramStage)
380   {   383   {
381     if (( !  this.mbIni tialized)  &&   384     if (( !  this.mbIni tialized)  &&
382         (Par amStage ==  this.mIni tStage))   385         (Par amStage ==  this.mIni tStage))
383     {   386     {
384       // Per form actio ns for cur rent init  stage   387       // Per form actio ns for cur rent init  stage
385       //   388       //
386       switch  (this.mIn itStage)   389       switch  (this.mIn itStage)
387       {   390       {
388         case  0:  // St art initia lization p rocess   391         case  0:  // St art initia lization p rocess
389           //  Alert the  user if t his browse r is unsup ported   392           //  Alert the  user if t his browse r is unsup ported
390           //   393           //
391           if  (WWHFrame .WWHBrowse r.mbUnsupp orted)   394           if  (WWHFrame .WWHBrowse r.mbUnsupp orted)
392           {   395           {
393              alert(WWHF rame.WWHHe lp.mMessag es.mBrowse rNotSuppor ted);   396              alert(WWHF rame.WWHHe lp.mMessag es.mBrowse rNotSuppor ted);
394           }   397           }
395     398  
396           th is.fReplac eLocation( "WWHContro lsLeftFram e", this.m HelpURLPre fix + "wwh elp/wwhimp l/common/h tml/init0. htm");   399           th is.fReplac eLocation( "WWHContro lsLeftFram e", this.m HelpURLPre fix + "wwh elp/wwhimp l/common/h tml/init0. htm");
397           br eak;   400           br eak;
398     401  
399         case  1:  // Pr ep book da ta   402         case  1:  // Pr ep book da ta
400           th is.fReplac eLocation( "WWHContro lsLeftFram e", this.m HelpURLPre fix + "wwh elp/wwhimp l/common/h tml/init1. htm");   403           th is.fReplac eLocation( "WWHContro lsLeftFram e", this.m HelpURLPre fix + "wwh elp/wwhimp l/common/h tml/init1. htm");
401           br eak;   404           br eak;
402     405  
403         case  2:  // Lo ad book da ta   406         case  2:  // Lo ad book da ta
404           th is.fReplac eLocation( "WWHContro lsLeftFram e", this.m HelpURLPre fix + "wwh elp/wwhimp l/common/h tml/init2. htm");   407           th is.fReplac eLocation( "WWHContro lsLeftFram e", this.m HelpURLPre fix + "wwh elp/wwhimp l/common/h tml/init2. htm");
405           br eak;   408           br eak;
406     409  
407         case  3:  // Ha ndler setu p   410         case  3:  // Ha ndler setu p
408           //  Initializ e handler   411           //  Initializ e handler
409           //   412           //
410           WW HFrame.WWH Handler.fI nit();   413           WW HFrame.WWH Handler.fI nit();
411           br eak;   414           br eak;
412     415  
413         case  4:  // Di splay cont rols   416         case  4:  // Di splay cont rols
414           //  Preload g raphics   417           //  Preload g raphics
415           //   418           //
416           WW HHelpUtili ties_Prelo adGraphics ();   419           WW HHelpUtili ties_Prelo adGraphics ();
417     420  
418           //  Initializ e controls   421           //  Initializ e controls
419           //   422           //
420           WW HFrame.WWH Controls.f Initialize ();   423           WW HFrame.WWH Controls.f Initialize ();
421           br eak;   424           br eak;
422     425  
423         case  5:  // Di splay docu ment   426         case  5:  // Di splay docu ment
424           th is.fSetDoc umentFrame ();   427           th is.fSetDoc umentFrame ();
425           th is.mbIniti alized = t rue;   428           th is.mbIniti alized = t rue;
426     429  
427           //  Set frame  names for  accessibi lity   430           //  Set frame  names for  accessibi lity
428           //   431           //
429           if  (this.mbA ccessible)   432           if  (this.mbA ccessible)
430           {   433           {
431              WWHFrame.W WHHelp.fSe tFrameName ("WWHContr olsLeftFra me");   434              WWHFrame.W WHHelp.fSe tFrameName ("WWHContr olsLeftFra me");
432              WWHFrame.W WHHelp.fSe tFrameName ("WWHTitle Frame");   435              WWHFrame.W WHHelp.fSe tFrameName ("WWHTitle Frame");
433              WWHFrame.W WHHelp.fSe tFrameName ("WWHContr olsRightFr ame");   436              WWHFrame.W WHHelp.fSe tFrameName ("WWHContr olsRightFr ame");
434              WWHFrame.W WHHelp.fSe tFrameName ("WWHDocum entFrame") ;   437              WWHFrame.W WHHelp.fSe tFrameName ("WWHDocum entFrame") ;
435           }   438           }
436     439  
437           //  Finalize  hander   440           //  Finalize  hander
438           //   441           //
439           WW HFrame.WWH Handler.fF inalize();   442           WW HFrame.WWH Handler.fF inalize();
440           br eak;   443           br eak;
441       }   444       }
442     445  
443       // Inc rement sta ge   446       // Inc rement sta ge
444       //   447       //
445       this.m InitStage+ +;   448       this.m InitStage+ +;
446     }   449     }
447     450  
448     return 0 ;   451     return 0 ;
449   }   452   }
450     453  
451   function   WWHHelp_Ha ndlerIniti alized()   454   function   WWHHelp_Ha ndlerIniti alized()
452   {   455   {
453     if (WWHF rame.WWHHe lp.mInitSt age > 0)   456     if (WWHF rame.WWHHe lp.mInitSt age > 0)
454     {   457     {
455       if (WW HFrame.WWH Handler.mb Initialize d)   458       if (WW HFrame.WWH Handler.mb Initialize d)
456       {   459       {
457         this .fReplaceL ocation("W WHControls RightFrame ", this.mH elpURLPref ix + "wwhe lp/wwhimpl /common/ht ml/init3.h tm");   460         this .fReplaceL ocation("W WHControls RightFrame ", this.mH elpURLPref ix + "wwhe lp/wwhimpl /common/ht ml/init3.h tm");
458       }   461       }
459     }   462     }
460   }   463   }
461     464  
462   function   WWHHelp_Ge tFrameName (ParamFram eName)   465   function   WWHHelp_Ge tFrameName (ParamFram eName)
463   {   466   {
464     var  Var Name;   467     var  Var Name;
465     468  
466     469  
467     // Deter mine name  for this f rame   470     // Deter mine name  for this f rame
468     //   471     //
469     VarName  = null;   472     VarName  = null;
470     switch ( ParamFrame Name)   473     switch ( ParamFrame Name)
471     {   474     {
472       case " WWHFrame":   475       case " WWHFrame":
473         // N othing to  do   476         // N othing to  do
474         //   477         //
475         brea k;   478         brea k;
476     479  
477       case " WWHNavigat ionFrame":   480       case " WWHNavigat ionFrame":
478         // N othing to  do   481         // N othing to  do
479         //   482         //
480         brea k;   483         brea k;
481     484  
482       case " WWHTabsFra me":   485       case " WWHTabsFra me":
483       case " WWHPanelFr ame":   486       case " WWHPanelFr ame":
484       case " WWHPanelNa vigationFr ame":   487       case " WWHPanelNa vigationFr ame":
485       case " WWHPanelVi ewFrame":   488       case " WWHPanelVi ewFrame":
486         VarN ame = WWHF rame.WWHHa ndler.fGet FrameName( ParamFrame Name);   489         VarN ame = WWHF rame.WWHHa ndler.fGet FrameName( ParamFrame Name);
487         brea k;   490         brea k;
488     491  
489       case " WWHContent Frame":   492       case " WWHContent Frame":
490         // N othing to  do   493         // N othing to  do
491         //   494         //
492         brea k;   495         brea k;
493     496  
494       case " WWHPageNav Frame":   497       case " WWHPageNav Frame":
495         // N othing to  do   498         // N othing to  do
496         //   499         //
497         brea k;   500         brea k;
498     501  
499       case " WWHControl sLeftFrame ":   502       case " WWHControl sLeftFrame ":
500         VarN ame = WWHS tringUtili ties_Escap eHTML(WWHF rame.WWHCo ntrols.fLe ftFrameTit le());   503         VarN ame = WWHS tringUtili ties_Escap eHTML(WWHF rame.WWHCo ntrols.fLe ftFrameTit le());
501         brea k;   504         brea k;
502     505  
503       case " WWHTitleFr ame":   506       case " WWHTitleFr ame":
504         VarN ame = "";   507         VarN ame = "";
505         brea k;   508         brea k;
506     509  
507       case " WWHControl sRightFram e":   510       case " WWHControl sRightFram e":
508         VarN ame = WWHS tringUtili ties_Escap eHTML(WWHF rame.WWHCo ntrols.fRi ghtFrameTi tle());   511         VarN ame = WWHS tringUtili ties_Escap eHTML(WWHF rame.WWHCo ntrols.fRi ghtFrameTi tle());
509         brea k;   512         brea k;
510     513  
511       case " WWHDocumen tFrame":   514       case " WWHDocumen tFrame":
512         VarN ame = WWHS tringUtili ties_Escap eHTML(WWHF rame.WWHHe lp.mMessag es.mAccess ibilityDoc umentFrame Name);   515         VarN ame = WWHS tringUtili ties_Escap eHTML(WWHF rame.WWHHe lp.mMessag es.mAccess ibilityDoc umentFrame Name);
513         brea k;   516         brea k;
514     }   517     }
515   }   518   }
516     519  
517   function   WWHHelp_Se tFrameName (ParamFram eName)   520   function   WWHHelp_Se tFrameName (ParamFram eName)
518   {   521   {
519     var  Var Name;   522     var  Var Name;
520     var  Var Frame;   523     var  Var Frame;
521     524  
522     525  
523     if (WWHF rame.WWHBr owser.mbSu pportsFram eRenaming)   526     if (WWHF rame.WWHBr owser.mbSu pportsFram eRenaming)
524     {   527     {
525       // Get  frame nam e   528       // Get  frame nam e
526       //   529       //
527       VarNam e = this.f GetFrameNa me(ParamFr ameName);   530       VarNam e = this.f GetFrameNa me(ParamFr ameName);
528       if (Va rName != n ull)   531       if (Va rName != n ull)
529       {   532       {
530         // S et frame n ame   533         // S et frame n ame
531         //   534         //
532         VarF rame = eva l(this.fGe tFrameRefe rence(Para mFrameName ));   535         VarF rame = eva l(this.fGe tFrameRefe rence(Para mFrameName ));
533         VarF rame.name  = VarName;   536         VarF rame.name  = VarName;
534       }   537       }
535     }   538     }
536   }   539   }
537     540  
538   function   WWHHelp_Se tDocumentF rameWithUR L(ParamURL )   541   function   WWHHelp_Se tDocumentF rameWithUR L(ParamURL )
539   {   542   {
540     var  Var URLParamet ers;   543     var  Var URLParamet ers;
541     var  Var Parts;   544     var  Var Parts;
542     var  Var LocationUR LNoParams;   545     var  Var LocationUR LNoParams;
543     var  Var NewLocatio nURL;   546     var  Var NewLocatio nURL;
544     547  
545     548  
546     // Deter mine locat ion URL   549     // Deter mine locat ion URL
547     //   550     //
548     VarLocat ionURLNoPa rams = "";   551     VarLocat ionURLNoPa rams = "";
549     if (this .mLocation URL.indexO f("?") !=  -1)   552     if (this .mLocation URL.indexO f("?") !=  -1)
550     {   553     {
551       VarPar ts = this. mLocationU RL.split(" ?");   554       VarPar ts = this. mLocationU RL.split(" ?");
552       VarLoc ationURLNo Params = V arParts[0] ;   555       VarLoc ationURLNo Params = V arParts[0] ;
553     }   556     }
554     else if  (this.mLoc ationURL.i ndexOf("#" ) != -1)   557     else if  (this.mLoc ationURL.i ndexOf("#" ) != -1)
555     {   558     {
556       VarPar ts = this. mLocationU RL.split(" #");   559       VarPar ts = this. mLocationU RL.split(" #");
557       VarLoc ationURLNo Params = V arParts[0] ;   560       VarLoc ationURLNo Params = V arParts[0] ;
558     }   561     }
559     if (VarL ocationURL NoParams.l ength == 0 )   562     if (VarL ocationURL NoParams.l ength == 0 )
560     {   563     {
561       VarLoc ationURLNo Params = t his.mLocat ionURL;   564       VarLoc ationURLNo Params = t his.mLocat ionURL;
562     }   565     }
563     566  
564     // Prese rve URL pa rameter in fo   567     // Prese rve URL pa rameter in fo
565     //   568     //
566     VarURLPa rameters =  "";   569     VarURLPa rameters =  "";
567     if (Para mURL.index Of("?") !=  -1)   570     if (Para mURL.index Of("?") !=  -1)
568     {   571     {
569       VarPar ts = Param URL.split( "?");   572       VarPar ts = Param URL.split( "?");
570       if ((V arParts.le ngth > 1)  &&   573       if ((V arParts.le ngth > 1)  &&
571           (V arParts[1] .length >  0))   574           (V arParts[1] .length >  0))
572       {   575       {
573         VarU RLParamete rs = VarPa rts[1];   576         VarU RLParamete rs = VarPa rts[1];
574       }   577       }
575     }   578     }
576     else if  (ParamURL. indexOf("# ") != -1)   579     else if  (ParamURL. indexOf("# ") != -1)
577     {   580     {
578       VarPar ts = Param URL.split( "#");   581       VarPar ts = Param URL.split( "#");
579       if ((V arParts.le ngth > 1)  &&   582       if ((V arParts.le ngth > 1)  &&
580           (V arParts[1] .length >  0))   583           (V arParts[1] .length >  0))
581       {   584       {
582         VarU RLParamete rs = VarPa rts [ 1 ] ;   585         // E nsure trai ling ancho r hashes a re preserv ed
        586         //
        587         VarU RLParamete rs = VarPa rts .slice( 1 ).join("#" ) ;
583       }   588       }
584     }   589     }
585     590  
586     // Build  new locat ion URL   591     // Build  new locat ion URL
587     //   592     //
588     VarNewLo cationURL  = VarLocat ionURLNoPa rams + "?"  + VarURLP arameters;   593     VarNewLo cationURL  = VarLocat ionURLNoPa rams + "?"  + VarURLP arameters;
589     594  
590     // Updat e location  and redir ect   595     // Updat e location  and redir ect
591     //   596     //
592     this.mLo cationURL  = VarNewLo cationURL;   597     this.mLo cationURL  = VarNewLo cationURL;
593     this.fSe tDocumentF rame();   598     this.fSe tDocumentF rame();
594   }   599   }
595     600  
596   function   WWHHelp_Se tDocumentF rame()   601   function   WWHHelp_Se tDocumentF rame()
597   {   602   {
598     var  Doc umentLoade d;   603     var  Doc umentLoade d;
599     var  Con textDocume ntURL;   604     var  Con textDocume ntURL;
600     var  bVa rReplace;   605     var  bVa rReplace;
601     var  Var DocumentFr ame;   606     var  Var DocumentFr ame;
602     607  
603     608  
604     // Prese rve curren t document  if user c licked for ward or ba ck to see  it   609     // Prese rve curren t document  if user c licked for ward or ba ck to see  it
605     //   610     //
606     if (this .mDocument Loaded !=  null)   611     if (this .mDocument Loaded !=  null)
607     {   612     {
608       Docume ntLoaded =  this.mDoc umentLoade d;   613       Docume ntLoaded =  this.mDoc umentLoade d;
609     614  
610       this.m DocumentLo aded = nul l;   615       this.m DocumentLo aded = nul l;
611       this.f Update(Doc umentLoade d);   616       this.f Update(Doc umentLoade d);
612     }   617     }
613     else   618     else
614     {   619     {
615       // Rep lace docum ent frame  if "about: blank" or  "blank.htm " currentl y displaye d   620       // Rep lace docum ent frame  if "about: blank" or  "blank.htm " currentl y displaye d
616       //   621       //
617       bVarRe place = fa lse;   622       bVarRe place = fa lse;
618       VarDoc umentFrame  = eval(th is.fGetFra meReferenc e("WWHDocu mentFrame" ));   623       VarDoc umentFrame  = eval(th is.fGetFra meReferenc e("WWHDocu mentFrame" ));
619       if ((V arDocument Frame.loca tion.href. indexOf("a bout:blank ") != -1)  ||   624       if ((V arDocument Frame.loca tion.href. indexOf("a bout:blank ") != -1)  ||
620           (V arDocument Frame.loca tion.href. indexOf("w whelp/wwhi mpl/common /html/blan k.htm") !=  -1))   625           (V arDocument Frame.loca tion.href. indexOf("w whelp/wwhi mpl/common /html/blan k.htm") !=  -1))
621       {   626       {
622         bVar Replace =  true;   627         bVar Replace =  true;
623       }   628       }
624     629  
625       // Dis play docum ent or det ermine cor rect docum ent to dis play   630       // Dis play docum ent or det ermine cor rect docum ent to dis play
626       //   631       //
627       Contex tDocumentU RL = this. fDetermine ContextDoc ument();   632       Contex tDocumentU RL = this. fDetermine ContextDoc ument();
628       if (Co ntextDocum entURL !=  null)   633       if (Co ntextDocum entURL !=  null)
629       {   634       {
630         this .fSetDocum entHREF(Co ntextDocum entURL, bV arReplace) ;   635         this .fSetDocum entHREF(Co ntextDocum entURL, bV arReplace) ;
631       }   636       }
632       else   // Load to pic data t o determin e document  to displa y   637       else   // Load to pic data t o determin e document  to displa y
633       {   638       {
634         this .fSetDocum entHREF(th is.mBaseUR L + "wwhel p/wwhimpl/ common/htm l/document .htm", bVa rReplace);   639         this .fSetDocum entHREF(th is.mBaseUR L + "wwhel p/wwhimpl/ common/htm l/document .htm", bVa rReplace);
635       }   640       }
636     }   641     }
637   }   642   }
638     643  
639   function   WWHHelp_Se tDocumentH REF(ParamU RL,   644   function   WWHHelp_Se tDocumentH REF(ParamU RL,
640                                        bParam Replace)   645                                        bParam Replace)
641   {   646   {
642     var  Res toredURL;        
643          
644     if (Para mURL.lengt h > 0)   647     if (Para mURL.lengt h > 0)
645     {   648     {
646       Restor edURL = WW HFrame.WWH Browser.fR estoreEsca pedSpaces( ParamURL);        
647       if (bP aramReplac e)   649       if (bP aramReplac e)
648       {   650       {
649         this .fReplaceL ocation("W WHDocument Frame",  Resto r ed URL);   651         this .fReplaceL ocation("W WHDocument Frame",  Pa r am URL);
650       }   652       }
651       else   653       else
652       {   654       {
653         this .fSetLocat ion("WWHDo cumentFram e",  Resto r ed URL);   655         this .fSetLocat ion("WWHDo cumentFram e",  Pa r am URL);
654       }   656       }
655     }   657     }
656   }   658   }
657     659  
658   function   WWHHelp_Ge tBookIndex FileIndexU RL(ParamBo okIndex,   660   function   WWHHelp_Ge tBookIndex FileIndexU RL(ParamBo okIndex,
659                                                  ParamFi leIndex,   661                                                  ParamFi leIndex,
660                                                  ParamAn chor)   662                                                  ParamAn chor)
661   {   663   {
662     var  URL  = "";   664     var  URL  = "";
663     var  Boo kListEntry ;   665     var  Boo kListEntry ;
664     666  
665     667  
666     if ((Par amBookInde x >= 0) &&   668     if ((Par amBookInde x >= 0) &&
667         (Par amFileInde x >= 0))   669         (Par amFileInde x >= 0))
668     {   670     {
669       BookLi stEntry =  this.mBook s.mBookLis t[ParamBoo kIndex];   671       BookLi stEntry =  this.mBook s.mBookLis t[ParamBoo kIndex];
670     672  
671       URL =  this.mBase URL + Book ListEntry. mDirectory  + BookLis tEntry.mFi les.fFileI ndexToHREF (ParamFile Index);   673       URL =  this.mBase URL + Book ListEntry. mDirectory  + BookLis tEntry.mFi les.fFileI ndexToHREF (ParamFile Index);
672       if ((t ypeof(Para mAnchor) ! = "undefin ed") &&   674       if ((t ypeof(Para mAnchor) ! = "undefin ed") &&
673           (P aramAnchor  != null)  &&   675           (P aramAnchor  != null)  &&
674           (P aramAnchor .length >  0))   676           (P aramAnchor .length >  0))
675       {   677       {
676         URL  += "#" + P aramAnchor ;   678         URL  += "#" + P aramAnchor ;
677       }   679       }
678     }   680     }
679     681  
680     return U RL;   682     return U RL;
681   }   683   }
682     684  
683   function   WWHHelp_De termineCon textDocume nt()   685   function   WWHHelp_De termineCon textDocume nt()
684   {   686   {
685     var  Con textDocume ntURL = nu ll;   687     var  Con textDocume ntURL = nu ll;
686     var  URL Params           = th is.fGetURL Parameters (this.mLoc ationURL);   688     var  URL Params           = th is.fGetURL Parameters (this.mLoc ationURL);
687     var  Con textBook;   689     var  Con textBook;
688     690  
689     691  
690     // Autom atically s ynchronize  TOC   692     // Autom atically s ynchronize  TOC
691     //   693     //
692     this.mbA utoSyncTOC  = true;   694     this.mbA utoSyncTOC  = true;
693     695  
694     // Check  for conte xt specifi cation   696     // Check  for conte xt specifi cation
695     //   697     //
696     if (URLP arams[3] ! = null)  / / href spe cified   698     if (URLP arams[3] ! = null)  / / href spe cified
697     {   699     {
698       Contex tDocumentU RL = this. mBaseURL +  URLParams [3];   700       Contex tDocumentU RL = this. mBaseURL +  URLParams [3];
699     }   701     }
700     else if  (URLParams [0] != nul l)  // con text speci fied   702     else if  (URLParams [0] != nul l)  // con text speci fied
701     {   703     {
702       // Det ermine boo k director y   704       // Det ermine boo k director y
703       //   705       //
704       Contex tBook = th is.mBooks. fGetContex tBook(URLP arams[0]);   706       Contex tBook = th is.mBooks. fGetContex tBook(URLP arams[0]);
705       if (Co ntextBook  != null)   707       if (Co ntextBook  != null)
706       {   708       {
707         if ( URLParams[ 2] != null )  // file  specified   709         if ( URLParams[ 2] != null )  // file  specified
708         {   710         {
709           Co ntextDocum entURL = t his.mBaseU RL + Conte xtBook.mDi rectory +  URLParams[ 2];   711           Co ntextDocum entURL = t his.mBaseU RL + Conte xtBook.mDi rectory +  URLParams[ 2];
710         }   712         }
711         else  if (URLPa rams[1] !=  null)  //  topic spe cified   713         else  if (URLPa rams[1] !=  null)  //  topic spe cified
712         {   714         {
713           //  Setup for  a topic s earch   715           //  Setup for  a topic s earch
714           //   716           //
715           th is.mContex tDir = Con textBook.m Directory;   717           th is.mContex tDir = Con textBook.m Directory;
716           th is.mTopicT ag   = URL Params[1];   718           th is.mTopicT ag   = URL Params[1];
717     719  
718           th is.mDocume ntURL = "" ;   720           th is.mDocume ntURL = "" ;
719         }   721         }
720       }   722       }
721       else   // Display  splash pa ge if noth ing else f ound   723       else   // Display  splash pa ge if noth ing else f ound
722       {   724       {
723         Cont extDocumen tURL = thi s.mBaseURL  + "wwhelp /wwhimpl/c ommon/html /default.h tm";   725         Cont extDocumen tURL = thi s.mBaseURL  + "wwhelp /wwhimpl/c ommon/html /default.h tm";
724       }   726       }
725     }   727     }
726     else  //  Display s plash page  if nothin g else fou nd   728     else  //  Display s plash page  if nothin g else fou nd
727     {   729     {
728       Contex tDocumentU RL = this. mBaseURL +  "wwhelp/w whimpl/com mon/html/d efault.htm ";   730       Contex tDocumentU RL = this. mBaseURL +  "wwhelp/w whimpl/com mon/html/d efault.htm ";
729     }   731     }
730     732  
731     return C ontextDocu mentURL;   733     return C ontextDocu mentURL;
732   }   734   }
733     735  
734   function   WWHHelp_Lo adTopicDat a()   736   function   WWHHelp_Lo adTopicDat a()
735   {   737   {
736     var  Loa dTopicData HTML = "";   738     var  Loa dTopicData HTML = "";
737     var  Var Parameters ;   739     var  Var Parameters ;
738     740  
739     741  
740     // Worka round Safa ri reload  bug   742     // Worka round Safa ri reload  bug
741     //   743     //
742     VarParam eters = "" ;   744     VarParam eters = "" ;
743     if (WWHF rame.WWHBr owser.mBro wser == 5)   // Short hhand for  Safari   745     if (WWHF rame.WWHBr owser.mBro wser == 5)   // Short hhand for  Safari
744     {   746     {
745       VarPar ameters =  "?" + (new  Date() *  1);   747       VarPar ameters =  "?" + (new  Date() *  1);
746     }   748     }
747     749  
748     LoadTopi cDataHTML  += "<scrip t type=\"t ext/javasc ript\" lan guage=\"Ja vaScript1. 2\" src=\" " + this.m HelpURLPre fix +  WWHFrame.W WHBrowser. fRestoreEs capedSpace s( this.mCont extDir )  + "wwhdat a/common/t opics.js"  + VarParam eters + "\ "></script >";   750     LoadTopi cDataHTML  += "<scrip t type=\"t ext/javasc ript\" lan guage=\"Ja vaScript1. 2\" src=\" " + this.m HelpURLPre fix + 
this.mCont extDir
 + "wwhdat a/common/t opics.js"  + VarParam eters + "\ "></script >";
749     LoadTopi cDataHTML  += "<scrip t type=\"t ext/javasc ript\" lan guage=\"Ja vaScript1. 2\" src=\" " + this.m HelpURLPre fix + "wwh elp/wwhimp l/common/s cripts/doc umt1s.js"  + VarParam eters + "\ "></script >";   751     LoadTopi cDataHTML  += "<scrip t type=\"t ext/javasc ript\" lan guage=\"Ja vaScript1. 2\" src=\" " + this.m HelpURLPre fix + "wwh elp/wwhimp l/common/s cripts/doc umt1s.js"  + VarParam eters + "\ "></script >";
750     752  
751     return L oadTopicDa taHTML;   753     return L oadTopicDa taHTML;
752   }   754   }
753     755  
754   function   WWHHelp_Pr ocessTopic Result(Par amTopicURL )   756   function   WWHHelp_Pr ocessTopic Result(Par amTopicURL )
755   {   757   {
756     if (Para mTopicURL  != null)   758     if (Para mTopicURL  != null)
757     {   759     {
758       this.m DocumentUR L = this.m BaseURL +  this.mCont extDir + P aramTopicU RL;   760       this.m DocumentUR L = this.m BaseURL +  this.mCont extDir + P aramTopicU RL;
759     }   761     }
760   }   762   }
761     763  
762   function   WWHHelp_Di splayConte xtDocument ()   764   function   WWHHelp_Di splayConte xtDocument ()
763   {   765   {
764     WWHFrame .WWHHelp.f SetDocumen tHREF(this .mDocument URL, true) ;   766     WWHFrame .WWHHelp.f SetDocumen tHREF(this .mDocument URL, true) ;
765   }   767   }
766     768  
767   function   WWHHelp_Ge tURLPrefix (ParamURL)   769   function   WWHHelp_Ge tURLPrefix (ParamURL)
768   {   770   {
769     var  URL Prefix  =  null;   771     var  URL Prefix  =  null;
770     var  Wor kingURL =  "";   772     var  Wor kingURL =  "";
771     var  Par ts;   773     var  Par ts;
772     var  Ind ex;   774     var  Ind ex;
773     775  
774     776  
775     // Stand ardize URL  for proce ssing   777     // Stand ardize URL  for proce ssing
776     //   778     //
777     WorkingU RL = Param URL;   779     WorkingU RL = Param URL;
778     780  
779     // Strip  any URL p arameters   781     // Strip  any URL p arameters
780     //   782     //
781     if (Work ingURL.ind exOf("?")  != -1)   783     if (Work ingURL.ind exOf("?")  != -1)
782     {   784     {
783       Parts  = WorkingU RL.split(" ?");   785       Parts  = WorkingU RL.split(" ?");
784       Workin gURL = Par ts[0];   786       Workin gURL = Par ts[0];
785     }   787     }
786     else if  (WorkingUR L.indexOf( "#") != -1 )   788     else if  (WorkingUR L.indexOf( "#") != -1 )
787     {   789     {
788       Parts  = WorkingU RL.split(" #");   790       Parts  = WorkingU RL.split(" #");
789       Workin gURL = Par ts[0];   791       Workin gURL = Par ts[0];
790     }   792     }
791     793  
792     // Confi rm URL in  wwhelp hie rarchy   794     // Confi rm URL in  wwhelp hie rarchy
793     //   795     //
794     if (((In dex = Work ingURL.ind exOf("/wwh elp/wwhimp l/api.htm" )) != -1)  ||   796     if (((In dex = Work ingURL.ind exOf("/wwh elp/wwhimp l/api.htm" )) != -1)  ||
795         ((In dex = Work ingURL.ind exOf("/wwh elp/wwhimp l/common/h tml/switch .htm")) !=  -1) ||   797         ((In dex = Work ingURL.ind exOf("/wwh elp/wwhimp l/common/h tml/switch .htm")) !=  -1) ||
796         ((In dex = Work ingURL.ind exOf("/wwh elp/wwhimp l/common/h tml/wwhelp .htm")) !=  -1) ||   798         ((In dex = Work ingURL.ind exOf("/wwh elp/wwhimp l/common/h tml/wwhelp .htm")) !=  -1) ||
797         ((In dex = Work ingURL.ind exOf("/wwh elp/wwhimp l/js/html/ wwhelp.htm "))     !=  -1))   799         ((In dex = Work ingURL.ind exOf("/wwh elp/wwhimp l/js/html/ wwhelp.htm "))     !=  -1))
798     {   800     {
799       URLPre fix = Work ingURL.sub string(0,  Index);   801       URLPre fix = Work ingURL.sub string(0,  Index);
800     }   802     }
801     else   803     else
802     {   804     {
803       // Loo k for matc h on top l evel "wwhe lp.htm" fi le   805       // Loo k for matc h on top l evel "wwhe lp.htm" fi le
804       //   806       //
805       Index  = WorkingU RL.lastInd exOf("/");   807       Index  = WorkingU RL.lastInd exOf("/");
806       if ((I ndex != -1 ) &&   808       if ((I ndex != -1 ) &&
807          (In dex == Wor kingURL.in dexOf("/ww help.htm") ))   809          (In dex == Wor kingURL.in dexOf("/ww help.htm") ))
808       {   810       {
809         URLP refix = Wo rkingURL.s ubstring(0 , Index);   811         URLP refix = Wo rkingURL.s ubstring(0 , Index);
810       }   812       }
811     }   813     }
812     814  
813     return U RLPrefix;   815     return U RLPrefix;
814   }   816   }
815     817  
816   function   WWHHelp_Se tContextDo cument(Par amURL)   818   function   WWHHelp_Se tContextDo cument(Par amURL)
817   {   819   {
818     var  URL  = WWHFram e.WWHBrows er.fNormal izeURL(Par amURL);   820     var  URL  = WWHFram e.WWHBrows er.fNormal izeURL(Par amURL);
819     var  Cur rentURLPre fix;   821     var  Cur rentURLPre fix;
820     var  New URLPrefix;   822     var  New URLPrefix;
821     var  Var DocumentFr ame;   823     var  Var DocumentFr ame;
822     var  Var DocumentUR L;   824     var  Var DocumentUR L;
823     var  Var URLParamet ers;   825     var  Var URLParamet ers;
824     826  
825     827  
826     // Confi rm URL und er same hi erarchy   828     // Confi rm URL und er same hi erarchy
827     //   829     //
828     CurrentU RLPrefix =  WWHHelp_G etURLPrefi x(this.mLo cationURL) ;   830     CurrentU RLPrefix =  WWHHelp_G etURLPrefi x(this.mLo cationURL) ;
829     NewURLPr efix     =  WWHHelp_G etURLPrefi x(URL);   831     NewURLPr efix     =  WWHHelp_G etURLPrefi x(URL);
830     if ((Cur rentURLPre fix != nul l) &&   832     if ((Cur rentURLPre fix != nul l) &&
831         (New URLPrefix      != nul l) &&   833         (New URLPrefix      != nul l) &&
832         (Cur rentURLPre fix == New URLPrefix) )   834         (Cur rentURLPre fix == New URLPrefix) )
833     {   835     {
834       // Aut omatically  synchorni ze TOC   836       // Aut omatically  synchorni ze TOC
835       //   837       //
836       this.m bAutoSyncT OC = true;   838       this.m bAutoSyncT OC = true;
837     839  
838       // Che ck if in s ingle topi c mode   840       // Che ck if in s ingle topi c mode
839       //   841       //
840       if (th is.fSingle Topic())   842       if (th is.fSingle Topic())
841       {   843       {
842         // C heck for r equired sw itch to fr ameset wit h navigati on   844         // C heck for r equired sw itch to fr ameset wit h navigati on
843         //   845         //
844         WWHF rame.WWHSw itch.fProc essURL(Par amURL);   846         WWHF rame.WWHSw itch.fProc essURL(Par amURL);
845         if ( WWHFrame.W WHSwitch.m Implementa tion != "s ingle")   847         if ( WWHFrame.W WHSwitch.m Implementa tion != "s ingle")
846         {   848         {
847           //  Switch to  frameset  with navig ation   849           //  Switch to  frameset  with navig ation
848           //   850           //
849           if  (WWHFrame .WWHSwitch .mParamete rs.length  > 0)   851           if  (WWHFrame .WWHSwitch .mParamete rs.length  > 0)
850           {   852           {
851              // Context  and topic  supplied,  use them   853              // Context  and topic  supplied,  use them
852              //   854              //
853              this.fSetL ocation("W WHFrame",  ParamURL);   855              this.fSetL ocation("W WHFrame",  ParamURL);
854           }   856           }
855           el se   857           el se
856           {   858           {
857              // Just sw itch to fr ameset wit h navigati on and pre serve the  current do cument   859              // Just sw itch to fr ameset wit h navigati on and pre serve the  current do cument
858              //   860              //
859              VarDocumen tFrame = e val(this.f GetFrameRe ference("W WHDocument Frame"));   861              VarDocumen tFrame = e val(this.f GetFrameRe ference("W WHDocument Frame"));
860     862  
861              VarDocumen tURL = WWH Frame.WWHB rowser.fNo rmalizeURL (VarDocume ntFrame.lo cation.hre f);   863              VarDocumen tURL = WWH Frame.WWHB rowser.fNo rmalizeURL (VarDocume ntFrame.lo cation.hre f);
862              VarDocumen tURL = WWH Frame.WWHH elp.fGetBo okFileHREF (VarDocume ntURL);   864              VarDocumen tURL = WWH Frame.WWHH elp.fGetBo okFileHREF (VarDocume ntURL);
863              WWHFrame.W WHSwitch.f Exec(false , WWHFrame .WWHHelp.m HelpURLPre fix + "/ww help/wwhim pl/api.htm ?href=" +  WWHFrame.W WHBrowser. fRestoreEs capedSpace s( VarDocumen tURL) ) ;   865              WWHFrame.W WHSwitch.f Exec(false , WWHFrame .WWHHelp.m HelpURLPre fix + "/ww help/wwhim pl/api.htm ?href=" + 
VarDocumen tURL)
;
864           }   866           }
865         }   867         }
866         else   868         else
867         {   869         {
868           //  Update do cument fra me   870           //  Update do cument fra me
869           //   871           //
870           th is.fSetDoc umentFrame WithURL(UR L);   872           th is.fSetDoc umentFrame WithURL(UR L);
871         }   873         }
872       }   874       }
873       else   875       else
874       {   876       {
875         VarU RLParamete rs = this. fGetURLPar ameters(UR L);   877         VarU RLParamete rs = this. fGetURLPar ameters(UR L);
876     878  
877         // S pecifies a  document  to display ?   879         // S pecifies a  document  to display ?
878         //   880         //
879         if ( (VarURLPar ameters[0]  != null)  ||   881         if ( (VarURLPar ameters[0]  != null)  ||
880              (VarURLPar ameters[1]  != null)  ||   882              (VarURLPar ameters[1]  != null)  ||
881              (VarURLPar ameters[2]  != null)  ||   883              (VarURLPar ameters[2]  != null)  ||
882              (VarURLPar ameters[3]  != null))   884              (VarURLPar ameters[3]  != null))
883         {   885         {
884           //  Update do cument fra me   886           //  Update do cument fra me
885           //   887           //
886           th is.fSetDoc umentFrame WithURL(UR L);   888           th is.fSetDoc umentFrame WithURL(UR L);
887     889  
888           //  Set navig ation tab  to display   890           //  Set navig ation tab  to display
889           //   891           //
890           th is.mNewTab Name = Var URLParamet ers[5];   892           th is.mNewTab Name = Var URLParamet ers[5];
891         }   893         }
892         else   894         else
893         {   895         {
894           //  Switch ta bs   896           //  Switch ta bs
895           //   897           //
896           WW HFrame.WWH Handler.fS etCurrentT ab(VarURLP arameters[ 5]);   898           WW HFrame.WWH Handler.fS etCurrentT ab(VarURLP arameters[ 5]);
897         }   899         }
898       }   900       }
899     }   901     }
900     else   902     else
901     {   903     {
902       // Som e other he lp system  requested,  redirect  to it   904       // Som e other he lp system  requested,  redirect  to it
903       //   905       //
904       this.f SetLocatio n("WWHFram e", ParamU RL);   906       this.f SetLocatio n("WWHFram e", ParamU RL);
905     }   907     }
906   }   908   }
907     909  
908   function   WWHHelp_Ge tBookFileH REF(ParamH REF)   910   function   WWHHelp_Ge tBookFileH REF(ParamH REF)
909   {   911   {
910     var  Boo kFileHREF  = null;   912     var  Boo kFileHREF  = null;
911     var  Pre fix;   913     var  Pre fix;
912     var  Suf fix;   914     var  Suf fix;
913     915  
914     916  
915     // Confi rm HREF ca n be in sa me hierarc hy as Base URL   917     // Confi rm HREF ca n be in sa me hierarc hy as Base URL
916     //   918     //
917     if ((thi s.mBaseURL .length >  0) &&   919     if ((thi s.mBaseURL .length >  0) &&
918         (Par amHREF.len gth > this .mBaseURL. length))   920         (Par amHREF.len gth > this .mBaseURL. length))
919     {   921     {
920       Prefix  = ParamHR EF.substri ng(0, this .mBaseURL. length);   922       Prefix  = ParamHR EF.substri ng(0, this .mBaseURL. length);
921       Suffix  = ParamHR EF.substri ng(this.mB aseURL.len gth, Param HREF.lengt h);   923       Suffix  = ParamHR EF.substri ng(this.mB aseURL.len gth, Param HREF.lengt h);
922     924  
923       // Con firm HREF  definitely  is in sam e hierarch y as BaseU RL   925       // Con firm HREF  definitely  is in sam e hierarch y as BaseU RL
924       //   926       //
925       if (Pr efix == th is.mBaseUR L)   927       if (Pr efix == th is.mBaseUR L)
926       {   928       {
927         Book FileHREF =  Suffix;   929         Book FileHREF =  Suffix;
928       }   930       }
929     }   931     }
930     932  
931     return B ookFileHRE F;   933     return B ookFileHRE F;
932   }   934   }
933     935  
934   function   WWHHelp_HR EFToBookIn dexFileInd exAnchor(P aramHREF)   936   function   WWHHelp_HR EFToBookIn dexFileInd exAnchor(P aramHREF)
935   {   937   {
936     var  Res ultArray =  new Array (-1, -1, " ");   938     var  Res ultArray =  new Array (-1, -1, " ");
937     var  Boo kFileHREF;   939     var  Boo kFileHREF;
938     940  
939     941  
940     BookFile HREF = thi s.fGetBook FileHREF(P aramHREF);   942     BookFile HREF = thi s.fGetBook FileHREF(P aramHREF);
941     if (Book FileHREF ! = null)   943     if (Book FileHREF ! = null)
942     {   944     {
943       Result Array = th is.mBooks. fHREFToBoo kIndexFile IndexAncho r(BookFile HREF);   945       Result Array = th is.mBooks. fHREFToBoo kIndexFile IndexAncho r(BookFile HREF);
944     }   946     }
945     947  
946     return R esultArray ;   948     return R esultArray ;
947   }   949   }
948     950  
949   function   WWHHelp_Ge tSyncPrevN ext(ParamH REF)   951   function   WWHHelp_Ge tSyncPrevN ext(ParamH REF)
950   {   952   {
951     var  Res ultArray =  new Array (null, nul l, null);   953     var  Res ultArray =  new Array (null, nul l, null);
952     var  Par ts;   954     var  Par ts;
953     var  Abs oluteHREF;   955     var  Abs oluteHREF;
954     var  Var Anchor;   956     var  Var Anchor;
955     var  Boo kFileHREF;   957     var  Boo kFileHREF;
956     958  
957     959  
958     // Trim  named anch or entries   960     // Trim  named anch or entries
959     //   961     //
960     Parts =  ParamHREF. split("#") ;   962     Parts =  ParamHREF. split("#") ;
961     Absolute HREF = Par ts[0];   963     Absolute HREF = Par ts[0];
962     VarAncho r = "";   964     VarAncho r = "";
963     if (Part s.length >  1)   965     if (Part s.length >  1)
964     {   966     {
965       if (Pa rts[1].len gth > 0)   967       if (Pa rts[1].len gth > 0)
966       {   968       {
967         VarA nchor = "# " + Parts[ 1];   969         VarA nchor = "# " + Parts[ 1];
968       }   970       }
969     }   971     }
970     972  
971     BookFile HREF = thi s.fGetBook FileHREF(A bsoluteHRE F);   973     BookFile HREF = thi s.fGetBook FileHREF(A bsoluteHRE F);
972     if (Book FileHREF ! = null)   974     if (Book FileHREF ! = null)
973     {   975     {
974       if (Bo okFileHREF  == "wwhel p/wwhimpl/ common/htm l/default. htm")   976       if (Bo okFileHREF  == "wwhel p/wwhimpl/ common/htm l/default. htm")
975       {   977       {
976         Resu ltArray[2]  = this.mB ooks.fBook FileIndici esToHREF(0 , 0);   978         Resu ltArray[2]  = this.mB ooks.fBook FileIndici esToHREF(0 , 0);
977       }   979       }
978       else   980       else
979       {   981       {
980         Resu ltArray =  this.mBook s.fGetSync PrevNext(B ookFileHRE F);   982         Resu ltArray =  this.mBook s.fGetSync PrevNext(B ookFileHRE F);
981       }   983       }
982     984  
983       // Pre fix with B aseURL if  defined   985       // Pre fix with B aseURL if  defined
984       //   986       //
985     987  
986       // Cur rent   988       // Cur rent
987       //   989       //
988       if (Re sultArray[ 0] != null )   990       if (Re sultArray[ 0] != null )
989       {   991       {
990         Resu ltArray[0]  = this.mB aseURL + R esultArray [0] + VarA nchor;   992         Resu ltArray[0]  = this.mB aseURL + R esultArray [0] + VarA nchor;
991       }   993       }
992     994  
993       // Pre vious   995       // Pre vious
994       //   996       //
995       if (Re sultArray[ 1] != null )   997       if (Re sultArray[ 1] != null )
996       {   998       {
997         Resu ltArray[1]  = this.mB aseURL + R esultArray [1];   999         Resu ltArray[1]  = this.mB aseURL + R esultArray [1];
998       }   1000       }
999     1001  
1000       // Nex t   1002       // Nex t
1001       //   1003       //
1002       if (Re sultArray[ 2] != null )   1004       if (Re sultArray[ 2] != null )
1003       {   1005       {
1004         Resu ltArray[2]  = this.mB aseURL + R esultArray [2];   1006         Resu ltArray[2]  = this.mB aseURL + R esultArray [2];
1005       }   1007       }
1006     }   1008     }
1007     else   1009     else
1008     {   1010     {
1009       // Unk nown docum ent, enabl e next but ton to go  to first k nown page   1011       // Unk nown docum ent, enabl e next but ton to go  to first k nown page
1010       //   1012       //
1011       Result Array[2] =  this.mBas eURL + thi s.mBooks.f BookFileIn diciesToHR EF(0, 0);   1013       Result Array[2] =  this.mBas eURL + thi s.mBooks.f BookFileIn diciesToHR EF(0, 0);
1012     }   1014     }
1013     1015  
1014     return R esultArray ;   1016     return R esultArray ;
1015   }   1017   }
1016     1018  
1017   function   WWHHelp_HR EFToTitle( ParamHREF)   1019   function   WWHHelp_HR EFToTitle( ParamHREF)
1018   {   1020   {
1019     var  Tit le;   1021     var  Tit le;
1020     var  Par ts;   1022     var  Par ts;
1021     var  Abs oluteHREF;   1023     var  Abs oluteHREF;
1022     1024  
1023     1025  
1024     // Try t o find boo k and file   1026     // Try t o find boo k and file
1025     //   1027     //
1026     Parts =  this.fHREF ToBookInde xFileIndex Anchor(Par amHREF);   1028     Parts =  this.fHREF ToBookInde xFileIndex Anchor(Par amHREF);
1027     if ((Par ts[0] >= 0 ) &&   1029     if ((Par ts[0] >= 0 ) &&
1028         (Par ts[1] >= 0 ))   1030         (Par ts[1] >= 0 ))
1029     {   1031     {
1030       Title  = this.mBo oks.fBookI ndexFileIn dexToTitle (Parts[0],  Parts[1]) ;   1032       Title  = this.mBo oks.fBookI ndexFileIn dexToTitle (Parts[0],  Parts[1]) ;
1031     }   1033     }
1032     else   1034     else
1033     {   1035     {
1034       // Use  basename  for title   1036       // Use  basename  for title
1035       //   1037       //
1036       Parts  = ParamHRE F.split("# ");   1038       Parts  = ParamHRE F.split("# ");
1037       Absolu teHREF = P arts[0];   1039       Absolu teHREF = P arts[0];
1038       Parts  = Absolute HREF.split ("/");   1040       Parts  = Absolute HREF.split ("/");
1039       Title  = Parts[Pa rts.length  - 1];   1041       Title  = Parts[Pa rts.length  - 1];
1040     }   1042     }
1041     1043  
1042     return T itle;   1044     return T itle;
1043   }   1045   }
1044     1046  
1045   function   WWHHelp_Es capeHTML(P aramText)   1047   function   WWHHelp_Es capeHTML(P aramText)
1046   {   1048   {
1047     return W WHStringUt ilities_Es capeHTML(P aramText);   1049     return W WHStringUt ilities_Es capeHTML(P aramText);
1048   }   1050   }
1049     1051  
1050   function   WWHHelp_Po pupHTML()   1052   function   WWHHelp_Po pupHTML()
1051   {   1053   {
1052     var  Var HTML = "";   1054     var  Var HTML = "";
1053     1055  
1054     1056  
1055     if ((WWH Frame.WWHB rowser.mbS upportsPop ups) &&   1057     if ((WWH Frame.WWHB rowser.mbS upportsPop ups) &&
1056         (WWH Frame.WWHB rowser.mbS upportsIFr ames))   1058         (WWH Frame.WWHB rowser.mbS upportsIFr ames))
1057     {   1059     {
1058       VarHTM L = this.m Popup.fDiv TagText();   1060       VarHTM L = this.m Popup.fDiv TagText();
1059     }   1061     }
1060     1062  
1061     return V arHTML;   1063     return V arHTML;
1062   }   1064   }
1063     1065  
1064   function   WWHHelp_Sh owPopup(Pa ramContext ,   1066   function   WWHHelp_Sh owPopup(Pa ramContext ,
1065                                 Pa ramLink,   1067                                 Pa ramLink,
1066                                 Pa ramEvent)   1068                                 Pa ramEvent)
1067   {   1069   {
1068     var  Boo k;   1070     var  Boo k;
1069     var  Lin k;   1071     var  Lin k;
1070     var  Src ;   1072     var  Src ;
1071     var  Pop upHTML;   1073     var  Pop upHTML;
1072     1074  
1073     if ((WWH Frame.WWHB rowser.mbS upportsPop ups) &&   1075     if ((WWH Frame.WWHB rowser.mbS upportsPop ups) &&
1074         (WWH Frame.WWHB rowser.mbS upportsIFr ames))   1076         (WWH Frame.WWHB rowser.mbS upportsIFr ames))
1075     {   1077     {
1076       Book =  this.mBoo ks.fGetCon textBook(P aramContex t);   1078       Book =  this.mBoo ks.fGetCon textBook(P aramContex t);
1077       if (Bo ok != null )   1079       if (Bo ok != null )
1078       {   1080       {
1079         Link  = WWHFram e.WWHBrows er.fNormal izeURL(Par amLink);   1081         Link  = WWHFram e.WWHBrows er.fNormal izeURL(Par amLink);
1080         Src  = this.mBa seURL + Bo ok.mDirect ory + Link ;   1082         Src  = this.mBa seURL + Bo ok.mDirect ory + Link ;
1081         Popu pHTML = "< div onmous eout=\"WWH HidePopup( );\"><ifra me id=\"WW HPopupIFra me\" frame border=\"0 \" scrolli ng=\"no\"  width=\""  + this.mPo pup.mWidth  + "\" src =\"" + Src  + "\" onl oad=\"java script:WWH PopupLoade d()\"></if rame></div >";   1083         Popu pHTML = "< div onmous eout=\"WWH HidePopup( );\"><ifra me id=\"WW HPopupIFra me\" frame border=\"0 \" scrolli ng=\"no\"  width=\""  + this.mPo pup.mWidth  + "\" src =\"" + Src  + "\" onl oad=\"java script:WWH PopupLoade d()\"></if rame></div >";
1082         this .mPopup.fS how(PopupH TML, Param Event);   1084         this .mPopup.fS how(PopupH TML, Param Event);
1083     1085  
1084         // W ORKAROUND:  Need to s ize popup  after IFra me has loa ded   1086         // W ORKAROUND:  Need to s ize popup  after IFra me has loa ded
1085         //   1087         //
1086         if ( this.mPopu p.mSetTime outID != n ull)   1088         if ( this.mPopu p.mSetTime outID != n ull)
1087         {   1089         {
1088           cl earTimeout (this.mPop up.mSetTim eoutID);   1090           cl earTimeout (this.mPop up.mSetTim eoutID);
1089           th is.mPopup. mSetTimeou tID = null ;   1091           th is.mPopup. mSetTimeou tID = null ;
1090     1092  
1091           th is.mPopupL oaded = fa lse;   1093           th is.mPopupL oaded = fa lse;
1092           th is.mPopup. mSetTimeou tID = setT imeout("WW HFrame.WWH Help.fReve alPopup()" , this.mPo pup.mTimeo ut);   1094           th is.mPopup. mSetTimeou tID = setT imeout("WW HFrame.WWH Help.fReve alPopup()" , this.mPo pup.mTimeo ut);
1093         }   1095         }
1094       }   1096       }
1095     }   1097     }
1096   }   1098   }
1097     1099  
1098   function   WWHHelp_Po pupAdjustS ize()   1100   function   WWHHelp_Po pupAdjustS ize()
1099   {   1101   {
1100     var  Var PopupWindo w = eval(t his.mPopup .mWindowRe f);   1102     var  Var PopupWindo w = eval(t his.mPopup .mWindowRe f);
1101     var  Var PopupDocum ent = VarP opupWindow .document;   1103     var  Var PopupDocum ent = VarP opupWindow .document;
1102     var  Var DocumentEl ement;   1104     var  Var DocumentEl ement;
1103     var  Var MaxHeight;   1105     var  Var MaxHeight;
1104     var  Var IFrame;   1106     var  Var IFrame;
1105     var  Var Element;   1107     var  Var Element;
1106     var  Var Width;   1108     var  Var Width;
1107     var  Var Height;   1109     var  Var Height;
1108     var  Var DistanceTo RightEdge;   1110     var  Var DistanceTo RightEdge;
1109     1111  
1110     // Acces s popup if rame   1112     // Acces s popup if rame
1111     //   1113     //
1112     if (WWHF rame.WWHBr owser.mBro wser == 2)   // Short hand for I nternet Ex plorer   1114     if (WWHF rame.WWHBr owser.mBro wser == 2)   // Short hand for I nternet Ex plorer
1113     {   1115     {
1114       // Acc ess popup  iframe   1116       // Acc ess popup  iframe
1115       //   1117       //
1116       VarIFr ame = VarP opupDocume nt.all['WW HPopupIFra me'];   1118       VarIFr ame = VarP opupDocume nt.all['WW HPopupIFra me'];
1117     1119  
1118       // Acc ess docume nt element s   1120       // Acc ess docume nt element s
1119       //   1121       //
1120       if ((t ypeof(VarP opupDocume nt.documen tElement)  != "undefi ned") &&   1122       if ((t ypeof(VarP opupDocume nt.documen tElement)  != "undefi ned") &&
1121           (t ypeof(VarP opupDocume nt.documen tElement.c lientWidth ) != "unde fined") &&   1123           (t ypeof(VarP opupDocume nt.documen tElement.c lientWidth ) != "unde fined") &&
1122           (t ypeof(VarP opupDocume nt.documen tElement.c lientHeigh t) != "und efined") & &   1124           (t ypeof(VarP opupDocume nt.documen tElement.c lientHeigh t) != "und efined") & &
1123           (( VarPopupDo cument.doc umentEleme nt.clientW idth != 0)  ||   1125           (( VarPopupDo cument.doc umentEleme nt.clientW idth != 0)  ||
1124            ( VarPopupDo cument.doc umentEleme nt.clientH eight != 0 )))   1126            ( VarPopupDo cument.doc umentEleme nt.clientH eight != 0 )))
1125       {   1127       {
1126         VarD ocumentEle ment = Var PopupDocum ent.docume ntElement;   1128         VarD ocumentEle ment = Var PopupDocum ent.docume ntElement;
1127         VarE lement = V arIFrame.c ontentWind ow.documen t.document Element;   1129         VarE lement = V arIFrame.c ontentWind ow.documen t.document Element;
1128       }   1130       }
1129       else   1131       else
1130       {   1132       {
1131         VarD ocumentEle ment = Var PopupDocum ent.body;   1133         VarD ocumentEle ment = Var PopupDocum ent.body;
1132         VarE lement = V arIFrame.c ontentWind ow.documen t.body;   1134         VarE lement = V arIFrame.c ontentWind ow.documen t.body;
1133       }   1135       }
1134     1136  
1135       // Det ermine max imum heigh t   1137       // Det ermine max imum heigh t
1136       //   1138       //
1137       VarMax Height = V arDocument Element.cl ientHeight  - 16;   1139       VarMax Height = V arDocument Element.cl ientHeight  - 16;
1138     1140  
1139       // Rec ord width   1141       // Rec ord width
1140       //   1142       //
1141       VarWid th = (VarE lement.scr ollWidth >  VarElemen t.offsetWi dth) ? Var Element.sc rollWidth  : VarEleme nt.offsetW idth;   1143       VarWid th = (VarE lement.scr ollWidth >  VarElemen t.offsetWi dth) ? Var Element.sc rollWidth  : VarEleme nt.offsetW idth;
1142     1144  
1143       // Det ermine hei ght   1145       // Det ermine hei ght
1144       //   1146       //
1145       VarHei ght = (Var Element.sc rollHeight  > VarElem ent.offset Height) ?  VarElement .scrollHei ght : VarE lement.off setHeight;   1147       VarHei ght = (Var Element.sc rollHeight  > VarElem ent.offset Height) ?  VarElement .scrollHei ght : VarE lement.off setHeight;
1146       VarHei ght += 4;   1148       VarHei ght += 4;
1147       if (Va rHeight >  VarMaxHeig ht)   1149       if (Va rHeight >  VarMaxHeig ht)
1148       {   1150       {
1149         VarH eight = Va rMaxHeight ;   1151         VarH eight = Va rMaxHeight ;
1150     1152  
1151         // F ind widest  area to l eft or rig ht of curs or positio n   1153         // F ind widest  area to l eft or rig ht of curs or positio n
1152         //   1154         //
1153         VarD istanceToR ightEdge =  VarPopupD ocument.do cumentElem ent.offset Width - th is.mPopup. mPositionX ;   1155         VarD istanceToR ightEdge =  VarPopupD ocument.do cumentElem ent.offset Width - th is.mPopup. mPositionX ;
1154         if ( VarDistanc eToRightEd ge < this. mPopup.mPo sitionX)   1156         if ( VarDistanc eToRightEd ge < this. mPopup.mPo sitionX)
1155         {   1157         {
1156           Va rWidth = t his.mPopup .mPosition X;   1158           Va rWidth = t his.mPopup .mPosition X;
1157         }   1159         }
1158         else   1160         else
1159         {   1161         {
1160           Va rWidth = V arDistance ToRightEdg e;   1162           Va rWidth = V arDistance ToRightEdg e;
1161         }   1163         }
1162       }   1164       }
1163     1165  
1164       // Upd ate IFrame  width/hei ght   1166       // Upd ate IFrame  width/hei ght
1165       //   1167       //
1166       if (Va rWidth > V arIFrame.s tyle.width )   1168       if (Va rWidth > V arIFrame.s tyle.width )
1167       {   1169       {
1168         VarI Frame.styl e.width =  VarWidth;   1170         VarI Frame.styl e.width =  VarWidth;
1169       }   1171       }
1170       if (Va rHeight >  VarIFrame. style.heig ht)   1172       if (Va rHeight >  VarIFrame. style.heig ht)
1171       {   1173       {
1172         VarI Frame.styl e.height =  VarHeight ;   1174         VarI Frame.styl e.height =  VarHeight ;
1173       }   1175       }
1174     }   1176     }
1175     else   1177     else
1176     {   1178     {
1177       // Det ermine max imum heigh t   1179       // Det ermine max imum heigh t
1178       //   1180       //
1179       VarMax Height = V arPopupWin dow.innerH eight - 16 ;   1181       VarMax Height = V arPopupWin dow.innerH eight - 16 ;
1180     1182  
1181       // Acc ess popup  iframe   1183       // Acc ess popup  iframe
1182       //   1184       //
1183       VarIFr ame = VarP opupDocume nt.getElem entById('W WHPopupIFr ame');   1185       VarIFr ame = VarP opupDocume nt.getElem entById('W WHPopupIFr ame');
1184     1186  
1185       // Rec ord width   1187       // Rec ord width
1186       //   1188       //
1187       VarWid th = VarIF rame.conte ntDocument .body.offs etWidth +  16;   1189       VarWid th = VarIF rame.conte ntDocument .body.offs etWidth +  16;
1188     1190  
1189       // Det ermine hei ght   1191       // Det ermine hei ght
1190       //   1192       //
1191       VarHei ght = VarI Frame.cont entDocumen t.body.off setHeight  + 16;   1193       VarHei ght = VarI Frame.cont entDocumen t.body.off setHeight  + 16;
1192       if (Va rHeight >  VarMaxHeig ht)   1194       if (Va rHeight >  VarMaxHeig ht)
1193       {   1195       {
1194         VarH eight = Va rMaxHeight ;   1196         VarH eight = Va rMaxHeight ;
1195     1197  
1196         // F ind widest  area to l eft or rig ht of curs or positio n   1198         // F ind widest  area to l eft or rig ht of curs or positio n
1197         //   1199         //
1198         VarD istanceToR ightEdge =  VarPopupW indow.inne rWidth - t his.mPopup .mPosition X;   1200         VarD istanceToR ightEdge =  VarPopupW indow.inne rWidth - t his.mPopup .mPosition X;
1199         if ( VarDistanc eToRightEd ge < this. mPopup.mPo sitionX)   1201         if ( VarDistanc eToRightEd ge < this. mPopup.mPo sitionX)
1200         {   1202         {
1201           Va rWidth = t his.mPopup .mPosition X - 16 - 1 6;   1203           Va rWidth = t his.mPopup .mPosition X - 16 - 1 6;
1202         }   1204         }
1203         else   1205         else
1204         {   1206         {
1205           Va rWidth = V arDistance ToRightEdg e - 16;   1207           Va rWidth = V arDistance ToRightEdg e - 16;
1206         }   1208         }
1207       }   1209       }
1208     1210  
1209       // Upd ate IFrame  width/hei ght   1211       // Upd ate IFrame  width/hei ght
1210       //   1212       //
1211       if (Va rWidth > V arIFrame.w idth)   1213       if (Va rWidth > V arIFrame.w idth)
1212       {   1214       {
1213         VarI Frame.widt h = VarWid th;   1215         VarI Frame.widt h = VarWid th;
1214       }   1216       }
1215       if (Va rHeight >  VarIFrame. height)   1217       if (Va rHeight >  VarIFrame. height)
1216       {   1218       {
1217         VarI Frame.heig ht = VarHe ight;   1219         VarI Frame.heig ht = VarHe ight;
1218       }   1220       }
1219     }   1221     }
1220   }   1222   }
1221     1223  
1222   function   WWHHelp_Po pupLoaded( )   1224   function   WWHHelp_Po pupLoaded( )
1223   {   1225   {
1224     this.fPo pupAdjustS ize();   1226     this.fPo pupAdjustS ize();
1225     1227  
1226     this.mPo pupLoaded  = true;   1228     this.mPo pupLoaded  = true;
1227   }   1229   }
1228     1230  
1229   function   WWHHelp_Re vealPopup( )   1231   function   WWHHelp_Re vealPopup( )
1230   {   1232   {
1231     var  Var PopupDocum ent;   1233     var  Var PopupDocum ent;
1232     var  Var IFrame;   1234     var  Var IFrame;
1233     var  Var Element;   1235     var  Var Element;
1234     1236  
1235     if ((thi s.mPopup.m SetTimeout ID != null ) &&   1237     if ((thi s.mPopup.m SetTimeout ID != null ) &&
1236         (thi s.mPopupLo aded))   1238         (thi s.mPopupLo aded))
1237     {   1239     {
1238       // Dis able hide  capability  temporari ly   1240       // Dis able hide  capability  temporari ly
1239       //   1241       //
1240       this.m PopupHideD isabled =  true;   1242       this.m PopupHideD isabled =  true;
1241     1243  
1242       // Rev eal   1244       // Rev eal
1243       //   1245       //
1244       this.m Popup.fRev eal();   1246       this.m Popup.fRev eal();
1245     1247  
1246       // Res et IFrame  content if  necessary   1248       // Res et IFrame  content if  necessary
1247       //   1249       //
1248       if (WW HFrame.WWH Browser.mB rowser ==  2)  // Sho rthand for  Internet  Explorer   1250       if (WW HFrame.WWH Browser.mB rowser ==  2)  // Sho rthand for  Internet  Explorer
1249       {   1251       {
1250         // A ccess popu p IFrame   1252         // A ccess popu p IFrame
1251         //   1253         //
1252         VarP opupDocume nt = eval( this.mPopu p.mWindowR ef + ".doc ument");   1254         VarP opupDocume nt = eval( this.mPopu p.mWindowR ef + ".doc ument");
1253         VarI Frame = Va rPopupDocu ment.all[' WWHPopupIF rame'];   1255         VarI Frame = Va rPopupDocu ment.all[' WWHPopupIF rame'];
1254         VarE lement = V arIFrame.c ontentWind ow.documen t.body;   1256         VarE lement = V arIFrame.c ontentWind ow.documen t.body;
1255     1257  
1256         // " Toggle" IF rame conte nt   1258         // " Toggle" IF rame conte nt
1257         //   1259         //
1258         VarE lement.inn erHTML = V arElement. innerHTML;   1260         VarE lement.inn erHTML = V arElement. innerHTML;
1259       }   1261       }
1260     1262  
1261       // Ena ble hide c apability  in a bit   1263       // Ena ble hide c apability  in a bit
1262       //   1264       //
1263       setTim eout("WWHF rame.WWHHe lp.fResetP opupHideDi sabled()",  100);   1265       setTim eout("WWHF rame.WWHHe lp.fResetP opupHideDi sabled()",  100);
1264     }   1266     }
1265     else   1267     else
1266     {   1268     {
1267       this.m Popup.mSet TimeoutID  = setTimeo ut("WWHFra me.WWHHelp .fRevealPo pup()", 10 );   1269       this.m Popup.mSet TimeoutID  = setTimeo ut("WWHFra me.WWHHelp .fRevealPo pup()", 10 );
1268     }   1270     }
1269   }   1271   }
1270     1272  
1271   function   WWHHelp_Re setPopupHi deDisabled ()   1273   function   WWHHelp_Re setPopupHi deDisabled ()
1272   {   1274   {
1273     this.mPo pupHideDis abled = fa lse;   1275     this.mPo pupHideDis abled = fa lse;
1274   }   1276   }
1275     1277  
1276   function   WWHHelp_Hi dePopup()   1278   function   WWHHelp_Hi dePopup()
1277   {   1279   {
1278     if ( ! t his.mPopup HideDisabl ed)   1280     if ( ! t his.mPopup HideDisabl ed)
1279     {   1281     {
1280       this.m Popup.fHid e();   1282       this.m Popup.fHid e();
1281     }   1283     }
1282   }   1284   }
1283     1285  
1284   function   WWHHelp_Cl ickedPopup (ParamCont ext,   1286   function   WWHHelp_Cl ickedPopup (ParamCont ext,
1285                                     ParamLink ,   1287                                     ParamLink ,
1286                                     ParamPopu pLink)   1288                                     ParamPopu pLink)
1287   {   1289   {
1288     var  Var TargetLink ;   1290     var  Var TargetLink ;
1289     1291  
1290     if ((WWH Frame.WWHB rowser.mbS upportsPop ups) &&   1292     if ((WWH Frame.WWHB rowser.mbS upportsPop ups) &&
1291         (WWH Frame.WWHB rowser.mbS upportsIFr ames))   1293         (WWH Frame.WWHB rowser.mbS upportsIFr ames))
1292     {   1294     {
1293       // Sho w popup ta rget   1295       // Sho w popup ta rget
1294       //   1296       //
1295       this.f HidePopup( );   1297       this.f HidePopup( );
1296       VarTar getLink =  ParamLink;   1298       VarTar getLink =  ParamLink;
1297     }   1299     }
1298     else   1300     else
1299     {   1301     {
1300       // Sho w popup, i f defined   1302       // Sho w popup, i f defined
1301       //   1303       //
1302       VarTar getLink =  ParamPopup Link;   1304       VarTar getLink =  ParamPopup Link;
1303       if (Va rTargetLin k.length = = 0)   1305       if (Va rTargetLin k.length = = 0)
1304       {   1306       {
1305         VarT argetLink  = ParamLin k;   1307         VarT argetLink  = ParamLin k;
1306       }   1308       }
1307     }   1309     }
1308     1310  
1309     // Displ ay target  link   1311     // Displ ay target  link
1310     //   1312     //
1311     this.fDi splayFile( ParamConte xt, VarTar getLink);   1313     this.fDi splayFile( ParamConte xt, VarTar getLink);
1312   }   1314   }
1313     1315  
1314   function   WWHHelp_Di splayFile( ParamConte xt,   1316   function   WWHHelp_Di splayFile( ParamConte xt,
1315                                    ParamLink)   1317                                    ParamLink)
1316   {   1318   {
1317     var  Boo k;   1319     var  Boo k;
1318     var  Lin k;   1320     var  Lin k;
1319     1321  
1320     // Link  defined?   1322     // Link  defined?
1321     //   1323     //
1322     if (Para mLink.leng th > 0)   1324     if (Para mLink.leng th > 0)
1323     {   1325     {
1324       Book =  this.mBoo ks.fGetCon textBook(P aramContex t);   1326       Book =  this.mBoo ks.fGetCon textBook(P aramContex t);
1325       if (Bo ok != null )   1327       if (Bo ok != null )
1326       {   1328       {
1327         Link  = WWHFram e.WWHBrows er.fNormal izeURL(Par amLink);   1329         Link  = WWHFram e.WWHBrows er.fNormal izeURL(Par amLink);
1328         WWHF rame.WWHHe lp.fSetDoc umentHREF( this.mBase URL + Book .mDirector y + Link,  false);   1330         WWHF rame.WWHHe lp.fSetDoc umentHREF( this.mBase URL + Book .mDirector y + Link,  false);
1329       }   1331       }
1330     }   1332     }
1331   }   1333   }
1332     1334  
1333   function   WWHHelp_Di splayFirst ()   1335   function   WWHHelp_Di splayFirst ()
1334   {   1336   {
1335     VarURL =  WWHFrame. WWHHelp.fG etBookInde xFileIndex URL(0, 0,  null);   1337     VarURL =  WWHFrame. WWHHelp.fG etBookInde xFileIndex URL(0, 0,  null);
1336     WWHFrame .WWHHelp.f SetDocumen tHREF(VarU RL, true);   1338     WWHFrame .WWHHelp.f SetDocumen tHREF(VarU RL, true);
1337     1339  
1338     // Autom atically s ynchronize  TOC   1340     // Autom atically s ynchronize  TOC
1339     //   1341     //
1340     this.mbA utoSyncTOC  = true;   1342     this.mbA utoSyncTOC  = true;
1341   }   1343   }
1342     1344  
1343   function   WWHHelp_Sh owTopic(Pa ramContext ,   1345   function   WWHHelp_Sh owTopic(Pa ramContext ,
1344                                 Pa ramTopic)   1346                                 Pa ramTopic)
1345   {   1347   {
1346     var  Var ContextBoo k;   1348     var  Var ContextBoo k;
1347     1349  
1348     1350  
1349     // Deter mine book  directory   1351     // Deter mine book  directory
1350     //   1352     //
1351     VarConte xtBook = t his.mBooks .fGetConte xtBook(Par amContext) ;   1353     VarConte xtBook = t his.mBooks .fGetConte xtBook(Par amContext) ;
1352     if (VarC ontextBook  != null)   1354     if (VarC ontextBook  != null)
1353     {   1355     {
1354       // Set up for a t opic searc h   1356       // Set up for a t opic searc h
1355       //   1357       //
1356       this.m ContextDir  = VarCont extBook.mD irectory;   1358       this.m ContextDir  = VarCont extBook.mD irectory;
1357       this.m TopicTag    = ParamTo pic;   1359       this.m TopicTag    = ParamTo pic;
1358     1360  
1359       this.m DocumentUR L = "";   1361       this.m DocumentUR L = "";
1360     1362  
1361       // Loa d topic da ta to dete rmine docu ment to di splay   1363       // Loa d topic da ta to dete rmine docu ment to di splay
1362       //   1364       //
1363       this.f SetDocumen tHREF(this .mBaseURL  + "wwhelp/ wwhimpl/co mmon/html/ document.h tm", false );   1365       this.f SetDocumen tHREF(this .mBaseURL  + "wwhelp/ wwhimpl/co mmon/html/ document.h tm", false );
1364     }   1366     }
1365   }   1367   }
1366     1368  
1367   function   WWHHelp_Up date(Param URL)   1369   function   WWHHelp_Up date(Param URL)
1368   {   1370   {
1369     var  URL ;   1371     var  URL ;
1370     var  Par ts;   1372     var  Par ts;
1371     1373  
1372     1374  
1373     if (this .mbInitial ized)   1375     if (this .mbInitial ized)
1374     {   1376     {
1375       URL =  WWHFrame.W WHBrowser. fNormalize URL(ParamU RL);   1377       URL =  WWHFrame.W WHBrowser. fNormalize URL(ParamU RL);
1376     1378  
1377       if (WW HFrame.WWH Handler.fI sReady())   1379       if (WW HFrame.WWH Handler.fI sReady())
1378       {   1380       {
1379         Part s = this.f HREFToBook IndexFileI ndexAnchor (URL);   1381         Part s = this.f HREFToBook IndexFileI ndexAnchor (URL);
1380         if ( (Parts[0]  >= 0) &&   1382         if ( (Parts[0]  >= 0) &&
1381              (Parts[1]  >= 0))   1383              (Parts[1]  >= 0))
1382         {   1384         {
1383           WW HFrame.WWH Handler.fU pdate(Part s[0], Part s[1], Part s[2]);   1385           WW HFrame.WWH Handler.fU pdate(Part s[0], Part s[1], Part s[2]);
1384         }   1386         }
1385     1387  
1386         this .fDocument Bookkeepin g(URL);   1388         this .fDocument Bookkeepin g(URL);
1387     1389  
1388         // S witch tabs , if neces sary   1390         // S witch tabs , if neces sary
1389         //   1391         //
1390         if ( this.mNewT abName !=  null)   1392         if ( this.mNewT abName !=  null)
1391         {   1393         {
1392           WW HFrame.WWH Handler.fS etCurrentT ab(this.mN ewTabName) ;   1394           WW HFrame.WWH Handler.fS etCurrentT ab(this.mN ewTabName) ;
1393     1395  
1394           th is.mNewTab Name = nul l;   1396           th is.mNewTab Name = nul l;
1395         }   1397         }
1396       }   1398       }
1397       else   1399       else
1398       {   1400       {
1399         // T ry again i n a bit   1401         // T ry again i n a bit
1400         //   1402         //
1401         setT imeout("WW HFrame.WWH Help.fUpda te(\"" + W WHStringUt ilities_Es capeForJav aScript(Pa ramURL) +  "\");", 10 0);   1403         setT imeout("WW HFrame.WWH Help.fUpda te(\"" + W WHStringUt ilities_Es capeForJav aScript(Pa ramURL) +  "\");", 10 0);
1402       }   1404       }
1403     }   1405     }
1404     else if  (ParamURL. indexOf("w whelp/wwhi mpl/common /html/defa ult.htm")  == -1)   1406     else if  (ParamURL. indexOf("w whelp/wwhi mpl/common /html/defa ult.htm")  == -1)
1405     {   1407     {
1406       // Try  again in  a bit   1408       // Try  again in  a bit
1407       //   1409       //
1408       this.m DocumentLo aded = Par amURL;   1410       this.m DocumentLo aded = Par amURL;
1409       setTim eout("WWHF rame.WWHHe lp.fUpdate (\"" + WWH StringUtil ities_Esca peForJavaS cript(Para mURL) + "\ ");", 100) ;   1411       setTim eout("WWHF rame.WWHHe lp.fUpdate (\"" + WWH StringUtil ities_Esca peForJavaS cript(Para mURL) + "\ ");", 100) ;
1410     }   1412     }
1411   }   1413   }
1412     1414  
1413   function   WWHHelp_Sy ncTOC(Para mURL,   1415   function   WWHHelp_Sy ncTOC(Para mURL,
1414                               bPar amReportEr ror)   1416                               bPar amReportEr ror)
1415   {   1417   {
1416     var  Par ts;   1418     var  Par ts;
1417     1419  
1418     if (WWHF rame.WWHHa ndler.fIsR eady())   1420     if (WWHF rame.WWHHa ndler.fIsR eady())
1419     {   1421     {
1420       Parts  = this.fHR EFToBookIn dexFileInd exAnchor(P aramURL);   1422       Parts  = this.fHR EFToBookIn dexFileInd exAnchor(P aramURL);
1421       if ((P arts[0] >=  0) &&   1423       if ((P arts[0] >=  0) &&
1422           (P arts[1] >=  0))   1424           (P arts[1] >=  0))
1423       {   1425       {
1424         WWHF rame.WWHHa ndler.fSyn cTOC(Parts [0], Parts [1], Parts [2], bPara mReportErr or);   1426         WWHF rame.WWHHa ndler.fSyn cTOC(Parts [0], Parts [1], Parts [2], bPara mReportErr or);
1425       }   1427       }
1426     }   1428     }
1427     else   1429     else
1428     {   1430     {
1429       // Try  again in  a bit   1431       // Try  again in  a bit
1430       //   1432       //
1431       setTim eout("WWHF rame.WWHHe lp.fSyncTO C(\"" + WW HStringUti lities_Esc apeForJava Script(Par amURL) + " \", " + bP aramReport Error + ") ;", 100);   1433       setTim eout("WWHF rame.WWHHe lp.fSyncTO C(\"" + WW HStringUti lities_Esc apeForJava Script(Par amURL) + " \", " + bP aramReport Error + ") ;", 100);
1432     }   1434     }
1433   }   1435   }
1434     1436  
1435   function   WWHHelp_Fa voritesCur rent(Param URL)   1437   function   WWHHelp_Fa voritesCur rent(Param URL)
1436   {   1438   {
1437     var  Par ts;   1439     var  Par ts;
1438     1440  
1439     if (WWHF rame.WWHHa ndler.fIsR eady())   1441     if (WWHF rame.WWHHa ndler.fIsR eady())
1440     {   1442     {
1441       Parts  = this.fHR EFToBookIn dexFileInd exAnchor(P aramURL);   1443       Parts  = this.fHR EFToBookIn dexFileInd exAnchor(P aramURL);
1442       if ((P arts[0] >=  0) &&   1444       if ((P arts[0] >=  0) &&
1443           (P arts[1] >=  0))   1445           (P arts[1] >=  0))
1444       {   1446       {
1445         WWHF rame.WWHHa ndler.fFav oritesCurr ent(Parts[ 0], Parts[ 1]);   1447         WWHF rame.WWHHa ndler.fFav oritesCurr ent(Parts[ 0], Parts[ 1]);
1446       }   1448       }
1447       else   1449       else
1448       {   1450       {
1449         WWHF rame.WWHHa ndler.fFav oritesCurr ent(-1, -1 );   1451         WWHF rame.WWHHa ndler.fFav oritesCurr ent(-1, -1 );
1450       }   1452       }
1451     }   1453     }
1452     else   1454     else
1453     {   1455     {
1454       // Try  again in  a bit   1456       // Try  again in  a bit
1455       //   1457       //
1456       setTim eout("WWHF rame.WWHHe lp.fFavori tesCurrent (\"" + WWH StringUtil ities_Esca peForJavaS cript(Para mURL) + "\ ");", 100) ;   1458       setTim eout("WWHF rame.WWHHe lp.fFavori tesCurrent (\"" + WWH StringUtil ities_Esca peForJavaS cript(Para mURL) + "\ ");", 100) ;
1457     }   1459     }
1458   }   1460   }
1459     1461  
1460   function   WWHHelp_Do cumentBook keeping(Pa ramURL)   1462   function   WWHHelp_Do cumentBook keeping(Pa ramURL)
1461   {   1463   {
1462     var  Var DocumentFr ame;   1464     var  Var DocumentFr ame;
1463     var  Var URL;   1465     var  Var URL;
1464     1466  
1465     // Highl ight searc h words   1467     // Highl ight searc h words
1466     //   1468     //
1467     if (type of(WWHFram e.WWHHighl ightWords)  != "undef ined")   1469     if (type of(WWHFram e.WWHHighl ightWords)  != "undef ined")
1468     {   1470     {
1469       WWHFra me.WWHHigh lightWords .fExec();   1471       WWHFra me.WWHHigh lightWords .fExec();
1470     }   1472     }
1471     1473  
1472     // Updat e controls   1474     // Updat e controls
1473     //   1475     //
1474     WWHFrame .WWHContro ls.fUpdate HREF(Param URL);   1476     WWHFrame .WWHContro ls.fUpdate HREF(Param URL);
1475     1477  
1476     // Updat e window t itle, if p ossible   1478     // Updat e window t itle, if p ossible
1477     //   1479     //
1478     if (Para mURL.index Of("wwhelp /wwhimpl/c ommon/html /default.h tm") == -1 )   1480     if (Para mURL.index Of("wwhelp /wwhimpl/c ommon/html /default.h tm") == -1 )
1479     {   1481     {
1480       if (WW HFrame.WWH Browser.mB rowser !=  1)  // Sho rthand for  Netscape   1482       if (WW HFrame.WWH Browser.mB rowser !=  1)  // Sho rthand for  Netscape
1481       {   1483       {
1482         WWHF rame.docum ent.title  = WWHStrin gUtilities _UnescapeH TML(this.f HREFToTitl e(ParamURL ));   1484         WWHF rame.docum ent.title  = WWHStrin gUtilities _UnescapeH TML(this.f HREFToTitl e(ParamURL ));
1483       }   1485       }
1484     }   1486     }
1485     1487  
1486     // Autom atically s ynchronize  TOC, if r equested   1488     // Autom atically s ynchronize  TOC, if r equested
1487     //   1489     //
1488     
this.fAuto SyncTOC();
  1490     if ( ! t his.mColla psingTOCEn try)
        1491     {
        1492         this.fAuto SyncTOC();
        1493     }
        1494     this.mCo llapsingTO CEntry = f alse;
1489     1495  
1490     // Updat e favorite s   1496     // Updat e favorite s
1491     //   1497     //
1492     VarDocum entFrame =  eval(this .fGetFrame Reference( "WWHDocume ntFrame")) ;   1498     VarDocum entFrame =  eval(this .fGetFrame Reference( "WWHDocume ntFrame")) ;
1493     VarURL =  WWHFrame. WWHBrowser .fNormaliz eURL(VarDo cumentFram e.location .href);   1499     VarURL =  WWHFrame. WWHBrowser .fNormaliz eURL(VarDo cumentFram e.location .href);
1494     this.fFa voritesCur rent(VarUR L);   1500     this.fFa voritesCur rent(VarUR L);
1495     1501  
1496     // Updat e hash   1502     // Updat e hash
1497     //   1503     //
1498     this.fUp dateHash(V arURL);   1504     this.fUp dateHash(V arURL);
1499   }   1505   }
1500     1506  
1501   function   WWHHelp_Up dateHash(P aramURL)   1507   function   WWHHelp_Up dateHash(P aramURL)
1502   {   1508   {
1503     var  Var FileName;   1509     var  Var FileName;
1504     var  Var Hash;   1510     var  Var Hash;
1505     1511  
1506     // Only  update if  "?" is not  present ( and theref ore has pr iority)   1512     // Only  update if  "?" is not  present ( and theref ore has pr iority)
1507     //   1513     //
1508     if (WWHF rame.locat ion.href.i ndexOf("?" ) == -1)   1514     if (WWHF rame.locat ion.href.i ndexOf("?" ) == -1)
1509     {   1515     {
1510       // Upd ate URL ha sh value   1516       // Upd ate URL ha sh value
1511       //   1517       //
1512       VarFil eName = th is.fGetBoo kFileHREF( ParamURL);   1518       VarFil eName = th is.fGetBoo kFileHREF( ParamURL);
1513       if ((V arFileName  != null)  &&   1519       if ((V arFileName  != null)  &&
1514           (V arFileName .length >  0) &&   1520           (V arFileName .length >  0) &&
1515           (V arFileName  != "wwhel p/wwhimpl/ common/htm l/default. htm"))   1521           (V arFileName  != "wwhel p/wwhimpl/ common/htm l/default. htm"))
1516       {   1522       {
1517         // O nly update  if differ ent   1523         // O nly update  if differ ent
1518         //   1524         //
1519         VarH ash = "#hr ef=" + Var FileName;   1525         VarH ash = "#hr ef=" + Var FileName;
1520         if ( this.fSing leTopic())   1526         if ( this.fSing leTopic())
1521         {   1527         {
1522           Va rHash += " &single=tr ue";   1528           Va rHash += " &single=tr ue";
1523         }   1529         }
1524         if ( WWHFrame.l ocation.ha sh != VarH ash)   1530         if ( WWHFrame.l ocation.ha sh != VarH ash)
1525         {   1531         {
1526           //  Only work s well on  certain br owsers   1532           //  Only work s well on  certain br owsers
1527           //   1533           //
1528           if  ((WWHFram e.WWHBrows er.mBrowse r == 2) ||   // Short hand for I E   1534           if  ((WWHFram e.WWHBrows er.mBrowse r == 2) ||   // Short hand for I E
1529                (WWHFram e.WWHBrows er.mBrowse r == 4))     // Short hand for N etscape 6. 0 (Mozilla )   1535                (WWHFram e.WWHBrows er.mBrowse r == 4))     // Short hand for N etscape 6. 0 (Mozilla )
1530           {   1536           {
1531              WWHFrame.l ocation.ha sh = VarHa sh;   1537              WWHFrame.l ocation.ha sh = VarHa sh;
1532           }   1538           }
1533         }   1539         }
1534       }   1540       }
1535     }   1541     }
1536   }   1542   }
1537     1543  
1538   function   WWHHelp_Au toSyncTOC( )   1544   function   WWHHelp_Au toSyncTOC( )
1539   {   1545   {
1540     var  Var DocumentFr ame;   1546     var  Var DocumentFr ame;
1541     var  Var URL;   1547     var  Var URL;
1542     1548  
1543     // Autom atically s ynchronize  TOC, if r equested   1549     // Autom atically s ynchronize  TOC, if r equested
1544     //   1550     //
1545     if (this .mbAutoSyn cTOC)   1551     if (this .mbAutoSyn cTOC)
1546     {   1552     {
1547       if (WW HFrame.WWH Handler.fG etCurrentT ab() == "c ontents")   1553       if (WW HFrame.WWH Handler.fG etCurrentT ab() == "c ontents")
1548       {   1554       {
1549         VarD ocumentFra me = eval( this.fGetF rameRefere nce("WWHDo cumentFram e"));   1555         VarD ocumentFra me = eval( this.fGetF rameRefere nce("WWHDo cumentFram e"));
1550         VarU RL = WWHFr ame.WWHBro wser.fNorm alizeURL(V arDocument Frame.loca tion.href) ;   1556         VarU RL = WWHFr ame.WWHBro wser.fNorm alizeURL(V arDocument Frame.loca tion.href) ;
1551         this .fSyncTOC( VarURL, fa lse);   1557         this .fSyncTOC( VarURL, fa lse);
1552       }   1558       }
1553     1559  
1554       this.m bAutoSyncT OC = this. mbAlwaysSy ncTOC;   1560       this.m bAutoSyncT OC = this. mbAlwaysSy ncTOC;
1555     }   1561     }
1556   }   1562   }
1557     1563  
1558   function   WWHHelp_Un load()   1564   function   WWHHelp_Un load()
1559   {   1565   {
1560     // Clear  related t opics list   1566     // Clear  related t opics list
1561     //   1567     //
1562     WWHFrame .WWHRelate dTopics.fC lear();   1568     WWHFrame .WWHRelate dTopics.fC lear();
1563   }   1569   }
1564     1570  
1565   function   WWHHelp_Ig noreNextKe yPress(Par amEvent)   1571   function   WWHHelp_Ig noreNextKe yPress(Par amEvent)
1566   {   1572   {
1567     if (this .mbInitial ized)   1573     if (this .mbInitial ized)
1568     {   1574     {
1569       if ((P aramEvent  != null) & &   1575       if ((P aramEvent  != null) & &
1570           (t ypeof(Para mEvent.key Code) != " undefined" ))   1576           (t ypeof(Para mEvent.key Code) != " undefined" ))
1571       {   1577       {
1572         this .mbIgnoreN extKeyPres s = true;   1578         this .mbIgnoreN extKeyPres s = true;
1573       }   1579       }
1574     }   1580     }
1575     1581  
1576     return t rue;   1582     return t rue;
1577   }   1583   }
1578     1584  
1579   function   WWHHelp_Ha ndleKeyDow n(ParamEve nt)   1585   function   WWHHelp_Ha ndleKeyDow n(ParamEve nt)
1580   {   1586   {
1581     if (this .mbInitial ized)   1587     if (this .mbInitial ized)
1582     {   1588     {
1583       if ((P aramEvent  != null) & &   1589       if ((P aramEvent  != null) & &
1584           (t ypeof(Para mEvent.key Code) != " undefined" ))   1590           (t ypeof(Para mEvent.key Code) != " undefined" ))
1585       {   1591       {
1586         if ( ParamEvent .keyCode = = 18)   1592         if ( ParamEvent .keyCode = = 18)
1587         {   1593         {
1588           th is.mbAltKe yDown = tr ue;   1594           th is.mbAltKe yDown = tr ue;
1589         }   1595         }
1590         else  if ((Para mEvent.key Code >= 48 ) &&   1596         else  if ((Para mEvent.key Code >= 48 ) &&
1591                   (Para mEvent.key Code <= 57 ))   1597                   (Para mEvent.key Code <= 57 ))
1592         {   1598         {
1593           th is.mAccess Key = Para mEvent.key Code - 48;   1599           th is.mAccess Key = Para mEvent.key Code - 48;
1594         }   1600         }
1595       }   1601       }
1596     }   1602     }
1597     1603  
1598     return t rue;   1604     return t rue;
1599   }   1605   }
1600     1606  
1601   function   WWHHelp_Ha ndleKeyPre ss(ParamEv ent)   1607   function   WWHHelp_Ha ndleKeyPre ss(ParamEv ent)
1602   {   1608   {
1603     if (this .mbInitial ized)   1609     if (this .mbInitial ized)
1604     {   1610     {
1605       if (Pa ramEvent ! = null)   1611       if (Pa ramEvent ! = null)
1606       {   1612       {
1607         if ( this.mbIgn oreNextKey Press)   1613         if ( this.mbIgn oreNextKey Press)
1608         {   1614         {
1609           //  Ignore th is key pre ss event   1615           //  Ignore th is key pre ss event
1610           //   1616           //
1611         }   1617         }
1612         else   1618         else
1613         {   1619         {
1614           if  (this.mAc cessKey !=  null)   1620           if  (this.mAc cessKey !=  null)
1615           {   1621           {
1616              this.fProc essAccessK ey(this.mA ccessKey);   1622              this.fProc essAccessK ey(this.mA ccessKey);
1617           }   1623           }
1618         }   1624         }
1619       }   1625       }
1620     1626  
1621       // Res et to hand le next ac cess key   1627       // Res et to hand le next ac cess key
1622       //   1628       //
1623       this.m bIgnoreNex tKeyPress  = false;   1629       this.m bIgnoreNex tKeyPress  = false;
1624       this.m AccessKey  = null;   1630       this.m AccessKey  = null;
1625     }   1631     }
1626     1632  
1627     return t rue;   1633     return t rue;
1628   }   1634   }
1629     1635  
1630   function   WWHHelp_Ha ndleKeyUp( ParamEvent )   1636   function   WWHHelp_Ha ndleKeyUp( ParamEvent )
1631   {   1637   {
1632     if (this .mbInitial ized)   1638     if (this .mbInitial ized)
1633     {   1639     {
1634       if ((P aramEvent  != null) & &   1640       if ((P aramEvent  != null) & &
1635           (t ypeof(Para mEvent.key Code) != " undefined" ))   1641           (t ypeof(Para mEvent.key Code) != " undefined" ))
1636       {   1642       {
1637         if ( ParamEvent .keyCode = = 18)   1643         if ( ParamEvent .keyCode = = 18)
1638         {   1644         {
1639           th is.mbAltKe yDown = fa lse;   1645           th is.mbAltKe yDown = fa lse;
1640         }   1646         }
1641       }   1647       }
1642     }   1648     }
1643     1649  
1644     return t rue;   1650     return t rue;
1645   }   1651   }
1646     1652  
1647   function   WWHHelp_Pr ocessAcces sKey(Param AccessKey)   1653   function   WWHHelp_Pr ocessAcces sKey(Param AccessKey)
1648   {   1654   {
1649     switch ( ParamAcces sKey)   1655     switch ( ParamAcces sKey)
1650     {   1656     {
1651       case 1 :   1657       case 1 :
1652       case 2 :   1658       case 2 :
1653       case 3 :   1659       case 3 :
1654         WWHF rame.WWHHa ndler.fPro cessAccess Key(ParamA ccessKey);   1660         WWHF rame.WWHHa ndler.fPro cessAccess Key(ParamA ccessKey);
1655         brea k;   1661         brea k;
1656     1662  
1657       case 4 :   1663       case 4 :
1658       case 5 :   1664       case 5 :
1659       case 6 :   1665       case 6 :
1660       case 7 :   1666       case 7 :
1661       case 8 :   1667       case 8 :
1662       case 9 :   1668       case 9 :
1663         WWHF rame.WWHCo ntrols.fPr ocessAcces sKey(Param AccessKey) ;   1669         WWHF rame.WWHCo ntrols.fPr ocessAcces sKey(Param AccessKey) ;
1664         brea k;   1670         brea k;
1665     1671  
1666       case 0 :   1672       case 0 :
1667         this .fFocus("W WHDocument Frame");   1673         this .fFocus("W WHDocument Frame");
1668         brea k;   1674         brea k;
1669     }   1675     }
1670   }   1676   }
1671     1677  
1672   function   WWHHelp_Fo cus(ParamF rameName,   1678   function   WWHHelp_Fo cus(ParamF rameName,
1673                             ParamA nchorName)   1679                             ParamA nchorName)
1674   {   1680   {
1675     WWHFrame .WWHBrowse r.fFocus(t his.fGetFr ameReferen ce(ParamFr ameName),  ParamAncho rName);   1681     WWHFrame .WWHBrowse r.fFocus(t his.fGetFr ameReferen ce(ParamFr ameName),  ParamAncho rName);
1676   }   1682   }
1677     1683  
1678   function   WWHHelpUti lities_Pre loadGraphi cs()   1684   function   WWHHelpUti lities_Pre loadGraphi cs()
1679   {   1685   {
1680     var  Var ImageDirec tory = WWH Frame.WWHH elp.mHelpU RLPrefix +  "wwhelp/w whimpl/com mon/images ";   1686     var  Var ImageDirec tory = WWH Frame.WWHH elp.mHelpU RLPrefix +  "wwhelp/w whimpl/com mon/images ";
1681     1687  
1682     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/bkmar k.gif";   1688     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/bkmar k.gif";
1683     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/bkmar kx.gif";   1689     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/bkmar kx.gif";
1684     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/close .gif";   1690     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/close .gif";
1685     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/doc.g if";   1691     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/doc.g if";
1686     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/email .gif";   1692     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/email .gif";
1687     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/email x.gif";   1693     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/email x.gif";
1688     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/fc.gi f";   1694     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/fc.gi f";
1689     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/fo.gi f";   1695     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/fo.gi f";
1690     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/next. gif";   1696     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/next. gif";
1691     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/nextx .gif";   1697     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/nextx .gif";
1692     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/prev. gif";   1698     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/prev. gif";
1693     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/prevx .gif";   1699     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/prevx .gif";
1694     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/print .gif";   1700     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/print .gif";
1695     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/print x.gif";   1701     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/print x.gif";
1696     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/relat ed.gif";   1702     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/relat ed.gif";
1697     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/relat edi.gif";   1703     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/relat edi.gif";
1698     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/relat edx.gif";   1704     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/relat edx.gif";
1699     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/shown av.gif";   1705     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/shown av.gif";
1700     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/space r4.gif";   1706     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/space r4.gif";
1701     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc1w 2h.gif";   1707     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc1w 2h.gif";
1702     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc1w 7h.gif";   1708     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc1w 7h.gif";
1703     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc2w 1h.gif";   1709     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc2w 1h.gif";
1704     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc5w 1h.gif";   1710     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc5w 1h.gif";
1705     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc_t b_l.gif";   1711     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc_t b_l.gif";
1706     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc_t b_m.gif";   1712     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc_t b_m.gif";
1707     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc_t b_r.gif";   1713     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc_t b_r.gif";
1708     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc_t b_t.gif";   1714     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/spc_t b_t.gif";
1709     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/sync. gif";   1715     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/sync. gif";
1710     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/syncx .gif";   1716     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/syncx .gif";
1711     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/tools bg.gif";   1717     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/tools bg.gif";
1712   }   1718   }