56. Araxis Merge File Comparison Report

Produced by Araxis Merge on Thu Oct 16 22:30:03 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.

56.1 Files compared

# Location File Last Modified
1 C:\Documents and Settings\lauren\Desktop\ww-version-snapshots\ww-version-snapshots\2008.2\WebWorks\ePublisher Pro\Formats\WebWorks Help 5.0\Files\wwhelp\wwhimpl\common\scripts help.js Fri Jul 4 06:51:22 2008 UTC
2 C:\Documents and Settings\lauren\Desktop\ww-version-snapshots\ww-version-snapshots\2008.3\WebWorks\ePublisher Pro\Formats\WebWorks Help 5.0\Files\wwhelp\wwhimpl\common\scripts help.js Mon Oct 13 05:51:54 2008 UTC

56.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 8 3426
Changed 5 10
Inserted 0 0
Removed 2 3

56.3 Comparison options

Whitespace All differences in whitespace within lines are ignored
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

56.4 Active regular expressions

No regular expressions were active.

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