2 var gsDefaultTarget="bsscright";
3 var gsBgColor="#ffffff";
6 var goIdxEmptyFont=null;
7 var goIdxHoverFont=null;
10 var gsIdxActiveBgColor="#cccccc";
22 var _event=new myEvent();
24 function setBackgroundcolor(sBgColor)
29 function setBackground(sBgImage)
34 function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
36 var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
39 else if(sType=="Empty")
41 else if(sType=="Hover")
45 function setActiveBgColor(sBgColor)
47 gsIdxActiveBgColor=sBgColor;
50 function setMargin(sMargin)
55 function setIndent(sIndent)
60 function writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
63 var nIdxSet=aCurIdxSet[0];
64 var nIIdx=aPos[nIdxSet];
65 var sKOriName=getItemName(aDataCon,nIdxSet,nIIdx);
66 var sKName=_textToHtml(sKOriName);
68 var nIdxIndent=parseInt(gsIdxIndent);
71 if(getItemType(aDataCon,nIdxSet,nIIdx)==1)
74 sHTML+="<b>"+sKName+"</b></nobr></H6>";
77 for(var i=0;i<nLength;i++)
78 sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
79 sHTML+="<p style=\"margin-left:"+gsIdxIndent+"\"><nobr>";
80 sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+excapeSingleQuotandSlash(getTargetName(aDataCon,nIdxSet,nIIdx))+"'";
82 sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></p>";
84 sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></p>";
88 var nIndent=nIdxIndent*nLevel;
89 for(var i=0;i<nLength;i++)
90 sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
92 sHTML+="<h6 class=\"firstsub\" style=\"margin-left:"+nIndent+"pt\"><nobr>";
94 sHTML+="<h6 style=\"margin-left:"+nIndent+"pt\"><nobr>";
95 sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+excapeSingleQuotandSlash(getTargetName(aDataCon,nIdxSet,nIIdx))+"'";
97 sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></h6>";
99 sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></h6>";
101 oHTML.addHTML(sHTML,nLength,bDown,(nLevel==1),sKOriName);
104 function getTargetName(aDataCon,nIdxSet,nIIdx)
106 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
107 if(aDataCon[nIdxSet].aKs[nIIdx].sTarget)
108 return aDataCon[nIdxSet].aKs[nIIdx].sTarget;
109 return gsDefaultTarget;
112 function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
114 var oLocalHTML=new indexHTMLPart();
115 writeOneItem(oLocalHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel);
117 var aLocalPos=new Array();
118 var aMaxPos=new Array();
119 for(var i=0;i<aPos.length;i++)
121 aLocalPos[i]=aPos[i];
125 for(i=0;i<nLength;i++)
127 var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aLocalPos[aCurIdxSet[i]]);
128 aLocalPos[aCurIdxSet[i]]++;
130 aMaxPos[aCurIdxSet[i]]=aLocalPos[aCurIdxSet[i]]+nNKOff;
132 var oSubHTML=new indexHTMLPart();
133 writeItems(oSubHTML,aDataCon,aLocalPos,null,aMaxPos,true,nLevel+1);
134 oLocalHTML.addSubHTML(oSubHTML,true);
135 oHTML.appendHTML(oLocalHTML,bDown);
138 function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)
142 for(var i=0;i<nLength;i++)
144 var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
145 aPos[aCurIdxSet[i]]+=(1+nNKOff);
149 for(var i=0;i<nLength;i++)
151 var nPKOff=getPKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
152 aPos[aCurIdxSet[i]]-=(1+nPKOff);
157 function getItemName(aDataCon,nIdxSet,nIIdx)
159 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
160 return aDataCon[nIdxSet].aKs[nIIdx].sName;
165 function getItemType(aDataCon,nIdxSet,nIIdx)
167 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
168 return aDataCon[nIdxSet].aKs[nIIdx].nType;
173 function getNKOff(aDataCon,nIdxSet,nIIdx)
175 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
176 return aDataCon[nIdxSet].aKs[nIIdx].nNKOff;
181 function getPKOff(aDataCon,nIdxSet,nIIdx)
183 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
184 return aDataCon[nIdxSet].aKs[nIIdx].nPKOff;
189 function window_OnLoad()
191 if(gsBgImage&&gsBgImage.length>0)
193 document.body.background=gsBgImage;
195 if(gsBgColor&&gsBgColor.length>0)
197 document.body.bgColor=gsBgColor;
199 document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());
201 var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)
209 var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
210 if(SendMessage(oResMsg)&&oResMsg.oParam)
213 var oProj=oResMsg.oParam;
214 var aProj=oProj.aProj;
218 var sLangId=aProj[0].sLangId;
219 for(var i=0;i<aProj.length;i++)
221 if(aProj[i].sIdx&&aProj[i].sLangId==sLangId)
223 addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sIdx);
233 function getIdxTopics(aDataCon,nIdxSet,nIIdx)
236 if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
238 if(aDataCon[nIdxSet].aKs[nIIdx].aTopics)
240 var nLen=aDataCon[nIdxSet].aKs[nIIdx].aTopics.length;
241 var nProj=aDataCon[nIdxSet].nProjId;
242 var sPath=gaData[nProj].sPPath;
243 for(var i=0;i<nLen;i++)
245 var sURL=aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sURL;
246 var sFullPath=_getFullPath(sPath,sURL);
247 sTopics+=",'"+excapeSingleQuotandSlash(_textToHtml(aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sName))+"','"+excapeSingleQuotandSlash(_textToHtml_nonbsp(sFullPath))+"'";
254 function findCKInDom()
259 var oP=getElementsByTag(document,"P");
260 if(!oP) return false;
269 sItem=getInnerText(oP[nM]);
271 if(compare(sItem,sK)==0)
276 else if(compare(sItem,sK)>0)
278 else if(compare(sItem,sK)<0)
287 sItem=getInnerText(oP[nM+1]);
288 if(compare(sItem,sK)<=0) nM++;
292 sItem=getInnerText(oP[nM+1]);
293 if(compare(sItem.substring(0,sK.length),sK)==0) nM++;
300 window.scrollTo(0,oMatch.offsetTop);
301 var tempColl=getElementsByTag(oMatch,"A");
302 if(tempColl&&tempColl.length>0){
303 var nbTag=getElementsByTag(oMatch,"NOBR");
304 if(nbTag&&nbTag.length>0)
305 HighLightElement(nbTag[0], gsIdxActiveBgColor, "transparent");
312 var strCommand = tempColl[0].getAttribute("onClick");
313 var nstrCommand = strCommand.indexOf(";");
314 strCommand = strCommand.substring(0, nstrCommand);
315 strCommand = strCommand.replace("event", "_event");
316 window._event.pageX = oMatch.offsetLeft ;
317 window._event.pageY = oMatch.offsetTop + 20;
318 window.setTimeout(strCommand, 100);
337 function clearHighLight()
339 resetHighLight(gsBgColor);
342 function IndexWriteClassStyle()
345 sStyle+="<STYLE TYPE='text/css'>";
347 sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
349 sStyle+="body {border-top:black 1px solid;}\n";
350 if(gbIE4&&gbMac&&!gbIE5)
352 var nMargin=parseInt(gsIdxMargin);
354 sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
355 sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
356 sStyle+="H6.firstsub {"+getFontStyle(goIdxFont)+"margin-top:"+nMargin+"pt;margin-bottom:"+gsIdxMargin+";}\n";
360 sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
361 sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
363 sStyle+="DIV {margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
364 sStyle+="A:link {"+getFontStyle(goIdxFont)+"}\n";
365 sStyle+="A:visited {"+getFontStyle(goIdxFont)+"}\n";
366 sStyle+="A:active {background-color:"+gsIdxActiveBgColor+";}\n";
367 sStyle+="A:hover {"+getFontStyle(goIdxHoverFont)+"}\n";
369 document.write(sStyle);
373 function window_Unload()
375 UnRegisterListener2(this,WH_MSG_PROJECTREADY);
376 UnRegisterListener2(this,WH_MSG_SEARCHINDEXKEY);
379 function onSendMessage(oMsg)
383 var nMsgId=oMsg.nMessageId;
384 if(nMsgId==WH_MSG_SEARCHINDEXKEY)
386 if(oMsg.oParam && oMsg.oParam.sInput)
390 gsCK=oMsg.oParam.sInput;
391 gbCR = oMsg.oParam.bCR;
396 gsBCK=oMsg.oParam.sInput;
397 gbBCR = oMsg.oParam.bCR;
401 else if(nMsgId==WH_MSG_PROJECTREADY)
409 if(window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhHost&&window.gbWhProxy)
411 RegisterListener2(this,WH_MSG_PROJECTREADY);
412 RegisterListener2(this,WH_MSG_SEARCHINDEXKEY);
413 goIdxFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
414 goIdxEmptyFont=new whFont("Verdana","8pt","#666666","normal","normal","none");
415 goIdxHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
417 window.onload=window_OnLoad;
418 window.onbeforeunload=window_BUnload;
419 window.onunload=window_Unload;
423 document.location.reload();