Salome HOME
Update the GUI documentation for SMESH module
[modules/smesh.git] / doc / salome / gui / SMESH / whihost.js
1 //      WebHelp 5.10.002\r
2 var gsDefaultTarget="bsscright";\r
3 var gsBgColor="#ffffff";\r
4 var gsBgImage="";\r
5 var goIdxFont=null;\r
6 var goIdxEmptyFont=null;\r
7 var goIdxHoverFont=null;\r
8 var gsIdxMargin="0pt";\r
9 var gsIdxIndent="8pt";\r
10 var gsIdxActiveBgColor="#cccccc";\r
11 var gsCK = null;\r
12 var gsBCK = null;\r
13 var gbCR = false;\r
14 var gbBCR = false;\r
15 var gbWhIHost=true;\r
16 \r
17 function myEvent()\r
18 {\r
19         this.pageX = 0;\r
20         this.pageY = 0;\r
21 }\r
22 var _event=new myEvent();\r
23 \r
24 function setBackgroundcolor(sBgColor)\r
25 {\r
26         gsBgColor=sBgColor;\r
27 }\r
28 \r
29 function setBackground(sBgImage)\r
30 {\r
31         gsBgImage=sBgImage;\r
32 }\r
33 \r
34 function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
35 {\r
36         var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
37         if(sType=="Normal")\r
38                 goIdxFont=vFont;\r
39         else if(sType=="Empty")\r
40                 goIdxEmptyFont=vFont;\r
41         else if(sType=="Hover")\r
42                 goIdxHoverFont=vFont;\r
43 }\r
44 \r
45 function setActiveBgColor(sBgColor)\r
46 {\r
47         gsIdxActiveBgColor=sBgColor;\r
48 }\r
49 \r
50 function setMargin(sMargin)\r
51 {\r
52         gsIdxMargin=sMargin;\r
53 }\r
54 \r
55 function setIndent(sIndent)\r
56 {\r
57         gsIdxIndent=sIndent;\r
58 }\r
59 \r
60 function writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)\r
61 {\r
62         var sHTML="";\r
63         var nIdxSet=aCurIdxSet[0];\r
64         var nIIdx=aPos[nIdxSet];\r
65         var sKOriName=getItemName(aDataCon,nIdxSet,nIIdx);\r
66         var sKName=_textToHtml(sKOriName);\r
67 \r
68         var nIdxIndent=parseInt(gsIdxIndent);\r
69         var sTopics="";\r
70         if(nLevel==1){\r
71                 if(getItemType(aDataCon,nIdxSet,nIIdx)==1)\r
72                 {\r
73                         sHTML+="<H6><nobr>";\r
74                         sHTML+="<b>"+sKName+"</b></nobr></H6>";\r
75                 }\r
76                 else{\r
77                         for(var i=0;i<nLength;i++)\r
78                                 sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
79                         sHTML+="<p style=\"margin-left:"+gsIdxIndent+"\"><nobr>";\r
80                         sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+excapeSingleQuotandSlash(getTargetName(aDataCon,nIdxSet,nIIdx))+"'";\r
81                         if(sTopics.length>0)\r
82                                 sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></p>";\r
83                         else\r
84                                 sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></p>";\r
85                 }\r
86         }\r
87         else if(nLevel>=2){\r
88                 var nIndent=nIdxIndent*nLevel;\r
89                 for(var i=0;i<nLength;i++)\r
90                         sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
91                 if (nLevel==2)\r
92                         sHTML+="<h6 class=\"firstsub\" style=\"margin-left:"+nIndent+"pt\"><nobr>";\r
93                 else\r
94                         sHTML+="<h6 style=\"margin-left:"+nIndent+"pt\"><nobr>";\r
95                 sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+excapeSingleQuotandSlash(getTargetName(aDataCon,nIdxSet,nIIdx))+"'";\r
96                 if(sTopics.length>0)\r
97                         sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></h6>";\r
98                 else\r
99                         sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></h6>";\r
100         }\r
101         oHTML.addHTML(sHTML,nLength,bDown,(nLevel==1),sKOriName);\r
102 }\r
103 \r
104 function getTargetName(aDataCon,nIdxSet,nIIdx)\r
105 {\r
106         if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
107                 if(aDataCon[nIdxSet].aKs[nIIdx].sTarget)\r
108                         return aDataCon[nIdxSet].aKs[nIIdx].sTarget;\r
109         return gsDefaultTarget;\r
110 }\r
111 \r
112 function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)\r
113 {\r
114         var oLocalHTML=new indexHTMLPart();\r
115         writeOneItem(oLocalHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel);\r
116         \r
117         var aLocalPos=new Array();\r
118         var aMaxPos=new Array();\r
119         for(var i=0;i<aPos.length;i++)\r
120         {\r
121                 aLocalPos[i]=aPos[i];\r
122                 aMaxPos[i]=-1;\r
123         }\r
124         \r
125         for(i=0;i<nLength;i++)\r
126         {\r
127                 var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aLocalPos[aCurIdxSet[i]]);\r
128                 aLocalPos[aCurIdxSet[i]]++;\r
129                 if(nNKOff>0)\r
130                         aMaxPos[aCurIdxSet[i]]=aLocalPos[aCurIdxSet[i]]+nNKOff;\r
131         }\r
132         var oSubHTML=new indexHTMLPart();\r
133         writeItems(oSubHTML,aDataCon,aLocalPos,null,aMaxPos,true,nLevel+1);\r
134         oLocalHTML.addSubHTML(oSubHTML,true);\r
135         oHTML.appendHTML(oLocalHTML,bDown);\r
136 }\r
137 \r
138 function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)\r
139 {\r
140         if(bDown)\r
141         {\r
142                 for(var i=0;i<nLength;i++)\r
143                 {\r
144                         var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
145                         aPos[aCurIdxSet[i]]+=(1+nNKOff);\r
146                 }\r
147         }\r
148         else{\r
149                 for(var i=0;i<nLength;i++)\r
150                 {\r
151                         var nPKOff=getPKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
152                         aPos[aCurIdxSet[i]]-=(1+nPKOff);\r
153                 }\r
154         }\r
155 }\r
156 \r
157 function getItemName(aDataCon,nIdxSet,nIIdx)\r
158 {\r
159         if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
160                 return aDataCon[nIdxSet].aKs[nIIdx].sName;\r
161         else\r
162                 return null;\r
163 }\r
164 \r
165 function getItemType(aDataCon,nIdxSet,nIIdx)\r
166 {\r
167         if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
168                 return aDataCon[nIdxSet].aKs[nIIdx].nType;\r
169         else\r
170                 return 0;\r
171 }\r
172 \r
173 function getNKOff(aDataCon,nIdxSet,nIIdx)\r
174 {\r
175         if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
176                 return aDataCon[nIdxSet].aKs[nIIdx].nNKOff;\r
177         else\r
178                 return null;\r
179 }\r
180 \r
181 function getPKOff(aDataCon,nIdxSet,nIIdx)\r
182 {\r
183         if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
184                 return aDataCon[nIdxSet].aKs[nIIdx].nPKOff;\r
185         else\r
186                 return null;\r
187 }\r
188 \r
189 function window_OnLoad()\r
190 {\r
191         if(gsBgImage&&gsBgImage.length>0)\r
192         {\r
193                 document.body.background=gsBgImage;\r
194         }\r
195         if(gsBgColor&&gsBgColor.length>0)\r
196         {\r
197                 document.body.bgColor=gsBgColor;\r
198         }\r
199         document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());\r
200         loadIdx();\r
201         var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)\r
202         SendMessage(oMsg);\r
203 }\r
204 \r
205 function loadIdx()\r
206 {\r
207         if(!gbReady)\r
208         {\r
209                 var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
210                 if(SendMessage(oResMsg)&&oResMsg.oParam)\r
211                 {\r
212                         gbReady=true;\r
213                         var oProj=oResMsg.oParam;\r
214                         var aProj=oProj.aProj;\r
215                         gbXML=oProj.bXML;\r
216                         if(aProj.length>0)\r
217                         {\r
218                                 var sLangId=aProj[0].sLangId;\r
219                                 for(var i=0;i<aProj.length;i++)\r
220                                 {\r
221                                         if(aProj[i].sIdx&&aProj[i].sLangId==sLangId)\r
222                                         {\r
223                                                 addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sIdx);\r
224                                         }\r
225                                 }\r
226                         }\r
227                         writeDataIFrame();\r
228                         enEvt();\r
229                 }               \r
230         }\r
231 }\r
232 \r
233 function getIdxTopics(aDataCon,nIdxSet,nIIdx)\r
234 {\r
235         var sTopics="";\r
236         if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
237         {\r
238                 if(aDataCon[nIdxSet].aKs[nIIdx].aTopics)\r
239                 {\r
240                         var nLen=aDataCon[nIdxSet].aKs[nIIdx].aTopics.length;\r
241                         var nProj=aDataCon[nIdxSet].nProjId;\r
242                         var sPath=gaData[nProj].sPPath;\r
243                         for(var i=0;i<nLen;i++)\r
244                         {\r
245                                 var sURL=aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sURL;\r
246                                 var sFullPath=_getFullPath(sPath,sURL);\r
247                                 sTopics+=",'"+excapeSingleQuotandSlash(_textToHtml(aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sName))+"','"+excapeSingleQuotandSlash(_textToHtml_nonbsp(sFullPath))+"'";\r
248                         }\r
249                 }\r
250         }\r
251         return sTopics;         \r
252 }\r
253 \r
254 function findCKInDom()\r
255 {\r
256         if(gsCK!=null)\r
257         {\r
258                 var sK=gsCK;\r
259                 var oP=getElementsByTag(document,"P");\r
260                 if(!oP) return false;\r
261                 var len=oP.length;\r
262                 var nB=0;\r
263                 var nE=len-1;\r
264                 var nM=0;\r
265                 var sItem="";\r
266                 var bF=false;\r
267                 while(nB<nE){\r
268                         nM=(nB+nE+1)>>1;\r
269                         sItem=getInnerText(oP[nM]);\r
270                         \r
271                         if(compare(sItem,sK)==0)\r
272                         {\r
273                                 bF=true;\r
274                                 break;\r
275                         }\r
276                         else if(compare(sItem,sK)>0)\r
277                                 nE=nM-1;\r
278                         else if(compare(sItem,sK)<0)\r
279                                 nB=nM;\r
280                 }\r
281                 if(!bF)\r
282                 {\r
283                         if(nB==nE) nM=nB;\r
284                 \r
285                         if(nM+1<len)\r
286                         {\r
287                                 sItem=getInnerText(oP[nM+1]);\r
288                                 if(compare(sItem,sK)<=0) nM++;\r
289                         }                       \r
290                         if(nM+1<len)\r
291                         {\r
292                                 sItem=getInnerText(oP[nM+1]);\r
293                                 if(compare(sItem.substring(0,sK.length),sK)==0) nM++;\r
294                         }                       \r
295                 }\r
296         \r
297                 var oMatch=oP[nM];\r
298                 if(oMatch)\r
299                 {\r
300                         window.scrollTo(0,oMatch.offsetTop);\r
301                         var tempColl=getElementsByTag(oMatch,"A");\r
302                         if(tempColl&&tempColl.length>0){\r
303                                 var nbTag=getElementsByTag(oMatch,"NOBR");\r
304                                 if(nbTag&&nbTag.length>0)\r
305                                         HighLightElement(nbTag[0], gsIdxActiveBgColor, "transparent");\r
306                                 if (gbCR)\r
307                                 {\r
308                                         if (gbIE4)\r
309                                                 tempColl(0).click();\r
310                                         else\r
311                                         {\r
312                                                 var strCommand = tempColl[0].getAttribute("onClick");\r
313                                                 var nstrCommand = strCommand.indexOf(";");\r
314                                                 strCommand = strCommand.substring(0, nstrCommand);\r
315                                                 strCommand = strCommand.replace("event", "_event");\r
316                                                 window._event.pageX = oMatch.offsetLeft ;\r
317                                                 window._event.pageY = oMatch.offsetTop + 20;\r
318                                                 window.setTimeout(strCommand, 100);\r
319                                         }\r
320                                 }\r
321                         }\r
322                 }\r
323                 gsCK=gsBCK;\r
324                 gbCR=gbBCR;\r
325                 if(gsBCK!=null)\r
326                 {\r
327                         gsBCK=null;\r
328                         gbBCR=false;\r
329                         findCK();\r
330                         return false;\r
331                 }\r
332                 \r
333         }\r
334         return true;\r
335 }\r
336 \r
337 function clearHighLight()\r
338 {\r
339         resetHighLight(gsBgColor);\r
340 }\r
341 \r
342 function IndexWriteClassStyle()\r
343 {\r
344         var sStyle="";\r
345         sStyle+="<STYLE TYPE='text/css'>";\r
346         if (gsBgImage)\r
347                 sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
348         else\r
349                 sStyle+="body {border-top:black 1px solid;}\n";\r
350         if(gbIE4&&gbMac&&!gbIE5)\r
351         {\r
352                 var nMargin=parseInt(gsIdxMargin);\r
353                 nMargin-=10;\r
354                 sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
355                 sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
356                 sStyle+="H6.firstsub {"+getFontStyle(goIdxFont)+"margin-top:"+nMargin+"pt;margin-bottom:"+gsIdxMargin+";}\n";\r
357         }\r
358         else\r
359         {\r
360                 sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
361                 sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
362         }\r
363         sStyle+="DIV {margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
364         sStyle+="A:link {"+getFontStyle(goIdxFont)+"}\n";\r
365         sStyle+="A:visited {"+getFontStyle(goIdxFont)+"}\n";\r
366         sStyle+="A:active {background-color:"+gsIdxActiveBgColor+";}\n";\r
367         sStyle+="A:hover {"+getFontStyle(goIdxHoverFont)+"}\n";\r
368         sStyle+="</STYLE>";     \r
369         document.write(sStyle);\r
370         return;\r
371 }\r
372 \r
373 function window_Unload()\r
374 {\r
375         UnRegisterListener2(this,WH_MSG_PROJECTREADY);\r
376         UnRegisterListener2(this,WH_MSG_SEARCHINDEXKEY);\r
377 }\r
378 \r
379 function onSendMessage(oMsg)\r
380 {\r
381         if(oMsg)\r
382         {\r
383                 var nMsgId=oMsg.nMessageId;\r
384                 if(nMsgId==WH_MSG_SEARCHINDEXKEY)\r
385                 {\r
386                         if(oMsg.oParam && oMsg.oParam.sInput)\r
387                         {\r
388                                 if(gsCK==null)\r
389                                 {\r
390                                         gsCK=oMsg.oParam.sInput;\r
391                                         gbCR = oMsg.oParam.bCR;\r
392                                         findCK();\r
393                                 }\r
394                                 else\r
395                                 {\r
396                                         gsBCK=oMsg.oParam.sInput;\r
397                                         gbBCR = oMsg.oParam.bCR;\r
398                                 }\r
399                         }\r
400                 }\r
401                 else if(nMsgId==WH_MSG_PROJECTREADY)\r
402                 {\r
403                         loadIdx();\r
404                 }\r
405         }\r
406         return true;\r
407 }\r
408 \r
409 if(window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhHost&&window.gbWhProxy)\r
410 {\r
411         RegisterListener2(this,WH_MSG_PROJECTREADY);\r
412         RegisterListener2(this,WH_MSG_SEARCHINDEXKEY);\r
413         goIdxFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
414         goIdxEmptyFont=new whFont("Verdana","8pt","#666666","normal","normal","none");\r
415         goIdxHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");\r
416 \r
417         window.onload=window_OnLoad;\r
418         window.onbeforeunload=window_BUnload;\r
419         window.onunload=window_Unload;\r
420         gbWhIHost=true;\r
421 }\r
422 else\r
423         document.location.reload();\r
424 \r