2 var gsDefaultTarget="bsscright";
\r
3 var gsBgColor="#ffffff";
\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
22 var _event=new myEvent();
\r
24 function setBackgroundcolor(sBgColor)
\r
29 function setBackground(sBgImage)
\r
34 function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
\r
36 var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
\r
39 else if(sType=="Empty")
\r
40 goIdxEmptyFont=vFont;
\r
41 else if(sType=="Hover")
\r
42 goIdxHoverFont=vFont;
\r
45 function setActiveBgColor(sBgColor)
\r
47 gsIdxActiveBgColor=sBgColor;
\r
50 function setMargin(sMargin)
\r
52 gsIdxMargin=sMargin;
\r
55 function setIndent(sIndent)
\r
57 gsIdxIndent=sIndent;
\r
60 function writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
\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
68 var nIdxIndent=parseInt(gsIdxIndent);
\r
71 if(getItemType(aDataCon,nIdxSet,nIIdx)==1)
\r
73 sHTML+="<H6><nobr>";
\r
74 sHTML+="<b>"+sKName+"</b></nobr></H6>";
\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
84 sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></p>";
\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
92 sHTML+="<h6 class=\"firstsub\" style=\"margin-left:"+nIndent+"pt\"><nobr>";
\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
99 sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></h6>";
\r
101 oHTML.addHTML(sHTML,nLength,bDown,(nLevel==1),sKOriName);
\r
104 function getTargetName(aDataCon,nIdxSet,nIIdx)
\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
112 function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
\r
114 var oLocalHTML=new indexHTMLPart();
\r
115 writeOneItem(oLocalHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel);
\r
117 var aLocalPos=new Array();
\r
118 var aMaxPos=new Array();
\r
119 for(var i=0;i<aPos.length;i++)
\r
121 aLocalPos[i]=aPos[i];
\r
125 for(i=0;i<nLength;i++)
\r
127 var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aLocalPos[aCurIdxSet[i]]);
\r
128 aLocalPos[aCurIdxSet[i]]++;
\r
130 aMaxPos[aCurIdxSet[i]]=aLocalPos[aCurIdxSet[i]]+nNKOff;
\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
138 function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)
\r
142 for(var i=0;i<nLength;i++)
\r
144 var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
\r
145 aPos[aCurIdxSet[i]]+=(1+nNKOff);
\r
149 for(var i=0;i<nLength;i++)
\r
151 var nPKOff=getPKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
\r
152 aPos[aCurIdxSet[i]]-=(1+nPKOff);
\r
157 function getItemName(aDataCon,nIdxSet,nIIdx)
\r
159 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
\r
160 return aDataCon[nIdxSet].aKs[nIIdx].sName;
\r
165 function getItemType(aDataCon,nIdxSet,nIIdx)
\r
167 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
\r
168 return aDataCon[nIdxSet].aKs[nIIdx].nType;
\r
173 function getNKOff(aDataCon,nIdxSet,nIIdx)
\r
175 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
\r
176 return aDataCon[nIdxSet].aKs[nIIdx].nNKOff;
\r
181 function getPKOff(aDataCon,nIdxSet,nIIdx)
\r
183 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
\r
184 return aDataCon[nIdxSet].aKs[nIIdx].nPKOff;
\r
189 function window_OnLoad()
\r
191 if(gsBgImage&&gsBgImage.length>0)
\r
193 document.body.background=gsBgImage;
\r
195 if(gsBgColor&&gsBgColor.length>0)
\r
197 document.body.bgColor=gsBgColor;
\r
199 document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());
\r
201 var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)
\r
209 var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
\r
210 if(SendMessage(oResMsg)&&oResMsg.oParam)
\r
213 var oProj=oResMsg.oParam;
\r
214 var aProj=oProj.aProj;
\r
218 var sLangId=aProj[0].sLangId;
\r
219 for(var i=0;i<aProj.length;i++)
\r
221 if(aProj[i].sIdx&&aProj[i].sLangId==sLangId)
\r
223 addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sIdx);
\r
233 function getIdxTopics(aDataCon,nIdxSet,nIIdx)
\r
236 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
\r
238 if(aDataCon[nIdxSet].aKs[nIIdx].aTopics)
\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
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
254 function findCKInDom()
\r
259 var oP=getElementsByTag(document,"P");
\r
260 if(!oP) return false;
\r
269 sItem=getInnerText(oP[nM]);
\r
271 if(compare(sItem,sK)==0)
\r
276 else if(compare(sItem,sK)>0)
\r
278 else if(compare(sItem,sK)<0)
\r
287 sItem=getInnerText(oP[nM+1]);
\r
288 if(compare(sItem,sK)<=0) nM++;
\r
292 sItem=getInnerText(oP[nM+1]);
\r
293 if(compare(sItem.substring(0,sK.length),sK)==0) nM++;
\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
309 tempColl(0).click();
\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
337 function clearHighLight()
\r
339 resetHighLight(gsBgColor);
\r
342 function IndexWriteClassStyle()
\r
345 sStyle+="<STYLE TYPE='text/css'>";
\r
347 sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
\r
349 sStyle+="body {border-top:black 1px solid;}\n";
\r
350 if(gbIE4&&gbMac&&!gbIE5)
\r
352 var nMargin=parseInt(gsIdxMargin);
\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
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
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
373 function window_Unload()
\r
375 UnRegisterListener2(this,WH_MSG_PROJECTREADY);
\r
376 UnRegisterListener2(this,WH_MSG_SEARCHINDEXKEY);
\r
379 function onSendMessage(oMsg)
\r
383 var nMsgId=oMsg.nMessageId;
\r
384 if(nMsgId==WH_MSG_SEARCHINDEXKEY)
\r
386 if(oMsg.oParam && oMsg.oParam.sInput)
\r
390 gsCK=oMsg.oParam.sInput;
\r
391 gbCR = oMsg.oParam.bCR;
\r
396 gsBCK=oMsg.oParam.sInput;
\r
397 gbBCR = oMsg.oParam.bCR;
\r
401 else if(nMsgId==WH_MSG_PROJECTREADY)
\r
409 if(window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhHost&&window.gbWhProxy)
\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
417 window.onload=window_OnLoad;
\r
418 window.onbeforeunload=window_BUnload;
\r
419 window.onunload=window_Unload;
\r
423 document.location.reload();
\r