]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
DCQ : Merge with Ecole Ete a6.
authoryfr <yfr@opencascade.com>
Fri, 25 Jun 2004 10:32:32 +0000 (10:32 +0000)
committeryfr <yfr@opencascade.com>
Fri, 25 Jun 2004 10:32:32 +0000 (10:32 +0000)
135 files changed:
doc/salome/gui/VISU/VISU.log [new file with mode: 0755]
doc/salome/gui/VISU/animation.gif [new file with mode: 0755]
doc/salome/gui/VISU/createfieldprsnt.gif [new file with mode: 0755]
doc/salome/gui/VISU/createpresent.gif [new file with mode: 0755]
doc/salome/gui/VISU/createtable.gif [new file with mode: 0755]
doc/salome/gui/VISU/cshdat_robohelp.htm [new file with mode: 0755]
doc/salome/gui/VISU/cshdat_webhelp.htm [new file with mode: 0755]
doc/salome/gui/VISU/default.css [new file with mode: 0755]
doc/salome/gui/VISU/default.skn [new file with mode: 0755]
doc/salome/gui/VISU/default_ns.css [new file with mode: 0755]
doc/salome/gui/VISU/ehlpdhtm.js [new file with mode: 0755]
doc/salome/gui/VISU/i_blue.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image1.gif [new file with mode: 0755]
doc/salome/gui/VISU/image10.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image11.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image12.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image13.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image14.gif [new file with mode: 0755]
doc/salome/gui/VISU/image15.gif [new file with mode: 0755]
doc/salome/gui/VISU/image15.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image16.gif [new file with mode: 0755]
doc/salome/gui/VISU/image16.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image17.gif [new file with mode: 0755]
doc/salome/gui/VISU/image17.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image18.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image19.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image20.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image21.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image22.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image4.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image5.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image6.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image7.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image8.gif [new file with mode: 0755]
doc/salome/gui/VISU/image8.jpg [new file with mode: 0755]
doc/salome/gui/VISU/image9.jpg [new file with mode: 0755]
doc/salome/gui/VISU/importmed.gif [new file with mode: 0755]
doc/salome/gui/VISU/launchvisu.gif [new file with mode: 0755]
doc/salome/gui/VISU/more.jpg [new file with mode: 0755]
doc/salome/gui/VISU/note1.gif [new file with mode: 0755]
doc/salome/gui/VISU/ss_btn_related_topics.gif [new file with mode: 0755]
doc/salome/gui/VISU/ss_btn_see_also.gif [new file with mode: 0755]
doc/salome/gui/VISU/texture_horiz_ltbluebubbles.jpg [new file with mode: 0755]
doc/salome/gui/VISU/tip1.gif [new file with mode: 0755]
doc/salome/gui/VISU/visu.html [new file with mode: 0755]
doc/salome/gui/VISU/visu_csh.html [new file with mode: 0755]
doc/salome/gui/VISU/visu_rhc.html [new file with mode: 0755]
doc/salome/gui/VISU/webhelp.cab [new file with mode: 0755]
doc/salome/gui/VISU/webhelp.jar [new file with mode: 0755]
doc/salome/gui/VISU/whestart.ico [new file with mode: 0755]
doc/salome/gui/VISU/whfbody.htm [new file with mode: 0755]
doc/salome/gui/VISU/whfdhtml.htm [new file with mode: 0755]
doc/salome/gui/VISU/whfform.htm [new file with mode: 0755]
doc/salome/gui/VISU/whfhost.js [new file with mode: 0755]
doc/salome/gui/VISU/whform.js [new file with mode: 0755]
doc/salome/gui/VISU/whframes.js [new file with mode: 0755]
doc/salome/gui/VISU/whgbody.htm [new file with mode: 0755]
doc/salome/gui/VISU/whgdef.htm [new file with mode: 0755]
doc/salome/gui/VISU/whgdhtml.htm [new file with mode: 0755]
doc/salome/gui/VISU/whghost.js [new file with mode: 0755]
doc/salome/gui/VISU/whhost.js [new file with mode: 0755]
doc/salome/gui/VISU/whibody.htm [new file with mode: 0755]
doc/salome/gui/VISU/whidhtml.htm [new file with mode: 0755]
doc/salome/gui/VISU/whiform.htm [new file with mode: 0755]
doc/salome/gui/VISU/whihost.js [new file with mode: 0755]
doc/salome/gui/VISU/whlang.js [new file with mode: 0755]
doc/salome/gui/VISU/whmozemu.js [new file with mode: 0755]
doc/salome/gui/VISU/whmsg.js [new file with mode: 0755]
doc/salome/gui/VISU/whnjs.htm [new file with mode: 0755]
doc/salome/gui/VISU/whphost.js [new file with mode: 0755]
doc/salome/gui/VISU/whproj.htm [new file with mode: 0755]
doc/salome/gui/VISU/whproj.js [new file with mode: 0755]
doc/salome/gui/VISU/whproj.xml [new file with mode: 0755]
doc/salome/gui/VISU/whproxy.js [new file with mode: 0755]
doc/salome/gui/VISU/whres.xml [new file with mode: 0755]
doc/salome/gui/VISU/whrstart.ico [new file with mode: 0755]
doc/salome/gui/VISU/whskin_banner.htm [new file with mode: 0755]
doc/salome/gui/VISU/whskin_blank.htm [new file with mode: 0755]
doc/salome/gui/VISU/whskin_frmset01.htm [new file with mode: 0755]
doc/salome/gui/VISU/whskin_frmset010.htm [new file with mode: 0755]
doc/salome/gui/VISU/whskin_info.htm [new file with mode: 0755]
doc/salome/gui/VISU/whskin_mbars.htm [new file with mode: 0755]
doc/salome/gui/VISU/whskin_papplet.htm [new file with mode: 0755]
doc/salome/gui/VISU/whskin_pdhtml.htm [new file with mode: 0755]
doc/salome/gui/VISU/whskin_plist.htm [new file with mode: 0755]
doc/salome/gui/VISU/whskin_tbars.htm [new file with mode: 0755]
doc/salome/gui/VISU/whst_topics.xml [new file with mode: 0755]
doc/salome/gui/VISU/whstart.ico [new file with mode: 0755]
doc/salome/gui/VISU/whstart.js [new file with mode: 0755]
doc/salome/gui/VISU/whstub.js [new file with mode: 0755]
doc/salome/gui/VISU/wht_abge.jpg [new file with mode: 0755]
doc/salome/gui/VISU/wht_abgi.jpg [new file with mode: 0755]
doc/salome/gui/VISU/wht_abgw.jpg [new file with mode: 0755]
doc/salome/gui/VISU/wht_abte.jpg [new file with mode: 0755]
doc/salome/gui/VISU/wht_abti.jpg [new file with mode: 0755]
doc/salome/gui/VISU/wht_abtw.jpg [new file with mode: 0755]
doc/salome/gui/VISU/wht_fts_h.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_fts_n.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_glo_h.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_glo_n.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_go.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_hide.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_idx_h.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_idx_n.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_logo1.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_logo2.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_next.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_next_g.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_prev.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_prev_g.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_spac.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_sync.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_tab0.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_tab1.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_tab2.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_tab3.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_tab4.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_tab5.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_tab6.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_tab7.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_tab8.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_toc1.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_toc2.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_toc3.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_toc4.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_toc_h.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_toc_n.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_ws.gif [new file with mode: 0755]
doc/salome/gui/VISU/wht_ws_g.gif [new file with mode: 0755]
doc/salome/gui/VISU/whtbar.js [new file with mode: 0755]
doc/salome/gui/VISU/whtdhtml.htm [new file with mode: 0755]
doc/salome/gui/VISU/whthost.js [new file with mode: 0755]
doc/salome/gui/VISU/whtopic.js [new file with mode: 0755]
doc/salome/gui/VISU/whutils.js [new file with mode: 0755]
doc/salome/gui/VISU/whver.js [new file with mode: 0755]

diff --git a/doc/salome/gui/VISU/VISU.log b/doc/salome/gui/VISU/VISU.log
new file mode 100755 (executable)
index 0000000..0cf5607
--- /dev/null
@@ -0,0 +1,318 @@
+|SourceProjectName:VISU.hpr\r
+|DestinationProjectName:visu.html\r
+whhost.js\r
+whmsg.js\r
+whmozemu.js\r
+whproxy.js\r
+whstub.js\r
+whutils.js\r
+whver.js\r
+whform.js\r
+whphost.js\r
+whstart.js\r
+whtopic.js\r
+whframes.js\r
+whlang.js\r
+whskin_info.htm\r
+whskin_blank.htm\r
+whnjs.htm\r
+whthost.js\r
+whtdhtml.htm\r
+whihost.js\r
+whibody.htm\r
+whiform.htm\r
+whfhost.js\r
+whfbody.htm\r
+whfform.htm\r
+whghost.js\r
+whgbody.htm\r
+whgdhtml.htm\r
+whgdef.htm\r
+whproj.js\r
+whproj.xml\r
+whproj.htm\r
+whdata\whtoc.js\r
+whdata\whtoc.xml\r
+whdata\whtoc.htm\r
+whdata\whtdata.js\r
+whdata\whidx.js\r
+whdata\whidx.xml\r
+whdata\whidx.htm\r
+whdata\whidata.js\r
+whdata\whfts.js\r
+whdata\whfts.xml\r
+whdata\whfts.htm\r
+whdata\whglo.js\r
+whdata\whglo.xml\r
+whdata\whglo.htm\r
+whdata\whgdata.js\r
+whdata\whftdata.js\r
+whdata\whfwdata.js\r
+whres.xml\r
+webhelp.jar\r
+webhelp.cab\r
+whgdata\whnvp30.htm\r
+whgdata\whnvp31.htm\r
+whgdata\whnvp32.htm\r
+whgdata\whnvp33.htm\r
+whgdata\whnvt30.htm\r
+whgdata\whnvt31.htm\r
+whgdata\whnvt32.htm\r
+whgdata\whnvt33.htm\r
+whgdata\whnvf30.htm\r
+whgdata\whnvf31.htm\r
+whgdata\whnvf32.htm\r
+whgdata\whnvf33.htm\r
+whgdata\whnvl31.htm\r
+whgdata\whnvl32.htm\r
+whgdata\whnvl33.htm\r
+whgdata\whexpbar.gif\r
+cshdat_webhelp.htm\r
+cshdat_robohelp.htm\r
+wht_tab0.gif\r
+wht_tab1.gif\r
+wht_tab2.gif\r
+wht_tab3.gif\r
+wht_tab4.gif\r
+wht_tab5.gif\r
+wht_tab6.gif\r
+wht_tab7.gif\r
+wht_tab8.gif\r
+wht_glo_h.gif\r
+wht_glo_n.gif\r
+wht_fts_h.gif\r
+wht_fts_n.gif\r
+wht_idx_h.gif\r
+wht_idx_n.gif\r
+wht_toc_h.gif\r
+wht_toc_n.gif\r
+wht_ws.gif\r
+wht_ws_g.gif\r
+wht_logo1.gif\r
+wht_logo2.gif\r
+wht_abgw.jpg\r
+wht_abgi.jpg\r
+wht_abge.jpg\r
+wht_abtw.jpg\r
+wht_abte.jpg\r
+wht_abti.jpg\r
+wht_spac.gif\r
+wht_next.gif\r
+wht_next_g.gif\r
+wht_prev.gif\r
+wht_prev_g.gif\r
+wht_sync.gif\r
+wht_hide.gif\r
+wht_go.gif\r
+whstart.ico\r
+whestart.ico\r
+whrstart.ico\r
+whidhtml.htm\r
+whfdhtml.htm\r
+whskin_banner.htm\r
+whtbar.js\r
+default.skn\r
+whskin_pdhtml.htm\r
+whskin_papplet.htm\r
+whskin_plist.htm\r
+whskin_tbars.htm\r
+whskin_mbars.htm\r
+wht_toc4.gif\r
+wht_toc1.gif\r
+wht_toc2.gif\r
+wht_toc3.gif\r
+whskin_frmset010.htm\r
+whst_topics.xml\r
+whskin_frmset01.htm\r
+visu_hha.hhk\r
+visu.hhc\r
+visu.hhk\r
+files\a.htm\r
+files\a1.htm\r
+files\a2.htm\r
+files\a3.htm\r
+files\a4.htm\r
+files\a5.htm\r
+files\about_structure_of_med_object.htm\r
+files\about_tables.htm\r
+files\animating_presentations.htm\r
+files\changing_visualization_parameters_of_the_presenetation.htm\r
+files\creating_curves.htm\r
+files\creating_field_presentations.htm\r
+files\creating_presentations.htm\r
+files\creating_tables_from_cut_lines_presentations.htm\r
+files\creating_xy_plot.htm\r
+files\cut_lines_presentation.htm\r
+files\cut_lines_resentation.htm\r
+files\deformed_shape_presentation.htm\r
+files\displaying_hiding_presentations.htm\r
+files\displaying_tables.htm\r
+files\editing_field_presentations.htm\r
+files\exploring_med_files.htm\r
+files\getting_elements_attributes.htm\r
+files\getting_started.htm\r
+files\importing_med_objects.htm\r
+files\importing_tables.htm\r
+files\insideframe.htm\r
+files\introduction_to_visu.htm\r
+files\iso_surfaces_presentation.htm\r
+files\points.htm\r
+files\renaming_presentations.htm\r
+files\running_visu.htm\r
+files\scalar_map_presentation.htm\r
+files\scaling_presentations.htm\r
+files\selection_in_visu.htm\r
+files\setting_properties_of_xy_plots.htm\r
+files\shrink.htm\r
+files\stream_lines_presentation.htm\r
+files\surface.htm\r
+files\surfaceframe.htm\r
+files\sweeping.htm\r
+files\vectors_presentation.htm\r
+files\wireframe.htm\r
+ehlpdhtm.js\r
+texture_horiz_ltbluebubbles.jpg\r
+visu.glo\r
+default.css\r
+image21.jpg\r
+image10.jpg\r
+pics\surface.jpg\r
+image22.jpg\r
+image11.jpg\r
+more.jpg\r
+pics\speed.jpg\r
+pics\next.jpg\r
+pics\run.jpg\r
+pics\cutlinesicon.jpg\r
+pics\cellselection.jpg\r
+pics\width.jpg\r
+pics\main.jpg\r
+image12.jpg\r
+createtable.gif\r
+pics\fieldprsnt3.jpg\r
+pics\points.jpg\r
+pics\choosebox.jpg\r
+image13.jpg\r
+pics\animatdef.jpg\r
+pics\table.gif\r
+pics\streamlinesprsnt.jpg\r
+pics\defshapeicon.jpg\r
+pics\structmed.jpg\r
+pics\visuicon.jpg\r
+image4.jpg\r
+createfieldprsnt.gif\r
+image1.gif\r
+pics\animation.jpg\r
+pics\scalarmapicon.jpg\r
+pics\presentat1.jpg\r
+image15.jpg\r
+image5.jpg\r
+pics\fieldprsnt6.jpg\r
+pics\shrink.jpg\r
+image16.jpg\r
+image6.jpg\r
+pics\end.jpg\r
+pics\cutplpresent.jpg\r
+image14.gif\r
+image17.jpg\r
+image7.jpg\r
+animation.gif\r
+pics\begining.jpg\r
+pics\streamlinesicon.jpg\r
+pics\defshapeprsnt.jpg\r
+pics\new.jpg\r
+image15.gif\r
+image18.jpg\r
+image8.jpg\r
+pics\display.jpg\r
+pics\wireframe.jpg\r
+pics\crtprsnt.jpg\r
+image16.gif\r
+image19.jpg\r
+image9.jpg\r
+pics\selmode.jpg\r
+pics\scalingdb.jpg\r
+i_blue.jpg\r
+pics\object.jpg\r
+image17.gif\r
+tip1.gif\r
+pics\pointselection.jpg\r
+pics\rename.jpg\r
+image8.gif\r
+pics\sweeppreferences.jpg\r
+pics\previous.jpg\r
+pics\scalingicon.jpg\r
+pics\importmed.jpg\r
+pics\importingtables.jpg\r
+pics\animationparam.jpg\r
+pics\erase.jpg\r
+pics\opacity.jpg\r
+pics\cutlinesprsnt.jpg\r
+pics\selection1.jpg\r
+createpresent.gif\r
+importmed.gif\r
+note1.gif\r
+launchvisu.gif\r
+pics\cutlinesicn.jpg\r
+pics\iso.jpg\r
+pics\scalarmap.jpg\r
+pics\display1.jpg\r
+pics\visuwind.jpg\r
+image20.jpg\r
+pics\cellsel.jpg\r
+pics\vectorsprsnt.jpg\r
+pics\vecticon.jpg\r
+pics\isosurf.jpg\r
+visu.ppf\r
+ss_btn_related_topics.gif\r
+ss_btn_see_also.gif\r
+default_ns.css\r
+whdata\whtdata0.xml\r
+whdata\whtdata0.htm\r
+whdata\whftdata0.xml\r
+whdata\whftdata0.htm\r
+whdata\whfwdata0.xml\r
+whdata\whfwdata0.htm\r
+whdata\whgdata0.xml\r
+whdata\whgdata0.htm\r
+whgdata\whlstt0.htm\r
+whgdata\whlstt1.htm\r
+whgdata\whlstt2.htm\r
+whgdata\whlstt3.htm\r
+whgdata\whlstt4.htm\r
+whgdata\whlstt5.htm\r
+whgdata\whlstt6.htm\r
+whgdata\whlsti0.htm\r
+whgdata\whlstfl0.htm\r
+whgdata\whlstfl1.htm\r
+whgdata\whlstfl2.htm\r
+whgdata\whlstfl3.htm\r
+whgdata\whlstfl4.htm\r
+whgdata\whlstfl5.htm\r
+whgdata\whlstfl6.htm\r
+whgdata\whlstfl7.htm\r
+whgdata\whlstfl8.htm\r
+whgdata\whlstfl9.htm\r
+whgdata\whlstfl10.htm\r
+whgdata\whlstfl11.htm\r
+whgdata\whlstfl12.htm\r
+whgdata\whlstfl13.htm\r
+whgdata\whlstfl14.htm\r
+whgdata\whlstfl15.htm\r
+whgdata\whlstfl16.htm\r
+whgdata\whlstfl17.htm\r
+whgdata\whlstfl18.htm\r
+whgdata\whlstfl19.htm\r
+whgdata\whlstfl20.htm\r
+whgdata\whlstfl21.htm\r
+whgdata\whlstfl22.htm\r
+whgdata\whlstf0.htm\r
+whgdata\whlstf1.htm\r
+whgdata\whlstf2.htm\r
+whgdata\whlstf3.htm\r
+whgdata\whlstf4.htm\r
+whgdata\whlstf5.htm\r
+whgdata\whlstg0.htm\r
+visu.html\r
+visu_csh.html\r
+visu_rhc.html\r
diff --git a/doc/salome/gui/VISU/animation.gif b/doc/salome/gui/VISU/animation.gif
new file mode 100755 (executable)
index 0000000..3f41856
Binary files /dev/null and b/doc/salome/gui/VISU/animation.gif differ
diff --git a/doc/salome/gui/VISU/createfieldprsnt.gif b/doc/salome/gui/VISU/createfieldprsnt.gif
new file mode 100755 (executable)
index 0000000..3e65e1f
Binary files /dev/null and b/doc/salome/gui/VISU/createfieldprsnt.gif differ
diff --git a/doc/salome/gui/VISU/createpresent.gif b/doc/salome/gui/VISU/createpresent.gif
new file mode 100755 (executable)
index 0000000..807cd7e
Binary files /dev/null and b/doc/salome/gui/VISU/createpresent.gif differ
diff --git a/doc/salome/gui/VISU/createtable.gif b/doc/salome/gui/VISU/createtable.gif
new file mode 100755 (executable)
index 0000000..2216f37
Binary files /dev/null and b/doc/salome/gui/VISU/createtable.gif differ
diff --git a/doc/salome/gui/VISU/cshdat_robohelp.htm b/doc/salome/gui/VISU/cshdat_robohelp.htm
new file mode 100755 (executable)
index 0000000..4ba4a93
--- /dev/null
@@ -0,0 +1,252 @@
+<html>\r
+<head>\r
+<title>VISU refrence manual</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</head>\r
+<body>\r
+<script language="JavaScript">\r
+<!--\r
+\r
+var gArrayCsh = new Array();\r
+\r
+var gstrWindowOption = "";\r
+var gstrURL = "";\r
+var gbWithNavPane = false;\r
+\r
+function CshEntityItem(strAliasId, nTopicNum, strUrl) \r
+{\r
+    this.strAliasId = strAliasId;\r
+    this.nTopicNum = nTopicNum;\r
+    this.strUrl = strUrl;\r
+}\r
+\r
+\r
+//Try to get to topic number from hash string\r
+function GetTopicNumberAuto(strMayBeNumber)\r
+{\r
+   var nNum = -1;\r
+   if (strMayBeNumber.length >= 1)\r
+   {\r
+               var strTmp = strMayBeNumber;\r
+               var iEnd = strTmp.length;\r
+               for (var i=0; i<iEnd; i++)\r
+               {\r
+                         var ch = strTmp.charAt(i);\r
+                         if (!((ch == "0") || (ch == "1") ||\r
+                               (ch == "2") || (ch == "3") ||\r
+                               (ch == "4") || (ch == "5") ||\r
+                               (ch == "6") || (ch == "7") ||\r
+                               (ch == "8") || (ch == "9")))\r
+                             return GetTopicNumberById(strTmp);\r
+               }\r
+               nNum = parseInt(strTmp);\r
+   }\r
+   return nNum;\r
+}\r
+\r
+function GetTopicNumber(strHashString)\r
+{\r
+       var nTopicEndPos = strHashString.indexOf(',')\r
+       if (nTopicEndPos == -1) { // no window option.\r
+               return GetTopicNumberOnly(strHashString);\r
+       }\r
+       else {\r
+               var strWindowOption = strHashString.substring(nTopicEndPos + 1, strHashString.length);\r
+               var strWithNavPane = 'withnavpane=true';\r
+               if (strWindowOption.toLowerCase().indexOf(strWithNavPane) == 0)\r
+               {\r
+                       if (strWindowOption.length > strWithNavPane.length)\r
+                               gstrWindowOption = strWindowOption.substring(strWithNavPane.length + 1);\r
+                       else\r
+                               gstrWindowOption = "";\r
+                       gbWithNavPane = true;\r
+               }\r
+               else\r
+                       gstrWindowOption = strWindowOption;\r
+               return GetTopicNumberOnly(strHashString.substring(0, nTopicEndPos));            \r
+       }\r
+}\r
+\r
+function GetTopicNumberOnly(strTopicString)\r
+{\r
+       var nEqualPos = strTopicString.indexOf('=');\r
+       if (nEqualPos == -1) {\r
+               return GetTopicNumberAuto(strTopicString);\r
+       }\r
+       else {\r
+               var strValue=strTopicString.substring(nEqualPos + 1, strTopicString.length);\r
+               if (strTopicString.toLowerCase().indexOf("topicnumber") == 0) {\r
+                       return parseInt(strValue);\r
+               } else if (strTopicString.toLowerCase().indexOf("context") == 0) {\r
+                       return GetTopicNumberById(strValue);\r
+               } else if (strTopicString.toLowerCase().indexOf("remoteurl") == 0) {\r
+                       gstrURL = strValue;\r
+                       return -1;\r
+               }\r
+\r
+       }\r
+}\r
+\r
+//Find HomePage of the WebHelp system\r
+// we try to get the topic from remote project if it exists.\r
+function RedirectToHomePage()\r
+{\r
+       if (parent && parent != this && parent.goNext)\r
+       {\r
+               var sHome = parent.goNext();\r
+               if (sHome != "")\r
+                       RedirectTo(sHome);\r
+       }\r
+}\r
+\r
+function getHomePage()\r
+{\r
+       if (parent && parent != this && parent.getRelHomePage)\r
+       {\r
+               return parent.getRelHomePage(document.location.href);\r
+       }\r
+       return "";\r
+}\r
+\r
+function addRemoteProject(strPath)\r
+{\r
+       if (parent && parent != this && parent.addProject)\r
+       {\r
+               parent.addProject(strPath);\r
+       }\r
+}\r
+\r
+//Redirect page to...\r
+function RedirectTo(strUrl)\r
+{\r
+   if (gstrWindowOption.length != 0) {\r
+               var wnd = window.open(strUrl, "HelpStub", gstrWindowOption);\r
+               // close current window and rename the stub window to current window.\r
+               if (wnd)\r
+                       wnd.focus();\r
+               if (parent)\r
+                       parent.close();\r
+   }\r
+   else {\r
+       parent.document.location.href = strUrl;\r
+       window.focus();\r
+  }\r
+}\r
+\r
+//Prompt the user that we can not find...\r
+function FailToFind(strMsg)\r
+{\r
+    RedirectToHomePage();\r
+}\r
+\r
+//Find topic by topic number (defined in h file)\r
+function FindTopicByTopicNum(nTopicNum)\r
+{\r
+       var i = 0;\r
+       var iEnd = gArrayCsh.length;\r
+       for (i=0; i<iEnd; i++)\r
+       {\r
+               if (gArrayCsh[i].nTopicNum == nTopicNum)\r
+               {\r
+                       var strURL = gArrayCsh[i].strUrl;\r
+                       if (gbWithNavPane)\r
+                       {\r
+                               var strHomePage = getHomePage();\r
+                               if (strHomePage.length != 0)\r
+                                       strURL = strHomePage + strURL;\r
+                       }       \r
+                       RedirectTo(strURL);\r
+                       return true;\r
+               }\r
+       }\r
+       FailToFind("Fail to find topic assocaite with topic number: " + nTopicNum);\r
+       return false;\r
+}\r
+\r
+//Find topic by topic id (alias id defined in ali file)\r
+function GetTopicNumberById(strTopicId)\r
+{\r
+   var i = 0;\r
+   var iEnd = gArrayCsh.length;\r
+   for (i=0; i<iEnd; i++)\r
+   {\r
+       if (gArrayCsh[i].strAliasId.toLowerCase() == strTopicId.toLowerCase())\r
+       {\r
+           return gArrayCsh[i].nTopicNum;\r
+        }\r
+   }\r
+   gstrURL = "";\r
+   return -1;\r
+}\r
+\r
+//Set Context-sensitive help entity...\r
+function SetCsh(n, strAliasId, nTopicNum, strUrl)\r
+{\r
+   gArrayCsh[n] = new CshEntityItem(strAliasId,nTopicNum,strUrl);\r
+}\r
+\r
+\r
+function getHash()\r
+{\r
+       if (parent && parent != this)\r
+               return parent.location.hash;\r
+       else\r
+               return "";\r
+}\r
+//-->\r
+</script>\r
+<script language="javascript">\r
+<!--\r
+\r
+\r
+//-->\r
+</script>\r
+<script language="javascript">\r
+<!--\r
+//Find CSH according to hash string after this page\r
+if (getHash().length > 0)\r
+{\r
+   // VH 05/16/00 now support \r
+   // TopicID=\r
+   // TopicNumber=\r
+   // RemoteURL=   \r
+   // and WindowsOptions\r
+   // with the format #a=xxx,b=xxx,c=xxx...\r
+   var strHashString = getHash().toString();\r
+   // change ? to : for remote URL. because java applet have some problem to pass a URL with two : inside the URL so we changed it. \r
+   // so here need to change it back.\r
+   strHashString = strHashString.substring(1,strHashString.length);\r
+   strHashString = strHashString.replace("%072%057%057", "://");\r
+   var nTopicNum = GetTopicNumber(strHashString);\r
+\r
+   if (nTopicNum != -1)\r
+   {\r
+      FindTopicByTopicNum(nTopicNum);\r
+   }\r
+   else\r
+   {\r
+      if (gstrURL.length > 0) \r
+       RedirectTo(gstrURL);\r
+      else\r
+       RedirectToHomePage();\r
+   }\r
+}\r
+else\r
+{\r
+   RedirectToHomePage();\r
+}\r
+//-->\r
+</script>\r
+<noscript>\r
+ <p> Your browser does not support JavaScript. WebHelp Context-Sensitive Help requires JavaScript support to run.</p>\r
+</noscript>\r
+</body>\r
+</html>\r
+\r
+\r
+\r
+\r
+\r
+\r
diff --git a/doc/salome/gui/VISU/cshdat_webhelp.htm b/doc/salome/gui/VISU/cshdat_webhelp.htm
new file mode 100755 (executable)
index 0000000..56ad227
--- /dev/null
@@ -0,0 +1,251 @@
+<html>\r
+<head>\r
+<title>VISU refrence manual</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</head>\r
+<body>\r
+<script language="JavaScript">\r
+<!--\r
+\r
+var gArrayCsh = new Array();\r
+\r
+var gstrWindowOption = "";\r
+var gstrURL = "";\r
+var gbWithNavPane = false;\r
+\r
+function CshEntityItem(strAliasId, nTopicNum, strUrl) \r
+{\r
+    this.strAliasId = strAliasId;\r
+    this.nTopicNum = nTopicNum;\r
+    this.strUrl = strUrl;\r
+}\r
+\r
+\r
+//Try to get to topic number from hash string\r
+function GetTopicNumberAuto(strMayBeNumber)\r
+{\r
+   var nNum = -1;\r
+   if (strMayBeNumber.length >= 1)\r
+   {\r
+               var strTmp = strMayBeNumber;\r
+               var iEnd = strTmp.length;\r
+               for (var i=0; i<iEnd; i++)\r
+               {\r
+                         var ch = strTmp.charAt(i);\r
+                         if (!((ch == "0") || (ch == "1") ||\r
+                               (ch == "2") || (ch == "3") ||\r
+                               (ch == "4") || (ch == "5") ||\r
+                               (ch == "6") || (ch == "7") ||\r
+                               (ch == "8") || (ch == "9")))\r
+                             return GetTopicNumberById(strTmp);\r
+               }\r
+               nNum = parseInt(strTmp);\r
+   }\r
+   return nNum;\r
+}\r
+\r
+function GetTopicNumber(strHashString)\r
+{\r
+       var nTopicEndPos = strHashString.indexOf(',')\r
+       if (nTopicEndPos == -1) { // no window option.\r
+               return GetTopicNumberOnly(strHashString);\r
+       }\r
+       else {\r
+               var strWindowOption = strHashString.substring(nTopicEndPos + 1, strHashString.length);\r
+               var strWithNavPane = 'withnavpane=true';\r
+               if (strWindowOption.toLowerCase().indexOf(strWithNavPane) == 0)\r
+               {\r
+                       if (strWindowOption.length > strWithNavPane.length)\r
+                               gstrWindowOption = strWindowOption.substring(strWithNavPane.length + 1);\r
+                       else\r
+                               gstrWindowOption = "";\r
+                       gbWithNavPane = true;\r
+               }\r
+               else\r
+                       gstrWindowOption = strWindowOption;\r
+               return GetTopicNumberOnly(strHashString.substring(0, nTopicEndPos));            \r
+       }\r
+}\r
+\r
+function GetTopicNumberOnly(strTopicString)\r
+{\r
+       var nEqualPos = strTopicString.indexOf('=');\r
+       if (nEqualPos == -1) {\r
+               return GetTopicNumberAuto(strTopicString);\r
+       }\r
+       else {\r
+               var strValue=strTopicString.substring(nEqualPos + 1, strTopicString.length);\r
+               if (strTopicString.toLowerCase().indexOf("topicnumber") == 0) {\r
+                       return parseInt(strValue);\r
+               } else if (strTopicString.toLowerCase().indexOf("topicid") == 0) {\r
+                       return GetTopicNumberById(strValue);\r
+               } else if (strTopicString.toLowerCase().indexOf("remoteurl") == 0) {\r
+                       gstrURL = strValue;\r
+                       return -1;\r
+               }\r
+\r
+       }\r
+}\r
+\r
+//Find HomePage of the WebHelp system\r
+// we try to get the topic from remote project if it exists.\r
+function RedirectToHomePage()\r
+{\r
+       if (parent && parent != this && parent.goNext)\r
+       {\r
+               var sHome = parent.goNext();\r
+               if (sHome != "")\r
+                       RedirectTo(sHome);\r
+       }\r
+}\r
+\r
+function getHomePage()\r
+{\r
+       if (parent && parent != this && parent.getRelHomePage)\r
+       {\r
+               return parent.getRelHomePage(document.location.href);\r
+       }\r
+       return "";\r
+}\r
+\r
+function addRemoteProject(strPath)\r
+{\r
+       if (parent && parent != this && parent.addProject)\r
+       {\r
+               parent.addProject(strPath);\r
+       }\r
+}\r
+\r
+//Redirect page to...\r
+function RedirectTo(strUrl)\r
+{\r
+   if (gstrWindowOption.length != 0) {\r
+               var wnd = window.open(strUrl, "HelpStub", gstrWindowOption);\r
+               // close current window and rename the stub window to current window.\r
+               wnd.focus();\r
+               if (parent)\r
+                       parent.close();\r
+   }\r
+   else {\r
+       parent.document.location.href = strUrl;\r
+       window.focus();\r
+  }\r
+}\r
+\r
+//Prompt the user that we can not find...\r
+function FailToFind(strMsg)\r
+{\r
+    RedirectToHomePage();\r
+}\r
+\r
+//Find topic by topic number (defined in h file)\r
+function FindTopicByTopicNum(nTopicNum)\r
+{\r
+       var i = 0;\r
+       var iEnd = gArrayCsh.length;\r
+       for (i=0; i<iEnd; i++)\r
+       {\r
+               if (gArrayCsh[i].nTopicNum == nTopicNum)\r
+               {\r
+                       var strURL = gArrayCsh[i].strUrl;\r
+                       if (gbWithNavPane)\r
+                       {\r
+                               var strHomePage = getHomePage();\r
+                               if (strHomePage.length != 0)\r
+                                       strURL = strHomePage + strURL;\r
+                       }       \r
+                       RedirectTo(strURL);\r
+                       return true;\r
+               }\r
+       }\r
+       FailToFind("Fail to find topic assocaite with topic number: " + nTopicNum);\r
+       return false;\r
+}\r
+\r
+//Find topic by topic id (alias id defined in ali file)\r
+function GetTopicNumberById(strTopicId)\r
+{\r
+   var i = 0;\r
+   var iEnd = gArrayCsh.length;\r
+   for (i=0; i<iEnd; i++)\r
+   {\r
+       if (gArrayCsh[i].strAliasId == strTopicId)\r
+       {\r
+           return gArrayCsh[i].nTopicNum;\r
+        }\r
+   }\r
+   gstrURL = "";\r
+   return -1;\r
+}\r
+\r
+//Set Context-sensitive help entity...\r
+function SetCsh(n, strAliasId, nTopicNum, strUrl)\r
+{\r
+   gArrayCsh[n] = new CshEntityItem(strAliasId,nTopicNum,strUrl);\r
+}\r
+\r
+\r
+function getHash()\r
+{\r
+       if (parent && parent != this)\r
+               return parent.location.hash;\r
+       else\r
+               return "";\r
+}\r
+//-->\r
+</script>\r
+<script language="javascript">\r
+<!--\r
+\r
+\r
+//-->\r
+</script>\r
+<script language="javascript">\r
+<!--\r
+//Find CSH according to hash string after this page\r
+if (getHash().length > 0)\r
+{\r
+   // VH 05/16/00 now support \r
+   // TopicID=\r
+   // TopicNumber=\r
+   // RemoteURL=   \r
+   // and WindowsOptions\r
+   // with the format #a=xxx,b=xxx,c=xxx...\r
+   var strHashString = getHash().toString();\r
+   // change ? to : for remote URL. because java applet have some problem to pass a URL with two : inside the URL so we changed it. \r
+   // so here need to change it back.\r
+   strHashString = strHashString.substring(1,strHashString.length);\r
+   strHashString = strHashString.replace("%072%057%057", "://");\r
+   var nTopicNum = GetTopicNumber(strHashString);\r
+\r
+   if (nTopicNum != -1)\r
+   {\r
+      FindTopicByTopicNum(nTopicNum);\r
+   }\r
+   else\r
+   {\r
+      if (gstrURL.length > 0) \r
+       RedirectTo(gstrURL);\r
+      else\r
+       RedirectToHomePage();\r
+   }\r
+}\r
+else\r
+{\r
+   RedirectToHomePage();\r
+}\r
+//-->\r
+</script>\r
+<noscript>\r
+ <p> Your browser does not support JavaScript. WebHelp Context-Sensitive Help requires JavaScript support to run.</p>\r
+</noscript>\r
+</body>\r
+</html>\r
+\r
+\r
+\r
+\r
+\r
+\r
diff --git a/doc/salome/gui/VISU/default.css b/doc/salome/gui/VISU/default.css
new file mode 100755 (executable)
index 0000000..d2d425a
--- /dev/null
@@ -0,0 +1,209 @@
+/*=(===============================================================)*/\r
+\r
+/*=(===============================================================)*/\r
+/*=(Created with RoboEditor.)=======================================*/\r
+/*=(===============================================================)*/\r
+\r
+BODY {\r
+       background-color: #ffffff;\r
+       font-family: "Times New Roman", serif;\r
+}\r
+\r
+H1 {\r
+       font-weight: bold;\r
+       font-size: 24.0pt;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-H1 {\r
+       font-weight: bold;\r
+       font-size: 24.0pt;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\r
+H2 {\r
+       font-weight: bold;\r
+       font-size: 18.0pt;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-H2 {\r
+       font-weight: bold;\r
+       font-size: 18.0pt;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\r
+H3 {\r
+       font-weight: bold;\r
+       font-size: 14.0pt;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-H3 {\r
+       font-weight: bold;\r
+       font-size: 14.0pt;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\r
+H4 {\r
+       font-weight: bold;\r
+       font-size: 12.0pt;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-H4 {\r
+       font-weight: bold;\r
+       font-size: 12.0pt;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\r
+H5 {\r
+       font-weight: bold;\r
+       font-size: 10.0pt;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-H5 {\r
+       font-weight: bold;\r
+       font-size: 10.0pt;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\r
+H6 {\r
+       font-weight: bold;\r
+       font-size: 8.0pt;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-H6 {\r
+       font-weight: bold;\r
+       font-size: 8.0pt;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\r
+P {\r
+       font-size: 12.0pt;\r
+       margin-top: 0pt;\r
+       margin-bottom: 0pt;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-P {\r
+       font-size: 12.0pt;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\r
+A.expandspot {\r
+       color: #008000;\r
+       cursor: hand;\r
+       font-style: italic;\r
+       x-text-underline: off;\r
+       x-text-overline: off;\r
+       x-text-line-through: off;\r
+       /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ \r
+}\r
+\r
+SPAN.expandtext {\r
+       font-style: italic;\r
+       font-weight: normal;\r
+       color: #ff0000;\r
+}\r
+\r
+A.dropspot {\r
+       cursor: hand;\r
+       color: #008000;\r
+       font-style: italic;\r
+       x-text-underline: off;\r
+       x-text-overline: off;\r
+       x-text-line-through: off;\r
+       /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ \r
+}\r
+\r
+A.glossterm {\r
+       color: #800000;\r
+       cursor: hand;\r
+       font-style: italic;\r
+       x-text-underline: off;\r
+       x-text-overline: off;\r
+       x-text-line-through: off;\r
+       /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ \r
+}\r
+\r
+SPAN.glosstext {\r
+       font-style: italic;\r
+       font-weight: normal;\r
+       color: #0000ff;\r
+}\r
+\r
+OL,\r
+UL {\r
+       margin-top: 0px;\r
+       margin-bottom: 0px;\r
+}\r
+\r
+A:active {\r
+}\r
+\r
+A:hover {\r
+       x-text-underline: Off;\r
+       /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ \r
+}\r
+\r
+A:link {\r
+       x-text-underline: Off;\r
+       /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ \r
+}\r
+\r
+A:visited {\r
+       x-text-underline: Off;\r
+       /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ \r
+}\r
+\r
+P.TODO {\r
+       font-weight: normal;\r
+       font-style: italic;\r
+       font-family: "Arial Black", sans-serif;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-P-CTODO {\r
+       font-weight: normal;\r
+       font-style: italic;\r
+       font-family: "Arial Black", sans-serif;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\r
+\r
+/*=(===============================================================)*/\r
diff --git a/doc/salome/gui/VISU/default.skn b/doc/salome/gui/VISU/default.skn
new file mode 100755 (executable)
index 0000000..f162a66
--- /dev/null
@@ -0,0 +1,262 @@
+<?xml version="1.0"?>\r
+<sqwebskin version="1.0">\r
+       <summary>\r
+               <skinname>Default</skinname>\r
+               <defaulttab>Contents</defaulttab>\r
+               <font>font-family:Arial font-size:8pt font-weight:normal font-style:normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal</font>\r
+               <color></color>\r
+       </summary>\r
+       <panesummary>\r
+               <![CDATA[\r
+<frameset rows="32,*" >\r
+<frame name="Custom Toolbar Pane" noresize="yes" scrolling="no" id="3" />\r
+<frameset cols="220,*" frameborder="1" borderspace="0" >\r
+<frameset rows="24,*" >\r
+<frame name="MiniBar Pane" marginwidth="-1" scrolling="no" id="6" />\r
+<frame name="Navigation Pane" id="2" />\r
+</frameset>\r
+<frame name="Topic Pane" frameborder="1" borderspace="1" bordercolor="Gray" marginwidth="-1" marginheight="-1" id="4" />\r
+</frameset>\r
+</frameset>\r
+]]>\r
+       </panesummary>\r
+       <frameset rows="32,*">\r
+               <frame name="Custom Toolbar Pane" noresize="yes" scrolling="no" id="3"/>\r
+               <frameset cols="220,*" frameborder="1" borderspace="0">\r
+                       <frameset rows="24,*">\r
+                               <frame name="MiniBar Pane" marginwidth="-1" scrolling="no" id="6"/>\r
+                               <frame name="Navigation Pane" id="2"/>\r
+                       </frameset>\r
+                       <frame name="Topic Pane" frameborder="1" borderspace="1" bordercolor="Gray" marginwidth="-1" marginheight="-1" id="4"/>\r
+               </frameset>\r
+       </frameset>\r
+       <pane name="Custom Toolbar Pane">\r
+               <image></image>\r
+               <color>background:#99ccff</color>\r
+               <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
+               <btnselected>\r
+                       <color>background:#639ace</color>\r
+                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:White</font>\r
+               </btnselected>\r
+               <alignment>left</alignment>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-content" id="1">\r
+                       <name>Contents</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-index" id="2">\r
+                       <name>Index</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-search" id="3">\r
+                       <name>Search</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-glossary" id="4">\r
+                       <name>Glossary</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-websearch" id="5">\r
+                       <name>WebSearch</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="Form Mode" type="built-in-form" id="6">\r
+                       <name>Search Input</name>\r
+                       <image></image>\r
+                       <color></color>\r
+                       <textbox width="20"/>\r
+                       <title>\r
+                               <text></text>\r
+                       </title>\r
+                       <button mode="default graphic mode">\r
+                       </button>\r
+               </toolbaritem>\r
+               <toolbaritem mode="Logo Mode" type="built-in-logo" id="7">\r
+                       <name>Logo</name>\r
+                       <image></image>\r
+                       <author>eHelp Corporation</author>\r
+               </toolbaritem>\r
+       </pane>\r
+       <pane name="MiniBar Pane">\r
+               <image></image>\r
+               <color>background:#99ccff</color>\r
+               <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
+               <btnselected>\r
+                       <color>background:#639ace</color>\r
+                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:White</font>\r
+               </btnselected>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-previous" id="8">\r
+                       <name>Previous</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-next" id="9">\r
+                       <name>Next</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-synctoc" id="10">\r
+                       <name>Sync TOC</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-hide" id="11">\r
+                       <name>Hide</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+       </pane>\r
+       <pane name="Navigation Pane">\r
+               <image></image>\r
+               <color></color>\r
+               <label>\r
+                       <image></image>\r
+                       <color></color>\r
+               </label>\r
+               <subpane name="Contents">\r
+                       <image></image>\r
+                       <color>background:White alink:Silver hover-color:Navy</color>\r
+                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
+               </subpane>\r
+               <subpane name="Index">\r
+                       <image></image>\r
+                       <color>background:White alink:Silver hover-color:Navy</color>\r
+                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
+                       <inputbox>\r
+                               <image></image>\r
+                               <color>background:White</color>\r
+                               <textbox width="0"/>\r
+                               <title>\r
+                                       <text>::??DefaultWebSkinText??::</text>\r
+                                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy</font>\r
+                               </title>\r
+                               <button mode="none">\r
+                               </button>\r
+                       </inputbox>\r
+               </subpane>\r
+               <subpane name="Search">\r
+                       <image></image>\r
+                       <color>background:White alink:Silver hover-color:Navy</color>\r
+                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
+                       <inputbox>\r
+                               <image></image>\r
+                               <color>background:White</color>\r
+                               <textbox width="0"/>\r
+                               <title>\r
+                                       <text>::??DefaultWebSkinText??::</text>\r
+                                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy</font>\r
+                               </title>\r
+                               <button mode="default graphic mode">\r
+                               </button>\r
+                       </inputbox>\r
+               </subpane>\r
+               <subpane name="Glossary">\r
+                       <image></image>\r
+                       <color>background:White alink:Silver hover-color:Navy</color>\r
+                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
+                       <definitiontext>\r
+                               <text>::??DefaultWebSkinText??::</text>\r
+                               <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy</font>\r
+                               <color>background:White</color>\r
+                               <image></image>\r
+                       </definitiontext>\r
+                       <definition>\r
+                               <text>::??DefaultWebSkinText??::</text>\r
+                               <color></color>\r
+                               <image></image>\r
+                       </definition>\r
+                       <termtext>\r
+                               <text>::??DefaultWebSkinText??::</text>\r
+                               <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy</font>\r
+                               <color>background:White</color>\r
+                               <image></image>\r
+                       </termtext>\r
+                       <term>\r
+                               <text>::??DefaultWebSkinText??::</text>\r
+                               <color></color>\r
+                               <image></image>\r
+                       </term>\r
+               </subpane>\r
+       </pane>\r
+       <pane name="Topic Pane">\r
+               <in-topic-navbar>\r
+                       <alignment>none</alignment>\r
+               </in-topic-navbar>\r
+       </pane>\r
+</sqwebskin>\r
diff --git a/doc/salome/gui/VISU/default_ns.css b/doc/salome/gui/VISU/default_ns.css
new file mode 100755 (executable)
index 0000000..020a671
--- /dev/null
@@ -0,0 +1,122 @@
+BODY { \r
+      background-color:#ffffff; \r
+      font-family:"Times New Roman" , serif;  }\r
+H1 { \r
+    font-weight:bold; \r
+    font-size:24.0pt; \r
+    font-family:"Times New Roman" , serif;  }\r
+LI.kadov-H1 { \r
+             font-weight:bold; \r
+             font-size:24.0pt;  }\r
+H2 { \r
+    font-weight:bold; \r
+    font-size:18.0pt; \r
+    font-family:"Times New Roman" , serif;  }\r
+LI.kadov-H2 { \r
+             font-weight:bold; \r
+             font-size:18.0pt;  }\r
+H3 { \r
+    font-weight:bold; \r
+    font-size:14.0pt; \r
+    font-family:"Times New Roman" , serif;  }\r
+LI.kadov-H3 { \r
+             font-weight:bold; \r
+             font-size:14.0pt;  }\r
+H4 { \r
+    font-weight:bold; \r
+    font-size:12.0pt; \r
+    font-family:"Times New Roman" , serif;  }\r
+LI.kadov-H4 { \r
+             font-weight:bold; \r
+             font-size:12.0pt;  }\r
+H5 { \r
+    font-weight:bold; \r
+    font-size:10.0pt; \r
+    font-family:"Times New Roman" , serif;  }\r
+LI.kadov-H5 { \r
+             font-weight:bold; \r
+             font-size:10.0pt;  }\r
+H6 { \r
+    font-weight:bold; \r
+    font-size:8.0pt; \r
+    font-family:"Times New Roman" , serif;  }\r
+LI.kadov-H6 { \r
+             font-weight:bold; \r
+             font-size:8.0pt;  }\r
+P { \r
+   font-size:12.0pt; \r
+   margin-top:1; \r
+   margin-bottom:1; \r
+   font-family:"Times New Roman" , serif;  }\r
+LI.kadov-P { \r
+            font-size:12.0pt;  }\r
+A.expandspot { \r
+              color:#008000; \r
+              cursor:hand; \r
+              font-style:italic; \r
+              x-text-underline:off; \r
+              x-text-overline:off; \r
+              x-text-line-through:off; \r
+              text-decoration:none none none;  }\r
+SPAN.expandtext { \r
+                 font-style:italic; \r
+                 font-weight:normal; \r
+                 color:#ff0000;  }\r
+A.dropspot { \r
+            cursor:hand; \r
+            color:#008000; \r
+            font-style:italic; \r
+            x-text-underline:off; \r
+            x-text-overline:off; \r
+            x-text-line-through:off; \r
+            text-decoration:none none none;  }\r
+A.glossterm { \r
+             color:#800000; \r
+             cursor:hand; \r
+             font-style:italic; \r
+             x-text-underline:off; \r
+             x-text-overline:off; \r
+             x-text-line-through:off; \r
+             text-decoration:none none none;  }\r
+SPAN.glosstext { \r
+                font-style:italic; \r
+                font-weight:normal; \r
+                color:#0000ff;  }\r
+OL { \r
+    margin-top:0px; \r
+    margin-bottom:0px; \r
+    font-family:"Times New Roman" , serif;  }\r
+UL { \r
+    margin-top:0px; \r
+    margin-bottom:0px; \r
+    font-family:"Times New Roman" , serif;  }\r
+A:active {  }\r
+A:hover { \r
+         x-text-underline:Off; \r
+         text-decoration:none;  }\r
+A:link { \r
+        x-text-underline:Off; \r
+        text-decoration:none;  }\r
+A:visited { \r
+           x-text-underline:Off; \r
+           text-decoration:none;  }\r
+P.TODO { \r
+        font-weight:normal; \r
+        font-style:italic; \r
+        font-family:"Arial Black" , sans-serif;  }\r
+LI.kadov-P-CTODO { \r
+                  font-weight:normal; \r
+                  font-style:italic; \r
+                  font-family:"Arial Black" , sans-serif;  }\r
+ol ol { \r
+       margin-top:1; \r
+       margin-bottom:1;  }\r
+ol ul { \r
+       margin-top:1; \r
+       margin-bottom:1;  }\r
+ul ul { \r
+       margin-top:1; \r
+       margin-bottom:1;  }\r
+ul ol { \r
+       margin-top:1; \r
+       margin-bottom:1;  }\r
diff --git a/doc/salome/gui/VISU/ehlpdhtm.js b/doc/salome/gui/VISU/ehlpdhtm.js
new file mode 100755 (executable)
index 0000000..86d26ea
--- /dev/null
@@ -0,0 +1,4033 @@
+// eHelp® Corporation Dynamic HTML JavaScript \r
+// Copyright© 1998-2001 eHelp® Corporation.All rights reserved.\r
+// Version=4.57\r
+\r
+// Warning:Do not modify this file.It is generated by RoboHELP® and changes will be overwritten.\r
+\r
+//// Segment Begin -- (JavaScript 1.0)\r
+\r
+/// Section Begin - General and relative topics(JavaScript 1.0)\r
+\r
+//{{HH_SYMBOL_SECTION\r
+var HH_ChmFilename = "";\r
+var HH_WindowName = "";\r
+var HH_GlossaryFont = "";\r
+var HH_Glossary = "";\r
+var HH_Avenue = "";\r
+var HH_ActiveX = false;\r
+//}}HH_SYMBOL_SECTION\r
+\r
+//Begin to support previous generic parameters\r
+//Get the information about the browser.\r
+var gstrBsAgent        = navigator.userAgent.toLowerCase();\r
+var gnBsVer                    = parseInt(navigator.appVersion);\r
+\r
+var gbBsIE             = (gstrBsAgent.indexOf('msie') != -1);\r
+var gbBsNS             = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1));\r
+var gbBsOpera          = (gstrBsAgent.indexOf('opera') != -1);\r
+\r
+var gbBsIE3Before      = ((gbBsIE) && (gnBsVer <= 2));\r
+var gbBsNS3Before      = ((gbBsNS) && (gnBsVer <= 3));\r
+\r
+var gbBsNS2                    = ((gbBsNS) && (gnBsVer <= 2));\r
+var gbBsNS3                    = ((gbBsNS) && (gnBsVer == 3));\r
+var gbBsIE300301       = ((gbBsIE) && (gnBsVer == 2) && ((gstrBsAgent.indexOf("3.00") != -1)||(gstrBsAgent.indexOf("3.0a") != -1)||(gstrBsAgent.indexOf("3.0b")!=-1)||(gstrBsAgent.indexOf("3.01")!=-1)));\r
+var gbBsIE302          = ((gbBsIE) && (gnBsVer == 2) && (gstrBsAgent.indexOf("3.02") != -1));\r
+\r
+var gbBsNS4                    = ((gbBsNS) && (gnBsVer >= 4));\r
+var gbBsNS6                    = ((gbBsNS) && (gnBsVer >= 5));\r
+\r
+var gbBsIE4                    = ((gbBsIE) && (gnBsVer >= 4));\r
+var gbBsIE5                    = false;\r
+var gbBsIE55           = false;\r
+\r
+gbBsIE = (navigator.appName.indexOf("Microsoft") != -1);\r
+\r
+if (parseInt(navigator.appVersion) >= 4) {\r
+       gbBsIE4 = (navigator.appName.indexOf("Microsoft") != -1);\r
+\r
+       if (gbBsIE4) {\r
+               var nPos = gstrBsAgent.indexOf("msie");\r
+               var strIEversion = gstrBsAgent.substring(nPos + 5);\r
+               var nVersion =  parseFloat(strIEversion);\r
+               if (nVersion >= 5)\r
+                       gbBsIE5 = true;\r
+               if (nVersion >= 5.5)\r
+                       gbBsIE55 = true;\r
+       }\r
+}\r
+\r
+var gbBsMac                    = (gstrBsAgent.indexOf('mac') != -1);\r
+var gbBsWindows                = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1));\r
+var gbBsOp3                    = (gstrBsAgent.indexOf('opera') != -1);\r
+\r
+// Utilities functions.\r
+function BsscHasExtJs()\r
+{\r
+       if( gbBsIE3Before || gbBsNS3Before)\r
+               return false;\r
+       return true;\r
+}\r
+\r
+// Register event handler\r
+var gBsOnLoads                         = new Array();  // An array holds all the onload event handler.\r
+var gBsOnClicks                = new Array();  // An array holds all the onClick event handler.\r
+var gBsOnUnLoads               = new Array();  // An array holds all the OnUnLoad event handler.\r
+var gBsOnMouseOvers    = new Array();  // An array holds all the OnMouseOver event handler.\r
+var gBsOnMouseOuts             = new Array();  // An array holds all the OnMouseOut event handler.\r
+\r
+var gbOrignalOnMouseDown = null;\r
+\r
+function BsscRegisterOnLoad(funcHandler)\r
+{\r
+       var nLength = gBsOnLoads.length;\r
+       gBsOnLoads[nLength] = funcHandler;\r
+}\r
+\r
+function BsscRegisterOnClick(funcHandler)\r
+{\r
+       var nLength = gBsOnClicks.length;\r
+       gBsOnClicks[nLength] = funcHandler;\r
+}\r
+\r
+function BsscRegisterOnUnLoad(funcHandler)\r
+{\r
+       var nLength = gBsOnUnLoads.length;\r
+       gBsOnUnLoads[nLength] = funcHandler;\r
+}\r
+\r
+function BsscRegisterOnMouseOver(funcHandler)\r
+{\r
+       var nLength = gBsOnMouseOvers.length;\r
+       gBsOnMouseOvers[nLength] = funcHandler;\r
+}\r
+\r
+function BsscRegisterOnMouseOut(funcHandler)\r
+{\r
+       var nLength = gBsOnMouseOuts.length;\r
+       gBsOnMouseOuts[nLength] = funcHandler;\r
+}\r
+\r
+\r
+function BsGeneralOnLoad()\r
+{\r
+       if (!gbBsIE4 && !gbBsNS4)\r
+               return;\r
+\r
+       // Make everything visible in navigator\r
+       if (gbBsNS4 && !gbBsNS6) {\r
+               // Make some special effects items visible\r
+               for (var iLayer = 0; iLayer < document.layers.length; iLayer++) {\r
+                       document.layers[iLayer].visibility = "show";\r
+                       document.layers[iLayer].left = 0;\r
+               }\r
+       }\r
+}\r
+\r
+// If resize the netscape browser, need to reload it.\r
+function BsReDo()\r
+{\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+// End of the local functions.\r
+\r
+// The following functions are used by the html files.\r
+function BSSCOnLoad()\r
+{\r
+       if( !BsscHasExtJs() )\r
+               return;\r
+       for (var nElement = gBsOnLoads.length - 1; nElement >= 0; nElement--)\r
+               gBsOnLoads[nElement]();\r
+}\r
+\r
+function BSSCOnClick()\r
+{\r
+       if (!BsscHasExtJs()) return;\r
+               \r
+       for (var nElement = gBsOnClicks.length - 1; nElement >= 0; nElement--)\r
+               gBsOnClicks[nElement]();\r
+}\r
+\r
+function BSSCOnUnload()\r
+{\r
+       if (!BsscHasExtJs()) return;\r
+       for (var nElement = gBsOnUnLoads.length - 1; nElement >= 0; nElement--)\r
+       {\r
+               gBsOnUnLoads[nElement]();\r
+       }\r
+}\r
+\r
+function BSSCOnMouseOver()\r
+{\r
+       if (!BsscHasExtJs()) return;\r
+       for (var nElement = gBsOnMouseOvers.length - 1; nElement >= 0; nElement--)\r
+       {\r
+               gBsOnMouseOvers[nElement]();\r
+       }\r
+}\r
+\r
+function BSSCOnMouseOut()\r
+{\r
+       if (!BsscHasExtJs()) return;\r
+       for (var nElement = gBsOnMouseOuts.length - 1; nElement >= 0; nElement--)\r
+       {\r
+               gBsOnMouseOuts[nElement]();\r
+       }\r
+}\r
+// End of invocation of the event handle functions.\r
+\r
+\r
+// Add the GereralOnLoad to the onload array.\r
+if (typeof(BsscRegisterOnLoad) != "undefined")\r
+{\r
+       BsscRegisterOnLoad(BsGeneralOnLoad);\r
+}\r
+if (gbBsNS4&&!gbBsNS6) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = BsReDo;\r
+}\r
+//End to support previous generic parameters\r
+\r
+//Begin to support previous HHActiveX invoking\r
+function BsHHActivateComponents()\r
+{\r
+       if( HH_ActiveX && (HH_ChmFilename != "") && ((self == top) || (self == top.frames[0])))\r
+       {\r
+               var objBody = document.all.tags("BODY")[0];\r
+               if( typeof(objBody) == "object" )\r
+               {\r
+                       objBody.insertAdjacentHTML("beforeEnd", '<OBJECT ID="HHComponentActivator" CLASSID="CLSID:399CB6C4-7312-11D2-B4D9-00105A0422DF" width=0 height=0></OBJECT>');\r
+                       if (HHComponentActivator.object)\r
+                               HHComponentActivator.Activate(HH_ChmFilename, HH_WindowName, HH_GlossaryFont, HH_Glossary, HH_Avenue);\r
+               }\r
+       }\r
+}\r
+\r
+function BsHHActivXOnLoad()\r
+{      \r
+       if( gbBsIE4 )\r
+               BsHHActivateComponents(); \r
+}\r
+\r
+if( typeof(BsscRegisterOnLoad) != "undefined" )\r
+{\r
+       BsscRegisterOnLoad(BsHHActivXOnLoad);\r
+}\r
+//End to support previous HHActiveX invoking\r
+\r
+//Begin to support previous relative topics\r
+//If webHelp needs Related Topics DHTMLcode, it's supposed to add it here\r
+var gbPopupMenuTimeoutExpired = false;\r
+var gbInPopupMenu = false;\r
+var gbPopupMenuTopicList = null;\r
+var gOlddocumentClick = null;\r
+\r
+//////////////////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Popup Menu code\r
+//\r
+//////////////////////////////////////////////////////////////////////////////////////////\r
+\r
+var g_bIsPopupMenuInit = false;\r
+function _WritePopupMenuLayer()\r
+{\r
+       if (!g_bIsPopupMenuInit)\r
+        {\r
+         if (gbBsNS4) {\r
+//Do not try to write ininle styles for NS!  NS can not handle it and will not stop downloading the html page...\r
+          if (gbBsNS6)\r
+               document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");\r
+          else\r
+               document.write("<DIV CLASS='WebHelpPopupMenu' ID='PopupMenu'></DIV>");\r
+         } else{\r
+         document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");\r
+         if (gbBsIE4) {\r
+               document.write("<STYLE TYPE='text/css'>");\r
+               if (gbBsMac) {\r
+                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");\r
+                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");\r
+               } else {\r
+                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:8pt; font-style:normal;font-weight:normal;text-decoration:none;}");\r
+                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:8pt; font-style:normal;font-weight:normal;text-decoration:none;}");\r
+               }\r
+               document.write("</STYLE>");\r
+          }\r
+          }\r
+         g_bIsPopupMenuInit = true;\r
+       }\r
+}\r
+\r
+//Define variable arguments as: strTitle, strUrl\r
+function MTE() \r
+{\r
+       this.strTitle = MTE.arguments[0];\r
+       if (MTE.arguments.length > 1)\r
+               this.strURL = MTE.arguments[1];\r
+       else\r
+               this.strURL = this.strTitle;\r
+}\r
+\r
+// If the topic list is set, it is an array of TopicEntry objects (defined in WebHelp3.js)\r
+function PopupMenu_SetTopicList(aPopupTopicArray)\r
+{\r
+       gbPopupMenuTopicList = aPopupTopicArray;\r
+}\r
+\r
+\r
+//Seek for the bsscright frame \r
+function _SeekFrameByName( cRoot, strName )\r
+{\r
+       if( cRoot == null )     return null;\r
+       if( cRoot.frames == null )      return null;\r
+       if( cRoot.frames[strName] != null )     return cRoot.frames[strName];\r
+       for (var i=0; i<cRoot.frames.length; i++)\r
+       {\r
+               var cObj = null;\r
+               if (!gbBsNS6) \r
+                       cObj = _SeekFrameByName( cRoot.frames(i).document, strName );\r
+               else\r
+                       cObj = _SeekFrameByName( cRoot.frames[i], strName );\r
+               if( cObj != null )              return cObj;\r
+       };\r
+       return null;\r
+}\r
+function _GetFrameByName( cRoot, strName )\r
+{\r
+       if( cRoot == null )     return null;\r
+       var cRet = _SeekFrameByName(cRoot, strName);\r
+       if( cRet != null )      return cRet;\r
+       if (cRoot.parent != cRoot)\r
+               return _GetFrameByName( cRoot.parent, strName );\r
+       else\r
+               return null;\r
+}\r
+\r
+function _PopupMenu_Invoke(fn_arguments)\r
+{\r
+       // Make sure we have reasonable arguments\r
+       var argLen = fn_arguments.length;\r
+       if (argLen < 3) {\r
+               return false;\r
+       }\r
+\r
+       // Check to see if we only have one target\r
+       var strTarget = "";\r
+       var targetDoc = null;\r
+       if (fn_arguments[1] == '') {\r
+               if (BSSCPopup_IsPopup()) {\r
+                       targetDoc = parent;\r
+                       strTarget = "TARGET= _parent";\r
+               }\r
+               else\r
+                       targetDoc = window.document;\r
+       } else {\r
+               targetDoc = _GetFrameByName( parent, fn_arguments[1] );\r
+\r
+               strTarget = "TARGET='" + fn_arguments[1] + "'";\r
+       }\r
+\r
+       if ((!gbBsIE4 && !gbBsNS4) || ((gbBsMac) && (gbBsIE4) && (window.event.srcElement.tagName == "AREA"))) {\r
+       \r
+               var argLen      = fn_arguments.length;\r
+\r
+               // Create the window that the hyperlinks will go into\r
+               var nHeight = argLen * 15;\r
+               var nWidth = 400;\r
+               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=auto";\r
+               strParam += ",height=" + nHeight + ",width=200";\r
+               strParam += ",resizable";\r
+\r
+               // Create a temporary window first to ensure the real popup comes up on top\r
+               var wndTemp = window.open("", "temp", strParam);\r
+\r
+               // Create the real popup window\r
+               var wndPopupLinks = window.open("", "popuplinks", strParam);\r
+\r
+               // Close the temporary\r
+               wndTemp.close();\r
+\r
+               wndPopupLinks.document.open("text/html");\r
+               wndPopupLinks.document.write("<html><head></head>");\r
+               wndPopupLinks.document.write("<body onBlur=\'self.focus();\'>");\r
+               var strParaLine = "";\r
+               for (var i = 0; i < (argLen - 2) / 2; i++) {\r
+                       strParaLine = "";\r
+                       strParaLine += "<a href=\"javascript:";\r
+                       if (gbBsIE) {\r
+                               strParaLine += "onBlur=null; ";\r
+                       }\r
+                       strParaLine += "opener.location=\'";\r
+                       strParaLine += fn_arguments[2 * i + 3];\r
+                       strParaLine += "\';close();\"";\r
+                       strParaLine += strTarget;\r
+\r
+                       strParaLine += ">";\r
+                       strParaLine += fn_arguments[2 * i + 2];\r
+                       strParaLine += "</a>";\r
+                       strParaLine += "<br>";\r
+                       wndPopupLinks.document.write(strParaLine);\r
+               }\r
+               wndPopupLinks.document.write("</body></html>");\r
+               wndPopupLinks.document.close();\r
+               window.gbInPopupMenu = true;\r
+               if (!gbBsIE) {\r
+                       wndPopupLinks.focus();\r
+               }\r
+\r
+               return false;\r
+       }\r
+\r
+\r
+       if (((argLen < 5) && ((isNaN(fn_arguments[2])) || (gbPopupMenuTopicList == null))) ||\r
+               ((argLen < 4) && ((!isNaN(fn_arguments[2])) && (gbPopupMenuTopicList != null)))) {\r
+               // Get the place that we will be putting the topic into\r
+               var strURL = "";\r
+               if (isNaN(fn_arguments[2]) ||  (gbPopupMenuTopicList == null)) {\r
+                       strURL = fn_arguments[3];\r
+               }\r
+               else    {\r
+                       strURL = gbPopupMenuTopicList[fn_arguments[2]].strURL;\r
+               }\r
+\r
+               if (targetDoc != null) {\r
+                       targetDoc.location.href = strURL;\r
+               }\r
+               else {\r
+                       if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined")\r
+                               window.open(strURL, fn_arguments[1]);\r
+                       else\r
+                               window.open(strURL);\r
+               }               \r
+               window.gbInPopupMenu = true;\r
+               return false;\r
+       }\r
+       \r
+       var strMenu = "";\r
+       if (gbBsNS4) {\r
+               strMenu = '<TABLE BORDER="1" CELLSPACING=0 CELLPADDING=3 BGCOLOR="#c0c0c0">';\r
+       } else {\r
+               strMenu = '<TABLE STYLE="border:2px outset white;" CELLSPACING=0';\r
+               if (gbBsMac) {\r
+                       strMenu += ' CELLPADDING=4';\r
+               } else {\r
+                       strMenu += ' CELLPADDING=2';\r
+               }       \r
+               strMenu += ' BGCOLOR=#c0c0c0>';\r
+       }\r
+       // Add each of the items\r
+       var i = 2;\r
+       while (i <= argLen - 1) {\r
+               strMenu += '<TR><TD><NOBR>'\r
+               // If the destination is a number then look it up in the topic list\r
+               if (isNaN(fn_arguments[i]) ||  (gbPopupMenuTopicList == null)) {\r
+                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + fn_arguments[i + 1] + '"' + strTarget;\r
+               } else {\r
+                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + gbPopupMenuTopicList[fn_arguments[i]].strURL + '"' + strTarget;\r
+               }\r
+               strMenu += ' onclick="PopupMenu_HandleClick(event);"';\r
+               strMenu += ' onmouseover="PopupMenu_Over(event);"';\r
+               strMenu += ' onmouseout="PopupMenu_Out(event);"';\r
+               strMenu += '>';\r
+               if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) {\r
+                       strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';\r
+               } else {\r
+                       strMenu += '<SPAN CLASS="PopupNotOver">' + gbPopupMenuTopicList[fn_arguments[i]].strTitle + '</SPAN>';\r
+               }\r
+               strMenu += '</A></DIV></NOBR></TD></TR>';\r
+\r
+               if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) {\r
+                       i += 2;\r
+               } else {\r
+                       i += 1;\r
+               }\r
+       }\r
+       strMenu += "</TABLE>";\r
+\r
+       if (gbBsMac) {\r
+       // totally hack. because ie5 in mac need something. </TABLE> is one of them. mac is mad.\r
+               strMenu +="<TABLE></TABLE>";\r
+       }\r
+\r
+       var layerPopup = null;\r
+       var stylePopup = null;\r
+       var nEventX = 0;\r
+       var nEventY = 0;\r
+       var nWindowWidth = 0;\r
+       if (gbBsIE4) {\r
+\r
+               layerPopup = document.all["PopupMenu"];\r
+               layerPopup.innerHTML = strMenu;\r
+               stylePopup = layerPopup.style;\r
+\r
+               _BSPSGetClientSize();\r
+\r
+               // Get the position of the item causing the event (relative to its parent)\r
+               nEventX = window.event.clientX;\r
+               nEventY = window.event.clientY;\r
+\r
+               if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) {\r
+                       nEventY += document.body.scrollTop + 10;\r
+               } else {\r
+                       nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20;\r
+               }\r
+               stylePopup.top = nEventY;\r
+               \r
+               var nPopupWidth = layerPopup.scrollWidth;\r
+               if (gbBsMac) {\r
+                       nPopupWidth = 80; // we have no idea how to get the dynamic width of the popup.\r
+               }\r
+               if (nEventX + nPopupWidth + 20 > gBsClientWidth) {\r
+                       if (gBsClientWidth - nPopupWidth < 5) {\r
+                               stylePopup.left = 5;\r
+                       } else {\r
+                               stylePopup.left = gBsClientWidth - nPopupWidth - 5;\r
+                       }\r
+               } else {\r
+                       stylePopup.left = nEventX + document.body.scrollLeft + 20;\r
+               }\r
+\r
+               stylePopup.visibility = "visible";\r
+               if (!gOlddocumentClick && document.onclick)\r
+                       gOlddocumentClick = document.onclick;\r
+               document.onclick = PopupMenu_HandleClick;\r
+\r
+       } else if (gbBsNS6) {\r
+               layerPopup = document.getElementById("PopupMenu");\r
+               layerPopup.style.visibility = "hidden";\r
+       \r
+               var e = fn_arguments[0];\r
+               nEventX = e.pageX;\r
+               nEventY = e.pageY;\r
+               _BSPSGetClientSize();\r
+               layerPopup.innerHTML = strMenu;\r
+\r
+               if (nEventY + layerPopup.offsetHeight + 20  <  window.pageYOffset + gBsClientHeight) {\r
+                       nEventY += 20;\r
+               } else {\r
+                       nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20;\r
+               }\r
+\r
+               if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) {\r
+                       if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) {\r
+                               nEventX = 5;\r
+                       } else {\r
+                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20;\r
+                       }\r
+               } else {\r
+                       nEventX += 20;\r
+               }\r
+               layerPopup.style.top = nEventY;\r
+               layerPopup.style.left = nEventX;\r
+               // set again to avoid the stupid frash in netscape 6.\r
+               layerPopup.innerHTML = strMenu;\r
+               layerPopup.style.visibility = "visible";\r
+               //window.captureEvents(Event.MOUSEDOWN);\r
+               if (!gOlddocumentClick && document.onclick)\r
+                       gOlddocumentClick = document.onclick;\r
+               window.onclick = PopupMenu_HandleClick;\r
+       }\r
+       else if (gbBsNS4) {\r
+               layerPopup = document.layers.PopupMenu;\r
+               layerPopup.visibility = "hide";\r
+               stylePopup = layerPopup.document;\r
+               stylePopup.write(strMenu);\r
+               stylePopup.close();\r
+               var e = fn_arguments[0];\r
+               nEventX = e.pageX;\r
+               nEventY = e.pageY;\r
+               _BSPSGetClientSize();\r
+               if (nEventY + layerPopup.clip.height + 20 < window.pageYOffset + gBsClientHeight) {\r
+                       nEventY += 20;\r
+               } else {\r
+                       nEventY = gBsClientHeight + window.pageYOffset- layerPopup.clip.height - 20;\r
+               }\r
+               layerPopup.top = nEventY;\r
+\r
+               if (nEventX + layerPopup.clip.width + 20 > gBsClientWidth + window.pageXOffset) {\r
+                       if (gBsClientWidth + window.pageXOffset - layerPopup.clip.width < 20) {\r
+                               nEventX = 5;\r
+                       } else {\r
+                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.clip.width - 20;\r
+                       }\r
+               } else {\r
+                       nEventX += 20;\r
+               }\r
+\r
+               layerPopup.left = nEventX;\r
+\r
+               layerPopup.visibility = "show";\r
+\r
+               window.captureEvents(Event.MOUSEDOWN);\r
+               if (!gOlddocumentClick && document.onmousedown)\r
+                       gOlddocumentClick = document.onmousedown;\r
+               window.onmousedown = PopupMenu_HandleClick;\r
+       }\r
+\r
+       window.gbInPopupMenu = true;\r
+       window.gbPopupMenuTimeoutExpired = false;\r
+       setTimeout("PopupMenu_Timeout();", 100);\r
+       return false;\r
+}\r
+\r
+\r
+function PopupMenu_Timeout()\r
+{\r
+       window.gbPopupMenuTimeoutExpired = true;\r
+}\r
+\r
+function PopupMenu_Over(e)\r
+{\r
+    if (gbBsIE4) {\r
+               e.srcElement.className = "PopupOver";\r
+    } else if (gbBsNS4) {\r
+//             this.bgColor = "red";\r
+//        e.target.document.className = "PopupOver";\r
+    }\r
+       return;\r
+}\r
+\r
+function PopupMenu_Out(e)\r
+{\r
+    if (gbBsIE4) {\r
+               e.srcElement.className = "PopupNotOver";\r
+    } else if (gbBsNS4) {\r
+        this.bgColor = "#f0f0f0";\r
+    }\r
+       return;\r
+}\r
+\r
+\r
+function PopupMenu_HandleClick(e)\r
+{\r
+       if (window.gbPopupMenuTimeoutExpired) {\r
+\r
+               window.gbInPopupMenu = false;\r
+\r
+               if (gbBsNS4 && !gbBsNS6) {\r
+                       window.releaseEvents(Event.MOUSEDOWN);\r
+               }\r
+\r
+               var layerPopup = null;\r
+               var stylePopup = null;\r
+               if (gbBsIE4) {\r
+                       layerPopup = document.all["PopupMenu"];\r
+                       stylePopup = layerPopup.style;\r
+                       stylePopup.visibility = "hidden";\r
+               } else if (gbBsNS6) {\r
+                       layerPopup = document.getElementById("PopupMenu");\r
+                       layerPopup.style.visibility = "hidden";\r
+               } else if (gbBsNS4) {\r
+                       layerPopup = document.layers.PopupMenu;\r
+                       layerPopup.visibility = "hide";\r
+               }\r
+       \r
+               if (gOlddocumentClick)\r
+               {\r
+                       if (gbBsNS4 && !gbBsNS6)\r
+                               document.onmousedown = gOlddocumentClick;\r
+                       else\r
+                               document.onclick = gOlddocumentClick;\r
+               }\r
+       }\r
+       return;\r
+}\r
+\r
+// This function should be deleted when all old projects are cleaned up\r
+function BSPSWritePopupFrameForIE4()\r
+{\r
+       return false;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////\r
+function BSSCPopup_ClickMac()\r
+{\r
+       if ((!DHTMLPopupSupport()) && (gbBsIE4))\r
+       {       \r
+               var bClickOnAnchor = false;\r
+               var el;\r
+               if ((window.event != null) &&\r
+                   (window.event.srcElement != null))\r
+               {\r
+                   el = window.event.srcElement;\r
+                       while (el != null)\r
+                       {\r
+                               if ((el.tagName == "A") || (el.tagName == "AREA"))      {\r
+                                       bClickOnAnchor = true;\r
+                                       break;\r
+                               }\r
+                               if (el.tagName == "BODY") {\r
+                                       break;\r
+                               }\r
+                               el = el.parentElement;\r
+                       }\r
+               }\r
+               if (BSSCPopup_IsPopup())\r
+               {\r
+                       if (!bClickOnAnchor) {\r
+                               parent.window.gPopupWindow = null;\r
+                               self.close();\r
+                       }\r
+               }\r
+               else\r
+               {\r
+                       bClosePopupWindow = true;\r
+                       if ((bClickOnAnchor) &&\r
+                               (el.href) &&\r
+                           ((el.href.indexOf("javascript:BSSCPopup") != -1) || (el.href.indexOf("javascript:null") != -1) || (el.href.indexOf("javascript:void(0)") != -1)))\r
+                       {\r
+                               bClosePopupWindow = false;\r
+                       }\r
+                       if (bClosePopupWindow)\r
+                       {\r
+                               if (window.gPopupWindow != null && !window.gPopupWindow.closed )\r
+                               {\r
+                                       window.gPopupWindow.close();\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+ }\r
+\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+function BsPopupOnClick()\r
+{\r
+       if (!gbBsIE4)\r
+               return;\r
+\r
+       BSSCPopup_ClickMac();\r
+}\r
+\r
+function _BSSCOnError(message)\r
+{\r
+       if(-1 != message.indexOf("denied") \r
+               || -1 != message.indexOf("Object required"))\r
+        return true;\r
+}\r
+\r
+//End to support previous relative topics\r
+\r
+\r
+/// Section End - General and relative topics (JavaScript 1.0)\r
+\r
+/// Section Begin  - Popup (JavaScript 1.0)\r
+\r
+//Begin to support previous popup functions\r
+//////////////////////////////////////////////////////////////////////////////////////////////\r
+//\r
+//     Begin DHTML Popup Functions\r
+//\r
+//////////////////////////////////////////////////////////////////////////////////////////////\r
+//variables used to isolate the browser type\r
+var gBsDoc                     = null;                 \r
+var gBsSty                     = null;\r
+var gBsHtm                     = null;\r
+var gBsStyVisShow      = null;\r
+var gBsStyVisHide      = null;\r
+var gBsClientWidth     = 640;\r
+var gBsClientHeight = 480;\r
+var gBsBrowser         = null;\r
+\r
+// here is the varible for judge popup windows size. these parameter is for IE5.0, it may need adjust for others.\r
+var gBRateH_W          = 0.618; // 1.618 Golden cut.\r
+var gBMaxXOfParent     = 0.8; \r
+var gBMaxYOfParent     = 0.8;\r
+var gBscrollHeight   = 16;\r
+var gBscrollWidth   =  16;\r
+var gBpermitXDelta     = 3;\r
+var gBpermitYDelta     = 3;\r
+\r
+\r
+var arrayPopupURL = new Array();\r
+var arrayAbsPopupURL = new Array();\r
+\r
+var arrayDirty = new Array();\r
+\r
+function setAbsPopupURL(nIndex, strURL)\r
+{\r
+       arrayAbsPopupURL[nIndex] = strURL;\r
+}\r
+\r
+function getAbsPopupURL(nIndex)\r
+{\r
+       if (nIndex == -1 || arrayAbsPopupURL.length <= nIndex) return null;\r
+       else \r
+               return arrayAbsPopupURL[nIndex];\r
+}\r
+\r
+function getPopupURL(nIndex)\r
+{\r
+       if (nIndex == -1 || arrayPopupURL.length <= nIndex) return null;\r
+       else \r
+               return arrayPopupURL[nIndex];\r
+}\r
+\r
+function getPopupID(nIndex)\r
+{\r
+       return gstrPopupID + nIndex;\r
+}\r
+\r
+function getPopupShadowID(nIndex)\r
+{\r
+       return gstrPopupShadowID + nIndex;\r
+}\r
+\r
+function getPopupTopicID(nIndex)\r
+{\r
+       return gstrPopupTopicID + nIndex;\r
+}\r
+\r
+function getPopupIFrameID(nIndex)\r
+{\r
+       return gstrPopupIFrameID + nIndex;\r
+}\r
+\r
+function getPopupIFrameName(nIndex)\r
+{\r
+       return gstrPopupIFrameName + nIndex;\r
+}\r
+\r
+\r
+function getPopupTopicStyle(nIndex)\r
+{\r
+       return eval("document.all['" + getPopupTopicID(nIndex) + "']").style;\r
+}\r
+\r
+function getPopupShadowStyle(nIndex)\r
+{\r
+       return eval("document.all['" + getPopupShadowID(nIndex) + "']").style;\r
+}\r
+\r
+function getPopupIFrame(nIndex)\r
+{\r
+\r
+       return eval("document.frames['" + getPopupIFrameName(nIndex) + "']");\r
+}\r
+\r
+function getPopupDivStyle(nIndex)\r
+{\r
+       return eval("document.all['" + getPopupID(nIndex) + "']").style;\r
+}\r
+\r
+function getPopupIFrameStyle(nIndex)\r
+{\r
+       return eval("document.all['" + getPopupIFrameName(nIndex) + "'].style");\r
+}\r
+\r
+\r
+function findDiv(strURL)\r
+{\r
+       var i = 0;\r
+       for (i = 0; i < arrayPopupURL.length; i ++ ) {\r
+               if (arrayPopupURL[i] == strURL) {\r
+                       return i;\r
+               }\r
+       }\r
+       return -1;\r
+}\r
+\r
+var gnToken = -1;\r
+function takeToken()\r
+{\r
+       gnToken ++;\r
+       if (gnToken > 10000) gnToken = 0;\r
+       return gnToken;\r
+}\r
+\r
+function IsValidToken(nToken)\r
+{\r
+       return (gnToken == nToken);\r
+}\r
+\r
+function addDiv(strURL)\r
+{\r
+       var i = 0; \r
+       for (i = 0; i < arrayPopupURL.length; i ++) {\r
+               if (arrayPopupURL[i] == null) {\r
+                       arrayPopupURL[i] = strURL;\r
+                       return i;\r
+               }\r
+       }       \r
+       arrayPopupURL[i] = strURL;\r
+       arrayDirty[i] = true;\r
+       return i;\r
+}\r
+\r
+function setDirty()\r
+{\r
+       var i = 0;\r
+       for (i = 0; i < arrayPopupURL.length; i ++ )\r
+               arrayDirty[i] = true;\r
+}\r
+\r
+function IsDirty(nIndex)\r
+{\r
+       if (nIndex == -1)\r
+               return true;\r
+       else \r
+               if (arrayDirty.length > nIndex) \r
+                       return arrayDirty[nIndex];\r
+               else\r
+                       return true;\r
+}\r
+\r
+function hideAll()\r
+{\r
+       var i = 0; \r
+       for (i = 0; i < arrayPopupURL.length; i ++ )\r
+               getPopupDivStyle(i).visibility = gBsStyVisHide;\r
+}\r
+\r
+function getCurrentPopupIFrame()\r
+{\r
+       var i = 0;\r
+       for (i = 0; i < arrayPopupURL.length; i ++)\r
+               if (getPopupDivStyle(i).visibility == gBsStyVisShow)\r
+                       return getPopupIFrame(i);\r
+       return null;\r
+}\r
+\r
+function setClear(nIndex)\r
+{\r
+       if (nIndex != -1)\r
+               arrayDirty[nIndex] = false;\r
+}\r
+\r
+function _BSSCCreatePopupDiv(strURL)\r
+{\r
+       var nIndex = findDiv(strURL);\r
+       if (nIndex == -1 ) {\r
+               nIndex = addDiv(strURL);\r
+               BsPopup_CreateDiv(nIndex);\r
+       }\r
+       else {\r
+               if (IsDirty(nIndex)) {\r
+                       if("object" == typeof(getPopupIFrame(nIndex).document))\r
+                               getPopupIFrame(nIndex).document.location.href = strURL;\r
+               }\r
+       }\r
+       return nIndex;\r
+\r
+}\r
+\r
+//the browser information itself\r
+function _BSPSBrowserItself()\r
+{\r
+       var agent  = navigator.userAgent.toLowerCase();\r
+       this.major = parseInt(navigator.appVersion);\r
+       this.minor = parseFloat(navigator.appVersion);\r
+       this.ns    = ((agent.indexOf('mozilla') != -1) && ((agent.indexOf('spoofer') == -1) && (agent.indexOf('compatible') == -1)));\r
+       this.ns2   = ((this.ns) && (this.major == 2));\r
+       this.ns3   = ((this.ns) && (this.major == 3));\r
+       this.ns4   = ((this.ns) && (this.major >= 4));\r
+       this.ns6   = ((this.ns) && (this.major >= 5));\r
+       this.ie    = (agent.indexOf("msie") != -1);\r
+       this.ie3   = ((this.ie) && (this.major == 2));\r
+       this.ie4   = ((this.ie) && (this.major >= 4));\r
+       this.op3   = (agent.indexOf("opera") != -1);\r
+\r
+       if (this.ns4)\r
+       {\r
+               gBsDoc          = "document";\r
+               gBsSty          = "";\r
+               gBsHtm          = ".document";\r
+               gBsStyVisShow   = "show";\r
+               gBsStyVisHide   = "hide";\r
+\r
+       }\r
+       else if (this.ie4)\r
+       {\r
+               gBsDoc           = "document.all";\r
+               gBsSty          = ".style";\r
+               gBsHtm          = "";\r
+               gBsStyVisShow   = "visible";\r
+               gBsStyVisHide   = "hidden";\r
+       }\r
+}\r
+\r
+//Here is the browser type \r
+function _BSPSGetBrowserInfo()\r
+{\r
+       gBsBrowser      = new _BSPSBrowserItself();\r
+}\r
+\r
+_BSPSGetBrowserInfo();\r
+\r
+//Get client size info\r
+function _BSPSGetClientSize()\r
+{\r
+       if (gBsBrowser.ns4)\r
+       {\r
+               gBsClientWidth  = innerWidth;\r
+               gBsClientHeight = innerHeight;\r
+\r
+       }\r
+       else if (gBsBrowser.ie4)\r
+       {\r
+               gBsClientWidth  = document.body.clientWidth;\r
+               gBsClientHeight = document.body.clientHeight;\r
+       }\r
+}\r
+\r
+\r
+var gstrPopupID = 'BSSCPopup';\r
+var gstrPopupShadowID = 'BSSCPopupShadow';\r
+var gstrPopupTopicID = 'BSSCPopupTopic';\r
+var gstrPopupIFrameID = 'BSSCPopupIFrame';\r
+var gstrPopupIFrameName = 'BSSCPopupIFrameName';\r
+\r
+var gstrPopupSecondWindowName = 'BSSCPopup';\r
+\r
+var gPopupWindow = null;\r
+var gnPopupClickX = 0;\r
+var gnPopupClickY = 0;\r
+\r
+var gnPopupScreenClickX = 0;\r
+var gnPopupScreenClickY = 0;\r
+\r
+var gbPopupTimeoutExpired = false;\r
+\r
+\r
+function DHTMLPopupSupport()\r
+{\r
+       if ((gbBsIE4) && (!gbBsMac)) {\r
+               return true;\r
+       }\r
+       return false;\r
+}\r
+\r
+\r
+\r
+function BSSCPopup_IsPopup()\r
+{\r
+       if (DHTMLPopupSupport() && (this.name.indexOf(gstrPopupIFrameName) != -1)) {\r
+               return true;\r
+       } else if ((gbBsNS4 || gbBsIE4) && (this.name.indexOf(gstrPopupID) != -1)) {\r
+               return true;\r
+       } else {\r
+               return false;\r
+       }\r
+}\r
+\r
+\r
+// If there is a hyperlink in a popup window, display the hyperlink in\r
+// the original window.\r
+if (BSSCPopup_IsPopup() && !gbBsIE4) {\r
+       document.write("<base target=\"_parent\">");\r
+}\r
+\r
+// Local functions.\r
+function BsPopup_CreateDiv(nIndex)\r
+{\r
+       if(!DHTMLPopupSupport())\r
+               return;\r
+       // DO NOT SET Width and height for the div, otherwize it will make IE4 popup do not work when view the topic alone.\r
+       var strPopupDiv = "<DIV ID='" + getPopupID(nIndex) + "' STYLE='position:absolute; top:-100; left:0; z-index:600; visibility:hidden;'>";\r
+       strPopupDiv += "<DIV ID='" + getPopupShadowID(nIndex) + "' STYLE=\"position:absolute;top:0; left:0;  background-color:#C0C0C0;\"></DIV>";\r
+       strPopupDiv += "<DIV ID='" + getPopupTopicID(nIndex) + "' STYLE=\"position:absolute;top:0; left:0;  background-color:#FFFFFF;border:1px #000000 outset;\">";\r
+       strPopupDiv += "<IFRAME title=\"Popup Window\" ID='" + getPopupIFrameID(nIndex) + "' name='" + getPopupIFrameName(nIndex) + "' src = '" + getPopupURL(nIndex) + "' frameborder=0 scrolling=auto></IFRAME>";\r
+       strPopupDiv += "</DIV></DIV>";\r
+\r
+       var objBody = document.all.tags("BODY")[0];\r
+       if( typeof(objBody) != "object" )\r
+               return;\r
+\r
+       objBody.insertAdjacentHTML("beforeEnd", strPopupDiv);\r
+}\r
+\r
+function BSSCPopup_Timeout(nIndex, nToken)\r
+{\r
+    if (!IsValidToken(nToken)) return;\r
+\r
+       if ((getPopupIFrame(nIndex).document.readyState == "complete") &&\r
+               (getPopupIFrame(nIndex).document.body != null)) {\r
+               window.getPopupDivStyle(nIndex).visibility = gBsStyVisShow;\r
+               setClear(nIndex);\r
+               window.gbPopupTimeoutExpired = true;\r
+\r
+               BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document);\r
+               getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked;\r
+\r
+               if (!gbOrignalOnMouseDown && document.onmousedown)\r
+                       gbOrignalOnMouseDown = document.onmousedown;\r
+\r
+               document.onmousedown = BSSCPopupParentClicked;\r
+\r
+       } else {\r
+               setTimeout("BSSCPopup_Timeout(" + nIndex + "," + nToken + ")", 100);\r
+       }\r
+}\r
+\r
+\r
+// VH 08/10/00 \r
+// do not change target to parent if the href is using javascript\r
+function BSSCPopup_ChangeTargettoParent(tagsObject)\r
+{\r
+       var collA = tagsObject.all.tags("A");\r
+       BSSCPopup_ChangeTargettoParent2(collA);\r
+\r
+       var collIMG = tagsObject.all.tags("IMG");\r
+       BSSCPopup_ChangeTargettoParent2(collIMG);\r
+}\r
+\r
+function BSSCPopup_ChangeTargettoParent2(colls)\r
+{\r
+       var j = 0;\r
+       if (colls != null)  {\r
+               for (j = 0; j < colls.length; j ++ )\r
+               {\r
+                       var strtemp = colls[j].href;\r
+                       strtemp = strtemp.toLowerCase();\r
+                       if (strtemp.indexOf("javascript:") == -1)\r
+                       if (colls[j].target == "")\r
+                               colls[j].target = "_parent";\r
+               }\r
+\r
+       }\r
+}\r
+\r
+function BSPSPopupTopicWinHelp(strURL)\r
+{\r
+       _BSSCPopup(strURL);\r
+       return;\r
+}\r
+\r
+function _BSSCPopup(strURL, width, height)\r
+{\r
+       var cuswidth = 0;\r
+       var cusheight = 0;\r
+       if ("undefined" != typeof(width) && "undefined" != typeof(height)) {\r
+               cuswidth = width;\r
+               cusheight= height;\r
+       }\r
+       \r
+       if (DHTMLPopupSupport()) {\r
+               // If we are already in a popup, replace the contents\r
+       //      if (BSSCPopup_IsPopup()) {\r
+       //              parent._BSSCPopup(strURL, cuswidth, cusheight);\r
+       //      } else {\r
+                       var nToken = takeToken(); // take  token first.\r
+                       var nIndex = _BSSCCreatePopupDiv(strURL);\r
+                       window.gbPopupTimeoutExpired = false;\r
+                       var ntWidth = gBsClientWidth;\r
+                       var ntHeight = gBsClientHeight;\r
+                       _BSPSGetClientSize();\r
+                       if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) {\r
+                               setDirty();\r
+                       }\r
+\r
+\r
+                       if (IsDirty(nIndex)) {\r
+                               if (gbBsMac) {\r
+                                       setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight  +")", 400);\r
+                               } else {\r
+                                       setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 100);\r
+                               }\r
+                       }\r
+                       else {\r
+                               MoveDivAndShow(nIndex ,nToken, cuswidth, cusheight);\r
+                       }\r
+       //      }\r
+\r
+       } else {\r
+               _BSSCPopup2(strURL, cuswidth, cusheight);\r
+       }\r
+       return;\r
+}\r
+\r
+if (gbBsIE55)\r
+{\r
+       var ehlpdhtm_fOldBefureUnload = window.onbeforeunload;\r
+       window.onbeforeunload = window_BUnload;\r
+}\r
+       \r
+function window_BUnload()\r
+{\r
+       for (var i = 0; i < arrayPopupURL.length; i ++)\r
+               document.all(getPopupID(i)).outerHTML = "";\r
+       arrayPopupURL.length = 0;       \r
+       if (ehlpdhtm_fOldBefureUnload)\r
+               ehlpdhtm_fOldBefureUnload();\r
+}\r
+\r
+function _BSSCPopup2(strURL, width, height)\r
+{\r
+       if (window.name == gstrPopupSecondWindowName) {\r
+               window.location = strURL;\r
+       } else {\r
+               if (!gbBsMac || !gBsBrowser.ns4) {\r
+                       BSSCHidePopupWindow();\r
+               }\r
+               var nX = 0;\r
+               var nY = 0;\r
+               var nHeight = 300;\r
+               var nWidth = 400;\r
+               if (width > 0 && height > 0) {\r
+                       nHeight = height;\r
+                       nWidth = width;\r
+               }\r
+               _BSPSGetClientSize();\r
+\r
+               nX = window.gnPopupScreenClickX;\r
+               nY = window.gnPopupScreenClickY;\r
+\r
+               if (nY + nHeight + 40 > screen.availHeight) {\r
+                       nY = screen.availHeight - nHeight - 40;\r
+               }\r
+               if (nX + nWidth + 40 > screen.availWidth) {\r
+                       nX = screen.availWidth - nWidth - 40;\r
+               }\r
+               // Launch a separate window\r
+               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes";\r
+               if (gBsBrowser.ns) {\r
+                       if (gBsBrowser.ns6) {\r
+                               strParam += ",Height=" + nHeight + ",Width=" + nWidth;\r
+                               strParam += ",screenX=" + nX + ",screenY=" + nY;\r
+                       }\r
+                       else {\r
+                               strParam += ",OuterHeight=" + nHeight + ",OuterWidth=" + nWidth;\r
+                               strParam += ",screenX=" + nX + ",screenY=" + nY;\r
+                               strParam += ",dependent=yes";\r
+                       }\r
+               }\r
+               else {\r
+                       strParam += ",height=" + nHeight + ",width=" + nWidth;\r
+                       strParam += ",left=" + nX + ",top=" + nY;\r
+               }\r
+               window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam);\r
+\r
+               if (gBsBrowser.ns4) {\r
+                       window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUE);\r
+                       window.gPopupWindow.onclick = NonIEPopup_HandleClick;\r
+                       window.gPopupWindow.onblur = NonIEPopup_HandleBlur;\r
+               }\r
+               else if (gBsBrowser.ie4)\r
+               {\r
+                       setTimeout("setPopupFocus();", 100);\r
+               }\r
+       }\r
+       return;\r
+}\r
+\r
+function setPopupFocus()\r
+{\r
+       window.gPopupWindow.focus();\r
+}\r
+\r
+function NonIEPopup_HandleBlur(e)\r
+{\r
+       window.gPopupWindow.focus();\r
+}\r
+\r
+function NonIEPopup_HandleClick(e)\r
+{\r
+       // Because navigator will give the event to the handler before the hyperlink, let's\r
+       // first route the event to see if we are clicking on a Popup menu in a popup.\r
+       document.routeEvent(e);\r
+\r
+       // If a popup menu is active then don't do anything with the click\r
+       if (window.gPopupWindow.gbInPopupMenu) {\r
+               window.gPopupWindow.captureEvents(Event.CLICK);\r
+               window.gPopupWindow.onclick = NonIEPopup_HandleClick;\r
+               return false;\r
+       }\r
+\r
+       // Close the popup window\r
+       if (e.target.href) {\r
+               if (e.target.target == "")\r
+                       window.location.href = e.target.href;\r
+               else\r
+                       window.open(e.target.href, e.target.target);\r
+                       \r
+               if (e.target.href.indexOf("javascript:void(0)") == -1 && e.target.href.indexOf("javascript:null") == -1 && e.target.href.indexOf("BsscPopup") == -1) {\r
+                       this.close();\r
+               }\r
+       } else {\r
+               this.close();\r
+       }\r
+       return false;\r
+\r
+}\r
+\r
+function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight)\r
+{      \r
+       if (typeof(window.getPopupIFrame(nIndex).document) == "unknown") {\r
+               _BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight);\r
+               return;\r
+       }\r
+    if (!IsValidToken(nToken)) return;\r
+\r
+       if ((window.getPopupIFrame(nIndex).document.readyState == "complete") &&\r
+               (window.getPopupIFrame(nIndex).document.body != null)) {\r
+                       if (window.getPopupIFrame(nIndex).document.location.href.indexOf("about:blank") != -1) { // add this check. IE will use about:blank" as the default vaule for Iframe.\r
+                               window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex);\r
+                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);\r
+                       }\r
+                       else\r
+                               {\r
+                                       setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url.\r
+                                       BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight);\r
+                               }\r
+       } else {\r
+               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);\r
+       }\r
+}\r
+\r
+\r
+function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight)\r
+{\r
+       if (window.gbPopupTimeoutExpired) return;\r
+\r
+    if (!IsValidToken(nToken)) return;\r
+\r
+       getPopupDivStyle(nIndex).visibility = gBsStyVisHide;\r
+\r
+       // Determine the width and height for the window\r
+       //var size = new BSSCSize(0, 0);\r
+       //BSSCGetContentSize(window.getPopupIFrame(nIndex), size);\r
+       //var nWidth = size.x;\r
+       //var nHeight = size.y;\r
+\r
+       _BSPSGetClientSize();\r
+       \r
+       var size = new BSSCSize(0, 0);\r
+\r
+       if (cuswidth <= 0 || cusheight <= 0)\r
+               BSSCGetContentSize(window.getPopupIFrame(nIndex), size);\r
+       else {\r
+               size.x = cuswidth;\r
+               size.y = cusheight;\r
+       }\r
+\r
+       // Determine the width and height for the window\r
+       var nWidth = size.x;\r
+       var nHeight = size.y;\r
+\r
+       // for small popup size, we should allow any size.\r
+       // The popup size should be ok if bigger than 0\r
+       if (nWidth < 0 || nHeight < 0) return;  // there must be something terribly wrong.              \r
+       //      if (nWidth < 40 || nHeight < 40) return;  // there must be something terribly wrong.\r
+\r
+       window.getPopupDivStyle(nIndex).pixelWidth = nWidth;\r
+       window.getPopupDivStyle(nIndex).pixelHeight = nHeight;\r
+\r
+       window.getPopupShadowStyle(nIndex).pixelWidth = nWidth;\r
+       window.getPopupShadowStyle(nIndex).pixelHeight = nHeight;\r
+       window.getPopupTopicStyle(nIndex).pixelWidth = nWidth;\r
+       window.getPopupTopicStyle(nIndex).pixelHeight = nHeight;\r
+       if (gbBsIE55)\r
+       {\r
+               window.getPopupShadowStyle(nIndex).pixelWidth = nWidth + 2;\r
+               window.getPopupShadowStyle(nIndex).pixelHeight = nHeight + 2;\r
+               window.getPopupTopicStyle(nIndex).pixelWidth = nWidth + 2;\r
+               window.getPopupTopicStyle(nIndex).pixelHeight = nHeight + 2;\r
+       }\r
+\r
+       window.getPopupIFrameStyle(nIndex).pixelWidth = nWidth;\r
+       window.getPopupIFrameStyle(nIndex).pixelHeight = nHeight;\r
+       if (gbBsIE55)\r
+       {\r
+               window.getPopupIFrameStyle(nIndex).top = 0;\r
+               window.getPopupIFrameStyle(nIndex).left = 0;\r
+       }\r
+       \r
+       var strURL = getPopupURL(nIndex);\r
+       if (strURL.indexOf("#") != -1)\r
+               getPopupIFrame(nIndex).location.href = strURL;  // reload again, this will fix the bookmark misunderstand in IE5.\r
+               \r
+       MoveDivAndShow(nIndex, nToken, cuswidth, cusheight);\r
+}\r
+\r
+function MoveDivAndShow(nIndex, nToken, cuswidth, cusheight)\r
+{\r
+       if (window.getPopupIFrame(nIndex).document.location.href != getAbsPopupURL(nIndex)) { // if redirect, reload again.\r
+                       window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex);\r
+                       setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);\r
+                       return;\r
+       }\r
+\r
+       // Determine the position of the window\r
+       var nClickX = window.gnPopupClickX;\r
+       var nClickY = window.gnPopupClickY;\r
+       var nTop = 0;\r
+       var nLeft = 0;\r
+\r
+       var nWidth = window.getPopupDivStyle(nIndex).pixelWidth;\r
+       var nHeight = window.getPopupDivStyle(nIndex).pixelHeight;\r
+\r
+       if (nClickY + nHeight + 20 < gBsClientHeight + document.body.scrollTop) {\r
+               nTop = nClickY + 10;\r
+       } else {\r
+               nTop = (document.body.scrollTop + gBsClientHeight) - nHeight - 20;\r
+       }\r
+       if (nClickX + nWidth < gBsClientWidth + document.body.scrollLeft) {\r
+               nLeft = nClickX;\r
+       } else {\r
+               nLeft = (document.body.scrollLeft + gBsClientWidth) - nWidth - 8;\r
+       }\r
+       \r
+       if (nTop < document.body.scrollTop ) nTop  = document.body.scrollTop + 1;\r
+       if (nLeft< document.body.scrollLeft) nLeft = document.body.scrollLeft + 1;\r
+\r
+\r
+       window.getPopupDivStyle(nIndex).left = nLeft;\r
+       window.getPopupDivStyle(nIndex).top = nTop;\r
+\r
+       // Set the location of the background blocks\r
+       window.getPopupShadowStyle(nIndex).left = 6;\r
+       window.getPopupShadowStyle(nIndex).top = 6;\r
+       if (gbBsIE55)\r
+       {\r
+               window.getPopupShadowStyle(nIndex).left = 4;\r
+               window.getPopupShadowStyle(nIndex).top = 4;\r
+       }\r
+\r
+       if (gbBsMac) {\r
+               // Total hack on the iMac to get the IFrame to position properly\r
+               window.getPopupIFrameStyle(nIndex).pixelLeft = 100;\r
+               window.getPopupIFrameStyle(nIndex).pixelLeft = 0;\r
+               // Explicitly call BSSCOnLoad because the Mac doesn't seem to do it\r
+               window.getPopupIFrame(nIndex).window.BSSCOnLoad();\r
+       }\r
+\r
+       BSSCPopup_Timeout(nIndex , nToken );\r
+       \r
+       return;\r
+}\r
+\r
+function       BSSCSize(x, y)\r
+{\r
+       this.x = x;\r
+       this.y = y;\r
+}\r
+\r
+function BSSCGetContentSize(thisWindow, size)\r
+{\r
+       if (!((gBsBrowser.ie4) || (gBsBrowser.ns4)))\r
+               return;\r
+\r
+       if (gbBsMac) {\r
+               size.x = 300;\r
+               size.y = 300;\r
+               return;\r
+       }\r
+\r
+       // Resize the width until it is wide enough to handle the content\r
+       // The trick is to start wide and determine when the scrollHeight changes\r
+       // because then we know a scrollbar is necessary. We can then go back\r
+       // to the next widest size (for no scrollbar)\r
+\r
+       var ClientRate = gBsClientHeight / gBsClientWidth;\r
+\r
+       var GoldenSize = new BSSCSize(0,0);\r
+       GoldenSize.x = gBsClientWidth * gBMaxXOfParent;\r
+       GoldenSize.y = gBsClientHeight *gBMaxYOfParent ;\r
+\r
+       if (ClientRate > gBRateH_W) {\r
+               GoldenSize.y = GoldenSize.x * gBRateH_W;\r
+       }\r
+       else {\r
+               GoldenSize.x = GoldenSize.y / gBRateH_W;\r
+       }\r
+\r
+       // Try to using parent specified max x.\r
+       var x = 0;\r
+       var maxgoldx = GoldenSize.x;\r
+       var maxx = gBsClientWidth * gBMaxXOfParent;\r
+       \r
+       // This double resize causes the document to re-render (and we need it to)\r
+       if (!gbBsIE5)\r
+               thisWindow.moveTo(10000,10000); // this is used to fix the flash on IE4.\r
+       thisWindow.resizeTo(1, 1);\r
+       thisWindow.resizeTo(1, 1);\r
+       thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);\r
+       thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);\r
+               \r
+       var miny = thisWindow.document.body.scrollHeight + gBscrollHeight;\r
+       \r
+       if (miny > GoldenSize.y) // the popup does not fix in the parent wanted golden area. so try to expand itself as large as it can\r
+       {\r
+               thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);\r
+               thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);\r
+               \r
+               miny =  thisWindow.document.body.scrollHeight + gBscrollHeight;\r
+               maxy = gBsClientHeight * gBMaxYOfParent;\r
+               \r
+               if (miny > maxy) { // the popup must have a scroll, OK let it be.\r
+                       miny = maxy;\r
+                       size.x = maxx;\r
+                       size.y = maxy;\r
+                       thisWindow.document.body.scroll = 'yes'; // At this time we do want to show scroll any more. so it will looks better a little.\r
+               }\r
+               else { // popup still can fit in the parent area by someway. now we choose the same h/w rate as parent.\r
+                       size.y = miny;\r
+                       \r
+                       //  downsize from maxx , now I try to using binary divide.\r
+                       x = maxx;\r
+                       deltax = -maxx/2;\r
+                       //j = 0;\r
+                       while (true) {\r
+                               x = x + deltax;\r
+                               thisWindow.resizeTo(x, miny);\r
+                               thisWindow.resizeTo(x, miny);\r
+                               diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * ClientRate;\r
+                               if (diffy >  gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter\r
+                                       deltax = Math.abs(deltax) /2;\r
+                               else if (diffy <  -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter\r
+                                       deltax = -Math.abs(deltax) /2;\r
+                               else \r
+                                       // the y is close enough to wanted.\r
+                                       break;\r
+                               if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore.\r
+                                       break;\r
+                       }\r
+                       size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;\r
+                       size.y = thisWindow.document.body.scrollHeight;// + gBscrollHeight;     \r
+                       thisWindow.document.body.scroll = 'no';\r
+                       \r
+               // Handle absurd cases just in case IE flakes\r
+       //              if (size.y < 100) {\r
+       //                      size.y = 100;\r
+       //              }\r
+               }\r
+       }\r
+       else {\r
+               if (thisWindow.document.body.scrollWidth > maxgoldx) {\r
+                       size.x = maxx; \r
+                       size.y = miny;  \r
+                       thisWindow.document.body.scroll = 'yes';\r
+               }\r
+               else {\r
+                       //  downsize from maxgoldx , now I try to using binary divide.\r
+                       x = maxgoldx;\r
+                       deltax = -maxgoldx/2;\r
+                       //i = 0;\r
+                       while (true) {\r
+                               x = x + deltax;\r
+                               thisWindow.resizeTo(x, miny);\r
+                               thisWindow.resizeTo(x, miny);\r
+                               diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * gBRateH_W;\r
+                               if (diffy >  gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter\r
+                                       deltax = Math.abs(deltax) /2;\r
+                               else if (diffy <  -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter\r
+                                       deltax = -Math.abs(deltax) /2;\r
+                               else \r
+                                       // the y is close enough to wanted.\r
+                                       break;\r
+                               if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore.\r
+                                       break;\r
+                               //i ++;\r
+                               \r
+                       }\r
+                       //size.x = x - gBscrollWidth;\r
+                       size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;\r
+                       size.y = thisWindow.document.body.scrollHeight ;\r
+                       thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little.\r
+                       thisWindow.resizeTo(size.x, size.y);\r
+                       if (thisWindow.document.body.scrollWidth > size.x)\r
+                       {\r
+                               size.x = thisWindow.document.body.scrollWidth;\r
+                       }\r
+                       if (thisWindow.document.body.scrollHeight > size.y)\r
+                       {\r
+                               size.y = thisWindow.document.body.scrollHeight;\r
+                       }\r
+               }\r
+       }\r
+       \r
+       // no reload no scrollbar.\r
+       //size.x = size.x + 16;  //reserve a width for scrollbar (IE 4.0 only)\r
+\r
+       thisWindow.resizeTo(size.x, size.y);\r
+       thisWindow.resizeTo(size.x, size.y);\r
+       return;\r
+}\r
+\r
+\r
+\r
+function BSSCPopupParentClicked()\r
+{\r
+       if (!window.gbPopupTimeoutExpired) {\r
+               return false;\r
+       }\r
+       \r
+       document.onmousedown = gbOrignalOnMouseDown;\r
+\r
+       // Simply hide the popup\r
+       hideAll();\r
+\r
+       window.gbPopupTimeoutExpired = false;\r
+\r
+       return true;\r
+}\r
+\r
+\r
+function BSSCPopupClicked()\r
+{\r
+       if (!window.gbPopupTimeoutExpired) {\r
+               return false;\r
+       }\r
+\r
+\r
+       var popupIFrame = getCurrentPopupIFrame();\r
+       if (popupIFrame == null) {\r
+               return true;\r
+       }\r
+\r
+/*\r
+       if ("undefined" != typeof(popupIFrame.gbInPopupMenu) &&\r
+               popupIFrame.gbInPopupMenu) {\r
+               return true;\r
+       }*/\r
+\r
+       if (!((popupIFrame.window.event != null) &&\r
+           (popupIFrame.window.event.srcElement != null) &&\r
+           ((popupIFrame.window.event.srcElement.tagName == "A") ||\r
+           (popupIFrame.window.event.srcElement.tagName == "IMG")))) {\r
+               document.onmousedown = gbOrignalOnMouseDown;\r
+\r
+       // Simply hide the popup\r
+               hideAll();\r
+\r
+               window.gbPopupTimeoutExpired = false;\r
+\r
+               return true;\r
+       }\r
+}\r
+\r
+\r
+//trace the mouse over's position for hotspot\r
+function  BSPSPopupOnMouseOver(event)\r
+{\r
+       if (gBsBrowser.ie4) {\r
+               window.gnPopupClickX = event.clientX + document.body.scrollLeft;\r
+               window.gnPopupClickY = event.clientY + document.body.scrollTop;\r
+               window.gnPopupScreenClickX = event.screenX;\r
+               window.gnPopupScreenClickY = event.screenY;\r
+       } else if (gBsBrowser.ns4) {\r
+               window.gnPopupClickX = event.pageX - window.pageXOffset;\r
+               window.gnPopupClickY = event.pageY - window.pageYOffset;\r
+               window.gnPopupScreenClickX = event.screenX - window.pageXOffset;\r
+               window.gnPopupScreenClickY = event.screenY - window.pageYOffset;\r
+       }\r
+}\r
+\r
+\r
+function BSSCHidePopupWindow()\r
+{\r
+       if (window.gPopupWindow != null) {\r
+               if (gBsBrowser.ns4) {\r
+                       if ((typeof window.gPopupWindow != "undefined") && (!window.gPopupWindow.closed)) {\r
+                               window.gPopupWindow.close();\r
+                               window.gPopupWindow = null;\r
+                       }\r
+               }\r
+       }\r
+\r
+       return;\r
+}\r
+\r
+// Add the PopupOnClick to the onclick array.\r
+if (typeof(BsscRegisterOnClick) != "undefined")\r
+{\r
+       BsscRegisterOnClick(BsPopupOnClick);\r
+}\r
+//End to support previous popup functions\r
+\r
+/// Section End  - Popup (JavaScript 1.0)\r
+\r
+/// Section Begin - Embedded Stub (JavaScript 1.0)\r
+\r
+var s_strAgent = navigator.userAgent.toLowerCase();\r
+var s_nVer        = parseInt(navigator.appVersion);\r
+\r
+var s_bIE  = (s_strAgent.indexOf('msie') != -1);\r
+var s_bNS  = (s_strAgent.indexOf('mozilla') != -1) && ((s_strAgent.indexOf('spoofer') == -1) && (s_strAgent.indexOf('compatible') == -1));\r
+var s_bOpera   = (s_strAgent.indexOf('opera') != -1);\r
+\r
+var s_bIE3Before = ((s_bIE) && (s_nVer <= 2));\r
+var s_bNS3Before = ((s_bNS) && (s_nVer <= 3));\r
+\r
+var s_bNS2             = ((s_bNS) && (s_nVer <= 2));\r
+var s_bNS3             = ((s_bNS) && (s_nVer == 3));\r
+var s_bIE300301        = ((s_bIE) && (s_nVer == 2) && ((s_strAgent.indexOf("3.00") != -1)||(s_strAgent.indexOf("3.0a") != -1)||(s_strAgent.indexOf("3.0b")!=-1)||(s_strAgent.indexOf("3.01")!=-1)));\r
+var s_bIE302   = ((s_bIE) && (s_nVer == 2) && (s_strAgent.indexOf("3.02") != -1));\r
+\r
+\r
+function HasExtJs()\r
+{\r
+       if (s_bIE3Before) { return false;}\r
+       if (s_bNS3Before) {     return false;}\r
+       if (typeof (BsGeneralOnLoad) == "undefined"){ return false; }\r
+       return true;\r
+}\r
+\r
+\r
+function BSSCCreatePopupDiv()\r
+{\r
+       return;\r
+}\r
+\r
+\r
+function WritePopupMenuLayer()\r
+{\r
+       if (HasExtJs()) {_WritePopupMenuLayer();}\r
+}\r
+\r
+function BSSCPopup(strURL, width, height)\r
+{\r
+       if (HasExtJs()) { \r
+               _BSSCPopup(strURL, width, height);\r
+       }else{\r
+               //Create a temporary window first to ensure the real popup comes up on top\r
+               var wndTemp = null;\r
+               if (!s_bNS3) {\r
+                       wndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");\r
+               }\r
+               // Create the real popup window\r
+               var wndPopup = window.open(strURL, "BSSCPopup", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=300,width=400");\r
+               // Close the temporary\r
+               if (!s_bNS3) {\r
+                       wndTemp.close();\r
+               } else {\r
+                       wndPopup.focus();\r
+               }\r
+       }\r
+}\r
+\r
+var gbWndTemp = null, gbWndPopupLinks = null;\r
+var gbstrParaTotal = "";\r
+\r
+function PopupMenu_Invoke()\r
+{\r
+       if (HasExtJs()) {\r
+               return _PopupMenu_Invoke(PopupMenu_Invoke.arguments);\r
+       }\r
+       if (s_bNS3Before || s_bIE3Before )      {\r
+               var argLen      = PopupMenu_Invoke.arguments.length;\r
+               if (argLen < 5) {\r
+                       window.document.location.href = PopupMenu_Invoke.arguments[3];\r
+                       return false;\r
+               }\r
+               gbWndTemp = null;\r
+               gbWndPopupLinks = null;\r
+               gbstrParaTotal = "";\r
+               for (var i = 0; i < (argLen - 2) / 2; i++) {\r
+                       var strParaLine = "";\r
+                       if (s_bNS2 || s_bOpera){\r
+                               strParaLine += "<a href=\"";\r
+                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 3];\r
+                               strParaLine += "\">"\r
+                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 2];\r
+                               strParaLine += "</a>";\r
+                       } else {\r
+                               strParaLine += "<a href=\"javascript:";\r
+                               strParaLine += "gotoUrl(\'";\r
+                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 3];\r
+                               strParaLine += "\');\"";\r
+                               if (PopupMenu_Invoke.arguments[1] != '') {\r
+                                       strParaLine += " TARGET='" + PopupMenu_Invoke.arguments[1] + "'";\r
+                               }\r
+                               strParaLine += ">";\r
+                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 2];\r
+                               strParaLine += "</a>";\r
+                       }\r
+                       strParaLine += "<br>";\r
+                       gbstrParaTotal += strParaLine;\r
+               }\r
+               var nHeight = argLen * 15;\r
+               var nWidth = 400;\r
+               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=auto";\r
+               strParam += ",height=" + nHeight + ",width=200,resizable";\r
+               \r
+               //Create a temporary window first to ensure the real popup comes up on top\r
+               //var wndTemp = null;\r
+               if (!s_bNS3) {\r
+                       gbWndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");\r
+               } \r
+               gbWndPopupLinks = window.open("", "popuplinks", strParam);\r
+\r
+               setTimeout("Wait_PopupMenuReady()", 100);\r
+       }\r
+       return true;\r
+}\r
+\r
+function Wait_PopupMenuReady() \r
+{\r
+       if (gbWndPopupLinks != null && "object" == typeof(gbWndPopupLinks.document)) {\r
+               PopupMenu_InvokeReady();\r
+       }\r
+       else \r
+               setTimeout("Wait_PopupMenuReady()", 100);\r
+}\r
+\r
+\r
+function PopupMenu_InvokeReady()\r
+{\r
+       if (gbWndPopupLinks != null) {\r
+               gbWndPopupLinks.document.open("text/html");\r
+               gbWndPopupLinks.document.write("<html><head>");\r
+               if (s_bNS2 || s_bOpera) {\r
+                       gbWndPopupLinks.document.write("<base href=\"" + location +"\">");\r
+               } else {\r
+                       //YJ: IE301,302 and NS3.x works fine\r
+                       gbWndPopupLinks.document.write("<");\r
+                       gbWndPopupLinks.document.write("script>");\r
+                       gbWndPopupLinks.document.write("function gotoUrl(aUrl) {opener.window.location=aUrl; close();}");\r
+                       gbWndPopupLinks.document.write("<");\r
+                       gbWndPopupLinks.document.write("/script>");\r
+               }\r
+               gbWndPopupLinks.document.write("</head><body onBlur=\'self.focus();\'>");\r
+               gbWndPopupLinks.document.write(gbstrParaTotal);\r
+               gbWndPopupLinks.document.write("</body></html>");\r
+               gbWndPopupLinks.document.close();\r
+\r
+               // Close the temporary\r
+               if (!s_bNS3 && gbWndTemp != null) {\r
+                       gbWndTemp.close();\r
+               }else {\r
+                       gbWndPopupLinks.focus();\r
+               }\r
+\r
+               return true;\r
+       }\r
+       return false;\r
+}\r
+\r
+/// Section End - Embedded Stub (JavaScript 1.0)\r
+\r
+//// Segment End -- (JavaScript 1.0)\r
+\r
+//// Segment Begin -- (JavaScript 1.2)\r
+/// Section Begin  - kadov DHTM (JavaScript 1.2)\r
+\r
+//Begin to support extended and dropdown text effects.\r
+function kadovIsParagraph(el)\r
+{\r
+       return( el.tagName == "P" || el.tagName.indexOf("H") == 0 ) ? true : false;\r
+}\r
+\r
+function kadovInitEachChild(el)\r
+{      \r
+       for(var i=0; i<el.children.length; i++)\r
+       {\r
+               var child = el.children[i];\r
+               if( child.tagName == "SCRIPT" || child.tagName == "!" )\r
+                       continue;\r
+\r
+               if( child.id != "" )\r
+               {\r
+                       // to wipe out the onload effects\r
+                       var onLoadEffect = child.style.getAttribute( "x-on-pageload" );\r
+                       if( (onLoadEffect != null) && (onLoadEffect > "") )\r
+                               child.style.setAttribute( "x-on-pageload", "" );\r
+                       \r
+                       var href = child.getAttribute("href")\r
+                       if( href != null && href > "" && href.indexOf( "BSSCPopup" ) >= 0 )\r
+                               kadovFilePopupInit(child.id); // Init for Popup\r
+                       else if( child.className == "dropspot" || child.className == "expandspot" || \r
+                                        child.className == "glossterm" )\r
+                               kadovTextPopupInit(child.id);// Init for Expanding/Glossary or DropDown text\r
+                       else if( child.className == "trigger")\r
+                               kadovInitTrigger(child.id);// Init for Trigger\r
+                       else\r
+                       {\r
+                               kadovInitEffects(child.id);// Init for DHTML effects\r
+                               CEngine.SetOneTargetInitialState( child.id );\r
+                       }\r
+               }\r
+               \r
+               if( (child.tagName == "IMG") && (child.getAttribute("dynsrc") > "") )\r
+                       child.start = "mouseover";// to start a AVI file. fileopen doesn't work\r
+\r
+               kadovInitEachChild(child);\r
+       }\r
+}\r
+\r
+function kadovRetrieveTextInner(el)\r
+{      \r
+       var x = "";\r
+       if( (!el) || (el.tagName == "!") || (el.tagName == "SCRIPT" ))\r
+               return x;\r
+\r
+       if( kadovIsParagraph(el) )\r
+       {\r
+               var strNewID = " ";\r
+               if( el.id != "" )\r
+                       strNewID += "id=" + el.id + "_NewSpan ";\r
+               x = "<span" + strNewID + "style='" + el.style.cssText + "'>" + el.innerHTML + "</span>";\r
+       }\r
+       else\r
+       {\r
+               for(var i=0; i<el.children.length; i++)\r
+                       x += kadovRetrieveTextInner( el.children[i] );\r
+       }\r
+       return x;\r
+}\r
+\r
+function kadovRetrieveCleanHTML( strRawHTML, strTagOpen, strTagClose, nDistance )\r
+{      \r
+       var nTagOpen = strRawHTML.indexOf( strTagOpen, 0 );\r
+       if( nTagOpen < 0 )\r
+               return strRawHTML;\r
+\r
+       var nTagClose = strRawHTML.indexOf( strTagClose, nTagOpen);\r
+       if( nTagClose < nTagOpen )\r
+               return strRawHTML;\r
+               \r
+       if( typeof(nDistance) == "number" && nDistance > 0 )\r
+               if( (nTagClose - nTagOpen) != nDistance )\r
+                       return strRawHTML;\r
+               \r
+       var strCleanOnce = strRawHTML.substring(0, nTagOpen) + strRawHTML.substr(nTagClose + strTagClose.length) ;\r
+       return  kadovRetrieveCleanHTML( strCleanOnce, strTagOpen, strTagClose );\r
+}\r
+\r
+function kadovAdjustObjectTag(strRawHTML, nStartPos)\r
+{// adjust object tag for related topics HTML control, because innerHTML misses out the item settings\r
+       \r
+       //Is there any DTC?\r
+       var strDTCTagOpen = '<!--Metadata type="DesignerControl" startspan';\r
+       var strDTCTagClose = '<!--Metadata type="DesignerControl" endspan-->';\r
+       var nDTCTagOpen = strRawHTML.indexOf( strDTCTagOpen, nStartPos );\r
+       if( nDTCTagOpen < 0 )\r
+               return strRawHTML;\r
+       var nDTCTagClose = strRawHTML.indexOf( strDTCTagClose, nDTCTagOpen );\r
+       if( nDTCTagClose < nDTCTagOpen)\r
+               return strRawHTML; // no Design Time Controls;\r
+               \r
+       //Is the DTC HTML Help Control?\r
+       var strRTObjTagOpen = 'classid=clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11';\r
+       var strRTObjTagClose = '</OBJECT>';\r
+       var nRTObjTagOpen = strRawHTML.indexOf( strRTObjTagOpen, nDTCTagOpen );\r
+       if( nRTObjTagOpen < nDTCTagOpen )\r
+               return strRawHTML;\r
+       var nRTObjTagClose = strRawHTML.indexOf( strRTObjTagClose, nRTObjTagOpen );\r
+       if( nRTObjTagClose < nRTObjTagOpen )\r
+               return strRawHTML; // is not a HTML help control\r
+               \r
+       // Is it a related Topics html help control?\r
+       var strRTObjLabel = '<PARAM NAME=\"Command\" VALUE=\"Related Topics';\r
+       if( strRawHTML.indexOf(strRTObjLabel, nRTObjTagOpen) < 0 )\r
+               return strRawHTML;\r
+       \r
+       // does the commented object tag contain a items parameters             \r
+       var strRTItemsOpen = '<param name=Items value="';\r
+       var strRTItemsClose = '$$**$$" >';\r
+       var nRTItemsOpen = strRawHTML.indexOf(strRTItemsOpen, nDTCTagOpen);\r
+       if( nRTItemsOpen < nDTCTagOpen )\r
+               return strRawHTML;\r
+       var nRTItemsClose = strRawHTML.indexOf(strRTItemsClose, nRTItemsOpen);\r
+       if( nRTItemsClose < nRTItemsOpen )\r
+               return strRawHTML;\r
+               \r
+       // found a items string\r
+       var strItems = strRawHTML.substring( nRTItemsOpen + strRTItemsOpen.length, nRTItemsClose);\r
+       if( strItems.length < 1 )\r
+               return strRawHTML;\r
+       \r
+       // to reconstruct the item(s) param tag(s)\r
+       var strItemsArray = strItems.split('$$**$$');\r
+       if( strItemsArray.length < 1 )\r
+               return strRawHTML;\r
+       var strRunTimeItemParam = "";\r
+       for( var i = 0; i < strItemsArray.length; i++ )\r
+       {\r
+               strRunTimeItemParam += '<PARAM  NAME="Item' + (i+1);\r
+               strRunTimeItemParam += '"' + '  VALUE="';\r
+               strRunTimeItemParam += strItemsArray[i];\r
+               strRunTimeItemParam += '">';\r
+       }\r
+       \r
+       // to insert the reconstructed item params into runtime object tag\r
+       var strAdjustedHTML = strRawHTML.substring(0,nRTObjTagClose) + strRunTimeItemParam + strRawHTML.substring(nRTObjTagClose, strRawHTML.length);\r
+       return kadovAdjustObjectTag(strAdjustedHTML, nDTCTagClose + strDTCTagClose.length);\r
+}\r
+\r
+function kadovTextPopupOnLoad( el )\r
+{\r
+       if( !CCSSP.bIsWinOS && !CCSSP.bIsSunOS)\r
+               return 0;\r
+\r
+       if( typeof(el) == "string" )\r
+               el = document.all.item(el);\r
+\r
+       var src = el.getAttribute( "x-use-popup" );\r
+       if(!src)\r
+               return 0;\r
+\r
+       var name = src;\r
+       if( src.substr(0,1) == "#" ) \r
+               name = src.substr(1, src.length-1);\r
+       var srcDiv = document.all.item(name);\r
+       if( !srcDiv )\r
+               return 1;\r
+\r
+       var type = el.getAttribute( "x-popup-type" );\r
+       var setup = el.getAttribute( "x-tmp-setup" );\r
+       var newId = name;\r
+       if( newId.indexOf( "_tmp") <= 0 )\r
+               newId += "_tmp";\r
+\r
+       if( !setup )\r
+       {\r
+               el.setAttribute( "x-tmp-setup", 1 );\r
+       \r
+               if( type == "pulldown"  )\r
+               {\r
+                       var strAdjust = kadovAdjustObjectTag(srcDiv.innerHTML,0);\r
+                       var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");\r
+                       strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");\r
+\r
+                       //work around the bug in HH.exe that highlight the phrases when use Search tab\r
+                       //this approach is just removing the <FONT...> tag inserted by Microsoft in the runtime\r
+                       strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<FONT color=#", "\">", 52);\r
+                       \r
+                       var strStyle = " style='display:none; position:relative;";\r
+                       var newDiv = "<div class=droptext id=" + newId + strStyle + "'>" + strCleanHTML + "</div>";\r
+\r
+                       srcDiv.outerHTML = ""; // empty the original DIV tag\r
+                       var elParentPra = kadovFindParentParagraph(el);\r
+                       if( elParentPra )\r
+                               elParentPra.insertAdjacentHTML( "AfterEnd", newDiv );\r
+               }\r
+               else if( type == "expanding"  )\r
+               {\r
+                       var inner = kadovRetrieveTextInner(srcDiv);\r
+                       if( inner == "" )\r
+                               inner = srcDiv.innerHTML;\r
+                       var strAdjust = kadovAdjustObjectTag(inner,0);\r
+                       var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");\r
+                       strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");\r
+                       var strClassName = (el.className == "glossterm") ? "glosstext" : "expandtext";\r
+                       var newSpan = "<span class=" + strClassName + " style='display: none;' id=" + newId + ">&nbsp;" + strCleanHTML + "</span>";\r
+                       srcDiv.outerHTML = ""; // empty the original DIV tag\r
+                       el.insertAdjacentHTML( "AfterEnd", newSpan );\r
+               }\r
+       }\r
+       return 0;\r
+}\r
+\r
+function kadovTextPopup( el )\r
+{\r
+       if( (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS) || (window.event == null) )\r
+               return;\r
+       window.event.cancelBubble = true;\r
+\r
+       if( typeof(el) == "string" )\r
+               el = document.all.item(el);\r
+\r
+       var src = el.getAttribute( "x-use-popup" );\r
+       if(!src)\r
+               return;\r
+\r
+       var name = src;\r
+       if( src.substr(0,1) == "#" ) \r
+               name = src.substr(1, src.length-1) + "_tmp";\r
+       var srcDiv = document.all.item(name);\r
+       if( !srcDiv )\r
+               return;\r
+\r
+       var type = el.getAttribute( "x-popup-type" );\r
+       var setup = el.getAttribute( "x-tmp-setup" );\r
+       if( srcDiv )\r
+       {\r
+               if( srcDiv.style.display == "" )\r
+                       srcDiv.style.display = "none";\r
+               else\r
+               {\r
+                       srcDiv.style.display = "";\r
+                       if( typeof(srcDiv.bInitialized) == "undefined" )\r
+                       {\r
+                               srcDiv.bInitialized = true;\r
+                               kadovInitEffects(name);\r
+                               kadovInitEachChild(srcDiv);\r
+                       }\r
+               }\r
+       }\r
+       return;\r
+}\r
+\r
+function kadovFindParentParagraph( el )\r
+{\r
+       if( typeof(el) == "string" )\r
+               el = document.all.item(el);\r
+       if( (!el) || el.tagName == "BODY" )\r
+               return null;\r
+       if( kadovIsParagraph(el.parentElement) )\r
+               return el.parentElement;\r
+       else\r
+               return kadovFindParentParagraph( el.parentElement );\r
+}\r
+\r
+//Begin HTML code invoked function\r
+function kadovRegisterEventHandler( obj, strEvent, strEventHandler )\r
+{\r
+       if( !gbBsIE4 )\r
+               return;\r
+       CCSSP.RegisterEventHandler( obj, strEvent, strEventHandler );\r
+}\r
+\r
+function kadovTextPopupInit( el )\r
+{\r
+       if( (!gbBsIE4) || (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS))\r
+               return;\r
+               \r
+       if( typeof(el) == "string" )\r
+               el = document.all.item(el);\r
+       if( el != null )\r
+       {\r
+               CCSSP.RegisterEventHandler( el, "onclick", "kadovTextPopup(" + el.id +");" );\r
+               CCSSP.RegisterEventHandler( window, "onload", "kadovTextPopupOnLoad(" + el.id +");" );\r
+       }\r
+}\r
+//End HTML code invoked function\r
+\r
+//End to support extended and dropdown text effects.\r
+\r
+//Begin to convert iWrite format to RoboEditor Format for DHTML effects\r
+function kadovInitTriggersInHead( )\r
+{\r
+  if( Object.xDelayedInitElements )\r
+  {\r
+     var x = Object.xDelayedInitElements;\r
+     for(i=0; i<x.length; i++)\r
+       kadovInitTrigger( x[i] );\r
+  }\r
+}\r
+\r
+//Begin HTML code invoked function\r
+function kadovFilePopupInit( el )\r
+{\r
+       if( !gbBsIE4 )\r
+               return;\r
+       if( typeof(el) == "string" )\r
+               el = document.all.item(el);\r
+\r
+       if( el != null )\r
+               CCSSP.RegisterEventHandler( el, "onmouseover", "BSPSPopupOnMouseOver(event);" );\r
+}\r
+\r
+function kadovInitTrigger( element )\r
+{\r
+       if( !gbBsIE4 )\r
+               return;\r
+       var srcElement = element;\r
+       if( typeof(srcElement) == "string" )\r
+       {\r
+               srcElement = document.all.item(element,0);\r
+               if(srcElement == null)\r
+                       return;\r
+       }\r
+       \r
+       if( !kadovIsParentVisible(srcElement) )\r
+               return;\r
+\r
+       var targets = srcElement.getAttribute( "x-targets" );\r
+       var arrOneTarget = targets.split( "," );\r
+       for( var i = 0; i < arrOneTarget.length; i ++ )\r
+               bsscFXInit( element, arrOneTarget[i], null, null, null, null );\r
+}\r
+\r
+function kadovIsParentVisible( el )\r
+{\r
+       if( typeof(el) == "string" )\r
+               el = document.all.item(el);\r
+       if( (!el) || el.tagName == "BODY" )\r
+               return true;\r
+       if( el.style.display == 'none' ) //el.visibility == 'hidden' || \r
+               return false;\r
+       else\r
+               return kadovIsParentVisible( el.parentElement );\r
+}\r
+\r
+function kadovInitEffects( element )\r
+{\r
+       if( !gbBsIE4 )\r
+               return;\r
+       var srcElement = element;\r
+       if( typeof(srcElement) == "string" )\r
+       {\r
+               srcElement = document.all.item(element,0);\r
+               if(srcElement == null)\r
+                       return;\r
+       }\r
+       \r
+       if( !kadovIsParentVisible(srcElement) )\r
+               return;\r
+       \r
+       kadovInitEffect( srcElement, "x-on-hover" );\r
+       kadovInitEffect( srcElement, "x-on-pageclick" );\r
+       kadovInitEffect( srcElement, "x-on-pageload" );\r
+       kadovInitEffect( srcElement, "x-on-trigger-1" );\r
+       kadovInitEffect( srcElement, "x-on-trigger-2" );\r
+}\r
+//End HTML code invoked function\r
+\r
+function kadovInitEffect( element, prop )\r
+{\r
+       var values = null;\r
+       if( element.getAttribute( "currentStyle" )  && element.currentStyle.getAttribute)\r
+               values = element.currentStyle.getAttribute( prop );\r
+       else  if (element.style.getAttribute)\r
+               values = element.style.getAttribute( prop );\r
+       if( !values )\r
+               return;\r
+\r
+       var functions = new Array();\r
+       var nIdx = 0, nStart = 0;\r
+       var nNext = values.indexOf( "\)", 0);\r
+       while( nNext >= 0 && nNext < values.length )\r
+       {\r
+               functions[nIdx] = values.substr( nStart, nNext-nStart+1);\r
+               nStart = nNext + 1;\r
+               nIdx++;\r
+               nNext = values.indexOf( "\)", nStart);\r
+       }\r
+               \r
+       for( var i=0; i<functions.length; i++)\r
+       {\r
+               var id = element.getAttribute( "id" );\r
+               var translatedProp = kadovTranslateProp(prop);\r
+\r
+               var lp = functions[i].indexOf( "(" );\r
+               var fnname = functions[i].substring(0, lp);\r
+               var srcargs = functions[i].substring(lp+1, functions[i].length-1);\r
+               \r
+               var nClickTimes = 1;\r
+               var arrForClickCount = srcargs.split( "," );\r
+               for( var j = 0; j < arrForClickCount.length; j++ )\r
+               {// to locate and get the "clicks=99" settings\r
+                       var nPageClick = arrForClickCount[j].indexOf("clicks");\r
+                       if( nPageClick >= 0 )\r
+                       {\r
+                               nPageClick = arrForClickCount[j].indexOf("=");\r
+                               if( nPageClick > 0 )\r
+                               {\r
+                                       nClickTimes = arrForClickCount[j].substring( nPageClick + 1, arrForClickCount[j].length) * 1;\r
+                                       break;\r
+                               }\r
+                       }\r
+               }\r
+               var args = srcargs;\r
+               if( j < arrForClickCount.length )\r
+               {// to strip out the "clicks=99" from the arguments string\r
+                       args = "";\r
+                       for( var k = 0; k < arrForClickCount.length; k ++ )\r
+                       {\r
+                               if( k != j )\r
+                               {\r
+                                       args += arrForClickCount[k];\r
+                                       if( k < arrForClickCount.length - 1 )\r
+                                               args += ",";\r
+                               }\r
+                       }\r
+               }\r
+               bsscFXInit( null, id, translatedProp, fnname, args, nClickTimes );\r
+       }\r
+}\r
+\r
+function kadovTranslateProp( prop )\r
+{\r
+       switch( prop )\r
+       {\r
+       case "x-on-hover" :     return "bsschover";\r
+       case "x-on-pageclick" : return "bsscpageclick";\r
+       case "x-on-pageload" :  return "bsscpageload";\r
+       case "x-on-trigger-1" : return "bssctrigger1";\r
+       case "x-on-trigger-2" : return "bssctrigger2";\r
+       }\r
+       return null;\r
+}\r
+//End to convert iWrite format to RoboEditor Format for DHTML effects\r
+\r
+//Begin the definition of one entry to DHTML effects\r
+function bsscFXInit( trigger_ID, target_ID, event_type, \r
+       action_type, action_setting, event_addional )\r
+{\r
+       if( (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS ) || typeof(target_ID) != "string" )//MUST have a target_ID\r
+               return; // we don't support Navigator yet\r
+       \r
+       if( typeof(event_type) == "string" )\r
+               event_type = event_type.toLowerCase();\r
+       if( typeof(action_type) == "string" )\r
+               action_type = action_type.toLowerCase();\r
+       if( typeof(action_setting) == "string" )\r
+                action_setting = action_setting.toLowerCase();\r
+       \r
+       // to get the target element then add it to the target list\r
+       var eleTarget = CCSSP.GetObject( target_ID );\r
+       if( (eleTarget != null) && (event_type != null) && (action_type != null) )\r
+       {\r
+               CEngine.AddOneTarget( target_ID, eleTarget );\r
+               CEngine.BuildTargetObject(target_ID, event_type, action_type, action_setting, event_addional);\r
+       }\r
+       \r
+       // to validate the trigger_ID parameter\r
+       if( typeof(trigger_ID) == "string" && trigger_ID != "" )\r
+               CEngine.BuildTriggerObject( trigger_ID, target_ID );\r
+}      \r
+//End the definition of one entry to DHTML effects\r
+\r
+\r
+/// Section End  - kadov DHTM (JavaScript 1.2)\r
+\r
+\r
+/// Section Begin  - CCSSP DHTM (JavaScript 1.2)\r
+\r
+//Begin JavaScript libary for cross-platform positioning object.\r
+function CCSSP(){} // constructor of CCSSP class\r
+\r
+CCSSP.strAgent = navigator.userAgent.toLowerCase(); \r
+CCSSP.nAppVersion = parseInt(navigator.appVersion);\r
+\r
+CCSSP.bIsWinOS = ((CCSSP.strAgent.indexOf("win") >= 0) || (CCSSP.strAgent.indexOf("16bit") >= 0));\r
+CCSSP.bIsMacOS = (CCSSP.strAgent.indexOf("mac") >= 0);\r
+CCSSP.bIsSunOS = (CCSSP.strAgent.indexOf("sunos") != -1);\r
+\r
+CCSSP.bIsIE = (navigator.appName.indexOf("Microsoft") >= 0);\r
+CCSSP.bIsIE4 = (CCSSP.bIsIE && (CCSSP.nAppVersion >= 4));\r
+CCSSP.bIsIE5 = (CCSSP.bIsIE4 && (CCSSP.strAgent.indexOf("msie 5") != -1) )\r
+\r
+CCSSP.bIsNav = (navigator.appName.indexOf("Netscape") >= 0);\r
+CCSSP.bIsNav4 = (CCSSP.bIsNav && (CCSSP.nAppVersion >= 4));\r
+CCSSP.bIsNav6 = (CCSSP.bIsNav && (CCSSP.nAppVersion >= 5));\r
+\r
+CCSSP.GetObject = function( obj )\r
+{//convert object name string or reference into a valid object reference\r
+       if( typeof(obj) == "object" )\r
+               return obj;\r
+       else if( typeof(obj) == "string" && obj != "")\r
+       {\r
+               if( CCSSP.bIsNav4 )\r
+                       return eval("document." + obj);\r
+               else\r
+                       return eval("document.all." + obj);\r
+       }\r
+       else\r
+               return null;\r
+}\r
+\r
+CCSSP.MoveObjectTo = function(obj, x, y)\r
+{//positioning an object at a specific pixel coordinate\r
+       if( CCSSP.bIsNav4 )\r
+               obj.moveTo(x,y);\r
+       else\r
+       {\r
+               obj.style.pixelLeft = x;\r
+               obj.style.pixelTop = y;\r
+       }\r
+}\r
+\r
+CCSSP.MoveObjectBy = function(obj, dx, dy)\r
+{//moveing a object by x and/or y pixel\r
+       if( CCSSP.bIsNav4 )\r
+               obj.moveBy(dx,dy);\r
+       else\r
+       {\r
+               obj.style.pixelLeft += dx;\r
+               obj.style.pixelTop += dy;\r
+       }\r
+}\r
+\r
+CCSSP.SetObjectBGColor = function(obj, color)\r
+{//set the background color of an object\r
+       if( CCSSP.bIsNav4 )\r
+               obj.bgColor = color;\r
+       else\r
+               obj.style.backgroundColor = color;\r
+}\r
+\r
+CCSSP.ShowObject = function(obj, bShow)\r
+{// set the object to be visible or invisible\r
+       if( CCSSP.bIsNav4 )\r
+               obj.visibility = (bShow == true) ? 'show' : 'hide';\r
+       else\r
+               obj.style.visibility = (bShow == true) ? 'visible' : 'hidden';// when hidden, it still occupy some space.\r
+}\r
+\r
+CCSSP.GetObjectLeft = function(obj)\r
+{// retrieve the x coordinate of a posionable object\r
+       if( CCSSP.bIsNav4 )\r
+               return obj.left;\r
+       else\r
+               return obj.style.pixelLeft;\r
+}\r
+\r
+CCSSP.GetObjectTop = function(obj)\r
+{// retrieve the y coordinate of a posionable object\r
+       if( CCSSP.bIsNav4 )\r
+               return obj.top;\r
+       else\r
+               return obj.style.pixelTop;\r
+}\r
+\r
+CCSSP.GetObjectContainLeft = function(obj)\r
+{// retrieve the x coordinate of a posionable object relative to it's parent element\r
+       if( CCSSP.bIsNav4 )\r
+               return obj.pageX;\r
+       else\r
+       {\r
+               if( obj == document.body )\r
+                       return obj.clientLeft;\r
+               else\r
+                       return obj.offsetLeft;\r
+       }\r
+}\r
+\r
+CCSSP.GetObjectWindowLeft = function(obj)\r
+{// retrieve the x coordinate of a posionable object relative to browser window\r
+       if( CCSSP.bIsNav4 )\r
+               return obj.pageX;\r
+       else\r
+       {\r
+               var nOffsetWindowLeft = 0;\r
+               for(var element = obj; element; element = element.offsetParent)\r
+                       nOffsetWindowLeft += CCSSP.GetObjectContainLeft(element);\r
+               return nOffsetWindowLeft;\r
+       }\r
+}\r
+\r
+CCSSP.GetObjectContainTop = function(obj)\r
+{// retrieve the y coordinate of a posionable object relative to it's parent element\r
+       if( CCSSP.bIsNav4 )\r
+               return obj.pageY;\r
+       else\r
+       {\r
+               if( obj == document.body )\r
+                       return obj.clientTop;\r
+               else\r
+                       return obj.offsetTop;\r
+       }\r
+}\r
+\r
+CCSSP.GetObjectWindowTop = function(obj)\r
+{// retrieve the y coordinate of a posionable object relative to browser window\r
+       if( CCSSP.bIsNav4 )\r
+               return obj.pageY;\r
+       else\r
+       {\r
+               var nOffsetWindowTop = 0;\r
+               for(var element = obj; element; element = element.offsetParent)\r
+                       nOffsetWindowTop += CCSSP.GetObjectContainTop(element);\r
+               return nOffsetWindowTop;\r
+       }\r
+}\r
+\r
+CCSSP.GetObjectHeight = function(obj)\r
+{// retrieve the height of a posionable object\r
+       if( CCSSP.bIsNav4 )\r
+               return obj.clip.height;\r
+       else\r
+               return obj.offsetHeight;\r
+}\r
+\r
+CCSSP.GetObjectWidth = function(obj)\r
+{// retrieve the width of a posionable object\r
+       if( CCSSP.bIsNav4 )\r
+               return obj.clip.width;\r
+       else\r
+               return obj.offsetWidth;\r
+}\r
+\r
+CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler )\r
+{ // to add the "funcHandler" as the "rawEventName" 's handler to the "srcObj" object,the original event handler will be combined\r
+       if (CCSSP.bIsNav4 && !CCSSP.bIsNav6)\r
+               return ;\r
+       var oldHandler = "";\r
+       if (CCSSP.bIsMacOS && CCSSP.bIsIE4)\r
+       {\r
+               if (typeof(srcObj[rawEventName.toLowerCase()])=="unknown")\r
+               { //search for <SCRIPT> tag which define the event handler\r
+                       for( var i = 0; i < document.scripts.length; i++ ) \r
+                       {\r
+                               var script = document.scripts[i];\r
+                               if( (script.htmlFor == srcObj.id || script.htmlFor == srcObj ) && script.event == rawEventName )\r
+                               {\r
+                                       oldHandler = script.innerHTML;\r
+                                       break;\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+       else\r
+       {\r
+               var oldInlineHandler = srcObj[rawEventName.toLowerCase()];\r
+               if( oldInlineHandler != null && typeof(oldInlineHandler) != "undefined")\r
+               {\r
+                       var functionDefinition = oldInlineHandler.toString();\r
+                       var bodyStart = functionDefinition.indexOf( "{" );\r
+                       var bodyEnd = functionDefinition.lastIndexOf( "}" );\r
+                       if( bodyStart > 0 || bodyEnd > bodyStart )\r
+                               oldHandler = functionDefinition.substr( bodyStart + 1, bodyEnd - bodyStart - 2 );\r
+               }\r
+               else if( CCSSP.bIsIE4 )\r
+               { //search for <SCRIPT> tag which define the event handler\r
+                       for( var i = 0; i < document.scripts.length; i++ ) \r
+                       {\r
+                               var script = document.scripts[i];\r
+                               if( (script.htmlFor == srcObj.id || script.htmlFor == srcObj ) && script.event == rawEventName )\r
+                               {\r
+                                       oldHandler = script.innerHTML;\r
+                                       break;\r
+                               }\r
+                       }\r
+               }\r
+       }       \r
+       if( oldHandler.indexOf(funcHandler) >= 0 )\r
+               return;// to prevent register the funtion twice.\r
+\r
+       if( CCSSP.bIsNav4 ) // only "onload, onresize, onfocus" apply to window\r
+       {// other raw events will apply to layer\r
+               var noOn = rawEventName.substring(2, rawEventName.length);\r
+               if( typeof(noOn) == "string" && noOn.length > 3 ) {\r
+                       srcObj.captureEvents( Event[noOn.toUpperCase()] );\r
+               }\r
+       }\r
+\r
+       var newHandler = oldHandler;\r
+       if( newHandler.length == 0 )\r
+               newHandler = funcHandler;\r
+       else\r
+               newHandler += "; " + funcHandler;\r
+       srcObj[rawEventName.toLowerCase()] = new Function( newHandler );\r
+}\r
+\r
+CCSSP.GetWindowHeight = function()\r
+{// retrieve the height of available content in browser window\r
+       if( CCSSP.bIsNav4 )\r
+               return window.innerHeight;\r
+       else\r
+               return document.body.clientHeight;\r
+}\r
+\r
+CCSSP.GetWindowBottom = function()\r
+{// retrieve the bottom postion of browser window\r
+       if( CCSSP.bIsNav4 )\r
+               return window.outerHeight + window.pageYOffset;\r
+       else\r
+               return document.body.clientHeight + document.body.scrollTop;\r
+}\r
+\r
+CCSSP.GetWindowWidth = function()\r
+{// retrieve the width of available content in browser window\r
+       if( CCSSP.bIsNav4 )\r
+               return window.innerWidth;\r
+       else\r
+               return document.body.clientWidth;\r
+}\r
+\r
+CCSSP.GetWindowRight = function()\r
+{// retrieve the right postion of browser window\r
+       if( CCSSP.bIsNav4 )\r
+               return window.outerWidth + window.pageXOffset;\r
+       else\r
+               return document.body.clientWidth + document.body.scrollLeft;\r
+}\r
+\r
+CCSSP.TrimString = function( objString, subtrim )\r
+{// to trim the "subtrim" in the beginning and ending of a string object\r
+       if( typeof(subtrim) != "string" || subtrim == null )\r
+               return objString;\r
+       var strHead = objString.substring(0, 1);\r
+       var strRear = objString.substring(objString.length-1, objString.length);\r
+       if( strHead != subtrim && strRear != subtrim )\r
+               return objString;\r
+       \r
+       var spacePos = objString.indexOf(subtrim);\r
+       if( spacePos < 0 )\r
+               return objString;\r
+       else if( spacePos == objString.length - 1 )\r
+               return objString.substring(0, spacePos);\r
+       else\r
+       {\r
+               var newString = objString.substring( spacePos + 1, objString.length);\r
+               return CCSSP.TrimString( newString, subtrim );\r
+       }\r
+}\r
+\r
+CCSSP.TrimSpace = function( objString )\r
+{\r
+       var Trim1 = CCSSP.TrimString( objString, " ");\r
+       return CCSSP.TrimString( Trim1, "\'");\r
+}\r
+\r
+CCSSP.GetEventElement = function( navEventObject )\r
+{// to get the element who fired the current event\r
+       if(CCSSP.bIsNav4 ) \r
+               if (CCSSP.bIsNav6)\r
+                       return null;\r
+               else\r
+                        navEventObject.target;\r
+       else\r
+               return event.srcElement;\r
+}\r
+\r
+CCSSP.PrepareFilter = function( Obj )\r
+{//to prepare for making the filter work\r
+       Obj.style.filter = "";\r
+       if( Obj.style.width != "" || Obj.style.height != "" || Obj.style.position == "absolute" )\r
+               return;\r
+       Obj.style.height = CCSSP.GetObjectHeight(Obj);\r
+}\r
+\r
+CCSSP.IsDescendant = function( progenitor, progeny )\r
+{\r
+       if( typeof(progeny) == "undefined" || progeny == null )\r
+               return false;\r
+       else if( progeny == progenitor )\r
+               return true; \r
+       else if( progeny.id == progenitor.id ) \r
+               return true; \r
+       else if( progeny.parentElement == progenitor.parentElement )\r
+               return false;\r
+       else\r
+               return CCSSP.IsDescendant( progenitor, progeny.parentElement );\r
+}\r
+\r
+CCSSP.IsTextTag = function( Obj )\r
+{\r
+       if( typeof( Obj.tagName ) == "undefined" )\r
+               return false;\r
+       return( Obj.tagName.indexOf("H") == 0 || Obj.tagName == "P" || \r
+                       Obj.tagName == "FONT" || Obj.tagName == "SPAN" );\r
+}\r
+\r
+//End JavaScript libary for cross-platform positioning object.\r
+\r
+/// Section End  - CCSSP DHTM (JavaScript 1.2)\r
+\r
+/// Section Begin  - CCSSP DHTM 1 (JavaScript 1.2)\r
+\r
+//Begin the definition of class CTrigger\r
+function CTrigger( TriggerElement )\r
+{\r
+       // object : the trigger element. Never be null. \r
+       this.eleTrigger = TriggerElement;\r
+       \r
+       // number : the click counter number: only 3 values: 0,1,2;\r
+       this.nCounter = 0; \r
+       \r
+       //object as associative array of string:\r
+       // the associate target ID strings; one element at least.                       \r
+       this.objStrTarget = new Object();\r
+       this.eleTrigger.style.cursor = "hand";\r
+       if( this.eleTrigger.tagName == "AREA" && this.eleTrigger.getAttribute("href") == "" )\r
+               this.eleTrigger.setAttribute("href", "#") // to make a hand cursor for image map\r
+}\r
+\r
+CTrigger.prototype.AddTargetID = function( strTargetID )\r
+{// add one target ID string to the objStrTarget\r
+       if( typeof(strTargetID) != "string" )\r
+               return ;\r
+       if( typeof(this.objStrTarget[strTargetID]) != "string" )\r
+               this.objStrTarget[strTargetID] = strTargetID;\r
+}\r
+\r
+CTrigger.prototype.OnTriggerClick = function()\r
+{// to activate all asociated target\r
+       var strEventType = ( (this.nCounter++)% 2 == 0 ) ? \r
+               "bssctrigger1" : "bssctrigger2";\r
+               \r
+       // to enumerate associative target element's ID string\r
+       for( var strTargetID in this.objStrTarget ) \r
+               CEngine.SendEventToOneTarget( strTargetID, strEventType );\r
+}\r
+//End the definition of class CTrigger\r
+\r
+//Begin the definition of class CTarget\r
+function CTarget( TargetElement )\r
+{\r
+       // object : the target element. Never be null.\r
+       this.eleTarget = TargetElement;\r
+       this.objManager = new Object(); // object: the event manager\r
+} \r
+\r
+CTarget.nPageClickCounter = 0;// static class property.\r
+\r
+CTarget.prototype.GetAgencyObject = function(str_action_type,action_setting )\r
+{// return the action agency ( effect )object's refernece \r
+       switch( str_action_type )\r
+       {\r
+       case "show":return new CAgencyShow( this.eleTarget, true ) ;\r
+       case "hide":return new CAgencyShow( this.eleTarget, false ) ;\r
+\r
+    case "flyin" : \r
+       return new CAgencyFly(this.eleTarget, action_setting, true);\r
+    case "flyout" : \r
+       return new CAgencyFly(this.eleTarget, action_setting, false);\r
+    case "spiralin" : \r
+       return new CAgencySpiral(this.eleTarget, action_setting, true);\r
+    case "spiralout" : \r
+       return new CAgencySpiral(this.eleTarget, action_setting, false);\r
+    case "zoomin" :\r
+       return new CAgencyZoom(this.eleTarget, action_setting, true);\r
+    case "zoomout" : \r
+       return new CAgencyZoom(this.eleTarget, action_setting, false);\r
+    case "elastic" : \r
+               return new CAgencyElastic(this.eleTarget, action_setting);\r
+               \r
+    case "fadein" : \r
+       return (CCSSP.bIsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, true) : null;\r
+    case "fadeout" :\r
+       return (CCSSP.bIsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, false) : null;\r
+    case "rockrollstatic" :\r
+    case "rockroll" :\r
+       return (CCSSP.bIsIE4)? new CAgencyWave(this.eleTarget, action_setting, false) : null;\r
\r
+    case "glow":\r
+       return (CCSSP.bIsIE4)? new CAgencyGlow(this.eleTarget,action_setting) : null;\r
+    case "dropshadow":\r
+       return (CCSSP.bIsIE4)? new CAgencyDropShadow(this.eleTarget,action_setting) : null;\r
+    case "transition" :\r
+       return (CCSSP.bIsIE4)? new CAgencyRevealTrans(this.eleTarget,action_setting) : null;\r
+    case "blur" :\r
+       return (CCSSP.bIsIE4)? new CAgencyBlur(this.eleTarget,action_setting) : null;\r
+\r
+    case "fliph" : // all these 4 do NOT need any parameters\r
+    case "flipv" :\r
+    case "invert":\r
+    case "gray" :\r
+       return (CCSSP.bIsIE4)? new CAgencyChangeFilter(this.eleTarget, str_action_type) : null;\r
+    \r
+    case "fontchange": // the effects below change the style on the fly, so won't work in Navigator\r
+       return (CCSSP.bIsIE4)? new CAgencyFontChange(this.eleTarget,action_setting) : null;\r
+    case "boderchange": \r
+    case "stylechange":\r
+       return (CCSSP.bIsIE4)? new CAgencyChangeStyle(this.eleTarget,action_setting) : null;\r
+\r
+       default: return null;\r
+       }\r
+}\r
+\r
+CTarget.prototype.SetEventManager = function( \r
+       one_event_type,str_action_type,action_setting,event_additional)\r
+{// to set the event manager with specified action \r
+       if( typeof( one_event_type ) != "string" ||     \r
+               typeof( str_action_type ) != "string"||\r
+               typeof( action_setting ) != "string" )\r
+               return false;\r
+       if( typeof(this.objManager[one_event_type]) == "undefined" )\r
+       {\r
+               this.objManager[one_event_type] = new Object();\r
+               this.objManager[one_event_type].length = 0;\r
+       }\r
+       \r
+       var eventAgency = this.GetAgencyObject(str_action_type,action_setting);\r
+       if( eventAgency != null )\r
+       {\r
+               var ct = this.objManager[one_event_type].length ++;\r
+               this.objManager[one_event_type][ct] = eventAgency;\r
+               \r
+               if( one_event_type == "bsscpageclick" )\r
+               {// to deal with the "number of pageclick" stuff\r
+                       if( typeof(event_additional) == "number" )\r
+                               this.objManager[one_event_type][ct].nPageClick = event_additional;\r
+                       else // set the default number \r
+                               this.objManager[one_event_type][ct].nPageClick = 1;\r
+                       \r
+                       if( (typeof(this.objManager.nMinPageClickIndex) == "undefined") ||\r
+                           (this.objManager[one_event_type][ct].nPageClick < \r
+                                       this.objManager[one_event_type][this.objManager.nMinPageClickIndex].nPageClick) )\r
+                               this.objManager.nMinPageClickIndex = ct;\r
+               }\r
+               \r
+               //hide the object blindly,SetState function will take care of the final correct state\r
+               if( ((one_event_type == "bsscpageclick") && \r
+                        (this.objManager[one_event_type][ct].nPageClick == 1)) ||\r
+                       one_event_type == "bsscpageload" ||\r
+                       one_event_type == "bssctrigger1" )\r
+                       CCSSP.ShowObject( this.eleTarget, false );\r
+               \r
+               if( one_event_type == "bssctrigger1" || one_event_type == "bssctrigger2" )\r
+                       if( typeof( this.strTriggerEvent ) == "undefined" )\r
+                               this.strTriggerEvent = ( one_event_type == "bssctrigger1" ) ? "bssctrigger2" : "bssctrigger1";\r
+                       \r
+               return true;\r
+       }\r
+       return false;\r
+}\r
+\r
+CTarget.prototype.OnEvent = function( strBsscEvent )\r
+{// response to the event ( bssc format )\r
+       if( typeof(this.objManager[strBsscEvent]) == "object" )\r
+       { // to get the event agency from the event manager\r
+               var eventAgency = this.objManager[strBsscEvent];\r
+               for( var i = 0; i < eventAgency.length; i++ )\r
+               {\r
+                       if( strBsscEvent == "bsscpageclick" && \r
+                               eventAgency[i].nPageClick != CTarget.nPageClickCounter )\r
+                                continue;\r
+                       else if( strBsscEvent == "bsschover" && event.type == "mouseout" )\r
+                               eventAgency[i].EndEffect();\r
+                       else // to invoke the unified function in effect object \r
+                               eventAgency[i].UpdateEffect(); \r
+               }\r
+       }\r
+}\r
+\r
+CTarget.prototype.SetState = function( strBsscEvent )\r
+{\r
+       if( typeof(this.objManager[strBsscEvent]) != "object" )\r
+               return false;\r
+\r
+       // to get the event agency from the event manager\r
+       var eventAgency = this.objManager[strBsscEvent];\r
+       \r
+       if( strBsscEvent == "bsscpageclick" )\r
+       {// we only set the initial state for the minium number of pageclick \r
+               eventAgency[this.objManager.nMinPageClickIndex].PrepareEffect();\r
+               return true;\r
+       }\r
+       else\r
+       {\r
+               for( var i = 0; i < eventAgency.length; i++ )\r
+                       eventAgency[i].PrepareEffect(); // to invoke the unified function in effect object       \r
+               if( i > 0 )\r
+                       return true;\r
+               else\r
+                       return false;\r
+       }\r
+}\r
+//End the definition of class CTarget\r
+\r
+//Begin the definition of CEngine class\r
+function CEngine(){}// all properities are going be "class" properities\r
+\r
+// object : as associative array of trigger objects\r
+CEngine.objTrigger = new Object();\r
+// object : as associative array of target objects \r
+CEngine.objTarget = new Object(); \r
+\r
+// Array : each element is a CAgencyXXX animation object\r
+CEngine.arrAnimation = new Array();\r
+CEngine.PerformAnimation = function( nIndex )\r
+{// animation : update effects function\r
+       CEngine.arrAnimation[nIndex].UpdateEffect();\r
+}\r
+\r
+CEngine.AddOneTrigger = function(TriggerID,TriggerElement)\r
+{// add one Trigger object into the trigger array\r
+       if( typeof(TriggerID) != "string" || TriggerElement == null ||\r
+           typeof(TriggerElement) != "object" )\r
+               return;\r
+       if( typeof(CEngine.objTrigger[TriggerID] ) != "object" )\r
+               CEngine.objTrigger[TriggerID] = new CTrigger(TriggerElement);\r
+}\r
+       \r
+CEngine.AddOneTarget = function(TargetID, TargetElement)\r
+{// add one Target object into the target array\r
+       if( typeof(TargetID) != "string" || TargetElement == null ||\r
+               typeof(TargetElement) != "object" )\r
+               return;\r
+       if( typeof(CEngine.objTarget[TargetID]) != "object" )\r
+               CEngine.objTarget[TargetID] = new CTarget( TargetElement );\r
+}\r
+\r
+CEngine.SendEventToOneTarget = function(strTargetID, strBsscEvent )\r
+{// to activate one target object\r
+       if( typeof(CEngine.objTarget[strTargetID]) == "object" ) \r
+       {\r
+               if( strBsscEvent == "bssctrigger1" || strBsscEvent == "bssctrigger2" )\r
+               {//now, the "bssctrigger1" and "bssctrigger2" work like a toggle\r
+                       if( strBsscEvent == CEngine.objTarget[strTargetID].strTriggerEvent )\r
+                               strBsscEvent = (strBsscEvent == "bssctrigger1") ? "bssctrigger2" : "bssctrigger1";\r
+                       CEngine.objTarget[strTargetID].strTriggerEvent = strBsscEvent;\r
+               }\r
+               CEngine.objTarget[strTargetID].OnEvent( strBsscEvent );\r
+       }\r
+}\r
+\r
+CEngine.SendEventToAllTarget = function( strBsscEvent )\r
+{ //to activate all target associative to the BSSC event\r
+       for( var strTargetID in CEngine.objTarget ) //to enumerate all target\r
+               CEngine.SendEventToOneTarget( strTargetID, strBsscEvent );\r
+}\r
+\r
+CEngine.SetOneTargetInitialState = function( strTargetID )\r
+{// only invoked after ALL effects for the target have been set\r
+       if( typeof(CEngine.objTarget[strTargetID]) == "object" ) \r
+       {// to get target object\r
+               var objTarget = CEngine.objTarget[strTargetID];\r
+               if( objTarget.SetState( "bsscpageload" ) == false )\r
+               {\r
+                       objTarget.SetState( "bsscpageclick" );\r
+                       objTarget.SetState( "bssctrigger1" );\r
+               }\r
+       }\r
+}\r
+\r
+CEngine.AdjustPageClickCounter = function()\r
+{\r
+       var nAdjustedClickCounter = CTarget.nPageClickCounter;\r
+       var bAdjusted = false;\r
+       for( var strTargetID in CEngine.objTarget ) //to enumerate all target\r
+       {// try to find the minum pageCliclConter greater than CTarget.nPageClickCounter\r
+               var objEventPageClick = CEngine.objTarget[strTargetID].objManager.bsscpageclick;\r
+               if( objEventPageClick != null )\r
+               {\r
+                       for( var i = 0; i < objEventPageClick.length; i++ )\r
+                       {\r
+                               var nOtherPageClick = objEventPageClick[i].nPageClick;\r
+                               if( nOtherPageClick == CTarget.nPageClickCounter )\r
+                                       return;\r
+                               if( nOtherPageClick > CTarget.nPageClickCounter )\r
+                               {\r
+                                       if( !bAdjusted )\r
+                                       {\r
+                                               nAdjustedClickCounter = nOtherPageClick;\r
+                                               bAdjusted = true;\r
+                                       }\r
+                                       else if( nOtherPageClick < nAdjustedClickCounter )\r
+                                               nAdjustedClickCounter = nOtherPageClick;\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+       CTarget.nPageClickCounter = nAdjustedClickCounter;\r
+}\r
+\r
+CEngine.OnPageLoad = function()\r
+{      \r
+       // first, to set all target's initial state\r
+       for( var strTargetID in CEngine.objTarget )\r
+               CEngine.SetOneTargetInitialState( strTargetID );\r
+       \r
+       // to invoke all target's onpageload handler\r
+       CEngine.SendEventToAllTarget( "bsscpageload" );\r
+}\r
+\r
+CEngine.OnPageClick = function()\r
+{ // to invoke all target's onpageclick handler\r
+       var src = CCSSP.GetEventElement( arguments[0] );\r
+       if( src == null )\r
+               return;\r
+               \r
+       var objClickedTrigger = null;\r
+       for( var strTriggerID in CEngine.objTrigger )\r
+       { // to detect which trigger is clicked\r
+               if( CCSSP.IsDescendant( CEngine.objTrigger[strTriggerID].eleTrigger,src) )\r
+               {\r
+                       objClickedTrigger = CEngine.objTrigger[strTriggerID];\r
+                       break;\r
+               }\r
+       }\r
+       \r
+       if( objClickedTrigger != null) // the clicked trigger found\r
+               objClickedTrigger.OnTriggerClick();\r
+       else // no trigger is clicked\r
+       { // to send PageClick event to all target\r
+               CTarget.nPageClickCounter++;\r
+               CEngine.AdjustPageClickCounter();\r
+               CEngine.SendEventToAllTarget( "bsscpageclick" );\r
+       }\r
+}      \r
+\r
+CEngine.OnMouseOver = function()\r
+{ // to invoke all target's onpageload handler\r
+       var src = CCSSP.GetEventElement( arguments[0] );\r
+       if( src == null )\r
+               return;\r
+               \r
+       var strHoveredTargetID = null;\r
+       for( var strTargetID in CEngine.objTarget )\r
+       { // to detect which Target is hovering on\r
+               if( CCSSP.IsDescendant( CEngine.objTarget[strTargetID].eleTarget, src ) )\r
+           {\r
+                       strHoveredTargetID = strTargetID;\r
+                       break;\r
+           }\r
+       }\r
+       \r
+       if( strHoveredTargetID != null ) // the hovered target found\r
+               CEngine.SendEventToOneTarget( strHoveredTargetID, "bsschover" );\r
+}\r
+\r
+CEngine.BuildTargetObject = function(target_ID,event_type,action_type,\r
+                       action_setting, event_additional)\r
+{// to build target object \r
+       // to get the target object\r
+       if( typeof( CEngine.objTarget[target_ID] ) != "object" )\r
+               return false;// the engine's AddOneTarget function might have failed.\r
+       var TargetObject = CEngine.objTarget[target_ID];\r
+       \r
+       // to prepare the parameters for the event manager\r
+       var arrEvent = event_type.split("|"); // to split the combined event_type string\r
+       var arrAction = action_type.split("|");//to split the combined action_type string\r
+       for( var trim = 0; trim < arrEvent.length; trim++ )\r
+               arrEvent[trim] = CCSSP.TrimSpace(arrEvent[trim]);\r
+       \r
+       for( trim = 0; trim < arrAction.length; trim++ )\r
+               arrAction[trim] = CCSSP.TrimSpace(arrAction[trim]);\r
+       \r
+       var arrSetting = new Array(); \r
+       if( typeof(action_setting) == "string" )\r
+               arrSetting = action_setting.split("|");// to split the combined action_setting string\r
+       // to calibrate the arrays\r
+       for( var i = arrSetting.length; i < arrAction.length; i++ )\r
+       {\r
+               if( typeof(arrSetting[i]) != "string" )\r
+                        arrSetting[i] = "";\r
+       }                                \r
+\r
+       // to prepare for dealing with the absolute posioning element\r
+       TargetObject.eleTarget.ABSX = CCSSP.GetObjectLeft( TargetObject.eleTarget );\r
+       TargetObject.eleTarget.ABSY = CCSSP.GetObjectTop( TargetObject.eleTarget );\r
+\r
+       if( arrEvent.length > 1 )\r
+       {// if event is combined, it must be : "bssctrigger1 | bssctrigger2"\r
+               if( arrAction.length != 2 )\r
+                       return false; // if event is combined, there must be 2 actions\r
+               for( i = 0 ; i < 2; i++ )\r
+               {\r
+                       if( TargetObject.SetEventManager(arrEvent[i], arrAction[i], \r
+                               arrSetting[i], event_additional) == false )\r
+                               return false; // the event manager has not been set up\r
+               }\r
+       }\r
+       else // the event_type string is not combined\r
+       {\r
+               for( i = 0 ; i < arrAction.length; i++ )\r
+               {\r
+                       TargetObject.SetEventManager(event_type, arrAction[i], arrSetting[i], event_additional);\r
+                       // to validate the event manager\r
+                       if( typeof(TargetObject.objManager[event_type]) != "object" ||\r
+                                       typeof(TargetObject.objManager[event_type][i]) != "object" )\r
+                               return false; // the event manager has not been set up\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+CEngine.BuildTriggerObject = function(trigger_ID, target_ID)\r
+{// to build the trigger object\r
+       var arrTrigger = trigger_ID.split("|"); // to split the combined trigger_ID string\r
+       for( var i = 0; i < arrTrigger.length; i ++ )\r
+       {// to get the trigger element then add it to the trigger list\r
+               arrTrigger[i] = CCSSP.TrimSpace( arrTrigger[i] );\r
+               var eleTrigger = CCSSP.GetObject( arrTrigger[i] );\r
+               if( eleTrigger == null )\r
+                       continue; // the trigger_ID string in the HTML code maybe wrong\r
+               CEngine.AddOneTrigger( arrTrigger[i], eleTrigger );\r
+\r
+               // to get the target object\r
+               if( typeof( this.objTrigger[arrTrigger[i]] ) != "object" )\r
+                       continue;// the engine's AddOneTarget function might have failed.\r
+               CEngine.objTrigger[arrTrigger[i]].AddTargetID( target_ID );\r
+       }\r
+}\r
+//End the definition of CEngine class\r
+\r
+/// Section End  - CCSSP DHTM 1 (JavaScript 1.2)\r
+\r
+/// Section Begin  - CCSSP DHTM 2 (JavaScript 1.2)\r
+\r
+//Begin the definition of CAgencyXXXX classes\r
+\r
+//Begin of the CAgencyShow definition\r
+function CAgencyShow( element, bIsShow )\r
+{\r
+       this.ele = element;\r
+       this.bIsShow = bIsShow;\r
+}\r
+\r
+CAgencyShow.prototype.PrepareEffect = function()\r
+{\r
+       CCSSP.ShowObject( this.ele, !this.bIsShow );\r
+}\r
+\r
+CAgencyShow.prototype.UpdateEffect = function()\r
+{\r
+       CCSSP.ShowObject( this.ele, this.bIsShow );\r
+}\r
+\r
+CAgencyShow.prototype.EndEffect = function()\r
+{\r
+       CCSSP.ShowObject( this.ele, !this.bIsShow );\r
+}\r
+// End of the CAgencyShow definition\r
+\r
+// Begin of CAgencyFly definition\r
+function CAgencyFly( element, settings, bIsIn )\r
+{\r
+       this.ele = element;\r
+       this.bIsIn = bIsIn;\r
+       this.duration = 1000; // default\r
+       this.direction = "right";\r
+\r
+       var arrAllSet = settings.split(",");\r
+       for( var i = 0; i < arrAllSet.length; i ++ )\r
+       {// to retrieve the setting\r
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
+               var arrOneSet = arrAllSet[i].split("=");\r
+               for( var j = 0; j < arrOneSet.length; j++ )\r
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
+               switch( arrOneSet[0] )\r
+               {\r
+               case "speed" : this.duration = 100000/arrOneSet[1]; break;\r
+               case "direction" : this.direction = arrOneSet[1]; break;\r
+               }\r
+       }\r
+               \r
+       if( CCSSP.bIsIE5 && this.ele.style.position != "absolute" )\r
+               this.ele.style.position = "relative";\r
+       this.timer = null;\r
+       this.aniIndex = CEngine.arrAnimation.length;\r
+       CEngine.arrAnimation[this.aniIndex] = this;\r
+}\r
+\r
+CAgencyFly.prototype.PrepareEffect = function()\r
+{\r
+       CCSSP.ShowObject(this.ele, !this.bIsIn );\r
+}\r
+\r
+CAgencyFly.prototype.UpdateEffect = function()\r
+{\r
+       if( this.timer == null )\r
+               this.ResetParameters();\r
+\r
+       var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
+       if( percent >= 1.0 )\r
+               this.EndEffect();\r
+       else\r
+       {\r
+               var newX = this.startX*(1.0-percent) +  this.finalX*percent;\r
+               var newY = this.startY*(1.0-percent) +  this.finalY*percent;\r
+               CCSSP.MoveObjectTo(this.ele, newX, newY);\r
+               if( this.timer == null )\r
+                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );\r
+       }\r
+}\r
+\r
+CAgencyFly.prototype.EndEffect = function()\r
+{\r
+       clearInterval( this.timer );\r
+       this.timer = null;\r
+\r
+       if( this.bIsIn ) // FlyIn\r
+               CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);\r
+       else // FlyOut\r
+               CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);\r
+       CCSSP.ShowObject(this.ele, this.bIsIn );\r
+}\r
+\r
+CAgencyFly.prototype.ResetParameters = function()\r
+{\r
+       this.PrepareEffect();\r
+       CCSSP.ShowObject(this.ele, true );\r
+\r
+       this.startX = 0;\r
+       this.startY = 0;\r
+       this.finalX = 0;\r
+       this.finalY = 0; \r
+       \r
+       var offsetLeft = CCSSP.GetObjectWindowLeft(this.ele) + this.ele.offsetWidth;\r
+       var offsetTop = CCSSP.GetObjectWindowTop(this.ele) + this.ele.offsetHeight;\r
+       var offsetRight = CCSSP.GetWindowRight();\r
+       var offsetBottom = CCSSP.GetWindowBottom();\r
+\r
+       if( this.bIsIn )\r
+       { // FlyIn\r
+               this.finalX = this.ele.ABSX;\r
+               this.finalY = this.ele.ABSY;\r
+\r
+               switch( this.direction )\r
+               {\r
+               case "right": this.startX = offsetRight; this.startY = this.finalY; break;\r
+               case "left": this.startX = -offsetLeft;  this.startY = this.finalY; break;\r
+               case "down": this.startY = offsetBottom; this.startX = this.finalX; break;\r
+               case "up":  this.startY = -offsetTop;    this.startX = this.finalX; break;\r
+               case "downright":\r
+                       this.startX = ( offsetBottom < offsetRight) ? offsetBottom : offsetRight;\r
+                       this.startY = this.startX;              break;\r
+               case "upright":\r
+                       this.startX = (offsetTop < offsetRight)? offsetTop : offsetRight;\r
+                       this.startY = -this.startX;             break;\r
+               case "upleft":\r
+                       this.startX = -((offsetTop < offsetRight)? offsetTop : offsetRight);\r
+                       this.startY = this.startX;              break;\r
+               case "downleft":\r
+                       this.startX = -(( offsetBottom < offsetRight) ? offsetBottom : offsetRight);\r
+                       this.startY = -this.startX;     break;\r
+               }\r
+       }\r
+       else\r
+       { // FlyOut\r
+               this.startX = this.ele.ABSX;\r
+               this.startY = this.ele.ABSY;\r
+\r
+               switch( this.direction )\r
+               {\r
+               case "right": this.finalX = offsetRight;  this.finalY = this.startY; break;\r
+               case "left": this.finalX = -offsetLeft;   this.finalY = this.startY;  break;\r
+               case "down": this.finalY = offsetBottom;  this.finalX = this.startX; break;\r
+               case "up":  this.finalY = -offsetTop;     this.finalX = this.startX; break;\r
+               case "downright":\r
+                       this.finalX = ( offsetBottom < offsetRight) ? offsetBottom : offsetRight;\r
+                       this.finalY = this.finalX;              break;\r
+               case "upright":\r
+                       this.finalX = (offsetTop < offsetRight)? offsetTop : offsetRight;\r
+                       this.finalY = -this.finalX;             break;\r
+               case "upleft":\r
+                       this.finalX = -((offsetTop < offsetRight)? offsetTop : offsetRight);\r
+                       this.finalY = this.finalX;              break;\r
+               case "downleft":\r
+                       this.finalX = -(( offsetBottom < offsetRight) ? offsetBottom : offsetRight);\r
+                       this.finalY = -this.finalX;     break;\r
+               }\r
+       }\r
+       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);\r
+       this.startTime = (new Date()).getTime();\r
+}\r
+// End of the CAgencyFly definition\r
+\r
+// Begin of CAgencySpiral\r
+function CAgencySpiral( element, settings, bIsIn )\r
+{\r
+       this.ele = element;\r
+       this.bIsIn = bIsIn;\r
+       this.duration = 1000; // default\r
+\r
+       var arrAllSet = settings.split(",");\r
+       for( var i = 0; i < arrAllSet.length; i ++ )\r
+       {// to retrieve the setting\r
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
+               var arrOneSet = arrAllSet[i].split("=");\r
+               for( var j = 0; j < arrOneSet.length; j++ )\r
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
+               switch( arrOneSet[0] )\r
+               {\r
+               case "speed" : this.duration = 100000/arrOneSet[1]; break;\r
+               }\r
+       }\r
+\r
+       if( CCSSP.bIsIE5 && this.ele.style.position != "absolute" )\r
+               this.ele.style.position = "relative";\r
+       this.timer = null;\r
+       this.aniIndex = CEngine.arrAnimation.length;\r
+       CEngine.arrAnimation[this.aniIndex] = this;\r
+}\r
+\r
+CAgencySpiral.prototype.PrepareEffect = function()\r
+{\r
+       CCSSP.ShowObject(this.ele, !this.bIsIn );\r
+}\r
+\r
+CAgencySpiral.prototype.UpdateEffect = function()\r
+{\r
+       if( this.timer == null )\r
+               this.ResetParameters();\r
+\r
+       var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
+       if( percent >= 1.0 )\r
+               this.EndEffect();\r
+       else\r
+       {\r
+               var rf = (this.bIsIn)? (1.0 - percent) : percent; \r
+               var t = (1.0-rf) * 4.0 * Math.PI\r
+               var rxP = (this.bIsIn)? this.startX : this.finalX; \r
+               var ryP = (this.bIsIn)? this.startY : this.finalY; \r
+               var rx = (Math.abs(rxP) < 200) ? Math.abs(rxP) : 200;\r
+               var ry = (Math.abs(ryP) < 200) ? Math.abs(ryP) : 200;\r
+\r
+               var newX = Math.ceil(-rf*Math.cos(t)*rx) + this.ele.ABSX;\r
+               var newY = Math.ceil(-rf*Math.sin(t)*ry) + this.ele.ABSY;\r
+               CCSSP.MoveObjectTo(this.ele, newX, newY);\r
+               if( this.timer == null )\r
+                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );\r
+       }\r
+}\r
+\r
+CAgencySpiral.prototype.EndEffect = function()\r
+{\r
+       clearInterval( this.timer );\r
+       this.timer = null;\r
+       \r
+       if( this.bIsIn ) // In\r
+               CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);\r
+       else // Out\r
+               CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);\r
+       CCSSP.ShowObject(this.ele, this.bIsIn );\r
+}\r
+\r
+CAgencySpiral.prototype.ResetParameters = function()\r
+{\r
+       this.PrepareEffect();\r
+       CCSSP.ShowObject(this.ele, true );\r
+       this.startX = (this.bIsIn)? CCSSP.GetWindowRight() : this.ele.ABSX;\r
+       this.startY = (this.bIsIn)? CCSSP.GetWindowBottom() : this.ele.ABSY;\r
+       this.finalX = (this.bIsIn)? this.ele.ABSX : CCSSP.GetWindowRight();\r
+       this.finalY = (this.bIsIn)? this.ele.ABSY : CCSSP.GetWindowBottom(); \r
+       \r
+       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);\r
+       this.startTime = (new Date()).getTime();\r
+}\r
+// End of CAgencySpiral\r
+\r
+// Begin of CAgencyElastic\r
+function CAgencyElastic( element, settings)\r
+{\r
+       this.ele = element;\r
+       this.duration = 1000; // default\r
+       this.direction = "right";\r
+\r
+       var arrAllSet = settings.split(",");\r
+       for( var i = 0; i < arrAllSet.length; i ++ )\r
+       {// to retrieve the setting\r
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
+               var arrOneSet = arrAllSet[i].split("=");\r
+               for( var j = 0; j < arrOneSet.length; j++ )\r
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
+               switch( arrOneSet[0] )\r
+               {\r
+               case "speed" : this.duration = 100000/arrOneSet[1]; break;\r
+               case "direction" : this.direction = arrOneSet[1]; break;\r
+               }\r
+       }\r
+               \r
+       if( CCSSP.bIsIE5 && this.ele.style.position != "absolute" )\r
+               this.ele.style.position = "relative";\r
+       this.timer = null;\r
+       this.aniIndex = CEngine.arrAnimation.length;\r
+       CEngine.arrAnimation[this.aniIndex] = this;\r
+}\r
+\r
+CAgencyElastic.prototype.PrepareEffect = function()\r
+{\r
+       CCSSP.ShowObject(this.ele, false );\r
+}\r
+\r
+CAgencyElastic.prototype.UpdateEffect = function()\r
+{\r
+       if( this.timer == null )\r
+               this.ResetParameters();\r
+\r
+       var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
+       if( percent >= 1.0 )\r
+               this.EndEffect();\r
+       else\r
+       {\r
+               var newX = this.startX;\r
+               var newY = this.startY;\r
+               var rf = Math.exp(-percent*3);\r
+               var t = percent * 1.5 * Math.PI\r
+               var rx = (Math.abs(this.startX) > Math.abs(this.startY)) ? this.startX : this.startY;\r
+               switch (this.direction )\r
+               {\r
+               case "left":   \r
+               case "right" : newX = rf*Math.cos(t)*rx + this.ele.ABSX; break;\r
+               case "up":         \r
+               case "down" :  newY = rf*Math.cos(t)*rx + this.ele.ABSX; break;\r
+               }\r
+               CCSSP.MoveObjectTo(this.ele, newX, newY);\r
+               if( this.timer == null )\r
+                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );\r
+       }\r
+}\r
+\r
+CAgencyElastic.prototype.EndEffect = function()\r
+{\r
+       CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);\r
+       clearInterval( this.timer );\r
+       this.timer = null;\r
+}\r
+\r
+CAgencyElastic.prototype.ResetParameters = function()\r
+{\r
+       CCSSP.ShowObject(this.ele, true );\r
+       this.startX = this.ele.ABSX;\r
+       this.finalX = this.ele.ABSX;\r
+       this.startY = this.ele.ABSY;\r
+       this.finalY = this.ele.ABSY;\r
+       \r
+       switch (this.direction)\r
+       { \r
+       case "left":  this.startX = -this.ele.offsetWidth; break;\r
+       case "right": this.startX = this.ele.offsetWidth;  break;\r
+       case "up":    this.startY = -this.ele.offsetHeight;break;\r
+       case "down":  this.startY = this.ele.offsetHeight; break;\r
+       }\r
+       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);\r
+       this.startTime = (new Date()).getTime();\r
+}\r
+// End of CAgencyElastic\r
+\r
+// Begin of CAgencyZoom\r
+function CAgencyZoom( element, settings, bIsIn)\r
+{\r
+       this.ele = element;\r
+       this.duration = 1000; // default\r
+       \r
+       var arrAllSet = settings.split(",");\r
+       for( var i = 0; i < arrAllSet.length; i ++ )\r
+       {// to retrieve the setting\r
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
+               var arrOneSet = arrAllSet[i].split("=");\r
+               for( var j = 0; j < arrOneSet.length; j++ )\r
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
+               switch( arrOneSet[0] )\r
+               {\r
+               case "speed" : this.duration = 100000/arrOneSet[1]; break;\r
+               }\r
+       }\r
+\r
+       this.bIsIn = bIsIn;\r
+       this.timer = null;\r
+       this.aniIndex = CEngine.arrAnimation.length;\r
+       CEngine.arrAnimation[this.aniIndex] = this;\r
+}\r
+\r
+CAgencyZoom.prototype.PrepareEffect = function()\r
+{\r
+       CCSSP.ShowObject(this.ele, false);\r
+}\r
+\r
+CAgencyZoom.prototype.UpdateEffect = function()\r
+{\r
+       if( this.timer == null )\r
+               this.ResetParameters();\r
+\r
+       var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
+       if( percent >= 1.0 )\r
+               this.EndEffect();\r
+       else\r
+       {\r
+               var nFactorIn = Math.ceil(50+50*percent);\r
+               var nFactorOut = Math.ceil(100+200*(1-percent));\r
+               var AlterFontsize = ((this.bIsIn)? nFactorIn : nFactorOut) + "%";\r
+               var AlterFactor = ((this.bIsIn)? nFactorIn : nFactorOut) / 100;\r
+               \r
+               this.UpdateEffectAllChildren(this.ele, AlterFontsize, AlterFactor);\r
+               for(var index = 0; index < this.ele.all.length; index++)\r
+                       this.UpdateEffectAllChildren(this.ele.all[index], AlterFontsize, AlterFactor);\r
+                       \r
+               if( this.timer == null )\r
+                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );\r
+       }\r
+}\r
+\r
+CAgencyZoom.prototype.UpdateEffectAllChildren = function(child, FontSize, Factor)\r
+{\r
+       if( CCSSP.IsTextTag(child) )\r
+               child.style.fontSize = FontSize;\r
+       else\r
+       {\r
+               if( typeof(child.orgWidth) == "number" )\r
+                       child.style.width = Factor * child.orgWidth;\r
+               if( typeof(child.orgHeight) == "number" )\r
+                       child.style.height = Factor * child.orgHeight;\r
+       }\r
+}\r
+\r
+CAgencyZoom.prototype.EndEffect = function()\r
+{\r
+       this.EndEffectAllChildren(this.ele);\r
+       for(var index = 0; index < this.ele.all.length; index++)\r
+               this.EndEffectAllChildren(this.ele.all[index]);\r
+       \r
+       clearInterval( this.timer );\r
+       this.timer = null;\r
+}\r
+\r
+CAgencyZoom.prototype.EndEffectAllChildren = function( child )\r
+{      \r
+       if( CCSSP.IsTextTag(child) )\r
+               child.style.fontSize = child.orgFontSize;\r
+       else\r
+       {\r
+               if( typeof(child.intactWidth) != "undefined" )\r
+               {\r
+                       child.width = child.intactWidth;\r
+                       child.height = child.intactHeight;\r
+               }\r
+               else if( typeof(child.style.intactPixelWidth) != "undefined" )\r
+               {\r
+                       child.style.pixelWidth = child.style.intactPixelWidth;\r
+                       child.style.pixelHeight = child.style.intactPixelHeight;\r
+               }\r
+       }\r
+}\r
+\r
+CAgencyZoom.prototype.ResetParameters = function()\r
+{\r
+       this.PrepareEffect();\r
+       this.ResetParametersAllChildren( this.ele );\r
+       for(var index = 0; index < this.ele.all.length; index++)\r
+               this.ResetParametersAllChildren(this.ele.all[index]);\r
+               \r
+       this.startTime = (new Date()).getTime();\r
+}\r
+\r
+CAgencyZoom.prototype.ResetParametersAllChildren = function( child )\r
+{\r
+       CCSSP.ShowObject(child, true );\r
+       if( (child.tagName == "DIV") && (child.parentElement.tagName == "TD") )\r
+               child.width = "100%";// if the div is inside a cell of table, we need the this hack\r
+       \r
+       if( CCSSP.IsTextTag(child) )\r
+               child.orgFontSize = child.style.fontSize;\r
+       else\r
+       {\r
+               if( child.width > "" || child.height > "" )\r
+               {\r
+                       child.orgWidth = child.intactWidth = child.width;\r
+                       child.orgHeight = child.intactHeight = child.height;\r
+               }\r
+               else if( ( typeof(child.orgWidth) != "number" ) && (typeof(child.orgHeight) != "number") )\r
+               {\r
+                       child.orgWidth = child.style.intactPixelWidth = child.style.pixelWidth;\r
+                       child.orgHeight = child.style.intactPixelHeight = child.style.pixelHeight;\r
+               }\r
+       }\r
+}\r
+// End of CAgencyZoom\r
+\r
+//// the following effects will use IE's exclusive "filter" function ////\r
+// Begin of CAgencyAlpha definition\r
+function CAgencyAlpha( element, settings, bIsIn )\r
+{// because of "visual filter" style, this won't work in Navigator\r
+       this.ele = element;\r
+       this.bIsIn = bIsIn;\r
+\r
+       // to set the default value\r
+       this.startOpacity = (this.bIsIn) ? 0 : 100;\r
+       this.endOpacity = (this.bIsIn) ? 100 : 0;\r
+       \r
+       this.duration = 1000; // default\r
+       \r
+       var arrAllSet = settings.split(",");\r
+       for( var i = 0; i < arrAllSet.length; i ++ )\r
+       {// to retrieve the setting\r
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
+               var arrOneSet = arrAllSet[i].split("=");\r
+               for( var j = 0; j < arrOneSet.length; j++ )\r
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
+               switch( arrOneSet[0] )\r
+               {\r
+               case "speed" : this.duration = 100000/arrOneSet[1]; break;\r
+               }\r
+       }\r
+       \r
+       this.timer = null;\r
+       this.aniIndex = CEngine.arrAnimation.length;\r
+       CEngine.arrAnimation[this.aniIndex] = this;\r
+}\r
+\r
+CAgencyAlpha.prototype.PrepareEffect = function()\r
+{// to set the visual filter function\r
+       // the visual filter ONLY work when set by "Width and Height" or\r
+       // absolute position for DIV, SPAN and normal tag ( such as p )\r
+       // but, "absolute" cause the following elements overlap, so:\r
+       CCSSP.PrepareFilter( this.ele );\r
+       CCSSP.ShowObject(this.ele, !this.bIsIn );\r
+}\r
+\r
+CAgencyAlpha.prototype.UpdateEffect = function()\r
+{// to set the visual filter function\r
+       if( this.timer == null )\r
+               this.ResetParameters();\r
+       if( typeof(this.ele.filters.alpha) != "object" )\r
+       {\r
+               this.EndEffect();\r
+               return;\r
+       }\r
+\r
+       var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
+       if( percent >= 1.0 )\r
+               this.EndEffect();\r
+       else if( typeof(this.ele.filters.alpha) == "object" )\r
+       {\r
+               this.ele.filters.alpha.opacity = this.startOpacity*(1.0-percent) + this.endOpacity*percent;\r
+               if( this.timer == null )\r
+                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );\r
+       }\r
+}\r
+\r
+CAgencyAlpha.prototype.EndEffect = function()\r
+{// to remove the visual filter function\r
+       clearInterval( this.timer );\r
+       this.timer = null;\r
+       this.ele.style.filter = "";\r
+       CCSSP.ShowObject(this.ele, this.bIsIn );\r
+}\r
+\r
+CAgencyAlpha.prototype.ResetParameters = function()\r
+{\r
+       this.PrepareEffect();\r
+       CCSSP.ShowObject(this.ele, true );\r
+       this.ele.style.filter = "alpha(opacity=" + this.startOpacity + ")";\r
+       this.startTime = (new Date()).getTime();\r
+}\r
+// End of the CAgencyAlpha definition\r
+\r
+// Begin of CAgencyWave definition\r
+function CAgencyWave( element, settings )\r
+{// because of "visual filter" style, this won't work in Navigator\r
+       this.ele = element;\r
+\r
+       this.duration = 0; // default\r
+       this.strength = 10;\r
+       this.freq = 1;\r
+       this.lightstrength = 1;\r
+       \r
+       var arrAllSet = settings.split(",");\r
+       for( var i = 0; i < arrAllSet.length; i ++ )\r
+       {// to retrieve the setting\r
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
+               var arrOneSet = arrAllSet[i].split("=");\r
+               for( var j = 0; j < arrOneSet.length; j++ )\r
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
+               switch( arrOneSet[0] )\r
+               {\r
+               case "duration" : this.duration = 100000/arrOneSet[1]; break;\r
+               case "strength" : this.strength = arrOneSet[1]; break;\r
+               case "freq" : this.freq = arrOneSet[1]; break;\r
+               case "lightstrength" : this.lightstrength = arrOneSet[1]; break;\r
+               }\r
+       }\r
+\r
+       this.timer = null;\r
+       this.aniIndex = CEngine.arrAnimation.length;\r
+       CEngine.arrAnimation[this.aniIndex] = this;\r
+}\r
+\r
+CAgencyWave.prototype.PrepareEffect = function()\r
+{// to set the visual filter function\r
+       CCSSP.PrepareFilter(this.ele);\r
+\r
+       CCSSP.ShowObject(this.ele, true );\r
+}\r
+\r
+CAgencyWave.prototype.UpdateEffect = function()\r
+{// to set the visual filter function\r
+       if( this.timer == null )\r
+               this.ResetParameters();\r
+       if( typeof(this.ele.filters.wave) != "object" )\r
+       {\r
+               this.EndEffect();\r
+               return;\r
+       }\r
+\r
+       if( this.duration > 0 )\r
+       {\r
+               var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
+               if( percent >= 1.0 )\r
+               {\r
+                       this.EndEffect();\r
+                       return;\r
+               }\r
+       }\r
+       \r
+       this.ele.filters.wave.phase += 5;\r
+       this.ele.filters.wave.phase %= 100;\r
+       if( this.timer == null )\r
+               this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 50 );\r
+}\r
+\r
+CAgencyWave.prototype.EndEffect = function()\r
+{// to remove the visual filter function\r
+       this.ele.style.filter = "";\r
+       clearInterval( this.timer );\r
+       this.timer = null;\r
+}\r
+\r
+CAgencyWave.prototype.ResetParameters = function()\r
+{\r
+       this.PrepareEffect();\r
+       this.ele.style.filter = "wave(strength=" + this.strength + ",freq=" + \r
+        this.freq +", lightstrength=" + this.lightstrength +",phase=0);";\r
+       this.startTime = (new Date()).getTime();\r
+}\r
+// End of the CAgencyWave definition\r
+\r
+// Begin of CAgencyGlow definition\r
+function CAgencyGlow( element, settings )\r
+{// because of "visual filter" style, this won't work in Navigator\r
+       this.ele = element;\r
+\r
+       // to set the default value\r
+       this.glowColor = "green";\r
+       this.glowStrength = "3";\r
+       \r
+       var arrAllSet = settings.split(",");\r
+       for( var i = 0; i < arrAllSet.length; i ++ )\r
+       {\r
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
+               var arrOneSet = arrAllSet[i].split("=");\r
+               for( var j = 0; j < arrOneSet.length; j++ )\r
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
+               switch( arrOneSet[0] )\r
+               {\r
+               case "color" : this.glowColor = arrOneSet[1]; break;\r
+               case "strength" : this.glowStrength = arrOneSet[1]; break;\r
+               }\r
+       }\r
+}\r
+\r
+CAgencyGlow.prototype.PrepareEffect = function()\r
+{\r
+       CCSSP.PrepareFilter(this.ele);\r
+       CCSSP.ShowObject(this.ele, true );\r
+       if( this.ele.style.backgroundColor != "" )\r
+       {//style.backgroundColor somehow stop the visual filter\r
+               this.ele.intactBackgroundColor = this.ele.style.backgroundColor;\r
+               this.ele.style.backgroundColor = "";\r
+       }\r
+}\r
+\r
+CAgencyGlow.prototype.UpdateEffect = function()\r
+{// to set the visual filter function\r
+       this.PrepareEffect();\r
+       this.ele.style.filter = "glow(Color=" + this.glowColor + ", Strength=" + \r
+               this.glowStrength + ", enabled=true" +")";\r
+}\r
+\r
+CAgencyGlow.prototype.EndEffect = function()\r
+{// to remove the visual filter function\r
+       this.ele.style.filter = "";\r
+       if( typeof(this.ele.intactBackgroundColor) != "undefined" )\r
+               this.ele.style.backgroundColor = this.ele.intactBackgroundColor;\r
+}\r
+// End of the CAgencyGlow definition\r
+\r
+// Begin of CAgencyDropShadow definition\r
+function CAgencyDropShadow( element, settings )\r
+{// because of "visual filter" style, this won't work in Navigator\r
+       this.ele = element;\r
+\r
+       // to set the default value\r
+       this.shadowColor = "black"; \r
+       this.shadowOffx = "1";\r
+       this.shadowOffy = "1";\r
+       \r
+       var arrAllSet = settings.split(",");\r
+       for( var i = 0; i < arrAllSet.length; i ++ )\r
+       {\r
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
+               var arrOneSet = arrAllSet[i].split("=");\r
+               for( var j = 0; j < arrOneSet.length; j++ )\r
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
+               switch( arrOneSet[0] )\r
+               {\r
+               case "color" : this.shadowColor = arrOneSet[1]; break;\r
+               case "offx" : this.shadowOffx = arrOneSet[1]; break;\r
+               case "offy" : this.shadowOffy = arrOneSet[1]; break;\r
+               }\r
+       }\r
+}\r
+\r
+CAgencyDropShadow.prototype.PrepareEffect = function()\r
+{\r
+       CCSSP.PrepareFilter(this.ele);\r
+       CCSSP.ShowObject(this.ele, true );\r
+       \r
+       if( this.ele.style.backgroundColor != "" )\r
+       {//style.backgroundColor somehow stop the visual filter\r
+               this.ele.intactBackgroundColor = this.ele.style.backgroundColor;\r
+               this.ele.style.backgroundColor = "";\r
+       }\r
+}\r
+\r
+CAgencyDropShadow.prototype.UpdateEffect = function()\r
+{// to set the visual filter function\r
+       this.PrepareEffect();\r
+       this.ele.style.filter = "dropshadow(color=" + this.shadowColor + ", offx=" + \r
+               this.shadowOffx + ", offy=" + this.shadowOffy + ")";\r
+}\r
+\r
+CAgencyDropShadow.prototype.EndEffect = function()\r
+{// to remove the visual filter function\r
+       this.ele.style.filter = "";\r
+       if( typeof(this.ele.intactBackgroundColor) != "undefined" )\r
+               this.ele.style.backgroundColor = this.ele.intactBackgroundColor;\r
+}\r
+// End of the CAgencyDropShadow definition\r
+\r
+// Begin of CAgencyRevealTrans definition\r
+function CAgencyRevealTrans( element, settings )\r
+{// because of "visual filter" style, this won't work in Navigator\r
+       this.ele = element;\r
+\r
+       // to set the default value\r
+       this.duration = 1.0; //The value is specified in seconds.milliseconds format (0.0000).\r
+       this.transition = 0;\r
+       \r
+       var arrAllSet = settings.split(",");\r
+       for( var i = 0; i < arrAllSet.length; i ++ )\r
+       {\r
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
+               var arrOneSet = arrAllSet[i].split("=");\r
+               for( var j = 0; j < arrOneSet.length; j++ )\r
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
+               switch( arrOneSet[0] )\r
+               {\r
+               case "type" : this.transition = arrOneSet[1]; break;\r
+               case "duration" : this.duration = 100/arrOneSet[1];     break;\r
+               }\r
+       }\r
+}\r
+\r
+CAgencyRevealTrans.prototype.PrepareEffect = function()\r
+{\r
+       CCSSP.PrepareFilter(this.ele);\r
+       CCSSP.ShowObject( this.ele, false);\r
+}\r
+\r
+CAgencyRevealTrans.prototype.UpdateEffect = function()\r
+{// to set the visual filter function\r
+       if( typeof( this.ele.filters.RevealTrans ) == "object" )\r
+       {\r
+               if( this.ele.filters.RevealTrans.status == 2 )\r
+                       this.ele.filters.RevealTrans.stop();  \r
+       }\r
+\r
+       this.PrepareEffect();\r
+       \r
+       this.ele.style.filter = "RevealTrans(duration=" + this.duration + \r
+               ", transition=" + this.transition + ")";\r
+       \r
+    if( typeof( this.ele.filters.RevealTrans ) == "object" )\r
+    {\r
+               this.ele.filters.RevealTrans.apply();\r
+               CCSSP.ShowObject( this.ele, true);\r
+               this.ele.filters.RevealTrans.play();  \r
+       }\r
+       else\r
+               CCSSP.ShowObject( this.ele, true);\r
+}\r
+\r
+CAgencyRevealTrans.prototype.EndEffect = function()\r
+{\r
+    if( typeof( this.ele.filters.RevealTrans ) == "object" )\r
+               this.ele.filters.RevealTrans.stop();  \r
+       this.ele.style.filter = "";\r
+}\r
+// End of the CAgencyRevealTrans definition\r
+\r
+// Begin of CAgencyBlur definition\r
+function CAgencyBlur( element, settings )\r
+{// because of "visual filter" style, this won't work in Navigator\r
+       this.ele = element;\r
+\r
+       // to set the default value\r
+       this.strength = "5";\r
+       this.direction = "90";\r
+       \r
+       var arrAllSet = settings.split(",");\r
+       for( var i = 0; i < arrAllSet.length; i ++ )\r
+       {\r
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
+               var arrOneSet = arrAllSet[i].split("=");\r
+               for( var j = 0; j < arrOneSet.length; j++ )\r
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
+               switch( arrOneSet[0] )\r
+               {\r
+               case "strength" : this.strength = arrOneSet[1]; break;\r
+               case "direction" : this.direction = arrOneSet[1]; break;\r
+               }\r
+       }\r
+}\r
+\r
+CAgencyBlur.prototype.PrepareEffect = function()\r
+{\r
+       CCSSP.PrepareFilter(this.ele);\r
+       CCSSP.ShowObject(this.ele, true );\r
+}\r
+\r
+CAgencyBlur.prototype.UpdateEffect = function()\r
+{// to set the visual filter function\r
+       CCSSP.PrepareFilter(this.ele);\r
+       this.ele.style.filter = "blur(strength=" + this.strength + \r
+               ", direction=" + this.direction + ")";\r
+}\r
+\r
+CAgencyBlur.prototype.EndEffect = function()\r
+{// to remove the visual filter function\r
+       this.ele.style.filter = "";\r
+}\r
+// End of the CAgencyBlur definition\r
+\r
+// Begin of CAgencyChangeFilter definition\r
+function CAgencyChangeFilter( element, settings ) // flipH, flipV, invert, grey,\r
+{// because of "visual filter" style, this won't work in Navigator\r
+       this.ele = element;\r
+\r
+       // to set the default value\r
+       this.filterFunction = settings;\r
+}\r
+\r
+CAgencyChangeFilter.prototype.PrepareEffect = function()\r
+{\r
+       CCSSP.PrepareFilter(this.ele);\r
+       CCSSP.ShowObject(this.ele, true );\r
+}\r
+\r
+CAgencyChangeFilter.prototype.UpdateEffect = function()\r
+{// to set the visual filter function\r
+       CCSSP.PrepareFilter(this.ele);\r
+       this.ele.style.filter = this.filterFunction;\r
+}\r
+\r
+CAgencyChangeFilter.prototype.EndEffect = function()\r
+{// to remove the visual filter function\r
+       this.ele.style.filter = "";\r
+}\r
+// End of the CAgencyChangeFilter definition\r
+\r
+// The effects below change the style on the fly, so they won't work in Navigator\r
+\r
+// Begin of CAgencyFontChange definition, \r
+function CAgencyFontChange( element, settings )\r
+{//this class can be replace by CAgencyChangeStyle,provided the "settings" is standard CSS string.\r
+       this.ele = element;\r
+       \r
+       // to retrieve the original font style\r
+       this.RetrieveOldFont( this.ele );\r
+       \r
+       // to set the default font to change\r
+       this.newfontFamily = this.ele.oldFontFamily;\r
+       this.newfColor = this.ele.oldColor;\r
+       this.newtextDecoration = this.ele.oldTextDecoration;\r
+       this.newfontWeight = this.ele.oldFontWeight;\r
+       this.newfontStyle = this.ele.oldFontStyle;\r
+       this.newfontSize = this.ele.oldFontSize;\r
+       this.newBackgroundColor = this.ele.oldBackgroundColor;\r
+       \r
+       var arrAllSet = settings.split(",");\r
+       for( var i = 0; i < arrAllSet.length; i ++ )\r
+       {// to retrieve the setting\r
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
+               var arrOneSet = arrAllSet[i].split("=");\r
+               for( var j = 0; j < arrOneSet.length; j++ )\r
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
+               switch( arrOneSet[0] )\r
+               {\r
+               case "font-family" : this.newfontFamily = arrOneSet[1]; break;\r
+               case "color" : this.newfColor = arrOneSet[1]; break;\r
+               case "underline" : this.newtextDecoration = (arrOneSet[1]=="on")? "underline" : "none"; break;\r
+               case "bold" : this.newfontWeight = (arrOneSet[1]=="on")? "bold" : "normal"; break;\r
+               case "italic" : this.newfontStyle = (arrOneSet[1]=="on")? "italic" : "normal"; break;\r
+               case "size" : this.newfontSize = arrOneSet[1]; break;\r
+               case "background-color" : this.newBackgroundColor = arrOneSet[1]; break;\r
+               }\r
+       }\r
+}\r
+\r
+CAgencyFontChange.prototype.RetrieveOldFont = function(objChild)\r
+{\r
+       if( typeof(objChild.oldFontFamily) == "undefined" )\r
+               objChild.oldFontFamily = objChild.style.fontFamily;\r
+       if( typeof(objChild.oldColor) == "undefined" )\r
+               objChild.oldColor = objChild.style.color;\r
+       if( typeof(objChild.oldTextDecoration) == "undefined" )\r
+               objChild.oldTextDecoration = objChild.style.textDecoration;\r
+       if( typeof(objChild.oldFontWeight) == "undefined" )\r
+               objChild.oldFontWeight = objChild.style.fontWeight;\r
+       if( typeof(objChild.oldFontStyle) == "undefined" )\r
+               objChild.oldFontStyle = objChild.style.fontStyle;\r
+       if( typeof(objChild.oldFontSize) == "undefined" )\r
+               objChild.oldFontSize = objChild.style.fontSize;\r
+       if( typeof(objChild.oldBackgroundColor) == "undefined" )\r
+               objChild.oldBackgroundColor = objChild.style.backgroundColor;\r
+}\r
+\r
+CAgencyFontChange.prototype.PrepareEffect = function()\r
+{\r
+       // as for expanding text, the child is created after the constructor called\r
+       for(var index = 0; index < this.ele.all.length; index++)\r
+               this.RetrieveOldFont(this.ele.all[index]);\r
+       CCSSP.ShowObject(this.ele, true );\r
+}\r
+\r
+CAgencyFontChange.prototype.UpdateEffect = function()\r
+{// to change the font\r
+       this.PrepareEffect();\r
+       this.UpdateEffectAllChildren( this.ele );\r
+       for( var index = 0; index < this.ele.all.length; index++)\r
+               this.UpdateEffectAllChildren(this.ele.all[index]);\r
+}\r
+\r
+CAgencyFontChange.prototype.UpdateEffectAllChildren = function(objChild)\r
+{\r
+       objChild.style.fontFamily = this.newfontFamily;\r
+       objChild.style.color = this.newfColor;\r
+       objChild.style.textDecoration = this.newtextDecoration;\r
+       objChild.style.fontWeight = this.newfontWeight;\r
+       objChild.style.fontStyle = this.newfontStyle;\r
+       objChild.style.fontSize = this.newfontSize;\r
+       objChild.style.backgroundColor = this.newBackgroundColor;\r
+}\r
+\r
+CAgencyFontChange.prototype.EndEffect = function()\r
+{// to reinstate the original font style\r
+       this.EndEffectAllChildren( this.ele );\r
+       for( var index = 0; index < this.ele.all.length; index++)\r
+               this.EndEffectAllChildren(this.ele.all[index]);\r
+}\r
+\r
+CAgencyFontChange.prototype.EndEffectAllChildren = function( objChild )\r
+{\r
+       if( typeof(objChild.oldFontFamily) != "undefined" )\r
+               objChild.style.fontFamily = objChild.oldFontFamily;\r
+       if( typeof(objChild.oldColor) != "undefined" )\r
+               objChild.style.color = objChild.oldColor;\r
+       if( typeof(objChild.oldFontWeight) != "undefined" )\r
+               objChild.style.fontWeight = objChild.oldFontWeight;\r
+       if( typeof(objChild.oldFontStyle) != "undefined" )\r
+               objChild.style.fontStyle = objChild.oldFontStyle;\r
+       if( typeof(objChild.oldFontSize) != "undefined" )\r
+               objChild.style.fontSize = objChild.oldFontSize;\r
+       if( typeof(objChild.oldTextDecoration) != "undefined" )\r
+               objChild.style.textDecoration = objChild.oldTextDecoration;\r
+       if( typeof(objChild.oldBackgroundColor) != "undefined" )\r
+               objChild.style.backgroundColor = objChild.oldBackgroundColor;\r
+}\r
+// End of the CAgencyFontChange definition\r
+\r
+// Begin of the CAgencyChangeStyle definition\r
+function CAgencyChangeStyle( element, settings )\r
+{//this class can be replace by CAgencyChangeStyle,provided the "settings" is standard CSS string.\r
+       this.ele = element;\r
+       \r
+       // to retrieve the original style\r
+       this.oldstyle = this.ele.style.cssText;\r
+       \r
+       // to set the default style\r
+       this.newStyle = this.oldstyle;\r
+       \r
+       if( typeof(settings) == "string" && settings.length > 1 )\r
+               this.newStyle = this.oldstyle + " " + settings;\r
+}\r
+\r
+CAgencyChangeStyle.prototype.PrepareEffect = function()\r
+{\r
+       CCSSP.ShowObject(this.ele, true );\r
+}\r
+\r
+CAgencyChangeStyle.prototype.UpdateEffect = function()\r
+{// to change the style\r
+       this.ele.style.cssText = this.newStyle;\r
+}\r
+\r
+CAgencyChangeStyle.prototype.EndEffect = function()\r
+{// to reinstate the original style\r
+       this.ele.style.cssText = this.oldStyle;\r
+}\r
+// End of the CAgencyChangeStyle definition\r
+\r
+//End the definition of CAgencyXXXX classes\r
+\r
+//Begin to collaborate with other event handler settings \r
+CCSSP.RegisterEventHandler( window, "onload", "CEngine.OnPageLoad();BSSCOnLoad();kadovInitTriggersInHead();");\r
+CCSSP.RegisterEventHandler( document, "onclick", "CEngine.OnPageClick();BSSCOnClick();");\r
+CCSSP.RegisterEventHandler( document, "onmouseover", "CEngine.OnMouseOver();BSSCOnMouseOver();" );\r
+CCSSP.RegisterEventHandler( document, "onmouseout", "CEngine.OnMouseOver();BSSCOnMouseOut();" );\r
+CCSSP.RegisterEventHandler( window, "onunload", "BSSCOnUnload();");\r
+//End to collaborate with other event handler settings\r
+\r
+\r
+/// Section End  - CCSSP DHTM 2 (JavaScript 1.2)\r
+\r
+//// Segment End -- (JavaScript 1.2)\r
diff --git a/doc/salome/gui/VISU/i_blue.jpg b/doc/salome/gui/VISU/i_blue.jpg
new file mode 100755 (executable)
index 0000000..ed3acfa
Binary files /dev/null and b/doc/salome/gui/VISU/i_blue.jpg differ
diff --git a/doc/salome/gui/VISU/image1.gif b/doc/salome/gui/VISU/image1.gif
new file mode 100755 (executable)
index 0000000..6e29b99
Binary files /dev/null and b/doc/salome/gui/VISU/image1.gif differ
diff --git a/doc/salome/gui/VISU/image10.jpg b/doc/salome/gui/VISU/image10.jpg
new file mode 100755 (executable)
index 0000000..af610ac
Binary files /dev/null and b/doc/salome/gui/VISU/image10.jpg differ
diff --git a/doc/salome/gui/VISU/image11.jpg b/doc/salome/gui/VISU/image11.jpg
new file mode 100755 (executable)
index 0000000..230d9b4
Binary files /dev/null and b/doc/salome/gui/VISU/image11.jpg differ
diff --git a/doc/salome/gui/VISU/image12.jpg b/doc/salome/gui/VISU/image12.jpg
new file mode 100755 (executable)
index 0000000..b9a82f6
Binary files /dev/null and b/doc/salome/gui/VISU/image12.jpg differ
diff --git a/doc/salome/gui/VISU/image13.jpg b/doc/salome/gui/VISU/image13.jpg
new file mode 100755 (executable)
index 0000000..e90baef
Binary files /dev/null and b/doc/salome/gui/VISU/image13.jpg differ
diff --git a/doc/salome/gui/VISU/image14.gif b/doc/salome/gui/VISU/image14.gif
new file mode 100755 (executable)
index 0000000..869fd84
Binary files /dev/null and b/doc/salome/gui/VISU/image14.gif differ
diff --git a/doc/salome/gui/VISU/image15.gif b/doc/salome/gui/VISU/image15.gif
new file mode 100755 (executable)
index 0000000..c752772
Binary files /dev/null and b/doc/salome/gui/VISU/image15.gif differ
diff --git a/doc/salome/gui/VISU/image15.jpg b/doc/salome/gui/VISU/image15.jpg
new file mode 100755 (executable)
index 0000000..cdfb796
Binary files /dev/null and b/doc/salome/gui/VISU/image15.jpg differ
diff --git a/doc/salome/gui/VISU/image16.gif b/doc/salome/gui/VISU/image16.gif
new file mode 100755 (executable)
index 0000000..cd27cf1
Binary files /dev/null and b/doc/salome/gui/VISU/image16.gif differ
diff --git a/doc/salome/gui/VISU/image16.jpg b/doc/salome/gui/VISU/image16.jpg
new file mode 100755 (executable)
index 0000000..1cdccd4
Binary files /dev/null and b/doc/salome/gui/VISU/image16.jpg differ
diff --git a/doc/salome/gui/VISU/image17.gif b/doc/salome/gui/VISU/image17.gif
new file mode 100755 (executable)
index 0000000..6c6272e
Binary files /dev/null and b/doc/salome/gui/VISU/image17.gif differ
diff --git a/doc/salome/gui/VISU/image17.jpg b/doc/salome/gui/VISU/image17.jpg
new file mode 100755 (executable)
index 0000000..513ab23
Binary files /dev/null and b/doc/salome/gui/VISU/image17.jpg differ
diff --git a/doc/salome/gui/VISU/image18.jpg b/doc/salome/gui/VISU/image18.jpg
new file mode 100755 (executable)
index 0000000..6cb5d0c
Binary files /dev/null and b/doc/salome/gui/VISU/image18.jpg differ
diff --git a/doc/salome/gui/VISU/image19.jpg b/doc/salome/gui/VISU/image19.jpg
new file mode 100755 (executable)
index 0000000..d24fdae
Binary files /dev/null and b/doc/salome/gui/VISU/image19.jpg differ
diff --git a/doc/salome/gui/VISU/image20.jpg b/doc/salome/gui/VISU/image20.jpg
new file mode 100755 (executable)
index 0000000..a2a345f
Binary files /dev/null and b/doc/salome/gui/VISU/image20.jpg differ
diff --git a/doc/salome/gui/VISU/image21.jpg b/doc/salome/gui/VISU/image21.jpg
new file mode 100755 (executable)
index 0000000..c1bc42f
Binary files /dev/null and b/doc/salome/gui/VISU/image21.jpg differ
diff --git a/doc/salome/gui/VISU/image22.jpg b/doc/salome/gui/VISU/image22.jpg
new file mode 100755 (executable)
index 0000000..8e0a5eb
Binary files /dev/null and b/doc/salome/gui/VISU/image22.jpg differ
diff --git a/doc/salome/gui/VISU/image4.jpg b/doc/salome/gui/VISU/image4.jpg
new file mode 100755 (executable)
index 0000000..547964e
Binary files /dev/null and b/doc/salome/gui/VISU/image4.jpg differ
diff --git a/doc/salome/gui/VISU/image5.jpg b/doc/salome/gui/VISU/image5.jpg
new file mode 100755 (executable)
index 0000000..f78ce1e
Binary files /dev/null and b/doc/salome/gui/VISU/image5.jpg differ
diff --git a/doc/salome/gui/VISU/image6.jpg b/doc/salome/gui/VISU/image6.jpg
new file mode 100755 (executable)
index 0000000..2b5052d
Binary files /dev/null and b/doc/salome/gui/VISU/image6.jpg differ
diff --git a/doc/salome/gui/VISU/image7.jpg b/doc/salome/gui/VISU/image7.jpg
new file mode 100755 (executable)
index 0000000..2d3c7ae
Binary files /dev/null and b/doc/salome/gui/VISU/image7.jpg differ
diff --git a/doc/salome/gui/VISU/image8.gif b/doc/salome/gui/VISU/image8.gif
new file mode 100755 (executable)
index 0000000..7b61363
Binary files /dev/null and b/doc/salome/gui/VISU/image8.gif differ
diff --git a/doc/salome/gui/VISU/image8.jpg b/doc/salome/gui/VISU/image8.jpg
new file mode 100755 (executable)
index 0000000..64cf42b
Binary files /dev/null and b/doc/salome/gui/VISU/image8.jpg differ
diff --git a/doc/salome/gui/VISU/image9.jpg b/doc/salome/gui/VISU/image9.jpg
new file mode 100755 (executable)
index 0000000..703abfe
Binary files /dev/null and b/doc/salome/gui/VISU/image9.jpg differ
diff --git a/doc/salome/gui/VISU/importmed.gif b/doc/salome/gui/VISU/importmed.gif
new file mode 100755 (executable)
index 0000000..bc4549a
Binary files /dev/null and b/doc/salome/gui/VISU/importmed.gif differ
diff --git a/doc/salome/gui/VISU/launchvisu.gif b/doc/salome/gui/VISU/launchvisu.gif
new file mode 100755 (executable)
index 0000000..4d8d76d
Binary files /dev/null and b/doc/salome/gui/VISU/launchvisu.gif differ
diff --git a/doc/salome/gui/VISU/more.jpg b/doc/salome/gui/VISU/more.jpg
new file mode 100755 (executable)
index 0000000..1ed8250
Binary files /dev/null and b/doc/salome/gui/VISU/more.jpg differ
diff --git a/doc/salome/gui/VISU/note1.gif b/doc/salome/gui/VISU/note1.gif
new file mode 100755 (executable)
index 0000000..b53e21d
Binary files /dev/null and b/doc/salome/gui/VISU/note1.gif differ
diff --git a/doc/salome/gui/VISU/ss_btn_related_topics.gif b/doc/salome/gui/VISU/ss_btn_related_topics.gif
new file mode 100755 (executable)
index 0000000..5158bc4
Binary files /dev/null and b/doc/salome/gui/VISU/ss_btn_related_topics.gif differ
diff --git a/doc/salome/gui/VISU/ss_btn_see_also.gif b/doc/salome/gui/VISU/ss_btn_see_also.gif
new file mode 100755 (executable)
index 0000000..08de3d9
Binary files /dev/null and b/doc/salome/gui/VISU/ss_btn_see_also.gif differ
diff --git a/doc/salome/gui/VISU/texture_horiz_ltbluebubbles.jpg b/doc/salome/gui/VISU/texture_horiz_ltbluebubbles.jpg
new file mode 100755 (executable)
index 0000000..a10d494
Binary files /dev/null and b/doc/salome/gui/VISU/texture_horiz_ltbluebubbles.jpg differ
diff --git a/doc/salome/gui/VISU/tip1.gif b/doc/salome/gui/VISU/tip1.gif
new file mode 100755 (executable)
index 0000000..bb74c87
Binary files /dev/null and b/doc/salome/gui/VISU/tip1.gif differ
diff --git a/doc/salome/gui/VISU/visu.html b/doc/salome/gui/VISU/visu.html
new file mode 100755 (executable)
index 0000000..21e4437
--- /dev/null
@@ -0,0 +1,150 @@
+\r
+<html>\r
+<head><script language="javascript">\r
+<!--\r
+var sIcon="whstart.ico";\r
+var sPath=document.location.href;\r
+if (sPath.indexOf("http")!= -1)\r
+       document.write("<link REL=\"SHORTCUT ICON\" href=\""+ sIcon +"\">");\r
+//-->\r
+</script>\r
+ <title>VISU refrence manual</title>\r
+ <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+ <meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+ <meta name "description" content="WebHelp 2002">\r
+</head>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" >\r
+<!--\r
+if (!window.gbWhVer||!window.gbWhUtil||!window.gbWhMsg)\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+\r
+<script type="text/javascript" language="javascript" src="whstub.js"></script>\r
+<script language="javascript">\r
+<!--\r
+var nWebhelpNavPaneMode = 1;                   //1: DHTML 2:Applet 3:PureHTML 4:NoframeAt all\r
+var strPaneDHTML  = "whskin_pdhtml.htm";               //whd_nvp10.htm  if tab enabled, whnframe.htm if tab disabled.\r
+var strPaneApplet = "whskin_papplet.htm";\r
+var strPaneList   = "whskin_plist.htm";\r
+var bNoApplet  = false;\r
+\r
+var strPane = "";\r
+\r
+var nViewFrameType = nWebhelpNavPaneMode;\r
+\r
+if (!window.gAgent)\r
+{\r
+       // low end browser, we don't even try to determine it.\r
+       document.location = "whnjs.htm";\r
+}\r
+else\r
+{\r
+       if (!gbNav4 && !gbIE4)                          \r
+               document.location = "whnjs.htm";\r
+       if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))\r
+               document.location = "whnjs.htm";\r
+       if (gbMac && gbIE4 && !gbIE5)           \r
+               document.location = "whnjs.htm";\r
+       //figure out which mode is the best\r
+       if ((nWebhelpNavPaneMode == 1) ||\r
+               (nWebhelpNavPaneMode == 2))\r
+       {\r
+               var gbDHTML = (nWebhelpNavPaneMode == 1);\r
+               if (nWebhelpNavPaneMode == 2)                                                           nViewFrameType = 2;\r
+               if (gbNav4)                                                                                             nViewFrameType = 2;\r
+               if (gbNav4 && (gnVerMinor < 4.1))                                                       nViewFrameType = 3;\r
+               if (gbNav4 && (gnVerMinor == 4.6))                                                      nViewFrameType = 3;\r
+               if (gbIE4 && gbDHTML)                                                                           nViewFrameType = 1;\r
+               if (gbIE4 && gbSunOS && nWebhelpNavPaneMode == 2)                       nViewFrameType = 3;\r
+               if (gbNav6 && gbDHTML)                                                                          nViewFrameType = 1;\r
+               if (gbNav6 && !gbNav61 && nWebhelpNavPaneMode == 2)                     nViewFrameType = 3;\r
+               if (gbMac)                                                                                                      nViewFrameType = 3;\r
+               if ((bNoApplet) && (nViewFrameType == 2))                                       nViewFrameType = 3;\r
+               if (gbOpera)                                                                                            nViewFrameType = 3;\r
+       }\r
+}\r
+\r
+var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));\r
+//The colordepth of the 16 color on Windows is 1. \r
+if ((gbWindows) && (gbNav4) && (window.screen) && (window.screen.colorDepth <= 4))\r
+{\r
+   alert("WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors.");\r
+   nViewFrameType = 3;\r
+}\r
+\r
+//figure out which one is navpane\r
+// ReplaceMark:nViewFrameType = 1\r
+if (nViewFrameType == 1)\r
+{\r
+       if (gbNav4 && !gbNav6)\r
+               strPane = strPaneList;\r
+       else\r
+               strPane = strPaneDHTML;\r
+}\r
+else if (nViewFrameType == 2)\r
+       strPane = strPaneApplet;\r
+else\r
+       strPane = strPaneList;\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="javascript" src="whstart.js"></script>\r
+<script type="text/javascript" language="javascript">\r
+<!--\r
+if (!gbIE4 && !gbNav4)\r
+       document.location = "whnjs.htm";\r
+\r
+function CMRAgent( strID, strURL, strLabel, strFrameAttr )\r
+{\r
+  this.m_strID = strID;\r
+  this.m_strURL = strURL;\r
+  this.m_strLabel = strLabel;\r
+  this.m_strFrameAttr = strFrameAttr;\r
+}\r
+\r
+function CMRServer()\r
+{\r
+  this.m_strVersion;\r
+  this.m_strDefAgent;\r
+  this.m_strAgentList;\r
+  this.m_bTrial;\r
+  this.m_bExpired;\r
+  this.m_bSinglePane;\r
+  this.m_strProduct;\r
+  this.m_strWindow;\r
+  this.m_strProject;\r
+  this.m_strContextID;\r
+  this.m_strCaption; \r
+  this.m_strURLSkinFile;\r
+  this.m_strURLResource;\r
+  this.m_strURLLogoImg;\r
+  this.m_strURLTopic;\r
+  this.m_strURLBase;\r
+  this.m_bShowSync;\r
+  this.m_bShowBrowseSequences;\r
+  this.m_bShowSearchInput;\r
+  this.m_cAgents = new Array;\r
+}\r
+var cMRServer = new CMRServer;\r
+// GetServerInfo\r
+// Registry the agent array handled by webhelp\r
+// ReplaceMark:MRServer.strServerData\r
+//-->\r
+</script>\r
+\r
+<script type="text/javascript" language="javascript">\r
+<!--\r
+var strHTML = "<frameset rows=\"32,*\" hostof=\"parent:toolbar!startpage:yes\" frameborder=\"no\" border=\"0\"><frame src=\"whskin_tbars.htm\" id=\"toolbar\" frameborder=\"no\" border=\"0\" scrolling=\"no\" noresize marginheight=\"0\" marginwidth=\"0\" title=\"Toolbar\"></frame><frame src=\"whskin_frmset01.htm\"  frameborder=\"yes\" border=\"1\" scrolling=\"auto\" marginheight=\"0\" marginwidth=\"0\"></frame></frameset>";\r
+document.write(strHTML);\r
+//-->\r
+</script>\r
+\r
+<frameset cols="100%,*" frameborder=no border=0>\r
+  <frame src="whnjs.htm">\r
+  <frame src="whskin_blank.htm" noresize>\r
+</frameset>\r
+\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/visu_csh.html b/doc/salome/gui/VISU/visu_csh.html
new file mode 100755 (executable)
index 0000000..8ef91be
--- /dev/null
@@ -0,0 +1,100 @@
+<html>\r
+<head>\r
+<title>VISU refrence manual</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<script language="javascript" src="whutils.js"></script>\r
+<script language="javascript">\r
+<!--\r
+var gCSHFileName   = "whc_data.htm";\r
+var gCSHSuffixName1 = "_csh.html";\r
+var gCSHSuffixName2 = "_csh.htm";\r
+//-->\r
+</script>\r
+<script language="javascript">\r
+<!--\r
+gCSHFileName="cshdat_webhelp.htm";\r
+//-->\r
+</script>\r
+<script language="javascript">\r
+<!--\r
+var gasProj = new Array();\r
+gasProj[0] = _getPath(document.location.href);\r
+var gCurrent = 0;\r
+\r
+function addProject(strProj)\r
+{\r
+       var len  = gasProj.length;\r
+       var strPPath = _getFullPath(_getPath(document.location.href), strProj);\r
+       var bFound = false;\r
+       for (var i = 0; i < len; i ++)\r
+       {\r
+               if (isSamePath(gasProj[i], strPPath))\r
+               {\r
+                       bFound = true;\r
+                       break;\r
+               }\r
+       }\r
+       if (!bFound)\r
+               gasProj[len] = strPPath;        \r
+}\r
+\r
+function isSamePath(strPath1, strPath2)\r
+{\r
+       return strPath1.toLowerCase() == strPath2.toLowerCase();\r
+}\r
+\r
+function goNext()\r
+{\r
+       gCurrent ++;\r
+       var len = gasProj.length;\r
+       if (gCurrent >= len)\r
+               return getHomePage()\r
+       else\r
+               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;\r
+       return "";\r
+}\r
+\r
+function getRelHomePage(strLocation)\r
+{\r
+       var strCurPPath = _getPath(strLocation);\r
+       var strOriPPath = _getPath(getHomePage());\r
+       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);\r
+       var strURL = getHomePage() + "#" + strRelPath;\r
+       return strURL;\r
+}\r
+\r
+function getHomePage()\r
+{\r
+       var strHomePage;\r
+       var strTmp = location.toString();\r
+       var nPos = strTmp.indexOf("#");\r
+       if (nPos != -1)\r
+       {\r
+          strHomePage = strTmp.substring(0, nPos);\r
+       }\r
+       else\r
+       {\r
+          strHomePage = strTmp;\r
+       }\r
+       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);\r
+       var nPos = strHomePage.indexOf(gCSHSuffixName2);\r
+       if (nPos != -1)\r
+       {\r
+          strHomePage = strHomePage.substring(0,nPos);\r
+          if (nPos1 != -1)\r
+            strHomePage += ".html";\r
+          else\r
+            strHomePage += ".htm";\r
+       }\r
+       return strHomePage;\r
+}\r
+//-->\r
+</script>\r
+</head>\r
+<frameset rows="1,*">\r
+<frame name="dumb" src="about:blank"></frame>\r
+<frame name="csh" src="cshdat_webhelp.htm"></frame>            \r
+</frameset>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/visu_rhc.html b/doc/salome/gui/VISU/visu_rhc.html
new file mode 100755 (executable)
index 0000000..2f06951
--- /dev/null
@@ -0,0 +1,100 @@
+<html>\r
+<head>\r
+<title>VISU refrence manual</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<script language="javascript" src="whutils.js"></script>\r
+<script language="javascript">\r
+<!--\r
+var gCSHFileName   = "whc_data.htm";\r
+var gCSHSuffixName1 = "_rhc.html";\r
+var gCSHSuffixName2 = "_rhc.htm";\r
+//-->\r
+</script>\r
+<script language="javascript">\r
+<!--\r
+gCSHFileName="cshdat_robohelp.htm";\r
+//-->\r
+</script>\r
+<script language="javascript">\r
+<!--\r
+var gasProj = new Array();\r
+gasProj[0] = _getPath(document.location.href);\r
+var gCurrent = 0;\r
+\r
+function addProject(strProj)\r
+{\r
+       var len  = gasProj.length;\r
+       var strPPath = _getFullPath(_getPath(document.location.href), strProj);\r
+       var bFound = false;\r
+       for (var i = 0; i < len; i ++)\r
+       {\r
+               if (isSamePath(gasProj[i], strPPath))\r
+               {\r
+                       bFound = true;\r
+                       break;\r
+               }\r
+       }\r
+       if (!bFound)\r
+               gasProj[len] = strPPath;        \r
+}\r
+\r
+function isSamePath(strPath1, strPath2)\r
+{\r
+       return strPath1.toLowerCase() == strPath2.toLowerCase();\r
+}\r
+\r
+function goNext()\r
+{\r
+       gCurrent ++;\r
+       var len = gasProj.length;\r
+       if (gCurrent >= len)\r
+               return getHomePage()\r
+       else\r
+               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;\r
+       return "";\r
+}\r
+\r
+function getRelHomePage(strLocation)\r
+{\r
+       var strCurPPath = _getPath(strLocation);\r
+       var strOriPPath = _getPath(getHomePage());\r
+       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);\r
+       var strURL = getHomePage() + "#" + strRelPath;\r
+       return strURL;\r
+}\r
+\r
+function getHomePage()\r
+{\r
+       var strHomePage;\r
+       var strTmp = location.toString();\r
+       var nPos = strTmp.indexOf("#");\r
+       if (nPos != -1)\r
+       {\r
+          strHomePage = strTmp.substring(0, nPos);\r
+       }\r
+       else\r
+       {\r
+          strHomePage = strTmp;\r
+       }\r
+       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);\r
+       var nPos = strHomePage.indexOf(gCSHSuffixName2);\r
+       if (nPos != -1)\r
+       {\r
+          strHomePage = strHomePage.substring(0,nPos);\r
+          if (nPos1 != -1)\r
+            strHomePage += ".html";\r
+          else\r
+            strHomePage += ".htm";\r
+       }\r
+       return strHomePage;\r
+}\r
+//-->\r
+</script>\r
+</head>\r
+<frameset rows="1,*">\r
+<frame name="dumb" src="about:blank"></frame>\r
+<frame name="csh" src="cshdat_robohelp.htm"></frame>           \r
+</frameset>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/webhelp.cab b/doc/salome/gui/VISU/webhelp.cab
new file mode 100755 (executable)
index 0000000..1458608
Binary files /dev/null and b/doc/salome/gui/VISU/webhelp.cab differ
diff --git a/doc/salome/gui/VISU/webhelp.jar b/doc/salome/gui/VISU/webhelp.jar
new file mode 100755 (executable)
index 0000000..d985cac
Binary files /dev/null and b/doc/salome/gui/VISU/webhelp.jar differ
diff --git a/doc/salome/gui/VISU/whestart.ico b/doc/salome/gui/VISU/whestart.ico
new file mode 100755 (executable)
index 0000000..110f183
Binary files /dev/null and b/doc/salome/gui/VISU/whestart.ico differ
diff --git a/doc/salome/gui/VISU/whfbody.htm b/doc/salome/gui/VISU/whfbody.htm
new file mode 100755 (executable)
index 0000000..300d23b
--- /dev/null
@@ -0,0 +1,37 @@
+<html>\r
+<head>\r
+<title>Search Result</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whmozemu.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whlang.js"></script>\r
+<script language="javascript1.2" src="whfhost.js"></script>\r
+<script language="javascript1.2">\r
+<!--\r
+if(window.gbWhFHost)\r
+{\r
+       setBackgroundcolor("White"); \r
+       \r
+       setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
+       setFont("Error", "Tahoma","8pt","Black","Normal","Normal","none");\r
+       setFont("Hover", "Tahoma","8pt","Navy","Normal","Normal","underline");\r
+       setActiveBgColor("Silver");\r
+       \r
+       \r
+       FtsWriteClassStyle();\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+</head>\r
+<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" scroll="auto" bgcolor="white">\r
+</body>\r
+</html>\r
+\r
diff --git a/doc/salome/gui/VISU/whfdhtml.htm b/doc/salome/gui/VISU/whfdhtml.htm
new file mode 100755 (executable)
index 0000000..ec6c521
--- /dev/null
@@ -0,0 +1,30 @@
+<html>\r
+<head>\r
+<title>Search Frame</TITLE>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</head>\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script LANGUAGE="javascript1.2">\r
+<!--\r
+var gbIndexLayerInit = false;\r
+var strWrite="";\r
+if (window.gbWhVer&&window.gbWhProxy&&window.gbWhMsg)\r
+{\r
+       if (gbMac)\r
+               strWrite="<FRAMESET ROWS='45,100%' framespacing=0  frameborder=0>";\r
+       else\r
+               strWrite="<FRAMESET ROWS='60,100%' framespacing=0  frameborder=0>";\r
+       strWrite +="<FRAME SRC='whfform.htm' title='search form frame' name='ftsform' noresize='yes' scrolling='no'>";\r
+       strWrite +="<FRAME SRC='whfbody.htm' title='search result frame' name='ftsbody' scrolling='yes'>";\r
+       strWrite +="</FRAMESET>";\r
+       document.write(strWrite);\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+</html>\r
diff --git a/doc/salome/gui/VISU/whfform.htm b/doc/salome/gui/VISU/whfform.htm
new file mode 100755 (executable)
index 0000000..e40b10b
--- /dev/null
@@ -0,0 +1,136 @@
+<html>\r
+<head>\r
+<title>Search Form</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</head>\r
+<style>\r
+<!--\r
+body {margin:0;}\r
+-->\r
+</style>\r
+<body bgcolor="#c0c0c0">\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2" src="whform.js"></script>\r
+<script language="javascript1.2">\r
+<!--\r
+var gstrInput = "";\r
+function ftsLookup(bCR)\r
+{\r
+       if (bCR)\r
+       {\r
+               var strInput = document.FtsInputForm.keywordField.value.toUpperCase();\r
+               if (strInput != "") {\r
+                       var oMsg = new whMessage(WH_MSG_SEARCHFTSKEY, this, 1, strInput);\r
+                       if (!SendMessage(oMsg))\r
+                       {\r
+                               gstrInput = strInput;\r
+                       }\r
+                       else\r
+                               gstrInput = "";\r
+               }\r
+\r
+               if (gbMac) {\r
+                       document.FtsInputForm.keywordField.focus();\r
+               }\r
+       }\r
+       return;\r
+}\r
+\r
+function beforeInit()\r
+{\r
+       var oParam = new Object();\r
+       oParam.sValue = "";\r
+       var oMsg = new whMessage(WH_MSG_GETSEARCHS, this, 1, oParam);\r
+       if (SendMessage(oMsg))\r
+       {\r
+               if (oParam.sValue != "" && oParam.sValue != "- Search -")\r
+               {\r
+                       document.FtsInputForm.keywordField.value = oParam.sValue;\r
+                       gfunLookUp(true);\r
+               }\r
+       }\r
+       init(); \r
+}\r
+\r
+function window_unload()\r
+{\r
+       UnRegisterListener2(this, WH_MSG_SHOWTOC);\r
+       UnRegisterListener2(this, WH_MSG_SHOWIDX);\r
+       UnRegisterListener2(this, WH_MSG_SHOWFTS);\r
+       UnRegisterListener2(this, WH_MSG_SHOWGLO);\r
+       UnRegisterListener2(this, WH_MSG_SEARCHTHIS);\r
+       UnRegisterListener2(this, WH_MSG_BACKUPSEARCH);\r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       if (oMsg.nMessageId == WH_MSG_SHOWFTS)\r
+       {\r
+               document.FtsInputForm.keywordField.focus();\r
+       }\r
+       else if (oMsg.nMessageId == WH_MSG_SHOWIDX ||\r
+               oMsg.nMessageId == WH_MSG_SHOWTOC || \r
+               oMsg.nMessageId == WH_MSG_SHOWGLO)\r
+       {\r
+               document.FtsInputForm.keywordField.blur();\r
+       }\r
+       else if (oMsg.nMessageId == WH_MSG_SEARCHTHIS)\r
+       {\r
+               if (oMsg.oParam != "- Search -")\r
+               {\r
+                       document.FtsInputForm.keywordField.value = oMsg.oParam;\r
+                       gfunLookUp(true);\r
+               }\r
+       }\r
+       else if (oMsg.nMessageId == WH_MSG_BACKUPSEARCH)\r
+       {\r
+               if (gstrInput)\r
+               {\r
+                       oMsg.oParam = gstrInput;\r
+                       gstrInput = "";\r
+                       return false;\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+if (window.gbWhForm)\r
+{\r
+       RegisterListener2(this, WH_MSG_SHOWTOC);\r
+       RegisterListener2(this, WH_MSG_SHOWIDX);\r
+       RegisterListener2(this, WH_MSG_SHOWFTS);\r
+       RegisterListener2(this, WH_MSG_SHOWGLO);\r
+       RegisterListener2(this, WH_MSG_SEARCHTHIS);\r
+       RegisterListener2(this, WH_MSG_BACKUPSEARCH);\r
+       gfunLookUp = ftsLookup;\r
+       gfunInit = null;\r
+       gstrFormName = "FtsInputForm"\r
+       gsTitle = "Type in the word(s) to search for:";\r
+       gsTitle = "Type in the word(s) to search for:";\r
+       setGoImage1("wht_go.gif");\r
+       setBackgroundcolor("White");\r
+       \r
+       setBtnType("image");\r
+       \r
+       \r
+       \r
+       setGoText("Go");\r
+       setFont("Title", "Tahoma","8pt","Navy","Normal","Normal","none");\r
+       \r
+       \r
+       document.write(getFormHTML());\r
+       writeFormStyle();\r
+       window.onload = beforeInit;\r
+       window.onunload=window_unload;\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whfhost.js b/doc/salome/gui/VISU/whfhost.js
new file mode 100755 (executable)
index 0000000..a30564d
--- /dev/null
@@ -0,0 +1,916 @@
+var gsSK2=null;\r
+var gsSK=null;\r
+var gsFtsBreakChars="\t\r\n\"\\ .,!@#$%^&*()~'`:;<>?/{}[]|+-=\x85\x92\x93\x94\x95\x96\x97\x99\xA9\xAE\xB7";\r
+var gnCLF=0;\r
+var gsHelpCannotSearch="Cannot search for that phrase.";\r
+var gsNoTopics="No Topics Found.";\r
+var gsLoadingDivID="LoadingDiv";\r
+var gsLoadingMsg="Loading data, please wait...";\r
+var gsSearchMsg="Searching...";\r
+var gsResultDivID="ResultDiv";\r
+var gaaFCD=new Array();\r
+var gaaFTCD=new Array();\r
+var goCF=null;\r
+var goCTF=null;\r
+var gaTI=null;\r
+var gnCurrentOp=0;\r
+var gbNot=false;\r
+var gbReady=false;\r
+var gnLoadFts=1;\r
+var gnCacheLimits=5;\r
+var gaCCD=new Array();\r
+var gbXML=false;\r
+var gaData=new Array();\r
+var gsBgColor="#ffffff";\r
+var gsBgImage="";\r
+var gsMargin="0pt";\r
+var gsIndent="0pt";\r
+var gsCheckKey=null;\r
+var gnIndexNum=0;\r
+var gaFtsContentsCon=null;\r
+var gaTopicCheckInfo=null;\r
+var gnTopicCheck=0;\r
+var goFont=null;\r
+var goErrFont=null;\r
+var goHoverFont=null;\r
+var gsABgColor="#cccccc";\r
+var gbWhFHost=false;\r
+\r
+function setBackground(sBgImage)\r
+{\r
+       gsBgImage=sBgImage;\r
+}\r
+\r
+function setBackgroundcolor(sBgColor)\r
+{\r
+       gsBgColor=sBgColor;\r
+}\r
+\r
+function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
+{\r
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
+       if(sType=="Normal")\r
+               goFont=vFont;\r
+       else if(sType=="Error")\r
+               goErrFont=vFont;\r
+       else if(sType=="Hover")\r
+               goHoverFont=vFont;\r
+}\r
+\r
+function setActiveBgColor(sBgColor)\r
+{\r
+       gsABgColor=sBgColor;\r
+}\r
+\r
+function setMargin(sMargin)\r
+{\r
+       gsMargin=sMargin;\r
+}\r
+\r
+function setIndent(sIndent)\r
+{\r
+       gsIndent=sIndent;\r
+}\r
+\r
+function updateCache(oCF)\r
+{\r
+       var len=gaCCD.length;\r
+       if(len<gnCacheLimits*gnCLF)\r
+               gaCCD[len]=oCF;\r
+       else{\r
+               gaCCD[0].aTopics=null;\r
+               gaCCD[0].aFtsKeys=null;\r
+               removeItemFromArray(gaCCD,0);\r
+               gaCCD[len-1]=oCF;\r
+       }\r
+}\r
+\r
+function addFtsInfo(sPPath,sDPath,sFtsFile)\r
+{\r
+       gaData[gaData.length]=new ftsInfo(sPPath,sDPath,sFtsFile);\r
+}\r
+\r
+function putDataXML(xmlDoc,sDocPath)\r
+{\r
+       if(gnLoadFts==1)\r
+       {\r
+               var node=xmlDoc.lastChild;\r
+               if(node)\r
+               {\r
+                       var oChild=node.firstChild;\r
+                       var aFCD=new Array();\r
+                       var aFTCD=new Array();\r
+                       while(oChild)\r
+                       {\r
+                               if(oChild.nodeName=="chunkinfo")\r
+                               {\r
+                                       var sURL=oChild.getAttribute("url");\r
+                                       var sFirst=oChild.getAttribute("first");\r
+                                       var sLast=oChild.getAttribute("last");\r
+                                       if(sURL&&sFirst&&sLast)\r
+                                       {\r
+                                               item=new Object();\r
+                                               item.sStartKey=sFirst;\r
+                                               item.sEndKey=sLast;\r
+                                               item.sFileName=sURL;\r
+                                               aFCD[aFCD.length]=item;\r
+                                       }\r
+                               }\r
+                               else if(oChild.nodeName=="tchunkinfo")\r
+                               {\r
+                                       var sURL=oChild.getAttribute("url");\r
+                                       var nB=parseInt(oChild.getAttribute("first"));\r
+                                       var nE=parseInt(oChild.getAttribute("last"));\r
+                                       if(sURL&&sFirst&&sLast)\r
+                                       {\r
+                                               item=new Object();\r
+                                               item.nBegin=nB;\r
+                                               item.nEnd=nE;\r
+                                               item.sFileName=sURL;\r
+                                               aFTCD[aFTCD.length]=item;\r
+                                       }\r
+\r
+                               }\r
+                               oChild=oChild.nextSibling;\r
+                       }\r
+                       ftsReady(aFCD,aFTCD);\r
+               }\r
+       }\r
+       else if(gnLoadFts==3)\r
+       {\r
+               var node=xmlDoc.lastChild;\r
+               if(node)\r
+               {\r
+                       var oChild=node.firstChild;\r
+                       var aTopics=new Array();\r
+                       while(oChild)\r
+                       {\r
+                               if(oChild.nodeName=="topic")\r
+                               {\r
+                                       var name=oChild.getAttribute("name");\r
+                                       var sURL=oChild.getAttribute("url");\r
+                                       if(name&&name.length>0&&sURL)\r
+                                       {\r
+                                               var topic=new Object();\r
+                                               topic.sTopicTitle=name;\r
+                                               topic.sTopicURL=sURL;\r
+                                               aTopics[aTopics.length]=topic;\r
+                                       }\r
+                               }\r
+                               oChild=oChild.nextSibling;\r
+                       }\r
+                       putFtsTData(aTopics);\r
+               }\r
+       }\r
+       else if(gnLoadFts==2)\r
+       {\r
+               var node=xmlDoc.lastChild;\r
+               if(node)\r
+               {\r
+                       var oChild=node.firstChild;\r
+                       var aFtsContents=new Array();\r
+                       while(oChild)\r
+                       {\r
+                               if(oChild.nodeName=="key")\r
+                               {\r
+                                       var name=oChild.getAttribute("name");\r
+                                       if(name&&name.length>0)\r
+                                       {\r
+                                               var item=new Object();\r
+                                               item.sItemName=name;\r
+                                               aFtsContents[aFtsContents.length]=item;\r
+                                               var oChildChild=oChild.firstChild;\r
+                                               while(oChildChild)\r
+                                               {\r
+                                                       if(oChildChild.nodeName=="#text")\r
+                                                       {\r
+                                                               var sIDs=oChildChild.nodeValue;\r
+                                                               if(sIDs)\r
+                                                               {\r
+                                                                       var nBPos=0;\r
+                                                                       do\r
+                                                                       {\r
+                                                                               var nPos=sIDs.indexOf(",",nBPos);\r
+                                                                               var sID=null;\r
+                                                                               if(nPos!=-1)\r
+                                                                                       sID=sIDs.substring(nBPos,nPos);\r
+                                                                               else\r
+                                                                                       sID=sIDs.substring(nBPos);\r
+\r
+                                                                               if(sID)\r
+                                                                               {\r
+                                                                                       var id=parseInt(sID);\r
+                                                                                       if(!isNaN(id))\r
+                                                                                       {\r
+                                                                                               if(!item.aTopics)\r
+                                                                                                       item.aTopics=new Array();\r
+                                                                                               item.aTopics[item.aTopics.length]=id;\r
+                                                                                       }\r
+                                                                               }\r
+                                                                               nBPos=nPos+1;\r
+                                                                       }while(nBPos!=0&&nBPos<sIDs.length);\r
+                                                               }\r
+                                                       }\r
+                                                       oChildChild=oChildChild.nextSibling;\r
+                                               }\r
+                                       }\r
+                               }\r
+                               oChild=oChild.nextSibling;\r
+                       }\r
+                       putFtsWData(aFtsContents);\r
+               }\r
+       }\r
+}\r
+\r
+function ftsInfo(sPPath,sDPath,sFtsFile)\r
+{\r
+       this.sPPath=sPPath;\r
+       this.sDPath=sDPath;\r
+       this.sFtsFile=sFtsFile;\r
+}\r
+\r
+function window_OnLoad()\r
+{\r
+       if(gsBgImage&&gsBgImage.length>0)\r
+       {\r
+               document.body.background=gsBgImage;\r
+       }\r
+       if(gsBgColor&&gsBgColor.length>0)\r
+       {\r
+               document.body.bgColor=gsBgColor;\r
+       }\r
+       writeResultDiv();\r
+       loadFts();\r
+       var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function writeResultDiv()\r
+{\r
+       var sHTML="<div id=\""+gsResultDivID+"\" style=\"POSITION:absolute;\"></div>";\r
+       document.body.insertAdjacentHTML("beforeEnd",sHTML);\r
+}\r
+\r
+function loadFts()\r
+{\r
+       if(!gbReady)\r
+       {\r
+               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
+               if(SendMessage(oResMsg)&&oResMsg.oParam)\r
+               {\r
+                       gbReady=true;\r
+                       var oProj=oResMsg.oParam;\r
+                       var aProj=oProj.aProj;\r
+                       gbXML=oProj.bXML;\r
+                       if(aProj.length>0)\r
+                       {\r
+                               var sLangId=aProj[0].sLangId;\r
+                               for(var i=0;i<aProj.length;i++)\r
+                               {\r
+                                       if(aProj[i].sFts!=null&&aProj[i].sFts!=""&&aProj[i].sLangId==sLangId)\r
+                                       {\r
+                                               addFtsInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sFts);\r
+                                       }\r
+                               }\r
+                       }\r
+                       loadFD();\r
+\r
+               }                               \r
+       }\r
+}\r
+\r
+function loadFD()\r
+{\r
+       if(gnCLF<gaData.length)\r
+       {\r
+               gnLoadFts=1;\r
+               loadData2(gaData[gnCLF].sPPath+gaData[gnCLF].sDPath+gaData[gnCLF].sFtsFile);\r
+       }\r
+       else \r
+       {\r
+               var oMsg = new whMessage(WH_MSG_BACKUPSEARCH, this, 1, null);\r
+               if (SendMessage(oMsg))\r
+               {\r
+                       if (oMsg.oParam)\r
+                       {\r
+                               gsSK=oMsg.oParam.toLowerCase();\r
+                               findFTSKey();\r
+                       }\r
+               }\r
+               RegisterListener2(this, WH_MSG_SEARCHFTSKEY);\r
+       }\r
+}\r
+\r
+function loadData2(sFile)\r
+{\r
+       if(gbXML)\r
+               loadDataXML(sFile);\r
+       else\r
+               loadData(sFile);\r
+}\r
+\r
+function findFTSKey()\r
+{\r
+       gaTI=new Array();\r
+       gnCurrentOp=0;\r
+       gbNot=false;\r
+       displayMsg(gsSearchMsg);\r
+       if(gsSK!="")\r
+               findOneKey();\r
+}\r
+\r
+function findOneKey()\r
+{\r
+       if(gsSK && gsSK!="")\r
+       {\r
+               var sInput=gsSK;\r
+               var sCW="";\r
+               var nS=-1;\r
+               var nSep=-1;\r
+               for(var nChar=0;nChar<gsFtsBreakChars.length;nChar++){\r
+                       var nFound=sInput.indexOf(gsFtsBreakChars.charAt(nChar));\r
+                       if((nFound!=-1)&&((nS==-1)||(nFound<nS))){\r
+                               nS=nFound;\r
+                               nSep=nChar;\r
+                       }\r
+               }\r
+               if(nS==-1){\r
+                       sCW=sInput;\r
+                       sInput="";\r
+               }else{\r
+                       sCW=sInput.substring(0,nS);\r
+                       sInput=sInput.substring(nS+1);\r
+               }\r
+\r
+               gsSK=sInput;\r
+               \r
+               if((sCW=="or")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="|"))){\r
+                       gnCurrentOp=0;\r
+                       gbNot=false;\r
+               }else if((sCW=="and")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="&"))){\r
+                       gnCurrentOp=1;\r
+                       gbNot=false;\r
+               }else if((sCW=="not")||\r
+                       ((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="~"))){\r
+                       gbNot=!gbNot;\r
+               }else if(sCW!=""&&!IsStopWord(sCW,gaFtsStop)){\r
+                       var sCurrentStem=GetStem(sCW);\r
+                       gsCW=sCurrentStem;\r
+                       ftsFindKeyword();\r
+                       return;\r
+               }\r
+               findOneKey();\r
+               return;\r
+       }\r
+       else{\r
+               displayTopics();\r
+               checkAgain();\r
+       }\r
+}\r
+\r
+function checkAgain()\r
+{\r
+       gsSK=gsSK2;\r
+       gsSK2=null;\r
+       if(gsSK!=null)\r
+               setTimeout("findFTSKey();",1);\r
+}\r
+\r
+function displayTopics()\r
+{\r
+       var sHTML="";\r
+       var sLine="";\r
+       for(var i=0;i<gaTI.length;i++){\r
+               sLine+="<dt><nobr><a href='"+_textToHtml(gaTI[i].sTopicURL)+"'>"+_textToHtml(gaTI[i].sTopicTitle)+"</a></nobr></dt>";\r
+               if(i>>4<<4==i)\r
+               {\r
+                       sHTML+=sLine;\r
+                       sLine="";\r
+               }\r
+       }\r
+       if(sLine.length>0)\r
+               sHTML+=sLine;\r
+\r
+       if(sHTML.length==0)\r
+               sHTML="<P>"+gsNoTopics+"</P>"\r
+       else\r
+               sHTML="<dl>"+sHTML+"</dl>";\r
+\r
+       var resultDiv=getElement(gsResultDivID);\r
+       if(resultDiv)\r
+               resultDiv.innerHTML=sHTML;\r
+}\r
+\r
+function displayMsg(sErrorMsg)\r
+{\r
+       var sHTML="<P>"+sErrorMsg+"</P>";\r
+\r
+       var resultDiv=getElement(gsResultDivID);\r
+       if(resultDiv)\r
+               resultDiv.innerHTML=sHTML;\r
+}\r
+\r
+function ftsFindKeyword()\r
+{\r
+       var sKey=gsCW;\r
+       var bNeedLoad=false;\r
+       var aFtsContentsCon=null;\r
+       var s=0;\r
+       if(sKey==null) return;\r
+       if(!gsCheckKey||sKey!=gsCheckKey||gnIndexNum==0)\r
+       {\r
+               aFtsContentsCon=new Array();\r
+               gnCheck=0;\r
+               gsCheckKey=sKey;\r
+               gnTopicCheck=0;\r
+               gaTopicCheckInfo=null;\r
+       }\r
+       else{\r
+               s=gnIndexNum;\r
+               aFtsContentsCon=gaFtsContentsCon;\r
+       }\r
+       for(var i=gnCheck;i<gaaFCD.length;i++)\r
+       {\r
+               var oCF=getChunkedFts(i,sKey);\r
+               if(oCF)\r
+               {\r
+                       if(!oCF.aFtsKeys&&oCF.sFileName!=null)\r
+                       {\r
+                               bNeedLoad=true;\r
+                               oCF.nProjId=i;\r
+                               goCF=oCF;\r
+                               gnIndexNum=s;\r
+                               gnCheck=i;\r
+                               gaFtsContentsCon=aFtsContentsCon;\r
+                               gnLoadFts=2;\r
+                               beginLoading();\r
+                               loadData2(gaData[i].sPPath+gaData[i].sDPath+oCF.sFileName);\r
+                               break;\r
+                       }\r
+                       else{\r
+                               aFtsContentsCon[s++]=oCF;\r
+                       }\r
+               }\r
+       }\r
+       if(!bNeedLoad)\r
+       {\r
+               var aTI=gaTopicCheckInfo;\r
+               for(var m=gnTopicCheck;m<aFtsContentsCon.length;m++)\r
+               {\r
+                       var aTIPart=getTopics(aFtsContentsCon[m],sKey);\r
+                       if(aTIPart==null)\r
+                       {\r
+                               gnCheck=gaaFCD.length;\r
+                               gnTopicCheck=m;\r
+                               gaTopicCheckInfo=aTI;\r
+                               gaFtsContentsCon=aFtsContentsCon;\r
+                               return;\r
+                       }\r
+                       if(m==0)\r
+                               aTI=aTIPart;\r
+                       else\r
+                               aTI=mergeTopics(aTI,aTIPart);\r
+               }\r
+               if(mergewithPreviousResult(aTI))\r
+                       findOneKey();\r
+               else\r
+                       checkAgain();\r
+       }\r
+}\r
+\r
+function mergewithPreviousResult(aTI)\r
+{\r
+       if(aTI!=null&&aTI.length!=0)\r
+       {\r
+               var nNumTopics=aTI.length;\r
+               if(gnCurrentOp==0){\r
+                       if(gbNot){\r
+                               displayMsg(gsHelpCannotSearch);\r
+                               return false;\r
+                       }else{\r
+                               var aLS,aSS;\r
+                               if(gaTI.length>=aTI.length)\r
+                               {\r
+                                       aLS=gaTI;\r
+                                       aSS=aTI;\r
+                               }\r
+                               else\r
+                               {\r
+                                       aLS=aTI;\r
+                                       aSS=gaTI;\r
+                               }\r
+                               var s=0;\r
+                               for(var i=0;i<aSS.length;i++)\r
+                               {\r
+                                       var bAlreadyThere=false;\r
+                                       for(var j=s;j<aLS.length;j++)\r
+                                       {\r
+                                               if(aSS[i].equalTo(aLS[j]))\r
+                                               {\r
+                                                       bAlreadyThere=true;\r
+                                                       s=j;\r
+                                                       break;\r
+                                               }\r
+                                       }\r
+                                       if(!bAlreadyThere)\r
+                                       {\r
+                                               insertTopic(aLS,aSS[i]);\r
+                                       }\r
+                               }\r
+                               gaTI=aLS;\r
+                       }\r
+               }else if(gnCurrentOp==1){\r
+                       if(gbNot){\r
+                               var s=0;\r
+                               for(var i=0;i<aTI.length;i++)\r
+                               {\r
+                                       for(var j=s;j<gaTI.length;j++)\r
+                                       {\r
+                                               if(aTI[i].equalTo(gaTI[j]))\r
+                                               {\r
+                                                       removeItemFromArray(gaTI,j);\r
+                                                       s=j;\r
+                                                       break;\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }else{\r
+                               var s=0;\r
+                               for(var i=0;i<gaTI.length;i++)\r
+                               {\r
+                                       var bFound=false;\r
+                                       for(var j=s;j<aTI.length;j++)\r
+                                       {\r
+                                               if(gaTI[i].equalTo(aTI[j]))\r
+                                               {\r
+                                                       bFound=true;\r
+                                                       s=j;\r
+                                               }\r
+                                       }\r
+                                       if(!bFound)\r
+                                       {\r
+                                               removeItemFromArray(gaTI,i);\r
+                                               i--;\r
+                                       }\r
+                               }                               \r
+                       }\r
+               }\r
+       }else{\r
+               if((gnCurrentOp==1)&&(!gbNot)){\r
+                       gaTI.length=0;\r
+               }else if((gnCurrentOp==0)&&(gbNot)){\r
+                       displayMsg(gsHelpCannotSearch);\r
+                       return false;\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+function insertTopic(aTI,oTI)\r
+{\r
+       var nB=0;\r
+       var nE=aTI.length-1;\r
+       if(nE>=0)\r
+       {\r
+               var nM;\r
+               var bFound=false;\r
+               do{\r
+                       nM=(nB+nE)>>1;\r
+                       if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)>0)\r
+                               nE=nM-1;\r
+                       else if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)\r
+                               nB=nM+1;\r
+                       else\r
+                       {\r
+                               bFound=true;\r
+                               break;\r
+                       }\r
+               }while(nB<=nE);\r
+               if(bFound)\r
+                       insertItemIntoArray(aTI,nM,oTI);\r
+               else\r
+               {\r
+                       if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)\r
+                               insertItemIntoArray(aTI,nM+1,oTI);\r
+                       else\r
+                               insertItemIntoArray(aTI,nM,oTI);\r
+               }\r
+       }\r
+       else\r
+               aTI[0]=oTI;\r
+}\r
+\r
+function mergeTopics(aTI1,aTI2)\r
+{\r
+       var i1=0;\r
+       var i2=0;\r
+       var len1=aTI1.length;\r
+       var len2=aTI2.length;\r
+       var aTopicNew=new Array();\r
+       var i=0;\r
+       while(i1<len1||i2<len2)\r
+       {\r
+               if(i1<len1&&i2<len2)\r
+               {\r
+                       if(compare(aTI1[i1].sTopicTitle,aTI2[i2].sTopicTitle)<0)\r
+                               aTopicNew[i++]=aTI1[i1++];\r
+                       else\r
+                               aTopicNew[i++]=aTI2[i2++];\r
+               }\r
+               else if(i1<len1)\r
+                       aTopicNew[i++]=aTI1[i1++];\r
+               else if(i2<len2)\r
+                       aTopicNew[i++]=aTI2[i2++];\r
+       }\r
+       return aTopicNew;\r
+}\r
+\r
+function getTopics(oCF,sKey)\r
+{\r
+       var aTIPart=new Array();\r
+       if(oCF&&oCF.aFtsKeys)\r
+       {\r
+               var keys=oCF.aFtsKeys;\r
+               var nB=0;\r
+               var nE=keys.length-1;\r
+               var nM=-1;\r
+               var bFound=false;\r
+               do{\r
+                       nM=(nB+nE)>>1;\r
+                       if(compare(keys[nM].sItemName,sKey)>0)\r
+                               nE=nM-1;\r
+                       else if(compare(keys[nM].sItemName,sKey)<0)\r
+                               nB=nM+1;\r
+                       else{\r
+                               bFound=true;\r
+                               break;\r
+                       }\r
+               }while(nB<=nE);\r
+               if(bFound)\r
+               {\r
+                       if(keys[nM].aTopics)\r
+                       {\r
+                               for(var i=0;i<keys[nM].aTopics.length;i++)\r
+                               {\r
+                                       var oTC=getTopicChunk(gaaFTCD[oCF.nProjId],keys[nM].aTopics[i]);\r
+                                       if(oTC.aTopics)\r
+                                       {\r
+                                               aTIPart[aTIPart.length]=\r
+                                                       new topicInfo(oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicTitle,\r
+                                                               gaData[oCF.nProjId].sPPath+oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicURL);\r
+                                       }\r
+                                       else{\r
+                                               goCTF=oTC;\r
+                                               gnLoadFts=3;\r
+                                               beginLoading();\r
+                                               loadData2(gaData[oCF.nProjId].sPPath+gaData[oCF.nProjId].sDPath+oTC.sFileName);\r
+                                               return null;\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+       return aTIPart;\r
+}\r
+\r
+function getTopicChunk(aFTCD,nTopicId)\r
+{\r
+       if(aFTCD&&aFTCD.length)\r
+       {\r
+               var nB=0;\r
+               var nE=aFTCD.length-1;\r
+               var nM=-1;\r
+               var bFound=false;\r
+               do{\r
+                       nM=(nB+nE)>>1;\r
+                       if(aFTCD[nM].nBegin>nTopicId)\r
+                               nE=nM-1;\r
+                       else if(aFTCD[nM].nEnd<nTopicId)\r
+                               nB=nM+1;\r
+                       else{\r
+                               bFound=true;\r
+                               break;\r
+                       }\r
+               }while(nB<=nE);\r
+               if(bFound)\r
+                       return aFTCD[nM];\r
+       }\r
+       return null;\r
+}\r
+\r
+function endLoading()\r
+{\r
+       var oDiv=getElement(gsLoadingDivID);\r
+       if(oDiv)\r
+               oDiv.style.visibility="hidden";\r
+}\r
+\r
+function beginLoading()\r
+{\r
+       var oDiv=getElement(gsLoadingDivID);\r
+       if(!oDiv)\r
+       {\r
+               document.body.insertAdjacentHTML("afterBegin",writeLoadingDiv());\r
+               oDiv=getElement(gsLoadingDivID);\r
+       }\r
+       \r
+       if(oDiv)\r
+       {\r
+               oDiv.style.top=document.body.scrollTop;\r
+               oDiv.style.visibility="visible";\r
+       }\r
+}\r
+\r
+function writeLoadingDiv(nIIdx)\r
+{\r
+       return "<div id=\""+gsLoadingDivID+"\" style=\"position:absolute;top:0;left:0;z-index:600;visibility:hidden;padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";\r
+}\r
+\r
+function topicInfo(sTopicTitle,sTopicURL)\r
+{\r
+       this.sTopicTitle=sTopicTitle;\r
+       this.sTopicURL=sTopicURL;\r
+       this.equalTo=function(oTI)\r
+       {\r
+               return ((this.sTopicTitle==oTI.sTopicTitle)&&\r
+                       (this.sTopicURL==oTI.sTopicURL));\r
+       }\r
+}\r
+\r
+function getChunkedFts(nIndex,sKey)\r
+{\r
+       var oCF=null;\r
+       if(nIndex<gaaFCD.length)\r
+       {\r
+               var len=gaaFCD[nIndex].length;\r
+               if(len>0)\r
+               {\r
+                       var nB=0;\r
+                       var nE=len-1;\r
+                       var bFound=false;\r
+                       do{\r
+                               var nM=(nB+nE)>>1;\r
+                               if(compare(sKey,gaaFCD[nIndex][nM].sEndKey)>0)\r
+                               {\r
+                                       nB=nM+1;\r
+                               }\r
+                               else if(compare(sKey,gaaFCD[nIndex][nM].sStartKey)<0)\r
+                               {\r
+                                       nE=nM-1;\r
+                               }\r
+                               else{\r
+                                       bFound=true;\r
+                                       break;\r
+                               }\r
+                       }while(nE>=nB);\r
+                       if(bFound)\r
+                               oCF=gaaFCD[nIndex][nM];\r
+               }\r
+       }\r
+       return oCF;\r
+}\r
+\r
+function ftsReady(aFCD,aFTCD)\r
+{\r
+       endLoading();\r
+       gaaFTCD[gnCLF]=aFTCD;\r
+       gaaFCD[gnCLF++]=aFCD;\r
+       setTimeout("loadFD();",1);\r
+}\r
+\r
+function putFtsTData(aTopics)\r
+{\r
+       endLoading();\r
+       var oCTF=goCTF;\r
+       if(oCTF)\r
+       {\r
+               oCTF.aTopics=aTopics;\r
+               setTimeout("ftsFindKeyword();",1);\r
+       }\r
+}\r
+\r
+function putFtsWData(aFtsContents)\r
+{\r
+       endLoading();\r
+       var oCF=goCF;\r
+       if(oCF)\r
+       {\r
+               updateCache(oCF);\r
+               oCF.aFtsKeys=aFtsContents;\r
+               setTimeout("ftsFindKeyword();",1);\r
+       }\r
+}\r
+\r
+function IsStopWord(sCW,aFtsStopArray)\r
+{\r
+       var nStopArrayLen=aFtsStopArray.length;\r
+       var nB=0;\r
+       var nE=nStopArrayLen-1;\r
+       var nM=0;\r
+       var bFound=false;\r
+       var sStopWord="";\r
+       while(nB<=nE){\r
+               nM=(nB+nE);\r
+               nM>>=1;\r
+               sStopWord=aFtsStopArray[nM];\r
+               if(compare(sCW,sStopWord)>0){\r
+                       nB=(nB==nM)?nM+1:nM;\r
+               }else{\r
+                       if(compare(sCW,sStopWord)<0){\r
+                               nE=(nE==nM)?nM-1:nM;\r
+                       }else{\r
+                               bFound=true;\r
+                               break;\r
+                       }\r
+               }\r
+       }\r
+       return bFound;\r
+}\r
+\r
+function GetStem(szWord)\r
+{\r
+       if(gaFtsStem==null||gaFtsStem.length==0)return szWord;\r
+       var aStems=gaFtsStem;\r
+\r
+       var nStemPos=0;\r
+       var csStem="";\r
+       for(var iStem=0;iStem<aStems.length;iStem++){\r
+\r
+               if(aStems[iStem].length>=szWord.length-1)       break;\r
+               nStemPos=szWord.lastIndexOf(aStems[iStem]);\r
+               if(nStemPos>0){\r
+                       var cssub=szWord.substring(nStemPos);\r
+                       if(cssub==aStems[iStem]){\r
+                               csStem=szWord;\r
+                               if(szWord.charAt(nStemPos-2)==szWord.charAt(nStemPos-1)){\r
+                                       csStem=csStem.substring(0,nStemPos-1);\r
+                               }else{\r
+                                       csStem=csStem.substring(0,nStemPos);\r
+                               }\r
+                               return csStem;\r
+                       }\r
+               }\r
+       }\r
+       return szWord;\r
+}\r
+\r
+function FtsWriteClassStyle()\r
+{\r
+       var sStyle="<STYLE TYPE='text/css'>\n";\r
+       if (gsBgImage)\r
+               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
+       else\r
+               sStyle+="body {border-top:black 1px solid;}\n";\r
+       sStyle+="P {"+getFontStyle(goErrFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";\r
+       sStyle+="dl {"+getFontStyle(goFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";\r
+       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";\r
+       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";\r
+       sStyle+="A:active {background-color:"+gsABgColor+";}\n";\r
+       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";\r
+       sStyle+="</STYLE>";\r
+       document.write(sStyle);\r
+}\r
+\r
+function window_Unload()\r
+{\r
+       UnRegisterListener2(this,WH_MSG_PROJECTREADY);\r
+       UnRegisterListener2(this, WH_MSG_SEARCHFTSKEY);\r
+}\r
+\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       var nMsgId=oMsg.nMessageId;\r
+       if(nMsgId==WH_MSG_SEARCHFTSKEY)\r
+       {\r
+               if(oMsg.oParam)\r
+               {\r
+                       if(gsSK==null||gsSK=="")\r
+                       {\r
+                               gsSK=oMsg.oParam.toLowerCase();\r
+                               findFTSKey();\r
+                       }\r
+                       else\r
+                               gsSK2=oMsg.oParam.toLowerCase();\r
+               }\r
+       }\r
+       else if(nMsgId==WH_MSG_PROJECTREADY)\r
+       {\r
+               loadFts();\r
+       }\r
+       return true;\r
+}\r
+\r
+if (window.gbWhUtil&&window.gbWhLang&&window.gbWhProxy&&window.gbWhVer&&window.gbWhMsg)\r
+{\r
+       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
+       goErrFont=new whFont("Verdana","8pt","#000000","normal","bold","none");\r
+       goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");\r
+       window.onload=window_OnLoad;\r
+       window.onbeforeunload=window_BUnload;\r
+       window.onunload=window_Unload;\r
+       RegisterListener2(this,WH_MSG_PROJECTREADY);\r
+       gbWhFHost=true;\r
+}\r
+else\r
+       document.location.reload();
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whform.js b/doc/salome/gui/VISU/whform.js
new file mode 100755 (executable)
index 0000000..075311e
--- /dev/null
@@ -0,0 +1,215 @@
+var gfunLookUp;\r
+var gbInputEnable;\r
+var gfunInit;\r
+var gstrFormName= "";\r
+var gbWithButton = false;\r
+var gsTitle="";\r
+var gsOverImage = "";\r
+var gsOutImage = "";\r
+var gsClickImage = "";\r
+var gsText = "";\r
+var gsBgColor = "#c0c0c0";\r
+var gsBgImage = "";\r
+var gbInImage = 0;\r
+var gbInputEnable = 0;\r
+\r
+var goTitleFont=null;\r
+var goInputFont=null;\r
+var goNormalFont=null;\r
+var goHoverFont=null;\r
+var gnType=-1;\r
+var gbWhForm=false;\r
+\r
+function setBackground(sBgImage)\r
+{\r
+       if (sBgImage != null && sBgImage.length > 0)\r
+               gsBgImage = sBgImage;\r
+\r
+       if  (gsBgImage  && gsBgImage .length > 0)\r
+       {\r
+               document.body.background = gsBgImage ;\r
+       }\r
+}\r
+\r
+function setBackgroundcolor(sBgColor)\r
+{\r
+       if (sBgColor != null && sBgColor.length > 0)\r
+               gsBgColor = sBgColor;\r
+\r
+       if (gsBgColor&& gsBgColor.length > 0)\r
+       {\r
+               document.body.bgColor = gsBgColor;\r
+       }\r
+}\r
+\r
+function setBtnType(sType)\r
+{\r
+       if (sType == "image")\r
+       {\r
+               gnType = 0;\r
+       }\r
+       else if (sType == "text")\r
+       {\r
+               gnType = 1;\r
+       }\r
+}\r
+\r
+function setGoImage1(sImage1)\r
+{\r
+       gsOutImage = sImage1;\r
+       if (gsOutImage && gsOutImage.length > 0)\r
+               gbWithButton = true;\r
+}\r
+\r
+function setGoImage2(sImage2)\r
+{\r
+       gsOverImage = sImage2;\r
+       if (gsOverImage && gsOverImage.length > 0)\r
+               gbWithButton = true;\r
+}\r
+\r
+function setGoImage3(sImage3)\r
+{\r
+       gsClickImage = sImage3;\r
+       if (gsClickImage && gsClickImage.length > 0)\r
+               gbWithButton = true;\r
+}\r
+\r
+function setGoText(sText)\r
+{\r
+       gsText = sText;\r
+       if (gsText.length > 0)\r
+               gbWithButton = true;\r
+}\r
+\r
+function setFont(sType, sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration)\r
+{\r
+       var vFont = new whFont(sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration);\r
+       if (sType == "Title")\r
+       {\r
+               goTitleFont = vFont;\r
+               var vFont1 = new whFont(sFontName, sFontSize, "black", sFontStyle, sFontWeight, sFontDecoration);\r
+               goInputFont=vFont1;             \r
+       }\r
+       else if (sType == "Normal")\r
+               goNormalFont = vFont;\r
+       else if (sType == "Hover")\r
+               goHoverFont = vFont;\r
+}\r
+\r
+function writeFormStyle()\r
+{\r
+       var sStyle = "<style type='text/css'>";\r
+       sStyle += "p.title {" + getFontStyle(goTitleFont) + "margin-top:0;margin-bottom:0}\n";\r
+       sStyle += ".inputfield {" + getFontStyle(goInputFont) +"width:100%; }\n";\r
+       sStyle+="A:link {"+getFontStyle(goNormalFont)+"}\n";\r
+       sStyle+="A:visited {"+getFontStyle(goNormalFont)+"}\n";\r
+       sStyle +="A:hover {"+getFontStyle(goHoverFont)+"}\n";\r
+       sStyle+=".clsFormBackground{\n";\r
+       if (gsBgImage)\r
+               sStyle+="border-top:"+gsBgColor+" 1px solid;}\n";\r
+       else\r
+               sStyle+="border-top:black 1px solid;}\n";\r
+\r
+       sStyle += "</style>";\r
+       document.write(sStyle);\r
+}\r
+\r
+function lookupKeyDown()\r
+{\r
+       if (gbInputEnable)\r
+       {\r
+               if (gbIE4)\r
+               {\r
+                       if (event.keyCode == 13)        //Enter key\r
+                               gfunLookUp(true);\r
+                       else\r
+                               gfunLookUp(false);\r
+               }                       \r
+               else\r
+                       gfunLookUp(false);\r
+       }\r
+}\r
+\r
+function init()\r
+{\r
+       if (gfunInit)\r
+               gfunInit();\r
+       if (!window.Array)  return;\r
+               document.onkeyup = lookupKeyDown;\r
+}\r
+\r
+function inputSubmit()\r
+{\r
+       if ((gbInputEnable && !gbIE4)|| gbInImage)\r
+               gfunLookUp(true);\r
+}\r
+\r
+function inputEnable(bEnable)\r
+{\r
+       gbInputEnable = bEnable;\r
+}\r
+\r
+function inImage(bImage)\r
+{\r
+       gbInImage = bImage;\r
+}\r
+\r
+function getFormHTML()\r
+{\r
+       var sForm = "";\r
+       sForm += "<table class=\"clsFormBackground\" width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=\"0\">";\r
+       sForm += "<form name=\"" + gstrFormName + "\" method=\"POST\" action=\"javascript:inputSubmit()\" style=\"width:100%\">";\r
+       sForm += "<tr>";\r
+       sForm += "<td>";\r
+       sForm += "<p class=title><nobr>" + gsTitle + "</nobr><br><table width=\"100%\"><tr valign=\"middle\"><td width=\"100%\"><input class=\"inputfield\" type=\"text\" name=\"keywordField\" onfocus=\"inputEnable(1);\" onblur=\"inputEnable(0);\"></td>";\r
+       if (gbWithButton && gnType >= 0)\r
+       {\r
+               sForm += "<td><a title=\"submit button\" href=\"javascript:void(0);\" onclick=\"" + gstrFormName + ".submit(); return false;\" onfocus=\"inImage(1);\" onblur=\"inImage(0);\" onmouseup=\"onMouseUp();\" onmousedown=\"onMouseDown();\" onmouseover=\"onMouseOver();\" onmouseout=\"onMouseOut();\">"\r
+               if (gnType == 0)\r
+               {\r
+                       if (!gsText)\r
+                               gsText="Go";\r
+                       sForm += "<img alt=\""+gsText+"\" id=\"go\" border=\"0\" src=\"" + gsOutImage + "\">";\r
+               }\r
+               else\r
+                       sForm += gsText ;\r
+               sForm += "</a></td>";\r
+       }\r
+       sForm += "</tr></table></p></td></tr></form></table>";\r
+       return sForm;\r
+}\r
+\r
+function onMouseOver()\r
+{\r
+       if (getElement("go") && gsOverImage)\r
+               getElement("go").src = gsOverImage;\r
+}\r
+\r
+function onMouseDown()\r
+{\r
+       if (getElement("go") && gsClickImage)\r
+               getElement("go").src = gsClickImage;\r
+}\r
+\r
+function onMouseUp()\r
+{\r
+       if (getElement("go") && gsOutImage)\r
+               getElement("go").src = gsOutImage;\r
+}\r
+\r
+function onMouseOut()\r
+{\r
+       if (getElement("go") && gsOutImage)\r
+               getElement("go").src = gsOutImage;\r
+}\r
+\r
+if (window.gbWhUtil&&window.gbWhVer&&window.gbWhProxy&&window.gbWhMsg)\r
+{\r
+       goTitleFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "none");\r
+       goNormalFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "none");\r
+       goHoverFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "underline");\r
+       gbWhForm=true;\r
+}\r
+else\r
+       document.location.reload();
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whframes.js b/doc/salome/gui/VISU/whframes.js
new file mode 100755 (executable)
index 0000000..0576afc
--- /dev/null
@@ -0,0 +1,78 @@
+// this value should be identical to the value used in whproxy.js\r
+window.whname = "wh_stub";\r
+\r
+// this file will be used by Topic and NavBar and NavPane and other components\r
+// and this file is used in child frame html.\r
+// and the whstub.js will be used in the start page.\r
+// see reference in whstub.js.\r
+// Internal Area\r
+var gbInited = false;\r
+var gWndStubPage = null;\r
+function getStubPage()\r
+{\r
+       if (!gbInited)\r
+       {\r
+               gWndStubPage = getStubPage_inter(window);\r
+               gbInited = true;\r
+       }\r
+       return gWndStubPage;\r
+}\r
+\r
+function getStubPage_inter(wCurrent) {\r
+       if (null == wCurrent.parent || wCurrent.parent == wCurrent)\r
+               return null;\r
+\r
+       if (wCurrent.parent.whname && "wh_stub" == wCurrent.parent.whname) \r
+               return wCurrent.parent;\r
+       else\r
+               if (wCurrent.parent.frames.length != 0 && wCurrent.parent != wCurrent)\r
+                       return getStubPage_inter(wCurrent.parent);\r
+               else \r
+                       return null;\r
+}\r
+\r
+// Public interface begin here................\r
+function RegisterListener(framename, nMessageId)\r
+{\r
+       var wStartPage = getStubPage();\r
+       if (wStartPage && wStartPage != this) {\r
+               return wStartPage.RegisterListener(framename, nMessageId);\r
+       }\r
+       else \r
+               return false;\r
+}\r
+\r
+function RegisterListener2(oframe, nMessageId)\r
+{\r
+       var wStartPage = getStubPage();\r
+       if (wStartPage && wStartPage != this) {\r
+               return wStartPage.RegisterListener2(oframe, nMessageId);\r
+       }\r
+       else \r
+               return false;\r
+}\r
+\r
+function UnRegisterListener2(oframe, nMessageId)\r
+{\r
+       var wStartPage = getStubPage();\r
+       if (wStartPage && wStartPage != this && wStartPage.UnRegisterListener2) {\r
+               return wStartPage.UnRegisterListener2(oframe, nMessageId);\r
+       }\r
+       else \r
+               return false;\r
+}\r
+\r
+function SendMessage(oMessage)\r
+{\r
+       var nMsgId = oMessage.nMessageId;\r
+       if (nMsgId == WH_MSG_ISINFRAMESET && oMessage.wSender != this)\r
+               return true;\r
+       var wStartPage = getStubPage();\r
+       if (wStartPage && wStartPage != this && wStartPage.SendMessage) \r
+       {\r
+               return wStartPage.SendMessage(oMessage);\r
+       }\r
+       else \r
+               return false;\r
+}\r
+var gbWhProxy=true;
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whgbody.htm b/doc/salome/gui/VISU/whgbody.htm
new file mode 100755 (executable)
index 0000000..8d30b1f
--- /dev/null
@@ -0,0 +1,35 @@
+<html>\r
+<head>\r
+<title>Glossary Term</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whmozemu.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whlang.js"></script>\r
+<script language="javascript1.2" src="whhost.js"></script>\r
+<script language="javascript1.2" src="whghost.js"></script>\r
+<script language="javascript1.2">\r
+<!--\r
+if(window.gbWhGHost)\r
+{\r
+       setBackgroundcolor("White"); \r
+       \r
+       setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
+       setFont("Hover", "Tahoma","8pt","Navy","Normal","Normal","underline");\r
+       setActiveBgColor("Silver");\r
+       \r
+       \r
+       GloWriteClassStyle();\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+</head>\r
+<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" bgcolor="white">\r
+</body>\r
+</html>\r
diff --git a/doc/salome/gui/VISU/whgdef.htm b/doc/salome/gui/VISU/whgdef.htm
new file mode 100755 (executable)
index 0000000..3c5dfae
--- /dev/null
@@ -0,0 +1,98 @@
+<html>\r
+<head>\r
+<title>Glossary Definition</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2">\r
+<!--\r
+var gsBgColor="#ffffff";\r
+var gsBgImage="";\r
+var goGloFont=null;\r
+\r
+function setBackground(sBgImage)\r
+{\r
+       gsBgImage=sBgImage;\r
+}\r
+\r
+function setBackgroundcolor(sBgColor)\r
+{\r
+       gsBgColor=sBgColor;\r
+}\r
+\r
+function window_Unload()\r
+{\r
+       UnRegisterListener2(this, WH_MSG_SHOWGLODEF);\r
+}\r
+\r
+function window_OnLoad()\r
+{\r
+       if(gsBgImage&&gsBgImage.length>0)\r
+               document.body.background=gsBgImage;\r
+       if(gsBgColor&&gsBgColor.length>0)\r
+               document.body.bgColor=gsBgColor;\r
+}\r
+\r
+function setFont(sType, sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration)\r
+{\r
+       var vFont = new whFont(sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration);\r
+       if (sType == "Normal")\r
+               goGloFont = vFont;\r
+}\r
+\r
+function textToHtml_nbsp_specialcare(sText)\r
+{\r
+       if (sText == null) return null;\r
+       var sHTML= sText;\r
+       var re = new RegExp("  ","g");\r
+       sHTML=  sHTML.replace(re, "&nbsp; ");\r
+       return  sHTML;\r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       var nMsgId = oMsg.nMessageId;\r
+       if (nMsgId == WH_MSG_SHOWGLODEF)\r
+       {\r
+               document.body.innerHTML = sDefHead + textToHtml_nbsp_specialcare(oMsg.oParam.sDef) + sDefTail;\r
+               return true;\r
+       }\r
+}\r
+\r
+function GDefWriteClassStyle()\r
+{\r
+       var sStyle="<STYLE TYPE='text/css'>\n";\r
+       if (gsBgImage)\r
+               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
+       else\r
+               sStyle+="body {border-top:black 1px solid;}\n";\r
+       sStyle+=".definition {"+getFontStyle(goGloFont)+"margin:2;}\n";\r
+       sStyle+="</STYLE>";\r
+       document.write(sStyle);\r
+}\r
+\r
+if (window.gbWhMsg&&window.gbWhUtil&&window.gbWhProxy&&window.gbWhVer)\r
+{\r
+       window.onload=window_OnLoad;\r
+       window.onunload = window_Unload;\r
+       goGloFont=new whFont("Verdana", "8pt", "#000000", "normal", "normal", "none");\r
+       setBackgroundcolor("White"); \r
+       \r
+       setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
+       GDefWriteClassStyle();\r
+       RegisterListener2(this, WH_MSG_SHOWGLODEF);\r
+       var sDefHead = "<p class=\"definition\">";\r
+       var sDefTail = "</p>";\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+</head>\r
+<body bgproperties="fixed" bgcolor="white">\r
+</body>\r
+</html>\r
diff --git a/doc/salome/gui/VISU/whgdhtml.htm b/doc/salome/gui/VISU/whgdhtml.htm
new file mode 100755 (executable)
index 0000000..01b6692
--- /dev/null
@@ -0,0 +1,150 @@
+<html>\r
+<head>\r
+<title>Glossary</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</head>\r
+<body bgcolor=#c0c0c0 scroll=no RIGHTMARGIN=0 BOTTOMMARGIN=0 TOPMARGIN=0 LEFTMARGIN=0>\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whmozemu.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2">\r
+<!--\r
+var gsBgImage="";\r
+var    gsBgColor="";\r
+var goTitleFont=null;\r
+\r
+function setBackground(sBgImage)\r
+{\r
+       gsBgImage=sBgImage;\r
+}\r
+\r
+function setBackgroundcolor(sBgColor)\r
+{\r
+       gsBgColor=sBgColor;\r
+}\r
+\r
+function setFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
+{\r
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
+       if(sType=="Title")\r
+               goTitleFont=vFont;\r
+}\r
+\r
+function getTermText()\r
+{\r
+       var strString="Term:";\r
+strString = "Term:";\r
+       return strString;\r
+}\r
+\r
+function getDefinitionText()\r
+{\r
+       var strString="Definition for:";\r
+strString = "Definition:";\r
+       return strString;\r
+}\r
+\r
+function getHTML()\r
+{\r
+       var sHTML="";\r
+       sHTML+="<P class=title><nobr>&nbsp;" + getTermText() + "</nobr></p>";\r
+       sHTML+="<iframe id=glossaryIFrame title=\"glossary term\" src=\"whgbody.htm\" width=100% height=200 MARGINHEIGHT=0 MARGINWIDTH=0></iframe>";\r
+       sHTML+="<P class=title><nobr>&nbsp;" + getDefinitionText() + "&nbsp;<b id=Name></b></nobr></p>";\r
+       sHTML+="<iframe id=defIFrame title=\"glossary definition\" src=\"whgdef.htm\" width=100% height=100% MARGINHEIGHT=0 MARGINWIDTH=0></iframe>";\r
+       return sHTML;\r
+}\r
+\r
+function writeStyle()\r
+{\r
+       var sStyle="<style type='text/css'>";\r
+       sStyle+="p.title {" + getFontStyle(goTitleFont) + "margin-top:4;margin-bottom:4}\n";\r
+       if (gsBgImage)\r
+               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
+       else\r
+               sStyle+="body {border-top:black 1px solid;}\n";\r
+       sStyle+="</style>";\r
+       document.write(sStyle);\r
+}\r
+\r
+\r
+function window_OnResize()\r
+{\r
+       setIFrameHeight();\r
+}\r
+\r
+function window_OnLoad()\r
+{\r
+       if(gsBgImage&&gsBgImage.length>0)\r
+               document.body.background=gsBgImage;\r
+       if(gsBgColor&&gsBgColor.length>0)\r
+               document.body.bgColor=gsBgColor;\r
+       setIFrameHeight();\r
+}\r
+\r
+function setIFrameHeight()\r
+{\r
+       var tH=0;\r
+       if(gbNav6)\r
+       {\r
+               tH=parseInt(window.innerHeight)-30;\r
+       }\r
+       else\r
+       {\r
+               tH=parseInt(document.body.clientHeight)-4;\r
+       }\r
+               \r
+       var oEle=getElement("glossaryIFrame");\r
+       if(oEle)\r
+       {\r
+               tH=tH-2*parseInt(oEle.offsetTop);\r
+               if(tH>0)\r
+               {\r
+                       oEle.style.height=Math.floor(tH*.6);\r
+                       var oEleDef=getElement("defIFrame");\r
+                       if(oEleDef)\r
+                       {\r
+                               oEleDef.style.height=tH-parseInt(oEle.style.height);\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+function window_Unload()\r
+{\r
+       UnRegisterListener2(this,WH_MSG_SHOWGLODEF);\r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       var nMsgId=oMsg.nMessageId;\r
+       if(nMsgId==WH_MSG_SHOWGLODEF)\r
+       {\r
+               if(getElement("Name"))\r
+                       getElement("Name").innerHTML=oMsg.oParam.sName;\r
+               return true;\r
+       }\r
+}\r
+\r
+if(window.gbWhVer&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhProxy)\r
+{\r
+       goTitleFont=new whFont("Arial","9pt","#000000","normal","normal","none");\r
+       setFont("Title", "Tahoma","8pt","Navy","Normal","Normal","none");\r
+       \r
+       setBackgroundcolor("White");\r
+       window.onresize=window_OnResize;\r
+       window.onload=window_OnLoad;\r
+       window.onunload=window_Unload;\r
+       RegisterListener2(this,WH_MSG_SHOWGLODEF);\r
+       writeStyle();\r
+       document.write(getHTML());\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
diff --git a/doc/salome/gui/VISU/whghost.js b/doc/salome/gui/VISU/whghost.js
new file mode 100755 (executable)
index 0000000..77751a1
--- /dev/null
@@ -0,0 +1,217 @@
+var gbXML=false;\r
+var gaDef=new Array();\r
+var gsBgColor="#ffffff";\r
+var gsBgImage="";\r
+var goFont=null;\r
+var goHoverFont=null;\r
+var gsMargin="2pt";\r
+var gsIndent="2pt";\r
+var gsActiveBgColor="#cccccc";\r
+var gbWhGHost=false;\r
+\r
+function setBackground(sBgImage)\r
+{\r
+       gsBgImage=sBgImage;\r
+}\r
+\r
+function setBackgroundcolor(sBgColor)\r
+{\r
+       gsBgColor=sBgColor;\r
+}\r
+\r
+function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
+{\r
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
+       if(sType=="Normal")\r
+               goFont=vFont;\r
+       else if(sType=="Hover")\r
+               goHoverFont=vFont;\r
+}\r
+\r
+function setActiveBgColor(sBgColor)\r
+{\r
+       gsActiveBgColor=sBgColor;\r
+}\r
+\r
+function setMargin(sMargin)\r
+{\r
+       gsMargin=sMargin;\r
+}\r
+\r
+function setIndent(sIndent)\r
+{\r
+       gsIndent=sIndent;\r
+}\r
+\r
+function writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,n,aPos,nLevel)\r
+{\r
+\r
+       var sHTML="";\r
+       var nIdxSet=aCurIdxSet[n];\r
+       var nIIdx=aPos[nIdxSet];\r
+       var sRawKName = getItemName(aDataCon,nIdxSet,nIIdx);\r
+       var sKName=_textToHtml(sRawKName);\r
+       var nIndex=insertDef(sKName,_textToHtml_nonbsp(getDef(aDataCon,nIdxSet,nIIdx)));\r
+       if(nLevel==1){\r
+               sHTML+="<p><nobr><a alt=\"" + sKName+"\" href=\"javascript:void(0);\" onclick=\"showDef("+nIndex;\r
+               sHTML+=");return false;\">"+sKName+"</a></nobr></p>";\r
+       }\r
+       oHTML.addHTML(sHTML,1,bDown,true,sRawKName);\r
+}\r
+\r
+function insertDef(sKName,sDef)\r
+{\r
+       var nLength=gaDef.length\r
+       var oGlo=new nameDefPair(sKName,sDef);\r
+       gaDef[nLength]=oGlo;\r
+       return nLength;\r
+}\r
+\r
+function showDef(nDef)\r
+{\r
+       if(nDef<gaDef.length)\r
+       {       \r
+               var oParam=gaDef[nDef];\r
+               var oMsg=new whMessage(WH_MSG_SHOWGLODEF,this,1,oParam);\r
+               SendMessage(oMsg);\r
+       }\r
+}\r
+\r
+function nameDefPair(sName,sDef)\r
+{\r
+       this.sName=sName;\r
+       this.sDef=sDef;\r
+}\r
+\r
+function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)\r
+{\r
+       for(var i=0;i<nLength;i++)\r
+               writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,i,aPos,nLevel);\r
+}\r
+\r
+function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)\r
+{\r
+       if(bDown)\r
+       {\r
+               for(var i=0;i<nLength;i++)\r
+                       aPos[aCurIdxSet[i]]++;\r
+       }\r
+       else{\r
+               for(var i=0;i<nLength;i++)\r
+                       aPos[aCurIdxSet[i]]--;\r
+       }\r
+}\r
+\r
+function getDef(aDataCon,nIdxSet,nIIdx)\r
+{\r
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
+               return aDataCon[nIdxSet].aKs[nIIdx].sDef;\r
+       else\r
+               return null;\r
+}\r
+\r
+function getItemName(aDataCon,nIdxSet,nIIdx)\r
+{\r
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
+               return aDataCon[nIdxSet].aKs[nIIdx].sName;\r
+       else\r
+               return null;\r
+}\r
+\r
+function window_OnLoad()\r
+{\r
+       if(gsBgImage&&gsBgImage.length>0)\r
+               document.body.background=gsBgImage;\r
+       if(gsBgColor&&gsBgColor.length>0)\r
+               document.body.bgColor=gsBgColor;\r
+       document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());\r
+       loadGlo();\r
+       var oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function loadGlo()\r
+{\r
+       if(!gbReady)\r
+       {\r
+               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
+               if(SendMessage(oResMsg)&&oResMsg.oParam)\r
+               {\r
+                       gbReady=true;\r
+                       var oProj=oResMsg.oParam;\r
+                       var aProj=oProj.aProj;\r
+                       gbXML=oProj.bXML;\r
+                       if(aProj.length>0)\r
+                       {\r
+                               var sLangId=aProj[0].sLangId;\r
+                               for(var i=0;i<aProj.length;i++)\r
+                               {\r
+                                       if(aProj[i].sGlo!=null&&aProj[i].sGlo!=""&&aProj[i].sLangId==sLangId)\r
+                                               addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sGlo);\r
+                               }\r
+                       }\r
+                       writeDataIFrame();\r
+                       enEvt();\r
+               }               \r
+       }\r
+}\r
+\r
+function findCKInDom()\r
+{\r
+       return true;\r
+}\r
+\r
+function GloWriteClassStyle()\r
+{\r
+       var sStyle="<STYLE TYPE='text/css'>\n";\r
+       if (gsBgImage)\r
+               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
+       else\r
+               sStyle+="body {border-top:black 1px solid;}\n";\r
+       sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";margin-left:"+gsIndent+";}\n";\r
+       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";\r
+       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";\r
+       sStyle+="A:active {background-color:"+gsActiveBgColor+";}\n";\r
+       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";\r
+       sStyle+="</STYLE>";     \r
+       document.write(sStyle);\r
+}\r
+\r
+function window_Unload()\r
+{\r
+       UnRegisterListener2(this,WH_MSG_PROJECTREADY);\r
+       UnRegisterListener2(this,WH_MSG_SHOWGLO);\r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       if(oMsg)\r
+       {\r
+               var nMsgId=oMsg.nMessageId;\r
+               if(nMsgId==WH_MSG_SHOWGLO)\r
+               {\r
+                       if(!gbNav6)\r
+                               document.body.focus();\r
+               }\r
+               else if(nMsgId==WH_MSG_PROJECTREADY)\r
+               {\r
+                       loadGlo();\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+if (window.gbWhUtil&&window.gbWhProxy&&window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhHost)\r
+{\r
+       RegisterListener2(this,WH_MSG_PROJECTREADY);\r
+       RegisterListener2(this,WH_MSG_SHOWGLO);\r
+       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
+       goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");\r
+       window.onload=window_OnLoad;\r
+       window.onbeforeunload=window_BUnload;\r
+       window.onunload=window_Unload;\r
+       gbWhGHost=true;\r
+}\r
+else\r
+       document.location.reload();\r
+\r
diff --git a/doc/salome/gui/VISU/whhost.js b/doc/salome/gui/VISU/whhost.js
new file mode 100755 (executable)
index 0000000..664120f
--- /dev/null
@@ -0,0 +1,1290 @@
+var gaChunks=new Array();\r
+var gaFakes=new Array();\r
+var gaDataCon=null;\r
+var gaData=new Array();\r
+\r
+var gbFindCK=false;;\r
+var gbNeedCalc=false;\r
+var gbScrl=false;\r
+var gbProcess=false;\r
+var gbReady=false;\r
+\r
+var gnCheck=0;\r
+var gnNum=0;\r
+var gnIns=-1;\r
+var gnLoad=0;\r
+var gnRef=-1;\r
+var gnMaxItems=0;\r
+var gnMaxMargin=32000;\r
+var gnNeeded=0;\r
+var gnNKI=-1;\r
+var gnRE=0;\r
+var gnScrlMgn=30;\r
+var gnSE=0;\r
+var gnVisible=0;\r
+var gnItems=0;\r
+var gnUHeight=1;\r
+\r
+var gsBCK=null;\r
+var gsChK=null;\r
+var gsCK=null;\r
+var gsLoadingDivID="LoadingDiv";\r
+var gsLoadingMsg="Loading data, please wait...";\r
+var gsSKA=null;\r
+var gsSKB=null;\r
+\r
+var gbLoadInfo=false;\r
+\r
+function putDataXML(xmlDoc,sDocPath)\r
+{\r
+       if(gbLoadInfo)\r
+       {\r
+               var node=xmlDoc.lastChild;\r
+               if(node)\r
+               {\r
+                       var nTotal=0\r
+                       var aChunk=new Array();\r
+                       var oC=node.firstChild;\r
+                       while(oC)\r
+                       {\r
+                               if(oC.nodeName=="chunkinfo")\r
+                               {\r
+                                       var item=new Object();\r
+                                       item.sBK=oC.getAttribute("first");\r
+                                       item.sEK=oC.getAttribute("last");\r
+                                       item.sFileName=oC.getAttribute("url");\r
+                                       item.nNum=parseInt(oC.getAttribute("num"));\r
+                                       nTotal+=item.nNum;\r
+                                       item.nTotal=nTotal;\r
+                                       aChunk[aChunk.length]=item;\r
+                               }\r
+                               oC=oC.nextSibling;\r
+                       }\r
+                       projReady(aChunk);\r
+               }\r
+       }\r
+       else\r
+       {\r
+               var node=xmlDoc.lastChild;\r
+               if(node)\r
+               {\r
+                       var aData=new Array();\r
+                       var nPrev=0;\r
+                       var nNext=0;\r
+                       var oC=node.firstChild;\r
+                       while(oC)\r
+                       {\r
+                               nPrev=nNext;\r
+                               if(oC.nodeName=="key")\r
+                               {\r
+                                       var sName=oC.getAttribute("name");\r
+                                       if(sName&&sName.length>0)\r
+                                       {\r
+                                               var sTarget=oC.getAttribute("target");\r
+                                               var item=new Object();\r
+                                               item.nType=2;\r
+                                               item.sName=sName;\r
+                                               if(sTarget)\r
+                                                       item.sTarget=sTarget;\r
+                                               item.nPKOff=nPrev;\r
+                                               aData[aData.length]=item;\r
+                                               var nCurIndex=aData.length;\r
+                                               processKey(oC,aData,item);\r
+                                               nNext=aData.length-nCurIndex;\r
+                                               item.nNKOff=nNext;\r
+                                       }\r
+                               }\r
+                               else if(oC.nodeName=="letter")\r
+                               {\r
+                                       var name=oC.getAttribute("name");\r
+                                       if(name&&name.length>0)\r
+                                       {\r
+                                               var item=new Object();\r
+                                               item.nType=1;\r
+                                               item.sName=name;\r
+                                               item.nPKOff=nPrev;\r
+                                               nNext=0;\r
+                                               item.nNKOff=nNext;\r
+                                               aData[aData.length]=item;\r
+                                       }\r
+                               }\r
+                               else if(oC.nodeName=="entry")\r
+                               {\r
+                                       var name=oC.getAttribute("name");\r
+                                       var def=oC.getAttribute("value");\r
+                                       if(name&&name.length>0)\r
+                                       {\r
+                                               var item=new Object();\r
+                                               item.sName=name;\r
+                                               item.sDef=def;\r
+                                               item.nPKOff=nPrev;\r
+                                               nNext=0;\r
+                                               item.nNKOff=nNext;\r
+                                               aData[aData.length]=item;\r
+                                       }\r
+                               }\r
+                               oC=oC.nextSibling;\r
+                       }\r
+                       putData(aData);\r
+               }\r
+       }\r
+}\r
+\r
+function processKey(element,aData,item)\r
+{\r
+       var i=0;\r
+       var nPrev=0;\r
+       var nNext=0;\r
+       var oC=element.firstChild;\r
+       while(oC)\r
+       {\r
+               if(oC.nodeName=="topic")\r
+               {\r
+                       var name=oC.getAttribute("name");\r
+                       var url=oC.getAttribute("url");\r
+                       if(url&&url.length!=0)\r
+                       {\r
+                               if(!name||name.length==0)\r
+                                       name=url;\r
+                               var topic=new Object();\r
+                               topic.sName=name;\r
+                               topic.sURL=url;\r
+                               if(!item.aTopics)\r
+                                       item.aTopics=new Array();\r
+                               item.aTopics[item.aTopics.length]=topic;\r
+                       }\r
+               }\r
+               else if(oC.nodeName=="key")\r
+               {\r
+                       nPrev=nNext;\r
+                       var name=oC.getAttribute("name");\r
+                       if(name&&name.length!=0)\r
+                       {\r
+                               var subItem=new Object();\r
+                               subItem.sName=name;\r
+                               subItem.nType=3;\r
+                               subItem.nPKOff=nPrev;\r
+                               aData[aData.length]=subItem;\r
+                               var nCurIndex=aData.length;\r
+                               processKey(oC,aData,subItem);\r
+                               nNext=aData.length-nCurIndex;\r
+                               subItem.nNKOff=nNext;\r
+                       }\r
+               }\r
+               oC=oC.nextSibling;\r
+       }\r
+}\r
+\r
+function putData(aData)\r
+{\r
+       endLoading();\r
+       var oCData=goCData;\r
+       if(oCData)\r
+       {\r
+               oCData.aKs=aData;\r
+               if(gnNKI==-1)\r
+                       setTimeout("checkReady();",1);\r
+               else\r
+               {\r
+                       gsSKA=getKByIdx(oCData,gnNKI);\r
+                       gbNeedCalc=true;\r
+                       gbScrl=true;\r
+                       gnNKI=-1;\r
+                       if(gsSKA)\r
+                               setTimeout("checkReady();",1);\r
+                       else\r
+                       {\r
+                               markEnd();\r
+                               setTimeout("checkAgain();",50);\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+function markEnd()\r
+{\r
+       if(gbProcess)\r
+               gbProcess=false;\r
+}\r
+\r
+function endLoading()\r
+{\r
+       var oDiv=getElement(gsLoadingDivID);\r
+       if(oDiv)\r
+               oDiv.style.visibility="hidden";\r
+}\r
+\r
+function markBegin()\r
+{\r
+       gbProcess=true;\r
+}\r
+\r
+function beginLoading()\r
+{\r
+       var oDiv=getElement(gsLoadingDivID);\r
+       if(oDiv)\r
+       {\r
+               oDiv.style.top=document.body.scrollTop;\r
+               oDiv.style.visibility="visible";\r
+       }\r
+}\r
+\r
+function indexHTMLPart()\r
+{\r
+       this.sHTML="";\r
+       this.nNeeded=0;\r
+       this.nCurrent=0;\r
+       this.nConsumed=0;\r
+       this.sFK=null;\r
+       this.sLK=null;\r
+       this.addHTML=function(sHTML,nConsumed,bDown,bK,sK){\r
+               if(bDown)\r
+                       this.sHTML+=sHTML;\r
+               else\r
+                       this.sHTML=sHTML+this.sHTML;\r
+               this.nCurrent++;                        \r
+               this.nConsumed+=nConsumed;\r
+               if(bK)\r
+               {\r
+                       if(!this.sFK)\r
+                               this.sFK=sK;\r
+                       if(!this.sLK)\r
+                               this.sLK=sK;\r
+                       if(bDown)\r
+                               this.sLK=sK;\r
+                       else\r
+                               this.sFK=sK;\r
+               }\r
+       }\r
+       this.appendHTML=function(oHTML,bDown){\r
+               this.addSubHTML(oHTML,bDown);\r
+               if(!this.sFK)\r
+                       this.sFK=oHTML.sFK;\r
+               if(!this.sLK)\r
+                       this.sLK=oHTML.sLK;\r
+               if(bDown)\r
+                       this.sLK=oHTML.sLK;\r
+               else\r
+                       this.sFK=oHTML.sFK;\r
+       }       \r
+       \r
+       this.addSubHTML=function(oHTML,bDown){\r
+               if(bDown)\r
+                       this.sHTML+=oHTML.sHTML;\r
+               else\r
+                       this.sHTML=oHTML.sHTML+this.sHTML;\r
+               this.nCurrent+=oHTML.nCurrent;\r
+               this.nConsumed+=oHTML.nConsumed;                        \r
+       }\r
+}\r
+\r
+function getMaxUnits()\r
+{\r
+       return Math.floor(gnMaxMargin/gnUHeight)+1;\r
+}\r
+\r
+function getFakeItemsHTMLbyCount(nB,nCount)\r
+{\r
+       var nMU=getMaxUnits();\r
+       var nNum=Math.floor(nCount/nMU);\r
+       var sHTML="";\r
+       for(var i=0;i<nNum;i++)\r
+               sHTML+=getFakeItemHTML(nB,nMU-1);\r
+               \r
+       var nRest=nCount%nMU;\r
+       sHTML+=getFakeItemHTML(nB,nRest-1);\r
+       return sHTML;\r
+}\r
+\r
+function getFakeItemHTML(nB,nNum)\r
+{\r
+       return "<h6 name=fk"+nB+" id=fk"+nB+" style=\"margin-top:"+gnUHeight*nNum+";margin-bottom:0\">&nbsp;</h6>";\r
+}\r
+\r
+function fakeItemsArea(nB,n,sKA,sKB,obj)\r
+{\r
+       this.nB=nB;\r
+       this.nNum=n;\r
+       this.sKA=sKA;\r
+       this.sKB=sKB;\r
+       this.obj=obj;\r
+       this.nMargin=(n-1)*gnUHeight;\r
+\r
+       this.setNum=function(n)\r
+       {\r
+               var nLastobj=-1;\r
+               var nDelta=this.nMargin;\r
+               this.nMargin=(n-1)*gnUHeight;\r
+               nDelta=nDelta-this.nMargin;\r
+               if(n>0)\r
+               {\r
+                       this.nNum=n;\r
+                       var nMU=getMaxUnits();\r
+                       nLastobj=Math.floor((n-1)/nMU);\r
+                       if(this.obj.length)\r
+                               this.obj[nLastobj].style.marginTop=((n-1)%nMU)*gnUHeight;\r
+                       else\r
+                               this.obj.style.marginTop=((n-1)%nMU)*gnUHeight;\r
+               }\r
+               if(this.obj.length)\r
+               {\r
+                       for(var i=this.obj.length-1;i>nLastobj;i--)\r
+                               removeThis(this.obj[i]);\r
+               }\r
+               else\r
+               {\r
+                       if(nLastobj==-1)\r
+                               removeThis(this.obj);\r
+               }\r
+               return nDelta;\r
+       }\r
+       this.insertAdjacentHTML=function(sWhere,sHTML)\r
+       {\r
+               if(sWhere=="beforeBegin")\r
+               {\r
+                       if(this.obj.length)\r
+                               this.obj[0].insertAdjacentHTML(sWhere,sHTML);\r
+                       else\r
+                               this.obj.insertAdjacentHTML(sWhere,sHTML);\r
+               }\r
+               else if(sWhere=="afterEnd")\r
+               {\r
+                       if(this.obj.length)\r
+                       {\r
+                               if(gbMac&&gbIE5&&this.obj[this.obj.length-1].nextSibling)\r
+                                       this.obj[this.obj.length-1].nextSibling.insertAdjacentHTML("beforeBegin",sHTML);\r
+                               else\r
+                                       this.obj[this.obj.length-1].insertAdjacentHTML(sWhere,sHTML);\r
+                       }\r
+                       else\r
+                       {\r
+                               if(gbMac&&gbIE5&&this.obj.nextSibling)\r
+                                       this.obj.nextSibling.insertAdjacentHTML("beforeBegin",sHTML);\r
+                               else\r
+                                       this.obj.insertAdjacentHTML(sWhere,sHTML);\r
+                       }\r
+               }\r
+       }\r
+       this.getBtm=function()\r
+       {\r
+               if(this.obj.length)\r
+                       return this.obj[this.obj.length-1].offsetTop;\r
+               else\r
+                       return this.obj.offsetTop;\r
+       }\r
+       this.getTop=function()\r
+       {\r
+               return this.getBtm()-this.nMargin;\r
+       }\r
+}\r
+\r
+function usedItems(nB,nE)\r
+{\r
+       this.nB=nB;\r
+       this.nE=nE;\r
+       this.oN=null;\r
+}\r
+\r
+function checkReady()\r
+{\r
+       var len=gaChunks.length;\r
+       var bNeedLoad=false;\r
+       var aDataCon;\r
+       var s=0;\r
+       var bDown=(gsSKB==null);\r
+       var sK=bDown?gsSKA:gsSKB;\r
+       if(sK==null)\r
+       {\r
+               markEnd();\r
+               setTimeout("checkAgain();",50);\r
+               return;\r
+       }\r
+       if(!gsChK||sK!=gsChK||gnNum==0)\r
+       {\r
+               gnCheck=0;\r
+               gsChK=sK;\r
+               aDataCon=new Array();\r
+       }\r
+       else{\r
+               s=gnNum;\r
+               aDataCon=gaDataCon;\r
+       }\r
+       for(var i=gnCheck;i<len;i++)\r
+       {\r
+               var oCData=getChunkedData(i,bDown,sK);\r
+               if(oCData)\r
+               {\r
+                       if(!oCData.aKs&&oCData.sFileName!=null)\r
+                       {\r
+                               bNeedLoad=true;\r
+                               goCData=oCData;\r
+                               gnNum=s;\r
+                               gnCheck=i;\r
+                               gaDataCon=aDataCon;\r
+                               oCData.nProjId=i;\r
+                               gbLoadInfo=false;\r
+                               beginLoading();\r
+                               loadData2(gaData[i].sPPath+gaData[i].sDPath+oCData.sFileName);\r
+                               return;\r
+                       }\r
+                       else{\r
+                               aDataCon[s++]=oCData;\r
+                       }\r
+               }\r
+       }\r
+       if(!bNeedLoad)\r
+       {\r
+               gnNum=0;\r
+               gsSKA=gsSKB=gsShowK=null;\r
+               \r
+               var oHTML=new indexHTMLPart();\r
+               var aPos=new Array();\r
+               var aOriPos=new Array();\r
+               var aMaxPos=new Array();\r
+               var aMinPos=new Array();\r
+               \r
+               if(gbNeedCalc||gbFindCK) gnIns=0;\r
+               for(i=0;i<aDataCon.length;i++)\r
+               {\r
+                       aPos[i]=getIdxPos(aDataCon[i],bDown,sK);\r
+                       if(gbNeedCalc||gbFindCK)\r
+                       {\r
+                               gnIns+=aPos[i]+aDataCon[i].nTotal-aDataCon[i].nNum;\r
+                               if(!bDown)\r
+                               {\r
+                                       if(aPos[i]!=-1)\r
+                                       {\r
+                                               if(aDataCon[i].aKs)\r
+                                                       gnIns+=aDataCon[i].aKs[aPos[i]].nNKOff;\r
+                                               else\r
+                                               {\r
+                                                       var n=aPos[i]+1;\r
+                                                       while(n<aDataCon[i].aKsOnly.length&&!aDataCon[i].aKsOnly[n])\r
+                                                               n++;\r
+                                                       n=n-aPos[i]-1;\r
+                                                       gnIns+=n;\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+                       aOriPos[i]=aPos[i];\r
+                       getLimit(aDataCon,aPos,aMaxPos,aMinPos,i);\r
+               }\r
+               if((gbNeedCalc||gbFindCK)&&!bDown&&gnIns!=-1)\r
+               {\r
+                       gnIns+=(aDataCon.length-1)\r
+               }\r
+               if(gnIns!=-1||gbFindCK)\r
+               {\r
+                       oHTML.nNeeded=gnNeeded;\r
+                       var bDone=writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,1);\r
+                       if(oHTML.nConsumed!=0)\r
+                       {\r
+                               var nB;\r
+                               if(!bDown)\r
+                                       nB=gnIns-oHTML.nConsumed+1;\r
+                               else\r
+                                       nB=gnIns;\r
+                                       \r
+                               var oldScrollPos=document.body.scrollTop;\r
+                               if(insertIdxKs(nB,oHTML,gbScrl))\r
+                               {\r
+                                       updateUsedK(aDataCon,aOriPos,aPos,bDown);\r
+                                       if(!gbScrl&&gbMac)\r
+                                       {\r
+                                               while(document.body.scrollTop!=oldScrollPos)\r
+                                                       document.body.scrollTop=oldScrollPos;\r
+                                       }\r
+                                       gbScrl=false;\r
+                               }\r
+                               if(gbFindCK)\r
+                               {\r
+                                       gbFindCK=false;\r
+                                       gbNeedCalc=true;\r
+                                       gsSKB=oHTML.sFK;\r
+                                       gnIns=-1;\r
+                                       setTimeout("checkReady();",50);\r
+                                       return;\r
+                               }\r
+                       }\r
+                       else if(gbFindCK)\r
+                       {\r
+                               gbFindCK=false;\r
+                               gbNeedCalc=true;\r
+                               gsSKB=getFirstKeyFromPos(aDataCon,aPos);\r
+                               gnIns=-1;\r
+                               setTimeout("checkReady();",50);\r
+                               return;\r
+                       }\r
+                       if(!findCKInDom()) return;\r
+\r
+                       gnNeeded=gnNeeded-oHTML.nCurrent;\r
+                       gnIns=-1;\r
+                       markEnd();\r
+                       setTimeout("checkAgain();",50);\r
+                       gbNeedCalc=false;\r
+               }\r
+               else\r
+               {\r
+                       if(!findCKInDom()) return;\r
+                       markEnd();\r
+                       setTimeout("checkAgain();",50);\r
+               }\r
+       }\r
+}\r
+\r
+function getFirstKeyFromPos(aDataCon,aPos)\r
+{\r
+       var sCurrentK=getBiggestChar();\r
+       for(var i=0;i<aPos.length;i++)\r
+       {\r
+               if(aDataCon[i].aKs&&aDataCon[i].aKs.length>0&&aPos[i]>=0&&aPos[i]<aDataCon[i].aKs.length)\r
+               {\r
+                       if(sCurrentK==""||\r
+                               compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)\r
+                       {\r
+                               sCurrentK=aDataCon[i].aKs[aPos[i]].sName;\r
+                       }\r
+               }\r
+       }\r
+       return sCurrentK;\r
+}\r
+\r
+function checkAgain()\r
+{\r
+       if(!gbProcess)\r
+       {\r
+               if(gsBCK!=null)\r
+               {\r
+                       gsCK=gsBCK;\r
+                       gsBCK=null;\r
+                       findCK();\r
+               }\r
+               else\r
+               {\r
+                       markBegin();\r
+                       getUnitIdx(document.body.scrollTop,document.body.clientHeight);\r
+               }\r
+       }\r
+       else\r
+               setTimeout("checkAgain()",50);\r
+}\r
+\r
+function getLimit(aDataCon,aPos,aMaxPos,aMinPos,i)\r
+{\r
+       aMaxPos[i]=aDataCon[i].nNum;\r
+       aMinPos[i]=-1;\r
+       var oPNode=null;\r
+       if(aDataCon[i].oUsedItems)\r
+       {\r
+               var oUsedItems=aDataCon[i].oUsedItems;\r
+               do{\r
+                       if(oUsedItems.nB>aPos[i])\r
+                       {\r
+                               aMaxPos[i]=oUsedItems.nB;\r
+                               break;\r
+                       }\r
+                       oPNode=oUsedItems;\r
+                       oUsedItems=oUsedItems.oN;\r
+               }while(oUsedItems!=null);\r
+               if(oPNode)\r
+                       aMinPos[i]=oPNode.nE;\r
+       }\r
+       else if(aDataCon[i].aKs==null)\r
+       {\r
+               aMaxPos[i]=aMinPos[i]=aPos[i];\r
+       }\r
+       if(aMinPos[i]>=aPos[i]||aMaxPos[i]<=aPos[i])\r
+       {\r
+               aMaxPos[i]=aMinPos[i]=aPos[i];\r
+       }\r
+}\r
+\r
+function getIdxPos(oIdx,bDown,sK)\r
+{\r
+       var aKs=oIdx.aKs;\r
+       var nIdx;\r
+       if(bDown)\r
+               nIdx=oIdx.nNum;\r
+       else\r
+               nIdx=-1;\r
+       if(aKs!=null)\r
+       {\r
+               for(var i=0;i<aKs.length;i++)\r
+               {       \r
+                       if(bDown)\r
+                       {\r
+                               if(compare(aKs[i].sName,sK)>0)\r
+                               {\r
+                                       nIdx=i;\r
+                                       break;\r
+                               }\r
+                       }\r
+                       else\r
+                       {\r
+                               if(compare(aKs[i].sName,sK)<0)\r
+                                       nIdx=i;\r
+                               else\r
+                                       break;\r
+                       }\r
+                       i+=aKs[i].nNKOff;\r
+               }\r
+       }\r
+       else if(oIdx.aKsOnly)\r
+       {\r
+               var aKsOnly=oIdx.aKsOnly;\r
+               for(var i=0;i<aKsOnly.length;i++)\r
+               {       \r
+                       if(aKsOnly[i])\r
+                       {\r
+                               if(bDown)\r
+                               {\r
+                                       if(compare(aKsOnly[i],sK)>0)\r
+                                       {\r
+                                               nIdx=i;\r
+                                               break;\r
+                                       }\r
+                               }\r
+                               else\r
+                               {\r
+                                       if(compare(aKsOnly[i],sK)<0)\r
+                                               nIdx=i;\r
+                                       else\r
+                                               break;\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+       return nIdx;\r
+}\r
+\r
+function writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,nLevel)\r
+{\r
+       var aOldPos=new Array();\r
+       for(var i=0;i<aPos.length;i++)\r
+       {\r
+               aOldPos[i]=aPos[i];\r
+       }\r
+       var p;\r
+       do{\r
+               var sCurrentK="";\r
+               var aCurIdxSet=new Array();\r
+               p=0;\r
+               for(i=0;i<aDataCon.length;i++)\r
+               {\r
+                       if(aDataCon[i].aKs&&aDataCon[i].aKs.length&&aPos[i]!=-1&&\r
+                               (bDown&&aPos[i]<aMaxPos[i])||(!bDown&&aPos[i]>aMinPos[i]))\r
+                       {\r
+                               if(sCurrentK==""||\r
+                                       (bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)||\r
+                                       (!bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)<0))\r
+                               {\r
+                                       sCurrentK=aDataCon[i].aKs[aPos[i]].sName;\r
+                                       p=0;\r
+                                       aCurIdxSet[p++]=i;\r
+                               }\r
+                               else if(sCurrentK==aDataCon[i].aKs[aPos[i]].sName){\r
+                                       aCurIdxSet[p++]=i;\r
+                               }\r
+                       }\r
+                       else if(nLevel==1&&aMaxPos[i]!=aMinPos[i]){\r
+                               if(bDown&&aPos[i]==aMaxPos[i])\r
+                               {\r
+                                       if(aDataCon[i].aKs)\r
+                                       {\r
+                                               gsSKA=aDataCon[i].aKs[aOldPos[i]].sName;\r
+                                               return false;\r
+                                       }\r
+                               }\r
+                               else if(!bDown&&aPos[i]==aMinPos[i])\r
+                               {\r
+                                       if(aDataCon[i].aKs)\r
+                                       {\r
+                                               gsSKB=aDataCon[i].aKs[aOldPos[i]].sName;\r
+                                               return false;\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+               if(p>=1){\r
+                       for(var s=0;s<p;s++)\r
+                       {\r
+                               aOldPos[aCurIdxSet[s]]=aPos[aCurIdxSet[s]];\r
+                       }\r
+                       mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,p,aPos,nLevel);\r
+                       adjustPosition(bDown,aDataCon,aCurIdxSet,p,aPos);\r
+                       \r
+                       if(nLevel==1&&oHTML.nNeeded<=oHTML.nCurrent){\r
+                               return true;\r
+                       }\r
+               }\r
+       }while(p>0);\r
+       return true;\r
+}\r
+\r
+function updateUsedK(aDataCon,aOriPos,aOldPos,bDown)\r
+{\r
+       for(var i=0;i<aDataCon.length;i++)\r
+       {\r
+               if (aOldPos[i]!=aOriPos[i])\r
+               {\r
+                       var nBP=0;\r
+                       var nEP=0;\r
+                       if(bDown)\r
+                       {\r
+                               nBP=aOriPos[i];\r
+                               nEP=aOldPos[i]-1;\r
+                       }\r
+                       else\r
+                       {\r
+                               if (aOldPos[i]!=-1)\r
+                                       nBP=aOldPos[i]+aDataCon[i].aKs[aOldPos[i]].nNKOff+1;\r
+                               else\r
+                                       nBP=0;\r
+                               nEP=aOriPos[i]+aDataCon[i].aKs[aOriPos[i]].nNKOff;\r
+                       }\r
+                       if(nBP<=nEP)\r
+                       {\r
+                               setContentsUsed(aDataCon[i],nBP,nEP);\r
+                               \r
+                               var oFirstPair=aDataCon[i].oUsedItems;\r
+                               if(oFirstPair.oN==null&&oFirstPair.nB==0&&oFirstPair.nE==aDataCon[i].nNum-1)\r
+                               {\r
+                                       storeKeysOnly(aDataCon[i]);\r
+                                       aDataCon[i].oUsedItems=aDataCon[i].aKs=aDataCon[i].sFileName=null;\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+function storeKeysOnly(oCData)\r
+{\r
+       oCData.aKsOnly=new Array();\r
+       for(var i=0;i<oCData.aKs.length;i++)\r
+       {\r
+               oCData.aKsOnly[i]=oCData.aKs[i].sName;\r
+               i+=oCData.aKs[i].nNKOff;\r
+       }\r
+}\r
+\r
+function setContentsUsed(oIdx,nB,nE)\r
+{\r
+       if(!oIdx.oUsedItems)\r
+               oIdx.oUsedItems=new usedItems(nB,nE);\r
+       else\r
+       {\r
+               var oUsedItems=oIdx.oUsedItems;\r
+               var oPNode=null;\r
+               do{\r
+                       if(oUsedItems.nB>nB)\r
+                       {\r
+                               if(oUsedItems.nB==nE+1)\r
+                               {\r
+                                       oUsedItems.nB=nB;\r
+                               }\r
+                               else{\r
+                                       var oNewNode=new usedItems(oUsedItems.nB,oUsedItems.nE);\r
+                                       oNewNode.oN=oUsedItems.oN;\r
+                                       oUsedItems.nB=nB;\r
+                                       oUsedItems.nE=nE;\r
+                                       oUsedItems.oN=oNewNode;\r
+                               }\r
+                               break;\r
+                       }\r
+                       oPNode=oUsedItems;\r
+                       oUsedItems=oUsedItems.oN;\r
+               }while(oUsedItems);\r
+               if(!oUsedItems)\r
+               {\r
+                       if(oPNode!=null)\r
+                               oPNode.oN=new usedItems(nB,nE);\r
+               }\r
+               if(oPNode!=null){\r
+                       if(oPNode.nE==oPNode.oN.nB-1)\r
+                       {\r
+                               oPNode.nE=oPNode.oN.nE;\r
+                               oPNode.oN=oPNode.oN.oN;\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+function projInfo(sPPath,sDPath,sFile)\r
+{\r
+       this.sPPath=sPPath;\r
+       this.sDPath=sDPath;\r
+       this.sFile=sFile;\r
+}\r
+\r
+function addProjInfo(sPPath,sDPath,sFile)\r
+{\r
+       var oIdxInfo=new projInfo(sPPath,sDPath,sFile);\r
+       gaData[gaData.length]=oIdxInfo;\r
+       return oIdxInfo;\r
+}\r
+\r
+function writeDataIFrame()\r
+{\r
+       if(gnLoad<gaData.length)\r
+       {\r
+               gbLoadInfo=true;\r
+               loadData2(gaData[gnLoad].sPPath+gaData[gnLoad].sDPath+gaData[gnLoad].sFile);\r
+       }\r
+       else{\r
+               if(gnItems!=0)\r
+               {\r
+                       markBegin();\r
+                       writeFakeItems();\r
+                       gsSKA="";\r
+                       gnNeeded=gnVisible;\r
+                       gnIns=0;\r
+                       checkReady();\r
+               }\r
+       }\r
+}\r
+\r
+function getH6ById(nPos)\r
+{\r
+       if(document.all)\r
+               return document.all("fk"+nPos);\r
+       else if(document.getElementsByName)\r
+               return document.getElementsByName("fk"+nPos);\r
+       return null;            \r
+}\r
+\r
+function showItemsInEvaluation(nBP)\r
+{\r
+       var bRtn=true;\r
+       var fPer=nBP/gnItems;\r
+       var nB=Math.floor(fPer*gnMaxItems);\r
+       var oCData=getChunkByIdx(gnRef,nB);\r
+       if(oCData)\r
+       {\r
+               if(!oCData.aKs&&oCData.sFileName!=null)\r
+               {\r
+                       gnNKI=nB;\r
+                       goCData=oCData;\r
+                       oCData.nProjId=gnRef;\r
+                       gbLoadInfo=false;\r
+                       beginLoading();\r
+                       loadData2(gaData[gnRef].sPPath+gaData[gnRef].sDPath+oCData.sFileName);\r
+               }\r
+               else{\r
+                       gsSKA=getKByIdx(oCData,nB);\r
+                       if(gsSKA)\r
+                       {\r
+                               gsSKB=null;\r
+                               gbNeedCalc=true;\r
+                               gbScrl=true;\r
+                               checkReady()\r
+                       }\r
+                       else\r
+                       {\r
+                               markEnd();\r
+                               bRtn=false;\r
+                       }\r
+               }\r
+       }\r
+       else\r
+       {\r
+               markEnd();\r
+               bRtn=false;\r
+       }\r
+       return bRtn;\r
+}\r
+\r
+function isUsed(oCData,nPos)\r
+{\r
+       var oUsed=oCData.oUsedItems;\r
+       while(oUsed&&oUsed.nB<=nPos)\r
+       {\r
+               if(oUsed.nE>=nPos) return true;\r
+               oUsed=oUsed.oN;\r
+       }\r
+       return false;\r
+}\r
+\r
+function getKByIdx(oCData,nB)\r
+{\r
+       var nRelPos=nB-(oCData.nTotal-oCData.nNum);\r
+       var aIKs=oCData.aKs;\r
+       if(nRelPos>=0&&aIKs&&nRelPos<aIKs.length)\r
+       {\r
+               var oK=null;\r
+               do{\r
+                       oK=aIKs[nRelPos++];\r
+               }       \r
+               while((oK.nType==3||isUsed(oCData,nRelPos-1))&&nRelPos<aIKs.length);\r
+               if(oK.nType!=3)\r
+               {\r
+                       return oK.sName;\r
+               }\r
+               else{\r
+                       nRelPos=nB-(oCData.nTotal-oCData.nNum)-1;\r
+                       if(nRelPos>=0)\r
+                       {\r
+                               do{\r
+                                       oK=aIKs[nRelPos--];\r
+                               }\r
+                               while((oK.nType==3||isUsed(oCData,nRelPos+1))&&nRelPos>=0);\r
+                       }\r
+                       if(oK.nType!=3)\r
+                       {\r
+                               return oK.sName;\r
+                       }\r
+               }\r
+       }\r
+       return null;\r
+}\r
+\r
+function loadData2(sFileName)\r
+{\r
+       disEvt();\r
+       if(gbXML)\r
+               loadDataXML(sFileName);\r
+       else\r
+               loadData(sFileName);\r
+       enEvt();\r
+}\r
+\r
+function projReady(aChunk)\r
+{\r
+       gaChunks[gnLoad++]=aChunk;\r
+       var len=aChunk.length;\r
+       var nTotal=0;\r
+       if(len>0)\r
+               nTotal=aChunk[len-1].nTotal;\r
+       gnItems+=nTotal;\r
+       if(nTotal>gnMaxItems)\r
+       {\r
+               gnMaxItems=nTotal;\r
+               gnRef=gnLoad-1;\r
+       }\r
+       setTimeout("writeDataIFrame();",1);\r
+}\r
+\r
+function writeFakeItems()\r
+{\r
+       disEvt();\r
+       gnUHeight=15;\r
+       var sHTML=getFakeItemsHTMLbyCount(0,gnItems);\r
+       document.body.insertAdjacentHTML("beforeEnd",sHTML);\r
+       var obj=getH6ById(0);\r
+       if (document.body != null)\r
+       {\r
+               gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);\r
+       }\r
+       gaFakes[0]=new fakeItemsArea(0,gnItems,"",getEndString(),obj);\r
+       enEvt();\r
+}\r
+\r
+function getEndString()\r
+{\r
+       var sBC=getBiggestChar();\r
+       return sBC+sBC+sBC+sBC+sBC+sBC+sBC+sBC;\r
+}\r
+\r
+function getUnitIdx(nScrl,nHeight)\r
+{\r
+       if(gaFakes.length==0)\r
+       {\r
+               markEnd();\r
+               return;\r
+       }\r
+       var nB=0;\r
+       var nE=gaFakes.length-1;\r
+       var nM=-1;\r
+       var nTop=0;\r
+       var nBtm=0;\r
+       var bF=false;\r
+       do{\r
+               nM=(nB+nE)>>1;\r
+               nBtm=gaFakes[nM].getBtm();\r
+               nTop=gaFakes[nM].getTop();\r
+                       \r
+               if(nTop>=nScrl+nHeight)\r
+                       nE=nM-1;\r
+               else if(nBtm<nScrl)\r
+                       nB=nM+1;\r
+               else{\r
+                       bF=true;\r
+                       break;\r
+               }\r
+       }while(nE>=nB);\r
+       if(bF)\r
+       {\r
+               if(nTop>=nScrl){\r
+                       gsSKA=gaFakes[nM].sKA;\r
+                       gsSKB=null;\r
+                       gnNeeded=Math.ceil((nHeight-nTop+nScrl)/gnUHeight);\r
+                       gnIns=gaFakes[nM].nB;\r
+                       checkReady();\r
+               }\r
+               else if(nBtm<=nScrl+nHeight){\r
+                       gsSKB=gaFakes[nM].sKB;\r
+                       gsSKA=null;\r
+                       gnNeeded=Math.ceil((nBtm-nScrl+gnScrlMgn)/gnUHeight);\r
+                       gbNeedCalc=true;\r
+                       checkReady();\r
+               }\r
+               else{\r
+                       gnNeeded=gnVisible;\r
+                       var nUnitIdx=gaFakes[nM].nB+Math.floor((nScrl-nTop)/gnUHeight);\r
+                       if (!showItemsInEvaluation(nUnitIdx))\r
+                       {\r
+                               gsSKA=gaFakes[nM].sKA;\r
+                               gsSKB=null;\r
+                               gnNeeded=Math.ceil(nHeight/gnUHeight);\r
+                               gnIns=gaFakes[nM].nB;\r
+                               checkReady();\r
+                       }\r
+               }\r
+       }\r
+       else\r
+               markEnd();\r
+}\r
+\r
+function disEvt()\r
+{\r
+       window.onscroll=null;\r
+       window.onresize=null;\r
+}\r
+\r
+function enEvt()\r
+{\r
+       window.onscroll=window_OnScroll;\r
+       window.onresize=window_OnResize;\r
+}\r
+\r
+function insertIdxKs(nIns,oHTML,bScrl)\r
+{\r
+       var bRtn=true;\r
+       disEvt();\r
+       var nCount=oHTML.nConsumed;\r
+       var nB=0;\r
+       var nE=gaFakes.length-1;\r
+       var nM=-1;\r
+       var bF=false;\r
+       do{\r
+               nM=(nB+nE)>>1;\r
+               if(gaFakes[nM].nB>nIns)\r
+                       nE=nM-1;\r
+               else if(gaFakes[nM].nB+gaFakes[nM].nNum<=nIns)\r
+                       nB=nM+1;\r
+               else{\r
+                       bF=true;\r
+                       break;\r
+               }\r
+       }while(nE>=nB);\r
+       if(bF)\r
+       {\r
+               var oFIA=gaFakes[nM];\r
+               var nOffsetTop=oFIA.getTop();\r
+               var nOffsetBottom=oFIA.getBtm();\r
+               var nDelta=0;\r
+               var nHDiff=nIns-oFIA.nB;\r
+               var nTDiff=oFIA.nNum+oFIA.nB-(nIns+nCount);\r
+               if(nHDiff>0)\r
+               {\r
+                       nDelta=oFIA.setNum(nHDiff);\r
+                       var sOldKBefore=oFIA.sKB;\r
+                       oFIA.sKB=oHTML.sFK;\r
+                       if(nTDiff>0)\r
+                       {\r
+                               var sHTML=getFakeItemsHTMLbyCount(nIns,nTDiff);\r
+                               oFIA.insertAdjacentHTML("afterEnd",sHTML);\r
+                               var obj=getH6ById(nIns);\r
+                               insertItemIntoArray(gaFakes,nM+1,new fakeItemsArea(nIns+nCount,nTDiff,oHTML.sLK,sOldKBefore,obj));\r
+                       }\r
+                       oFIA.insertAdjacentHTML("afterEnd",oHTML.sHTML);        \r
+                       if(bScrl)\r
+                       {\r
+                               if(gbMac&&gbIE4)\r
+                               {\r
+                                       var nScrollPos=nOffsetBottom-nDelta;\r
+                                       while(document.body.scrollTop!=nScrollPos)\r
+                                               document.body.scrollTop=nScrollPos;\r
+                               }\r
+                               else\r
+                                       window.scrollTo(0,nOffsetBottom-nDelta);\r
+                       }\r
+               }\r
+               else{\r
+                       oFIA.insertAdjacentHTML("beforeBegin",oHTML.sHTML);\r
+                       if(bScrl){\r
+                               if(gbMac&&gbIE4)\r
+                               {\r
+                                       var nScrollPos=nOffsetTop;\r
+                                       while(document.body.scrollTop!=nScrollPos)\r
+                                               document.body.scrollTop=nScrollPos;\r
+                               }\r
+                               else\r
+                                       window.scrollTo(0,nOffsetTop);\r
+                       }\r
+                                       \r
+                       if(nTDiff>0)\r
+                       {\r
+                               oFIA.nB=nIns+nCount;\r
+                               nDelta=oFIA.setNum(nTDiff);\r
+                               oFIA.sKA=oHTML.sLK;\r
+                       }       \r
+                       else{\r
+                               gaFakes[nM].setNum(0);\r
+                               removeItemFromArray(gaFakes,nM);\r
+                       }\r
+               }\r
+       }\r
+       else\r
+               bRtn=false;\r
+       enEvt();\r
+       return bRtn;\r
+}\r
+\r
+function window_OnScroll()\r
+{\r
+       gnSE++;\r
+       setTimeout("procScroll();",50); \r
+}\r
+\r
+function procScroll()\r
+{\r
+       if(gnSE==1&&!gbProcess)\r
+       {\r
+               markBegin();\r
+               getUnitIdx(document.body.scrollTop,document.body.clientHeight);\r
+       }\r
+       gnSE--;\r
+}\r
+\r
+function window_OnResize()\r
+{\r
+       gnRE++;\r
+       setTimeout("procResize();",50);\r
+}\r
+\r
+function procResize()\r
+{\r
+       if(gnRE==1&&!gbProcess)\r
+       {\r
+               markBegin();\r
+               gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);\r
+               if(gnIns==-1)\r
+                       getUnitIdx(document.body.scrollTop,document.body.clientHeight);\r
+       }\r
+       gnRE--;\r
+}\r
+\r
+function getChunkByIdx(nIdx,nPosition)\r
+{\r
+       var oCData=null;\r
+       if(nIdx<gaChunks.length)\r
+       {\r
+               var len=gaChunks[nIdx].length;\r
+               if(len>0)\r
+               {\r
+                       var nB=0;\r
+                       var nE=len-1;\r
+                       var bF=false;\r
+                       do{\r
+                               var nM=(nB+nE)>>1;\r
+                               if(nPosition<gaChunks[nIdx][nM].nTotal)\r
+                               {\r
+                                       bF=true;\r
+                                       nE=nM;\r
+                               }\r
+                               else\r
+                                       nB=nM+1;\r
+                       }while(nE>nB);\r
+                       if(bF)\r
+                               oCData=gaChunks[nIdx][nE];\r
+                       else if(nPosition<gaChunks[nIdx][nB].nTotal)\r
+                               oCData=gaChunks[nIdx][nB];\r
+               }\r
+       }\r
+       return oCData;\r
+}\r
+\r
+function getChunkedData(nIdx,bDown,sK)\r
+{\r
+       var oCData=null;\r
+       var nCandId=-1;\r
+       if(nIdx<gaChunks.length)\r
+       {\r
+               var len=gaChunks[nIdx].length;\r
+               if(len>0)\r
+               {\r
+                       var nB=0;\r
+                       var nE=len-1;\r
+                       var bF=false;\r
+                       do{\r
+                               var nM=(nB+nE+(bDown?0:1))>>1;\r
+                               if(bDown)\r
+                               {\r
+                                       if(compare(sK,gaChunks[nIdx][nM].sEK)<0)\r
+                                       {\r
+                                               bF=true;\r
+                                               nE=nM;\r
+                                       }\r
+                                       else\r
+                                               nB=nM+1;\r
+                               }\r
+                               else\r
+                               {\r
+                                       if(compare(sK,gaChunks[nIdx][nM].sBK)>0)\r
+                                       {\r
+                                               bF=true;\r
+                                               nB=nM;\r
+                                       }\r
+                                       else\r
+                                               nE=nM-1;\r
+                               }\r
+                       }while(nE>nB);\r
+                       if(bF)\r
+                       {\r
+                               if(bDown)\r
+                                       nCandId=nE;\r
+                               else\r
+                                       nCandId=nB;\r
+                       }\r
+                       else\r
+                       {\r
+                               if(bDown)\r
+                               {\r
+                                       if(gaChunks[nIdx].length>nB&&compare(sK,gaChunks[nIdx][nB].sEK)<0)\r
+                                               nCandId=nB;\r
+                                       else\r
+                                               nCandId=gaChunks[nIdx].length-1;\r
+                               }\r
+                               else\r
+                               {\r
+                                       if(0<=nE&&compare(sK,gaChunks[nIdx][nE].sBK)>0)\r
+                                               nCandId=nE;\r
+                                       else\r
+                                               nCandId=0;\r
+                               }\r
+                       }\r
+                       return gaChunks[nIdx][nCandId];\r
+               }\r
+       }\r
+       return null;\r
+}\r
+\r
+function findCK()\r
+{\r
+       if(gsCK!=null)\r
+       {\r
+               gsSKA=gsCK;\r
+               gbFindCK=true;\r
+               gnNeeded=1;\r
+               markBegin();\r
+               checkReady();\r
+       }\r
+}\r
+\r
+function writeLoadingDiv(nIIdx)\r
+{\r
+       return "<div id=\""+gsLoadingDivID+"\" style=\"position:absolute;top:0;left:0;z-index:600;visibility:hidden;padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";\r
+}\r
+\r
+var gbWhHost=true;
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whibody.htm b/doc/salome/gui/VISU/whibody.htm
new file mode 100755 (executable)
index 0000000..62cbf7a
--- /dev/null
@@ -0,0 +1,288 @@
+<html>\r
+<head>\r
+<title>Index content</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whmozemu.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whlang.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2" src="whhost.js"></script>\r
+<script language="javascript1.2" src="whihost.js"></script>\r
+<script language="javascript1.2">\r
+<!--\r
+var gnPageWidth = 0;\r
+var gnPageHeight = 0;\r
+var goPopup = null;\r
+var gITE = new Array();\r
+var gIndexLetterArray = new Array();\r
+var gbPopupMenuTimeoutExpired=false;\r
+var gBsClientWidth=640;\r
+var gBsClientHeight=480;\r
+var g_bIsPopupMenuInit=false;\r
+\r
+function WritePopupMenuLayer()\r
+{\r
+       if (!g_bIsPopupMenuInit)\r
+       {\r
+               document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");\r
+               document.write("<STYLE TYPE='text/css'>");\r
+               if (gbMac && gbIE4) {\r
+                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:10pt; text-decoration:none;}");\r
+                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:10pt; text-decoration:none;}");\r
+               } else {\r
+                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:8pt; text-decoration:none;}");\r
+                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:8pt; text-decoration:none;}");\r
+               }\r
+               document.write("</STYLE>");\r
+       }\r
+       g_bIsPopupMenuInit = true;\r
+}\r
+\r
+function PopupMenu_Invoke()\r
+{\r
+       if (gbNav6)\r
+               resetHighLight();\r
+       \r
+       if (!gbNav6  && document.readyState != "complete")\r
+               return false;\r
+       var fn_arguments = PopupMenu_Invoke.arguments; \r
+       // Make sure we have reasonable arguments\r
+       var argLen = fn_arguments.length;\r
+       if (argLen < 3) {\r
+               return false;\r
+       }\r
+\r
+       // Check to see if we only have one target\r
+       var strTarget = "";\r
+       \r
+       strTarget = "TARGET='" + fn_arguments[1] + "'";\r
+       \r
+       if (argLen < 5) {\r
+               // Get the place that we will be putting the topic into\r
+               var strURL = fn_arguments[3];\r
+\r
+               if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined")\r
+                       window.open(strURL, fn_arguments[1]);\r
+               else\r
+                       window.open(strURL);\r
+                       \r
+               return false;\r
+       }\r
+       \r
+       var strMenu = '<TABLE STYLE="border:2px outset white;" CELLSPACING=0';\r
+       if (gbMac && gbIE4) {\r
+               strMenu += ' CELLPADDING=4';\r
+       } else {\r
+               strMenu += ' CELLPADDING=2';\r
+       }       \r
+       strMenu += ' BGCOLOR=#c0c0c0>';\r
+\r
+       // Add each of the items\r
+       if (gbIE55)\r
+       {\r
+               var i = 2;\r
+               while (i <= argLen - 1) {\r
+                       strMenu += '<TR><TD><NOBR>'\r
+                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A ';\r
+                       strMenu += ' onclick="parent.PopupMenu_2HandleClick(\'' + fn_arguments[i + 1] + '\', \'' + fn_arguments[1] + '\');"';\r
+                       strMenu += ' onmouseover="parent.PopupMenu_Over(event);"';\r
+                       strMenu += ' onmouseout="parent.PopupMenu_Out(event);"';\r
+                       strMenu += '>';\r
+                       strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';\r
+                       strMenu += '</A></DIV></NOBR></TD></TR>';\r
+                       i += 2;\r
+               }\r
+       }\r
+       else\r
+       {\r
+               var i = 2;\r
+               while (i <= argLen - 1) {\r
+                       strMenu += '<TR><TD><NOBR>'\r
+                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + fn_arguments[i + 1] + '" ' + strTarget;\r
+                       strMenu += ' onclick="PopupMenu_HandleClick(event);"';\r
+                       strMenu += ' onmouseover="PopupMenu_Over(event);"';\r
+                       strMenu += ' onmouseout="PopupMenu_Out(event);"';\r
+                       strMenu += '>';\r
+                       strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';\r
+                       strMenu += '</A></DIV></NOBR></TD></TR>';\r
+                       i += 2;\r
+               }\r
+       }\r
+       strMenu += "</TABLE>";\r
+\r
+       if (gbMac && gbIE4) {\r
+       // ie5 in mac need something. </TABLE> is one of them.\r
+               strMenu +="<TABLE></TABLE>";\r
+       }\r
+\r
+       var layerPopup = null;\r
+       var stylePopup = null;\r
+       var nEventX = 0;\r
+       var nEventY = 0;\r
+       var nWindowWidth = 0;\r
+       if (gbIE4)\r
+       {\r
+               layerPopup = document.all["PopupMenu"];\r
+               layerPopup.innerHTML = strMenu;\r
+               stylePopup = layerPopup.style;\r
+\r
+               _BSPSGetClientSize();\r
+\r
+               // Get the position of the item causing the event (relative to its parent)\r
+               nEventX = window.event.clientX;\r
+               nEventY = window.event.clientY;\r
+               \r
+               if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) {\r
+                       nEventY += document.body.scrollTop + 10;\r
+               } else {\r
+                       nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20;\r
+               }\r
+               stylePopup.top = nEventY;\r
+\r
+               if (nEventX + layerPopup.scrollWidth + 20 > gBsClientWidth) {\r
+                       if (gBsClientWidth - layerPopup.scrollWidth < 5) {\r
+                               stylePopup.left = 5;\r
+                       } else {\r
+                               stylePopup.left = gBsClientWidth - layerPopup.scrollWidth - 5;\r
+                       }\r
+               } else {\r
+                       stylePopup.left = nEventX + document.body.scrollLeft + 20;\r
+               }\r
+\r
+               if (gbIE55) {\r
+                       var nPosX = window.event.clientX;\r
+                       var nPosY = window.event.clientY;\r
+                       if (window.event.srcElement)\r
+                       {\r
+                               nPosX = window.event.srcElement.offsetLeft + window.event.srcElement.offsetWidth - document.body.scrollLeft;\r
+                               nPosY = window.event.srcElement.offsetTop + window.event.srcElement.offsetHeight - document.body.scrollTop;\r
+                       }\r
+                       goPopup = window.createPopup();\r
+                       var oPopupBody = goPopup.document.body;\r
+                       goPopup.document.createStyleSheet();\r
+                       goPopup.document.styleSheets[0].addRule(".PopupOver", "{font-family:\"Arial\"; cursor: hand;color:white; background:navy; font-size:8pt; text-decoration:none;}");\r
+                       goPopup.document.styleSheets[0].addRule(".PopupNotOver", "{font-family:\"Arial\"; color:black; background:#c0c0c0; font-size:8pt; text-decoration:none;}");\r
+                       oPopupBody.insertAdjacentHTML("afterBegin", strMenu);\r
+                       goPopup.show(nPosX, nPosY, layerPopup.scrollWidth, layerPopup.scrollHeight, document.body);\r
+               }\r
+               else \r
+               {\r
+                       stylePopup.visibility = "visible";\r
+                       document.onclick = PopupMenu_HandleClick;\r
+               }\r
+       } else if (gbNav6) {\r
+               layerPopup = document.getElementById("PopupMenu");\r
+               layerPopup.style.visibility = "hidden";\r
+       \r
+               var e = fn_arguments[0];\r
+               nEventX = e.pageX;\r
+               nEventY = e.pageY;\r
+               _BSPSGetClientSize();\r
+               layerPopup.innerHTML = strMenu;\r
+\r
+               if (nEventY + layerPopup.offsetHeight + 20  <  window.pageYOffset + gBsClientHeight) {\r
+                       nEventY += 20;\r
+               } else {\r
+                       nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20;\r
+               }\r
+\r
+               if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) {\r
+                       if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) {\r
+                               nEventX = 5;\r
+                       } else {\r
+                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20;\r
+                       }\r
+               } else {\r
+                       nEventX += 20;\r
+               }\r
+               layerPopup.style.top = nEventY;\r
+               layerPopup.style.left = nEventX;\r
+\r
+               // set again to avoid the frash in netscape 6.\r
+               layerPopup.innerHTML = strMenu;\r
+               layerPopup.style.visibility = "visible";\r
+               window.onclick = PopupMenu_HandleClick;\r
+       } \r
+\r
+       window.gbPopupMenuTimeoutExpired = false;\r
+       setTimeout("PopupMenu_Timeout();", 100);\r
+       return false;\r
+}\r
+\r
+function PopupMenu_Timeout()\r
+{\r
+       window.gbPopupMenuTimeoutExpired = true;\r
+}\r
+\r
+function PopupMenu_Over(e)\r
+{\r
+       if (gbIE4)\r
+               e.srcElement.className = "PopupOver";\r
+       else if (gbNav6)\r
+               e.target.parentNode.className = "PopupOver";\r
+}\r
+\r
+function PopupMenu_Out(e)\r
+{\r
+       if (gbIE4)\r
+               e.srcElement.className = "PopupNotOver";\r
+       else if (gbNav6)\r
+               e.target.parentNode.className = "PopupNotOver";\r
+}\r
+\r
+function PopupMenu_2HandleClick(surl, starget)\r
+{\r
+       window.open(surl, starget);\r
+       goPopup.hide();\r
+}\r
+\r
+function PopupMenu_HandleClick(e)\r
+{\r
+       if (!window.gbPopupMenuTimeoutExpired) {\r
+               return;\r
+       }\r
+\r
+       var layerPopup = getElement("PopupMenu");\r
+       layerPopup.style.visibility = "hidden";\r
+\r
+       return;\r
+}\r
+\r
+//Get client size info\r
+function _BSPSGetClientSize()\r
+{\r
+       gBsClientWidth  = document.body.clientWidth;\r
+       gBsClientHeight = document.body.clientHeight;\r
+}\r
+\r
+if (window.gbWhIHost)\r
+{\r
+       setBackgroundcolor("White");\r
+       \r
+       setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
+       setFont("Empty", "Tahoma","8pt","Black","Normal","Normal","none");\r
+       setFont("Hover", "Tahoma","8pt","Navy","Normal","Normal","underline");\r
+       setActiveBgColor("Silver");\r
+       \r
+       \r
+       IndexWriteClassStyle();\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+</head>\r
+<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" scroll="auto" bgcolor="white">\r
+<script languageE="JavaScript">\r
+<!--\r
+WritePopupMenuLayer();\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
+\r
diff --git a/doc/salome/gui/VISU/whidhtml.htm b/doc/salome/gui/VISU/whidhtml.htm
new file mode 100755 (executable)
index 0000000..8a420e4
--- /dev/null
@@ -0,0 +1,30 @@
+<html>\r
+<head>\r
+<title>Index</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</head>\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2">\r
+<!--\r
+var gbIndexLayerInit = false;\r
+if (window.gbWhProxy&&window.gbWhMsg&&window.gbWhVer)\r
+{\r
+       var strWrite;\r
+       if (gbMac)\r
+               strWrite="<FRAMESET ROWS='45,100%' framespacing=0  frameborder=0>";\r
+       else\r
+               strWrite="<FRAMESET ROWS='60,100%' framespacing=0  frameborder=0>";\r
+       strWrite +="<FRAME SRC='whiform.htm' title='index form frame' name='idxform' noresize='yes' scrolling='no'>";\r
+       strWrite +="<FRAME SRC='whibody.htm' title='index content frame' name='idxbody' scrolling='yes'>";\r
+       strWrite +="</FRAMESET>";\r
+       document.write(strWrite);\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+</html>\r
diff --git a/doc/salome/gui/VISU/whiform.htm b/doc/salome/gui/VISU/whiform.htm
new file mode 100755 (executable)
index 0000000..1f2835d
--- /dev/null
@@ -0,0 +1,91 @@
+<html>\r
+<head>\r
+<title>Index form</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</head>\r
+<style>\r
+<!--\r
+body {margin:0;}\r
+-->\r
+</style>\r
+<body bgcolor="#c0c0c0">\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2" src="whform.js"></script>\r
+<script language="javascript1.2">\r
+<!--\r
+function indexLookup(bCR)\r
+{\r
+       var strInput = document.IndexInputForm.keywordField.value.toUpperCase();\r
+       if (strInput != "") {\r
+               var oParam = new Object();\r
+               oParam.sInput = strInput;\r
+               oParam.bCR = bCR;\r
+               var oMessage = new whMessage(WH_MSG_SEARCHINDEXKEY, this, 1, oParam);\r
+               SendMessage(oMessage);\r
+       }\r
+       if (gbMac) {\r
+               document.IndexInputForm.keywordField.focus();\r
+       }\r
+}\r
+\r
+function window_Unload()\r
+{\r
+       UnRegisterListener2(this, WH_MSG_SHOWTOC);\r
+       UnRegisterListener2(this, WH_MSG_SHOWIDX);\r
+       UnRegisterListener2(this, WH_MSG_SHOWFTS);\r
+       UnRegisterListener2(this, WH_MSG_SHOWGLO);\r
+}\r
+\r
+function onSendMessage(oMessage)\r
+{\r
+       if (oMessage.nMessageId == WH_MSG_SHOWIDX)\r
+       {\r
+               document.IndexInputForm.keywordField.focus();\r
+       }\r
+       else if (oMessage.nMessageId == WH_MSG_SHOWFTS ||\r
+               oMessage.nMessageId == WH_MSG_SHOWTOC || \r
+               oMessage.nMessageId == WH_MSG_SHOWGLO)\r
+       {\r
+               document.IndexInputForm.keywordField.blur();\r
+       }\r
+       return true;\r
+}\r
+\r
+if (window.gbWhForm)\r
+{\r
+       RegisterListener2(this, WH_MSG_SHOWTOC);\r
+       RegisterListener2(this, WH_MSG_SHOWIDX);\r
+       RegisterListener2(this, WH_MSG_SHOWFTS);\r
+       RegisterListener2(this, WH_MSG_SHOWGLO);\r
+       window.onunload=window_Unload;\r
+       window.onload = init;\r
+       gfunLookUp = indexLookup;\r
+       gfunInit = null;\r
+       gstrFormName = "IndexInputForm"\r
+       gsTitle = "Type in the keyword to find:";\r
+       gsTitle = "Type in the keyword to find:";\r
+\r
+       setBackgroundcolor("White");\r
+       \r
+       setBtnType("none");\r
+       \r
+       \r
+       \r
+       setGoText("Go");\r
+       setFont("Title", "Tahoma","8pt","Navy","Normal","Normal","none");\r
+       \r
+       \r
+       document.write(getFormHTML());\r
+       writeFormStyle();\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whihost.js b/doc/salome/gui/VISU/whihost.js
new file mode 100755 (executable)
index 0000000..7e2ab32
--- /dev/null
@@ -0,0 +1,432 @@
+var gsDefaultTarget="bsscright";\r
+var gsBgColor="#ffffff";\r
+var gsBgImage="";\r
+var goIdxFont=null;\r
+var goIdxEmptyFont=null;\r
+var goIdxHoverFont=null;\r
+var gsIdxMargin="0pt";\r
+var gsIdxIndent="8pt";\r
+var gsIdxActiveBgColor="#cccccc";\r
+var gsCK = null;\r
+var gsBCK = null;\r
+var gbCR = false;\r
+var gbBCR = false;\r
+var gbWhIHost=true;\r
+\r
+function myEvent()\r
+{\r
+       this.pageX = 0;\r
+       this.pageY = 0;\r
+}\r
+var _event=new myEvent();\r
+\r
+function setBackgroundcolor(sBgColor)\r
+{\r
+       gsBgColor=sBgColor;\r
+}\r
+\r
+function setBackground(sBgImage)\r
+{\r
+       gsBgImage=sBgImage;\r
+}\r
+\r
+function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
+{\r
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
+       if(sType=="Normal")\r
+               goIdxFont=vFont;\r
+       else if(sType=="Empty")\r
+               goIdxEmptyFont=vFont;\r
+       else if(sType=="Hover")\r
+               goIdxHoverFont=vFont;\r
+}\r
+\r
+function setActiveBgColor(sBgColor)\r
+{\r
+       gsIdxActiveBgColor=sBgColor;\r
+}\r
+\r
+function setMargin(sMargin)\r
+{\r
+       gsIdxMargin=sMargin;\r
+}\r
+\r
+function setIndent(sIndent)\r
+{\r
+       gsIdxIndent=sIndent;\r
+}\r
+\r
+function writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)\r
+{\r
+       var sHTML="";\r
+       var nIdxSet=aCurIdxSet[0];\r
+       var nIIdx=aPos[nIdxSet];\r
+       var sKOriName=getItemName(aDataCon,nIdxSet,nIIdx);\r
+       var sKName=_textToHtml(sKOriName);\r
+\r
+       var nIdxIndent=parseInt(gsIdxIndent);\r
+       var sTopics="";\r
+       if(nLevel==1){\r
+               if(getItemType(aDataCon,nIdxSet,nIIdx)==1)\r
+               {\r
+                       sHTML+="<H6><nobr>";\r
+                       sHTML+="<b>"+sKName+"</b></nobr></H6>";\r
+               }\r
+               else{\r
+                       for(var i=0;i<nLength;i++)\r
+                               sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
+                       sHTML+="<p style=\"margin-left:"+gsIdxIndent+"\"><nobr>";\r
+                       sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+getTargetName(aDataCon,nIdxSet,nIIdx)+"'";\r
+                       if(sTopics.length>0)\r
+                               sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></p>";\r
+                       else\r
+                               sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></p>";\r
+               }\r
+       }\r
+       else if(nLevel>=2){\r
+               var nIndent=nIdxIndent*nLevel;\r
+               for(var i=0;i<nLength;i++)\r
+                       sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
+               if (nLevel==2)\r
+                       sHTML+="<h6 class=\"firstsub\" style=\"margin-left:"+nIndent+"pt\"><nobr>";\r
+               else\r
+                       sHTML+="<h6 style=\"margin-left:"+nIndent+"pt\"><nobr>";\r
+               sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+getTargetName(aDataCon,nIdxSet,nIIdx)+"'";\r
+               if(sTopics.length>0)\r
+                       sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></h6>";\r
+               else\r
+                       sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></h6>";\r
+       }\r
+       oHTML.addHTML(sHTML,nLength,bDown,(nLevel==1),sKOriName);\r
+}\r
+\r
+function getTargetName(aDataCon,nIdxSet,nIIdx)\r
+{\r
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
+               if(aDataCon[nIdxSet].aKs[nIIdx].sTarget)\r
+                       return aDataCon[nIdxSet].aKs[nIIdx].sTarget;\r
+       return gsDefaultTarget;\r
+}\r
+\r
+function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)\r
+{\r
+       var oLocalHTML=new indexHTMLPart();\r
+       writeOneItem(oLocalHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel);\r
+       \r
+       var aLocalPos=new Array();\r
+       var aMaxPos=new Array();\r
+       for(var i=0;i<aPos.length;i++)\r
+       {\r
+               aLocalPos[i]=aPos[i];\r
+               aMaxPos[i]=-1;\r
+       }\r
+       \r
+       for(i=0;i<nLength;i++)\r
+       {\r
+               var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aLocalPos[aCurIdxSet[i]]);\r
+               aLocalPos[aCurIdxSet[i]]++;\r
+               if(nNKOff>0)\r
+                       aMaxPos[aCurIdxSet[i]]=aLocalPos[aCurIdxSet[i]]+nNKOff;\r
+       }\r
+       var oSubHTML=new indexHTMLPart();\r
+       writeItems(oSubHTML,aDataCon,aLocalPos,null,aMaxPos,true,nLevel+1);\r
+       oLocalHTML.addSubHTML(oSubHTML,true);\r
+       oHTML.appendHTML(oLocalHTML,bDown);\r
+}\r
+\r
+function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)\r
+{\r
+       if(bDown)\r
+       {\r
+               for(var i=0;i<nLength;i++)\r
+               {\r
+                       var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
+                       aPos[aCurIdxSet[i]]+=(1+nNKOff);\r
+               }\r
+       }\r
+       else{\r
+               for(var i=0;i<nLength;i++)\r
+               {\r
+                       var nPKOff=getPKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
+                       aPos[aCurIdxSet[i]]-=(1+nPKOff);\r
+               }\r
+       }\r
+}\r
+\r
+function getItemName(aDataCon,nIdxSet,nIIdx)\r
+{\r
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
+               return aDataCon[nIdxSet].aKs[nIIdx].sName;\r
+       else\r
+               return null;\r
+}\r
+\r
+function getItemType(aDataCon,nIdxSet,nIIdx)\r
+{\r
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
+               return aDataCon[nIdxSet].aKs[nIIdx].nType;\r
+       else\r
+               return 0;\r
+}\r
+\r
+function getNKOff(aDataCon,nIdxSet,nIIdx)\r
+{\r
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
+               return aDataCon[nIdxSet].aKs[nIIdx].nNKOff;\r
+       else\r
+               return null;\r
+}\r
+\r
+function getPKOff(aDataCon,nIdxSet,nIIdx)\r
+{\r
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
+               return aDataCon[nIdxSet].aKs[nIIdx].nPKOff;\r
+       else\r
+               return null;\r
+}\r
+\r
+function window_OnLoad()\r
+{\r
+       if(gsBgImage&&gsBgImage.length>0)\r
+       {\r
+               document.body.background=gsBgImage;\r
+       }\r
+       if(gsBgColor&&gsBgColor.length>0)\r
+       {\r
+               document.body.bgColor=gsBgColor;\r
+       }\r
+       document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());\r
+       loadIdx();\r
+       var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function loadIdx()\r
+{\r
+       if(!gbReady)\r
+       {\r
+               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
+               if(SendMessage(oResMsg)&&oResMsg.oParam)\r
+               {\r
+                       gbReady=true;\r
+                       var oProj=oResMsg.oParam;\r
+                       var aProj=oProj.aProj;\r
+                       gbXML=oProj.bXML;\r
+                       if(aProj.length>0)\r
+                       {\r
+                               var sLangId=aProj[0].sLangId;\r
+                               for(var i=0;i<aProj.length;i++)\r
+                               {\r
+                                       if(aProj[i].sIdx!=null&&aProj[i].sIdx!=""&&aProj[i].sLangId==sLangId)\r
+                                       {\r
+                                               addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sIdx);\r
+                                       }\r
+                               }\r
+                       }\r
+                       writeDataIFrame();\r
+                       enEvt();\r
+               }               \r
+       }\r
+}\r
+\r
+function getIdxTopics(aDataCon,nIdxSet,nIIdx)\r
+{\r
+       var sTopics="";\r
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
+       {\r
+               if(aDataCon[nIdxSet].aKs[nIIdx].aTopics)\r
+               {\r
+                       var nLen=aDataCon[nIdxSet].aKs[nIIdx].aTopics.length;\r
+                       var nProj=aDataCon[nIdxSet].nProjId;\r
+                       var sPath=gaData[nProj].sPPath;\r
+                       for(var i=0;i<nLen;i++)\r
+                       {\r
+                               var sURL=aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sURL;\r
+                               var sFullPath=_getFullPath(sPath,sURL);\r
+                               sTopics+=",'"+excapeSingleQuot(_textToHtml(aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sName))+"','"+_textToHtml_nonbsp(sFullPath)+"'";\r
+                       }\r
+               }\r
+       }\r
+       return sTopics;         \r
+}\r
+\r
+function excapeSingleQuot(str)\r
+{\r
+       if(str==null) return null;\r
+       var sRes=str;\r
+       var re=new RegExp("'","g");\r
+       sRes=sRes.replace(re,"\\'");\r
+       return sRes;\r
+}\r
+\r
+function findCKInDom()\r
+{\r
+       if(gsCK!=null)\r
+       {\r
+               var sK=gsCK;\r
+               var oP=getElementsByTag(document,"P");\r
+               if(!oP) return false;\r
+               var len=oP.length;\r
+               var nB=0;\r
+               var nE=len-1;\r
+               var nM=0;\r
+               var sItem="";\r
+               var bF=false;\r
+               while(nB<nE){\r
+                       nM=(nB+nE+1)>>1;\r
+                       sItem=getInnerText(oP[nM]);\r
+                       \r
+                       if(compare(sItem,sK)==0)\r
+                       {\r
+                               bF=true;\r
+                               break;\r
+                       }\r
+                       else if(compare(sItem,sK)>0)\r
+                               nE=nM-1;\r
+                       else if(compare(sItem,sK)<0)\r
+                               nB=nM;\r
+               }\r
+               if(!bF)\r
+               {\r
+                       if(nB==nE) nM=nB;\r
+               \r
+                       if(nM+1<len)\r
+                       {\r
+                               sItem=getInnerText(oP[nM+1]);\r
+                               if(compare(sItem,sK)<=0) nM++;\r
+                       }                       \r
+                       if(nM+1<len)\r
+                       {\r
+                               sItem=getInnerText(oP[nM+1]);\r
+                               if(compare(sItem.substring(0,sK.length),sK)==0) nM++;\r
+                       }                       \r
+               }\r
+       \r
+               var oMatch=oP[nM];\r
+               if(oMatch)\r
+               {\r
+                       window.scrollTo(0,oMatch.offsetTop);\r
+                       var tempColl=getElementsByTag(oMatch,"A");\r
+                       if(tempColl&&tempColl.length>0){\r
+                               var nbTag=getElementsByTag(oMatch,"NOBR");\r
+                               if(nbTag&&nbTag.length>0)\r
+                                       HighLightElement(nbTag[0], gsIdxActiveBgColor, "transparent");\r
+                               if (gbCR)\r
+                               {\r
+                                       if (gbIE4)\r
+                                               tempColl(0).click();\r
+                                       else\r
+                                       {\r
+                                               var strCommand = tempColl[0].getAttribute("onClick");\r
+                                               var nstrCommand = strCommand.indexOf(";");\r
+                                               strCommand = strCommand.substring(0, nstrCommand);\r
+                                               strCommand = strCommand.replace("event", "_event");\r
+                                               window._event.pageX = oMatch.offsetLeft ;\r
+                                               window._event.pageY = oMatch.offsetTop + 20;\r
+                                               window.setTimeout(strCommand, 100);\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+               gsCK=gsBCK;\r
+               gbCR=gbBCR;\r
+               if(gsBCK!=null)\r
+               {\r
+                       gsBCK=null;\r
+                       gbBCR=false;\r
+                       findCK();\r
+                       return false;\r
+               }\r
+               \r
+       }\r
+       return true;\r
+}\r
+\r
+function clearHighLight()\r
+{\r
+       resetHighLight(gsBgColor);\r
+}\r
+\r
+function IndexWriteClassStyle()\r
+{\r
+       var sStyle="";\r
+       sStyle+="<STYLE TYPE='text/css'>";\r
+       if (gsBgImage)\r
+               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
+       else\r
+               sStyle+="body {border-top:black 1px solid;}\n";\r
+       if(gbIE4&&gbMac&&!gbIE5)\r
+       {\r
+               var nMargin=parseInt(gsIdxMargin);\r
+               nMargin-=10;\r
+               sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
+               sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
+               sStyle+="H6.firstsub {"+getFontStyle(goIdxFont)+"margin-top:"+nMargin+"pt;margin-bottom:"+gsIdxMargin+";}\n";\r
+       }\r
+       else\r
+       {\r
+               sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
+               sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
+       }\r
+       sStyle+="DIV {margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
+       sStyle+="A:link {"+getFontStyle(goIdxFont)+"}\n";\r
+       sStyle+="A:visited {"+getFontStyle(goIdxFont)+"}\n";\r
+       sStyle+="A:active {background-color:"+gsIdxActiveBgColor+";}\n";\r
+       sStyle+="A:hover {"+getFontStyle(goIdxHoverFont)+"}\n";\r
+       sStyle+="</STYLE>";     \r
+       document.write(sStyle);\r
+       return;\r
+}\r
+\r
+function window_Unload()\r
+{\r
+       UnRegisterListener2(this,WH_MSG_PROJECTREADY);\r
+       UnRegisterListener2(this,WH_MSG_SEARCHINDEXKEY);\r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       if(oMsg)\r
+       {\r
+               var nMsgId=oMsg.nMessageId;\r
+               if(nMsgId==WH_MSG_SEARCHINDEXKEY)\r
+               {\r
+                       if(oMsg.oParam && oMsg.oParam.sInput)\r
+                       {\r
+                               if(gsCK==null)\r
+                               {\r
+                                       gsCK=oMsg.oParam.sInput;\r
+                                       gbCR = oMsg.oParam.bCR;\r
+                                       findCK();\r
+                               }\r
+                               else\r
+                               {\r
+                                       gsBCK=oMsg.oParam.sInput;\r
+                                       gbBCR = oMsg.oParam.bCR;\r
+                               }\r
+                       }\r
+               }\r
+               else if(nMsgId==WH_MSG_PROJECTREADY)\r
+               {\r
+                       loadIdx();\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+if(window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhHost&&window.gbWhProxy)\r
+{\r
+       RegisterListener2(this,WH_MSG_PROJECTREADY);\r
+       RegisterListener2(this,WH_MSG_SEARCHINDEXKEY);\r
+       goIdxFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
+       goIdxEmptyFont=new whFont("Verdana","8pt","#666666","normal","normal","none");\r
+       goIdxHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");\r
+\r
+       window.onload=window_OnLoad;\r
+       window.onbeforeunload=window_BUnload;\r
+       window.onunload=window_Unload;\r
+       gbWhIHost=true;\r
+}\r
+else\r
+       document.location.reload();\r
+\r
diff --git a/doc/salome/gui/VISU/whlang.js b/doc/salome/gui/VISU/whlang.js
new file mode 100755 (executable)
index 0000000..055b5b8
--- /dev/null
@@ -0,0 +1,452 @@
+var garrSortChar=new Array();\r
+var gaFtsStop=new Array();\r
+var gaFtsStem=new Array();\r
+var gbWhLang=false;\r
+\r
+garrSortChar[0] = 0;\r
+garrSortChar[1] = 1;\r
+garrSortChar[2] = 2;\r
+garrSortChar[3] = 3;\r
+garrSortChar[4] = 4;\r
+garrSortChar[5] = 5;\r
+garrSortChar[6] = 6;\r
+garrSortChar[7] = 7;\r
+garrSortChar[8] = 8;\r
+garrSortChar[9] = 40;\r
+garrSortChar[10] = 41;\r
+garrSortChar[11] = 42;\r
+garrSortChar[12] = 43;\r
+garrSortChar[13] = 44;\r
+garrSortChar[14] = 9;\r
+garrSortChar[15] = 10;\r
+garrSortChar[16] = 11;\r
+garrSortChar[17] = 12;\r
+garrSortChar[18] = 13;\r
+garrSortChar[19] = 14;\r
+garrSortChar[20] = 15;\r
+garrSortChar[21] = 16;\r
+garrSortChar[22] = 17;\r
+garrSortChar[23] = 18;\r
+garrSortChar[24] = 19;\r
+garrSortChar[25] = 20;\r
+garrSortChar[26] = 21;\r
+garrSortChar[27] = 22;\r
+garrSortChar[28] = 23;\r
+garrSortChar[29] = 24;\r
+garrSortChar[30] = 25;\r
+garrSortChar[31] = 26;\r
+garrSortChar[32] = 38;\r
+garrSortChar[33] = 45;\r
+garrSortChar[34] = 46;\r
+garrSortChar[35] = 47;\r
+garrSortChar[36] = 48;\r
+garrSortChar[37] = 49;\r
+garrSortChar[38] = 50;\r
+garrSortChar[39] = 33;\r
+garrSortChar[40] = 51;\r
+garrSortChar[41] = 52;\r
+garrSortChar[42] = 53;\r
+garrSortChar[43] = 88;\r
+garrSortChar[44] = 54;\r
+garrSortChar[45] = 34;\r
+garrSortChar[46] = 55;\r
+garrSortChar[47] = 56;\r
+garrSortChar[48] = 115;\r
+garrSortChar[49] = 119;\r
+garrSortChar[50] = 121;\r
+garrSortChar[51] = 123;\r
+garrSortChar[52] = 125;\r
+garrSortChar[53] = 126;\r
+garrSortChar[54] = 127;\r
+garrSortChar[55] = 128;\r
+garrSortChar[56] = 129;\r
+garrSortChar[57] = 130;\r
+garrSortChar[58] = 57;\r
+garrSortChar[59] = 58;\r
+garrSortChar[60] = 89;\r
+garrSortChar[61] = 90;\r
+garrSortChar[62] = 91;\r
+garrSortChar[63] = 59;\r
+garrSortChar[64] = 60;\r
+garrSortChar[65] = 131;\r
+garrSortChar[66] = 148;\r
+garrSortChar[67] = 150;\r
+garrSortChar[68] = 154;\r
+garrSortChar[69] = 158;\r
+garrSortChar[70] = 168;\r
+garrSortChar[71] = 171;\r
+garrSortChar[72] = 173;\r
+garrSortChar[73] = 175;\r
+garrSortChar[74] = 185;\r
+garrSortChar[75] = 187;\r
+garrSortChar[76] = 189;\r
+garrSortChar[77] = 191;\r
+garrSortChar[78] = 193;\r
+garrSortChar[79] = 197;\r
+garrSortChar[80] = 214;\r
+garrSortChar[81] = 216;\r
+garrSortChar[82] = 218;\r
+garrSortChar[83] = 220;\r
+garrSortChar[84] = 225;\r
+garrSortChar[85] = 230;\r
+garrSortChar[86] = 240;\r
+garrSortChar[87] = 242;\r
+garrSortChar[88] = 244;\r
+garrSortChar[89] = 246;\r
+garrSortChar[90] = 252;\r
+garrSortChar[91] = 61;\r
+garrSortChar[92] = 62;\r
+garrSortChar[93] = 63;\r
+garrSortChar[94] = 64;\r
+garrSortChar[95] = 66;\r
+garrSortChar[96] = 67;\r
+garrSortChar[97] = 131;\r
+garrSortChar[98] = 148;\r
+garrSortChar[99] = 150;\r
+garrSortChar[100] = 154;\r
+garrSortChar[101] = 158;\r
+garrSortChar[102] = 168;\r
+garrSortChar[103] = 171;\r
+garrSortChar[104] = 173;\r
+garrSortChar[105] = 175;\r
+garrSortChar[106] = 185;\r
+garrSortChar[107] = 187;\r
+garrSortChar[108] = 189;\r
+garrSortChar[109] = 191;\r
+garrSortChar[110] = 193;\r
+garrSortChar[111] = 197;\r
+garrSortChar[112] = 214;\r
+garrSortChar[113] = 216;\r
+garrSortChar[114] = 218;\r
+garrSortChar[115] = 220;\r
+garrSortChar[116] = 225;\r
+garrSortChar[117] = 230;\r
+garrSortChar[118] = 240;\r
+garrSortChar[119] = 242;\r
+garrSortChar[120] = 244;\r
+garrSortChar[121] = 246;\r
+garrSortChar[122] = 252;\r
+garrSortChar[123] = 68;\r
+garrSortChar[124] = 69;\r
+garrSortChar[125] = 70;\r
+garrSortChar[126] = 71;\r
+garrSortChar[127] = 27;\r
+garrSortChar[128] = 114;\r
+garrSortChar[129] = 28;\r
+garrSortChar[130] = 82;\r
+garrSortChar[131] = 170;\r
+garrSortChar[132] = 85;\r
+garrSortChar[133] = 112;\r
+garrSortChar[134] = 109;\r
+garrSortChar[135] = 110;\r
+garrSortChar[136] = 65;\r
+garrSortChar[137] = 113;\r
+garrSortChar[138] = 223;\r
+garrSortChar[139] = 86;\r
+garrSortChar[140] = 213;\r
+garrSortChar[141] = 29;\r
+garrSortChar[142] = 255;\r
+garrSortChar[143] = 30;\r
+garrSortChar[144] = 31;\r
+garrSortChar[145] = 80;\r
+garrSortChar[146] = 81;\r
+garrSortChar[147] = 83;\r
+garrSortChar[148] = 84;\r
+garrSortChar[149] = 111;\r
+garrSortChar[150] = 36;\r
+garrSortChar[151] = 37;\r
+garrSortChar[152] = 79;\r
+garrSortChar[153] = 229;\r
+garrSortChar[154] = 222;\r
+garrSortChar[155] = 87;\r
+garrSortChar[156] = 212;\r
+garrSortChar[157] = 32;\r
+garrSortChar[158] = 254;\r
+garrSortChar[159] = 251;\r
+garrSortChar[160] = 39;\r
+garrSortChar[161] = 72;\r
+garrSortChar[162] = 97;\r
+garrSortChar[163] = 98;\r
+garrSortChar[164] = 99;\r
+garrSortChar[165] = 100;\r
+garrSortChar[166] = 73;\r
+garrSortChar[167] = 101;\r
+garrSortChar[168] = 74;\r
+garrSortChar[169] = 102;\r
+garrSortChar[170] = 133;\r
+garrSortChar[171] = 93;\r
+garrSortChar[172] = 103;\r
+garrSortChar[173] = 35;\r
+garrSortChar[174] = 104;\r
+garrSortChar[175] = 75;\r
+garrSortChar[176] = 105;\r
+garrSortChar[177] = 92;\r
+garrSortChar[178] = 122;\r
+garrSortChar[179] = 124;\r
+garrSortChar[180] = 76;\r
+garrSortChar[181] = 106;\r
+garrSortChar[182] = 107;\r
+garrSortChar[183] = 108;\r
+garrSortChar[184] = 77;\r
+garrSortChar[185] = 120;\r
+garrSortChar[186] = 199;\r
+garrSortChar[187] = 94;\r
+garrSortChar[188] = 116;\r
+garrSortChar[189] = 117;\r
+garrSortChar[190] = 118;\r
+garrSortChar[191] = 78;\r
+garrSortChar[192] = 131;\r
+garrSortChar[193] = 131;\r
+garrSortChar[194] = 131;\r
+garrSortChar[195] = 131;\r
+garrSortChar[196] = 131;\r
+garrSortChar[197] = 131;\r
+garrSortChar[198] = 131;\r
+garrSortChar[199] = 150;\r
+garrSortChar[200] = 158;\r
+garrSortChar[201] = 158;\r
+garrSortChar[202] = 158;\r
+garrSortChar[203] = 158;\r
+garrSortChar[204] = 175;\r
+garrSortChar[205] = 175;\r
+garrSortChar[206] = 175;\r
+garrSortChar[207] = 175;\r
+garrSortChar[208] = 154;\r
+garrSortChar[209] = 193;\r
+garrSortChar[210] = 197;\r
+garrSortChar[211] = 197;\r
+garrSortChar[212] = 197;\r
+garrSortChar[213] = 197;\r
+garrSortChar[214] = 197;\r
+garrSortChar[215] = 95;\r
+garrSortChar[216] = 197;\r
+garrSortChar[217] = 230;\r
+garrSortChar[218] = 230;\r
+garrSortChar[219] = 230;\r
+garrSortChar[220] = 230;\r
+garrSortChar[221] = 246;\r
+garrSortChar[222] = 227;\r
+garrSortChar[223] = 224;\r
+garrSortChar[224] = 131;\r
+garrSortChar[225] = 131;\r
+garrSortChar[226] = 131;\r
+garrSortChar[227] = 131;\r
+garrSortChar[228] = 131;\r
+garrSortChar[229] = 131;\r
+garrSortChar[230] = 131;\r
+garrSortChar[231] = 150;\r
+garrSortChar[232] = 158;\r
+garrSortChar[233] = 158;\r
+garrSortChar[234] = 158;\r
+garrSortChar[235] = 158;\r
+garrSortChar[236] = 175;\r
+garrSortChar[237] = 175;\r
+garrSortChar[238] = 175;\r
+garrSortChar[239] = 175;\r
+garrSortChar[240] = 154;\r
+garrSortChar[241] = 193;\r
+garrSortChar[242] = 197;\r
+garrSortChar[243] = 197;\r
+garrSortChar[244] = 197;\r
+garrSortChar[245] = 197;\r
+garrSortChar[246] = 197;\r
+garrSortChar[247] = 96;\r
+garrSortChar[248] = 197;\r
+garrSortChar[249] = 230;\r
+garrSortChar[250] = 230;\r
+garrSortChar[251] = 230;\r
+garrSortChar[252] = 230;\r
+garrSortChar[253] = 246;\r
+garrSortChar[254] = 227;\r
+garrSortChar[255] = 250;\r
+\r
+gaFtsStop[0] = "a";\r
+gaFtsStop[1] = "about";\r
+gaFtsStop[2] = "after";\r
+gaFtsStop[3] = "against";\r
+gaFtsStop[4] = "all";\r
+gaFtsStop[5] = "also";\r
+gaFtsStop[6] = "among";\r
+gaFtsStop[7] = "an";\r
+gaFtsStop[8] = "and";\r
+gaFtsStop[9] = "are";\r
+gaFtsStop[10] = "as";\r
+gaFtsStop[11] = "at";\r
+gaFtsStop[12] = "be";\r
+gaFtsStop[13] = "became";\r
+gaFtsStop[14] = "because";\r
+gaFtsStop[15] = "been";\r
+gaFtsStop[16] = "between";\r
+gaFtsStop[17] = "but";\r
+gaFtsStop[18] = "by";\r
+gaFtsStop[19] = "can";\r
+gaFtsStop[20] = "come";\r
+gaFtsStop[21] = "do";\r
+gaFtsStop[22] = "during";\r
+gaFtsStop[23] = "each";\r
+gaFtsStop[24] = "early";\r
+gaFtsStop[25] = "for";\r
+gaFtsStop[26] = "form";\r
+gaFtsStop[27] = "found";\r
+gaFtsStop[28] = "from";\r
+gaFtsStop[29] = "had";\r
+gaFtsStop[30] = "has";\r
+gaFtsStop[31] = "have";\r
+gaFtsStop[32] = "he";\r
+gaFtsStop[33] = "her";\r
+gaFtsStop[34] = "his";\r
+gaFtsStop[35] = "however";\r
+gaFtsStop[36] = "in";\r
+gaFtsStop[37] = "include";\r
+gaFtsStop[38] = "into";\r
+gaFtsStop[39] = "is";\r
+gaFtsStop[40] = "it";\r
+gaFtsStop[41] = "its";\r
+gaFtsStop[42] = "late";\r
+gaFtsStop[43] = "later";\r
+gaFtsStop[44] = "made";\r
+gaFtsStop[45] = "many";\r
+gaFtsStop[46] = "may";\r
+gaFtsStop[47] = "me";\r
+gaFtsStop[48] = "med";\r
+gaFtsStop[49] = "more";\r
+gaFtsStop[50] = "most";\r
+gaFtsStop[51] = "near";\r
+gaFtsStop[52] = "no";\r
+gaFtsStop[53] = "non";\r
+gaFtsStop[54] = "not";\r
+gaFtsStop[55] = "of";\r
+gaFtsStop[56] = "on";\r
+gaFtsStop[57] = "only";\r
+gaFtsStop[58] = "or";\r
+gaFtsStop[59] = "other";\r
+gaFtsStop[60] = "over";\r
+gaFtsStop[61] = "several";\r
+gaFtsStop[62] = "she";\r
+gaFtsStop[63] = "some";\r
+gaFtsStop[64] = "such";\r
+gaFtsStop[65] = "than";\r
+gaFtsStop[66] = "that";\r
+gaFtsStop[67] = "the";\r
+gaFtsStop[68] = "their";\r
+gaFtsStop[69] = "then";\r
+gaFtsStop[70] = "there";\r
+gaFtsStop[71] = "these";\r
+gaFtsStop[72] = "they";\r
+gaFtsStop[73] = "this";\r
+gaFtsStop[74] = "through";\r
+gaFtsStop[75] = "to";\r
+gaFtsStop[76] = "under";\r
+gaFtsStop[77] = "until";\r
+gaFtsStop[78] = "use";\r
+gaFtsStop[79] = "was";\r
+gaFtsStop[80] = "we";\r
+gaFtsStop[81] = "were";\r
+gaFtsStop[82] = "when";\r
+gaFtsStop[83] = "where";\r
+gaFtsStop[84] = "which";\r
+gaFtsStop[85] = "who";\r
+gaFtsStop[86] = "with";\r
+gaFtsStop[87] = "you";\r
+\r
+gaFtsStem[0] = "s";\r
+gaFtsStem[1] = "e";\r
+gaFtsStem[2] = "ed";\r
+gaFtsStem[3] = "es";\r
+gaFtsStem[4] = "er";\r
+gaFtsStem[5] = "ly";\r
+gaFtsStem[6] = "ing";\r
+gaFtsStem[7] = "ingly";\r
+\r
+\r
+// as javascript 1.3 support unicode instead of ISO-Latin-1\r
+// need to transfer come code back to ISO-Latin-1 for compare purpose\r
+// Note: Different Language(Code page) maybe need different array:\r
+var gaUToC=new Array();\r
+gaUToC[8364]=128;\r
+gaUToC[8218]=130;\r
+gaUToC[402]=131;\r
+gaUToC[8222]=132;\r
+gaUToC[8230]=133;\r
+gaUToC[8224]=134;\r
+gaUToC[8225]=135;\r
+gaUToC[710]=136;\r
+gaUToC[8240]=137;\r
+gaUToC[352]=138;\r
+gaUToC[8249]=139;\r
+gaUToC[338]=140;\r
+gaUToC[381]=142;\r
+gaUToC[8216]=145;\r
+gaUToC[8217]=146;\r
+gaUToC[8220]=147;\r
+gaUToC[8221]=148;\r
+gaUToC[8226]=149;\r
+gaUToC[8211]=150;\r
+gaUToC[8212]=151;\r
+gaUToC[732]=152;\r
+gaUToC[8482]=153;\r
+gaUToC[353]=154;\r
+gaUToC[8250]=155;\r
+gaUToC[339]=156;\r
+gaUToC[382]=158;\r
+gaUToC[376]=159;\r
+\r
+var gsBiggestChar="";\r
+function getBiggestChar()\r
+{\r
+       if(gsBiggestChar.length==0)\r
+       {\r
+               if(garrSortChar.length<256)\r
+                       gsBiggestChar=String.fromCharCode(255);\r
+               else\r
+               {\r
+                       var nBiggest=0;\r
+                       var nBigChar=0;\r
+                       for(var i=0;i<=255;i++)\r
+                       {\r
+                               if(garrSortChar[i]>nBiggest)\r
+                               {\r
+                                       nBiggest=garrSortChar[i];\r
+                                       nBigChar=i;\r
+                               }\r
+                       }\r
+                       gsBiggestChar=String.fromCharCode(nBigChar);\r
+               }\r
+\r
+       }       \r
+       return gsBiggestChar;\r
+}\r
+\r
+function getCharCode(str,i)\r
+{\r
+       var code=str.charCodeAt(i)\r
+       if(code>256)\r
+       {\r
+               code=gaUToC[code];\r
+       }\r
+       return code;\r
+}\r
+\r
+function compare(strText1,strText2)\r
+{\r
+       if(garrSortChar.length<256)\r
+       {\r
+               var strt1=strText1.toLowerCase();\r
+               var strt2=strText2.toLowerCase();\r
+               if(strt1<strt2) return -1;\r
+               if(strt1>strt2) return 1;\r
+               return 0;\r
+       }\r
+       else\r
+       {\r
+               for(var i=0;i<strText1.length&&i<strText2.length;i++)\r
+               {\r
+                       if(garrSortChar[getCharCode(strText1,i)]<garrSortChar[getCharCode(strText2,i)]) return -1;\r
+                       if(garrSortChar[getCharCode(strText1,i)]>garrSortChar[getCharCode(strText2,i)]) return 1;\r
+               }\r
+               if(strText1.length<strText2.length) return -1;\r
+               if(strText1.length>strText2.length) return 1;\r
+               return 0;\r
+       }\r
+}\r
+gbWhLang=true;
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whmozemu.js b/doc/salome/gui/VISU/whmozemu.js
new file mode 100755 (executable)
index 0000000..699779f
--- /dev/null
@@ -0,0 +1,68 @@
+if (! window.gbIE4 && window.gbNav6 && !document.childNodes[0].insertAdjacentHTML){\r
+\r
+HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)\r
+{\r
+       switch (where){\r
+       case 'beforeBegin':\r
+               this.parentNode.insertBefore(parsedNode,this)\r
+               break;\r
+       case 'afterBegin':\r
+               this.insertBefore(parsedNode,this.firstChild);\r
+               break;\r
+       case 'beforeEnd':\r
+               this.appendChild(parsedNode);\r
+               break;\r
+       case 'afterEnd':\r
+               if (this.nextSibling){\r
+               this.parentNode.insertBefore\r
+(parsedNode,this.nextSibling);\r
+               } else {\r
+               this.parentNode.appendChild(parsedNode)\r
+               }\r
+               break;\r
+       }\r
+}\r
+\r
+HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr){\r
+\r
+       var r = this.ownerDocument.createRange();\r
+       r.setStartBefore(this);\r
+       var parsedHTML = r.createContextualFragment(htmlStr);\r
+       this.insertAdjacentElement(where,parsedHTML)\r
+}\r
+\r
+\r
+HTMLElement.prototype.insertAdjacentText = function(where,txtStr){\r
+\r
+       var parsedText = document.createTextNode(txtStr)\r
+       this.insertAdjacentElement(where,parsedText)\r
+}\r
+}\r
+\r
+function testScroll() {\r
+       // Initialize scrollbar cache if necessary\r
+       if (window._pageXOffset==null) {\r
+               window._pageXOffset = window.pageXOffset\r
+               window._pageYOffset = window.pageYOffset\r
+       }\r
+       // Expose Internet Explorer compatible object model\r
+       document.body.scrollTop = window.pageYOffset\r
+       document.body.scrollLeft = window.pageXOffset\r
+       window.document.body.scrollHeight = document.height\r
+       window.document.body.scrollWidth = document.width\r
+       window.document.body.clientWidth = window.innerWidth;\r
+       window.document.body.clientHeight = window.innerHeight;\r
+\r
+       // If cache!=current values, call the onscroll event\r
+       if (((window.pageXOffset!=window._pageXOffset) || \r
+                       (window.pageYOffset!=window._pageYOffset)) && (window.onscroll)) \r
+               window.onscroll()\r
+       // Cache new values\r
+       window._pageXOffset = window.pageXOffset\r
+       window._pageYOffset = window.pageYOffset\r
+       }\r
+\r
+// Create compatibility layer for Netscape\r
+if (window.gbNav6) {\r
+       setInterval("testScroll()",50)\r
+}
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whmsg.js b/doc/salome/gui/VISU/whmsg.js
new file mode 100755 (executable)
index 0000000..e08cc08
--- /dev/null
@@ -0,0 +1,64 @@
+var WH_MSG_RESIZEPANE          =0x0100;\r
+var WH_MSG_SHOWPANE                    =0x0101;\r
+var WH_MSG_HIDEPANE                    =0x0102;\r
+var WH_MSG_SYNCTOC                     =0x0103;\r
+var WH_MSG_NEXT                                =0x0104;\r
+var WH_MSG_PREV                                =0x0105;\r
+var WH_MSG_ENABLEPREV          =0x0106;\r
+var WH_MSG_ENABLESYNC          =0x0107;\r
+var WH_MSG_ENABLEWEBSEARCH     =0x0108;\r
+\r
+var WH_MSG_ISPANEVISIBLE       =0x0109;\r
+var WH_MSG_PANESTATUE          =0x010a;\r
+\r
+var    WH_MSG_SYNCINFO                 =0x010b;\r
+var WH_MSG_PANEINFO                    =0x010c;\r
+var WH_MSG_WEBSEARCH           =0x010d;\r
+\r
+var WH_MSG_SEARCHINDEXKEY      =0x0201;\r
+\r
+var WH_MSG_SEARCHFTSKEY        =0x020a;\r
+\r
+var WH_MSG_PROJECTREADY                =0x0301;\r
+var WH_MSG_GETPROJINFO                 =0x0302;\r
+\r
+var WH_MSG_SHOWTOC                     =0x0401;\r
+var WH_MSG_SHOWIDX                     =0x0402;\r
+var WH_MSG_SHOWFTS                     =0x0403;\r
+var WH_MSG_SHOWGLO                     =0x0404;\r
+\r
+var WH_MSG_SHOWGLODEF          =0x0500;\r
+\r
+var WH_MSG_GETTOCPATHS                 =0x0600;\r
+var WH_MSG_GETAVIAVENUES       =0x0601;\r
+var WH_MSG_GETCURRENTAVENUE =0x0602;\r
+var WH_MSG_GETPANEINFO         =0x0603;\r
+var WH_MSG_AVENUEINFO          =0x0604;\r
+\r
+var WH_MSG_GETSTARTFRAME       =0x0701;\r
+var WH_MSG_GETDEFAULTTOPIC     =0x0702;\r
+\r
+var WH_MSG_SEARCHTHIS          =0x0801;\r
+var WH_MSG_GETSEARCHS          =0x0802;\r
+\r
+var WH_MSG_ISINFRAMESET                =0x0900;\r
+\r
+var WH_MSG_TOOLBARORDER                =0x0a00;\r
+var WH_MSG_MINIBARORDER                =0x0a01;\r
+var WH_MSG_ISSYNCSSUPPORT      =0x0a02;\r
+var WH_MSG_ISSEARCHSUPPORT     =0x0a03;\r
+var WH_MSG_GETPANETYPE         =0x0a04;\r
+var WH_MSG_BACKUPSEARCH                =0x0a05;\r
+var WH_MSG_GETPANES                    =0x0a06;\r
+var WH_MSG_INITSEARCHSTRING =0x0a07;\r
+var WH_MSG_RELOADNS6           =0x0a08;\r
+var WH_MSG_ISAVENUESUPPORT     =0x0a09;\r
+\r
+function whMessage(nMessageId,wSender,nVersion,oParam)\r
+{\r
+       this.nMessageId=nMessageId;\r
+       this.wSender=wSender;\r
+       this.nVersion=nVersion;\r
+       this.oParam=oParam;\r
+}\r
+var gbWhMsg=true;
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whnjs.htm b/doc/salome/gui/VISU/whnjs.htm
new file mode 100755 (executable)
index 0000000..77866d3
--- /dev/null
@@ -0,0 +1,15 @@
+<html>\r
+<head>\r
+<title>VISU refrence manual</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whstub.js"></script>\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whstart.js"></script>\r
+</head>\r
+\r
+<frameset id="whPfset" cols="260,*"><noframes><p>Your browser does not support frames. We recommend that you update your browser to a version that supports frames.</p><p>To view the Help system without frames click on this<a href="whgdata/whnvp30.htm">hyperlink.</a></p></noframes><frame src="whgdata/whnvp30.htm" title="navigation pane" name="navigation pane" scrolling="no"><frame src="files/introduction_to_visu.htm" title="topic pane" name="bsscright" scrolling="yes"></frameset>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whphost.js b/doc/salome/gui/VISU/whphost.js
new file mode 100755 (executable)
index 0000000..d4c80bb
--- /dev/null
@@ -0,0 +1,526 @@
+var gaProj=new Array();\r
+var gnChecked=0;\r
+var gsProjName="";\r
+var gbReady=false;\r
+var goMan=null;\r
+var gbXML=false;\r
+var gsFirstPane="";\r
+var gServerEnabled=false;\r
+var gsPath="";\r
+var gbWhPHost=false;\r
+var goDiv = null;\r
+var gsHTML = "";\r
+\r
+if (navigator.currentNavPen)\r
+       gsFirstPane = navigator.currentNavPen;\r
+\r
+\r
+function delayLoad()\r
+{\r
+       if (goDiv&&gsHTML)\r
+       {\r
+               goDiv.innerHTML=gsHTML;\r
+               goDiv=null;\r
+               gsHTML="";\r
+       }\r
+}\r
+\r
+function whCom(sName,sComFile)\r
+{\r
+       this.msName=sName;\r
+       this.msDivId=sName+"Div";\r
+       this.msIFrameId=sName+"IFrame";\r
+       this.msComFile=sComFile;\r
+       this.mbloaded=false;\r
+       this.mbShow=false;\r
+       this.show=function(bShow)\r
+       {\r
+               if(this.mbShow!=bShow)\r
+               {\r
+                       if(bShow&&!this.mbloaded)\r
+                       {\r
+                               this.load();\r
+                       }\r
+\r
+                       var oDiv=getElement(this.msDivId);\r
+                       if(oDiv)\r
+                       {\r
+                               if(gbIE55||(gbIE5&&gbMac))\r
+                               {\r
+                                       var oIframe=getElement(this.msIFrameId);\r
+                                       if(oIframe)\r
+                                       {\r
+                                               if(bShow)\r
+                                               {\r
+                                                       oDiv.style.zIndex=3;\r
+                                                       if(oIframe!=null)\r
+                                                       {\r
+                                                               oIframe.style.zIndex=3;\r
+                                                               if (!gbIE55)\r
+                                                                       oIframe.style.visibility="visible";\r
+                                                       }\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       oDiv.style.zIndex=2;\r
+                                                       if(oIframe!=null)\r
+                                                       {\r
+                                                               oIframe.style.zIndex=2;\r
+                                                               if (!gbIE55)\r
+                                                                       oIframe.style.visibility="hidden";\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                               if (!gbIE55)\r
+                                       oDiv.style.visibility=(bShow==true)?'visible':'hidden';\r
+                               this.mbShow=bShow;\r
+                       }\r
+\r
+               }\r
+       }\r
+       this.load=function()\r
+       {\r
+               if(!this.mbloaded)\r
+               {\r
+                       if(this.msComFile.length>0){\r
+                               var strFile= _getFullPath(getPath(), this.msComFile);\r
+                               var oDiv=getElement(this.msDivId);\r
+                               if(oDiv){\r
+                                       if(gbIE4){\r
+                                               var nIFrameHeight=oDiv.style.pixelHeight;\r
+                                               var nIFrameWidth=oDiv.style.pixelWidth;\r
+                                               var sHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:";\r
+                                               if(gbMac){\r
+                                                       sHTML+=nIFrameWidth+"px;height:"+nIFrameHeight+"px;\"></IFRAME>";\r
+                                               }else{\r
+                                                       sHTML+="100%; height:100%;\"></IFRAME>";\r
+                                               }\r
+                                               oDiv.innerHTML=sHTML;\r
+                                       }else if(gbNav6){\r
+                                               gsHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:100%;border:0;height:";\r
+                                               gsHTML+="100%;\"></IFRAME>";\r
+                                               goDiv = oDiv;\r
+                                               setTimeout("delayLoad()", 100);\r
+                                       }\r
+                                       this.mbloaded=true;\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+       this.unload=function()\r
+       {\r
+               var oDiv=getElement(this.msDivId);\r
+               if(oDiv)\r
+                       oDiv.innerHTML="";\r
+       }\r
+       this.getDivHTML=function()\r
+       {\r
+               var sHTML="";\r
+               if(gbMac&&gbIE4)\r
+                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;margin:0;padding:0;border:0;\">";\r
+               else\r
+                       if (gbIE5)\r
+                               sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;\">";\r
+                       else\r
+                               sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;visibility:hidden\">";\r
+               sHTML+="</DIV>";\r
+               return sHTML;\r
+       }\r
+}  \r
+\r
+function whComMan()\r
+{\r
+       this.sName="";\r
+       this.maCom=new Array();\r
+       this.addCom=function(sName,sComFile)\r
+       {\r
+               var owhCom=new whCom(sName,sComFile);\r
+               this.maCom[this.maCom.length]=owhCom;\r
+       }\r
+       this.init=function()\r
+       {\r
+               var sHTML="";\r
+               for(var i=0;i<this.maCom.length;i++)\r
+               {\r
+                       sHTML+=this.maCom[i].getDivHTML();\r
+               }\r
+               document.body.insertAdjacentHTML("beforeEnd",sHTML);\r
+\r
+       }\r
+       this.showById=function(nId)\r
+       {\r
+               for(var s=0;s<this.maCom.length;s++)\r
+               {\r
+                       if(s!==nId)\r
+                               this.maCom[s].show(false);\r
+               }\r
+               this.maCom[nId].show(true);\r
+       }\r
+       this.show=function(sName)\r
+       {\r
+               navigator.currentNavPen = sName;\r
+               var bFound=false;\r
+               for(var i=0;i<this.maCom.length;i++)\r
+               {\r
+                       if(sName==this.maCom[i].msName)\r
+                       {\r
+                               bFound=true;\r
+                               break;\r
+                       }\r
+               }\r
+               if(bFound)\r
+               {\r
+                       this.showById(i);\r
+                       this.sName=sName;\r
+               }\r
+       }\r
+       this.unload=function()\r
+       {\r
+               for(var i=0;i<this.maCom.length;i++)\r
+               {\r
+                       this.maCom[i].unload();\r
+               }               \r
+       }\r
+       this.getCurrent=function()\r
+       {\r
+               return this.sName;\r
+       }\r
+}\r
+\r
+function getPath()\r
+{\r
+       if(gsPath=="")\r
+       {\r
+               gsPath=location.href;\r
+               gsPath=_replaceSlash(gsPath);\r
+               var nPosFile=gsPath.lastIndexOf("/");\r
+               gsPath=gsPath.substring(0,nPosFile+1);\r
+       }\r
+       return gsPath;\r
+}\r
+\r
+goMan=new whComMan();\r
+function addPane(sName,sFileName)\r
+{\r
+       goMan.addCom(sName,sFileName);  \r
+}\r
+\r
+function setShowPane(sName, bForce)\r
+{\r
+       if ((gsFirstPane == "") || bForce)\r
+               gsFirstPane=sName;\r
+}\r
+\r
+function window_OnLoad()\r
+{\r
+       if(gsProjName!="")\r
+       {\r
+               goMan.init();\r
+               if(gsFirstPane!="")\r
+                       goMan.show(gsFirstPane);\r
+               else\r
+                       goMan.showById(0);\r
+               loadData2(gsProjName);\r
+       }\r
+       else if (gServerEnabled)\r
+       {\r
+               goMan.init();\r
+               if(gsFirstPane!="")\r
+                       goMan.show(gsFirstPane);\r
+               else\r
+                       goMan.showById(0);\r
+       }\r
+}\r
+\r
+function setServerEnabled()\r
+{\r
+       gServerEnabled = true;\r
+}\r
+\r
+function loadData2(strFile)\r
+{\r
+       if(gbXML)\r
+               loadDataXML(strFile);\r
+       else\r
+               loadData(strFile);\r
+}\r
+\r
+function addProject(bPreferXML,sXMLName,sHTMLName)\r
+{\r
+       var bLoadXML=bPreferXML;\r
+       if(!gbIE4&&!gbNav6)\r
+               return;\r
+       if(gbIE4&&!gbIE5)\r
+               bLoadXML=false;\r
+       if (gbIE5&&!gbMac)\r
+               bLoadXML=true;\r
+       if(gbIE55||gbNav6)\r
+               bLoadXML=true;\r
+       if(bLoadXML)\r
+               addProjectXML(sXMLName);\r
+       else\r
+               addProjectHTML(sHTMLName);\r
+}\r
+\r
+function addProjectHTML(sName)\r
+{\r
+       gbXML=false;\r
+       gsProjName=sName;\r
+}\r
+\r
+function addProjectXML(sName)\r
+{\r
+       gbXML=true;\r
+       gsProjName=sName;\r
+}\r
+\r
+function window_MyBunload()\r
+{\r
+       goMan.unload();\r
+       window_BUnload();\r
+}\r
+\r
+function putDataXML(xmlDoc,sdocPath)\r
+{\r
+       if(xmlDoc!=null)\r
+       {\r
+               var projectNode=xmlDoc.getElementsByTagName("project")[0];\r
+               if(projectNode)\r
+               {\r
+                       var aRProj=new Array();\r
+                       aRProj[0]=new Object();\r
+                       aRProj[0].sPPath=_getPath(sdocPath);\r
+                       var sLangId=projectNode.getAttribute("langid");\r
+                       if(sLangId)\r
+                       {\r
+                               aRProj[0].sLangId=sLangId;\r
+                       }\r
+                       var sDPath=projectNode.getAttribute("datapath");\r
+                       if(sDPath)\r
+                       {\r
+                               if(sDPath.lastIndexOf("/")!=sDPath.length-1)\r
+                                       sDPath+="/";\r
+                               aRProj[0].sDPath=sDPath;\r
+                       }\r
+                       else\r
+                               aRProj[0].sDPath="";\r
+                       aRProj[0].sToc=projectNode.getAttribute("toc");\r
+                       aRProj[0].sIdx=projectNode.getAttribute("index");\r
+                       aRProj[0].sFts=projectNode.getAttribute("fts");\r
+                       aRProj[0].sGlo=projectNode.getAttribute("glossary");\r
+                       var RmtProject=projectNode.getElementsByTagName("remote");\r
+                       var nCount=1;\r
+                       for (var i=0;i<RmtProject.length;i++)\r
+                       {\r
+                               var sURL=RmtProject[i].getAttribute("url");\r
+                               if(sURL)\r
+                               {\r
+                                       aRProj[nCount]=new Object();\r
+                                       aRProj[nCount++].sPPath=_getFullPath(aRProj[0].sPPath,sURL);\r
+                               }\r
+                       }\r
+                       putProjectInfo(aRProj);\r
+               }\r
+               else\r
+               {\r
+                       // on Netscape 6.0 under some situation the xml file cannot be loaded.\r
+                       // so we use pure html instead.\r
+                       setTimeout("redirectToList();",100);\r
+               }\r
+       }\r
+}\r
+\r
+function redirectToList()\r
+{\r
+       if(gbReDirectThis)\r
+               document.location=gsNavReDirect;\r
+       else\r
+               parent.document.location=gsNavReDirect;\r
+}\r
+\r
+function putProjectInfo(aRProj)\r
+{\r
+       if(gnChecked==0||isSamePath(gaProj[gnChecked].sPPath,aRProj[0].sPPath))\r
+       {\r
+               if(gnChecked!=0)\r
+               {\r
+                       if(aRProj[0].sLangId!=gaProj[0].sLangId)\r
+                               alert("The project: "+aRProj[0].sPPath+" is using a different language to the main project, which will cause the index and full text search functionality to be disabled for this remote project.");\r
+               }\r
+               gaProj[gnChecked]=aRProj[0];\r
+               for(var i=1;i<aRProj.length;i++)\r
+               {\r
+                       var bFound=false;\r
+                       for(var j=0;j<gaProj.length;j++)\r
+                       {\r
+                               if(isSamePath(gaProj[j].sPPath,aRProj[i].sPPath))\r
+                               {\r
+                                       bFound=true;\r
+                                       break;\r
+                               }\r
+                       }\r
+                       if(!bFound)\r
+                       {\r
+                               gaProj[gaProj.length]=aRProj[i];\r
+                       }\r
+               }\r
+               gnChecked++;\r
+               checkRemoteProject();\r
+       }\r
+       else\r
+               alert("Could not load correctly, please click Refresh.");\r
+}\r
+\r
+function isSamePath(sPath1,sPath2)\r
+{\r
+       return (sPath1.toLowerCase()==sPath2.toLowerCase());\r
+}\r
+\r
+function checkRemoteProject()\r
+{\r
+       if(gaProj.length!=gnChecked)\r
+       {\r
+               setTimeout("cancelProj("+gnChecked+");",10000);\r
+               loadData2(gaProj[gnChecked].sPPath+gsProjName);\r
+       }\r
+       else{\r
+               var oMsg=new whMessage(WH_MSG_PROJECTREADY,this,1,null);\r
+               gbReady=true;\r
+               SendMessage(oMsg);\r
+       }\r
+}\r
+\r
+function cancelProj(i)\r
+{\r
+       if(i==gnChecked)\r
+       {\r
+               alert("Can't load project::"+gaProj[i].sPPath);\r
+               gnChecked++;\r
+               checkRemoteProject();\r
+       }       \r
+}\r
+\r
+function window_resize()\r
+{\r
+       for(var i=0;i<goMan.maCom.length;i++)\r
+       {\r
+               var oFrame=getElement(goMan.maCom[i].msIFrameId);\r
+               if(oFrame)\r
+               {\r
+                       oFrame.style.height=document.body.clientHeight;\r
+                       oFrame.style.width=document.body.clientWidth;\r
+               }\r
+       }\r
+       window_resize2();\r
+}\r
+\r
+function window_resize2()\r
+{\r
+       if(document.body)\r
+       {\r
+               if(document.body.clientWidth > 1 && document.body.clientHeight>1)\r
+               {\r
+                       var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);\r
+                       SendMessage(oMsg);\r
+               }\r
+       }\r
+}\r
+\r
+function window_unload()\r
+{\r
+       UnRegisterListener2(this,WH_MSG_GETPROJINFO);\r
+       UnRegisterListener2(this,WH_MSG_SHOWTOC);\r
+       UnRegisterListener2(this,WH_MSG_SHOWIDX);\r
+       UnRegisterListener2(this,WH_MSG_SHOWFTS);\r
+       UnRegisterListener2(this,WH_MSG_SHOWGLO);\r
+       UnRegisterListener2(this,WH_MSG_GETPANEINFO);\r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       if(oMsg)\r
+       {\r
+               var nMsgId=oMsg.nMessageId;\r
+               if(nMsgId==WH_MSG_GETPROJINFO)\r
+               {\r
+                       if(gbReady)\r
+                       {\r
+                               var oProj=new Object();\r
+                               oProj.aProj=gaProj;\r
+                               oProj.bXML=gbXML;\r
+                               oMsg.oParam=oProj;\r
+                       }\r
+                       else\r
+                               return false;\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWTOC)\r
+               {\r
+                       if(goMan)\r
+                               goMan.show("toc");\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");\r
+                       SendMessage(onMsg);\r
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWIDX)\r
+               {\r
+                       if(goMan)\r
+                               goMan.show("idx");\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");\r
+                       SendMessage(onMsg);\r
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWFTS)\r
+               {\r
+                       if(goMan)\r
+                               goMan.show("fts");\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");\r
+                       SendMessage(onMsg);\r
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWGLO)\r
+               {\r
+                       if(goMan)\r
+                               goMan.show("glo");\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");\r
+                       SendMessage(onMsg);\r
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_GETPANEINFO)\r
+               {\r
+                       oMsg.oParam=goMan.getCurrent();\r
+                       return false;\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
+{\r
+       RegisterListener2(this,WH_MSG_GETPROJINFO);\r
+       RegisterListener2(this,WH_MSG_SHOWTOC);\r
+       RegisterListener2(this,WH_MSG_SHOWIDX);\r
+       RegisterListener2(this,WH_MSG_SHOWFTS);\r
+       RegisterListener2(this,WH_MSG_SHOWGLO);\r
+       RegisterListener2(this,WH_MSG_GETPANEINFO);\r
+\r
+       if((gbMac&&gbIE4)||(gbSunOS&&gbIE5))\r
+       {\r
+               window.onresize=window_resize;\r
+       }\r
+       else if(gbIE4)\r
+       {\r
+               window.onresize=window_resize2;\r
+       }\r
+       window.onload=window_OnLoad;\r
+       window.onbeforeunload=window_MyBunload;\r
+       window.onunload=window_unload;\r
+       gbWhPHost=true;\r
+}\r
+else\r
+       document.location.reload();\r
+\r
diff --git a/doc/salome/gui/VISU/whproj.htm b/doc/salome/gui/VISU/whproj.htm
new file mode 100755 (executable)
index 0000000..455bec7
--- /dev/null
@@ -0,0 +1,24 @@
+<html>\r
+<head>\r
+<title>project description</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</head>\r
+<body>\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2" src="whproj.js"></script>\r
+<script language="javascript1.2">\r
+<!--\r
+  setLangId("1033");\r
+  setDataPath("whdata");\r
+  addToc("whtoc.htm");\r
+\r
+  addFts("whfts.htm");\r
+  addGlo("whglo.htm");\r
+\r
+//-->\r
+</script>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whproj.js b/doc/salome/gui/VISU/whproj.js
new file mode 100755 (executable)
index 0000000..0e23515
--- /dev/null
@@ -0,0 +1,82 @@
+var gaProj=new Array();\r
+\r
+gaProj[0]=new project("");\r
+\r
+function setLangId(sLangId)\r
+{\r
+       gaProj[0].sLangId=sLangId;\r
+}\r
+\r
+function setDataPath(sPath)\r
+{\r
+       if(sPath.length!=0)\r
+       {\r
+               if(sPath.lastIndexOf("/")!=sPath.length-1)\r
+                       sPath+="/";\r
+               gaProj[0].sDPath=sPath; \r
+       }\r
+       else\r
+               gaProj[0].sDPath="";\r
+}\r
+\r
+function addToc(sFile)\r
+{\r
+       gaProj[0].sToc=sFile;\r
+}\r
+\r
+function addIdx(sFile)\r
+{\r
+       gaProj[0].sIdx=sFile;\r
+}\r
+\r
+function addFts(sFile)\r
+{\r
+       gaProj[0].sFts=sFile;\r
+}\r
+\r
+function addGlo(sFile)\r
+{\r
+       gaProj[0].sGlo=sFile;\r
+}\r
+\r
+function addRemoteProject(sProjRelPath)\r
+{\r
+       gaProj[gaProj.length]=new project(sProjRelPath);\r
+}\r
+\r
+function project(sPPath)\r
+{\r
+       this.sPPath=sPPath;\r
+       this.sLangId="";\r
+       this.sDPath="";\r
+       this.sToc="";\r
+       this.sIdx="";\r
+       this.sFts="";\r
+       this.sGlo="";\r
+}\r
+\r
+window.onload=window_OnLoad;\r
+\r
+function window_OnLoad()\r
+{\r
+       gsName=document.location.href;\r
+       gsName=_replaceSlash(gsName);\r
+       var nPos=gsName.lastIndexOf("/");\r
+       if(nPos!=-1)\r
+               gaProj[0].sPPath=gsName.substring(0,nPos+1);\r
+       else\r
+               alert("Error in Loading navigation component. Please regenerate WebHelp.");\r
+       patchPath(gaProj);\r
+       if(parent&&parent!=this&& typeof(parent.putProjectInfo)=="function")\r
+       {\r
+               parent.putProjectInfo(gaProj);\r
+       }\r
+}\r
+\r
+function patchPath(aProj)\r
+{\r
+       for(var i=1;i<aProj.length;i++)\r
+       {\r
+               aProj[i].sPPath=_getFullPath(gaProj[0].sPPath,aProj[i].sPPath);\r
+       }\r
+}
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whproj.xml b/doc/salome/gui/VISU/whproj.xml
new file mode 100755 (executable)
index 0000000..d16f189
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>\r
+<project langid="1033" datapath="whdata" toc="whtoc.xml" fts="whfts.xml" glossary="whglo.xml" >\r
+</project>\r
diff --git a/doc/salome/gui/VISU/whproxy.js b/doc/salome/gui/VISU/whproxy.js
new file mode 100755 (executable)
index 0000000..222927a
--- /dev/null
@@ -0,0 +1,63 @@
+var gbInited=false;\r
+var gWndStubPage=null;\r
+function getStubPage()\r
+{\r
+       if(!gbInited)\r
+       {\r
+               gWndStubPage=getStubPage_inter(window);\r
+               gbInited=true;\r
+       }\r
+       return gWndStubPage;\r
+}\r
+\r
+function getStubPage_inter(wCurrent)\r
+{\r
+       if(null==wCurrent.parent||wCurrent.parent==wCurrent)\r
+               return null;\r
+\r
+       if(typeof(wCurrent.parent.whname)=="string"&&"wh_stub"==wCurrent.parent.whname)\r
+               return wCurrent.parent;\r
+       else\r
+               if(wCurrent.parent.frames.length!=0&&wCurrent.parent!=wCurrent)\r
+                       return getStubPage_inter(wCurrent.parent);\r
+               else\r
+                       return null;\r
+}\r
+\r
+function RegisterListener(framename,nMessageId)\r
+{\r
+       var wSP=getStubPage();\r
+       if(wSP&&wSP!=this)\r
+               return wSP.RegisterListener(framename,nMessageId);\r
+       else\r
+               return false;\r
+}\r
+\r
+function RegisterListener2(oframe,nMessageId)\r
+{\r
+       var wSP=getStubPage();\r
+       if(wSP&&wSP!=this)\r
+               return wSP.RegisterListener2(oframe,nMessageId);\r
+       else\r
+               return false;\r
+}\r
+\r
+function UnRegisterListener2(oframe,nMessageId)\r
+{\r
+       var wSP=getStubPage();\r
+       if(wSP&&wSP!=this&&wSP.UnRegisterListener2)\r
+               return wSP.UnRegisterListener2(oframe,nMessageId);\r
+       else\r
+               return false;\r
+}\r
+\r
+function SendMessage(oMessage)\r
+{\r
+       var wSP=getStubPage();\r
+       if(wSP&&wSP!=this&&wSP.SendMessage)\r
+               return wSP.SendMessage(oMessage);\r
+       else\r
+               return false;\r
+}\r
+\r
+var gbWhProxy=true;
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whres.xml b/doc/salome/gui/VISU/whres.xml
new file mode 100755 (executable)
index 0000000..9634684
--- /dev/null
@@ -0,0 +1,239 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>\r
+<resource>\r
+<item name="Prev" value="&lt;&lt;" />\r
+<item name="Hide" value="Hide" />\r
+<item name="SyncTocTooltip" value="Sync TOC" />\r
+<item name="InTopicSearchBtnText" value="Go" />\r
+<item name="FtsInputPrompt" value="Type in the word(s) to search for:" />\r
+<item name="Done" value="Done" />\r
+<item name="JS_alert_cantLoadProject" value="Can't load project:" />\r
+<item name="Next" value="&gt;&gt;" />\r
+<item name="SyncToc" value="SyncToc" />\r
+<item name="ToolBarSearchBtnText" value="Go" />\r
+<item name="SuggestViewNoFrameMessage" value="To view the Help system without frames click on this" />\r
+<item name="Hide_Navigation_Component" value="Hide Navigation Component" />\r
+<item name="FtsBtnText" value="Go" />\r
+<item name="TopicsFound" value="Topics Found" />\r
+<item name="LoadingContentsData" value="Loading, click here to cancel..." />\r
+<item name="Definition" value="Definition:" />\r
+<item name="CompletingContents" value="Completing Contents..." />\r
+<item name="Seperate" value="|" />\r
+<item name="Contents" value="Contents" />\r
+<item name="Disabled Prev" value="&lt;&lt;" />\r
+<item name="Glossary" value="Glossary" />\r
+<item name="Search" value="Search" />\r
+<item name="CantSearch" value="Cannot search for that phrase." />\r
+<item name="LoadingIndex" value="Loading Index..." />\r
+<item name="LoadingData" value="Loading data, please wait..." />\r
+<item name="Show_Navigation_Component" value="Show Navigation Component" />\r
+<item name="Book" value="Book" />\r
+<item name="Disabled Next" value="&gt;&gt;" />\r
+<item name="Find" value="Find" />\r
+<item name="CantOpenURLorFile" value="Can't open URL or file" />\r
+<item name="Blank_topic_text" value="This topic was created by WinHelp Project Conversion Wizard, and is the destination of a missing topic or broken hyperlink." />\r
+<item name="BrowserLimitedMessage" value="Your browser does not support frames. We recommend that you update your browser to a version that supports frames." />\r
+<item name="LoadingTOCItem" value="Loading Table of Contents:" />\r
+<item name="Display" value="Display" />\r
+<item name="Cancel" value="Cancel" />\r
+<item name="SearchLabel" value="Search" />\r
+<item name="RelateTopicListPrompt" value="Click a topic, then click Display." />\r
+<item name="NextTooltip" value="Next Topic" />\r
+<item name="JS_alert_colorlimitation" value="WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors." />\r
+<item name="TopicsNotFound" value="No Topics Found." />\r
+<item name="Show" value="Show" />\r
+<item name="PreTooltip" value="Previous Topic" />\r
+<item name="SearchPrompt" value="- Search -" />\r
+<item name="IndexBtnText" value="Go" />\r
+<item name="JS_alert_ProjectLoadingFail" value="Could not load correctly, please click Refresh." />\r
+<item name="LoadingContents" value="Loading contents, please wait..." />\r
+<item name="Term" value="Term:" />\r
+<item name="WebSearchButton" value="WebSearch" />\r
+<item name="Remote_Page" value="Remote Page" />\r
+<item name="WebSearch" value="WebSearch" />\r
+<item name="LoadingFTS" value="Reading Search Data..." />\r
+<item name="Index" value="Index" />\r
+<item name="JS_alert_ErrorInLoading" value="Error in Loading navigation component. Please regenerate WebHelp." />\r
+<item name="JS_alert_appletNotLoad" value="Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited." />\r
+<item name="IndexInputPrompt" value="Type in the keyword to find:" />\r
+<item name="Page" value="Page" />\r
+<item name="SuggestViewNoFrameMsg2" value="hyperlink." />\r
+<item name="Searching" value="Searching..." />\r
+\r
+  <item name="English"   value="" />\r
+  <item name="langorder" value="0,1,2,3,4,5,6,7,8,40,41,42,43,44,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,38,45,46,47,48,49,50,33,51,52,53,88,54,34,55,56,115,119,121,123,125,126,127,128,129,130,57,58,89,90,91,59,60,131,148,150,154,158,168,171,173,175,185,187,189,191,193,197,214,216,218,220,225,230,240,242,244,246,252,61,62,63,64,66,67,131,148,150,154,158,168,171,173,175,185,187,189,191,193,197,214,216,218,220,225,230,240,242,244,246,252,68,69,70,71,27,114,28,82,170,85,112,109,110,65,113,223,86,213,29,255,30,31,80,81,83,84,111,36,37,79,229,222,87,212,32,254,251,39,72,97,98,99,100,73,101,74,102,133,93,103,35,104,75,105,92,122,124,76,106,107,108,77,120,199,94,116,117,118,78,131,131,131,131,131,131,131,150,158,158,158,158,175,175,175,175,154,193,197,197,197,197,197,95,197,230,230,230,230,246,227,224,131,131,131,131,131,131,131,150,158,158,158,158,175,175,175,175,154,193,197,197,197,197,197,96,197,230,230,230,230,246,227,250," />\r
+\r
+  <panes show="0">\r
+    <toc />\r
+    <fts />\r
+    <glossary />\r
+  </panes>\r
+\r
+  <stopwords>\r
+    <word name="a" />\r
+    <word name="about" />\r
+    <word name="after" />\r
+    <word name="against" />\r
+    <word name="all" />\r
+    <word name="also" />\r
+    <word name="among" />\r
+    <word name="an" />\r
+    <word name="and" />\r
+    <word name="are" />\r
+    <word name="as" />\r
+    <word name="at" />\r
+    <word name="be" />\r
+    <word name="became" />\r
+    <word name="because" />\r
+    <word name="been" />\r
+    <word name="between" />\r
+    <word name="but" />\r
+    <word name="by" />\r
+    <word name="can" />\r
+    <word name="come" />\r
+    <word name="do" />\r
+    <word name="during" />\r
+    <word name="each" />\r
+    <word name="early" />\r
+    <word name="for" />\r
+    <word name="form" />\r
+    <word name="found" />\r
+    <word name="from" />\r
+    <word name="had" />\r
+    <word name="has" />\r
+    <word name="have" />\r
+    <word name="he" />\r
+    <word name="her" />\r
+    <word name="his" />\r
+    <word name="however" />\r
+    <word name="in" />\r
+    <word name="include" />\r
+    <word name="into" />\r
+    <word name="is" />\r
+    <word name="it" />\r
+    <word name="its" />\r
+    <word name="late" />\r
+    <word name="later" />\r
+    <word name="made" />\r
+    <word name="many" />\r
+    <word name="may" />\r
+    <word name="me" />\r
+    <word name="med" />\r
+    <word name="more" />\r
+    <word name="most" />\r
+    <word name="near" />\r
+    <word name="no" />\r
+    <word name="non" />\r
+    <word name="not" />\r
+    <word name="of" />\r
+    <word name="on" />\r
+    <word name="only" />\r
+    <word name="or" />\r
+    <word name="other" />\r
+    <word name="over" />\r
+    <word name="several" />\r
+    <word name="she" />\r
+    <word name="some" />\r
+    <word name="such" />\r
+    <word name="than" />\r
+    <word name="that" />\r
+    <word name="the" />\r
+    <word name="their" />\r
+    <word name="then" />\r
+    <word name="there" />\r
+    <word name="these" />\r
+    <word name="they" />\r
+    <word name="this" />\r
+    <word name="through" />\r
+    <word name="to" />\r
+    <word name="under" />\r
+    <word name="until" />\r
+    <word name="use" />\r
+    <word name="was" />\r
+    <word name="we" />\r
+    <word name="were" />\r
+    <word name="when" />\r
+    <word name="where" />\r
+    <word name="which" />\r
+    <word name="who" />\r
+    <word name="with" />\r
+    <word name="you" />\r
+  </stopwords>\r
+\r
+  <stems>\r
+    <stem name="s" />\r
+    <stem name="e" />\r
+    <stem name="ed" />\r
+    <stem name="es" />\r
+    <stem name="er" />\r
+    <stem name="ly" />\r
+    <stem name="ing" />\r
+    <stem name="ingly" />\r
+  </stems>\r
+\r
+       <paneskin>\r
+               <background color="#ffffff" img="" />\r
+               <font name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="none" />\r
+               <toc>\r
+                       <background color="#ffffff" img="" />\r
+                       <icons>\r
+                               <book open="wht_toc2.gif" close="wht_toc1.gif" />\r
+                               <item  local="wht_toc3.gif" remote="wht_toc4.gif" />\r
+                               <newbook open="" close="" />\r
+                               <newitem  local="" remote="" />\r
+                       </icons>\r
+                       <fonts>\r
+                               <normal name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" />\r
+                               <hover name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="underline" />\r
+                       </fonts>\r
+                       <activebackgroundcolor attr="#c0c0c0" />\r
+                       <margin attr="" />\r
+                       <indent attr="" />\r
+               </toc>\r
+               <index>\r
+                       <form>\r
+                               <fonts>\r
+                                       <title name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="none" />\r
+                               </fonts>\r
+                               <button normal="" hover="" />\r
+                               <editwith value="20" />\r
+                       </form>\r
+                       <background color="#ffffff" img="" />\r
+                       <fonts>\r
+                               <normal name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" />\r
+                               <hover name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="underline" />\r
+                               <empty name="" size="8pt" color="" style="" weight="" decoration="" />\r
+                       </fonts>\r
+                       <activebackgroundcolor attr="#c0c0c0" />\r
+                       <margin attr="" />\r
+                       <indent attr="" />\r
+               </index>\r
+               <fts>\r
+                       <form>\r
+                               <fonts>\r
+                                       <title name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="none" />\r
+                               </fonts>\r
+                               <button normal="" hover="" />\r
+                               <editwith value="20" />\r
+                       </form>\r
+                       <background color="#ffffff" img="" />\r
+                       <fonts>\r
+                               <normal name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" />\r
+                               <hover name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="underline" />\r
+                               <error name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" />\r
+                       </fonts>\r
+                       <activebackgroundcolor attr="#c0c0c0" />\r
+                       <margin attr="" />\r
+                       <indent attr="" />\r
+               </fts>\r
+               <glossary>\r
+                       <background color="#ffffff" img="" />\r
+                       <fonts>\r
+                               <normal name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" />\r
+                               <hover name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="underline" />\r
+                       </fonts>\r
+                       <activebackgroundcolor attr="#c0c0c0" />\r
+                       <margin attr="" />\r
+                       <indent attr="" />\r
+               </glossary>\r
+       </paneskin>\r
+</resource>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whrstart.ico b/doc/salome/gui/VISU/whrstart.ico
new file mode 100755 (executable)
index 0000000..bffcd6e
Binary files /dev/null and b/doc/salome/gui/VISU/whrstart.ico differ
diff --git a/doc/salome/gui/VISU/whskin_banner.htm b/doc/salome/gui/VISU/whskin_banner.htm
new file mode 100755 (executable)
index 0000000..afe2d3f
--- /dev/null
@@ -0,0 +1,41 @@
+<html>\r
+<head>\r
+<title>About WebHelp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</head>\r
+<style type="text/css">\r
+<!--\r
+P {margin-left:10pt;font-size:8pt;font-family:Verdana,sans-serif;}\r
+//-->\r
+</style>\r
+<script>\r
+<!--\r
+// this block fix: HTML Dialog Ignores Size Parameters Without SCRIPT Block\r
+//-->\r
+</script> \r
+<body bgcolor="white" scroll=no RIGHTMARGIN=0 BOTTOMMARGIN=0 TOPMARGIN=0 LEFTMARGIN=0>\r
+<table border="0" cellpadding="0" cellspacing="0" width="350">\r
+  <tr>\r
+   <td><img src="wht_spac.gif" width="99" height="1" border="0"></td>\r
+   <td><img src="wht_spac.gif" width="251" height="1" border="0"></td>\r
+   <td><img src="wht_spac.gif" width="1" height="1" border="0"></td>\r
+  </tr>\r
+  <tr>\r
+   <td rowspan="2"><img src="wht_abgw.jpg" width="99" height="190" border="0"></td>\r
+   <td><img src="wht_abtw.jpg" width="211" height="86" border="0"></td>\r
+   <td><img src="wht_spac.gif" width="1" height="86" border="0"></td>\r
+  </tr>\r
+  <tr>\r
+   <td valign="top">\r
+               <p>Author:&nbsp;eHelp Corporation</p>\r
+               <p>Powered by:&nbsp;WebHelp 5.00\r
+               <br>Generated by:&nbsp;RoboHelp 2002</p>\r
+               <p><a class="tail" href="http://www.ehelp.com/webhelp1" target="_blank">www.ehelp.com</a></p>\r
+   </td>\r
+   <td><img src="wht_spac.gif" width="1" height="104" border="0"></td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whskin_blank.htm b/doc/salome/gui/VISU/whskin_blank.htm
new file mode 100755 (executable)
index 0000000..5b506c2
--- /dev/null
@@ -0,0 +1,10 @@
+<html>\r
+<head>\r
+<title>Blank Page</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</head>\r
+<body>\r
+</body>\r
+</html>\r
diff --git a/doc/salome/gui/VISU/whskin_frmset01.htm b/doc/salome/gui/VISU/whskin_frmset01.htm
new file mode 100755 (executable)
index 0000000..6916dee
--- /dev/null
@@ -0,0 +1,172 @@
+\r
+<html>\r
+<head>\r
+</head>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" >\r
+<!--\r
+if (!window.gbWhVer||!window.gbWhUtil||!window.gbWhMsg)\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+\r
+<script type="text/javascript" language="javascript" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript">\r
+<!--\r
+if (!window.gbWhProxy)\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+\r
+\r
+<script language="javascript">\r
+<!--\r
+var gsPane="";\r
+var gnType=3;\r
+\r
+var oMsgPane = new whMessage(WH_MSG_GETPANETYPE, this, 1, null);\r
+if (SendMessage(oMsgPane))\r
+{\r
+       gsPane = oMsgPane.oParam.sPaneURL;\r
+       gnType = oMsgPane.oParam.nType;\r
+}\r
+\r
+       var strDefaultTopic = "about:blank";\r
+       var oParam = new Object();\r
+       oParam.sTopic = "";\r
+       var oMsg = new whMessage(WH_MSG_GETDEFAULTTOPIC, this, 1, oParam);\r
+       if (SendMessage(oMsg) && oParam.sTopic != "")\r
+               strDefaultTopic =  oParam.sTopic;\r
+var strHTML = "";\r
+if (gnType == 4)\r
+{\r
+       //no navipane at all\r
+       strHTML += "<frameset border=\"0\" cols=\"100%,*\">";\r
+       strHTML += "<frame src=\"" + strDefaultTopic + "\" name=\"bsscright\" framespacing=\"0\" frameborder=\"0\" border=\"0\" scrolling=\"auto\">";\r
+       strHTML += "<frame src=\"whskin_blank.htm\" noresize>";\r
+       strHTML += "</frameset>";\r
+}\r
+else\r
+       strHTML += "<frameset cols=\"220,*\" hostof=\"parent:minibar_navpane|topic!startpage:no\" frameborder=\"yes\" id=\"whPfset\"><frame src=\"whskin_frmset010.htm\" id=\"minibar_navpane\" frameborder=\"no\" border=\"0\" scrolling=\"auto\" marginheight=\"0\" marginwidth=\"0\"></frame><frame src=\""+strDefaultTopic+"\" id=\"topic\" frameborder=\"yes\" border=\"1\" scrolling=\"auto\" title=\"Topic\" name=\"bsscright\"></frame></frameset>";\r
+document.write(strHTML);\r
+// handle show pane, hide pane and query pane status message.\r
+RegisterListener2(this, WH_MSG_RESIZEPANE);\r
+RegisterListener2(this, WH_MSG_SHOWPANE);\r
+RegisterListener2(this, WH_MSG_HIDEPANE);\r
+RegisterListener2(this, WH_MSG_ISPANEVISIBLE);\r
+\r
+function window_unload()\r
+{\r
+       UnRegisterListener2(this, WH_MSG_RESIZEPANE);\r
+       UnRegisterListener2(this, WH_MSG_SHOWPANE);\r
+       UnRegisterListener2(this, WH_MSG_HIDEPANE);\r
+       UnRegisterListener2(this, WH_MSG_ISPANEVISIBLE);\r
+}\r
+\r
+window.onunload=window_unload;\r
+\r
+var gbShow=false;\r
+var gstrFrameLastSetting="";\r
+function onSendMessage(oMsg)\r
+{\r
+       var oMsgout = null;\r
+       var nMsgId = oMsg.nMessageId;\r
+       var oFrameset = null;\r
+       if (nMsgId == WH_MSG_SHOWPANE)\r
+       {\r
+               if (!gbShow)\r
+               {\r
+                       oFrameset = getElement("whPfset");\r
+                       if (oFrameset)\r
+                       {\r
+                               if (gstrFrameLastSetting)\r
+                                       oFrameset.cols= gstrFrameLastSetting;\r
+                               else\r
+                                       oFrameset.cols= "220,*";\r
+                       }\r
+                       gbShow=true;\r
+                       oMsgout = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");\r
+                       SendMessage(oMsgout);\r
+               }\r
+               return false;\r
+       }\r
+       else if (nMsgId == WH_MSG_HIDEPANE)\r
+       {\r
+               oFrameset = getElement("whPfset");\r
+               if (oFrameset)\r
+               {\r
+                       gstrFrameLastSetting=oFrameset.cols; \r
+                       var oWnd=frames[0];\r
+                       if (oWnd && oWnd.document && oWnd.document.body)\r
+                       {\r
+                               var nPos=0;\r
+                               if ("cols"=="cols")\r
+                                       nPos=oWnd.document.body.offsetWidth;\r
+                               else\r
+                                       nPos=oWnd.document.body.offsetHeight;\r
+                               if(0==0)\r
+                                       gstrFrameLastSetting=nPos+",*";\r
+                               else\r
+                                       gstrFrameLastSetting="*,"+nPos;\r
+                       }\r
+                       oFrameset.cols = "0,*";\r
+               }\r
+               gbShow=false;\r
+               oMsgout = new whMessage(WH_MSG_PANESTATUE, this, 1, "invisible");\r
+               SendMessage(oMsgout);\r
+               return false;\r
+       }\r
+       else if (nMsgId == WH_MSG_RESIZEPANE)\r
+       {\r
+               if (!gbShow)\r
+               {\r
+                       gbShow=true;\r
+                       oMsgout = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");\r
+                       SendMessage(oMsgout);\r
+               }\r
+               return false;\r
+       }\r
+       else if (nMsgId == WH_MSG_ISPANEVISIBLE)\r
+       {\r
+               oMsg.oParam.bVisible = isNavPaneVisible();\r
+               return false;\r
+       }\r
+       return true;\r
+}\r
+\r
+function isNavPaneVisible()\r
+{\r
+       var bVisible = false;\r
+       var sSplit = getElement("whPfset").cols;\r
+       var nSplit = sSplit.indexOf(",");\r
+       if (nSplit != -1)\r
+       {\r
+               var sPart1 = sSplit.substring(0, nSplit);\r
+               var sPart2 = sSplit.substring(nSplit + 1);\r
+               if ("minibar_navpane" == "navpane")\r
+               {\r
+                       var sTemp = sPart1;\r
+                       sPart1 = sPart2;\r
+                       sPart2 = sTemp;\r
+               }\r
+\r
+               if (sPart2 != "*")\r
+               {\r
+                       var n = parseInt(sPart2);\r
+                       if (n>0)\r
+                               bVisible = true;\r
+               }\r
+               else\r
+               {\r
+                       if (sPart1 != "100%")\r
+                               bVisible = true;\r
+               }\r
+       }\r
+       return bVisible;\r
+}\r
+//-->\r
+</script>\r
+\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whskin_frmset010.htm b/doc/salome/gui/VISU/whskin_frmset010.htm
new file mode 100755 (executable)
index 0000000..357fc82
--- /dev/null
@@ -0,0 +1,50 @@
+\r
+<html>\r
+<head>\r
+</head>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" >\r
+<!--\r
+if (!window.gbWhVer||!window.gbWhUtil||!window.gbWhMsg)\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+\r
+<script type="text/javascript" language="javascript" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript">\r
+<!--\r
+if (!window.gbWhProxy)\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+\r
+\r
+<script language="javascript">\r
+<!--\r
+var gsPane="";\r
+var gnType=3;\r
+\r
+var oMsgPane = new whMessage(WH_MSG_GETPANETYPE, this, 1, null);\r
+if (SendMessage(oMsgPane))\r
+{\r
+       gsPane = oMsgPane.oParam.sPaneURL;\r
+       gnType = oMsgPane.oParam.nType;\r
+}\r
+var strHTML = "";\r
+if (gnType == 4)\r
+{\r
+       //no navipane at all\r
+       strHTML += "<frameset border=\"0\" cols=\"100%,*\">";\r
+       strHTML += "<frame src='whskin_mbars.htm' id='minibar' frameborder='no' border='0' scrolling='no' marginheight='0' title='Mini Toolbar'></frame>";\r
+       strHTML += "<frame src=\"whskin_blank.htm\" noresize>";\r
+       strHTML += "</frameset>";\r
+}\r
+else\r
+       strHTML += "<frameset rows=\"24,*\" hostof=\"parent:minibar|navpane!startpage:no\" frameborder=\"no\" border=\"0\"><frame src=\"whskin_mbars.htm\" id=\"minibar\" frameborder=\"no\" border=\"0\" scrolling=\"no\" marginheight=\"0\" title=\"Mini Toolbar\"></frame><frame src=\""+gsPane+"\" id=\"navpane\" frameborder=\"no\" border=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" title=\"Navigator Pane\"></frame></frameset>";\r
+\r
+document.write(strHTML);\r
+//-->\r
+</script>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whskin_info.htm b/doc/salome/gui/VISU/whskin_info.htm
new file mode 100755 (executable)
index 0000000..0743475
--- /dev/null
@@ -0,0 +1,20 @@
+<html>\r
+<head>\r
+<title>WebHelp 5.00 </title>\r
+<meta name="description" content="output from robohelp">\r
+<meta name="keywords" content="robohelp,webhelp,webhelp 2002,webhelp enterprise,webehelp enterprise 2002,roboinfo,roboinfo 2002">\r
+</head>\r
+<body>\r
+<h1> WebHelp 5.00 System  Info </h1>\r
+<table>\r
+<tr><td> Start Page </td><td>visu.html</td></tr>\r
+<tr><td> Skin Name </td><td>Default</td></tr>\r
+<tr><td> Generating Time </td><td>09:58 02/18/2004</td></tr>\r
+<tr><td> Language ID </td><td>1033</td></tr>\r
+<tr><td> Compile Script </td><td>webhelp5_compile_script.xml</td></tr>\r
+<tr><td> Compile Build Version </td><td>10.00.949</td></tr>\r
+<tr><td> Product Name </td><td>WebHelp 5.00</td></tr>\r
+<tr><td> Authoring Tool Name </td><td>RoboHelp 2002</td></tr>\r
+<table>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whskin_mbars.htm b/doc/salome/gui/VISU/whskin_mbars.htm
new file mode 100755 (executable)
index 0000000..66e8c53
--- /dev/null
@@ -0,0 +1,56 @@
+<html>\r
+<head>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
+</head>\r
+<style>\r
+<!--\r
+body {margin:0;}\r
+-->\r
+</style>\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whmozemu.js"></script>\r
+<script language="javascript1.2" src="whtbar.js"></script>\r
+<body marginheight="0"  marginwidth="0"  bgcolor="#99ccff"     scroll="no">\r
+<script language="javascript1.2">\r
+<!--\r
+if (window.gbWhTBar)\r
+{\r
+       setButtonFont("avprev","Tahoma","8pt","Black","Normal","Normal","none");\r
+setButtonFont("avnext","Tahoma","8pt","Black","Normal","Normal","none");\r
+setButtonFont("synctoc","Tahoma","8pt","Black","Normal","Normal","none");\r
+setButtonFont("hide2","Tahoma","8pt","Black","Normal","Normal","none");\r
+\r
+       gsIPrev = "wht_prev.gif";\r
+       gsIPrevD = "wht_prev_g.gif";\r
+       gsINext = "wht_next.gif";\r
+       gsINextD = "wht_next_g.gif";\r
+       gsISync = "wht_sync.gif";\r
+       gsIHide = "wht_hide.gif";\r
+       setBackgroundcolor("#99ccff");\r
+       \r
+       \r
+       addButton("avprev",BTN_TEXT|BTN_IMG,"","","","","",0,0,"","","","","","");\r
+addButton("avnext",BTN_TEXT|BTN_IMG,"","","","","",0,0,"","","","","","");\r
+addButton("synctoc",BTN_TEXT|BTN_IMG,"","","","","",0,0,"","","","","","");\r
+addButton("hide2",BTN_TEXT|BTN_IMG,"","","","","",0,0,"","","","","","");\r
+\r
+       addButton("blankblock");\r
+       writeStyle(true);\r
+       ReSortMinibarButtons();\r
+       writeToolBar();\r
+}\r
+else\r
+       document.location.reload();\r
+\r
+if (window.gbNav6)\r
+{\r
+       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);\r
+       SendMessage(oMsg);\r
+}\r
+//-->\r
+</script>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whskin_papplet.htm b/doc/salome/gui/VISU/whskin_papplet.htm
new file mode 100755 (executable)
index 0000000..aab44dd
--- /dev/null
@@ -0,0 +1,357 @@
+<html>\r
+<head>\r
+<title>Navigation Pane</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<SCRIPT LANGUAGE="JavaScript1.2" ARCHIVE="nsdnsfix.jar" ID="ChangeProfileScriptinNavPane2"> var sd_strAgent    = navigator.userAgent.toLowerCase();    var sd_strVersion  = navigator.appVersion.toLowerCase();  var sd_nVerMajor      = parseInt(sd_strVersion);  var sd_nVerMinor    = parseFloat(sd_strVersion); var        sd_bNS      = ((sd_strAgent.indexOf("mozilla") != -1) && ((sd_strAgent.indexOf('spoofer') == -1) && (sd_strAgent.indexOf('compatible') == -1))); var    sd_bNS4                 = ((sd_bNS) && (sd_nVerMajor >= 4)); if (sd_nVerMinor == 4.60)  {  netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesRead");  var sd_prefValue = navigator.preference("security.lower_java_network_security_by_trusting_proxies"); if (!sd_prefValue) { alert("There are some limitations in Netscape 4.6. Please download and install the latest version of Netscape. Your current Netscape profile needs to be modified. Select 'Remember this decision' and click 'Grant' when prompted to allow the modifications. Click OK to proceed."); netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesWrite"); navigator.preference("security.lower_java_network_security_by_trusting_proxies", true); alert("Please restart Netscape"); window.close(); } } </SCRIPT>\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2">\r
+<!--\r
+var gsInitPane="toc";\r
+var gsCurrentPane="";\r
+var gbLoading = "unknown";\r
+var gbTryTime = 0;\r
+var gbMaxTryTime = 6;\r
+var gbPassPhase0 = 0;\r
+var gbretried = 0;\r
+var gbmaxretry = 3;\r
+var gbretrytime = new Array();\r
+\r
+var origWidth = 0;\r
+var origHeight = 0;\r
+\r
+gbretrytime[0]= 5000;\r
+gbretrytime[1]= 30000;\r
+gbretrytime[2]= 60000;\r
+\r
+function addPane(sName, sFile)\r
+{\r
+}\r
+\r
+function setShowPane(sName)\r
+{\r
+       gsInitPane=sName;\r
+}\r
+  addPane("toc","whtdhtml.htm");\r
+  addPane("fts","whfdhtml.htm");\r
+  addPane("glo","whgdhtml.htm");\r
+  setShowPane("toc");\r
+\r
+\r
+function window_unload()\r
+{\r
+       if (!gbNav4 || gbNav6) // resize will call unload, but the register code will never be called on Netscape 4.\r
+       {\r
+               UnRegisterListener2(this, WH_MSG_SHOWTOC);\r
+               UnRegisterListener2(this, WH_MSG_SHOWIDX);\r
+               UnRegisterListener2(this, WH_MSG_SHOWFTS);\r
+               UnRegisterListener2(this, WH_MSG_SHOWGLO);\r
+               UnRegisterListener2(this, WH_MSG_SYNCTOC);\r
+               UnRegisterListener2(this, WH_MSG_SEARCHTHIS);\r
+               UnRegisterListener2(this, WH_MSG_GETPANEINFO);\r
+       }\r
+}\r
+\r
+function window_OnLoad()\r
+{\r
+       if (gsInitPane == "toc")\r
+       {\r
+               var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)\r
+               SendMessage(oMsg);      \r
+       }\r
+       else if (gsInitPane=="idx")\r
+       {\r
+               var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)\r
+               SendMessage(oMsg);      \r
+       }\r
+       else if (gsInitPane=="fts")\r
+       {\r
+               var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)\r
+               SendMessage(oMsg);      \r
+       }\r
+       else if (gsInitPane=="glo")\r
+       {\r
+               var oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)\r
+               SendMessage(oMsg);      \r
+       }\r
+       \r
+}\r
+\r
+function onResize()\r
+{\r
+       if (gbIE4)\r
+       {\r
+               if(document.body)\r
+               {\r
+                       if(document.body.clientWidth > 1 && document.body.clientHeight>1)\r
+                       {\r
+                               var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);\r
+                               SendMessage(oMsg);\r
+                       }\r
+               }\r
+       }\r
+       else \r
+       {\r
+               if (window.innerWidth != 0 && window.innerHeight != 0)\r
+               {\r
+                       var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);\r
+                       SendMessage(oMsg);\r
+               }\r
+       }\r
+}\r
+\r
+function CheckLoadingPhase0()\r
+{\r
+       if (!gbPassPhase0) {\r
+               setTimeout("CheckLoadingPhase0()", 1000);\r
+               document.applets[0];\r
+               gbPassPhase0 = 1;\r
+       }\r
+       else {\r
+               CheckLoadingPhase1();\r
+       }\r
+}\r
+\r
+function CheckLoadingPhase1()\r
+{\r
+       if (gbNav4) {\r
+               if ("unknown" == gbLoading && document.readystate < 4) {\r
+                       setTimeout("CheckLoadingPhase1()", 1000);\r
+               }\r
+               else if ("unknown" == gbLoading) {\r
+                       CheckLoadingPhase2();\r
+               }\r
+       }\r
+}\r
+\r
+function CheckLoadingPhase2()\r
+{\r
+       if (gbNav4) {\r
+               gbTryTime ++;\r
+               if ("unknown" == gbLoading) {\r
+                       if (gbTryTime <= gbMaxTryTime )\r
+                               setTimeout("CheckLoadingPhase2()", 1000);\r
+                       else {\r
+                               if (gnVerMinor != 4.60) {\r
+                                       if (gnVerMinor >= 4.06)\r
+                                               document.location.href = "nsdnsfix.htm"\r
+                                       else {\r
+                                               alert("Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited.");\r
+                                       }\r
+                               }\r
+                       }       \r
+               }\r
+       }\r
+}\r
+\r
+function CheckAppletLoaded()\r
+{\r
+       if (typeof(document.WebHelp) == "undefined")\r
+       {\r
+               document.location.reload();\r
+               if (gbretried < gbmaxretry)\r
+               {\r
+                       gbretried ++;\r
+                       setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);\r
+               }\r
+       }\r
+}\r
+\r
+function reDo() \r
+{\r
+       if (innerWidth != origWidth || innerHeight != origHeight)  \r
+       {\r
+               //reloaded applet if nessary\r
+               gbretried = 0;\r
+\r
+               if (gnVerMinor == 4.60) \r
+               {\r
+                       //reload the applet again.\r
+                       document.location.reload();\r
+                       gbretried ++;\r
+               }\r
+               setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);\r
+       }\r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       if (oMsg)\r
+       {       \r
+               var nMsgId = oMsg.nMessageId;\r
+               var WebHelpApplet = null;\r
+               if (gbNav4)\r
+               {\r
+                       WebHelpApplet = document.applets["WebHelp"];\r
+                       if (!WebHelpApplet.Command)\r
+                               document.location="whskin_plist.htm";\r
+               }\r
+               else\r
+                       WebHelpApplet = window.WebHelp;\r
+\r
+               if (nMsgId == WH_MSG_SHOWTOC)\r
+               {\r
+                       gsCurrentPane="toc";\r
+                       WebHelpApplet.Command("Contents",null);\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"toc");\r
+                       SendMessage(onMsg);\r
+                       onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWIDX)\r
+               {\r
+                       gsCurrentPane="idx";\r
+                       WebHelpApplet.Command("Index",null);\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"idx");\r
+                       SendMessage(onMsg);\r
+                       onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWFTS)\r
+               {\r
+                       gsCurrentPane="fts";\r
+                       WebHelpApplet.Command("Search",null);\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"fts");\r
+                       SendMessage(onMsg);\r
+                       onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWGLO)\r
+               {\r
+                       gsCurrentPane="glo";\r
+                       WebHelpApplet.Command("Glossary",null);\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"glo");\r
+                       SendMessage(onMsg);\r
+                       onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_SYNCTOC)\r
+               {\r
+                       gsCurrentPane="toc";\r
+                       var oTopicParam=oMsg.oParam;\r
+                       if(oTopicParam&&oTopicParam.aPaths&&oTopicParam.aPaths.length>0&&oTopicParam.sPPath)\r
+                       {\r
+                               var sPPath=_browserURLToAppletURL(oTopicParam.sPPath);\r
+                               var sParam="";\r
+                               for(var i=0;i<oTopicParam.aPaths.length;i++)\r
+                               {\r
+                                       sParam+=oTopicParam.aPaths[i]+"\r\r";\r
+                               }\r
+                               if(gbLoading!="unknown")\r
+                                       WebHelpApplet.Command("SyncToc",sPPath,sParam);\r
+                       }\r
+               }\r
+               else if(nMsgId==WH_MSG_SEARCHTHIS)\r
+               {\r
+                       gsCurrentPane="fts";\r
+                       WebHelpApplet.Command("Search",oMsg.oParam);\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"fts");\r
+                       SendMessage(onMsg);\r
+                       onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_GETPANEINFO)\r
+               {\r
+                       oMsg.oParam=gsCurrentPane;\r
+                       return false;\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+function _browserURLToAppletURL(sBURL)\r
+{\r
+       var sAURL="";\r
+       var nPos=sBURL.indexOf('%');\r
+       while(nPos!=-1)\r
+       {\r
+               sAURL+=sBURL.substring(0,nPos);\r
+               sBURL=sBURL.substring(nPos+1);\r
+               var sNum="";\r
+               var i=0;\r
+               while(sBURL.charAt(i)>='0'&&sBURL.charAt(i)<='9')\r
+               {\r
+                       sNum+=sBURL.charAt(i++);        \r
+               }\r
+               if(sNum!="")\r
+               {\r
+                       var nNum=parseInt(sNum,16);\r
+                       sAURL+=String.fromCharCode(nNum);\r
+                       sBURL=sBURL.substring(i);\r
+               }\r
+               nPos=sBURL.indexOf('%');\r
+       }\r
+       sAURL+=sBURL;\r
+       return sAURL;\r
+}\r
+\r
+function getInitTocInfo()\r
+{\r
+       var oParam=new Object();\r
+       oParam.oTocInfo=null;\r
+       var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);\r
+       if(SendMessage(oMsg))\r
+       {\r
+               var oTopicParam=oMsg.oParam.oTocInfo;\r
+               if(oTopicParam&&oTopicParam.aPaths&&oTopicParam.aPaths.length>0&&oTopicParam.sPPath)\r
+               {\r
+                       var sPPath=_browserURLToAppletURL(oTopicParam.sPPath);\r
+                       var sParam="";\r
+                       for(var i=0;i<oTopicParam.aPaths.length;i++)\r
+                       {\r
+                               sParam+=oTopicParam.aPaths[i]+"\r\r";\r
+                       }\r
+                       var WebHelpApplet;\r
+                       if(gbNav4)\r
+                               WebHelpApplet=document.applets["WebHelp"];\r
+                       else\r
+                               WebHelpApplet=WebHelp;\r
+                       WebHelpApplet.Command("SyncToc",sPPath,sParam);\r
+               }\r
+       }\r
+}\r
+\r
+if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
+{\r
+       RegisterListener2(this, WH_MSG_SHOWTOC);\r
+       RegisterListener2(this, WH_MSG_SHOWIDX);\r
+       RegisterListener2(this, WH_MSG_SHOWFTS);\r
+       RegisterListener2(this, WH_MSG_SHOWGLO);\r
+       RegisterListener2(this, WH_MSG_SYNCTOC);\r
+       RegisterListener2(this, WH_MSG_SEARCHTHIS);\r
+       RegisterListener2(this, WH_MSG_GETPANEINFO);\r
+\r
+       window.onresize=onResize;\r
+       window.onunload = window_unload;\r
+       window.onload=window_OnLoad;\r
+       window.onerror = null;\r
+       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));\r
+\r
+       if (gbNav4 && !gbNav6 && gbWindows) {\r
+               setTimeout("CheckLoadingPhase0()", 1000);\r
+       }\r
+       if (gbNav4)\r
+       {\r
+               origWidth = innerWidth;\r
+               origHeight = innerHeight;\r
+               onresize = reDo;\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+</head>\r
+<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" bgcolor="c0c0c0">\r
+<applet code=WebHelp.class name=WebHelp  archive=webhelp.jar width=100% height=100% MAYSCRIPT hspace=0 vspace=0>\r
+<PARAM name=ProjectFile value=whproj.xml><PARAM name=ResourceFile value=whres.xml>\r
+<PARAM name=HideTabs value=true>\r
+<PARAM name=Frame value=bsscright>\r
+<PARAM name=cabbase value=webhelp.cab>\r
+</applet>\r
+</body>\r
+</html>\r
diff --git a/doc/salome/gui/VISU/whskin_pdhtml.htm b/doc/salome/gui/VISU/whskin_pdhtml.htm
new file mode 100755 (executable)
index 0000000..ffb2439
--- /dev/null
@@ -0,0 +1,57 @@
+<html>\r
+<head>\r
+<title> Navigation Pane </title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</head>\r
+<body border=0 topmargin=0 bottommargin=0 rightmargin=0 leftmargin=0 scroll=no>\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whmozemu.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2" src="whphost.js"></script>\r
+<script language="javascript1.2">\r
+<!--\r
+if (window.gbWhPHost)\r
+{\r
+       var gsNavReDirect="whskin_plist.htm";\r
+       var gbReDirectThis=true;\r
+       var oMsg = new whMessage(WH_MSG_GETPANES, this, 1, null);\r
+       if (SendMessage(oMsg))\r
+       {\r
+               if (oMsg.oParam)\r
+               {\r
+                       for (var i=0;i<oMsg.oParam.aPanes.length;i++)\r
+                       {\r
+                               addPane(oMsg.oParam.aPanes[i].sPaneName, oMsg.oParam.aPanes[i].sPaneURL);\r
+                       }\r
+                       setShowPane(oMsg.oParam.sDefault);\r
+                       setServerEnabled();\r
+               }\r
+               else\r
+                       writeWebHelpPane();\r
+       }\r
+       else\r
+               writeWebHelpPane();\r
+}\r
+else\r
+       document.location.reload();\r
+\r
+function writeWebHelpPane()\r
+{\r
+  var bPreferXML             = false;\r
+  var strProjectFileXML =  "whproj.xml";\r
+  var strProjectFileHTM =  "whproj.htm";       \r
+  addProject(bPreferXML, strProjectFileXML, strProjectFileHTM);\r
+  addPane("toc","whtdhtml.htm");\r
+  addPane("fts","whfdhtml.htm");\r
+  addPane("glo","whgdhtml.htm");\r
+  setShowPane("toc");\r
+\r
+}\r
+//-->\r
+</script>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whskin_plist.htm b/doc/salome/gui/VISU/whskin_plist.htm
new file mode 100755 (executable)
index 0000000..35f0155
--- /dev/null
@@ -0,0 +1,204 @@
+<html>\r
+<head>\r
+<title> Navigation Pane </title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+</head>\r
+<script language="javascript">\r
+<!--\r
+var strFrmToc = "";\r
+var strFrmNdx = "";\r
+var strFrmFts = "";\r
+var strFrmGls = "";\r
+var strFrmDft = "";\r
+var gstrName = "";\r
+\r
+//set overwrite here\r
+function setListFrames(strToc,strNdx,strFts,strGls,strDefault)\r
+{\r
+       strFrmToc = strToc;\r
+       strFrmNdx = strNdx;\r
+       strFrmFts = strFts;\r
+       strFrmGls = strGls;\r
+       strFrmDft = strDefault;\r
+       if (strFrmDft == strFrmToc)\r
+       {\r
+               gstrName = "toc";\r
+       }\r
+       else if (strFrmDft == strFrmNdx) \r
+       {\r
+               gstrName = "idx";\r
+\r
+       }\r
+       else if (strFrmDft == strFrmFts) \r
+       {\r
+               gstrName = "fts";\r
+       }\r
+       else if (strFrmDft == strFrmGls) \r
+       {\r
+               gstrName = "glo";\r
+       }\r
+}\r
+\r
+function setWebHelpPane()\r
+{\r
+       setListFrames("whgdata/whnvf30.htm","whgdata/whnvf31.htm","whgdata/whnvf32.htm","whgdata/whnvf33.htm","whgdata/whnvf30.htm");\r
+}\r
+\r
+function window_unload()\r
+{\r
+       if (!gbNav4 || gbNav6) // resize will call unload, but the register code will never be called on Netscape 4.\r
+       {\r
+               UnRegisterListener2(this,WH_MSG_SHOWTOC);\r
+               UnRegisterListener2(this,WH_MSG_SHOWIDX);\r
+               UnRegisterListener2(this,WH_MSG_SHOWFTS);\r
+               UnRegisterListener2(this,WH_MSG_SHOWGLO);\r
+               UnRegisterListener2(this, WH_MSG_GETPANEINFO);\r
+       }\r
+}\r
+\r
+function window_onload()\r
+{\r
+       if (gstrName)\r
+       {\r
+               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, gstrName);\r
+               SendMessage(onMsg);\r
+       }\r
+}\r
+\r
+function switchNvp(strName)\r
+{\r
+       var strFile = "";\r
+       if (strName == "toc")           strFile = strFrmToc;\r
+       else if (strName == "idx")      strFile = strFrmNdx;\r
+       else if (strName == "fts")      strFile = strFrmFts;\r
+       else if (strName == "glo")      strFile = strFrmGls;\r
+\r
+       gstrName = strName;\r
+       frames[0].location = strFile;   \r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       if(oMsg)\r
+       {\r
+               var nMsgId=oMsg.nMessageId;\r
+               if (nMsgId==WH_MSG_SHOWTOC)\r
+               {\r
+                       switchNvp("toc");\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");\r
+                       SendMessage(onMsg);\r
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWIDX)\r
+               {\r
+                       switchNvp("idx");\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");\r
+                       SendMessage(onMsg);\r
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWFTS)\r
+               {\r
+                       switchNvp("fts");\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");\r
+                       SendMessage(onMsg);\r
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWGLO)\r
+               {\r
+                       switchNvp("glo");\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");\r
+                       SendMessage(onMsg);\r
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if (nMsgId==WH_MSG_GETPANEINFO)\r
+               {\r
+                       oMsg.oParam = gstrName;\r
+                       return false;\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+function onResize()\r
+{\r
+       if (gbIE4)\r
+       {\r
+               if(document.body)\r
+               {\r
+                       if(document.body.clientWidth > 1 && document.body.clientHeight>1)\r
+                       {\r
+                               var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);\r
+                               SendMessage(oMsg);\r
+                       }\r
+               }\r
+       }\r
+       else \r
+       {\r
+               if (window.innerWidth != 0 && window.innerHeight != 0)\r
+               {\r
+                       var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);\r
+                       SendMessage(oMsg);\r
+               }\r
+       }\r
+}\r
+\r
+if (window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
+{\r
+       var oMsg = new whMessage(WH_MSG_GETPANES, this, 1, null);\r
+       if (SendMessage(oMsg))\r
+       {\r
+               if (oMsg.oParam)\r
+               {\r
+                       for (var i=0;i<oMsg.oParam.aPanes.length;i++)\r
+                       {\r
+                               if (oMsg.oParam.aPanes[i].sPaneName == "toc")\r
+                                       strFrmToc = oMsg.oParam.aPanes[i].sPaneURL;\r
+                               else if (oMsg.oParam.aPanes[i].sPaneName == "idx")\r
+                                       strFrmNdx = oMsg.oParam.aPanes[i].sPaneURL;\r
+                               else if (oMsg.oParam.aPanes[i].sPaneName == "fts")\r
+                                       strFrmFts = oMsg.oParam.aPanes[i].sPaneURL;\r
+                               else if (oMsg.oParam.aPanes[i].sPaneName == "glo")\r
+                                       strFrmGls = oMsg.oParam.aPanes[i].sPaneURL;\r
+                               if (oMsg.oParam.sDefault == oMsg.oParam.aPanes[i].sPaneName)\r
+                               {\r
+                                       strFrmDft = oMsg.oParam.aPanes[i].sPaneURL;\r
+                               }\r
+                       }\r
+               }\r
+               else\r
+                       setWebHelpPane();\r
+       }\r
+       else\r
+               setWebHelpPane();\r
+\r
+       RegisterListener2(this,WH_MSG_SHOWTOC);\r
+       RegisterListener2(this,WH_MSG_SHOWIDX);\r
+       RegisterListener2(this,WH_MSG_SHOWFTS);\r
+       RegisterListener2(this,WH_MSG_SHOWGLO);\r
+       RegisterListener2(this, WH_MSG_GETPANEINFO);\r
+\r
+       window.onresize=onResize;\r
+       window.onunload=window_unload;\r
+       window.onload=window_onload;\r
+\r
+       var strHtml = "";\r
+       strHtml += "<frameset rows=\'100%,*\'>";\r
+       strHtml += "<frame name=\'nvplist\' title=\'navpane frame\' src=\'" + strFrmDft +"\'></frame>";\r
+       strHtml += "<frame src=\'whskin_blank.htm\' noresize></frame>";\r
+       strHtml += "</frameset>";\r
+       document.write(strHtml);\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whskin_tbars.htm b/doc/salome/gui/VISU/whskin_tbars.htm
new file mode 100755 (executable)
index 0000000..8b70544
--- /dev/null
@@ -0,0 +1,98 @@
+<html>\r
+<head>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
+</head>\r
+<style>\r
+<!--\r
+body {margin:0;}\r
+-->\r
+</style>\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whmozemu.js"></script>\r
+<script language="javascript1.2" src="whtbar.js"></script>\r
+\r
+\r
+<body marginheight="0"  marginwidth="0"  bgcolor="#99ccff"     scroll="no">\r
+<script language="javascript1.2">\r
+<!--\r
+if (window.gbWhTBar)\r
+{\r
+       setButtonFont("toc","Tahoma","8pt","Black","Normal","Normal","none");\r
+setButtonFont("toc","Tahoma","8pt","White","Normal","Normal","none", true);\r
+setButtonFont("idx","Tahoma","8pt","Black","Normal","Normal","none");\r
+setButtonFont("idx","Tahoma","8pt","White","Normal","Normal","none", true);\r
+setButtonFont("fts","Tahoma","8pt","Black","Normal","Normal","none");\r
+setButtonFont("fts","Tahoma","8pt","White","Normal","Normal","none", true);\r
+setButtonFont("glo","Tahoma","8pt","Black","Normal","Normal","none");\r
+setButtonFont("glo","Tahoma","8pt","White","Normal","Normal","none", true);\r
+setButtonFont("websearch","Tahoma","8pt","Black","Normal","Normal","none");\r
+setButtonFont("websearch","Tahoma","8pt","White","Normal","Normal","none", true);\r
+setButtonFont("searchform","Tahoma","8pt","Black","Normal","Normal","none");\r
+setButtonFont("searchform","","","","","","", true);\r
+setButtonFont("banner","","","","","","");\r
+setButtonFont("banner","","","","","","", true);\r
+\r
+       gsIToc = "wht_toc_n.gif";\r
+       gsITocS = "wht_toc_h.gif";\r
+       gsIIndex = "wht_idx_n.gif";\r
+       gsIIndexS = "wht_idx_h.gif";\r
+       gsISearch = "wht_fts_n.gif";\r
+       gsISearchS = "wht_fts_h.gif";\r
+       gsIGlossary = "wht_glo_n.gif";\r
+       gsIGlossaryS = "wht_glo_h.gif";\r
+       gsIWebSearch = "wht_ws.gif";\r
+       gsIWebSearchD = "wht_ws_g.gif";\r
+       gsIBanner = "wht_logo1.gif";\r
+       gsIGo = "wht_go.gif";\r
+       setBackgroundcolor("#99ccff");\r
+       \r
+       setAlignment("left");\r
+       \r
+       \r
+       if (!gsBgImage)\r
+       {\r
+       setButtonBgColor("toc", gsBgColor);\r
+       setButtonBgColor("idx", gsBgColor);\r
+       setButtonBgColor("fts", gsBgColor);\r
+       setButtonBgColor("glo", gsBgColor);\r
+       setButtonBgColor("toc", gsTBSelectedBgColor, true);\r
+       setButtonBgColor("idx", gsTBSelectedBgColor, true);\r
+       setButtonBgColor("fts", gsTBSelectedBgColor, true);\r
+       setButtonBgColor("glo", gsTBSelectedBgColor, true);\r
+       setButtonBgColor("toc","#99ccff");\r
+setButtonBgColor("idx","#99ccff");\r
+setButtonBgColor("fts","#99ccff");\r
+setButtonBgColor("glo","#99ccff");\r
+setButtonBgColor("websearch","#99ccff");\r
+setButtonBgColor("searchform","");\r
+setButtonBgColor("banner","");\r
+\r
+       }\r
+       setButtonBgColor("toc","#639ace", true);\r
+setButtonBgColor("idx","#639ace", true);\r
+setButtonBgColor("fts","#639ace", true);\r
+setButtonBgColor("glo","#639ace", true);\r
+setButtonBgColor("websearch","#639ace", true);\r
+setButtonBgColor("searchform","", true);\r
+setButtonBgColor("banner","", true);\r
+\r
+       addButton("toc",BTN_TEXT|BTN_IMG,"Contents","","","","",0,0,"","","","","","");\r
+addButton("fts",BTN_TEXT|BTN_IMG,"Search","","","","",0,0,"","","","","","");\r
+addButton("glo",BTN_TEXT|BTN_IMG,"Glossary","","","","",0,0,"","","","","","");\r
+addButton("searchform",BTN_TEXT,"","","","","",0,0,"","","","","","");\r
+addButton("banner",BTN_IMG,"eHelp Corporation","","","","",0,0,"","","","","","");\r
+\r
+       addButton("blankblock");\r
+       writeStyle(false);\r
+       ReSortToolbarButtons();\r
+       writeToolBar();\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whst_topics.xml b/doc/salome/gui/VISU/whst_topics.xml
new file mode 100755 (executable)
index 0000000..2a61402
--- /dev/null
@@ -0,0 +1,81 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>\r
+<topictemplate>\r
+ <topic type="normal">\r
+  <add tag="head" pos="endbefore" >\r
+   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_MESSAGE_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_PROXY_JS ;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_TOPIC_JS;"\"></script>\r
+";]]>\r
+  </add>\r
+  <add tag="body" pos="beginafter">\r
+    <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       ";\r
+         OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");\r
+         OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");\r
+         OutputInTopicNavBarDataButtons("addButton(%s);\r\n");\r
+       "\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(";WH_WEBSKIN.topic.bar.top.pos;");\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       ";\r
+         OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");\r
+         OutputInTopicNavBarDataWebSearch.href("addSearchFormHref(\"%s\");\r\n");\r
+       "\r
+               autoSync(";WH_USER_OPTIONS.autosync_toc;");\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>"]]>  \r
+  </add>\r
+  <add tag="body" pos="endbefore">\r
+   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(";WH_WEBSKIN.topic.bar.bottom.pos;");\r
+//-->\r
+</script>";\r
+OutputInTopicNavBarDataWebSearch.form();]]>    \r
+  </add>\r
+ </topic>\r
+ <topic type="frameset">\r
+  <add tag="head" pos="endbefore" >\r
+   <![CDATA["<script type=\"text/javascript1.2\" language=\"javascript\" src=\"";SF_MESSAGE_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_PROXY_JS ;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_FRAMESET_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript1.2\">\r
+<!--\r
+if (window.setRelStartPage)\r
+{\r
+";\r
+  OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");\r
+  OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");\r
+  OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");\r
+"\r
+}\r
+if (window.autoSync)\r
+       autoSync(";WH_USER_OPTIONS.autosync_toc;");\r
+//-->\r
+</script>\r
+";]]>\r
+  </add>\r
+ </topic>\r
+</topictemplate>\r
diff --git a/doc/salome/gui/VISU/whstart.ico b/doc/salome/gui/VISU/whstart.ico
new file mode 100755 (executable)
index 0000000..365ecea
Binary files /dev/null and b/doc/salome/gui/VISU/whstart.ico differ
diff --git a/doc/salome/gui/VISU/whstart.js b/doc/salome/gui/VISU/whstart.js
new file mode 100755 (executable)
index 0000000..454e6e3
--- /dev/null
@@ -0,0 +1,244 @@
+RegisterListener2(this, WH_MSG_GETSTARTFRAME);\r
+RegisterListener2(this, WH_MSG_GETDEFAULTTOPIC);\r
+RegisterListener2(this, WH_MSG_MINIBARORDER);\r
+RegisterListener2(this, WH_MSG_TOOLBARORDER);\r
+RegisterListener2(this, WH_MSG_ISSEARCHSUPPORT);\r
+RegisterListener2(this, WH_MSG_ISSYNCSSUPPORT);\r
+RegisterListener2(this, WH_MSG_ISAVENUESUPPORT);\r
+RegisterListener2(this, WH_MSG_GETPANETYPE);\r
+RegisterListener2(this, WH_MSG_GETPANES);\r
+RegisterListener2(this, WH_MSG_RELOADNS6);\r
+\r
+if (gbNav6)\r
+{\r
+       var gnReload=0;\r
+       setTimeout("delayReload();",5000);\r
+}\r
+\r
+function delayReload()\r
+{\r
+       if(!gnReload)\r
+       {\r
+               if(nViewFrameType&&nViewFrameType==1)\r
+                       document.location=document.location;\r
+       }\r
+}\r
+\r
+var gsToolbarOrder = "toc|fts|glo|blankblock|banner";\r
+var gsMinibarOrder = "blankblock|hide2|";\r
+\r
+var gsTopic = "files/introduction_to_visu.htm";\r
+\r
+if (location.hash.length > 1)\r
+       gsTopic = location.hash.substring(1);\r
+\r
+function setToolbarOrder(sOrder)\r
+{\r
+       gsToolbarOrder = sOrder;\r
+}\r
+\r
+function setMinibarOrder(sOrder)\r
+{\r
+       gsMinibarOrder = sOrder;\r
+}\r
+\r
+function onSendMessageX(oMsg)\r
+{\r
+       var nMsgId = oMsg.nMessageId;\r
+       if (nMsgId == WH_MSG_GETSTARTFRAME)\r
+       {\r
+               oMsg.oParam.oFrame = this;\r
+               return false;\r
+       }\r
+       else if (nMsgId == WH_MSG_GETDEFAULTTOPIC)\r
+       {\r
+               if (this.cMRServer && cMRServer.m_strVersion)\r
+               {\r
+                       if (cMRServer.m_strURLTopic);\r
+                       {\r
+                               oMsg.oParam.sTopic = cMRServer.m_strURLTopic;\r
+                               return false;\r
+                       }\r
+\r
+               }\r
+               oMsg.oParam.sTopic = gsTopic;\r
+               return false;\r
+       }\r
+       else if (nMsgId == WH_MSG_TOOLBARORDER)\r
+       {\r
+               var oMsg1 = new whMessage(WH_MSG_GETPANES, this, 1, null);\r
+               if (SendMessage(oMsg1))\r
+               {\r
+                       if (oMsg1.oParam)\r
+                       {\r
+                               if (this.cMRServer && cMRServer.m_strVersion)\r
+                               {\r
+                                       var aToolbarOrder=cMRServer.m_strAgentList.split(";");\r
+                                       var i=0;\r
+                                       for (i=0;i<aToolbarOrder.length;i++)\r
+                                               aToolbarOrder[i]=transferANToPN2(aToolbarOrder[i]);\r
+                                       aToolbarOrder[aToolbarOrder.length] = "blankblock";\r
+                                       if (cMRServer.m_bShowSearchInput)\r
+                                       {\r
+                                               aToolbarOrder[aToolbarOrder.length] = "searchform";\r
+                                       }\r
+                                       aToolbarOrder[aToolbarOrder.length] = "banner";\r
+                                       var aToolbarOrderNew = new Array();\r
+                                       for (i=0;i<aToolbarOrder.length;i++)\r
+                                       {\r
+                                               if (isAPane(aToolbarOrder[i]))\r
+                                               {\r
+                                                       if (oMsg1.oParam.aPanes && oMsg1.oParam.aPanes.length)\r
+                                                       {\r
+                                                               for (var j=0;j<oMsg1.oParam.aPanes.length;j++)\r
+                                                               {\r
+                                                                       if (aToolbarOrder[i] == oMsg1.oParam.aPanes[j].sPaneName)\r
+                                                                       {\r
+                                                                               aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];\r
+                                                                               break;\r
+                                                                       }\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                               else\r
+                                                       aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];\r
+                                       }\r
+                                       oMsg.oParam = aToolbarOrderNew.join("|");\r
+                                       return false;\r
+                               }\r
+                       }\r
+               }\r
+               oMsg.oParam = gsToolbarOrder;\r
+               return false;\r
+       }\r
+       else if (nMsgId == WH_MSG_MINIBARORDER)\r
+       {\r
+               oMsg.oParam = gsMinibarOrder;\r
+               return false;\r
+       }\r
+       else if (nMsgId == WH_MSG_ISSYNCSSUPPORT)\r
+       {\r
+               if (this.cMRServer && cMRServer.m_strVersion)\r
+               {\r
+                       if (cMRServer.m_bShowSync)\r
+                               oMsg.oParam=true;\r
+                       else\r
+                               oMsg.oParam=false;\r
+                       return false;\r
+               }\r
+               else\r
+               {\r
+                       if(nViewFrameType)\r
+                       {\r
+                               oMsg.oParam= (nViewFrameType < 3);\r
+                               return false;\r
+                       }\r
+               }\r
+       }\r
+       else if (nMsgId == WH_MSG_ISAVENUESUPPORT)\r
+       {\r
+               if (this.cMRServer && cMRServer.m_strVersion)\r
+               {\r
+                       if (cMRServer.m_bShowBrowseSequences)\r
+                               oMsg.oParam=true;\r
+                       else\r
+                               oMsg.oParam=false;\r
+               }\r
+               else\r
+               {\r
+                       oMsg.oParam=true;\r
+               }\r
+               return false;\r
+       }\r
+       else if (nMsgId == WH_MSG_ISSEARCHSUPPORT)\r
+       {\r
+               if(nViewFrameType)\r
+               {\r
+                       oMsg.oParam= (nViewFrameType < 3);\r
+                       return false;\r
+               }\r
+       }\r
+       else if (nMsgId == WH_MSG_GETPANETYPE)\r
+       {\r
+               if(nViewFrameType)\r
+               {\r
+                       var oPaneInfo = new Object();\r
+                       oPaneInfo.nType = nViewFrameType;\r
+                       oPaneInfo.sPaneURL = strPane;\r
+                       oMsg.oParam = oPaneInfo;\r
+                       return false;\r
+               }\r
+       }\r
+       else if (nMsgId == WH_MSG_GETPANES)\r
+       {\r
+               if (this.cMRServer && cMRServer.m_strVersion)\r
+               {\r
+                       var oPanes = new Object();\r
+                       var aAgentNames = null;\r
+                       if (cMRServer.m_strDefAgent)\r
+                               oPanes.sDefault = transferAgentNameToPaneName(cMRServer.m_strDefAgent);\r
+\r
+                       aPanes = new Array();\r
+                       for(var i=0; i< cMRServer.m_cAgents.length; i++)\r
+                       {\r
+                               var nCur = aPanes.length;\r
+                               aPanes[nCur] = new Object();\r
+                               aPanes[nCur].sPaneName = transferAgentNameToPaneName(cMRServer.m_cAgents[i].m_strID);\r
+                               aPanes[nCur].sPaneURL = cMRServer.m_cAgents[i].m_strURL;\r
+                       }\r
+                       oPanes.aPanes = aPanes;\r
+                       oMsg.oParam = oPanes;\r
+                       return false;\r
+               }\r
+               else\r
+               {\r
+                       oMsg.oParam = null;\r
+                       return false;\r
+               }\r
+       }\r
+       else if(nMsgId==WH_MSG_RELOADNS6)\r
+       {\r
+               if(gbNav6)\r
+                       gnReload=1;\r
+               return false;\r
+       }\r
+       return true;\r
+}\r
+\r
+function transferANToPN2(sAN)\r
+{\r
+       if (sAN =="toc")\r
+               return "toc";\r
+       else if (sAN =="ndx")\r
+               return "idx";\r
+       else if (sAN =="nls")\r
+               return "fts";\r
+       else if (sAN =="Glossary")\r
+               return "glo";\r
+       else if (sAN =="WebSearch")\r
+               return "websearch";\r
+       else if (sAN.indexOf("custom_")==0);\r
+               return "custom" + sAN.substring(7);\r
+       return sAN;\r
+}\r
+\r
+function transferAgentNameToPaneName(sAgentName)\r
+{\r
+       if (sAgentName =="toc")\r
+               return "toc";\r
+       else if (sAgentName =="ndx")\r
+               return "idx";\r
+       else if (sAgentName =="nls")\r
+               return "fts";\r
+       else if (sAgentName =="gls")\r
+               return "glo";\r
+       return "";\r
+}\r
+\r
+function isAPane(sPaneName)\r
+{\r
+       if (sPaneName == "toc" || sPaneName == "idx" || sPaneName == "fts" || sPaneName == "glo")\r
+               return true;\r
+       else\r
+               return false;\r
+}
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whstub.js b/doc/salome/gui/VISU/whstub.js
new file mode 100755 (executable)
index 0000000..7a67691
--- /dev/null
@@ -0,0 +1,156 @@
+window.whname="wh_stub";\r
+function getframehandle(frames,framename)\r
+{\r
+       var frame=null;\r
+       if(null==frames) return null;\r
+       for(var i=0;i<frames.length;i++)\r
+       {\r
+               if(typeof(frames[i].name)!="unknown")\r
+               {\r
+                       if(frames[i].name==framename)\r
+                               return frames[i];\r
+                       if(frames[i].frames.length>0)\r
+                               frame=getframehandle(frames[i].frames,framename);\r
+                               if(null!=frame)\r
+                                       return frame;\r
+               }\r
+       }\r
+       return frame;\r
+}\r
+\r
+function AddToArray(arr,obj)\r
+{\r
+       var bFound=false;\r
+       for(var i=0;i<arr.length;i++){\r
+               if(arr[i]==obj){\r
+                       bFound=true;\r
+                       break;\r
+               }\r
+               else if(arr[i]==null){\r
+                       break;\r
+               }\r
+       }\r
+       if(!bFound) arr[i]=obj;\r
+}\r
+\r
+var gArrayRegistedMessage=new Array();\r
+var gArrayCompoentsArray=new Array();\r
+\r
+function GetComponentsArray(nMessageId)\r
+{\r
+       var len=gArrayRegistedMessage.length;\r
+       for(var i=0;i<len;i++)\r
+       {\r
+               if(gArrayRegistedMessage[i]==nMessageId){\r
+                       if(gArrayCompoentsArray.length>i)\r
+                               return gArrayCompoentsArray[i];\r
+                       else\r
+                               return null;\r
+               }\r
+       }\r
+       return null;\r
+}\r
+\r
+function CreateComponentsArray(nMessageId)\r
+{\r
+       var len=gArrayRegistedMessage.length;\r
+       gArrayRegistedMessage[len]=nMessageId;\r
+       gArrayCompoentsArray[len]=new Array();\r
+       return gArrayCompoentsArray[len];\r
+}\r
+\r
+function listener(sName,oWindow)\r
+{\r
+       this.sName=sName;\r
+       this.oWindow=oWindow;\r
+}\r
+\r
+function RegisterListener(windowName,nMessageId)\r
+{\r
+       var arrayComponents=GetComponentsArray(nMessageId);\r
+       if(arrayComponents==null)\r
+               arrayComponents=CreateComponentsArray(nMessageId);\r
+       \r
+       if(arrayComponents!=null)\r
+       {\r
+               for (var i=0;i<arrayComponents.length;i++)\r
+               {\r
+                       if (arrayComponents[i].sName == windowName)\r
+                               return false;\r
+               }\r
+               var oListener=new listener(windowName,null);\r
+               AddToArray(arrayComponents,oListener);\r
+               return true;\r
+       }\r
+       else\r
+               return false;\r
+}\r
+\r
+function RegisterListener2(oWindow,nMessageId)\r
+{\r
+       var arrayComponents=GetComponentsArray(nMessageId);\r
+       if(arrayComponents==null)\r
+               arrayComponents=CreateComponentsArray(nMessageId);\r
+       \r
+       if(arrayComponents!=null)\r
+       {\r
+               var oListener=new listener("",oWindow);\r
+               AddToArray(arrayComponents,oListener);\r
+               return true;\r
+       }\r
+       else\r
+               return false;\r
+}\r
+\r
+function UnRegisterListener2(oWindow,nMessageId)\r
+{\r
+       var arrayComponents=GetComponentsArray(nMessageId);\r
+       if(arrayComponents!=null)\r
+       {\r
+               for(var i=0;i<arrayComponents.length;i++)\r
+               {\r
+                       if(arrayComponents[i].oWindow==oWindow)\r
+                       {\r
+                               removeItemFromArray(arrayComponents,i);\r
+                               return true;\r
+                       }\r
+               }\r
+       }\r
+       else\r
+               return false;\r
+}\r
+\r
+function SendMessage(oMessage)\r
+{\r
+       var bDelivered=false;\r
+       var arrayComponents=GetComponentsArray(oMessage.nMessageId);\r
+       if(arrayComponents!=null&&arrayComponents.length>0){\r
+               for(var i=0;i<arrayComponents.length;i++)\r
+               {\r
+                       if(null!=arrayComponents[i])\r
+                       {\r
+                               var pFrame;\r
+                               if(arrayComponents[i].oWindow==null)\r
+                                       pFrame=getframehandle(frames,arrayComponents[i].sName);\r
+                               else\r
+                                       pFrame=arrayComponents[i].oWindow;\r
+                               if(null!=pFrame)\r
+                               {\r
+                                       if(pFrame.onSendMessageX)\r
+                                       {\r
+                                               bDelivered=true;\r
+                                               if(!pFrame.onSendMessageX(oMessage))\r
+                                                       break;\r
+                                       }\r
+                                       if(pFrame.onSendMessage)\r
+                                       {\r
+                                               bDelivered=true;\r
+                                               if(!pFrame.onSendMessage(oMessage))\r
+                                                       break;\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+       return bDelivered;\r
+}
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/wht_abge.jpg b/doc/salome/gui/VISU/wht_abge.jpg
new file mode 100755 (executable)
index 0000000..bfab652
Binary files /dev/null and b/doc/salome/gui/VISU/wht_abge.jpg differ
diff --git a/doc/salome/gui/VISU/wht_abgi.jpg b/doc/salome/gui/VISU/wht_abgi.jpg
new file mode 100755 (executable)
index 0000000..f0729b7
Binary files /dev/null and b/doc/salome/gui/VISU/wht_abgi.jpg differ
diff --git a/doc/salome/gui/VISU/wht_abgw.jpg b/doc/salome/gui/VISU/wht_abgw.jpg
new file mode 100755 (executable)
index 0000000..74de750
Binary files /dev/null and b/doc/salome/gui/VISU/wht_abgw.jpg differ
diff --git a/doc/salome/gui/VISU/wht_abte.jpg b/doc/salome/gui/VISU/wht_abte.jpg
new file mode 100755 (executable)
index 0000000..78fabbb
Binary files /dev/null and b/doc/salome/gui/VISU/wht_abte.jpg differ
diff --git a/doc/salome/gui/VISU/wht_abti.jpg b/doc/salome/gui/VISU/wht_abti.jpg
new file mode 100755 (executable)
index 0000000..92c2d68
Binary files /dev/null and b/doc/salome/gui/VISU/wht_abti.jpg differ
diff --git a/doc/salome/gui/VISU/wht_abtw.jpg b/doc/salome/gui/VISU/wht_abtw.jpg
new file mode 100755 (executable)
index 0000000..1fdd1a8
Binary files /dev/null and b/doc/salome/gui/VISU/wht_abtw.jpg differ
diff --git a/doc/salome/gui/VISU/wht_fts_h.gif b/doc/salome/gui/VISU/wht_fts_h.gif
new file mode 100755 (executable)
index 0000000..feb79ae
Binary files /dev/null and b/doc/salome/gui/VISU/wht_fts_h.gif differ
diff --git a/doc/salome/gui/VISU/wht_fts_n.gif b/doc/salome/gui/VISU/wht_fts_n.gif
new file mode 100755 (executable)
index 0000000..8483be4
Binary files /dev/null and b/doc/salome/gui/VISU/wht_fts_n.gif differ
diff --git a/doc/salome/gui/VISU/wht_glo_h.gif b/doc/salome/gui/VISU/wht_glo_h.gif
new file mode 100755 (executable)
index 0000000..12223e5
Binary files /dev/null and b/doc/salome/gui/VISU/wht_glo_h.gif differ
diff --git a/doc/salome/gui/VISU/wht_glo_n.gif b/doc/salome/gui/VISU/wht_glo_n.gif
new file mode 100755 (executable)
index 0000000..32803eb
Binary files /dev/null and b/doc/salome/gui/VISU/wht_glo_n.gif differ
diff --git a/doc/salome/gui/VISU/wht_go.gif b/doc/salome/gui/VISU/wht_go.gif
new file mode 100755 (executable)
index 0000000..106f1d1
Binary files /dev/null and b/doc/salome/gui/VISU/wht_go.gif differ
diff --git a/doc/salome/gui/VISU/wht_hide.gif b/doc/salome/gui/VISU/wht_hide.gif
new file mode 100755 (executable)
index 0000000..6ec602d
Binary files /dev/null and b/doc/salome/gui/VISU/wht_hide.gif differ
diff --git a/doc/salome/gui/VISU/wht_idx_h.gif b/doc/salome/gui/VISU/wht_idx_h.gif
new file mode 100755 (executable)
index 0000000..2df1b16
Binary files /dev/null and b/doc/salome/gui/VISU/wht_idx_h.gif differ
diff --git a/doc/salome/gui/VISU/wht_idx_n.gif b/doc/salome/gui/VISU/wht_idx_n.gif
new file mode 100755 (executable)
index 0000000..fd193a0
Binary files /dev/null and b/doc/salome/gui/VISU/wht_idx_n.gif differ
diff --git a/doc/salome/gui/VISU/wht_logo1.gif b/doc/salome/gui/VISU/wht_logo1.gif
new file mode 100755 (executable)
index 0000000..2ef5700
Binary files /dev/null and b/doc/salome/gui/VISU/wht_logo1.gif differ
diff --git a/doc/salome/gui/VISU/wht_logo2.gif b/doc/salome/gui/VISU/wht_logo2.gif
new file mode 100755 (executable)
index 0000000..2ac62e8
Binary files /dev/null and b/doc/salome/gui/VISU/wht_logo2.gif differ
diff --git a/doc/salome/gui/VISU/wht_next.gif b/doc/salome/gui/VISU/wht_next.gif
new file mode 100755 (executable)
index 0000000..8ea834d
Binary files /dev/null and b/doc/salome/gui/VISU/wht_next.gif differ
diff --git a/doc/salome/gui/VISU/wht_next_g.gif b/doc/salome/gui/VISU/wht_next_g.gif
new file mode 100755 (executable)
index 0000000..c0e9758
Binary files /dev/null and b/doc/salome/gui/VISU/wht_next_g.gif differ
diff --git a/doc/salome/gui/VISU/wht_prev.gif b/doc/salome/gui/VISU/wht_prev.gif
new file mode 100755 (executable)
index 0000000..b7eaba8
Binary files /dev/null and b/doc/salome/gui/VISU/wht_prev.gif differ
diff --git a/doc/salome/gui/VISU/wht_prev_g.gif b/doc/salome/gui/VISU/wht_prev_g.gif
new file mode 100755 (executable)
index 0000000..8647909
Binary files /dev/null and b/doc/salome/gui/VISU/wht_prev_g.gif differ
diff --git a/doc/salome/gui/VISU/wht_spac.gif b/doc/salome/gui/VISU/wht_spac.gif
new file mode 100755 (executable)
index 0000000..fc25609
Binary files /dev/null and b/doc/salome/gui/VISU/wht_spac.gif differ
diff --git a/doc/salome/gui/VISU/wht_sync.gif b/doc/salome/gui/VISU/wht_sync.gif
new file mode 100755 (executable)
index 0000000..0ef1747
Binary files /dev/null and b/doc/salome/gui/VISU/wht_sync.gif differ
diff --git a/doc/salome/gui/VISU/wht_tab0.gif b/doc/salome/gui/VISU/wht_tab0.gif
new file mode 100755 (executable)
index 0000000..955c42f
Binary files /dev/null and b/doc/salome/gui/VISU/wht_tab0.gif differ
diff --git a/doc/salome/gui/VISU/wht_tab1.gif b/doc/salome/gui/VISU/wht_tab1.gif
new file mode 100755 (executable)
index 0000000..b3ec41d
Binary files /dev/null and b/doc/salome/gui/VISU/wht_tab1.gif differ
diff --git a/doc/salome/gui/VISU/wht_tab2.gif b/doc/salome/gui/VISU/wht_tab2.gif
new file mode 100755 (executable)
index 0000000..08fb0ce
Binary files /dev/null and b/doc/salome/gui/VISU/wht_tab2.gif differ
diff --git a/doc/salome/gui/VISU/wht_tab3.gif b/doc/salome/gui/VISU/wht_tab3.gif
new file mode 100755 (executable)
index 0000000..1819c8e
Binary files /dev/null and b/doc/salome/gui/VISU/wht_tab3.gif differ
diff --git a/doc/salome/gui/VISU/wht_tab4.gif b/doc/salome/gui/VISU/wht_tab4.gif
new file mode 100755 (executable)
index 0000000..1a6fc4f
Binary files /dev/null and b/doc/salome/gui/VISU/wht_tab4.gif differ
diff --git a/doc/salome/gui/VISU/wht_tab5.gif b/doc/salome/gui/VISU/wht_tab5.gif
new file mode 100755 (executable)
index 0000000..9340192
Binary files /dev/null and b/doc/salome/gui/VISU/wht_tab5.gif differ
diff --git a/doc/salome/gui/VISU/wht_tab6.gif b/doc/salome/gui/VISU/wht_tab6.gif
new file mode 100755 (executable)
index 0000000..fe312d2
Binary files /dev/null and b/doc/salome/gui/VISU/wht_tab6.gif differ
diff --git a/doc/salome/gui/VISU/wht_tab7.gif b/doc/salome/gui/VISU/wht_tab7.gif
new file mode 100755 (executable)
index 0000000..3b95ae2
Binary files /dev/null and b/doc/salome/gui/VISU/wht_tab7.gif differ
diff --git a/doc/salome/gui/VISU/wht_tab8.gif b/doc/salome/gui/VISU/wht_tab8.gif
new file mode 100755 (executable)
index 0000000..c80acc8
Binary files /dev/null and b/doc/salome/gui/VISU/wht_tab8.gif differ
diff --git a/doc/salome/gui/VISU/wht_toc1.gif b/doc/salome/gui/VISU/wht_toc1.gif
new file mode 100755 (executable)
index 0000000..515c352
Binary files /dev/null and b/doc/salome/gui/VISU/wht_toc1.gif differ
diff --git a/doc/salome/gui/VISU/wht_toc2.gif b/doc/salome/gui/VISU/wht_toc2.gif
new file mode 100755 (executable)
index 0000000..2e3d6c8
Binary files /dev/null and b/doc/salome/gui/VISU/wht_toc2.gif differ
diff --git a/doc/salome/gui/VISU/wht_toc3.gif b/doc/salome/gui/VISU/wht_toc3.gif
new file mode 100755 (executable)
index 0000000..330f369
Binary files /dev/null and b/doc/salome/gui/VISU/wht_toc3.gif differ
diff --git a/doc/salome/gui/VISU/wht_toc4.gif b/doc/salome/gui/VISU/wht_toc4.gif
new file mode 100755 (executable)
index 0000000..3f9a036
Binary files /dev/null and b/doc/salome/gui/VISU/wht_toc4.gif differ
diff --git a/doc/salome/gui/VISU/wht_toc_h.gif b/doc/salome/gui/VISU/wht_toc_h.gif
new file mode 100755 (executable)
index 0000000..fe20f68
Binary files /dev/null and b/doc/salome/gui/VISU/wht_toc_h.gif differ
diff --git a/doc/salome/gui/VISU/wht_toc_n.gif b/doc/salome/gui/VISU/wht_toc_n.gif
new file mode 100755 (executable)
index 0000000..ce28310
Binary files /dev/null and b/doc/salome/gui/VISU/wht_toc_n.gif differ
diff --git a/doc/salome/gui/VISU/wht_ws.gif b/doc/salome/gui/VISU/wht_ws.gif
new file mode 100755 (executable)
index 0000000..563db8b
Binary files /dev/null and b/doc/salome/gui/VISU/wht_ws.gif differ
diff --git a/doc/salome/gui/VISU/wht_ws_g.gif b/doc/salome/gui/VISU/wht_ws_g.gif
new file mode 100755 (executable)
index 0000000..3056b75
Binary files /dev/null and b/doc/salome/gui/VISU/wht_ws_g.gif differ
diff --git a/doc/salome/gui/VISU/whtbar.js b/doc/salome/gui/VISU/whtbar.js
new file mode 100755 (executable)
index 0000000..a183c98
--- /dev/null
@@ -0,0 +1,1990 @@
+var gaButtons=new Array();\r
+var    gaTypes=new Array();\r
+var gaBtnBgColor=new Array();\r
+var gaSelBtnBgColor=new Array();\r
+var gaOrders=null;\r
+var gaObjBtns=new Array();\r
+var BTN_TEXT=1;\r
+var BTN_IMG=2;\r
+var BTN_IMG_TOP=4\r
+var BTN_IMG_BOTTOM=8;\r
+var BTN_IMG_LEFT=16;\r
+var BTN_IMG_RIGHT=32;\r
+var gsAlign="left";\r
+var gsBgImage="";\r
+var gsBgColor="#99ccff";\r
+var gsShadow="#cccccc";\r
+var gsTBBgImage="";\r
+var gnShowHideStyle=0;\r
+var goTocInfo=null;\r
+var gbTocInfoInited=false;\r
+var goWebSearch=null;\r
+var gsTBFontFamily="Arial";\r
+var gsTBFontSize="xx-small";\r
+var gsTBFontColor="#003063";\r
+var gsTBDarkColor="#808080";\r
+var gsTBLightColor="#FFFAFA";\r
+var gsTBSelectedBgColor="#639ace";\r
+var gsTBFontSelectedColor="#ffffff";\r
+var gaOnLoads=new Array();\r
+var goWebSearchEnable=true;\r
+\r
+var goShow=null;\r
+var goHide=null;\r
+var goHide2=null;\r
+var goSync=null;\r
+\r
+var goToc=null;\r
+var goIdx=null;\r
+var goFts=null;\r
+var goGlo=null;\r
+var goNext=null;\r
+var goPrev=null;\r
+\r
+var LAYOUT=1;\r
+var HLAYOUT=0;\r
+var VLAYOUT=1;\r
+var ALIGN=2;\r
+var BALIGN=0;\r
+var EALIGN=2;\r
+var goEl=null;\r
+var gnRE=0;\r
+\r
+var gnButtonLayout=0;\r
+var gnShowHide=-1;\r
+\r
+var gbEqualSize=false;\r
+var goCusButton=new Array();\r
+var gsBtnStyle="";\r
+var gaAvenues=null;\r
+var gsCurAveName="";\r
+\r
+var gsIToc=null;\r
+var gsITocS=null;\r
+var gsIIndex=null;\r
+var gsIIndexS=null;\r
+var gsISearch=null;\r
+var gsISearchS=null;\r
+var gsIGlossary=null;\r
+var gsIGlossaryS=null;\r
+var gsIBanner=null;\r
+var gsIGo=null;\r
+\r
+var gsIHide=null;\r
+var gsIPrev=null;\r
+var gsINext=null;\r
+var gsISync=null;\r
+var gsINextD=null;\r
+var gsIPrevD=null;\r
+var gsIWebSearch=null;\r
+var gsIWebSearchD=null;\r
+\r
+var gbAveButttnInited=false;\r
+var goNextParent=null;\r
+var goPrevParent=null;\r
+var gsSearchPrompt="- Search -";\r
+\r
+var gstrSearch="";\r
+var gbPreview=false;\r
+gbPreview=false; \r
+var gsSearchFormTitle="";\r
+var gnHasNavPane=-1;\r
+var gbInitBtn=false;\r
+var gaBtns=new Array();\r
+var gbWhTBar=false;\r
+var goTextFont=null;\r
+var goSelTextFont=null;\r
+var gsPane="";\r
+var gbNeedUpdateAve=false;\r
+var gbUpdateTimerCount=0;\r
+\r
+function setGoImage(sGoImage)\r
+{\r
+       if(sGoImage)\r
+       {\r
+               gsIGo=sGoImage;\r
+       }\r
+}\r
+\r
+function btnBgColor(sType,sColor)\r
+{\r
+       this.sType=sType;\r
+       this.sColor=sColor;\r
+}\r
+\r
+function setBackground(sBgImage)\r
+{\r
+       gsBgImage=sBgImage;\r
+}\r
+\r
+function setBackgroundcolor(sBgColor)\r
+{\r
+       gsBgColor=sBgColor;\r
+}\r
+\r
+function setAlignment(strAlignment)\r
+{\r
+       gnButtonLayout=0;\r
+       if(strAlignment=="left")\r
+       {\r
+               gnButtonLayout=HLAYOUT|BALIGN;\r
+       }\r
+       else if(strAlignment=="right")\r
+       {\r
+               gnButtonLayout=HLAYOUT|EALIGN;\r
+       }\r
+       else if(strAlignment=="top")\r
+       {\r
+               gnButtonLayout=VLAYOUT|BALIGN;\r
+       }\r
+       else if(strAlignment=="bottom")\r
+       {\r
+               gnButtonLayout=VLAYOUT|EALIGN;\r
+       }\r
+}\r
+\r
+function writeStyle(bMiniBar)\r
+{\r
+       var sStyle="";\r
+       sStyle+="<style type='text/css'>\n";\r
+       sStyle+="<!--\n";\r
+       sStyle+=".clsBtnNormal {\n";\r
+       if(!(gbNav4&&!gbNav6))\r
+               if (bMiniBar)\r
+                       sStyle+="padding:2px;\n";\r
+               else\r
+                       sStyle+="padding:5px;\n";\r
+       sStyle+="cursor:hand;\n";\r
+       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
+       sStyle+="font-size:"+gsTBFontSize+";\n";\r
+       sStyle+="color:"+gsTBFontColor+";}\n";\r
+\r
+       sStyle+=".clsNoBNormal {\n";\r
+       sStyle+="padding-left:2px;padding-right:2px;\n";\r
+       sStyle+="cursor:hand;\n";\r
+       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
+       sStyle+="font-size:"+gsTBFontSize+";\n";\r
+       sStyle+="color:"+gsTBFontColor+";}\n";\r
+\r
+       sStyle+=".clsNotBtn {\n";\r
+       if(!(gbNav4&&!gbNav6))\r
+               if (bMiniBar)\r
+                       sStyle+="padding:2px;\n";\r
+               else\r
+                       sStyle+="padding:5px;\n";\r
+       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
+       sStyle+="font-size:"+gsTBFontSize+";\n";\r
+       sStyle+="color:"+gsTBFontColor+";}\n";\r
+\r
+       sStyle+=".clsBtnUp{\n";\r
+       if(!(gbNav4&&!gbNav6))\r
+               if (bMiniBar)\r
+                       sStyle+="padding:1px;\n";\r
+               else\r
+                       sStyle+="padding:4px;\n";\r
+       sStyle+="border-bottom:"+gsTBDarkColor+" 1px solid;\n";\r
+       sStyle+="border-left:"+gsTBLightColor+" 1px solid;\n";\r
+       sStyle+="border-right:"+gsTBDarkColor+" 1px solid;\n";\r
+       sStyle+="border-top:"+gsTBLightColor+" 1px solid;\n";\r
+       sStyle+="cursor:hand;";\r
+       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
+       sStyle+="font-size:"+gsTBFontSize+";\n";\r
+       sStyle+="color:"+gsTBFontColor+";}\n";\r
+\r
+       sStyle+=".clsNoBUp{\n";\r
+       sStyle+="padding-left:2px;padding-right:2px;\n";\r
+       sStyle+="cursor:hand;";\r
+       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
+       sStyle+="font-size:"+gsTBFontSize+";\n";\r
+       sStyle+="color:"+gsTBFontColor+";}\n";\r
+\r
+       sStyle+=".clsBtnDown{\n";\r
+       if(!(gbNav4&&!gbNav6))\r
+               if (bMiniBar)\r
+                       sStyle+="padding:1px;\n";\r
+               else\r
+                       sStyle+="padding:4px;\n";\r
+       sStyle+="border-bottom:"+gsTBLightColor+" 1px solid;\n";\r
+       sStyle+="border-left:"+gsTBDarkColor+" 1px solid;\n";\r
+       sStyle+="border-right:"+gsTBLightColor+" 1px solid;\n";\r
+       sStyle+="border-top:"+gsTBDarkColor+" 1px solid;\n";\r
+       sStyle+="color:"+gsTBFontColor+";\n";\r
+       sStyle+="cursor:hand;\n";\r
+       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
+       sStyle+="font-size:"+gsTBFontSize+";}\n";\r
+\r
+       sStyle+=".clsNoBDown{\n";\r
+       sStyle+="padding-left:2px;padding-right:2px;\n";\r
+       sStyle+="cursor:hand;";\r
+       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
+       sStyle+="font-size:"+gsTBFontSize+";\n";\r
+       sStyle+="color:"+gsTBFontColor+";}\n";\r
+\r
+       sStyle+=getDefaultButtonFont();\r
+       sStyle+=gsBtnStyle;\r
+       sStyle+=".clsToolbarBackground{\n";\r
+       sStyle+="margin:2px;}\n";\r
+       sStyle+="-->\n";\r
+       sStyle+=" body {\n";\r
+       if (gsBgImage)\r
+               sStyle+="border-top:"+gsBgColor+" 1px solid;}\n";\r
+       else\r
+               sStyle+="border-top:black 1px solid;}\n";\r
+       sStyle+="-->\n";\r
+       sStyle+="</style>\n";\r
+       document.write(sStyle);\r
+}\r
+\r
+function button(sType,sText,nWidth,nHeight)\r
+{\r
+       this.sType=sType;\r
+       this.sText=sText;\r
+       this.nWidth=nWidth;\r
+       this.nHeight=nHeight;\r
+       \r
+       this.aIs=new Array();\r
+       var i=0;\r
+       while(button.arguments.length>i+4)\r
+       {\r
+               if (button.arguments[4+i])\r
+                       this.aIs[i]=_getFullPath(_getPath(document.location.href),button.arguments[4+i]);\r
+               else\r
+                       this.aIs[i]="";\r
+               i++;\r
+       }\r
+}\r
+\r
+function getImage(oImage,sTitle)\r
+{\r
+       if(oImage.aIs[0])\r
+       {\r
+               var sI="";\r
+               if(sTitle=="")\r
+                       sTitle=oImage.sText;\r
+               sI+="<img alt=\""+sTitle+"\" src=\""+oImage.aIs[0]+"\"";\r
+               if(oImage.nWidth>0)\r
+                       sI+=" width="+oImage.nWidth;\r
+               if(oImage.nHeight>0)\r
+                       sI+=" height="+oImage.nHeight;\r
+               sI+=" border=no align=\"absmiddle\">";\r
+               return sI;\r
+       }\r
+       return "";\r
+}\r
+\r
+function getCurrentAveName()\r
+{\r
+       var oSelect=getElement("avenue");\r
+       if(oSelect)\r
+               return oSelect.value;\r
+       else\r
+               return "";\r
+}\r
+\r
+function updateWebSearch(bEnable)\r
+{\r
+       var oWebSearch=getElement("btnwebsearch");\r
+       var oWebSearchParent=null;\r
+       if(oWebSearch)\r
+               oWebSearchParent=getParentNode(oWebSearch);\r
+       goWebSearchEnable=bEnable;\r
+       if(oWebSearchParent)\r
+       {\r
+               if(bEnable)\r
+                       enableButton(oWebSearchParent,goWebSearch);\r
+               else\r
+                       disableButton(oWebSearchParent,goWebSearch);\r
+       }\r
+\r
+}\r
+\r
+function setState(oEL,sState)\r
+{\r
+       if(gbNav6)\r
+               oEL.setAttribute("state",sState);\r
+       else\r
+               oEL.state=sState;       \r
+}\r
+\r
+function updateAvenueIfNeeded()\r
+{\r
+       gbUpdateTimerCount--;\r
+       if (gbNeedUpdateAve&&gbUpdateTimerCount==0)\r
+       {\r
+               updateAvenue();\r
+       }\r
+}\r
+\r
+function updateAvenue()\r
+{\r
+       var sSelect=getAvenueHTML(gaAvenues);\r
+       var oSelect=getElement("avenue");\r
+       if(oSelect)\r
+       {\r
+               if(gbNav6)\r
+               {\r
+                       var oParent=getParentNode(oSelect);\r
+                       \r
+                       if(oParent)\r
+                       {\r
+                               removeThis(oSelect);\r
+                               oParent.insertAdjacentHTML("afterBegin",sSelect);\r
+                       }\r
+               }\r
+               else\r
+                       oSelect.outerHTML=sSelect;      \r
+               oSelect=getElement("avenue");\r
+               if(isValidAvenue(gaAvenues,gsCurAveName))\r
+                       oSelect.value=gsCurAveName;\r
+       }\r
+       updateAveButton();\r
+}\r
+\r
+function initAveButtonObj()\r
+{\r
+       if(!gbAveButttnInited)\r
+       {\r
+               var oNext=getElement("btnavnext");\r
+               if(oNext)\r
+                       goNextParent=getParentNode(oNext);\r
+\r
+               var oPrev=getElement("btnavprev");\r
+               if(oPrev)\r
+                       goPrevParent=getParentNode(oPrev);\r
+       }\r
+       gbAveButttnInited=true;\r
+}\r
+\r
+function disableAveButton()\r
+{\r
+       initAveButtonObj();\r
+       if(goNextParent)\r
+               disableButton(goNextParent,goNext);\r
+       if(goPrevParent)\r
+               disableButton(goPrevParent,goPrev);\r
+}\r
+\r
+function disableButton(oEl,oBtn)\r
+{\r
+       setState(oEl,"disable");\r
+       var sPF=oEl.className.substring(0,6);\r
+       oEl.className=sPF+"Normal";\r
+       var oIs=getElementsByTag(oEl,"img");\r
+       if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>3)\r
+       {\r
+               if(oBtn.aIs[3])\r
+                       oIs[0].src=oBtn.aIs[3];\r
+       }\r
+       else\r
+               oEl.style.visibility="hidden";\r
+}\r
+\r
+function enableButton(oEl,oBtn)\r
+{\r
+       setState(oEl,"normal");\r
+       if(oEl==goEl)\r
+       {\r
+               var sPF=oEl.className.substring(0,6);\r
+               oEl.className=sPF+"Up";\r
+       }\r
+       var oIs=getElementsByTag(oEl,"img");\r
+       if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>0)\r
+       {\r
+               if(oBtn.aIs[0])\r
+                       oIs[0].src=oBtn.aIs[0];\r
+       }\r
+       oEl.style.visibility="visible";\r
+}\r
+\r
+function updateAveButton()\r
+{\r
+       initAveButtonObj();     \r
+       var strAveName=getCurrentAvenue();\r
+       if(strAveName!="")\r
+       {\r
+               if(gaAvenues)\r
+               {\r
+                       for(var i=0;i<gaAvenues.length;i++)\r
+                       if(gaAvenues[i].sName==strAveName)\r
+                       {\r
+                               if(goNextParent)\r
+                               {\r
+                                       if(gaAvenues[i].sNext!=null&&gaAvenues[i].sNext!="")\r
+                                               enableButton(goNextParent,goNext);\r
+                                       else\r
+                                               disableButton(goNextParent,goNext);\r
+                               }\r
+                               if(goPrevParent)\r
+                               {\r
+                                       if(gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev!="")\r
+                                               enableButton(goPrevParent,goPrev);\r
+                                       else\r
+                                               disableButton(goPrevParent,goPrev);\r
+                               }       \r
+                               break;\r
+                       }\r
+               }\r
+       }\r
+       else\r
+       {\r
+               var bNext=false;\r
+               var bPrev=false;\r
+               if(gaAvenues&&gaAvenues.length>0)\r
+               {\r
+                       for(var i=0;i<gaAvenues.length&&(!bNext||!bPrev);i++)\r
+                       {\r
+                               if(!bNext)\r
+                                       if(gaAvenues[i].sNext!=null&&gaAvenues[i].sNext!="")\r
+                                               bNext=true;     \r
+                               if(!bPrev)\r
+                                       if(gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev!="")\r
+                                               bPrev=true;     \r
+                       }\r
+               }\r
+               if(goNextParent)\r
+               {\r
+                       if(bNext)\r
+                               enableButton(goNextParent,goNext);\r
+                       else\r
+                               disableButton(goNextParent,goNext);\r
+               }\r
+               \r
+               if(goPrevParent)\r
+               {\r
+                       if(bPrev)\r
+                               enableButton(goPrevParent,goPrev);\r
+                       else\r
+                               disableButton(goPrevParent,goPrev);\r
+               }\r
+       }\r
+       \r
+}\r
+\r
+function isValidAvenue(aAvenues,sValue)\r
+{\r
+       if(aAvenues)\r
+       {\r
+               for(var i=0;i<aAvenues.length;i++)\r
+               {\r
+                       if(aAvenues[i].sName==sValue)\r
+                               return true;\r
+               }\r
+       }\r
+       return false;\r
+}\r
+\r
+function getAvenueHTML(aAvenues)\r
+{\r
+       var sSelect="<select id=\"avenue\" size=\"1\" name=\"avenue\" onchange=\"updateAveButton();\">";\r
+       sSelect+="<option value=\"\" selected> - Select Avenue - </option>";\r
+       if(aAvenues)\r
+       {\r
+               for(var i=0;i<aAvenues.length;i++)\r
+               {\r
+                       sSelect+="<option value=\""+aAvenues[i].sName+"\">"+aAvenues[i].sName+"</option>";\r
+               }\r
+       }\r
+       sSelect+="</select>";\r
+       return sSelect;\r
+}\r
+\r
+function addAvenueSelection()\r
+{\r
+       var oMsg=new whMessage(WH_MSG_GETAVIAVENUES,this,1,new Object());\r
+       var sButton="";\r
+       if(SendMessage(oMsg))\r
+       {\r
+               sButton=getAvenueHTML(oMsg.oParam.aAvenues);\r
+       }\r
+       else\r
+       {\r
+               sButton=getAvenueHTML(null);\r
+       }\r
+       gaButtons[gaButtons.length]="<td NOWRAP align=\"center\" valign=\"middle\">"+sButton+"</td>";\r
+}\r
+\r
+function setSearchFormTitle(sTitle)\r
+{\r
+       gsSearchFormTitle=sTitle;\r
+}\r
+\r
+function highLightIfNeeded()\r
+{\r
+       if(document.searchForm.searchString.value==gsSearchPrompt)\r
+       {\r
+               document.searchForm.searchString.select();\r
+       }\r
+}\r
+\r
+function addSearchForm()\r
+{\r
+       var sPropmptString=gsSearchPrompt;\r
+\r
+       var nWidth=20;\r
+       if(!nWidth) nWidth=20;\r
+       if(gbNav4) nWidth=nWidth*.6;\r
+\r
+       if(gsSearchFormTitle)\r
+               sPropmptString="";\r
+       var sButton="<table CELLSPACING=0 CELLPADDING=1><tr><td valign=\"middle\" NOWRAP class=\"clsNotBtn\"><span class=\"btnsearchform\">"+_textToHtml(gsSearchFormTitle)+"</span></td><td NOWRAP valign=\"middle\"><input class=\"inputsearchform\" type=\"text\" onfocus=\"highLightIfNeeded();\" name=\"searchString\" value=\""+sPropmptString+"\" size=\""+nWidth+"\"></td>";\r
+       if(gbNav6)\r
+               sButton="<form name=\"searchForm\" method=\"POST\" action=\"javascript:searchB()\">"+sButton;\r
+       if("image"=="text")\r
+       {\r
+               sButton+="<td NOWRAP valign=\"middle\"><a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\"searchForm.submit(); return false;\"></a></td>";\r
+       }\r
+       else if("image"=="image"&&gsIGo)\r
+       {\r
+               sButton+="<td NOWRAP valign=\"middle\"><a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\"searchForm.submit(); return false;\">"\r
+               sButton+="<img alt=\"Go\" src=\""+gsIGo+"\" border=0 align=\"absmiddle\"></a></td>";\r
+       }\r
+       sButton+="</tr></table>";\r
+       if(gbNav6)\r
+               sButton+="</form>";\r
+       var nBtn=gaButtons.length;\r
+       gaButtons[nBtn]="<td NOWRAP align=\"center\" valign=\"middle\">"+sButton+"</td>";\r
+       gaTypes[nBtn]="searchform";\r
+}\r
+\r
+function getShowHide()\r
+{\r
+       var sText="";\r
+       var sI="";\r
+       if(hasNavPane())\r
+       {\r
+               if(goHide)\r
+               {\r
+                       if(gnShowHideStyle&BTN_TEXT)\r
+                               sText=goHide.sText;\r
+                       if(gnShowHideStyle&BTN_IMG)\r
+                       sI=getImage(goHide,"Hide");\r
+               }\r
+       }\r
+       else\r
+       {\r
+               if(goShow)\r
+               {\r
+                       if(gnShowHideStyle&BTN_TEXT)\r
+                               sText=goShow.sText;\r
+                       if(gnShowHideStyle&BTN_IMG)\r
+                               sI=getImage(goShow,"Show");\r
+               }\r
+       }\r
+       var sButton=genButton(sText,sI,gnShowHideStyle);\r
+       return sButton;\r
+}\r
+\r
+function addBanner(sImage)\r
+{\r
+       if(sImage)\r
+       {\r
+               var nBtn=gaButtons.length;\r
+               gaButtons[nBtn]="<td NOWRAP align=\"center\" valign=\"middle\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"javascript:void(0);\" onclick=\"showBanner();return false;\"><img alt=\"About WebHelp\"src=\""+sImage+"\" border=no align=\"absmiddle\"></a></td>";\r
+               gaTypes[nBtn]="banner";\r
+       }\r
+}\r
+\r
+function showBanner()\r
+{\r
+       if (!gbPreview)\r
+       {\r
+               var nWidth=360;\r
+               var nHeight=240;\r
+               var     nScreenWidth=screen.width;\r
+               var     nScreenHeight=screen.height;\r
+               var nLeft=(nScreenWidth-nWidth)/2;\r
+               var nTop=(nScreenHeight-nHeight)/2;\r
+               if (gbIE4)\r
+               {\r
+                       if (gbIE5)\r
+                               nHeight+=20;\r
+                       else\r
+                               nHeight+=40;\r
+                       window.showModalDialog("whskin_banner.htm","","dialogHeight:"+nHeight+"px;dialogWidth:"+nWidth+"px;resizable:no;status:no;scroll:no;help:no;center:yes;");\r
+               }\r
+               else\r
+                       window.open("whskin_banner.htm","banner","dependent,innerHeight="+nHeight+",innerWidth="+nWidth+",height="+nHeight+",width="+nWidth+",resizable=no,menubar=no,location=no,personalbar=no,status=no,scrollbar=no,toolbar=no,screenX="+nLeft+",screenY="+nTop);\r
+       }\r
+}\r
+\r
+function addButton(sType,nStyle,sTitle,sHref,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6)\r
+{\r
+       var sButton="";\r
+       var bMini=false;\r
+       var sText="";\r
+       var sI="";\r
+       var bState=false;\r
+       var nBtn=gaButtons.length;\r
+       var bHref=false;\r
+       if(sType=="show"&&isShowHideEnable())\r
+       {\r
+               var svTitle="Show Navigation Component";\r
+               sButton="<a title=\""+svTitle+"\" id=\"btnshowhide\" class=\"btnshow\" href=\"javascript:void(0);\" onclick=\"showHidePane();return false;\">";\r
+               gnShowHideStyle=nStyle;\r
+               goShow=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3);\r
+               gaObjBtns[nBtn]=goShow;\r
+               if(gnShowHide!=-1)\r
+               {\r
+                       nBtn=gnShowHide;\r
+               }\r
+               else\r
+               {\r
+                       gnShowHide=nBtn;\r
+               }\r
+               sButton+=getShowHide();\r
+               sButton+="</a>";\r
+               bState=true;\r
+       }\r
+       else if(sType=="hide"&&isShowHideEnable())\r
+       {\r
+               var svTitle="Hide Navigation Component";\r
+               sButton="<a title=\""+svTitle+"\" id=\"btnshowhide\" class=\"btnhide\" href=\"javascript:void(0);\" onclick=\"showHidePane();return false;\">";\r
+               gnShowHideStyle=nStyle;\r
+               goHide=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3);\r
+               gaObjBtns[nBtn]=goHide;\r
+               if(gnShowHide!=-1)\r
+               {\r
+                       nBtn=gnShowHide;\r
+               }\r
+               else\r
+               {\r
+                       gnShowHide=nBtn;\r
+               }\r
+               sButton+=getShowHide();\r
+               sButton+="</a>";\r
+               bState=true;\r
+       }\r
+       else if(sType=="hide2"&&(!gbNav4))\r
+       {\r
+               var svTitle="Hide Navigation Component";\r
+               sButton="<a title=\""+svTitle+"\" id=\"btnhide\" class=\"btnhide\" href=\"javascript:void(0);\" onclick=\"showHidePane();return false;\">";\r
+               gnShowHideStyle=nStyle;\r
+               if(!sI1)\r
+                       sI1=gsIHide;\r
+               goHide2=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3);\r
+               gaObjBtns[nBtn]=goHide2;\r
+               if(nStyle&BTN_TEXT)\r
+                       sText=goHide2.sText\r
+                       \r
+               if(nStyle&BTN_IMG)\r
+                       sI=getImage(goHide2,svTitle);\r
+               sButton+=genButton(sText,sI,nStyle);\r
+               sButton+="</a>";\r
+               bMini=true;\r
+       }\r
+       else if(sType=="synctoc")\r
+       {\r
+               var svTitle="Sync TOC";\r
+               sButton="<a title=\""+svTitle+"\" id=\"btnsynctoc\" class=\"btnsynctoc\" href=\"javascript:void(0);\" onclick=\"syncWithShow();return false;\">";\r
+               if(!sI1)\r
+                       sI1=gsISync;\r
+               goSync=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3);\r
+               gaObjBtns[nBtn]=goSync;\r
+               if(nStyle&BTN_TEXT)\r
+                       sText=goSync.sText\r
+                       \r
+               if(nStyle&BTN_IMG)\r
+                       sI=getImage(goSync,svTitle);\r
+               sButton+=genButton(sText,sI,nStyle);\r
+               sButton+="</a>";\r
+               bMini=true;\r
+       }\r
+       else if(sType=="toc")\r
+       {\r
+               var svTitle="Contents";\r
+               sButton="<a title=\""+svTitle+"\" id=\"btntoc\" class=\"btntoc\" href=\"javascript:void(0);\" onclick=\"showToc();return false;\">";\r
+               if(!sI1)\r
+                       sI1=gsIToc;\r
+               if(!sI2)\r
+                       sI2=gsITocS;\r
+               if(!sI4)\r
+                       sI4=gsITocS;\r
+               goToc=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
+               gaObjBtns[nBtn]=goToc;\r
+               if(nStyle&BTN_TEXT)\r
+                       sText=goToc.sText\r
+                       \r
+               if(nStyle&BTN_IMG)\r
+                       sI=getImage(goToc,svTitle);\r
+               sButton+=genButton(sText,sI,nStyle);\r
+               sButton+="</a>";\r
+               bState=true;\r
+       }\r
+       else if(sType=="idx")\r
+       {\r
+               var svTitle="Index";\r
+               sButton="<a title=\""+svTitle+"\" id=\"btnidx\" class=\"btnidx\" href=\"javascript:void(0);\" onclick=\"showIndex();return false;\">";\r
+               if(!sI1)\r
+                       sI1=gsIIndex;\r
+               if(!sI2)\r
+                       sI2=gsIIndexS;\r
+               if(!sI4)\r
+                       sI4=gsIIndexS;\r
+               goIdx=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
+               gaObjBtns[nBtn]=goIdx;\r
+               if(nStyle&BTN_TEXT)\r
+                       sText=goIdx.sText\r
+                       \r
+               if(nStyle&BTN_IMG)\r
+                       sI=getImage(goIdx,svTitle);\r
+               sButton+=genButton(sText,sI,nStyle);\r
+               sButton+="</a>";\r
+               bState=true;\r
+       }\r
+       else if(sType=="fts")\r
+       {\r
+               var svTitle="Search";\r
+               sButton="<a title=\""+svTitle+"\" id=\"btnfts\" class=\"btnfts\" href=\"javascript:void(0);\" onclick=\"showFts();return false;\">";\r
+               if(!sI1)\r
+                       sI1=gsISearch;\r
+               if(!sI2)\r
+                       sI2=gsISearchS;\r
+               if(!sI4)\r
+                       sI4=gsISearchS;\r
+               goFts=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
+               gaObjBtns[nBtn]=goFts;\r
+               if(nStyle&BTN_TEXT)\r
+                       sText=goFts.sText\r
+                       \r
+               if(nStyle&BTN_IMG)\r
+                       sI=getImage(goFts,svTitle);\r
+               sButton+=genButton(sText,sI,nStyle);\r
+               sButton+="</a>";\r
+               bState=true;\r
+       }\r
+       else if(sType=="glo")\r
+       {\r
+               var svTitle="Glossary";\r
+               sButton="<a title=\""+svTitle+"\" id=\"btnglo\" class=\"btnglo\" href=\"javascript:void(0);\" onclick=\"showGlossary();return false;\">";\r
+               if(!sI1)\r
+                       sI1=gsIGlossary;\r
+               if(!sI2)\r
+                       sI2=gsIGlossaryS;\r
+               if(!sI4)\r
+                       sI4=gsIGlossaryS;\r
+               goGlo=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
+               gaObjBtns[nBtn]=goGlo;\r
+               if(nStyle&BTN_TEXT)\r
+                       sText=goGlo.sText\r
+                       \r
+               if(nStyle&BTN_IMG)\r
+                       sI=getImage(goGlo,svTitle);\r
+               sButton+=genButton(sText,sI,nStyle);\r
+               sButton+="</a>";\r
+               bState=true;\r
+       }\r
+       else if(sType=="avnext")\r
+       {\r
+               var svTitle="Next Topic";\r
+               sButton="<a title=\""+svTitle+"\" id=\"btnavnext\" class=\"btnavnext\" href=\"javascript:void(0);\" onclick=\"goAveNext();return false;\">";\r
+               if(!sI1)\r
+                       sI1=gsINext;\r
+               if(!sI4)\r
+                       sI4=gsINextD;\r
+               goNext=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
+               gaObjBtns[nBtn]=goNext;\r
+               if(nStyle&BTN_TEXT)\r
+                       sText=goNext.sText\r
+                       \r
+               if(nStyle&BTN_IMG)\r
+                       sI=getImage(goNext,svTitle);\r
+               sButton+=genButton(sText,sI,nStyle);\r
+               sButton+="</a>";\r
+               bMini=true;\r
+       }\r
+       else if(sType=="avprev")\r
+       {\r
+               var svTitle="Previous Topic";\r
+               sButton="<a title=\""+svTitle+"\" id=\"btnavprev\" class=\"btnavprev\" href=\"javascript:void(0);\" onclick=\"goAvePrev();return false;\">";\r
+               if(!sI1)\r
+                       sI1=gsIPrev;\r
+               if(!sI4)\r
+                       sI4=gsIPrevD;\r
+               goPrev=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
+               gaObjBtns[nBtn]=goPrev;\r
+               if(nStyle&BTN_TEXT)\r
+                       sText=goPrev.sText\r
+                       \r
+               if(nStyle&BTN_IMG)\r
+                       sI=getImage(goPrev,svTitle);\r
+               sButton+=genButton(sText,sI,nStyle);\r
+               sButton+="</a>";\r
+               bMini=true;\r
+       }\r
+       else if(sType=="blankblock")\r
+       {\r
+               gaButtons[nBtn]=null;\r
+               gaTypes[nBtn]=sType;\r
+       }\r
+       else if(sType=="websearch")\r
+       {\r
+               var svTitle="WebSearch";\r
+               sButton="<a title=\""+svTitle+"\" id=\"btnwebsearch\" class=\"btnwebsearch\" href=\"javascript:void(0);\" onclick=\"doWebSearch();return false;\">";\r
+               if(!sI1)\r
+                       sI1=gsIWebSearch;\r
+               if(!sI4)\r
+                       sI4=gsIWebSearchD;\r
+               goWebSearch=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
+               gaObjBtns[nBtn]=goWebSearch;\r
+               if(nStyle&BTN_TEXT)\r
+                       sText=goWebSearch.sText\r
+                       \r
+               if(nStyle&BTN_IMG)\r
+                       sI=getImage(goWebSearch,svTitle);\r
+               sButton+=genButton(sText,sI,nStyle);\r
+               sButton+="</a>";\r
+       }\r
+       else if(sType.indexOf("custom")==0)\r
+       {\r
+               var nCusBtnIdx=goCusButton.length;\r
+               goCusButton[nCusBtnIdx]=new cusButton(sType,sTitle,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight,sI1,sI2,sI3);\r
+               gaObjBtns[nBtn]=goCusButton[nCusBtnIdx];\r
+               var re=new RegExp("\"","g");\r
+               var svTitle=sTitle.replace(re, "&quot;");\r
+               if(sHref&&sHref.length!=0)\r
+               {\r
+                       sButton="<a title=\""+svTitle+"\" id=\"btn"+sType+"\" class=\"btn"+sType+"\" target=\"bsscright\" href=\""+sHref+"\" onclick=\"cusOnClick("+nCusBtnIdx+");";\r
+                       bHref=true;\r
+               }\r
+               else\r
+                       sButton="<a title=\""+svTitle+"\" id=\"btn"+sType+"\" class=\"btn"+sType+"\" href=\"javascript:void(0);\" onclick=\"cusOnClick("+nCusBtnIdx+");return false;";\r
+               sButton+="\" onmouseover=\"cusOnMouseOver("+nCusBtnIdx+");\" title=\""+sType+"\">";\r
+               if(nStyle&BTN_TEXT)\r
+                       sText=sTitle;\r
+               if(nStyle&BTN_IMG)\r
+                       sI+=getImage(goCusButton[nCusBtnIdx],sTitle);\r
+               sButton+=genButton(sText,sI,nStyle);\r
+               sButton+="</a>";\r
+       }\r
+       if(sButton.length!=0)\r
+       {\r
+               var btnClass="";\r
+               if(sText||bMini)\r
+                       btnClass="clsBtnNormal";\r
+               else\r
+                       btnClass="clsNoBNormal";\r
+\r
+               if(!bState)\r
+               {\r
+                       if(bHref)\r
+                               gaButtons[nBtn]="<td NOWRAP valign=\"middle\" align=\"center\" class="+btnClass+" onclick=\"onBtnClick(event);\" onmousedown=\"onBtnMouseDown(event, "+nBtn+");\" onmouseup=\"onBtnMouseUp(event, "+nBtn+");\" onmouseover=\"onBtnMouseOver(event, "+nBtn+");\" onmouseout=\"onBtnMouseOut(event, "+nBtn+");\">"+sButton+"</td>";\r
+                       else\r
+                               gaButtons[nBtn]="<td NOWRAP valign=\"middle\" align=\"center\" class="+btnClass+" onclick=\"onBtnClick(event);return false;\" onmousedown=\"onBtnMouseDown(event, "+nBtn+");\" onmouseup=\"onBtnMouseUp(event, "+nBtn+");\" onmouseover=\"onBtnMouseOver(event, "+nBtn+");\" onmouseout=\"onBtnMouseOut(event, "+nBtn+");\">"+sButton+"</td>";\r
+               }\r
+               else\r
+                       gaButtons[nBtn]="<td NOWRAP valign=\"middle\" align=\"center\" class="+btnClass+" state=\"up\" onclick=\"onBtnClick(event);return false;\" onmousedown=\"onBtnMouseDown(event, "+nBtn+");\" onmouseup=\"onBtnMouseUp(event, "+nBtn+");\" onmouseover=\"onBtnMouseOver(event, "+nBtn+");\" onmouseout=\"onBtnMouseOut(event, "+nBtn+");\">"+sButton+"</td>";\r
+               gaTypes[nBtn]=sType;\r
+       }\r
+\r
+       if(sType=="avenuesel")\r
+               addAvenueSelection();\r
+       else if(sType=="searchform")\r
+               addSearchForm();\r
+       else if(sType=="banner")\r
+       {\r
+               if(!sI1)\r
+                       sI1=gsIBanner;\r
+               addBanner(sI1);\r
+       }\r
+}\r
+\r
+function isShowHideEnable()\r
+{\r
+       if(gbIE4)\r
+               return true;\r
+       else\r
+               return false;\r
+}\r
+\r
+function genButton(sText,sI,nStyle)\r
+{\r
+       var sButton="";\r
+       var sShowText=_textToHtml(sText);\r
+       if (gbNav4 && !gbNav6)\r
+               sShowText += "&nbsp;";\r
+       if(sText!=""&&sI!="")\r
+       {\r
+               if(nStyle&BTN_IMG_TOP)\r
+                       sButton+=sI+"<br>"+ sShowText;\r
+               else if(nStyle&BTN_IMG_BOTTOM)\r
+                       sButton+=sText+"<br>"+sI;\r
+               else if(nStyle&BTN_IMG_RIGHT)\r
+                       sButton+=sText+"&nbsp;"+sI;\r
+               else\r
+                       sButton+=sI+"&nbsp;"+sShowText;\r
+       }\r
+       else if(sText!="")\r
+       {\r
+               sButton+=sShowText;\r
+       }\r
+       else if(sI!="")\r
+       {\r
+               sButton+=sI;\r
+       }\r
+       return sButton;\r
+}\r
+\r
+function searchB()\r
+{\r
+       var onMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null);\r
+       SendMessage(onMsg);\r
+\r
+       var oMsg=new whMessage(WH_MSG_SEARCHTHIS,this,1,document.searchForm.searchString.value);\r
+       if(!SendMessage(oMsg))\r
+               gstrSearch=document.searchForm.searchString.value;\r
+       else\r
+               gstrSearch="";\r
+}\r
+\r
+function ReSortToolbarButtons()\r
+{\r
+       var bSearchEnabled=isSearchEnabled();\r
+       var strOrder="";\r
+       var oMsg=new whMessage(WH_MSG_TOOLBARORDER,this,1,null);\r
+       if(SendMessage(oMsg))\r
+       {\r
+               strOrder=oMsg.oParam;\r
+       }\r
+       if(strOrder.length>0)\r
+       {\r
+               gaOrders=strOrder.split("|");\r
+               var aTempButtons=new Array();\r
+               var ti=0;\r
+               for(var si=0;si<gaOrders.length;si++)\r
+               {\r
+                       if(gaOrders[si]!="searchform"||bSearchEnabled)\r
+                       {\r
+                               var sb=-1;\r
+                               for(var st=0;st<gaTypes.length;st++)\r
+                               {\r
+                                       if(gaOrders[si]==gaTypes[st])\r
+                                       {\r
+                                               sb=st;\r
+                                               break;\r
+                                       }\r
+                               }\r
+                               if(sb!=-1)\r
+                               {\r
+                                       aTempButtons[aTempButtons.length]=gaButtons[sb];\r
+                               }\r
+                       }\r
+               }\r
+               gaButtons=aTempButtons;\r
+       }\r
+}\r
+\r
+function isSyncEnabled()\r
+{\r
+       var bEnabled=false;\r
+       var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null);\r
+       if(SendMessage(oMsg))\r
+       {\r
+               bEnabled=oMsg.oParam;\r
+       }\r
+       return bEnabled;\r
+}\r
+\r
+function isAvenueEnabled()\r
+{\r
+       var bEnabled=false;\r
+       var oMsg=new whMessage(WH_MSG_ISAVENUESUPPORT,this,1,null);\r
+       if(SendMessage(oMsg))\r
+       {\r
+               bEnabled=oMsg.oParam;\r
+       }\r
+       return bEnabled;\r
+}\r
+\r
+function isSearchEnabled()\r
+{\r
+       var bEnabled=false;\r
+       var oMsg=new whMessage(WH_MSG_ISSEARCHSUPPORT,this,1,null);\r
+       if(SendMessage(oMsg))\r
+       {\r
+               bEnabled=oMsg.oParam;\r
+       }\r
+       return bEnabled;\r
+}\r
+\r
+function ReSortMinibarButtons()\r
+{\r
+       var bSyncEnabled=isSyncEnabled();\r
+       var bAvenueEnabled=isAvenueEnabled();\r
+       var strOrder="";\r
+       var oMsg=new whMessage(WH_MSG_MINIBARORDER,this,1,null);\r
+       if(SendMessage(oMsg))\r
+       {\r
+               strOrder=oMsg.oParam;\r
+       }\r
+       if(strOrder.length>0)\r
+       {\r
+               gaOrders=strOrder.split("|");\r
+               var aTempButtons=new Array();\r
+               var ti=0;\r
+               for(var si=0;si<gaOrders.length;si++)\r
+               {\r
+                       if((gaOrders[si]!="synctoc"||bSyncEnabled)&&\r
+                               ((gaOrders[si]!="avnext"&&gaOrders[si]!="avprev")||bAvenueEnabled))\r
+                       {\r
+                               var sb=-1;\r
+                               for(var st=0;st<gaTypes.length;st++)\r
+                               {\r
+                                       if(gaOrders[si]==gaTypes[st])\r
+                                       {\r
+                                               sb=st;\r
+                                               break;\r
+                                       }\r
+                               }\r
+                               if(sb!=-1)\r
+                               {\r
+                                       aTempButtons[aTempButtons.length]=gaButtons[sb];\r
+                               }\r
+                       }\r
+               }\r
+               gaButtons=aTempButtons;\r
+       }\r
+}\r
+\r
+function writeToolBar()\r
+{\r
+       var sHTML="";\r
+       if(gaButtons.length>0)\r
+       {\r
+               var strHeight="100%";\r
+               var strWidth="100%";\r
+               if (gbNav4)\r
+               {\r
+                       strHeight=window.innerHeight-4;\r
+                       strWidth=window.innerWidth-4;\r
+               }\r
+               if (gbIE4)\r
+               {\r
+                       strHeight=document.body.clientHeight-4;\r
+                       strWidth=document.body.clientWidth-4;\r
+               }\r
+               if(gbNav6)\r
+                       sHTML="<table class=\"clsToolbarBackground\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" height=\""+strHeight+"\" width=\""+strWidth+"\">";\r
+               else\r
+                       sHTML="<form name=\"searchForm\" method=\"POST\" action=\"javascript:searchB()\"><table class=\"clsToolbarBackground\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" height=\""+strHeight+"\" width=\""+strWidth+"\">";\r
+               if((gnButtonLayout&LAYOUT)==HLAYOUT)\r
+               {\r
+                       sHTML+="<tr>";\r
+                       for(var i=0;i<gaButtons.length;i++)\r
+                       {\r
+                               if(gaButtons[i])\r
+                                       sHTML+=gaButtons[i];\r
+                               else\r
+                                       sHTML+="<td width=\"100%\"></td>";\r
+                       }\r
+                       sHTML+="</tr>";\r
+               }\r
+               else\r
+               {\r
+                       for(var i=0;i<gaButtons.length;i++)\r
+                       {\r
+                               if(gaButtons[i])\r
+                                       sHTML+="<tr width=\"100%\">"+gaButtons[i]+"</tr>";\r
+                               else\r
+                                       sHTML+="<tr height=\"100%\"><td></td></tr>";\r
+                       }\r
+               }\r
+               if(gbNav6)\r
+                       sHTML+="</table>";\r
+               else\r
+                       sHTML+="</table></form>";\r
+       }\r
+       document.write(sHTML);\r
+       if(document.body)\r
+               document.body.onselectstart=onSelect;\r
+       updateAveButton();\r
+}\r
+\r
+function hasNavPane()\r
+{\r
+       if(gnHasNavPane==-1)\r
+       {\r
+               gnHasNavPane=0;\r
+               var oParam=new Object();\r
+               oParam.bVisible=false;\r
+               var oMsg=new whMessage(WH_MSG_ISPANEVISIBLE,this,1,oParam);\r
+               if(SendMessage(oMsg))\r
+               {\r
+                       if(oParam.bVisible)\r
+                               gnHasNavPane=1;\r
+               }\r
+               \r
+       }\r
+       if(gnHasNavPane==1)\r
+               return true;\r
+       else\r
+               return false;\r
+}\r
+\r
+function getTocInfo()\r
+{\r
+       var oParam=new Object();\r
+       oParam.oTocInfo=null;\r
+       var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);\r
+       if(SendMessage(oMsg))\r
+       {\r
+               goTocInfo=oParam.oTocInfo;\r
+               gbTocInfoInited=true;\r
+       }\r
+}\r
+\r
+function onBtnClick(e)\r
+{\r
+       var oEl=null;\r
+       var oElo=null;\r
+       if(gbNav6)\r
+       {\r
+               oElo=e.target;\r
+               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
+               oEl=oElo;\r
+       }\r
+       else\r
+       {\r
+               oElo=event.srcElement;\r
+               oEl=oElo;\r
+               event.cancelBubble=true;\r
+       }\r
+       while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB"))\r
+       {\r
+               oEl=getParentNode(oEl);\r
+               if(!oEl) return;\r
+       }\r
+       if(oElo.tagName=="A"||oElo.tagName=="IMG") return true;\r
+       var oaA=getElementsByTag(oElo,"A");\r
+       if(oaA&&oaA.length)\r
+       {\r
+               var oA=oaA[0];\r
+               if(gbNav6)\r
+               {\r
+                       var sCmd=oA.getAttribute("onclick");\r
+                       var nCmd=sCmd.indexOf("return false;");\r
+                       if(nCmd!=-1);\r
+                               sCmd=sCmd.substring(0,nCmd);\r
+                       setTimeout(sCmd,1);\r
+               }\r
+               else\r
+                       oA.onclick();\r
+       }\r
+}\r
+\r
+function onBtnMouseDown(e,nBtn)\r
+{\r
+       var oEl=null;\r
+       if(gbNav6)\r
+       {\r
+               var oElo=e.target;\r
+               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
+               oEl=oElo;\r
+       }\r
+       else\r
+       {\r
+               oEl=event.srcElement;\r
+               event.cancelBubble=true;\r
+       }\r
+       while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB"))\r
+       {\r
+               oEl=getParentNode(oEl);\r
+               if(!oEl) return;\r
+       }\r
+       var sPF=oEl.className.substring(0,6);\r
+       var oIs=getElementsByTag(oEl,"img");\r
+       if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>2)\r
+       {\r
+               if(gaObjBtns[nBtn].aIs[2])\r
+                       oIs[0].src=gaObjBtns[nBtn].aIs[2];\r
+       }\r
+       var sState=getState(oEl);\r
+       if(sState!="disable")\r
+       {\r
+               oEl.className=sPF+"Down";\r
+       }\r
+}\r
+\r
+function onBtnMouseUp(e,nBtn)\r
+{\r
+       var oEl=null;\r
+       if(gbNav6)\r
+       {\r
+               var oElo=e.target;\r
+               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
+               oEl=oElo;\r
+       }\r
+       else\r
+       {\r
+               oEl=event.srcElement;\r
+               event.cancelBubble=true;\r
+       }\r
+       while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB"))\r
+       {\r
+               oEl=getParentNode(oEl);\r
+               if(!oEl) return;\r
+       }\r
+       var sPF=oEl.className.substring(0,6);\r
+       var sState=getState(oEl);\r
+       if(sState=="down"||sState=="disable")\r
+       {\r
+               var oIs=getElementsByTag(oEl,"img");\r
+               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>3)\r
+               {\r
+                       if(gaObjBtns[nBtn].aIs[3])\r
+                               oIs[0].src=gaObjBtns[nBtn].aIs[3];\r
+               }\r
+       }\r
+       else\r
+       {\r
+               var oIs=getElementsByTag(oEl,"img");\r
+               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>0)\r
+               {\r
+                       if(gaObjBtns[nBtn].aIs[0])\r
+                               oIs[0].src=gaObjBtns[nBtn].aIs[0];\r
+               }\r
+       }\r
+       if(goEl==oEl)\r
+       {\r
+               if(sState!="down"&&sState!="disable")\r
+               {\r
+                       oEl.className=sPF+"Up";\r
+               }\r
+       }\r
+}\r
+\r
+function getState(oEl)\r
+{\r
+       var sState="";\r
+       if(gbNav6)\r
+               sState=oEl.getAttribute("state");\r
+       else\r
+               if(oEl.state)\r
+                       sState=oEl.state;\r
+       return sState;\r
+}\r
+\r
+function onBtnMouseOver(e,nBtn)\r
+{\r
+       markButton(e);\r
+       var oEl=null;\r
+       if(gbNav6)\r
+       {\r
+               var oElo=e.target;\r
+               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
+               oEl=oElo;\r
+       }\r
+       else\r
+       {\r
+               oEl=event.srcElement;\r
+               event.cancelBubble=true;\r
+       }\r
+       while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB"))\r
+       {\r
+               oEl=getParentNode(oEl);\r
+               if(!oEl) return;\r
+       }\r
+       var sPF=oEl.className.substring(0,6);\r
+       var sState=getState(oEl);\r
+       if(sState=="down"||sState=="disable")\r
+       {\r
+               if(sState=="down")\r
+                       oEl.className=sPF+"Down";\r
+               var oIs=getElementsByTag(oEl,"img");\r
+               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>4)\r
+               {\r
+                       if(gaObjBtns[nBtn].aIs[4])\r
+                               oIs[0].src=gaObjBtns[nBtn].aIs[4];\r
+               }\r
+       }\r
+       else\r
+       {\r
+               oEl.className=sPF+"Up";\r
+               var oIs=getElementsByTag(oEl,"img");\r
+               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>1)\r
+               {\r
+                       if(gaObjBtns[nBtn].aIs[1])\r
+                               oIs[0].src=gaObjBtns[nBtn].aIs[1];\r
+               }\r
+       }\r
+}\r
+\r
+function onBtnMouseOut(e,nBtn)\r
+{\r
+       goEl=null;\r
+       var oEl=null;\r
+       if(gbNav6)\r
+       {\r
+               var oElo=e.target;\r
+               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
+               oEl=oElo;\r
+       }\r
+       else\r
+       {\r
+               oEl=event.srcElement;\r
+               event.cancelBubble=true;\r
+       }\r
+       while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB"))\r
+       {\r
+       oEl=getParentNode(oEl);\r
+       if(!oEl) return;\r
+       }\r
+       var sPF=oEl.className.substring(0,6);\r
+       var sState=getState(oEl);\r
+       if(sState=="down"||sState=="disable")\r
+       {\r
+               var oIs=getElementsByTag(oEl,"img");\r
+               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>3)\r
+               {\r
+                       if(gaObjBtns[nBtn].aIs[3])\r
+                               oIs[0].src=gaObjBtns[nBtn].aIs[3];\r
+               }\r
+               if(sState=="down")\r
+                       oEl.className=sPF+"Down";\r
+       }\r
+       else\r
+       {\r
+               var oIs=getElementsByTag(oEl,"img");\r
+               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>0)\r
+               {\r
+                       if(gaObjBtns[nBtn].aIs[0])\r
+                               oIs[0].src=gaObjBtns[nBtn].aIs[0];\r
+               }\r
+               oEl.className=sPF+"Normal";\r
+       }\r
+}\r
+\r
+function showToc()\r
+{\r
+       var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function showIndex()\r
+{\r
+       var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function showFts()\r
+{\r
+       var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function showGlossary()\r
+{\r
+       var oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function syncWithShow()\r
+{\r
+       if(!gbTocInfoInited)\r
+       {\r
+               getTocInfo();\r
+       }\r
+       if(goTocInfo)\r
+       {\r
+               showToc();\r
+               var oParam=goTocInfo;\r
+               var oMsg=new whMessage(WH_MSG_SYNCTOC,this,1,oParam);\r
+               SendMessage(oMsg);\r
+       }\r
+}\r
+\r
+function markButton(e)\r
+{\r
+       var oEl=null;\r
+       if(gbNav6)\r
+       {\r
+               var oElo=e.target;\r
+               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
+               oEl=oElo;\r
+       }\r
+       else\r
+               oEl=event.srcElement;\r
+       while(oEl&&oEl.tagName!="TD") oEl=getParentNode(oEl);\r
+       if(oEl)\r
+               goEl=oEl;\r
+}\r
+\r
+function showHidePane()\r
+{\r
+       var oMsg=null;\r
+       if(hasNavPane())\r
+               oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null);\r
+       else\r
+               oMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function goAveNext()\r
+{\r
+       goAvenue(true);\r
+}\r
+\r
+function goAvePrev()\r
+{\r
+       goAvenue(false);\r
+}\r
+\r
+function doWebSearch()\r
+{\r
+       if (goWebSearchEnable)\r
+       {\r
+               var oMsg=new whMessage(WH_MSG_WEBSEARCH,this,1,null);\r
+               SendMessage(oMsg);\r
+       }\r
+}\r
+\r
+function goAvenue(bNext)\r
+{\r
+       var oMsg=null;\r
+       initAveButtonObj();\r
+       gsCurAveName=getCurrentAveName();\r
+       if(gbNav4&&!gbNav6)\r
+       {\r
+               if(bNext)\r
+               {\r
+                       gaAvenues=null;\r
+                       updateAvenue();\r
+                       oMsg=new whMessage(WH_MSG_NEXT,this,1,null);\r
+                       SendMessage(oMsg);\r
+               }\r
+               else if(!bNext)\r
+               {\r
+                       gaAvenues=null;\r
+                       updateAvenue();\r
+                       oMsg=new whMessage(WH_MSG_PREV,this,1,null);\r
+                       SendMessage(oMsg);\r
+               }\r
+       }\r
+       else\r
+       {\r
+               if(bNext&&goNextParent)\r
+               {\r
+                       var sState=getState(goNextParent);\r
+                       if(sState!="disable")\r
+                       {\r
+                               gaAvenues=null;\r
+                               gbNeedUpdateAve=true;\r
+                               gbUpdateTimerCount++;\r
+                               setTimeout("updateAvenueIfNeeded();", 2000);\r
+                               oMsg=new whMessage(WH_MSG_NEXT,this,1,null);\r
+                               SendMessage(oMsg);\r
+                       }\r
+               }\r
+               else if(!bNext&&goPrevParent)\r
+               {\r
+                       var sState=getState(goPrevParent);\r
+                       if(sState!="disable")\r
+                       {\r
+                               gaAvenues=null;\r
+                               gbNeedUpdateAve=true;\r
+                               gbUpdateTimerCount++;\r
+                               setTimeout("updateAvenueIfNeeded();", 2000);\r
+                               oMsg=new whMessage(WH_MSG_PREV,this,1,null);\r
+                               SendMessage(oMsg);\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+function window_Unload()\r
+{\r
+       if(!gbNav4||gbNav6)\r
+       {\r
+               UnRegisterListener2(this,WH_MSG_GETSEARCHS);\r
+               UnRegisterListener2(this,WH_MSG_PANESTATUE);\r
+               UnRegisterListener2(this,WH_MSG_SYNCINFO);\r
+               UnRegisterListener2(this,WH_MSG_PANEINFO);\r
+               UnRegisterListener2(this,WH_MSG_AVENUEINFO);\r
+               UnRegisterListener2(this,WH_MSG_GETCURRENTAVENUE);\r
+               UnRegisterListener2(this,WH_MSG_ENABLEWEBSEARCH);\r
+               UnRegisterListener2(this,WH_MSG_INITSEARCHSTRING);\r
+       }\r
+}\r
+\r
+function window_OnLoad()\r
+{\r
+       if(document.body)\r
+       {\r
+               if(gsBgImage&&gsBgImage.length>0)\r
+               {\r
+                       document.body.background=gsBgImage;\r
+               }\r
+               if(gsBgColor&&gsBgColor.length>0)\r
+               {\r
+                       document.body.bgColor=gsBgColor;\r
+               }\r
+       }\r
+       doCusOnLoad();\r
+       var oMsg=new whMessage(WH_MSG_GETPANEINFO,this,1,null);\r
+       if(SendMessage(oMsg))\r
+       {\r
+               setTimeout("flipPaneButton(\""+oMsg.oParam+"\");",1);\r
+       }\r
+       if (!gaAvenues)\r
+       {\r
+               var oMsg2=new whMessage(WH_MSG_GETAVIAVENUES,this,1,new Object());\r
+               if(SendMessage(oMsg2))\r
+               {\r
+                       gaAvenues=oMsg2.oParam.aAvenues;\r
+                       gbNeedUpdateAve=false;\r
+                       setTimeout("updateAvenue();",1);\r
+               }\r
+       }\r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       var nMsgId=oMsg.nMessageId;\r
+       if(nMsgId==WH_MSG_GETSEARCHS)\r
+       {\r
+               if(document.searchForm&&document.searchForm.searchString)\r
+               {\r
+                       oMsg.oParam.sValue=document.searchForm.searchString.value;\r
+                       return false;\r
+               }\r
+       }\r
+       else if(nMsgId==WH_MSG_PANESTATUE)\r
+       {\r
+               if(oMsg.oParam=="visible")\r
+               {\r
+                       if(isShowHideEnable())\r
+                               setTimeout("flipShowHide(true);",1);\r
+                       setTimeout("showPaneButton();",1);\r
+               }\r
+               else\r
+               {\r
+                       if(isShowHideEnable())\r
+                               setTimeout("flipShowHide(false);",1);\r
+                       setTimeout("hidePaneButton();",1);\r
+               }\r
+       }\r
+       else if(nMsgId==WH_MSG_PANEINFO)\r
+       {\r
+               if(oMsg.oParam)\r
+                       setTimeout("flipPaneButton(\""+oMsg.oParam+"\");",1);\r
+               else\r
+                       setTimeout("hidePaneButton();",1);\r
+       }\r
+       else if(nMsgId==WH_MSG_SYNCINFO)\r
+       {\r
+               if(oMsg.oParam)\r
+                       goTocInfo=oMsg.oParam;\r
+               else\r
+                       goTocInfo=null;\r
+               gbTocInfoInited=true;\r
+       }\r
+       else if(nMsgId==WH_MSG_AVENUEINFO)\r
+       {\r
+               gaAvenues=oMsg.oParam;\r
+               gbNeedUpdateAve=false;\r
+               setTimeout("updateAvenue();",1);\r
+       }\r
+       else if(nMsgId==WH_MSG_GETCURRENTAVENUE)\r
+       {\r
+               var sAveName=getCurrentAvenue();\r
+               if(sAveName!="")\r
+               {\r
+                       oMsg.oParam.sAvenue=sAveName;\r
+                       return false;\r
+               }\r
+               else\r
+                       return true;\r
+       }\r
+       else if(nMsgId==WH_MSG_ENABLEWEBSEARCH)\r
+       {\r
+               setTimeout("updateWebSearch("+oMsg.oParam+");",1);\r
+       }\r
+       else if(nMsgId==WH_MSG_INITSEARCHSTRING)\r
+       {\r
+               if(gstrSearch!="")\r
+               {\r
+                       oMsg.oParam=gstrSearch;\r
+                       gstrSearch="";\r
+                       return false;\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+function getCurrentAvenue()\r
+{\r
+       var strAveName="";\r
+       var oSelect=getElement("avenue");\r
+       if(oSelect)\r
+       {\r
+               strAveName=oSelect.value;\r
+       }\r
+       return strAveName;\r
+}\r
+\r
+function initBtn()\r
+{\r
+       var oBtn=null;\r
+       oBtn=getElement("btntoc");\r
+       if(oBtn)\r
+               gaBtns[gaBtns.length]=oBtn;\r
+       oBtn=getElement("btnidx");\r
+       if(oBtn)\r
+               gaBtns[gaBtns.length]=oBtn;\r
+       oBtn=getElement("btnfts");\r
+       if(oBtn)\r
+               gaBtns[gaBtns.length]=oBtn;\r
+       oBtn=getElement("btnglo");\r
+       if(oBtn)\r
+               gaBtns[gaBtns.length]=oBtn;\r
+       gbInitBtn=true;\r
+}\r
+\r
+function showPaneButton()\r
+{\r
+       flipPaneButton(gsPane);\r
+}\r
+\r
+function hidePaneButton()\r
+{\r
+       flipPaneButton("");\r
+}\r
+\r
+function flipPaneButton(sPane)\r
+{\r
+       if (sPane)\r
+               gsPane=sPane;\r
+       if(!gbInitBtn)\r
+               initBtn();\r
+\r
+       var oUp=null;\r
+       if(sPane)\r
+       {\r
+               oUp=getElement("btn"+sPane);\r
+       }\r
+       for(var i=0;i<gaBtns.length;i++)\r
+       {\r
+               if(gaBtns[i])\r
+               {\r
+                       if(gaBtns[i]==oUp)\r
+                       {\r
+                               var oEl=getParentNode(oUp);\r
+                               var sPF=oEl.className.substring(0,6);\r
+                               var sState=getState(oEl);\r
+                               if(sState=="up")\r
+                               {\r
+                                       setState(oEl,"down");\r
+                                       oEl.className=sPF+"Down";\r
+                                       if(sPF=="clsBtn")\r
+                                       {\r
+                                               if(gaBtns[i].id)\r
+                                               {\r
+                                                       var sColor=getBtnColor(gaBtns[i].id.substring(3),true);\r
+                                                       if(sColor)\r
+                                                       {\r
+                                                               oEl.style.backgroundColor=sColor\r
+                                                       }\r
+                                                       else\r
+                                                       {\r
+                                                               oEl.style.backgroundColor="";\r
+                                                       }\r
+                                               }\r
+                                               var oaA=getElementsByTag(oEl,"A");\r
+                                               if(oaA.length>0)\r
+                                               {\r
+                                                       var strClassName=oaA[0].className;\r
+                                                       oaA[0].className="btnsel"+strClassName.substring(3);\r
+                                               }\r
+                                       }\r
+                                       var oIs=getElementsByTag(oEl,"img");\r
+                                       var oBtn=getButtonObjByType(gaBtns[i].id.substring(3));\r
+                                       if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>3)\r
+                                       {\r
+                                               if(oBtn.aIs[3])\r
+                                                       oIs[0].src=oBtn.aIs[3];\r
+                                       }\r
+                               }\r
+                       }\r
+                       else\r
+                       {\r
+                               var oEl=getParentNode(gaBtns[i]);\r
+                               var sState=getState(oEl);\r
+                               var sPF=oEl.className.substring(0,6);\r
+                               if(sState=="down")\r
+                               {\r
+                                       setState(oEl,"up");\r
+                                       if(oEl==goEl)\r
+                                               oEl.className=sPF+"Up";\r
+                                       else\r
+                                               oEl.className=sPF+"Normal";\r
+\r
+                                       if(sPF=="clsBtn")\r
+                                       {\r
+                                               if(gaBtns[i].id)\r
+                                               {\r
+                                                       var sColor=getBtnColor(gaBtns[i].id.substring(3),false);\r
+                                                       if(sColor)\r
+                                                       {\r
+                                                               oEl.style.backgroundColor=sColor\r
+                                                       }\r
+                                                       else\r
+                                                       {\r
+                                                               oEl.style.backgroundColor="";\r
+                                                       }\r
+                                               }\r
+\r
+                                               var oaA=getElementsByTag(oEl,"A");\r
+                                               if(oaA.length>0)\r
+                                               {\r
+                                                       var strClassName=oaA[0].className;\r
+                                                       oaA[0].className="btn"+strClassName.substring(6);\r
+                                               }\r
+                                       }\r
+                                       var oIs=getElementsByTag(oEl,"img");\r
+                                       var oBtn=getButtonObjByType(gaBtns[i].id.substring(3));\r
+                                       if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>0)\r
+                                       {\r
+                                               if(oBtn.aIs[0])\r
+                                                       oIs[0].src=oBtn.aIs[0];\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+function flipShowHide(bShow)\r
+{\r
+       gnHasNavPane=-1;        \r
+       var oA=getElement("btnshowhide");\r
+       if(oA)\r
+       {\r
+               var oEl=getParentNode(oA);\r
+               var sPF=oEl.className.substring(0,6);\r
+               if(oEl&&oEl.state)\r
+               {\r
+                       if(bShow)\r
+                       {\r
+                               oEl.state="down";\r
+                               oEl.className=sPF+"Down";\r
+                       }\r
+                       else\r
+                       {\r
+                               oEl.state="up";\r
+                               \r
+                               if(oEl==goEl)\r
+                                       oEl.className=sPF+"Up";\r
+                               else\r
+                                       oEl.className=sPF+"Normal";\r
+                       }\r
+               }\r
+               oA.innerHTML=getShowHide();\r
+       }\r
+}\r
+\r
+function cusOnClick(nIdx)\r
+{\r
+       if(goCusButton.length>nIdx)\r
+       {\r
+               var sOnClick=goCusButton[nIdx].sOnClick;\r
+               if(sOnClick&&sOnClick.length>0)\r
+               {\r
+                       if(!gbPreview)\r
+                               eval(sOnClick);\r
+                       return false;\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+function cusOnMouseOver(nIdx)\r
+{\r
+       if(goCusButton.length>nIdx)\r
+       {\r
+               var sOnMouseOver=goCusButton[nIdx].sOnMouseOver;\r
+               if(sOnMouseOver&&sOnMouseOver.length>0)\r
+               {\r
+                       if(!gbPreview)\r
+                               eval(sOnMouseOver);\r
+                       return false;\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+function doCusOnLoad()\r
+{\r
+       if(!gbPreview&&gaOrders)\r
+       {\r
+               for(var i=0;i<gaOrders.length;i++)\r
+               {\r
+                       for(var j=0;j<gaOnLoads.length;j++)\r
+                       {\r
+                               if(gaOrders[i]==gaOnLoads[j].sType)\r
+                               {\r
+                                       eval(gaOnLoads[j].sOnLoad);\r
+                                       break;\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+function registerOnLoad(sOnLoad,sType)\r
+{\r
+       gaOnLoads[gaOnLoads.length]=new cusOnLoad(sType,sOnLoad);       \r
+}\r
+\r
+function cusOnLoad(sType,sOnLoad)\r
+{\r
+       this.sType=sType;\r
+       this.sOnLoad=sOnLoad;\r
+}\r
+\r
+function cusButton(sType,sText,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight)\r
+{\r
+       this.sType=sType;\r
+       this.sText=sText;\r
+       this.sOnClick=sOnClick;\r
+       this.sOnMouseOver=sOnMouseOver;\r
+       this.sOnLoad=sOnLoad;\r
+       this.nWidth=nWidth;\r
+       this.nHeight=nHeight;\r
+       this.aIs=new Array();\r
+       var i=0;\r
+       while(cusButton.arguments.length>i+7)\r
+       {\r
+               if (cusButton.arguments[7+i])\r
+                       this.aIs[i]=_getFullPath(_getPath(document.location.href),cusButton.arguments[7+i]);\r
+               else\r
+                       this.aIs[i]="";\r
+               i++;\r
+       }\r
+       if(sOnLoad)\r
+       {\r
+               registerOnLoad(sOnLoad,sType);\r
+       }\r
+}\r
+\r
+function getBtnColor(sType,bSel)\r
+{\r
+       var aBtnColors=null;\r
+       if(bSel)\r
+               aBtnColors=gaSelBtnBgColor;\r
+       else\r
+               aBtnColors=gaBtnBgColor;\r
+       if(aBtnColors)\r
+       {\r
+               for(var i=0;i<aBtnColors.length;i++)\r
+               {\r
+                       if(aBtnColors[i].sType==sType)\r
+                               return aBtnColors[i].sColor;\r
+               }\r
+       }\r
+       return "";\r
+}\r
+\r
+function setButtonBgColor(sType,sColor,bSel)\r
+{\r
+       if(sColor)\r
+       {\r
+               var aBtnColors=null;\r
+               if(bSel)\r
+                       aBtnColors=gaSelBtnBgColor;\r
+               else\r
+                       aBtnColors=gaBtnBgColor;\r
+               if(aBtnColors!=null)\r
+               {\r
+                       for(var i=0;i<aBtnColors.length;i++)\r
+                       {\r
+                               if(aBtnColors[i].sType==sType)\r
+                               {\r
+                                       aBtnColors[i].sColor=sColor;\r
+                                       return;\r
+                               }\r
+                       }\r
+                       aBtnColors[aBtnColors.length]=new btnBgColor(sType,sColor);\r
+               }\r
+       }\r
+}\r
+\r
+function getDefaultButtonFont()\r
+{\r
+       var strFontStyle="";\r
+       for(var i=0;i<gaTypes.length;i++)\r
+       {\r
+               strFontStyle+=".btnsel"+gaTypes[i]+"{"+getFontStyle(goSelTextFont)+"}";\r
+               strFontStyle+=".btn"+gaTypes[i]+"{"+getFontStyle(goTextFont)+"}";\r
+       }\r
+       return strFontStyle;\r
+}\r
+\r
+function setButtonFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration,bSel)\r
+{\r
+       if(sFontName)\r
+       {\r
+               var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
+               if(bSel)\r
+                       gsBtnStyle+=".btnsel"+sType+"{"+getFontStyle(vFont)+"}\n";\r
+               else\r
+                       gsBtnStyle+=".btn"+sType+"{"+getFontStyle(vFont)+"}\n";\r
+       }\r
+       if (sType=="searchform"&&!bSel)\r
+       {\r
+               var vFont1=new whFont(sFontName,sFontSize,"black",sFontStyle,sFontWeight,sFontDecoration);\r
+               gsBtnStyle+=".inputsearchform {" + getFontStyle(vFont1)+"}\n";\r
+       }\r
+}\r
+\r
+function getButtonObjByType(sType)\r
+{\r
+       for(var i=0;i<gaObjBtns.length;i++)\r
+       {\r
+               if(gaObjBtns[i].sType==sType)\r
+                       return gaObjBtns[i];\r
+       }\r
+       return null;\r
+}\r
+\r
+function onSelect()\r
+{\r
+       if (event.srcElement&&event.srcElement.name)\r
+       {\r
+               if (event.srcElement.name=="searchString")\r
+                       return true;\r
+       }\r
+       return false;\r
+}\r
+\r
+function window_onResize()\r
+{\r
+       gnRE++;\r
+       setTimeout("tryReload();", 100);\r
+}\r
+\r
+function tryReload()\r
+{\r
+       if (gnRE==1)\r
+               document.location.reload();\r
+       gnRE--;\r
+}\r
+\r
+if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
+{\r
+       RegisterListener2(this,WH_MSG_GETSEARCHS);\r
+       RegisterListener2(this,WH_MSG_PANESTATUE);\r
+       RegisterListener2(this,WH_MSG_SYNCINFO);\r
+       RegisterListener2(this,WH_MSG_PANEINFO);\r
+       RegisterListener2(this,WH_MSG_AVENUEINFO);\r
+       RegisterListener2(this,WH_MSG_GETCURRENTAVENUE);\r
+       RegisterListener2(this,WH_MSG_ENABLEWEBSEARCH);\r
+       RegisterListener2(this,WH_MSG_INITSEARCHSTRING);\r
+       window.onload=window_OnLoad;\r
+       window.onunload=window_Unload;\r
+       window.onresize=window_onResize;\r
+       goTextFont=new whFont("Verdana","8pt","#003063","normal","normal","none");\r
+       goSelTextFont=new whFont("Verdana","8pt","white","normal","normal","none");\r
+       gbWhTBar=true;\r
+}\r
+else\r
+       document.location.reload();\r
+\r
diff --git a/doc/salome/gui/VISU/whtdhtml.htm b/doc/salome/gui/VISU/whtdhtml.htm
new file mode 100755 (executable)
index 0000000..00ca4e3
--- /dev/null
@@ -0,0 +1,49 @@
+<html>\r
+<head>\r
+<title>Table of contents</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+</head>\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whmozemu.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whthost.js"></script>\r
+<script LANGUAGE="javascript1.2">\r
+<!--\r
+if (window.gbWhTHost)\r
+{\r
+       setBackgroundcolor( "White");  \r
+       \r
+       setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
+       setFont("Hover", "Tahoma","8pt","Navy","Normal","Normal","underline");\r
+       setActiveBgColor("Silver");\r
+       \r
+       \r
+       setIcon("BookOpen","wht_toc2.gif");\r
+       setIcon("BookClose","wht_toc1.gif");\r
+       setIcon("Item","wht_toc3.gif");\r
+       setIcon("RemoteItem","wht_toc4.gif");\r
+       \r
+       \r
+       \r
+       \r
+       TocWriteClassStyle();\r
+       TocWriteFixedWidth(true,400);\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" bgcolor="white" scroll="auto">\r
+<script LANGUAGE="javascript1.2">\r
+<!--\r
+TocWriteFixedWidth(false,400);\r
+TocInitPage();\r
+//-->\r
+</script>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whthost.js b/doc/salome/gui/VISU/whthost.js
new file mode 100755 (executable)
index 0000000..80806d7
--- /dev/null
@@ -0,0 +1,1372 @@
+var gaHSLoad=new Array();\r
+var gnMinIdx=0;\r
+var gnInsIdx=-1;\r
+var gsLoadingDivID="LoadingDiv";\r
+var gsLoadingMsg="Loading, click here to cancel...";\r
+var gaProj=null;\r
+var gaTocs=new Array();\r
+var goChunk=null;\r
+var gbReady=false;\r
+var gbLoadToc=false;\r
+var gbXML=false;\r
+var gaRoot=new Array();\r
+var gnCC=-1;\r
+var gsTP="";\r
+var gaBTPs="";\r
+var gsCTPath="";\r
+var gnLT=-1;\r
+var gsPathSplit="\n";\r
+var gsBgColor="#ffffff";\r
+var gsBgImage="";\r
+var goFont=null;\r
+var goHFont=null;\r
+\r
+var gsMargin="0pt";\r
+var gsIndent="15pt";\r
+var gsABgColor="#cccccc";\r
+\r
+var giBookClose="";\r
+var giBookOpen="";\r
+var giBookItem="";\r
+var giURLItem="";\r
+var giNewBookClose="";\r
+var giNewBookOpen="";\r
+var giNewBookItem="";\r
+var giNewURLItem="";\r
+var gnImages=0;\r
+var gnLoadedImages=0;\r
+var gaImgs=new Array();\r
+var gbLoadData=false;\r
+var gobj=null;\r
+var gaTocsNs61Fix=null;\r
+var gbWhTHost=false;\r
+var gBookItems=new Array();\r
+var gInSync=false;\r
+\r
+function setBackground(sBgImage)\r
+{\r
+       gsBgImage=sBgImage;\r
+}\r
+\r
+function setBackgroundcolor(sBgColor)\r
+{\r
+       gsBgColor=sBgColor;\r
+}\r
+\r
+function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
+{\r
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
+       if(sType=="Normal") goFont=vFont;\r
+       else if(sType=="Hover") goHFont=vFont;\r
+}\r
+\r
+function setActiveBgColor(sBgColor){gsABgColor=sBgColor;}\r
+\r
+function setMargin(sMargin){gsMargin=sMargin;}\r
+\r
+function setIndent(sIndent){gsIndent=sIndent;}\r
+\r
+function setIcon(sType,sURL)\r
+{\r
+       if(sType=="BookOpen")\r
+               giBookOpen=sURL;\r
+       else if(sType=="BookClose")\r
+               giBookClose=sURL;\r
+       else if(sType=="Item")\r
+               giBookItem=sURL;\r
+       else if(sType=="RemoteItem")\r
+               giURLItem=sURL;\r
+       else if(sType=="NewBookClose")\r
+               giNewBookClose=sURL;\r
+       else if(sType=="NewBookOpen")\r
+               giNewBookOpen=sURL;\r
+       else if(sType=="NewItem")\r
+               giNewBookItem=sURL;\r
+       else if(sType=="NewRemoteItem")\r
+               giNewURLItem=sURL;              \r
+}\r
+\r
+function bookItem(sTarget, sURL)\r
+{\r
+       if (sTarget)\r
+               this.sTarget=sTarget;\r
+       else\r
+               this.sTarget="bsscright";\r
+       this.sURL=sURL;\r
+}\r
+\r
+function addBookItem(sBookId, sTarget, sURL)\r
+{\r
+       gBookItems[sBookId] = new bookItem(sTarget, sURL);              \r
+}\r
+\r
+function tocChunk(sPPath,sDPath)\r
+{\r
+       this.sPPath=sPPath;\r
+       this.sDPath=sDPath;\r
+       this.nMI=-1;\r
+       this.aTocs=null;\r
+}\r
+\r
+function addTocChunk(sPPath,sDPath)\r
+{\r
+       var oChunk=new tocChunk(sPPath,sDPath);\r
+       gaTocs[gaTocs.length]=oChunk;\r
+       return oChunk;\r
+}\r
+\r
+function isHSLoad(nIdx)\r
+{\r
+       for(var i=0;i<gaHSLoad.length;i++){\r
+               if(gaHSLoad[i]==nIdx)\r
+                       return true;\r
+       }\r
+       return false;\r
+}\r
+\r
+function setHSLoad(nIdx)\r
+{\r
+       if(!isHSLoad(nIdx))\r
+       {\r
+               var len=gaHSLoad.length;\r
+               for(var i=0;i<len;i++){\r
+                       if(gaHSLoad[i]==-1)\r
+                       {\r
+                               gaHSLoad[i]=nIdx;\r
+                               return;\r
+                       }\r
+               }\r
+               gaHSLoad[len]=nIdx;\r
+       }\r
+}\r
+\r
+function setHSUnLoad(nIdx)\r
+{\r
+       if(isHSLoad(nIdx))\r
+       {\r
+               for(var i=0;i<gaHSLoad.length;i++){\r
+                       if(gaHSLoad[i]==nIdx)\r
+                       {\r
+                               gaHSLoad[i]=-1;\r
+                               return;\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+function cancelLoading(nIdx)\r
+{\r
+       var oObj=getElement(getCBId(nIdx));\r
+       if(oObj)\r
+       {\r
+               oObj.innerHTML="";\r
+               setHSUnLoad(nIdx)\r
+               ExpandIt(nIdx);\r
+       }\r
+}\r
+\r
+function cancelAll()\r
+{\r
+       var eLoadingDivs=getElement(gsLoadingDivID);\r
+       if(eLoadingDivs)\r
+               cancelHSLoading(eLoadingDivs);\r
+}\r
+\r
+function cancelHSLoading(eLoadingDiv)\r
+{\r
+       var eParent=eLoadingDiv.parentElement;\r
+       if(eParent){\r
+               var sId=eParent.id;\r
+               sId=sId.substring(5);\r
+               var nIdx=parseInt(sId);\r
+               if(!isNaN(nIdx))\r
+                       cancelLoading(nIdx)\r
+       }\r
+}\r
+\r
+function checkBookItem(nIdx)\r
+{\r
+       if(!gInSync)\r
+       {\r
+               var sBookId=getBookId(nIdx);\r
+               if(gBookItems[sBookId])\r
+               {\r
+                       window.open(gBookItems[sBookId].sURL,gBookItems[sBookId].sTarget);\r
+               }\r
+       }\r
+}\r
+\r
+function insertBookItems(nIdx,num)\r
+{\r
+       checkBookItem(nIdx);\r
+       var sChildBookId=getCBId(nIdx);\r
+       var eChildDiv=getElement(sChildBookId);\r
+       if(eChildDiv){\r
+               if((eChildDiv.childNodes&&eChildDiv.childNodes.length==0)||\r
+                       (eChildDiv.all&&eChildDiv.all.length==0)){\r
+                       var sHTML=writeBookItems(nIdx,num);\r
+                       eChildDiv.innerHTML=sHTML;\r
+                       setTimeout("syncInit()",1);\r
+               }\r
+       }\r
+       ExpandIt(nIdx);\r
+}\r
+\r
+function writeBook(nIdx,bLocal)\r
+{\r
+       var sIcon=getBookImage(nIdx,true);\r
+       var sName=_textToHtml(getItemName(nIdx));\r
+       sIcon=_textToHtml_nonbsp(sIcon);\r
+       \r
+       var sHTML="<div id=\""+getPBId(nIdx)+"\" class=parent>";\r
+       sHTML+="<p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";\r
+\r
+       if(getItemType(nIdx)==1)\r
+               sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);\r
+       else\r
+               sHTML+="tocExpandHelpSet("+nIdx+","+bLocal;\r
+       sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";\r
+       var sURL=_textToHtml_nonbsp(getItemURL(nIdx));\r
+       if(sURL!="")\r
+               addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);\r
+       sHTML+="&nbsp;"+sName+"</a></nobr></p></div><div id=\""+getCBId(nIdx)+"\" class=child></div>";\r
+       return sHTML;\r
+}\r
+\r
+function getBookId(nIdx){return "B_"+nIdx;}\r
+\r
+function getItemId(nIdx){return "I_"+nIdx;}\r
+\r
+function markBook(nIdx)\r
+{\r
+       var obj=getElement(getItemId(nIdx));\r
+       if(obj==null)\r
+               obj=getElement(getBookId(nIdx));\r
+       if(gbNav6)\r
+       {\r
+               gobj=obj;\r
+               setTimeout("delayMarkObj();",1);\r
+       }\r
+       else\r
+               markObj(obj);\r
+}\r
+\r
+function delayMarkObj()\r
+{\r
+       if(gobj)\r
+       {\r
+               markObj(gobj);\r
+               gobj=null;\r
+       }\r
+}\r
+\r
+function markObj(obj)\r
+{\r
+       if(obj!=null)\r
+       {\r
+               HighLightElement(obj,gsABgColor,"transparent");\r
+               var sPath=calTocPath(obj);\r
+               if(gsCTPath!=sPath)\r
+                       gsCTPath=sPath;\r
+       }\r
+}\r
+\r
+function markItem(nIdx)\r
+{\r
+       var obj=getElement(getItemId(nIdx));\r
+       if(gbNav6)\r
+       {\r
+               gobj=obj;\r
+               setTimeout("delayMarkObj();",1);\r
+       }\r
+       else\r
+               markObj(getElement(getItemId(nIdx)));\r
+}\r
+\r
+function calTocPath(obj)\r
+{\r
+       var sPath=getInnerText(obj).substring(1);\r
+       var pObj=getParentNode(obj);\r
+       do\r
+       {\r
+               while(pObj!=null&&!isCBId(pObj.id)) pObj=getParentNode(pObj);\r
+               if(pObj!=null)\r
+               {\r
+                       var nId=getIdByCBId(pObj.id);\r
+                       var sObj=getElement(getPBId(nId));\r
+                       if(sObj!=null)\r
+                       {\r
+                               var objs=getItemsByBook(sObj);\r
+                               for(var i=0;i<objs.length;i++)\r
+                               {\r
+                                       var sText=getInnerText(objs[i]);\r
+                                       \r
+                                       if(sText.length!=0)\r
+                                       {\r
+                                               sPath=sText.substring(1)+gsPathSplit+sPath;\r
+                                               break;\r
+                                       }\r
+                               }\r
+                       }\r
+                       pObj=getParentNode(pObj);\r
+               }\r
+       }while(pObj!=null);\r
+       return sPath;\r
+}\r
+\r
+function writeAnItem(nIdx)\r
+{\r
+       var sTarget=_textToHtml_nonbsp(getTopicTarget(nIdx));\r
+       var sIcon=getItemIcon(nIdx,0);\r
+       if(sIcon=="")\r
+       {\r
+               var nItemType=getItemType(nIdx);\r
+               if(nItemType&2)\r
+                       sIcon=getItemImage(nIdx,false);\r
+               else\r
+                       sIcon=getItemImage(nIdx,true);\r
+       }\r
+       sIcon=_textToHtml_nonbsp(sIcon);\r
+       var sName=_textToHtml(getItemName(nIdx));\r
+       var sHTML="<p><nobr><a id=\""+getItemId(nIdx)+"\" onfocus=\"markItem("+nIdx+");\""\r
+       var sAltString="";\r
+       if (nItemType&2)\r
+               sAltString="Page";\r
+       else\r
+               sAltString="Remote Page";\r
+       if(sTarget!="")\r
+               sHTML+="target=\""+sTarget+"\" ";\r
+       sHTML+="href=\""+_textToHtml_nonbsp(getItemURL(nIdx))+"\" title=\""+sName+"\"><img alt=\""+sAltString+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">&nbsp;"+sName+"</a></nobr></p>";\r
+       return sHTML;\r
+}\r
+\r
+function writeBookItems(nIdx,num)\r
+{\r
+       var sHTML="";\r
+       if(num>0){\r
+               var nCIdx=0;\r
+               do{\r
+                       nCIdx++;\r
+                       var i=nIdx+nCIdx;\r
+                       var nItemType=getItemType(i);\r
+                       if(nItemType==1){\r
+                               sHTML+=writeBook(i);    \r
+                               nCIdx+=getItemContentsNum(i);           \r
+                       }\r
+                       else if(nItemType==2||nItemType==16){\r
+                               sHTML+=writeAnItem(i);\r
+                       }else if(nItemType==4){\r
+                               sHTML+=writeBook(i,false);\r
+                       }else if(nItemType==8){\r
+                               sHTML+=writeBook(i,true);\r
+                       }\r
+               }\r
+               while(nCIdx<num);\r
+       }\r
+       return sHTML;\r
+}\r
+\r
+function tocExpandHelpSet(nIdx,bLocal)\r
+{\r
+       checkBookItem(nIdx);\r
+       cancelAll();\r
+       if(isHSLoad(nIdx))\r
+               ExpandIt(nIdx);\r
+       else{\r
+               setHSLoad(nIdx);\r
+               var sSrc="";\r
+               if(bLocal){\r
+                       var oChunk=getChunk(nIdx);\r
+                       if(oChunk)\r
+                       {\r
+                               goChunk=addTocChunk(oChunk.sPPath,oChunk.sDPath);\r
+                               sSrc=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;\r
+                       }\r
+               }\r
+               else{\r
+                       sSrc=getRefURL(nIdx);\r
+                       var nProj=getProject(sSrc);\r
+                       if(nProj!=-1)\r
+                       {\r
+                               goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);\r
+                               sSrc=gaRoot[nProj].sToc;\r
+                       }\r
+                       else\r
+                               goChunk=null;\r
+               }\r
+               if(goChunk)\r
+               {\r
+                       PrepareLoading(nIdx);\r
+                       ExpandIt(nIdx);\r
+                       gbLoadToc=false;\r
+                       loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);\r
+               }\r
+       }\r
+}\r
+\r
+function getProject(sSrc)\r
+{\r
+       for(var i=0;i<gaProj.length;i++)\r
+       {\r
+               if(isSamePath(getPath(sSrc),gaProj[i].sPPath))\r
+               {\r
+                       return i;\r
+               }\r
+       }\r
+       return -1;\r
+}\r
+\r
+function getPath(sPath)\r
+{\r
+       if(sPath!="")\r
+       {\r
+               sPath=_replaceSlash(sPath);\r
+               var nPosFile=sPath.lastIndexOf("/");\r
+               sPath=sPath.substring(0,nPosFile+1);\r
+       }\r
+       return sPath;\r
+}\r
+\r
+function isSamePath(sPath1,sPath2)\r
+{\r
+       return (sPath1.toLowerCase()==sPath2.toLowerCase());\r
+}\r
+\r
+function PrepareLoading(nIdx)\r
+{\r
+       gnInsIdx=nIdx;\r
+       if(!gsTP)\r
+       {\r
+               var oObj=getElement(getCBId(gnInsIdx));\r
+               if(oObj)\r
+                       oObj.innerHTML=writeLoadingDiv(nIdx);\r
+       }\r
+}\r
+\r
+function writeLoadingDiv(nIdx)\r
+{\r
+       return"<div id=\""+gsLoadingDivID+"\" class=parent onclick=\"cancelLoading("+nIdx+");\" style=\"padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";\r
+}\r
+\r
+function getItemName(nIdx)\r
+{\r
+       var oChunk=getChunk(nIdx);\r
+       if(oChunk)\r
+               return oChunk.aTocs[nIdx-oChunk.nMI].sItemName;\r
+       else\r
+               return null;\r
+}\r
+\r
+function getItemContentsNum(nIdx)\r
+{\r
+       var oChunk=getChunk(nIdx);\r
+       if(oChunk)\r
+               return oChunk.aTocs[nIdx-oChunk.nMI].nContents;\r
+       else\r
+               return null;\r
+}\r
+\r
+function getItemType(nIdx)\r
+{\r
+       var oChunk=getChunk(nIdx);\r
+       if(oChunk)\r
+               return oChunk.aTocs[nIdx-oChunk.nMI].nType;\r
+       else\r
+               return 0;\r
+}\r
+\r
+function getItemURL(nIdx)\r
+{\r
+       var oChunk=getChunk(nIdx);\r
+       if(oChunk)\r
+       {\r
+               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sItemURL;\r
+               if(!(sPath==null||sPath==""))\r
+               {\r
+                       return _getFullPath(oChunk.sPPath,sPath);\r
+               }\r
+       }\r
+       return "";\r
+}\r
+\r
+function getRefURL(nIdx)\r
+{\r
+       var oChunk=getChunk(nIdx);\r
+       if(oChunk)\r
+       {\r
+               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;\r
+               if(!(sPath==null||sPath==""))\r
+               {\r
+                       return _getFullPath(oChunk.sPPath,sPath)\r
+               }\r
+       }\r
+       return "";\r
+}\r
+\r
+function getTopicTarget(nIdx)\r
+{\r
+       var oChunk=getChunk(nIdx);\r
+       if(oChunk)\r
+       {\r
+               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sTarget)!="undefined")\r
+                       return oChunk.aTocs[nIdx-oChunk.nMI].sTarget;\r
+       }\r
+       return "";\r
+}\r
+\r
+function getItemIcon(nIdx,nIconIdx)\r
+{\r
+       var oChunk=getChunk(nIdx);\r
+       if(oChunk)\r
+       {\r
+               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sIconRef)!="undefined")\r
+               {\r
+                       var sIconRef=oChunk.aTocs[nIdx-oChunk.nMI].sIconRef;\r
+                       var nIndex=sIconRef.indexOf(";");\r
+                       while(nIconIdx-->0&&nIndex!=-1)\r
+                       {\r
+                               sIconRef=sIconRef.substring(nIndex+1);\r
+                               nIndex=sIconRef.indexOf(";");\r
+                       }\r
+                       if(nIconIdx<0)\r
+                       {\r
+                               if(nIndex!=-1)\r
+                                       sIconRef=sIconRef.substring(0,nIndex);\r
+                               return _getFullPath(oChunk.sPPath,sIconRef)\r
+                       }\r
+               }\r
+       }\r
+       return "";\r
+}\r
+\r
+function TocWriteClassStyle()\r
+{\r
+       var sStyle="<STYLE TYPE='text/css'>\n";\r
+       if (gsBgImage)\r
+               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
+       else\r
+               sStyle+="body {border-top:black 1px solid;}\n";\r
+       sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";\r
+       sStyle+="DIV {margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";\r
+       sStyle+=".parent {margin-left:0pt;}\n";\r
+       sStyle+=".child {display:none;margin-left:"+gsIndent+";}\n";\r
+       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";\r
+       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";\r
+       sStyle+="A:active {background-color:"+gsABgColor+";}\n";\r
+       sStyle +="A:hover {"+getFontStyle(goHFont)+"}\n";\r
+       sStyle+="</STYLE>";\r
+       document.write(sStyle);\r
+}\r
+\r
+function TocWriteFixedWidth(bBegin,nWidth)\r
+{\r
+       if((gbIE4)&&(gbMac)&&(!gbIE5)){\r
+               if(bBegin)\r
+                       document.write("<table width="+nWidth+" border=0><tr><td>");\r
+               else\r
+                       document.write("</td></tr></table>");\r
+       }\r
+}\r
+\r
+function TocInitPage()\r
+{\r
+       var tempColl=getItemsByBook(document.body);\r
+       if(tempColl.length>0)\r
+               tempColl[0].focus();\r
+}\r
+\r
+function getItemsFromObj(obj)\r
+{\r
+       var aAnchor=new Array();\r
+       var tempColl=getChildrenByTag(obj,"P");\r
+       if(tempColl&&tempColl.length>0)\r
+       {\r
+               var anobr=new Array();\r
+               for(var i=0;i<tempColl.length;i++)\r
+               {\r
+                       var tempNobr=getChildrenByTag(tempColl[i],"NOBR");\r
+                       if(tempNobr&&tempNobr.length>0)\r
+                       {\r
+                               for(var j=0;j<tempNobr.length;j++)\r
+                                       anobr[anobr.length]=tempNobr[j];\r
+                       }\r
+               }\r
+               for(var s=0;s<anobr.length;s++)\r
+               {\r
+                       var tempAnchor=getChildrenByTag(anobr[s],"A");\r
+                       if(tempAnchor&&tempAnchor.length>0)\r
+                       {\r
+                               for(var u=0;u<tempAnchor.length;u++)\r
+                                       aAnchor[aAnchor.length]=tempAnchor[u];\r
+                       }\r
+               }\r
+       }\r
+       return aAnchor;\r
+}\r
+\r
+function getItemsByBook(obj)\r
+{\r
+       var aAnchor=new Array();\r
+       var aTAnchor=getItemsFromObj(obj);\r
+       for(var i=0;i<aTAnchor.length;i++)\r
+       {\r
+               aAnchor[aAnchor.length]=aTAnchor[i];\r
+       }\r
+       var tempBook=getChildrenByTag(obj,"DIV");\r
+       if(tempBook&&tempBook.length>0)\r
+       {\r
+               for(var j=0;j<tempBook.length;j++)\r
+               {\r
+                       var aTAnchorDiv=getItemsFromObj(tempBook[j]);\r
+                       for(var s=0;s<aTAnchorDiv.length;s++)\r
+                       {\r
+                               aAnchor[aAnchor.length]=aTAnchorDiv[s];\r
+                       }\r
+               }\r
+       }       \r
+       return aAnchor;\r
+}\r
+\r
+function ExpandIt(nId)\r
+{\r
+       if(!gsTP)\r
+               ExpandIt2(nId,false);\r
+}\r
+\r
+function ExpandIt2(nId,bForceOpen)\r
+{\r
+       if(gbIE4||gbNav6){\r
+               var oC=TocExpand(nId,true,bForceOpen);\r
+               var nNewScroll=document.body.scrollTop;\r
+               if(oC.style.display=="block"){\r
+                       var nTop=oC.offsetTop;\r
+                       var nBottom=nTop+oC.offsetHeight;\r
+                       if(document.body.scrollTop+document.body.clientHeight<nBottom){\r
+                               nNewScroll=nBottom-document.body.clientHeight;\r
+                       }\r
+                       if(nBottom-nTop>document.body.clientHeight){\r
+                               nNewScroll=nTop-20;\r
+                       }\r
+               }\r
+               document.body.scrollTop=nNewScroll;\r
+       }\r
+}\r
+\r
+function TocExpand(nId,bChangeImg,bForceOpen)\r
+{\r
+       var oDiv=getElement(getCBId(nId));\r
+       if(oDiv==null) return null;\r
+\r
+       var whichIm=document.images[getBId(nId)];\r
+       if((oDiv.style.display!="block")||bForceOpen){\r
+               oDiv.style.display="block";\r
+               if(bChangeImg){\r
+                       var sPath=getPath(whichIm.src);\r
+                       sPath=_getFullPath(sPath,getBookImage(nId,false));\r
+                       whichIm.src=sPath;              \r
+               }\r
+       }else{\r
+               oDiv.style.display="none";\r
+               if(bChangeImg){\r
+                       var sPath=getPath(whichIm.src);\r
+                       sPath=_getFullPath(sPath,getBookImage(nId,true));\r
+                       whichIm.src=sPath;\r
+               }\r
+               if(gbMac&&gbIE5){\r
+                       this.parent.document.getElementById("tocIFrame").style.width="101%";\r
+                       this.parent.document.getElementById("tocIFrame").style.width="100%";\r
+               }\r
+       }\r
+       return oDiv;\r
+}\r
+\r
+function getChunkId(n)\r
+{\r
+       var nCandidate=-1;\r
+       for(var i=0;i<gaTocs.length;i++){\r
+               if(gaTocs[i].nMI<=n){\r
+                       nCandidate=i;\r
+               }\r
+               else\r
+                       break;\r
+       }\r
+       if(nCandidate!=-1&&gaTocs[nCandidate].nMI!=-1)\r
+               return nCandidate;\r
+       else\r
+               return -1;\r
+}\r
+\r
+function getChunk(n)\r
+{\r
+       if(gnCC!=-1&&gaTocs[gnCC].nMI<=n&&(gnCC==gaTocs.length-1||\r
+               gaTocs[gnCC+1].nMI>n))\r
+       {       \r
+               return gaTocs[gnCC];\r
+       }\r
+       else{\r
+               gnCC=getChunkId(n);\r
+               if(gnCC!=-1)\r
+                       return gaTocs[gnCC];\r
+               else\r
+                       return null;\r
+       }\r
+}\r
+\r
+function getBookImage(nIdx,bClosed)\r
+{\r
+       var nIdx=bClosed?0:1;\r
+       var sIcon=getItemIcon(nIdx,nIdx);\r
+       if(sIcon=="")\r
+               if(bClosed)\r
+                       sIcon=giBookClose;\r
+               else\r
+                       sIcon=giBookOpen;\r
+       return _getFullPath(gaProj[0].sPPath,sIcon);\r
+}\r
+\r
+function getItemImage(nIdx,bRemote)\r
+{\r
+       var sIcon=getItemIcon(nIdx,0);\r
+       if(sIcon=="")\r
+               if(bRemote)\r
+                       sIcon=giURLItem;\r
+               else\r
+                       sIcon=giBookItem;\r
+       return _getFullPath(gaProj[0].sPPath,sIcon);\r
+}\r
+\r
+function expandToc(oObj,sRest,aIdList)\r
+{\r
+       var len=aIdList.length;\r
+       var nPos=sRest.indexOf(gsPathSplit);\r
+       if(nPos!=-1)\r
+       {\r
+               sPart=sRest.substring(0,nPos);\r
+               sRest=sRest.substring(nPos+1);\r
+       }\r
+       else\r
+       {\r
+               sPart=sRest;\r
+               var aTagAs=getItemsByBook(oObj);\r
+               for(var s=0;s<aTagAs.length;s++)\r
+               {\r
+                       var sText=getInnerText(aTagAs[s]);\r
+                       if(sText.length>0)\r
+                               sText=sText.substring(1);\r
+                       if(sText==sPart)\r
+                       {\r
+                               aIdList[len]=aTagAs[s];\r
+                               return 1;\r
+                       }\r
+               }\r
+               return 0;\r
+       }\r
+               \r
+       var aChildren=getChildrenByTag(oObj,"DIV");\r
+       for(var i=0;i<aChildren.length;i++)\r
+       {\r
+               var sPId=aChildren[i].id;\r
+               if(!isPBId(sPId))\r
+                       continue;\r
+               var sText=getInnerText(aChildren[i]);\r
+               if(sText.substring(1)!=sPart)\r
+                       continue;\r
+               aIdList[len]=getIdByPBId(sPId);\r
+               var sCId=getCBId(aIdList[len]);\r
+               var oCObj=getElement(sCId);\r
+               if(oCObj)\r
+               {\r
+                       if(oCObj.innerHTML=="")\r
+                       {\r
+                               var obj=getItemsByBook(aChildren[i]);\r
+                               if(obj.length>0)\r
+                               {\r
+                                       if(gbNav6)\r
+                                       {\r
+                                               var sCommand=obj[0].getAttribute("onClick");\r
+                                               var nCommand=sCommand.indexOf(";");\r
+                                               sCommand=sCommand.substring(0,nCommand);\r
+                                               setTimeout(sCommand,1);\r
+                                       }\r
+                                       else\r
+                                               obj[0].click();\r
+                               }\r
+                               return -1;\r
+                       }\r
+                       var nRet=expandToc(oCObj,sRest,aIdList);\r
+                       if(nRet)\r
+                               return nRet;\r
+               }\r
+       }\r
+       aIdList.length=len;\r
+       return 0;\r
+}\r
+\r
+function getIdByPBId(sPId)\r
+{\r
+       return parseInt(sPId.substring(5,sPId.length-6));\r
+}\r
+\r
+function getIdByCBId(sCId)\r
+{\r
+       return parseInt(sCId.substring(5,sCId.length-5));\r
+}\r
+\r
+function isPBId(sId)\r
+{\r
+       return (sId&&sId.indexOf("Book_")==0&&sId.lastIndexOf("Parent")==sId.length-6);\r
+}\r
+\r
+function isCBId(sId)\r
+{\r
+       return (sId&&sId.indexOf("Book_")==0&&sId.lastIndexOf("Child")==sId.length-5);\r
+}\r
+\r
+function getBId(nIdx)\r
+{\r
+       return "Book_"+nIdx;\r
+}\r
+\r
+function getPBId(nIdx)\r
+{\r
+       return getBId(nIdx)+"Parent";\r
+}\r
+\r
+function getCBId(nIdx)\r
+{\r
+       return getBId(nIdx)+"Child";\r
+}\r
+\r
+function getClosestTocPath(aPaths)\r
+{\r
+       var nMaxSimilarity=0;\r
+       var nThatIndex=-1;\r
+       var sPath=null;\r
+       if(aPaths.length==0) return sPath;\r
+       for(var i=0;i<aPaths.length;i++)\r
+       {\r
+               var nSimilarity=comparePath(gsCTPath,aPaths[i]);\r
+               if(nSimilarity>nMaxSimilarity)\r
+               {\r
+                       nMaxSimilarity=nSimilarity;\r
+                       nThatIndex=i;\r
+               }\r
+       }\r
+       if(nThatIndex!=-1)\r
+       {\r
+               sPath=aPaths[nThatIndex];\r
+       }\r
+       else\r
+       {\r
+               sPath=aPaths[0];\r
+       }\r
+       return sPath;\r
+}\r
+\r
+function comparePath(sPath1,sPath2)\r
+{\r
+       var nMaxSimilarity=0;\r
+       var nStartPos1=0;\r
+       var nPos1=-1;\r
+       var nStartPos2=0;\r
+       var nPos2=-1;\r
+       do{\r
+               var sCheck1=null;\r
+               var sCheck2=null;\r
+               nPos1=sPath1.indexOf(gsPathSplit,nStartPos1);\r
+               if(nPos1!=-1)\r
+               {\r
+                       sCheck1=sPath1.substring(nStartPos1,nPos1);\r
+                       nStartPos1=nPos1+1;\r
+               }\r
+               else\r
+               {\r
+                       sCheck1=sPath1.substring(nStartPos1);\r
+                       nStartPos1=-1;\r
+               }\r
+               nPos2=sPath2.indexOf(gsPathSplit,nStartPos2);\r
+               if(nPos1!=-1)\r
+               {\r
+                       sCheck2=sPath2.substring(nStartPos2,nPos2);\r
+                       nStartPos2=nPos2+1;\r
+               }\r
+               else\r
+               {\r
+                       sCheck2=sPath2.substring(nStartPos2);\r
+                       nStartPos2=-1;\r
+               }\r
+               if(sCheck1==sCheck2)\r
+                       nMaxSimilarity++;\r
+               else\r
+                       break;\r
+       }while(nStartPos1!=-1&&nStartPos2!=-1);\r
+       return nMaxSimilarity;\r
+}\r
+\r
+function getTocPaths(oTopicParam)\r
+{\r
+       var aRelTocPaths=oTopicParam.aPaths;\r
+       var aPaths=new Array();\r
+       for(var i=0;i<gaProj.length;i++)\r
+       {\r
+               if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))\r
+               {\r
+                       for(var j=0;j<aRelTocPaths.length;j++)\r
+                       {\r
+                               aPaths[j]=gaRoot[i].sRPath+aRelTocPaths[j];\r
+                               aPaths[j]=aPaths[j].substring(1);\r
+                       }\r
+                       break;\r
+               }\r
+       }\r
+       return aPaths;\r
+}\r
+\r
+function syncInit()\r
+{\r
+       if(gsTP)\r
+       {\r
+               gInSync=true;\r
+               var obj=document.body;\r
+               var aIdList=new Array();\r
+               var nRet=expandToc(obj,gsTP,aIdList);\r
+               if(nRet!=-1)\r
+               {\r
+                       if(nRet==1)\r
+                       {\r
+                               if(aIdList.length)\r
+                                       for(var i=0;i<aIdList.length-1;i++)\r
+                                       {\r
+                                               ExpandIt2(aIdList[i],true);\r
+                                       }\r
+                               gsCTPath=gsTP;\r
+                               if(!gbIE55)\r
+                                       aIdList[aIdList.length-1].focus();\r
+                               else\r
+                                       HighLightElement(aIdList[aIdList.length-1],gsABgColor,"transparent");\r
+                       }\r
+                       var aPaths=gaBTPs;\r
+                       gsTP=null;\r
+                       gaBTPs=null;\r
+                       if(aPaths!=null)\r
+                       {\r
+                               var sPath=getClosestTocPath(aPaths);\r
+                               if(sPath!=null)\r
+                               {       \r
+                                       gsTP=sPath;             \r
+                                       setTimeout("syncInit()",1);\r
+                               }\r
+                       }\r
+               }\r
+               gInSync=false;\r
+       }\r
+}\r
+\r
+function loadToc()\r
+{\r
+       if(!gbReady)\r
+       {\r
+               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
+               if(SendMessage(oResMsg)&&oResMsg.oParam)\r
+               {\r
+                       var oProj=oResMsg.oParam;\r
+                       gaProj=oProj.aProj;\r
+                       gbXML=oProj.bXML;\r
+                       load1B1();\r
+               }\r
+       }\r
+}\r
+\r
+function load1B1()\r
+{\r
+       if(gnLT+1<gaProj.length)\r
+       {\r
+               for(var i=gnLT+1;i<gaProj.length;i++)\r
+               {\r
+                       if(gaProj[i].sToc!=null&&gaProj[i].sToc!="")\r
+                       {\r
+                               gbLoadToc=true;\r
+                               gnLT=i;\r
+                               setTimeout("loadTocInfo()",1);\r
+                               return true;\r
+                       }\r
+               }\r
+       }\r
+       return false;\r
+}\r
+\r
+function loadTocInfo()\r
+{\r
+       loadData2(gaProj[gnLT].sPPath+gaProj[gnLT].sDPath+gaProj[gnLT].sToc);\r
+}\r
+\r
+function loadData2(sFile)\r
+{\r
+       if(gbXML)\r
+               loadDataXML(sFile);\r
+       else\r
+               loadData(sFile);\r
+}\r
+\r
+function projReady(sRoot,aProj)\r
+{\r
+       if(gaRoot.length<=gnLT||!gaRoot[gnLT])\r
+               gaRoot[gnLT]=new Object();\r
+       gaRoot[gnLT].sToc=sRoot;\r
+       \r
+       if(gnLT==0)\r
+               gaRoot[gnLT].sRPath=gsPathSplit;\r
+\r
+       updatePTPath(gnLT,aProj);\r
+\r
+       if(!((gnLT+1<gaProj.length)&&load1B1()))\r
+       {\r
+               gbReady=true;\r
+               if(gbIE4)\r
+                       setTimeout("loadImages();",1);\r
+               else\r
+                       setTimeout("loadTData();",1);\r
+       }\r
+}\r
+\r
+function loadTData()\r
+{\r
+       if(gaProj[0].sToc!="")\r
+       {\r
+               goChunk=addTocChunk(gaProj[0].sPPath,gaProj[0].sDPath);\r
+               gbLoadToc=false;\r
+               loadData2(gaProj[0].sPPath+gaProj[0].sDPath+gaRoot[0].sToc);\r
+       }\r
+}\r
+\r
+function updatePTPath(n,aProj)\r
+{\r
+       if(aProj)\r
+       {\r
+               for(var i=0;i<aProj.length;i++)\r
+               {\r
+                       var sFullPath=_getFullPath(gaProj[n].sPPath,aProj[i].sPPath);\r
+                       for(var j=0;j<gaProj.length;j++)\r
+                       {\r
+                               if(isSamePath(sFullPath,gaProj[j].sPPath))\r
+                               {\r
+                                       if(gaRoot.length<=j||!gaRoot[j])\r
+                                               gaRoot[j]=new Object();\r
+                                       if(!gaRoot[j].sRPath)\r
+                                       {\r
+                                               if(gaRoot[n].sRPath)\r
+                                                       gaRoot[j].sRPath=gaRoot[n].sRPath+aProj[i].sRPath;\r
+                                               else\r
+                                                       gaRoot[j].sRPath=aProj[i].sRPath;\r
+                                       }\r
+                                       break;\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+function putDataXML(xmlDoc,sDocPath)\r
+{\r
+       if(gbLoadToc)\r
+       {\r
+               var tocNode=xmlDoc.getElementsByTagName("toc")[0];\r
+               if(tocNode)\r
+               {\r
+                       var sRoot=tocNode.getAttribute("root");\r
+                       var rmtProject=tocNode.getElementsByTagName("project");\r
+                       var aRProj=new Array();\r
+                       if(rmtProject.length>0)\r
+                       {\r
+                               for(var i=0;i<rmtProject.length;i++)\r
+                               {\r
+                                       aRProj[i]=new Object();\r
+                                       aRProj[i].sPPath=rmtProject[i].getAttribute("url");\r
+                                       aRProj[i].sRPath=rmtProject[i].getAttribute("path");\r
+                               }\r
+                       }\r
+                       projReady(sRoot,aRProj);\r
+               }\r
+       }\r
+       else\r
+       {\r
+               var chunkNode=xmlDoc.getElementsByTagName("tocdata")[0];\r
+               if(chunkNode)\r
+               {\r
+                       var aToc=new Array();\r
+                       processBook(chunkNode,aToc);\r
+                       putData(aToc);\r
+               }\r
+       }\r
+}\r
+\r
+function processBook(node,aToc)\r
+{\r
+       var i=0;\r
+       var entry=null;\r
+       var prevEntry=null;\r
+       var oChild=node.firstChild;\r
+       do{\r
+               if(oChild)\r
+               {\r
+                       if(oChild.nodeName.indexOf("#")!=0)\r
+                       {\r
+                               var sName=oChild.getAttribute("name");\r
+                               var sURL=oChild.getAttribute("url");\r
+                               var sRef=oChild.getAttribute("ref");\r
+                               var sTarget=oChild.getAttribute("target");\r
+                               var sIcons=oChild.getAttribute("images");\r
+                               var item=new Object();\r
+                               item.sItemName=sName;\r
+                               if(sTarget)\r
+                                       item.sTarget=sTarget;\r
+                               if(sIcons)\r
+                                       item.sIconRef=sIcons;\r
+                               if(sURL==null) sURL="";\r
+                               item.sItemURL=sURL;\r
+                               \r
+                               if(oChild.nodeName=="book")\r
+                               {\r
+                                       item.nType=1;\r
+                                       aToc[aToc.length]=item;\r
+                                       var nCurrPos=aToc.length;\r
+                                       processBook(oChild,aToc);\r
+                                       item.nContents=aToc.length-nCurrPos;\r
+                               }\r
+                               else if(oChild.nodeName=="item")\r
+                               {\r
+                                       item.nType=2;\r
+                                       item.nContents=0;\r
+                                       aToc[aToc.length]=item;\r
+                               }\r
+                               else if(oChild.nodeName=="remoteitem")\r
+                               {\r
+                                       item.nType=16;\r
+                                       item.nContents=0;\r
+                                       aToc[aToc.length]=item;\r
+                               }\r
+                               else if(oChild.nodeName=="project")\r
+                               {\r
+                                       item.nType=4;\r
+                                       item.sRefURL=sRef;\r
+                                       item.nContents=0;\r
+                                       aToc[aToc.length]=item;\r
+                               }\r
+                               else if(oChild.nodeName=="chunk")\r
+                               {\r
+                                       item.nType=8;\r
+                                       item.sRefURL=sRef;\r
+                                       item.nContents=0;\r
+                                       aToc[aToc.length]=item;\r
+                               }\r
+                       }\r
+               }\r
+               else\r
+                       break;\r
+               oChild=oChild.nextSibling;\r
+       }while(true);\r
+}\r
+\r
+function putData(aTocs)\r
+{\r
+       gaTocsNs61Fix=aTocs;\r
+       setTimeout("realPutData();",1);\r
+}\r
+\r
+function realPutData()\r
+{\r
+       var aTocs=gaTocsNs61Fix;\r
+       if(!aTocs) return;\r
+       if(goChunk)\r
+       {\r
+               var n=gnMinIdx;\r
+               goChunk.nMI=gnMinIdx;\r
+               goChunk.aTocs=aTocs;\r
+               gnMinIdx+=aTocs.length;\r
+               if(gnInsIdx!=-1)\r
+               {\r
+                       var oObj=getElement(getCBId(gnInsIdx));\r
+                       if(oObj)\r
+                       {\r
+                               oObj.innerHTML=writeBookItems(n-1,aTocs.length);\r
+                               setTimeout("syncInit()",1);\r
+                       }\r
+               }\r
+               else{\r
+                       document.body.insertAdjacentHTML("beforeEnd",writeBookItems(n-1,aTocs.length));\r
+                       var oParam=new Object();\r
+                       oParam.oTocInfo=null;\r
+                       var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);\r
+                       if(SendMessage(oMsg))\r
+                       {\r
+                               if (oMsg.oParam.oTocInfo)\r
+                                       syncWithPaths(oMsg.oParam.oTocInfo);\r
+                       }\r
+               }       \r
+       }\r
+}\r
+\r
+function syncWithPaths(oTopicParam)\r
+{\r
+       var aPaths=getTocPaths(oTopicParam);\r
+       if(gsTP)\r
+               gaBTPs=aPaths;\r
+       else{\r
+               var sPath=getClosestTocPath(aPaths);\r
+               if(sPath!=null)\r
+               {\r
+                       gsTP=sPath;\r
+                       setTimeout("syncInit()",1);\r
+               }\r
+       }\r
+}\r
+\r
+function window_OnLoad()\r
+{\r
+       if(gsBgImage&&gsBgImage.length>0)\r
+       {\r
+               document.body.background=gsBgImage;\r
+       }\r
+       if(gsBgColor&&gsBgColor.length>0)\r
+       {\r
+               document.body.bgColor=gsBgColor;\r
+       }\r
+       loadToc();\r
+       var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function loadImages()\r
+{\r
+       if(giBookClose)\r
+       {\r
+               gaImgs[gnImages]=giBookClose;\r
+               gnImages++;\r
+       }               \r
+       if(giBookOpen)\r
+       {\r
+               gaImgs[gnImages]=giBookOpen;\r
+               gnImages++;\r
+       }               \r
+       if(giBookItem)\r
+       {\r
+               gaImgs[gnImages]=giBookItem;\r
+               gnImages++;\r
+       }               \r
+       if(giURLItem)\r
+       {\r
+               gaImgs[gnImages]=giURLItem;\r
+               gnImages++;\r
+       }               \r
+       if(giNewBookClose)\r
+       {\r
+               gaImgs[gnImages]=giNewBookClose;\r
+               gnImages++;\r
+       }               \r
+       if(giNewBookOpen)\r
+       {\r
+               gaImgs[gnImages]=giNewBookOpen;\r
+               gnImages++;\r
+       }               \r
+       if(giNewBookItem)\r
+       {\r
+               gaImgs[gnImages]=giNewBookItem;\r
+               gnImages++;\r
+       }               \r
+       if(giNewURLItem)\r
+       {\r
+               gaImgs[gnImages]=giNewURLItem;\r
+               gnImages++;\r
+       }\r
+       if(gnImages>0)\r
+       {\r
+               setTimeout("loadDataAfter();",1000);\r
+               loadImage(gaImgs[0]);\r
+       }\r
+       else\r
+               loadDataAfter();\r
+}\r
+\r
+function loadImage(sURL)\r
+{\r
+       var oImg=new Image();\r
+       oImg.onload=checkImageLoading;\r
+       oImg.onerror=errorImageLoading;\r
+       oImg.src=_getFullPath(gaProj[0].sPPath,sURL);\r
+}\r
+\r
+function loadDataAfter()\r
+{\r
+       if(!gbLoadData)\r
+       {\r
+               gbLoadData=true;\r
+               loadTData();\r
+       }\r
+}\r
+\r
+function errorImageLoading()\r
+{\r
+       gnLoadedImages++;\r
+       if(gnImages==gnLoadedImages)\r
+               loadDataAfter();\r
+       else\r
+               loadImage(gaImgs[gnLoadedImages]);      \r
+}\r
+\r
+function checkImageLoading()\r
+{\r
+       gnLoadedImages++;\r
+       if(gnImages==gnLoadedImages)\r
+               loadDataAfter();\r
+       else\r
+               loadImage(gaImgs[gnLoadedImages]);      \r
+}\r
+\r
+function window_unload()\r
+{\r
+       UnRegisterListener2(this,WH_MSG_PROJECTREADY);\r
+       UnRegisterListener2(this,WH_MSG_SYNCTOC);\r
+       UnRegisterListener2(this,WH_MSG_SHOWTOC);\r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       if(oMsg)\r
+       {\r
+               var nMsgId=oMsg.nMessageId;\r
+               if(nMsgId==WH_MSG_PROJECTREADY)\r
+               {\r
+                       loadToc();\r
+               }\r
+               else if(nMsgId==WH_MSG_SYNCTOC)\r
+               {\r
+                       if(gbReady)\r
+                       {\r
+                               syncWithPaths(oMsg.oParam);\r
+                       }\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWTOC)\r
+               {\r
+                       if(!gbNav6)\r
+                               document.body.focus();\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+if (window.gbWhUtil&&window.gbWhVer&&window.gbWhMsg&&window.gbWhProxy)\r
+{\r
+       RegisterListener2(this,WH_MSG_PROJECTREADY);\r
+       RegisterListener2(this,WH_MSG_SYNCTOC);\r
+       RegisterListener2(this,WH_MSG_SHOWTOC);\r
+       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
+       goHFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");\r
+\r
+       window.onload=window_OnLoad;\r
+       window.onbeforeunload=window_BUnload;\r
+       window.onunload=window_unload;\r
+       gbWhTHost=true;\r
+}\r
+else\r
+       document.location.reload();\r
+\r
diff --git a/doc/salome/gui/VISU/whtopic.js b/doc/salome/gui/VISU/whtopic.js
new file mode 100755 (executable)
index 0000000..3adaa25
--- /dev/null
@@ -0,0 +1,662 @@
+var gsPPath = "";\r
+var gaPaths = new Array();\r
+var gaAvenues = new Array();\r
+\r
+var goFrame = null;\r
+var gsStartPage = "";\r
+var gsRelCurPagePath = "";\r
+var gsSearchFormHref  = "";\r
+var gnTopicOnly = -1;\r
+var gnOutmostTopic = -1;\r
+\r
+var BTN_TEXT=1;\r
+var BTN_IMG=2;\r
+\r
+var goSync = null;\r
+\r
+var goShow = null;\r
+var goHide = null;\r
+\r
+var goPrev = null;\r
+var goNext = null;\r
+var gnForm = 0;\r
+var goShowNav = null;\r
+var goHideNav = null;\r
+\r
+var goWebSearch = null;\r
+\r
+var gsBtnStyle = "";\r
+var gaButtons = new Array();\r
+var gaTypes = new Array();\r
+var whtopic_foldUnload = null;\r
+var gbWhTopic=false;\r
+var gbCheckSync=false;\r
+var gbSyncEnabled=false;\r
+\r
+function setButtonFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
+{\r
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
+       gsBtnStyle += ".whtbtn" + sType + "{"+getFontStyle(vFont) + "}";\r
+}\r
+\r
+function writeBtnStyle()\r
+{\r
+       if (gaButtons.length > 0)\r
+       {\r
+               if (gsBtnStyle.length > 0)\r
+               {\r
+                       var sStyle = "<style type='text/css'>";\r
+                       sStyle+= gsBtnStyle + "</style>";\r
+                       document.write(sStyle);\r
+               }\r
+       }\r
+}\r
+\r
+function button(sText, nWidth, nHeight)\r
+{\r
+       this.sText = sText;\r
+       this.nWidth = nWidth;\r
+       this.nHeight = nHeight;\r
+       \r
+       this.aImgs = new Array();\r
+       var i = 0;\r
+       while (button.arguments.length > i + 3)\r
+       {\r
+               this.aImgs[i] = button.arguments[3 + i];\r
+               i ++;\r
+       }\r
+}\r
+\r
+// project info\r
+function setRelStartPage(sPath)\r
+{\r
+       if (gsPPath.length == 0)\r
+       {\r
+               gsPPath = _getFullPath(_getPath(document.location.href),  _getPath(sPath));\r
+               gsStartPage = _getFullPath(_getPath(document.location.href), sPath);\r
+               gsRelCurPagePath = _getRelativeFileName(gsStartPage, document.location.href);\r
+       }\r
+}\r
+\r
+function getImage(oImage, sType)\r
+{\r
+       var sImg="";\r
+       if (oImage && oImage.aImgs && (oImage.aImgs.length > 0))\r
+       {\r
+               sImg+="<img alt=\""+ sType + "\" src=\"" + oImage.aImgs[0] + "\"";\r
+               if (oImage.nWidth > 0)\r
+                       sImg+=" width=" + oImage.nWidth;\r
+               if (oImage.nHeight > 0)\r
+                       sImg+=" height=" + oImage.nHeight;\r
+               sImg+=" border=no>";\r
+       }\r
+       return sImg;\r
+}\r
+\r
+function addTocInfo(sTocPath)\r
+{\r
+       gaPaths[gaPaths.length] = sTocPath;\r
+}\r
+\r
+function addAvenueInfo(sName, sPrev, sNext)\r
+{\r
+       gaAvenues[gaAvenues.length] = new avenueInfo(sName, sPrev, sNext);      \r
+}\r
+\r
+function addButton(sType, nStyle, sText, sHref, sOnClick, sOnMouseOver, sOnLoad, nWidth, nHeight, sImg1, sImg2, sImg3)\r
+{\r
+       var sButton = "";\r
+       var nBtn=gaButtons.length;\r
+       if (sType == "prev")\r
+       {\r
+               if (canGo(false))\r
+               {\r
+                       var sTitle = "Previous Topic";\r
+                       goPrev = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnprev\" href=\"javascript:void(0);\" onclick=\"goAvenue(false);return false;\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goPrev.sText;\r
+                       else\r
+                               sButton += getImage(goPrev, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "next")\r
+       {\r
+               if (canGo(true))\r
+               {\r
+                       var sTitle = "Next Topic";\r
+                       goNext = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnnext\" href=\"javascript:void(0);\" onclick=\"goAvenue(true);return false;\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goNext.sText;\r
+                       else\r
+                               sButton += getImage(goNext, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "show")\r
+       {\r
+               if (isTopicOnly())\r
+               {\r
+                       var sTitle = "Show Navigation Component";\r
+                       goShow = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnshow\" href=\"javascript:void(0);\" onclick=\"show();return false;\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goShow.sText;\r
+                       else\r
+                               sButton += getImage(goShow, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "hide")\r
+       {\r
+               if (!isTopicOnly())\r
+               {\r
+                       var sTitle = "Hide Navigation Component";\r
+                       goHide = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnhide\" href=\"javascript:void(0);\" onclick=\"hide();return false;\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goHide.sText;\r
+                       else\r
+                               sButton += getImage(goHide, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "shownav")\r
+       {\r
+               \r
+               if (isShowHideEnable())\r
+               {\r
+                       var sTitle = "Show Navigation Component";\r
+                       goShowNav = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnshownav\" href=\"javascript:void(0);\" onclick=\"showHidePane(true);return false;\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goShowNav.sText;\r
+                       else\r
+                               sButton += getImage(goShowNav, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "hidenav")\r
+       {\r
+               if (isShowHideEnable())\r
+               {\r
+                       var sTitle = "Hide Navigation Component";\r
+                       goHideNav = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnhidenav\" href=\"javascript:void(0);\" onclick=\"showHidePane(false);return false;\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goHideNav.sText;\r
+                       else\r
+                               sButton += getImage(goHideNav, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "synctoc")\r
+       {\r
+               if (gaPaths.length > 0)\r
+               {\r
+                       var sTitle = "Sync TOC";\r
+                       goSync = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\""+ sTitle + "\" class=\"whtbtnsynctoc\" href=\"javascript:void(0);\" onclick=\"syncWithShow();return false;\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goSync.sText;\r
+                       else\r
+                               sButton += getImage(goSync, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "websearch")\r
+       {\r
+               if (gsSearchFormHref.length > 0)\r
+               {\r
+                       var sTitle = "WebSearch";\r
+                       goWebSearch = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\""+ sTitle + "\" class=\"whtbtnwebsearch\" href=\"" + gsSearchFormHref + "\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goWebSearch.sText;\r
+                       else\r
+                               sButton += getImage(goWebSearch, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "searchform")\r
+       {\r
+               gaButtons[nBtn] = "NeedSearchForm";\r
+               gaTypes[nBtn] = sType;\r
+       }\r
+       if (sButton.length != 0)\r
+       {\r
+               if (nStyle == BTN_TEXT)\r
+                       sButton += "&nbsp;";\r
+               gaButtons[nBtn] = "<td>" + sButton + "</td>";\r
+               gaTypes[nBtn] = sType;\r
+       }\r
+}\r
+\r
+function isSyncEnabled()\r
+{\r
+       if (!gbCheckSync)\r
+       {\r
+               var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null);\r
+               if(SendMessage(oMsg))\r
+               {\r
+                       gbSyncEnabled=oMsg.oParam;\r
+               }\r
+               gbCheckSync=true;\r
+       }\r
+       return gbSyncEnabled;\r
+}\r
+\r
+function isInPopup()\r
+{\r
+       return (window.name.indexOf("BSSCPopup") != -1);\r
+}\r
+\r
+function getIntopicBar(sAlign)\r
+{\r
+       var sHTML = "";\r
+       if (gaButtons.length > 0)\r
+       {\r
+               sHTML += "<div align="+ sAlign + ">";\r
+\r
+               sHTML += "<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\"><tr>";\r
+               for (var i = 0; i < gaButtons.length; i++)\r
+               {\r
+                       if (gaTypes[i]!="synctoc" || isSyncEnabled())\r
+                       {\r
+                               if (gaButtons[i] == "NeedSearchForm")\r
+                                       sHTML += getSearchFormHTML();\r
+                               else\r
+                                       sHTML += gaButtons[i];\r
+                       }\r
+               }\r
+               sHTML += "</tr></table>";\r
+\r
+               sHTML += "</div>";\r
+       }\r
+       return sHTML;\r
+}\r
+\r
+\r
+function writeIntopicBar(nAligns)\r
+{\r
+       if (isInPopup()) return;\r
+       if (gaButtons.length > 0)\r
+       {\r
+               var sHTML = "";\r
+               if (nAligns != 0)\r
+               {\r
+                       sHTML += "<table width=100%><tr>"\r
+                       if (nAligns & 1)\r
+                               sHTML += "<td width=33%>" + getIntopicBar("left") + "</td>";\r
+                       if (nAligns & 2)\r
+                               sHTML += "<td width=34%>" + getIntopicBar("center") + "</td>";\r
+                       if (nAligns & 4)\r
+                               sHTML += "<td width=33%>" + getIntopicBar("right") + "</td>";\r
+                       sHTML += "</tr></table>";\r
+                       document.write(sHTML);\r
+               }\r
+       }\r
+}\r
+\r
+function sendAveInfoOut()\r
+{\r
+       if (!isInPopup())\r
+               setTimeout("sendAveInfo();", 100);\r
+}\r
+\r
+function sendAveInfo()\r
+{\r
+       var oMsg = new whMessage(WH_MSG_AVENUEINFO, this, 1, gaAvenues);\r
+       SendMessage(oMsg);\r
+}\r
+\r
+\r
+function onNext()\r
+{\r
+       var oMsg = new whMessage(WH_MSG_NEXT, this, 1, null);\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function onPrev()\r
+{\r
+       var oMsg = new whMessage(WH_MSG_PREV, this, 1, null);\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function createSyncInfo()\r
+{\r
+       var oParam = new Object();\r
+       if (gsPPath.length == 0)\r
+               gsPPath = _getPath(document.location.href);\r
+       oParam.sPPath = gsPPath;\r
+       oParam.sTPath = document.location.href;\r
+       oParam.aPaths = gaPaths;\r
+       return oParam;\r
+}\r
+\r
+function syncWithShow()\r
+{\r
+       if (isTopicOnly())\r
+               show();\r
+       else \r
+       {\r
+               sync();\r
+               showTocPane();\r
+       }\r
+}\r
+\r
+function showTocPane()\r
+{\r
+       var oMsg = new whMessage(WH_MSG_SHOWTOC, this, 1, null);\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function sendSyncInfo()\r
+{\r
+       if (!isInPopup())\r
+       {\r
+               var oParam = null;\r
+               if (gaPaths.length > 0)\r
+               {\r
+                       oParam = createSyncInfo();\r
+               }\r
+               var oMsg = new whMessage(WH_MSG_SYNCINFO, this, 1, oParam);\r
+               SendMessage(oMsg);\r
+       }\r
+}\r
+\r
+function sendInvalidSyncInfo()\r
+{\r
+       if (!isInPopup())\r
+       {\r
+               var oMsg = new whMessage(WH_MSG_SYNCINFO, this, 1, null);\r
+               SendMessage(oMsg);\r
+       }\r
+}\r
+\r
+function enableWebSearch(bEnable)\r
+{\r
+       if (!isInPopup())\r
+       {\r
+               var oMsg = new whMessage(WH_MSG_ENABLEWEBSEARCH, this, 1, bEnable);\r
+               SendMessage(oMsg);\r
+       }\r
+}\r
+\r
+function autoSync(nSync)\r
+{\r
+       if (nSync == 0) return;\r
+       if (isInPopup()) return;\r
+       if (isOutMostTopic())\r
+               sync();\r
+}\r
+\r
+function isOutMostTopic()\r
+{\r
+       if (gnOutmostTopic == -1)\r
+       {\r
+               var oMessage = new whMessage(WH_MSG_ISINFRAMESET, this, 1 , null);\r
+               if (SendMessage(oMessage))\r
+                       gnOutmostTopic = 0;\r
+               else\r
+                       gnOutmostTopic = 1;\r
+       }\r
+       return (gnOutmostTopic == 1);\r
+}\r
+\r
+function sync()\r
+{\r
+       if (gaPaths.length > 0)\r
+       {\r
+               var oParam = createSyncInfo();\r
+               var oMessage = new whMessage(WH_MSG_SYNCTOC, this, 1, oParam);\r
+               SendMessage(oMessage);\r
+       }\r
+}\r
+\r
+\r
+function avenueInfo(sName, sPrev, sNext)\r
+{\r
+       this.sName = sName;\r
+       this.sPrev = sPrev;\r
+       this.sNext = sNext;\r
+}\r
+\r
+function getCurrentAvenue()\r
+{\r
+       var oParam = new Object();\r
+       oParam.sAvenue = null;\r
+       var oMessage = new whMessage(WH_MSG_GETCURRENTAVENUE, this, 1, oParam);\r
+       SendMessage(oMessage);\r
+       return oParam.sAvenue;\r
+}\r
+\r
+function unRegisterListener()\r
+{\r
+       sendInvalidSyncInfo();\r
+       enableWebSearch(false);\r
+       if (whtopic_foldUnload)\r
+               whtopic_foldUnload();\r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       var nMsgId = oMsg.nMessageId;\r
+       if (nMsgId == WH_MSG_GETAVIAVENUES)\r
+       {\r
+               oMsg.oParam.aAvenues = gaAvenues;\r
+               return false;\r
+       }\r
+       else if (nMsgId == WH_MSG_GETTOCPATHS)\r
+       {\r
+               if (isOutMostTopic())\r
+               {\r
+                       oMsg.oParam.oTocInfo = createSyncInfo();\r
+                       return false;           \r
+               }\r
+               else\r
+                       return true;\r
+       }\r
+       else if (nMsgId == WH_MSG_NEXT)\r
+       {\r
+               goAvenue(true);\r
+       }\r
+       else if (nMsgId == WH_MSG_PREV)\r
+       {\r
+               goAvenue(false);\r
+       }\r
+       else if (nMsgId == WH_MSG_WEBSEARCH)\r
+       {\r
+               websearch();\r
+       }\r
+       return true;\r
+}\r
+\r
+function goAvenue(bNext)\r
+{\r
+       var sTopic = null;\r
+       var sAvenue = getCurrentAvenue();\r
+       var nAvenue = -1;\r
+       if (sAvenue != null && sAvenue != "")\r
+       {\r
+               for (var i = 0; i < gaAvenues.length ; i ++)\r
+               {\r
+                       if (gaAvenues[i].sName == sAvenue)\r
+                       {\r
+                               nAvenue = i;\r
+                               break;\r
+                       }\r
+               }\r
+               if (nAvenue != -1)\r
+               {\r
+                       if (bNext)\r
+                               sTopic = gaAvenues[nAvenue].sNext;\r
+                       else\r
+                               sTopic = gaAvenues[nAvenue].sPrev;\r
+               }\r
+       }\r
+       else\r
+       { \r
+               for (var i = 0; i < gaAvenues.length ; i ++)\r
+               {\r
+                       if (gaAvenues[i].sNext != null && gaAvenues[i].sNext.length > 0 && bNext)\r
+                       {\r
+                               sTopic = gaAvenues[i].sNext;\r
+                               break;\r
+                       }\r
+                       else if (gaAvenues[i].sPrev != null && gaAvenues[i].sPrev.length > 0 && !bNext)\r
+                       {\r
+                               sTopic = gaAvenues[i].sPrev;\r
+                               break;\r
+                       }\r
+               }\r
+       }\r
+       \r
+       if (sTopic != null && sTopic != "")\r
+       {\r
+               if (gsPPath != null && gsPPath != "")\r
+               {\r
+                       sFullTopicPath = _getFullPath(gsPPath, sTopic);\r
+                       document.location = sFullTopicPath;\r
+               }\r
+       }\r
+}\r
+\r
+function canGo(bNext)\r
+{\r
+       for (var i = 0; i < gaAvenues.length ; i ++)\r
+       {\r
+               if ((gaAvenues[i].sNext != null && gaAvenues[i].sNext.length > 0 && bNext) ||\r
+                       (gaAvenues[i].sPrev != null && gaAvenues[i].sPrev.length > 0 && !bNext))\r
+                       return true;\r
+       }\r
+       return false;\r
+}\r
+\r
+function show()\r
+{\r
+       if (gsStartPage != "")\r
+               window.location =  gsStartPage + "#" + gsRelCurPagePath;\r
+}\r
+\r
+function hide()\r
+{\r
+       if (goFrame != null)\r
+       {\r
+               goFrame.location = window.location;\r
+       }\r
+}\r
+\r
+function isTopicOnly()\r
+{\r
+       if (gnTopicOnly == -1)\r
+       {\r
+               var oParam = new Object();\r
+               oParam.oFrame = null;\r
+               var oMsg = new whMessage(WH_MSG_GETSTARTFRAME, this, 1, oParam);\r
+               if (SendMessage(oMsg))\r
+               {\r
+                       goFrame = oParam.oFrame;\r
+                       gnTopicOnly = 0;\r
+               }\r
+               else\r
+                       gnTopicOnly = 1;\r
+       }\r
+       if (gnTopicOnly == 1)\r
+               return true;\r
+       else\r
+               return false;\r
+}\r
+\r
+function websearch()\r
+{\r
+       if (gbNav4)\r
+       {\r
+               if (document.ehelpform)\r
+                       document.ehelpform.submit();\r
+       }\r
+       else\r
+       {\r
+               if (window.ehelpform)\r
+                       window.ehelpform.submit();\r
+       }\r
+}\r
+\r
+function addSearchFormHref(sHref)\r
+{\r
+       gsSearchFormHref = sHref;\r
+       enableWebSearch(true);\r
+}\r
+\r
+function searchB(nForm)\r
+{\r
+       var sValue = eval("document.searchForm" + nForm + ".searchString.value");\r
+       var oMsg = new whMessage(WH_MSG_SEARCHTHIS, this, 1, sValue);\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function getSearchFormHTML()\r
+{\r
+       var sHTML = "";\r
+       gnForm ++;\r
+       var sFormName = "searchForm" + gnForm;\r
+       var sButton = "<form name=\"" + sFormName + "\" method=\"POST\" action=\"javascript:searchB("+ gnForm + ")\">"\r
+       sButton += "<input type=\"text\" name=\"searchString\" value=\"- Full Text search -\" size=\"20\"/>";\r
+       if ("" == "text")\r
+       {\r
+               sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\"" + sFormName + ".submit(); return false;\"></a>";\r
+       }\r
+       else if ("" == "image")\r
+       {\r
+               sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\"" + sFormName + ".submit(); return false;\">"\r
+               sButton+="<img src=\"\" border=0></a>";\r
+       }\r
+       sButton += "</form>";\r
+       sHTML ="<td align=\"center\">" + sButton + "</td>";\r
+       return sHTML;\r
+}\r
+\r
+function showHidePane(bShow)\r
+{\r
+       var oMsg=null;\r
+       if (bShow)\r
+               oMsg=new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+       else\r
+               oMsg=new whMessage(WH_MSG_HIDEPANE, this, 1, null);\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function isShowHideEnable()\r
+{\r
+       if (gbIE4)\r
+               return true;\r
+       else\r
+               return false;\r
+}\r
+\r
+if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
+{\r
+       RegisterListener("bsscright", WH_MSG_GETAVIAVENUES);\r
+       RegisterListener("bsscright", WH_MSG_GETTOCPATHS);\r
+       RegisterListener("bsscright", WH_MSG_NEXT);\r
+       RegisterListener("bsscright", WH_MSG_PREV);\r
+       RegisterListener("bsscright", WH_MSG_WEBSEARCH);\r
+       if (gbMac && gbIE4)\r
+       {\r
+               if (typeof(window.onunload) != "unknown")\r
+                       whtopic_foldUnload = window.onunload;\r
+       }\r
+       else\r
+       {\r
+               if (window.onunload)\r
+                       whtopic_foldUnload = window.onunload;\r
+       }\r
+       window.onunload = unRegisterListener;\r
+       setButtonFont("show","","10pt","","","","");\r
+\r
+       gbWhTopic=true;\r
+}\r
+else\r
+       document.location.reload();
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whutils.js b/doc/salome/gui/VISU/whutils.js
new file mode 100755 (executable)
index 0000000..7fa6c28
--- /dev/null
@@ -0,0 +1,463 @@
+var gsFileName="";\r
+var xmlDoc=null;\r
+var sdocPath=null;\r
+var gsInsertBeforeEndHTML="";\r
+var sReplaceStringsSrc=new Array();\r
+sReplaceStringsSrc[0]="&amp;";\r
+sReplaceStringsSrc[1]="&gt;";\r
+sReplaceStringsSrc[2]="&lt;";\r
+sReplaceStringsSrc[3]="&quot;";\r
+sReplaceStringsSrc[4]="&nbsp;";\r
+var sReplaceStringsDst=new Array();\r
+sReplaceStringsDst[0]="&";\r
+sReplaceStringsDst[1]=">";\r
+sReplaceStringsDst[2]="<";\r
+sReplaceStringsDst[3]="\"";\r
+sReplaceStringsDst[4]=" ";\r
+var goHighLighted=null;\r
+\r
+function _getRelativePath(strParentPath,strCurrentPath)\r
+{\r
+       if(_isAbsPath(strCurrentPath)) return _getPath(strCurrentPath);\r
+       strParentPath=_replaceSlash(strParentPath);\r
+       strParentPath=_getPath(strParentPath);\r
+       strCurrentPath=_replaceSlash(strCurrentPath);\r
+       strCurrentPath=_getPath(strCurrentPath);\r
+       for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)\r
+       {\r
+               if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))\r
+                       break;\r
+       }\r
+       \r
+       strParentPath=strParentPath.substring(i);\r
+       strCurrentPath=strCurrentPath.substring(i);     \r
+       \r
+       var nPathPos=0;\r
+       while(nPathPos!=-1)\r
+       {\r
+               nPathPos=strParentPath.indexOf("/");\r
+               if(nPathPos!=-1)\r
+               {\r
+                       strParentPath=strParentPath.substring(nPathPos+1);\r
+                       strCurrentPath="../"+strCurrentPath;\r
+               }\r
+       }\r
+       return strCurrentPath;\r
+}\r
+\r
+function _getRelativeFileName(strParentPath, strCurrentPath)\r
+{\r
+       strParentPath=_replaceSlash(strParentPath);\r
+       strParentPath=_getPath(strParentPath);\r
+       strCurrentPath=_replaceSlash(strCurrentPath);\r
+       for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)\r
+       {\r
+               if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))\r
+                       break;\r
+       }\r
+       \r
+       strParentPath=strParentPath.substring(i);\r
+       strCurrentPath=strCurrentPath.substring(i);     \r
+       \r
+       var nPathPos=0;\r
+       while(nPathPos!=-1)\r
+       {\r
+               nPathPos=strParentPath.indexOf("/");\r
+               if(nPathPos!=-1)\r
+               {\r
+                       strParentPath=strParentPath.substring(nPathPos+1);\r
+                       strCurrentPath="../"+strCurrentPath;\r
+               }\r
+       }\r
+       return strCurrentPath;\r
+}\r
+\r
+function _isAbsPathToHost(sPath)\r
+{\r
+       return (sPath.indexOf("/")==0);\r
+}\r
+\r
+function _getHost(sPath)\r
+{\r
+       var nPos=sPath.indexOf("//");\r
+       if(nPos>0)\r
+       {\r
+               var nPosx=sPath.indexOf("/",nPos+2);\r
+               if(nPosx>0)\r
+                       return sPath.substring(0,nPosx);\r
+               else\r
+                       return sPath;\r
+       }\r
+       return sPath;\r
+}\r
+\r
+function _getFullPath(sPath,sRelPath)\r
+{\r
+       if(_isAbsPath(sRelPath))\r
+               return sRelPath;\r
+       else if(_isAbsPathToHost(sRelPath))\r
+               return _getHost(sPath)+sRelPath;\r
+       else\r
+       {\r
+               var sFullPath=sPath;\r
+               var nPathPos=0;\r
+               while(nPathPos!=-1)\r
+               {\r
+                       var nPathPos=sRelPath.indexOf("../");\r
+                       if(nPathPos!=-1)\r
+                       {\r
+                               sRelPath=sRelPath.substring(nPathPos+3);\r
+                               sFullPath=sFullPath.substring(0,sFullPath.length-1);\r
+                               var nPos2 = sFullPath.lastIndexOf("/");\r
+                               if(nPos2!=-1)\r
+                                       sFullPath=sFullPath.substring(0,nPos2+1);\r
+                               else\r
+                                       break;\r
+                       }\r
+               }\r
+               sFullPath+=sRelPath;\r
+               return sFullPath;\r
+       }       \r
+}\r
+\r
+function _isAbsPath(strPath)\r
+{\r
+       var strUpper=strPath.toUpperCase();\r
+       return (strUpper.indexOf(":")!=-1);\r
+}\r
+\r
+function _replaceSlash(strURL)\r
+{      \r
+       var re=new RegExp("\\\\","g");\r
+       var strReplacedURL=strURL.replace(re,"/");\r
+       return strReplacedURL;\r
+}\r
+\r
+function _getPath(strURL)\r
+{\r
+       pathpos=strURL.lastIndexOf("/");\r
+       if(pathpos>0)\r
+               return strURL.substring(0,pathpos+1);\r
+       else\r
+               return "";\r
+}\r
+\r
+function removeItemFromArray(oArray,i)\r
+{\r
+       if(oArray.length&&i>=0&&i<oArray.length)\r
+       {\r
+               var len=oArray.length;\r
+               for(var s=i;s<len-1;s++)\r
+                       oArray[s]=oArray[s+1];\r
+               oArray.length=len-1;\r
+       }\r
+}\r
+\r
+function insertItemIntoArray(oArray,i,obj)\r
+{\r
+       if(oArray.length&&i>=0&&i<=oArray.length)\r
+       {\r
+               var len=oArray.length;\r
+               for(var s=len;s>i;s--)\r
+                       oArray[s]=oArray[s-1];\r
+               oArray[i]=obj;          \r
+       }\r
+}\r
+\r
+function loadData(sFileName)\r
+{\r
+       if(!getElement("dataDiv"))\r
+       {\r
+               if(!insertDataDiv())\r
+               {\r
+                       gsFileName=sFileName;\r
+                       return;\r
+               }\r
+       }\r
+       var sHTML="";\r
+       if(gbMac)\r
+               sHTML+="<iframe src="+sFileName+"></iframe>";\r
+       else\r
+               sHTML+="<iframe style=\"visibility:hidden;width:0;height:0\" src="+sFileName+"></iframe>";\r
+       \r
+       var oDivCon=getElement("dataDiv");\r
+       if(oDivCon)\r
+       {\r
+               if(gbNav6)\r
+               {\r
+                       if(oDivCon.getElementsByTagName&&oDivCon.getElementsByTagName("iFrame").length>0)\r
+                       {\r
+                               oDivCon.getElementsByTagName("iFrame")[0].src=sFileName;\r
+                       }\r
+                       else\r
+                               oDivCon.innerHTML=sHTML;\r
+               }\r
+               else\r
+                       oDivCon.innerHTML=sHTML;\r
+       }\r
+}\r
+\r
+function loadDataXML(sFileName)\r
+{\r
+       var sCurrentDocPath=_getPath(document.location.href);\r
+       sdocPath=_getFullPath(sCurrentDocPath,sFileName);\r
+       if(gbIE5)\r
+       {\r
+               xmlDoc=new ActiveXObject("Microsoft.XMLDOM");\r
+               xmlDoc.async=true;\r
+               xmlDoc.onreadystatechange=checkState;\r
+               if(document.body!=null)\r
+                       xmlDoc.load(sdocPath);\r
+       }\r
+       else if(gbNav6)\r
+       {\r
+               xmlDoc=document.implementation.createDocument("","",null);\r
+               xmlDoc.addEventListener("load",initializeData,false);\r
+               xmlDoc.load(sdocPath,"text/xml");\r
+       }\r
+}\r
+\r
+function initializeData()\r
+{\r
+       if(xmlDoc!=null)\r
+               putDataXML(xmlDoc,sdocPath);\r
+}\r
+\r
+function checkState()\r
+{\r
+       if(xmlDoc!=null)\r
+       {\r
+               var state=xmlDoc.readyState;\r
+               if(state==4)\r
+               {\r
+                       var err=xmlDoc.parseError;\r
+                       if(err.errorCode!=0)\r
+                               alert(err.reason);\r
+                       else\r
+                               putDataXML(xmlDoc,sdocPath);\r
+               }\r
+       }\r
+}\r
+\r
+function insertDataDiv()\r
+{\r
+       var sHTML="";\r
+       if(gbMac)\r
+               sHTML+="<div id=dataDiv style=\"display:none;\"></div>";\r
+       else\r
+               sHTML+="<div id=dataDiv style=\"visibility:hidden\"></div>";\r
+       if((gbIE5||gbNav6)&&document.body)\r
+               document.body.insertAdjacentHTML("beforeEnd",sHTML);\r
+       else\r
+       {\r
+               gsInsertBeforeEndHTML=sHTML;\r
+               setTimeout("insertWhenBodyReady();",100);\r
+               return false;\r
+       }\r
+       return true;\r
+}\r
+\r
+function insertWhenBodyReady()\r
+{\r
+       if(gsInsertBeforeEndHTML=="") return;\r
+       if(document.body)\r
+       {\r
+               document.body.insertAdjacentHTML("beforeEnd",gsInsertBeforeEndHTML);\r
+               gsInsertBeforeEndHTML="";\r
+               loadData(gsFileName);\r
+       }\r
+       else\r
+       {\r
+               setTimeout("insertWhenBodyReady();",100);\r
+       }\r
+}\r
+\r
+function window_BUnload()\r
+{\r
+       var oDivCon=getElement("dataDiv");\r
+       if(oDivCon)\r
+               oDivCon.innerHTML="";\r
+}\r
+\r
+function removeThis(obj)\r
+{\r
+       if(obj.parentNode)\r
+               obj.parentNode.removeChild(obj);\r
+       else\r
+               obj.outerHTML="";\r
+}\r
+\r
+function getParentNode(obj)\r
+{\r
+       if(obj.parentNode)\r
+               return obj.parentNode;\r
+       else if(obj.parentElement)\r
+               return obj.parentElement;\r
+       return null;\r
+}\r
+\r
+function getElement(sID)\r
+{\r
+       if(document.getElementById)\r
+               return document.getElementById(sID);\r
+       else if(document.all)\r
+               return document.all(sID);\r
+       return null;\r
+}\r
+\r
+function getChildrenByTag(obj,sTagName)\r
+{\r
+       if(obj.getElementsByTagName)\r
+       {\r
+               var aChildren=new Array();\r
+               var aElements=getElementsByTag(obj,sTagName);\r
+               if(aElements!=null)\r
+               {\r
+                       for(var i=0;i<aElements.length;i++)\r
+                       {\r
+                               if(aElements[i].parentNode==obj)\r
+                                       aChildren[aChildren.length]=aElements[i];\r
+                       }\r
+                       return aChildren;\r
+               }\r
+               else\r
+                       return new Array();\r
+       }\r
+       else if(obj.children)\r
+               return obj.children.tags(sTagName);\r
+}\r
+\r
+function getElementsByTag(obj,sTagName)\r
+{\r
+       if(obj.getElementsByTagName)\r
+               return obj.getElementsByTagName(sTagName);\r
+       else if(obj.all)\r
+               return obj.all.tags(sTagName);\r
+       return null;\r
+}\r
+\r
+function _htmlToText(sHTML)\r
+{\r
+       if(sHTML==null) return null;\r
+       var sText=sHTML;\r
+       for(var i=0;i<sReplaceStringsSrc.length;i++)\r
+       {\r
+               var re=new RegExp(sReplaceStringsSrc[i],"g");\r
+               sText=sText.replace(re,sReplaceStringsDst[i]);\r
+       }       \r
+       return sText;\r
+}\r
+\r
+function _textToHtml_nonbsp(sText)\r
+{\r
+       if(sText==null) return null;\r
+       var sHTML=sText;\r
+       for(var i=0;i<sReplaceStringsSrc.length-1;i++)\r
+       {\r
+               var re=new RegExp(sReplaceStringsDst[i],"g");\r
+               sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);\r
+       }       \r
+       return sHTML;\r
+}\r
+\r
+function _textToHtml(sText)\r
+{\r
+       if(sText==null) return null;\r
+       var sHTML=sText;\r
+       for(var i=0;i<sReplaceStringsSrc.length;i++)\r
+       {\r
+               var re=new RegExp(sReplaceStringsDst[i],"g");\r
+               sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);\r
+       }       \r
+       return sHTML;\r
+}\r
+\r
+\r
+function getInnerText(obj)\r
+{\r
+       var renbsp2sp=new RegExp("\xa0","g");\r
+       if(obj.innerText)\r
+       {\r
+               var sText=obj.innerText;\r
+               sText=sText.replace(renbsp2sp," ");\r
+               return sText;\r
+       }\r
+       else\r
+       {\r
+               if(obj.nodeValue)\r
+               {\r
+                       var sValue=obj.nodeValue;\r
+                       sValue=sValue.replace(renbsp2sp," ");\r
+                       return sValue;\r
+               }\r
+               else\r
+               {\r
+                       var sText="";\r
+                       var oChild=obj.firstChild;\r
+                       while(oChild!=null)\r
+                       {\r
+                               sText+=getInnerText(oChild);\r
+                               oChild=oChild.nextSibling;\r
+                       }\r
+                       return sText;\r
+               }\r
+       }\r
+               \r
+}\r
+\r
+function HighLightElement(obj,sHighLightColor,sNormalColor)\r
+{\r
+       if(obj!=null)\r
+       {\r
+               resetHighLight(sNormalColor);\r
+               obj.style.backgroundColor=sHighLightColor;\r
+               goHighLighted=obj;\r
+       }\r
+}\r
+\r
+function resetHighLight(sNormalColor)\r
+{\r
+       if(goHighLighted!=null)\r
+       {\r
+               goHighLighted.style.backgroundColor=sNormalColor;\r
+               goHighLighted=null;\r
+       }\r
+}\r
+\r
+function whFont(sName,sSize,sColor,sStyle,sWeight,sDecoration)\r
+{\r
+       this.sName=sName;\r
+       this.sSize=sSize;\r
+       this.sColor=sColor;\r
+       this.sStyle=sStyle;\r
+       this.sWeight=sWeight;\r
+       this.sDecoration=sDecoration;\r
+}\r
+\r
+function getFontStyle(oFont)\r
+{\r
+       var sStyle="";\r
+       if(oFont)\r
+       {\r
+               sStyle+="font-family:"+oFont.sName+";";\r
+               if(gbMac)\r
+               {\r
+                       var nSize=parseInt(oFont.sSize);\r
+                       if(gbIE5)\r
+                               nSize+=2;\r
+                       else\r
+                               nSize+=4;\r
+                       sStyle+="font-size:"+nSize+"pt;";\r
+               }\r
+               else\r
+                       sStyle+="font-size:"+oFont.sSize+";";\r
+                       \r
+               sStyle+="font-style:"+oFont.sStyle+";";\r
+               sStyle+="font-weight:"+oFont.sWeight+";";\r
+               sStyle+="text-decoration:"+oFont.sDecoration+";";\r
+               sStyle+="color:"+oFont.sColor+";";\r
+       }\r
+       return sStyle;\r
+}\r
+\r
+var gbWhUtil=true;
\ No newline at end of file
diff --git a/doc/salome/gui/VISU/whver.js b/doc/salome/gui/VISU/whver.js
new file mode 100755 (executable)
index 0000000..50a8e40
--- /dev/null
@@ -0,0 +1,54 @@
+var gbNav6=false;\r
+var gbNav61=false;\r
+var gbNav4=false;\r
+var gbIE4=false;\r
+var gbIE=false;\r
+var gbIE5=false;\r
+var gbIE55=false;\r
+\r
+var gAgent=navigator.userAgent.toLowerCase();\r
+var gbMac=(gAgent.indexOf("mac")!=-1);\r
+var gbSunOS=(gAgent.indexOf("sunos")!=-1);\r
+var gbOpera=(gAgent.indexOf("opera")!=-1);\r
+\r
+var gVersion=navigator.appVersion.toLowerCase();\r
+\r
+var gnVerMajor=parseInt(gVersion);\r
+var gnVerMinor=parseFloat(gVersion);\r
+\r
+gbIE=(navigator.appName.indexOf("Microsoft")!=-1);\r
+if(gnVerMajor>=4)\r
+{\r
+       if(navigator.appName=="Netscape")\r
+       {\r
+               gbNav4=true;\r
+               if(gnVerMajor>=5)\r
+                       gbNav6=true;\r
+       }\r
+       gbIE4=(navigator.appName.indexOf("Microsoft")!=-1);\r
+}\r
+if(gbNav6)\r
+{\r
+       document.gnPageWidth=innerWidth;\r
+       document.gnPageHeight=innerHeight;\r
+       var nPos=gAgent.indexOf("netscape");\r
+       if(nPos!=-1)\r
+       {\r
+               var nVersion=parseFloat(gAgent.substring(nPos+10));\r
+               if(nVersion>=6.1)\r
+                       gbNav61=true;\r
+       }\r
+}else if(gbIE4)\r
+{\r
+       var nPos=gAgent.indexOf("msie");\r
+       if(nPos!=-1)\r
+       {\r
+               var nVersion=parseFloat(gAgent.substring(nPos+5));\r
+               if(nVersion>=5)\r
+                       gbIE5=true;\r
+               if(nVersion>=5.5)\r
+                       gbIE55=true;\r
+       }\r
+}\r
+\r
+var gbWhVer=true;
\ No newline at end of file