26. Araxis Merge File Comparison Report

Produced by Araxis Merge on Sat May 2 08:30:15 2009 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.

26.1 Files compared

# Location File Last Modified
1 C:\Documents and Settings\allums\Desktop\2008.4\Formats\WebWorks Help 5.0\Files\wwhelp\wwhimpl\common\scripts help.js Mon Jan 19 18:02:38 2009 UTC
2 C:\Documents and Settings\allums\Desktop\2009.1\Formats\WebWorks Help 5.0\Files\wwhelp\wwhimpl\common\scripts help.js Sat May 2 06:55:40 2009 UTC

26.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 2 3436
Changed 0 0
Inserted 1 2
Removed 0 0

26.3 Comparison options

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

26.4 Active regular expressions

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

26.5 Comparison detail

1   // Copyrig ht (c) 200 0-2005 Qua dralay Cor poration.   All right s reserved .   1   // Copyrig ht (c) 200 0-2005 Qua dralay Cor poration.   All right s reserved .
2   //   2   //
3     3  
4   function   WWHHelp_Ob ject(Param URL)   4   function   WWHHelp_Ob ject(Param URL)
5   {   5   {
6     var  URL Params;   6     var  URL Params;
7     7  
8     8  
9     this.mbI nitialized         =  false;   9     this.mbI nitialized         =  false;
10     this.mbA ccessible          =  false;   10     this.mbA ccessible          =  false;
11     this.mIn itialTabNa me      =  null;   11     this.mIn itialTabNa me      =  null;
12     this.mNe wTabName           =  null;   12     this.mNe wTabName           =  null;
13     this.mIn itStage            =  0;   13     this.mIn itStage            =  0;
14     this.mSe ttings             =  new WWHCom monSetting s_Object() ;   14     this.mSe ttings             =  new WWHCom monSetting s_Object() ;
15     this.mMe ssages             =  new WWHCom monMessage s_Object() ;   15     this.mMe ssages             =  new WWHCom monMessage s_Object() ;
16     this.mDo cumentLoad ed      =  null;   16     this.mDo cumentLoad ed      =  null;
17     this.mLo cationURL          =  WWHFrame.W WHBrowser. fNormalize URL(ParamU RL);   17     this.mLo cationURL          =  WWHFrame.W WHBrowser. fNormalize URL(ParamU RL);
18     this.mBa seURL              =  WWHStringU tilities_G etBaseURL( this.mLoca tionURL);   18     this.mBa seURL              =  WWHStringU tilities_G etBaseURL( this.mLoca tionURL);
19     this.mHe lpURLPrefi x       =  this.mBase URL;   19     this.mHe lpURLPrefi x       =  this.mBase URL;
20     this.mCo ntextDir           =  null;   20     this.mCo ntextDir           =  null;
21     this.mTo picTag             =  null;   21     this.mTo picTag             =  null;
22     this.mDo cumentURL          =  "";   22     this.mDo cumentURL          =  "";
23     this.mPo pup                =  null;   23     this.mPo pup                =  null;
24     this.mPo pupContext         =  "";   24     this.mPo pupContext         =  "";
25     this.mPo pupLink            =  "";   25     this.mPo pupLink            =  "";
26     this.mPo pupLoaded          =  false;   26     this.mPo pupLoaded          =  false;
27     this.mPo pupHideDis abled   =  false;   27     this.mPo pupHideDis abled   =  false;
28     this.mBo okGroups           =  new WWHBoo kGroups_Ob ject();   28     this.mBo okGroups           =  new WWHBoo kGroups_Ob ject();
29     this.mBo oks                =  new WWHBoo kList_Obje ct();   29     this.mBo oks                =  new WWHBoo kList_Obje ct();
30     this.mFa voritesCoo kie     =  "WWH" + th is.mSettin gs.mCookie sID + "_Fa vs";   30     this.mFa voritesCoo kie     =  "WWH" + th is.mSettin gs.mCookie sID + "_Fa vs";
31     this.mbI gnoreNextK eyPress =  false;   31     this.mbI gnoreNextK eyPress =  false;
32     this.mbA ltKeyDown          =  false;   32     this.mbA ltKeyDown          =  false;
33     this.mAc cessKey            =  -1;   33     this.mAc cessKey            =  -1;
34     this.mbA utoSyncTOC         =  false;   34     this.mbA utoSyncTOC         =  false;
35     this.mbA lwaysSyncT OC      =  true;   35     this.mbA lwaysSyncT OC      =  true;
36     this.mCo llapsingTO CEntry  =  false;   36     this.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 (Pa ramURL.ind exOf("?")  != -1)   292       if (Pa ramURL.ind exOf("?")  != -1)
293       {   293       {
294         Part s = ParamU RL.split(" ?");   294         Part s = ParamU RL.split(" ?");
295       }   295       }
296       else i f (ParamUR L.indexOf( "#") != -1 )   296       else i f (ParamUR L.indexOf( "#") != -1 )
297       {   297       {
298         Part s = ParamU RL.split(" #");   298         Part s = ParamU RL.split(" #");
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     if (Para mURL.lengt h > 0)   647     if (Para mURL.lengt h > 0)
648     {   648     {
649       if (bP aramReplac e)   649       if (bP aramReplac e)
650       {   650       {
651         this .fReplaceL ocation("W WHDocument Frame", Pa ramURL);   651         this .fReplaceL ocation("W WHDocument Frame", Pa ramURL);
652       }   652       }
653       else   653       else
654       {   654       {
655         this .fSetLocat ion("WWHDo cumentFram e", ParamU RL);   655         this .fSetLocat ion("WWHDo cumentFram e", ParamU RL);
656       }   656       }
657     }   657     }
658   }   658   }
659     659  
660   function   WWHHelp_Ge tBookIndex FileIndexU RL(ParamBo okIndex,   660   function   WWHHelp_Ge tBookIndex FileIndexU RL(ParamBo okIndex,
661                                                  ParamFi leIndex,   661                                                  ParamFi leIndex,
662                                                  ParamAn chor)   662                                                  ParamAn chor)
663   {   663   {
664     var  URL  = "";   664     var  URL  = "";
665     var  Boo kListEntry ;   665     var  Boo kListEntry ;
666     666  
667     667  
668     if ((Par amBookInde x >= 0) &&   668     if ((Par amBookInde x >= 0) &&
669         (Par amFileInde x >= 0))   669         (Par amFileInde x >= 0))
670     {   670     {
671       BookLi stEntry =  this.mBook s.mBookLis t[ParamBoo kIndex];   671       BookLi stEntry =  this.mBook s.mBookLis t[ParamBoo kIndex];
672     672  
673       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);
674       if ((t ypeof(Para mAnchor) ! = "undefin ed") &&   674       if ((t ypeof(Para mAnchor) ! = "undefin ed") &&
675           (P aramAnchor  != null)  &&   675           (P aramAnchor  != null)  &&
676           (P aramAnchor .length >  0))   676           (P aramAnchor .length >  0))
677       {   677       {
678         URL  += "#" + P aramAnchor ;   678         URL  += "#" + P aramAnchor ;
679       }   679       }
680     }   680     }
681     681  
682     return U RL;   682     return U RL;
683   }   683   }
684     684  
685   function   WWHHelp_De termineCon textDocume nt()   685   function   WWHHelp_De termineCon textDocume nt()
686   {   686   {
687     var  Con textDocume ntURL = nu ll;   687     var  Con textDocume ntURL = nu ll;
688     var  URL Params           = th is.fGetURL Parameters (this.mLoc ationURL);   688     var  URL Params           = th is.fGetURL Parameters (this.mLoc ationURL);
689     var  Con textBook;   689     var  Con textBook;
690     690  
691     691  
692     // Autom atically s ynchronize  TOC   692     // Autom atically s ynchronize  TOC
693     //   693     //
694     this.mbA utoSyncTOC  = true;   694     this.mbA utoSyncTOC  = true;
695     695  
696     // Check  for conte xt specifi cation   696     // Check  for conte xt specifi cation
697     //   697     //
698     if (URLP arams[3] ! = null)  / / href spe cified   698     if (URLP arams[3] ! = null)  / / href spe cified
699     {   699     {
700       Contex tDocumentU RL = this. mBaseURL +  URLParams [3];   700       Contex tDocumentU RL = this. mBaseURL +  URLParams [3];
701     }   701     }
702     else if  (URLParams [0] != nul l)  // con text speci fied   702     else if  (URLParams [0] != nul l)  // con text speci fied
703     {   703     {
704       // Det ermine boo k director y   704       // Det ermine boo k director y
705       //   705       //
706       Contex tBook = th is.mBooks. fGetContex tBook(URLP arams[0]);   706       Contex tBook = th is.mBooks. fGetContex tBook(URLP arams[0]);
707       if (Co ntextBook  != null)   707       if (Co ntextBook  != null)
708       {   708       {
709         if ( URLParams[ 2] != null )  // file  specified   709         if ( URLParams[ 2] != null )  // file  specified
710         {   710         {
711           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];
712         }   712         }
713         else  if (URLPa rams[1] !=  null)  //  topic spe cified   713         else  if (URLPa rams[1] !=  null)  //  topic spe cified
714         {   714         {
715           //  Setup for  a topic s earch   715           //  Setup for  a topic s earch
716           //   716           //
717           th is.mContex tDir = Con textBook.m Directory;   717           th is.mContex tDir = Con textBook.m Directory;
718           th is.mTopicT ag   = URL Params[1];   718           th is.mTopicT ag   = URL Params[1];
719     719  
720           th is.mDocume ntURL = "" ;   720           th is.mDocume ntURL = "" ;
721         }   721         }
722       }   722       }
723       else   // Display  splash pa ge if noth ing else f ound   723       else   // Display  splash pa ge if noth ing else f ound
724       {   724       {
725         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";
726       }   726       }
727     }   727     }
728     else  //  Display s plash page  if nothin g else fou nd   728     else  //  Display s plash page  if nothin g else fou nd
729     {   729     {
730       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 ";
731     }   731     }
732     732  
733     return C ontextDocu mentURL;   733     return C ontextDocu mentURL;
734   }   734   }
735     735  
736   function   WWHHelp_Lo adTopicDat a()   736   function   WWHHelp_Lo adTopicDat a()
737   {   737   {
738     var  Loa dTopicData HTML = "";   738     var  Loa dTopicData HTML = "";
739     var  Var Parameters ;   739     var  Var Parameters ;
740     740  
741     741  
742     // Worka round Safa ri reload  bug   742     // Worka round Safa ri reload  bug
743     //   743     //
744     VarParam eters = "" ;   744     VarParam eters = "" ;
745     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
746     {   746     {
747       VarPar ameters =  "?" + (new  Date() *  1);   747       VarPar ameters =  "?" + (new  Date() *  1);
748     }   748     }
749     749  
750     LoadTopi cDataHTML  += "<scrip t type=\"t ext/javasc ript\" lan guage=\"Ja vaScript1. 2\" src=\" " + this.m HelpURLPre fix + this .mContextD ir + "wwhd ata/common /topics.js " + VarPar ameters +  "\"></scri pt>";   750     LoadTopi cDataHTML  += "<scrip t type=\"t ext/javasc ript\" lan guage=\"Ja vaScript1. 2\" src=\" " + this.m HelpURLPre fix + this .mContextD ir + "wwhd ata/common /topics.js " + VarPar ameters +  "\"></scri pt>";
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 >";   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 >";
752     752  
753     return L oadTopicDa taHTML;   753     return L oadTopicDa taHTML;
754   }   754   }
755     755  
756   function   WWHHelp_Pr ocessTopic Result(Par amTopicURL )   756   function   WWHHelp_Pr ocessTopic Result(Par amTopicURL )
757   {   757   {
758     if (Para mTopicURL  != null)   758     if (Para mTopicURL  != null)
759     {   759     {
760       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;
761     }   761     }
762   }   762   }
763     763  
764   function   WWHHelp_Di splayConte xtDocument ()   764   function   WWHHelp_Di splayConte xtDocument ()
765   {   765   {
766     WWHFrame .WWHHelp.f SetDocumen tHREF(this .mDocument URL, true) ;   766     WWHFrame .WWHHelp.f SetDocumen tHREF(this .mDocument URL, true) ;
767   }   767   }
768     768  
769   function   WWHHelp_Ge tURLPrefix (ParamURL)   769   function   WWHHelp_Ge tURLPrefix (ParamURL)
770   {   770   {
771     var  URL Prefix  =  null;   771     var  URL Prefix  =  null;
772     var  Wor kingURL =  "";   772     var  Wor kingURL =  "";
773     var  Par ts;   773     var  Par ts;
774     var  Ind ex;   774     var  Ind ex;
775     775  
776     776  
777     // Stand ardize URL  for proce ssing   777     // Stand ardize URL  for proce ssing
778     //   778     //
779     WorkingU RL = Param URL;   779     WorkingU RL = Param URL;
780     780  
781     // Strip  any URL p arameters   781     // Strip  any URL p arameters
782     //   782     //
783     if (Work ingURL.ind exOf("?")  != -1)   783     if (Work ingURL.ind exOf("?")  != -1)
784     {   784     {
785       Parts  = WorkingU RL.split(" ?");   785       Parts  = WorkingU RL.split(" ?");
786       Workin gURL = Par ts[0];   786       Workin gURL = Par ts[0];
787     }   787     }
788     else if  (WorkingUR L.indexOf( "#") != -1 )   788     else if  (WorkingUR L.indexOf( "#") != -1 )
789     {   789     {
790       Parts  = WorkingU RL.split(" #");   790       Parts  = WorkingU RL.split(" #");
791       Workin gURL = Par ts[0];   791       Workin gURL = Par ts[0];
792     }   792     }
793     793  
794     // Confi rm URL in  wwhelp hie rarchy   794     // Confi rm URL in  wwhelp hie rarchy
795     //   795     //
796     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)  ||
797         ((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) ||
798         ((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) ||
799         ((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))
800     {   800     {
801       URLPre fix = Work ingURL.sub string(0,  Index);   801       URLPre fix = Work ingURL.sub string(0,  Index);
802     }   802     }
803     else   803     else
804     {   804     {
805       // 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
806       //   806       //
807       Index  = WorkingU RL.lastInd exOf("/");   807       Index  = WorkingU RL.lastInd exOf("/");
808       if ((I ndex != -1 ) &&   808       if ((I ndex != -1 ) &&
809          (In dex == Wor kingURL.in dexOf("/ww help.htm") ))   809          (In dex == Wor kingURL.in dexOf("/ww help.htm") ))
810       {   810       {
811         URLP refix = Wo rkingURL.s ubstring(0 , Index);   811         URLP refix = Wo rkingURL.s ubstring(0 , Index);
812       }   812       }
813     }   813     }
814     814  
815     return U RLPrefix;   815     return U RLPrefix;
816   }   816   }
817     817  
818   function   WWHHelp_Se tContextDo cument(Par amURL)   818   function   WWHHelp_Se tContextDo cument(Par amURL)
819   {   819   {
820     var  URL  = WWHFram e.WWHBrows er.fNormal izeURL(Par amURL);   820     var  URL  = WWHFram e.WWHBrows er.fNormal izeURL(Par amURL);
821     var  Cur rentURLPre fix;   821     var  Cur rentURLPre fix;
822     var  New URLPrefix;   822     var  New URLPrefix;
823     var  Var DocumentFr ame;   823     var  Var DocumentFr ame;
824     var  Var DocumentUR L;   824     var  Var DocumentUR L;
825     var  Var URLParamet ers;   825     var  Var URLParamet ers;
826     826  
827     827  
828     // Confi rm URL und er same hi erarchy   828     // Confi rm URL und er same hi erarchy
829     //   829     //
830     CurrentU RLPrefix =  WWHHelp_G etURLPrefi x(this.mLo cationURL) ;   830     CurrentU RLPrefix =  WWHHelp_G etURLPrefi x(this.mLo cationURL) ;
831     NewURLPr efix     =  WWHHelp_G etURLPrefi x(URL);   831     NewURLPr efix     =  WWHHelp_G etURLPrefi x(URL);
832     if ((Cur rentURLPre fix != nul l) &&   832     if ((Cur rentURLPre fix != nul l) &&
833         (New URLPrefix      != nul l) &&   833         (New URLPrefix      != nul l) &&
834         (Cur rentURLPre fix == New URLPrefix) )   834         (Cur rentURLPre fix == New URLPrefix) )
835     {   835     {
836       // Aut omatically  synchorni ze TOC   836       // Aut omatically  synchorni ze TOC
837       //   837       //
838       this.m bAutoSyncT OC = true;   838       this.m bAutoSyncT OC = true;
839     839  
840       // Che ck if in s ingle topi c mode   840       // Che ck if in s ingle topi c mode
841       //   841       //
842       if (th is.fSingle Topic())   842       if (th is.fSingle Topic())
843       {   843       {
844         // 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
845         //   845         //
846         WWHF rame.WWHSw itch.fProc essURL(Par amURL);   846         WWHF rame.WWHSw itch.fProc essURL(Par amURL);
847         if ( WWHFrame.W WHSwitch.m Implementa tion != "s ingle")   847         if ( WWHFrame.W WHSwitch.m Implementa tion != "s ingle")
848         {   848         {
849           //  Switch to  frameset  with navig ation   849           //  Switch to  frameset  with navig ation
850           //   850           //
851           if  (WWHFrame .WWHSwitch .mParamete rs.length  > 0)   851           if  (WWHFrame .WWHSwitch .mParamete rs.length  > 0)
852           {   852           {
853              // Context  and topic  supplied,  use them   853              // Context  and topic  supplied,  use them
854              //   854              //
855              this.fSetL ocation("W WHFrame",  ParamURL);   855              this.fSetL ocation("W WHFrame",  ParamURL);
856           }   856           }
857           el se   857           el se
858           {   858           {
859              // 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
860              //   860              //
861              VarDocumen tFrame = e val(this.f GetFrameRe ference("W WHDocument Frame"));   861              VarDocumen tFrame = e val(this.f GetFrameRe ference("W WHDocument Frame"));
862     862  
863              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);
864              VarDocumen tURL = WWH Frame.WWHH elp.fGetBo okFileHREF (VarDocume ntURL);   864              VarDocumen tURL = WWH Frame.WWHH elp.fGetBo okFileHREF (VarDocume ntURL);
865              WWHFrame.W WHSwitch.f Exec(false , WWHFrame .WWHHelp.m HelpURLPre fix + "/ww help/wwhim pl/api.htm ?href=" +  VarDocumen tURL);   865              WWHFrame.W WHSwitch.f Exec(false , WWHFrame .WWHHelp.m HelpURLPre fix + "/ww help/wwhim pl/api.htm ?href=" +  VarDocumen tURL);
866           }   866           }
867         }   867         }
868         else   868         else
869         {   869         {
870           //  Update do cument fra me   870           //  Update do cument fra me
871           //   871           //
872           th is.fSetDoc umentFrame WithURL(UR L);   872           th is.fSetDoc umentFrame WithURL(UR L);
873         }   873         }
874       }   874       }
875       else   875       else
876       {   876       {
877         VarU RLParamete rs = this. fGetURLPar ameters(UR L);   877         VarU RLParamete rs = this. fGetURLPar ameters(UR L);
878     878  
879         // S pecifies a  document  to display ?   879         // S pecifies a  document  to display ?
880         //   880         //
881         if ( (VarURLPar ameters[0]  != null)  ||   881         if ( (VarURLPar ameters[0]  != null)  ||
882              (VarURLPar ameters[1]  != null)  ||   882              (VarURLPar ameters[1]  != null)  ||
883              (VarURLPar ameters[2]  != null)  ||   883              (VarURLPar ameters[2]  != null)  ||
884              (VarURLPar ameters[3]  != null))   884              (VarURLPar ameters[3]  != null))
885         {   885         {
886           //  Update do cument fra me   886           //  Update do cument fra me
887           //   887           //
888           th is.fSetDoc umentFrame WithURL(UR L);   888           th is.fSetDoc umentFrame WithURL(UR L);
889     889  
890           //  Set navig ation tab  to display   890           //  Set navig ation tab  to display
891           //   891           //
892           th is.mNewTab Name = Var URLParamet ers[5];   892           th is.mNewTab Name = Var URLParamet ers[5];
893         }   893         }
894         else   894         else
895         {   895         {
896           //  Switch ta bs   896           //  Switch ta bs
897           //   897           //
898           WW HFrame.WWH Handler.fS etCurrentT ab(VarURLP arameters[ 5]);   898           WW HFrame.WWH Handler.fS etCurrentT ab(VarURLP arameters[ 5]);
899         }   899         }
900       }   900       }
901     }   901     }
902     else   902     else
903     {   903     {
904       // Som e other he lp system  requested,  redirect  to it   904       // Som e other he lp system  requested,  redirect  to it
905       //   905       //
906       this.f SetLocatio n("WWHFram e", ParamU RL);   906       this.f SetLocatio n("WWHFram e", ParamU RL);
907     }   907     }
908   }   908   }
909     909  
910   function   WWHHelp_Ge tBookFileH REF(ParamH REF)   910   function   WWHHelp_Ge tBookFileH REF(ParamH REF)
911   {   911   {
912     var  Boo kFileHREF  = null;   912     var  Boo kFileHREF  = null;
913     var  Pre fix;   913     var  Pre fix;
914     var  Suf fix;   914     var  Suf fix;
915     915  
916     916  
917     // 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
918     //   918     //
919     if ((thi s.mBaseURL .length >  0) &&   919     if ((thi s.mBaseURL .length >  0) &&
920         (Par amHREF.len gth > this .mBaseURL. length))   920         (Par amHREF.len gth > this .mBaseURL. length))
921     {   921     {
922       Prefix  = ParamHR EF.substri ng(0, this .mBaseURL. length);   922       Prefix  = ParamHR EF.substri ng(0, this .mBaseURL. length);
923       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);
924     924  
925       // 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
926       //   926       //
927       if (Pr efix == th is.mBaseUR L)   927       if (Pr efix == th is.mBaseUR L)
928       {   928       {
929         Book FileHREF =  Suffix;   929         Book FileHREF =  Suffix;
930       }   930       }
931     }   931     }
932     932  
933     return B ookFileHRE F;   933     return B ookFileHRE F;
934   }   934   }
935     935  
936   function   WWHHelp_HR EFToBookIn dexFileInd exAnchor(P aramHREF)   936   function   WWHHelp_HR EFToBookIn dexFileInd exAnchor(P aramHREF)
937   {   937   {
938     var  Res ultArray =  new Array (-1, -1, " ");   938     var  Res ultArray =  new Array (-1, -1, " ");
939     var  Boo kFileHREF;   939     var  Boo kFileHREF;
940     940  
941     941  
942     BookFile HREF = thi s.fGetBook FileHREF(P aramHREF);   942     BookFile HREF = thi s.fGetBook FileHREF(P aramHREF);
943     if (Book FileHREF ! = null)   943     if (Book FileHREF ! = null)
944     {   944     {
945       Result Array = th is.mBooks. fHREFToBoo kIndexFile IndexAncho r(BookFile HREF);   945       Result Array = th is.mBooks. fHREFToBoo kIndexFile IndexAncho r(BookFile HREF);
946     }   946     }
947     947  
948     return R esultArray ;   948     return R esultArray ;
949   }   949   }
950     950  
951   function   WWHHelp_Ge tSyncPrevN ext(ParamH REF)   951   function   WWHHelp_Ge tSyncPrevN ext(ParamH REF)
952   {   952   {
953     var  Res ultArray =  new Array (null, nul l, null);   953     var  Res ultArray =  new Array (null, nul l, null);
954     var  Par ts;   954     var  Par ts;
955     var  Abs oluteHREF;   955     var  Abs oluteHREF;
956     var  Var Anchor;   956     var  Var Anchor;
957     var  Boo kFileHREF;   957     var  Boo kFileHREF;
958     958  
959     959  
960     // Trim  named anch or entries   960     // Trim  named anch or entries
961     //   961     //
962     Parts =  ParamHREF. split("#") ;   962     Parts =  ParamHREF. split("#") ;
963     Absolute HREF = Par ts[0];   963     Absolute HREF = Par ts[0];
964     VarAncho r = "";   964     VarAncho r = "";
965     if (Part s.length >  1)   965     if (Part s.length >  1)
966     {   966     {
967       if (Pa rts[1].len gth > 0)   967       if (Pa rts[1].len gth > 0)
968       {   968       {
969         VarA nchor = "# " + Parts[ 1];   969         VarA nchor = "# " + Parts[ 1];
970       }   970       }
971     }   971     }
972     972  
973     BookFile HREF = thi s.fGetBook FileHREF(A bsoluteHRE F);   973     BookFile HREF = thi s.fGetBook FileHREF(A bsoluteHRE F);
974     if (Book FileHREF ! = null)   974     if (Book FileHREF ! = null)
975     {   975     {
976       if (Bo okFileHREF  == "wwhel p/wwhimpl/ common/htm l/default. htm")   976       if (Bo okFileHREF  == "wwhel p/wwhimpl/ common/htm l/default. htm")
977       {   977       {
978         Resu ltArray[2]  = this.mB ooks.fBook FileIndici esToHREF(0 , 0);   978         Resu ltArray[2]  = this.mB ooks.fBook FileIndici esToHREF(0 , 0);
979       }   979       }
980       else   980       else
981       {   981       {
982         Resu ltArray =  this.mBook s.fGetSync PrevNext(B ookFileHRE F);   982         Resu ltArray =  this.mBook s.fGetSync PrevNext(B ookFileHRE F);
983       }   983       }
984     984  
985       // Pre fix with B aseURL if  defined   985       // Pre fix with B aseURL if  defined
986       //   986       //
987     987  
988       // Cur rent   988       // Cur rent
989       //   989       //
990       if (Re sultArray[ 0] != null )   990       if (Re sultArray[ 0] != null )
991       {   991       {
992         Resu ltArray[0]  = this.mB aseURL + R esultArray [0] + VarA nchor;   992         Resu ltArray[0]  = this.mB aseURL + R esultArray [0] + VarA nchor;
993       }   993       }
994     994  
995       // Pre vious   995       // Pre vious
996       //   996       //
997       if (Re sultArray[ 1] != null )   997       if (Re sultArray[ 1] != null )
998       {   998       {
999         Resu ltArray[1]  = this.mB aseURL + R esultArray [1];   999         Resu ltArray[1]  = this.mB aseURL + R esultArray [1];
1000       }   1000       }
1001     1001  
1002       // Nex t   1002       // Nex t
1003       //   1003       //
1004       if (Re sultArray[ 2] != null )   1004       if (Re sultArray[ 2] != null )
1005       {   1005       {
1006         Resu ltArray[2]  = this.mB aseURL + R esultArray [2];   1006         Resu ltArray[2]  = this.mB aseURL + R esultArray [2];
1007       }   1007       }
1008     }   1008     }
1009     else   1009     else
1010     {   1010     {
1011       // 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
1012       //   1012       //
1013       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);
1014     }   1014     }
1015     1015  
1016     return R esultArray ;   1016     return R esultArray ;
1017   }   1017   }
1018     1018  
1019   function   WWHHelp_HR EFToTitle( ParamHREF)   1019   function   WWHHelp_HR EFToTitle( ParamHREF)
1020   {   1020   {
1021     var  Tit le;   1021     var  Tit le;
1022     var  Par ts;   1022     var  Par ts;
1023     var  Abs oluteHREF;   1023     var  Abs oluteHREF;
1024     1024  
1025     1025  
1026     // Try t o find boo k and file   1026     // Try t o find boo k and file
1027     //   1027     //
1028     Parts =  this.fHREF ToBookInde xFileIndex Anchor(Par amHREF);   1028     Parts =  this.fHREF ToBookInde xFileIndex Anchor(Par amHREF);
1029     if ((Par ts[0] >= 0 ) &&   1029     if ((Par ts[0] >= 0 ) &&
1030         (Par ts[1] >= 0 ))   1030         (Par ts[1] >= 0 ))
1031     {   1031     {
1032       Title  = this.mBo oks.fBookI ndexFileIn dexToTitle (Parts[0],  Parts[1]) ;   1032       Title  = this.mBo oks.fBookI ndexFileIn dexToTitle (Parts[0],  Parts[1]) ;
1033     }   1033     }
1034     else   1034     else
1035     {   1035     {
1036       // Use  basename  for title   1036       // Use  basename  for title
1037       //   1037       //
1038       Parts  = ParamHRE F.split("# ");   1038       Parts  = ParamHRE F.split("# ");
1039       Absolu teHREF = P arts[0];   1039       Absolu teHREF = P arts[0];
1040       Parts  = Absolute HREF.split ("/");   1040       Parts  = Absolute HREF.split ("/");
1041       Title  = Parts[Pa rts.length  - 1];   1041       Title  = Parts[Pa rts.length  - 1];
1042     }   1042     }
1043     1043  
1044     return T itle;   1044     return T itle;
1045   }   1045   }
1046     1046  
1047   function   WWHHelp_Es capeHTML(P aramText)   1047   function   WWHHelp_Es capeHTML(P aramText)
1048   {   1048   {
1049     return W WHStringUt ilities_Es capeHTML(P aramText);   1049     return W WHStringUt ilities_Es capeHTML(P aramText);
1050   }   1050   }
1051     1051  
1052   function   WWHHelp_Po pupHTML()   1052   function   WWHHelp_Po pupHTML()
1053   {   1053   {
1054     var  Var HTML = "";   1054     var  Var HTML = "";
1055     1055  
1056     1056  
1057     if ((WWH Frame.WWHB rowser.mbS upportsPop ups) &&   1057     if ((WWH Frame.WWHB rowser.mbS upportsPop ups) &&
1058         (WWH Frame.WWHB rowser.mbS upportsIFr ames))   1058         (WWH Frame.WWHB rowser.mbS upportsIFr ames))
1059     {   1059     {
1060       VarHTM L = this.m Popup.fDiv TagText();   1060       VarHTM L = this.m Popup.fDiv TagText();
1061     }   1061     }
1062     1062  
1063     return V arHTML;   1063     return V arHTML;
1064   }   1064   }
1065     1065  
1066   function   WWHHelp_Sh owPopup(Pa ramContext ,   1066   function   WWHHelp_Sh owPopup(Pa ramContext ,
1067                                 Pa ramLink,   1067                                 Pa ramLink,
1068                                 Pa ramEvent)   1068                                 Pa ramEvent)
1069   {   1069   {
1070     var  Boo k;   1070     var  Boo k;
1071     var  Lin k;   1071     var  Lin k;
1072     var  Src ;   1072     var  Src ;
1073     var  Pop upHTML;   1073     var  Pop upHTML;
1074     1074  
1075     if ((WWH Frame.WWHB rowser.mbS upportsPop ups) &&   1075     if ((WWH Frame.WWHB rowser.mbS upportsPop ups) &&
1076         (WWH Frame.WWHB rowser.mbS upportsIFr ames))   1076         (WWH Frame.WWHB rowser.mbS upportsIFr ames))
1077     {   1077     {
1078       Book =  this.mBoo ks.fGetCon textBook(P aramContex t);   1078       Book =  this.mBoo ks.fGetCon textBook(P aramContex t);
1079       if (Bo ok != null )   1079       if (Bo ok != null )
1080       {   1080       {
1081         Link  = WWHFram e.WWHBrows er.fNormal izeURL(Par amLink);   1081         Link  = WWHFram e.WWHBrows er.fNormal izeURL(Par amLink);
1082         Src  = this.mBa seURL + Bo ok.mDirect ory + Link ;   1082         Src  = this.mBa seURL + Bo ok.mDirect ory + Link ;
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 >";   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 >";
1084         this .mPopup.fS how(PopupH TML, Param Event);   1084         this .mPopup.fS how(PopupH TML, Param Event);
1085     1085  
1086         // 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
1087         //   1087         //
1088         if ( this.mPopu p.mSetTime outID != n ull)   1088         if ( this.mPopu p.mSetTime outID != n ull)
1089         {   1089         {
1090           cl earTimeout (this.mPop up.mSetTim eoutID);   1090           cl earTimeout (this.mPop up.mSetTim eoutID);
1091           th is.mPopup. mSetTimeou tID = null ;   1091           th is.mPopup. mSetTimeou tID = null ;
1092     1092  
1093           th is.mPopupL oaded = fa lse;   1093           th is.mPopupL oaded = fa lse;
1094           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);
1095         }   1095         }
1096       }   1096       }
1097     }   1097     }
1098   }   1098   }
1099     1099  
1100   function   WWHHelp_Po pupAdjustS ize()   1100   function   WWHHelp_Po pupAdjustS ize()
1101   {   1101   {
1102     var  Var PopupWindo w = eval(t his.mPopup .mWindowRe f);   1102     var  Var PopupWindo w = eval(t his.mPopup .mWindowRe f);
1103     var  Var PopupDocum ent = VarP opupWindow .document;   1103     var  Var PopupDocum ent = VarP opupWindow .document;
1104     var  Var DocumentEl ement;   1104     var  Var DocumentEl ement;
1105     var  Var MaxHeight;   1105     var  Var MaxHeight;
1106     var  Var IFrame;   1106     var  Var IFrame;
1107     var  Var Element;   1107     var  Var Element;
1108     var  Var Width;   1108     var  Var Width;
1109     var  Var Height;   1109     var  Var Height;
1110     var  Var DistanceTo RightEdge;   1110     var  Var DistanceTo RightEdge;
1111     1111  
1112     // Acces s popup if rame   1112     // Acces s popup if rame
1113     //   1113     //
1114     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
1115     {   1115     {
1116       // Acc ess popup  iframe   1116       // Acc ess popup  iframe
1117       //   1117       //
1118       VarIFr ame = VarP opupDocume nt.all['WW HPopupIFra me'];   1118       VarIFr ame = VarP opupDocume nt.all['WW HPopupIFra me'];
1119     1119  
1120       // Acc ess docume nt element s   1120       // Acc ess docume nt element s
1121       //   1121       //
1122       if ((t ypeof(VarP opupDocume nt.documen tElement)  != "undefi ned") &&   1122       if ((t ypeof(VarP opupDocume nt.documen tElement)  != "undefi ned") &&
1123           (t ypeof(VarP opupDocume nt.documen tElement.c lientWidth ) != "unde fined") &&   1123           (t ypeof(VarP opupDocume nt.documen tElement.c lientWidth ) != "unde fined") &&
1124           (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") & &
1125           (( VarPopupDo cument.doc umentEleme nt.clientW idth != 0)  ||   1125           (( VarPopupDo cument.doc umentEleme nt.clientW idth != 0)  ||
1126            ( VarPopupDo cument.doc umentEleme nt.clientH eight != 0 )))   1126            ( VarPopupDo cument.doc umentEleme nt.clientH eight != 0 )))
1127       {   1127       {
1128         VarD ocumentEle ment = Var PopupDocum ent.docume ntElement;   1128         VarD ocumentEle ment = Var PopupDocum ent.docume ntElement;
1129         VarE lement = V arIFrame.c ontentWind ow.documen t.document Element;   1129         VarE lement = V arIFrame.c ontentWind ow.documen t.document Element;
1130       }   1130       }
1131       else   1131       else
1132       {   1132       {
1133         VarD ocumentEle ment = Var PopupDocum ent.body;   1133         VarD ocumentEle ment = Var PopupDocum ent.body;
1134         VarE lement = V arIFrame.c ontentWind ow.documen t.body;   1134         VarE lement = V arIFrame.c ontentWind ow.documen t.body;
1135       }   1135       }
1136     1136  
1137       // Det ermine max imum heigh t   1137       // Det ermine max imum heigh t
1138       //   1138       //
1139       VarMax Height = V arDocument Element.cl ientHeight  - 16;   1139       VarMax Height = V arDocument Element.cl ientHeight  - 16;
1140     1140  
1141       // Rec ord width   1141       // Rec ord width
1142       //   1142       //
1143       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;
1144     1144  
1145       // Det ermine hei ght   1145       // Det ermine hei ght
1146       //   1146       //
1147       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;
1148       VarHei ght += 4;   1148       VarHei ght += 4;
1149       if (Va rHeight >  VarMaxHeig ht)   1149       if (Va rHeight >  VarMaxHeig ht)
1150       {   1150       {
1151         VarH eight = Va rMaxHeight ;   1151         VarH eight = Va rMaxHeight ;
1152     1152  
1153         // 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
1154         //   1154         //
1155         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 ;
1156         if ( VarDistanc eToRightEd ge < this. mPopup.mPo sitionX)   1156         if ( VarDistanc eToRightEd ge < this. mPopup.mPo sitionX)
1157         {   1157         {
1158           Va rWidth = t his.mPopup .mPosition X;   1158           Va rWidth = t his.mPopup .mPosition X;
1159         }   1159         }
1160         else   1160         else
1161         {   1161         {
1162           Va rWidth = V arDistance ToRightEdg e;   1162           Va rWidth = V arDistance ToRightEdg e;
1163         }   1163         }
1164       }   1164       }
1165     1165  
1166       // Upd ate IFrame  width/hei ght   1166       // Upd ate IFrame  width/hei ght
1167       //   1167       //
1168       if (Va rWidth > V arIFrame.s tyle.width )   1168       if (Va rWidth > V arIFrame.s tyle.width )
1169       {   1169       {
1170         VarI Frame.styl e.width =  VarWidth;   1170         VarI Frame.styl e.width =  VarWidth;
1171       }   1171       }
1172       if (Va rHeight >  VarIFrame. style.heig ht)   1172       if (Va rHeight >  VarIFrame. style.heig ht)
1173       {   1173       {
1174         VarI Frame.styl e.height =  VarHeight ;   1174         VarI Frame.styl e.height =  VarHeight ;
1175       }   1175       }
1176     }   1176     }
1177     else   1177     else
1178     {   1178     {
1179       // Det ermine max imum heigh t   1179       // Det ermine max imum heigh t
1180       //   1180       //
1181       VarMax Height = V arPopupWin dow.innerH eight - 16 ;   1181       VarMax Height = V arPopupWin dow.innerH eight - 16 ;
1182     1182  
1183       // Acc ess popup  iframe   1183       // Acc ess popup  iframe
1184       //   1184       //
1185       VarIFr ame = VarP opupDocume nt.getElem entById('W WHPopupIFr ame');   1185       VarIFr ame = VarP opupDocume nt.getElem entById('W WHPopupIFr ame');
1186     1186  
1187       // Rec ord width   1187       // Rec ord width
1188       //   1188       //
1189       VarWid th = VarIF rame.conte ntDocument .body.offs etWidth +  16;   1189       VarWid th = VarIF rame.conte ntDocument .body.offs etWidth +  16;
1190     1190  
1191       // Det ermine hei ght   1191       // Det ermine hei ght
1192       //   1192       //
1193       VarHei ght = VarI Frame.cont entDocumen t.body.off setHeight  + 16;   1193       VarHei ght = VarI Frame.cont entDocumen t.body.off setHeight  + 16;
1194       if (Va rHeight >  VarMaxHeig ht)   1194       if (Va rHeight >  VarMaxHeig ht)
1195       {   1195       {
1196         VarH eight = Va rMaxHeight ;   1196         VarH eight = Va rMaxHeight ;
1197     1197  
1198         // 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
1199         //   1199         //
1200         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;
1201         if ( VarDistanc eToRightEd ge < this. mPopup.mPo sitionX)   1201         if ( VarDistanc eToRightEd ge < this. mPopup.mPo sitionX)
1202         {   1202         {
1203           Va rWidth = t his.mPopup .mPosition X - 16 - 1 6;   1203           Va rWidth = t his.mPopup .mPosition X - 16 - 1 6;
1204         }   1204         }
1205         else   1205         else
1206         {   1206         {
1207           Va rWidth = V arDistance ToRightEdg e - 16;   1207           Va rWidth = V arDistance ToRightEdg e - 16;
1208         }   1208         }
1209       }   1209       }
1210     1210  
1211       // Upd ate IFrame  width/hei ght   1211       // Upd ate IFrame  width/hei ght
1212       //   1212       //
1213       if (Va rWidth > V arIFrame.w idth)   1213       if (Va rWidth > V arIFrame.w idth)
1214       {   1214       {
1215         VarI Frame.widt h = VarWid th;   1215         VarI Frame.widt h = VarWid th;
1216       }   1216       }
1217       if (Va rHeight >  VarIFrame. height)   1217       if (Va rHeight >  VarIFrame. height)
1218       {   1218       {
1219         VarI Frame.heig ht = VarHe ight;   1219         VarI Frame.heig ht = VarHe ight;
1220       }   1220       }
1221     }   1221     }
1222   }   1222   }
1223     1223  
1224   function   WWHHelp_Po pupLoaded( )   1224   function   WWHHelp_Po pupLoaded( )
1225   {   1225   {
1226     this.fPo pupAdjustS ize();   1226     this.fPo pupAdjustS ize();
1227     1227  
1228     this.mPo pupLoaded  = true;   1228     this.mPo pupLoaded  = true;
1229   }   1229   }
1230     1230  
1231   function   WWHHelp_Re vealPopup( )   1231   function   WWHHelp_Re vealPopup( )
1232   {   1232   {
1233     var  Var PopupDocum ent;   1233     var  Var PopupDocum ent;
1234     var  Var IFrame;   1234     var  Var IFrame;
1235     var  Var Element;   1235     var  Var Element;
1236     1236  
1237     if ((thi s.mPopup.m SetTimeout ID != null ) &&   1237     if ((thi s.mPopup.m SetTimeout ID != null ) &&
1238         (thi s.mPopupLo aded))   1238         (thi s.mPopupLo aded))
1239     {   1239     {
1240       // Dis able hide  capability  temporari ly   1240       // Dis able hide  capability  temporari ly
1241       //   1241       //
1242       this.m PopupHideD isabled =  true;   1242       this.m PopupHideD isabled =  true;
1243     1243  
1244       // Rev eal   1244       // Rev eal
1245       //   1245       //
1246       this.m Popup.fRev eal();   1246       this.m Popup.fRev eal();
1247     1247  
1248       // Res et IFrame  content if  necessary   1248       // Res et IFrame  content if  necessary
1249       //   1249       //
1250       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
1251       {   1251       {
1252         // A ccess popu p IFrame   1252         // A ccess popu p IFrame
1253         //   1253         //
1254         VarP opupDocume nt = eval( this.mPopu p.mWindowR ef + ".doc ument");   1254         VarP opupDocume nt = eval( this.mPopu p.mWindowR ef + ".doc ument");
1255         VarI Frame = Va rPopupDocu ment.all[' WWHPopupIF rame'];   1255         VarI Frame = Va rPopupDocu ment.all[' WWHPopupIF rame'];
1256         VarE lement = V arIFrame.c ontentWind ow.documen t.body;   1256         VarE lement = V arIFrame.c ontentWind ow.documen t.body;
1257     1257  
1258         // " Toggle" IF rame conte nt   1258         // " Toggle" IF rame conte nt
1259         //   1259         //
1260         VarE lement.inn erHTML = V arElement. innerHTML;   1260         VarE lement.inn erHTML = V arElement. innerHTML;
1261       }   1261       }
1262     1262  
1263       // Ena ble hide c apability  in a bit   1263       // Ena ble hide c apability  in a bit
1264       //   1264       //
1265       setTim eout("WWHF rame.WWHHe lp.fResetP opupHideDi sabled()",  100);   1265       setTim eout("WWHF rame.WWHHe lp.fResetP opupHideDi sabled()",  100);
1266     }   1266     }
1267     else   1267     else
1268     {   1268     {
1269       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 );
1270     }   1270     }
1271   }   1271   }
1272     1272  
1273   function   WWHHelp_Re setPopupHi deDisabled ()   1273   function   WWHHelp_Re setPopupHi deDisabled ()
1274   {   1274   {
1275     this.mPo pupHideDis abled = fa lse;   1275     this.mPo pupHideDis abled = fa lse;
1276   }   1276   }
1277     1277  
1278   function   WWHHelp_Hi dePopup()   1278   function   WWHHelp_Hi dePopup()
1279   {   1279   {
1280     if ( ! t his.mPopup HideDisabl ed)   1280     if ( ! t his.mPopup HideDisabl ed)
1281     {   1281     {
1282       this.m Popup.fHid e();   1282       this.m Popup.fHid e();
1283     }   1283     }
1284   }   1284   }
1285     1285  
1286   function   WWHHelp_Cl ickedPopup (ParamCont ext,   1286   function   WWHHelp_Cl ickedPopup (ParamCont ext,
1287                                     ParamLink ,   1287                                     ParamLink ,
1288                                     ParamPopu pLink)   1288                                     ParamPopu pLink)
1289   {   1289   {
1290     var  Var TargetLink ;   1290     var  Var TargetLink ;
1291     1291  
1292     if ((WWH Frame.WWHB rowser.mbS upportsPop ups) &&   1292     if ((WWH Frame.WWHB rowser.mbS upportsPop ups) &&
1293         (WWH Frame.WWHB rowser.mbS upportsIFr ames))   1293         (WWH Frame.WWHB rowser.mbS upportsIFr ames))
1294     {   1294     {
1295       // Sho w popup ta rget   1295       // Sho w popup ta rget
1296       //   1296       //
1297       this.f HidePopup( );   1297       this.f HidePopup( );
1298       VarTar getLink =  ParamLink;   1298       VarTar getLink =  ParamLink;
1299     }   1299     }
1300     else   1300     else
1301     {   1301     {
1302       // Sho w popup, i f defined   1302       // Sho w popup, i f defined
1303       //   1303       //
1304       VarTar getLink =  ParamPopup Link;   1304       VarTar getLink =  ParamPopup Link;
1305       if (Va rTargetLin k.length = = 0)   1305       if (Va rTargetLin k.length = = 0)
1306       {   1306       {
1307         VarT argetLink  = ParamLin k;   1307         VarT argetLink  = ParamLin k;
1308       }   1308       }
1309     }   1309     }
1310     1310  
1311     // Displ ay target  link   1311     // Displ ay target  link
1312     //   1312     //
1313     this.fDi splayFile( ParamConte xt, VarTar getLink);   1313     this.fDi splayFile( ParamConte xt, VarTar getLink);
1314   }   1314   }
1315     1315  
1316   function   WWHHelp_Di splayFile( ParamConte xt,   1316   function   WWHHelp_Di splayFile( ParamConte xt,
1317                                    ParamLink)   1317                                    ParamLink)
1318   {   1318   {
1319     var  Boo k;   1319     var  Boo k;
1320     var  Lin k;   1320     var  Lin k;
1321     1321  
1322     // Link  defined?   1322     // Link  defined?
1323     //   1323     //
1324     if (Para mLink.leng th > 0)   1324     if (Para mLink.leng th > 0)
1325     {   1325     {
1326       Book =  this.mBoo ks.fGetCon textBook(P aramContex t);   1326       Book =  this.mBoo ks.fGetCon textBook(P aramContex t);
1327       if (Bo ok != null )   1327       if (Bo ok != null )
1328       {   1328       {
1329         Link  = WWHFram e.WWHBrows er.fNormal izeURL(Par amLink);   1329         Link  = WWHFram e.WWHBrows er.fNormal izeURL(Par amLink);
1330         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);
1331       }   1331       }
1332     }   1332     }
1333   }   1333   }
1334     1334  
1335   function   WWHHelp_Di splayFirst ()   1335   function   WWHHelp_Di splayFirst ()
1336   {   1336   {
        1337     var  Var URL;
        1338  
1337     VarURL =  WWHFrame. WWHHelp.fG etBookInde xFileIndex URL(0, 0,  null);   1339     VarURL =  WWHFrame. WWHHelp.fG etBookInde xFileIndex URL(0, 0,  null);
1338     WWHFrame .WWHHelp.f SetDocumen tHREF(VarU RL, true);   1340     WWHFrame .WWHHelp.f SetDocumen tHREF(VarU RL, true);
1339     1341  
1340     // Autom atically s ynchronize  TOC   1342     // Autom atically s ynchronize  TOC
1341     //   1343     //
1342     this.mbA utoSyncTOC  = true;   1344     this.mbA utoSyncTOC  = true;
1343   }   1345   }
1344     1346  
1345   function   WWHHelp_Sh owTopic(Pa ramContext ,   1347   function   WWHHelp_Sh owTopic(Pa ramContext ,
1346                                 Pa ramTopic)   1348                                 Pa ramTopic)
1347   {   1349   {
1348     var  Var ContextBoo k;   1350     var  Var ContextBoo k;
1349     1351  
1350     1352  
1351     // Deter mine book  directory   1353     // Deter mine book  directory
1352     //   1354     //
1353     VarConte xtBook = t his.mBooks .fGetConte xtBook(Par amContext) ;   1355     VarConte xtBook = t his.mBooks .fGetConte xtBook(Par amContext) ;
1354     if (VarC ontextBook  != null)   1356     if (VarC ontextBook  != null)
1355     {   1357     {
1356       // Set up for a t opic searc h   1358       // Set up for a t opic searc h
1357       //   1359       //
1358       this.m ContextDir  = VarCont extBook.mD irectory;   1360       this.m ContextDir  = VarCont extBook.mD irectory;
1359       this.m TopicTag    = ParamTo pic;   1361       this.m TopicTag    = ParamTo pic;
1360     1362  
1361       this.m DocumentUR L = "";   1363       this.m DocumentUR L = "";
1362     1364  
1363       // Loa d topic da ta to dete rmine docu ment to di splay   1365       // Loa d topic da ta to dete rmine docu ment to di splay
1364       //   1366       //
1365       this.f SetDocumen tHREF(this .mBaseURL  + "wwhelp/ wwhimpl/co mmon/html/ document.h tm", false );   1367       this.f SetDocumen tHREF(this .mBaseURL  + "wwhelp/ wwhimpl/co mmon/html/ document.h tm", false );
1366     }   1368     }
1367   }   1369   }
1368     1370  
1369   function   WWHHelp_Up date(Param URL)   1371   function   WWHHelp_Up date(Param URL)
1370   {   1372   {
1371     var  URL ;   1373     var  URL ;
1372     var  Par ts;   1374     var  Par ts;
1373     1375  
1374     1376  
1375     if (this .mbInitial ized)   1377     if (this .mbInitial ized)
1376     {   1378     {
1377       URL =  WWHFrame.W WHBrowser. fNormalize URL(ParamU RL);   1379       URL =  WWHFrame.W WHBrowser. fNormalize URL(ParamU RL);
1378     1380  
1379       if (WW HFrame.WWH Handler.fI sReady())   1381       if (WW HFrame.WWH Handler.fI sReady())
1380       {   1382       {
1381         Part s = this.f HREFToBook IndexFileI ndexAnchor (URL);   1383         Part s = this.f HREFToBook IndexFileI ndexAnchor (URL);
1382         if ( (Parts[0]  >= 0) &&   1384         if ( (Parts[0]  >= 0) &&
1383              (Parts[1]  >= 0))   1385              (Parts[1]  >= 0))
1384         {   1386         {
1385           WW HFrame.WWH Handler.fU pdate(Part s[0], Part s[1], Part s[2]);   1387           WW HFrame.WWH Handler.fU pdate(Part s[0], Part s[1], Part s[2]);
1386         }   1388         }
1387     1389  
1388         this .fDocument Bookkeepin g(URL);   1390         this .fDocument Bookkeepin g(URL);
1389     1391  
1390         // S witch tabs , if neces sary   1392         // S witch tabs , if neces sary
1391         //   1393         //
1392         if ( this.mNewT abName !=  null)   1394         if ( this.mNewT abName !=  null)
1393         {   1395         {
1394           WW HFrame.WWH Handler.fS etCurrentT ab(this.mN ewTabName) ;   1396           WW HFrame.WWH Handler.fS etCurrentT ab(this.mN ewTabName) ;
1395     1397  
1396           th is.mNewTab Name = nul l;   1398           th is.mNewTab Name = nul l;
1397         }   1399         }
1398       }   1400       }
1399       else   1401       else
1400       {   1402       {
1401         // T ry again i n a bit   1403         // T ry again i n a bit
1402         //   1404         //
1403         setT imeout("WW HFrame.WWH Help.fUpda te(\"" + W WHStringUt ilities_Es capeForJav aScript(Pa ramURL) +  "\");", 10 0);   1405         setT imeout("WW HFrame.WWH Help.fUpda te(\"" + W WHStringUt ilities_Es capeForJav aScript(Pa ramURL) +  "\");", 10 0);
1404       }   1406       }
1405     }   1407     }
1406     else if  (ParamURL. indexOf("w whelp/wwhi mpl/common /html/defa ult.htm")  == -1)   1408     else if  (ParamURL. indexOf("w whelp/wwhi mpl/common /html/defa ult.htm")  == -1)
1407     {   1409     {
1408       // Try  again in  a bit   1410       // Try  again in  a bit
1409       //   1411       //
1410       this.m DocumentLo aded = Par amURL;   1412       this.m DocumentLo aded = Par amURL;
1411       setTim eout("WWHF rame.WWHHe lp.fUpdate (\"" + WWH StringUtil ities_Esca peForJavaS cript(Para mURL) + "\ ");", 100) ;   1413       setTim eout("WWHF rame.WWHHe lp.fUpdate (\"" + WWH StringUtil ities_Esca peForJavaS cript(Para mURL) + "\ ");", 100) ;
1412     }   1414     }
1413   }   1415   }
1414     1416  
1415   function   WWHHelp_Sy ncTOC(Para mURL,   1417   function   WWHHelp_Sy ncTOC(Para mURL,
1416                               bPar amReportEr ror)   1418                               bPar amReportEr ror)
1417   {   1419   {
1418     var  Par ts;   1420     var  Par ts;
1419     1421  
1420     if (WWHF rame.WWHHa ndler.fIsR eady())   1422     if (WWHF rame.WWHHa ndler.fIsR eady())
1421     {   1423     {
1422       Parts  = this.fHR EFToBookIn dexFileInd exAnchor(P aramURL);   1424       Parts  = this.fHR EFToBookIn dexFileInd exAnchor(P aramURL);
1423       if ((P arts[0] >=  0) &&   1425       if ((P arts[0] >=  0) &&
1424           (P arts[1] >=  0))   1426           (P arts[1] >=  0))
1425       {   1427       {
1426         WWHF rame.WWHHa ndler.fSyn cTOC(Parts [0], Parts [1], Parts [2], bPara mReportErr or);   1428         WWHF rame.WWHHa ndler.fSyn cTOC(Parts [0], Parts [1], Parts [2], bPara mReportErr or);
1427       }   1429       }
1428     }   1430     }
1429     else   1431     else
1430     {   1432     {
1431       // Try  again in  a bit   1433       // Try  again in  a bit
1432       //   1434       //
1433       setTim eout("WWHF rame.WWHHe lp.fSyncTO C(\"" + WW HStringUti lities_Esc apeForJava Script(Par amURL) + " \", " + bP aramReport Error + ") ;", 100);   1435       setTim eout("WWHF rame.WWHHe lp.fSyncTO C(\"" + WW HStringUti lities_Esc apeForJava Script(Par amURL) + " \", " + bP aramReport Error + ") ;", 100);
1434     }   1436     }
1435   }   1437   }
1436     1438  
1437   function   WWHHelp_Fa voritesCur rent(Param URL)   1439   function   WWHHelp_Fa voritesCur rent(Param URL)
1438   {   1440   {
1439     var  Par ts;   1441     var  Par ts;
1440     1442  
1441     if (WWHF rame.WWHHa ndler.fIsR eady())   1443     if (WWHF rame.WWHHa ndler.fIsR eady())
1442     {   1444     {
1443       Parts  = this.fHR EFToBookIn dexFileInd exAnchor(P aramURL);   1445       Parts  = this.fHR EFToBookIn dexFileInd exAnchor(P aramURL);
1444       if ((P arts[0] >=  0) &&   1446       if ((P arts[0] >=  0) &&
1445           (P arts[1] >=  0))   1447           (P arts[1] >=  0))
1446       {   1448       {
1447         WWHF rame.WWHHa ndler.fFav oritesCurr ent(Parts[ 0], Parts[ 1]);   1449         WWHF rame.WWHHa ndler.fFav oritesCurr ent(Parts[ 0], Parts[ 1]);
1448       }   1450       }
1449       else   1451       else
1450       {   1452       {
1451         WWHF rame.WWHHa ndler.fFav oritesCurr ent(-1, -1 );   1453         WWHF rame.WWHHa ndler.fFav oritesCurr ent(-1, -1 );
1452       }   1454       }
1453     }   1455     }
1454     else   1456     else
1455     {   1457     {
1456       // Try  again in  a bit   1458       // Try  again in  a bit
1457       //   1459       //
1458       setTim eout("WWHF rame.WWHHe lp.fFavori tesCurrent (\"" + WWH StringUtil ities_Esca peForJavaS cript(Para mURL) + "\ ");", 100) ;   1460       setTim eout("WWHF rame.WWHHe lp.fFavori tesCurrent (\"" + WWH StringUtil ities_Esca peForJavaS cript(Para mURL) + "\ ");", 100) ;
1459     }   1461     }
1460   }   1462   }
1461     1463  
1462   function   WWHHelp_Do cumentBook keeping(Pa ramURL)   1464   function   WWHHelp_Do cumentBook keeping(Pa ramURL)
1463   {   1465   {
1464     var  Var DocumentFr ame;   1466     var  Var DocumentFr ame;
1465     var  Var URL;   1467     var  Var URL;
1466     1468  
1467     // Highl ight searc h words   1469     // Highl ight searc h words
1468     //   1470     //
1469     if (type of(WWHFram e.WWHHighl ightWords)  != "undef ined")   1471     if (type of(WWHFram e.WWHHighl ightWords)  != "undef ined")
1470     {   1472     {
1471       WWHFra me.WWHHigh lightWords .fExec();   1473       WWHFra me.WWHHigh lightWords .fExec();
1472     }   1474     }
1473     1475  
1474     // Updat e controls   1476     // Updat e controls
1475     //   1477     //
1476     WWHFrame .WWHContro ls.fUpdate HREF(Param URL);   1478     WWHFrame .WWHContro ls.fUpdate HREF(Param URL);
1477     1479  
1478     // Updat e window t itle, if p ossible   1480     // Updat e window t itle, if p ossible
1479     //   1481     //
1480     if (Para mURL.index Of("wwhelp /wwhimpl/c ommon/html /default.h tm") == -1 )   1482     if (Para mURL.index Of("wwhelp /wwhimpl/c ommon/html /default.h tm") == -1 )
1481     {   1483     {
1482       if (WW HFrame.WWH Browser.mB rowser !=  1)  // Sho rthand for  Netscape   1484       if (WW HFrame.WWH Browser.mB rowser !=  1)  // Sho rthand for  Netscape
1483       {   1485       {
1484         WWHF rame.docum ent.title  = WWHStrin gUtilities _UnescapeH TML(this.f HREFToTitl e(ParamURL ));   1486         WWHF rame.docum ent.title  = WWHStrin gUtilities _UnescapeH TML(this.f HREFToTitl e(ParamURL ));
1485       }   1487       }
1486     }   1488     }
1487     1489  
1488     // Autom atically s ynchronize  TOC, if r equested   1490     // Autom atically s ynchronize  TOC, if r equested
1489     //   1491     //
1490     if ( ! t his.mColla psingTOCEn try)   1492     if ( ! t his.mColla psingTOCEn try)
1491     {   1493     {
1492       this.f AutoSyncTO C();   1494       this.f AutoSyncTO C();
1493     }   1495     }
1494     this.mCo llapsingTO CEntry = f alse;   1496     this.mCo llapsingTO CEntry = f alse;
1495     1497  
1496     // Updat e favorite s   1498     // Updat e favorite s
1497     //   1499     //
1498     VarDocum entFrame =  eval(this .fGetFrame Reference( "WWHDocume ntFrame")) ;   1500     VarDocum entFrame =  eval(this .fGetFrame Reference( "WWHDocume ntFrame")) ;
1499     VarURL =  WWHFrame. WWHBrowser .fNormaliz eURL(VarDo cumentFram e.location .href);   1501     VarURL =  WWHFrame. WWHBrowser .fNormaliz eURL(VarDo cumentFram e.location .href);
1500     this.fFa voritesCur rent(VarUR L);   1502     this.fFa voritesCur rent(VarUR L);
1501     1503  
1502     // Updat e hash   1504     // Updat e hash
1503     //   1505     //
1504     this.fUp dateHash(V arURL);   1506     this.fUp dateHash(V arURL);
1505   }   1507   }
1506     1508  
1507   function   WWHHelp_Up dateHash(P aramURL)   1509   function   WWHHelp_Up dateHash(P aramURL)
1508   {   1510   {
1509     var  Var FileName;   1511     var  Var FileName;
1510     var  Var Hash;   1512     var  Var Hash;
1511     1513  
1512     // Only  update if  "?" is not  present ( and theref ore has pr iority)   1514     // Only  update if  "?" is not  present ( and theref ore has pr iority)
1513     //   1515     //
1514     if (WWHF rame.locat ion.href.i ndexOf("?" ) == -1)   1516     if (WWHF rame.locat ion.href.i ndexOf("?" ) == -1)
1515     {   1517     {
1516       // Upd ate URL ha sh value   1518       // Upd ate URL ha sh value
1517       //   1519       //
1518       VarFil eName = th is.fGetBoo kFileHREF( ParamURL);   1520       VarFil eName = th is.fGetBoo kFileHREF( ParamURL);
1519       if ((V arFileName  != null)  &&   1521       if ((V arFileName  != null)  &&
1520           (V arFileName .length >  0) &&   1522           (V arFileName .length >  0) &&
1521           (V arFileName  != "wwhel p/wwhimpl/ common/htm l/default. htm"))   1523           (V arFileName  != "wwhel p/wwhimpl/ common/htm l/default. htm"))
1522       {   1524       {
1523         // O nly update  if differ ent   1525         // O nly update  if differ ent
1524         //   1526         //
1525         VarH ash = "#hr ef=" + Var FileName;   1527         VarH ash = "#hr ef=" + Var FileName;
1526         if ( this.fSing leTopic())   1528         if ( this.fSing leTopic())
1527         {   1529         {
1528           Va rHash += " &single=tr ue";   1530           Va rHash += " &single=tr ue";
1529         }   1531         }
1530         if ( WWHFrame.l ocation.ha sh != VarH ash)   1532         if ( WWHFrame.l ocation.ha sh != VarH ash)
1531         {   1533         {
1532           //  Only work s well on  certain br owsers   1534           //  Only work s well on  certain br owsers
1533           //   1535           //
1534           if  ((WWHFram e.WWHBrows er.mBrowse r == 2) ||   // Short hand for I E   1536           if  ((WWHFram e.WWHBrows er.mBrowse r == 2) ||   // Short hand for I E
1535                (WWHFram e.WWHBrows er.mBrowse r == 4))     // Short hand for N etscape 6. 0 (Mozilla )   1537                (WWHFram e.WWHBrows er.mBrowse r == 4))     // Short hand for N etscape 6. 0 (Mozilla )
1536           {   1538           {
1537              WWHFrame.l ocation.ha sh = VarHa sh;   1539              WWHFrame.l ocation.ha sh = VarHa sh;
1538           }   1540           }
1539         }   1541         }
1540       }   1542       }
1541     }   1543     }
1542   }   1544   }
1543     1545  
1544   function   WWHHelp_Au toSyncTOC( )   1546   function   WWHHelp_Au toSyncTOC( )
1545   {   1547   {
1546     var  Var DocumentFr ame;   1548     var  Var DocumentFr ame;
1547     var  Var URL;   1549     var  Var URL;
1548     1550  
1549     // Autom atically s ynchronize  TOC, if r equested   1551     // Autom atically s ynchronize  TOC, if r equested
1550     //   1552     //
1551     if (this .mbAutoSyn cTOC)   1553     if (this .mbAutoSyn cTOC)
1552     {   1554     {
1553       if (WW HFrame.WWH Handler.fG etCurrentT ab() == "c ontents")   1555       if (WW HFrame.WWH Handler.fG etCurrentT ab() == "c ontents")
1554       {   1556       {
1555         VarD ocumentFra me = eval( this.fGetF rameRefere nce("WWHDo cumentFram e"));   1557         VarD ocumentFra me = eval( this.fGetF rameRefere nce("WWHDo cumentFram e"));
1556         VarU RL = WWHFr ame.WWHBro wser.fNorm alizeURL(V arDocument Frame.loca tion.href) ;   1558         VarU RL = WWHFr ame.WWHBro wser.fNorm alizeURL(V arDocument Frame.loca tion.href) ;
1557         this .fSyncTOC( VarURL, fa lse);   1559         this .fSyncTOC( VarURL, fa lse);
1558       }   1560       }
1559     1561  
1560       this.m bAutoSyncT OC = this. mbAlwaysSy ncTOC;   1562       this.m bAutoSyncT OC = this. mbAlwaysSy ncTOC;
1561     }   1563     }
1562   }   1564   }
1563     1565  
1564   function   WWHHelp_Un load()   1566   function   WWHHelp_Un load()
1565   {   1567   {
1566     // Clear  related t opics list   1568     // Clear  related t opics list
1567     //   1569     //
1568     WWHFrame .WWHRelate dTopics.fC lear();   1570     WWHFrame .WWHRelate dTopics.fC lear();
1569   }   1571   }
1570     1572  
1571   function   WWHHelp_Ig noreNextKe yPress(Par amEvent)   1573   function   WWHHelp_Ig noreNextKe yPress(Par amEvent)
1572   {   1574   {
1573     if (this .mbInitial ized)   1575     if (this .mbInitial ized)
1574     {   1576     {
1575       if ((P aramEvent  != null) & &   1577       if ((P aramEvent  != null) & &
1576           (t ypeof(Para mEvent.key Code) != " undefined" ))   1578           (t ypeof(Para mEvent.key Code) != " undefined" ))
1577       {   1579       {
1578         this .mbIgnoreN extKeyPres s = true;   1580         this .mbIgnoreN extKeyPres s = true;
1579       }   1581       }
1580     }   1582     }
1581     1583  
1582     return t rue;   1584     return t rue;
1583   }   1585   }
1584     1586  
1585   function   WWHHelp_Ha ndleKeyDow n(ParamEve nt)   1587   function   WWHHelp_Ha ndleKeyDow n(ParamEve nt)
1586   {   1588   {
1587     if (this .mbInitial ized)   1589     if (this .mbInitial ized)
1588     {   1590     {
1589       if ((P aramEvent  != null) & &   1591       if ((P aramEvent  != null) & &
1590           (t ypeof(Para mEvent.key Code) != " undefined" ))   1592           (t ypeof(Para mEvent.key Code) != " undefined" ))
1591       {   1593       {
1592         if ( ParamEvent .keyCode = = 18)   1594         if ( ParamEvent .keyCode = = 18)
1593         {   1595         {
1594           th is.mbAltKe yDown = tr ue;   1596           th is.mbAltKe yDown = tr ue;
1595         }   1597         }
1596         else  if ((Para mEvent.key Code >= 48 ) &&   1598         else  if ((Para mEvent.key Code >= 48 ) &&
1597                   (Para mEvent.key Code <= 57 ))   1599                   (Para mEvent.key Code <= 57 ))
1598         {   1600         {
1599           th is.mAccess Key = Para mEvent.key Code - 48;   1601           th is.mAccess Key = Para mEvent.key Code - 48;
1600         }   1602         }
1601       }   1603       }
1602     }   1604     }
1603     1605  
1604     return t rue;   1606     return t rue;
1605   }   1607   }
1606     1608  
1607   function   WWHHelp_Ha ndleKeyPre ss(ParamEv ent)   1609   function   WWHHelp_Ha ndleKeyPre ss(ParamEv ent)
1608   {   1610   {
1609     if (this .mbInitial ized)   1611     if (this .mbInitial ized)
1610     {   1612     {
1611       if (Pa ramEvent ! = null)   1613       if (Pa ramEvent ! = null)
1612       {   1614       {
1613         if ( this.mbIgn oreNextKey Press)   1615         if ( this.mbIgn oreNextKey Press)
1614         {   1616         {
1615           //  Ignore th is key pre ss event   1617           //  Ignore th is key pre ss event
1616           //   1618           //
1617         }   1619         }
1618         else   1620         else
1619         {   1621         {
1620           if  (this.mAc cessKey !=  null)   1622           if  (this.mAc cessKey !=  null)
1621           {   1623           {
1622              this.fProc essAccessK ey(this.mA ccessKey);   1624              this.fProc essAccessK ey(this.mA ccessKey);
1623           }   1625           }
1624         }   1626         }
1625       }   1627       }
1626     1628  
1627       // Res et to hand le next ac cess key   1629       // Res et to hand le next ac cess key
1628       //   1630       //
1629       this.m bIgnoreNex tKeyPress  = false;   1631       this.m bIgnoreNex tKeyPress  = false;
1630       this.m AccessKey  = null;   1632       this.m AccessKey  = null;
1631     }   1633     }
1632     1634  
1633     return t rue;   1635     return t rue;
1634   }   1636   }
1635     1637  
1636   function   WWHHelp_Ha ndleKeyUp( ParamEvent )   1638   function   WWHHelp_Ha ndleKeyUp( ParamEvent )
1637   {   1639   {
1638     if (this .mbInitial ized)   1640     if (this .mbInitial ized)
1639     {   1641     {
1640       if ((P aramEvent  != null) & &   1642       if ((P aramEvent  != null) & &
1641           (t ypeof(Para mEvent.key Code) != " undefined" ))   1643           (t ypeof(Para mEvent.key Code) != " undefined" ))
1642       {   1644       {
1643         if ( ParamEvent .keyCode = = 18)   1645         if ( ParamEvent .keyCode = = 18)
1644         {   1646         {
1645           th is.mbAltKe yDown = fa lse;   1647           th is.mbAltKe yDown = fa lse;
1646         }   1648         }
1647       }   1649       }
1648     }   1650     }
1649     1651  
1650     return t rue;   1652     return t rue;
1651   }   1653   }
1652     1654  
1653   function   WWHHelp_Pr ocessAcces sKey(Param AccessKey)   1655   function   WWHHelp_Pr ocessAcces sKey(Param AccessKey)
1654   {   1656   {
1655     switch ( ParamAcces sKey)   1657     switch ( ParamAcces sKey)
1656     {   1658     {
1657       case 1 :   1659       case 1 :
1658       case 2 :   1660       case 2 :
1659       case 3 :   1661       case 3 :
1660         WWHF rame.WWHHa ndler.fPro cessAccess Key(ParamA ccessKey);   1662         WWHF rame.WWHHa ndler.fPro cessAccess Key(ParamA ccessKey);
1661         brea k;   1663         brea k;
1662     1664  
1663       case 4 :   1665       case 4 :
1664       case 5 :   1666       case 5 :
1665       case 6 :   1667       case 6 :
1666       case 7 :   1668       case 7 :
1667       case 8 :   1669       case 8 :
1668       case 9 :   1670       case 9 :
1669         WWHF rame.WWHCo ntrols.fPr ocessAcces sKey(Param AccessKey) ;   1671         WWHF rame.WWHCo ntrols.fPr ocessAcces sKey(Param AccessKey) ;
1670         brea k;   1672         brea k;
1671     1673  
1672       case 0 :   1674       case 0 :
1673         this .fFocus("W WHDocument Frame");   1675         this .fFocus("W WHDocument Frame");
1674         brea k;   1676         brea k;
1675     }   1677     }
1676   }   1678   }
1677     1679  
1678   function   WWHHelp_Fo cus(ParamF rameName,   1680   function   WWHHelp_Fo cus(ParamF rameName,
1679                             ParamA nchorName)   1681                             ParamA nchorName)
1680   {   1682   {
1681     WWHFrame .WWHBrowse r.fFocus(t his.fGetFr ameReferen ce(ParamFr ameName),  ParamAncho rName);   1683     WWHFrame .WWHBrowse r.fFocus(t his.fGetFr ameReferen ce(ParamFr ameName),  ParamAncho rName);
1682   }   1684   }
1683     1685  
1684   function   WWHHelpUti lities_Pre loadGraphi cs()   1686   function   WWHHelpUti lities_Pre loadGraphi cs()
1685   {   1687   {
1686     var  Var ImageDirec tory = WWH Frame.WWHH elp.mHelpU RLPrefix +  "wwhelp/w whimpl/com mon/images ";   1688     var  Var ImageDirec tory = WWH Frame.WWHH elp.mHelpU RLPrefix +  "wwhelp/w whimpl/com mon/images ";
1687     1689  
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";   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  + "/bkmar k.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";   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 kx.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";   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  + "/close .gif";
1691     WWHFrame .WWHHelp.m Images[WWH Frame.WWHH elp.mImage s.length]  = new Imag e(); WWHFr ame.WWHHel p.mImages[ WWHFrame.W WHHelp.mIm ages.lengt h - 1].src  = VarImag eDirectory  + "/doc.g if";   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  + "/doc.g if";
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";   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  + "/email .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";   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 x.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  + "/fc.gi f";   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  + "/fc.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";   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  + "/fo.gi f";
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";   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  + "/next. 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";   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  + "/nextx .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";   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  + "/prev. 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";   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  + "/prevx .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";   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  + "/print .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";   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 x.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";   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 ed.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";   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 edi.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";   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 edx.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";   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  + "/shown av.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";   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  + "/space r4.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";   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  + "/spc1w 2h.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";   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 7h.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";   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  + "/spc2w 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";   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  + "/spc5w 1h.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";   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_l.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";   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_m.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";   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_r.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";   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_t.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";   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  + "/sync. 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";   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  + "/syncx .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";   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  + "/tools bg.gif";
1718   }   1720   }