1 var gsDefaultTarget="bsscright";
\r
2 var gsBgColor="#ffffff";
\r
5 var goIdxEmptyFont=null;
\r
6 var goIdxHoverFont=null;
\r
7 var gsIdxMargin="0pt";
\r
8 var gsIdxIndent="8pt";
\r
9 var gsIdxActiveBgColor="#cccccc";
\r
21 var _event=new myEvent();
\r
23 function setBackgroundcolor(sBgColor)
\r
28 function setBackground(sBgImage)
\r
33 function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
\r
35 var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
\r
38 else if(sType=="Empty")
\r
39 goIdxEmptyFont=vFont;
\r
40 else if(sType=="Hover")
\r
41 goIdxHoverFont=vFont;
\r
44 function setActiveBgColor(sBgColor)
\r
46 gsIdxActiveBgColor=sBgColor;
\r
49 function setMargin(sMargin)
\r
51 gsIdxMargin=sMargin;
\r
54 function setIndent(sIndent)
\r
56 gsIdxIndent=sIndent;
\r
59 function writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
\r
62 var nIdxSet=aCurIdxSet[0];
\r
63 var nIIdx=aPos[nIdxSet];
\r
64 var sKOriName=getItemName(aDataCon,nIdxSet,nIIdx);
\r
65 var sKName=_textToHtml(sKOriName);
\r
67 var nIdxIndent=parseInt(gsIdxIndent);
\r
70 if(getItemType(aDataCon,nIdxSet,nIIdx)==1)
\r
72 sHTML+="<H6><nobr>";
\r
73 sHTML+="<b>"+sKName+"</b></nobr></H6>";
\r
76 for(var i=0;i<nLength;i++)
\r
77 sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
\r
78 sHTML+="<p style=\"margin-left:"+gsIdxIndent+"\"><nobr>";
\r
79 sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+getTargetName(aDataCon,nIdxSet,nIIdx)+"'";
\r
80 if(sTopics.length>0)
\r
81 sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></p>";
\r
83 sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></p>";
\r
87 var nIndent=nIdxIndent*nLevel;
\r
88 for(var i=0;i<nLength;i++)
\r
89 sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
\r
91 sHTML+="<h6 class=\"firstsub\" style=\"margin-left:"+nIndent+"pt\"><nobr>";
\r
93 sHTML+="<h6 style=\"margin-left:"+nIndent+"pt\"><nobr>";
\r
94 sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+getTargetName(aDataCon,nIdxSet,nIIdx)+"'";
\r
95 if(sTopics.length>0)
\r
96 sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></h6>";
\r
98 sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></h6>";
\r
100 oHTML.addHTML(sHTML,nLength,bDown,(nLevel==1),sKOriName);
\r
103 function getTargetName(aDataCon,nIdxSet,nIIdx)
\r
105 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
\r
106 if(aDataCon[nIdxSet].aKs[nIIdx].sTarget)
\r
107 return aDataCon[nIdxSet].aKs[nIIdx].sTarget;
\r
108 return gsDefaultTarget;
\r
111 function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
\r
113 var oLocalHTML=new indexHTMLPart();
\r
114 writeOneItem(oLocalHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel);
\r
116 var aLocalPos=new Array();
\r
117 var aMaxPos=new Array();
\r
118 for(var i=0;i<aPos.length;i++)
\r
120 aLocalPos[i]=aPos[i];
\r
124 for(i=0;i<nLength;i++)
\r
126 var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aLocalPos[aCurIdxSet[i]]);
\r
127 aLocalPos[aCurIdxSet[i]]++;
\r
129 aMaxPos[aCurIdxSet[i]]=aLocalPos[aCurIdxSet[i]]+nNKOff;
\r
131 var oSubHTML=new indexHTMLPart();
\r
132 writeItems(oSubHTML,aDataCon,aLocalPos,null,aMaxPos,true,nLevel+1);
\r
133 oLocalHTML.addSubHTML(oSubHTML,true);
\r
134 oHTML.appendHTML(oLocalHTML,bDown);
\r
137 function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)
\r
141 for(var i=0;i<nLength;i++)
\r
143 var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
\r
144 aPos[aCurIdxSet[i]]+=(1+nNKOff);
\r
148 for(var i=0;i<nLength;i++)
\r
150 var nPKOff=getPKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
\r
151 aPos[aCurIdxSet[i]]-=(1+nPKOff);
\r
156 function getItemName(aDataCon,nIdxSet,nIIdx)
\r
158 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
\r
159 return aDataCon[nIdxSet].aKs[nIIdx].sName;
\r
164 function getItemType(aDataCon,nIdxSet,nIIdx)
\r
166 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
\r
167 return aDataCon[nIdxSet].aKs[nIIdx].nType;
\r
172 function getNKOff(aDataCon,nIdxSet,nIIdx)
\r
174 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
\r
175 return aDataCon[nIdxSet].aKs[nIIdx].nNKOff;
\r
180 function getPKOff(aDataCon,nIdxSet,nIIdx)
\r
182 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
\r
183 return aDataCon[nIdxSet].aKs[nIIdx].nPKOff;
\r
188 function window_OnLoad()
\r
190 if(gsBgImage&&gsBgImage.length>0)
\r
192 document.body.background=gsBgImage;
\r
194 if(gsBgColor&&gsBgColor.length>0)
\r
196 document.body.bgColor=gsBgColor;
\r
198 document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());
\r
200 var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)
\r
208 var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
\r
209 if(SendMessage(oResMsg)&&oResMsg.oParam)
\r
212 var oProj=oResMsg.oParam;
\r
213 var aProj=oProj.aProj;
\r
217 var sLangId=aProj[0].sLangId;
\r
218 for(var i=0;i<aProj.length;i++)
\r
220 if(aProj[i].sIdx!=null&&aProj[i].sIdx!=""&&aProj[i].sLangId==sLangId)
\r
222 addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sIdx);
\r
232 function getIdxTopics(aDataCon,nIdxSet,nIIdx)
\r
235 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
\r
237 if(aDataCon[nIdxSet].aKs[nIIdx].aTopics)
\r
239 var nLen=aDataCon[nIdxSet].aKs[nIIdx].aTopics.length;
\r
240 var nProj=aDataCon[nIdxSet].nProjId;
\r
241 var sPath=gaData[nProj].sPPath;
\r
242 for(var i=0;i<nLen;i++)
\r
244 var sURL=aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sURL;
\r
245 var sFullPath=_getFullPath(sPath,sURL);
\r
246 sTopics+=",'"+excapeSingleQuot(_textToHtml(aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sName))+"','"+_textToHtml_nonbsp(sFullPath)+"'";
\r
253 function excapeSingleQuot(str)
\r
255 if(str==null) return null;
\r
257 var re=new RegExp("'","g");
\r
258 sRes=sRes.replace(re,"\\'");
\r
262 function findCKInDom()
\r
267 var oP=getElementsByTag(document,"P");
\r
268 if(!oP) return false;
\r
277 sItem=getInnerText(oP[nM]);
\r
279 if(compare(sItem,sK)==0)
\r
284 else if(compare(sItem,sK)>0)
\r
286 else if(compare(sItem,sK)<0)
\r
295 sItem=getInnerText(oP[nM+1]);
\r
296 if(compare(sItem,sK)<=0) nM++;
\r
300 sItem=getInnerText(oP[nM+1]);
\r
301 if(compare(sItem.substring(0,sK.length),sK)==0) nM++;
\r
308 window.scrollTo(0,oMatch.offsetTop);
\r
309 var tempColl=getElementsByTag(oMatch,"A");
\r
310 if(tempColl&&tempColl.length>0){
\r
311 var nbTag=getElementsByTag(oMatch,"NOBR");
\r
312 if(nbTag&&nbTag.length>0)
\r
313 HighLightElement(nbTag[0], gsIdxActiveBgColor, "transparent");
\r
317 tempColl(0).click();
\r
320 var strCommand = tempColl[0].getAttribute("onClick");
\r
321 var nstrCommand = strCommand.indexOf(";");
\r
322 strCommand = strCommand.substring(0, nstrCommand);
\r
323 strCommand = strCommand.replace("event", "_event");
\r
324 window._event.pageX = oMatch.offsetLeft ;
\r
325 window._event.pageY = oMatch.offsetTop + 20;
\r
326 window.setTimeout(strCommand, 100);
\r
345 function clearHighLight()
\r
347 resetHighLight(gsBgColor);
\r
350 function IndexWriteClassStyle()
\r
353 sStyle+="<STYLE TYPE='text/css'>";
\r
355 sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
\r
357 sStyle+="body {border-top:black 1px solid;}\n";
\r
358 if(gbIE4&&gbMac&&!gbIE5)
\r
360 var nMargin=parseInt(gsIdxMargin);
\r
362 sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
\r
363 sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
\r
364 sStyle+="H6.firstsub {"+getFontStyle(goIdxFont)+"margin-top:"+nMargin+"pt;margin-bottom:"+gsIdxMargin+";}\n";
\r
368 sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
\r
369 sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
\r
371 sStyle+="DIV {margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
\r
372 sStyle+="A:link {"+getFontStyle(goIdxFont)+"}\n";
\r
373 sStyle+="A:visited {"+getFontStyle(goIdxFont)+"}\n";
\r
374 sStyle+="A:active {background-color:"+gsIdxActiveBgColor+";}\n";
\r
375 sStyle+="A:hover {"+getFontStyle(goIdxHoverFont)+"}\n";
\r
376 sStyle+="</STYLE>";
\r
377 document.write(sStyle);
\r
381 function window_Unload()
\r
383 UnRegisterListener2(this,WH_MSG_PROJECTREADY);
\r
384 UnRegisterListener2(this,WH_MSG_SEARCHINDEXKEY);
\r
387 function onSendMessage(oMsg)
\r
391 var nMsgId=oMsg.nMessageId;
\r
392 if(nMsgId==WH_MSG_SEARCHINDEXKEY)
\r
394 if(oMsg.oParam && oMsg.oParam.sInput)
\r
398 gsCK=oMsg.oParam.sInput;
\r
399 gbCR = oMsg.oParam.bCR;
\r
404 gsBCK=oMsg.oParam.sInput;
\r
405 gbBCR = oMsg.oParam.bCR;
\r
409 else if(nMsgId==WH_MSG_PROJECTREADY)
\r
417 if(window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhHost&&window.gbWhProxy)
\r
419 RegisterListener2(this,WH_MSG_PROJECTREADY);
\r
420 RegisterListener2(this,WH_MSG_SEARCHINDEXKEY);
\r
421 goIdxFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
\r
422 goIdxEmptyFont=new whFont("Verdana","8pt","#666666","normal","normal","none");
\r
423 goIdxHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
\r
425 window.onload=window_OnLoad;
\r
426 window.onbeforeunload=window_BUnload;
\r
427 window.onunload=window_Unload;
\r
431 document.location.reload();
\r