-// WebHelp 5.10.002\r
-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 onLoadXMLError()\r
-{\r
- if(gbLoadInfo)\r
- {\r
- var aChunk=new Array();\r
- projReady(aChunk);\r
- }\r
- else\r
- {\r
- var aData=new Array();\r
- putData(aData);\r
- }\r
-}\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\"> </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(compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)==0){\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
+// WebHelp 5.10.002
+var gaChunks=new Array();
+var gaFakes=new Array();
+var gaDataCon=null;
+var gaData=new Array();
+
+var gbFindCK=false;;
+var gbNeedCalc=false;
+var gbScrl=false;
+var gbProcess=false;
+var gbReady=false;
+
+var gnCheck=0;
+var gnNum=0;
+var gnIns=-1;
+var gnLoad=0;
+var gnRef=-1;
+var gnMaxItems=0;
+var gnMaxMargin=32000;
+var gnNeeded=0;
+var gnNKI=-1;
+var gnRE=0;
+var gnScrlMgn=30;
+var gnSE=0;
+var gnVisible=0;
+var gnItems=0;
+var gnUHeight=1;
+
+var gsBCK=null;
+var gsChK=null;
+var gsCK=null;
+var gsLoadingDivID="LoadingDiv";
+var gsLoadingMsg="Loading data, please wait...";
+var gsSKA=null;
+var gsSKB=null;
+
+var gbLoadInfo=false;
+
+function onLoadXMLError()
+{
+ if(gbLoadInfo)
+ {
+ var aChunk=new Array();
+ projReady(aChunk);
+ }
+ else
+ {
+ var aData=new Array();
+ putData(aData);
+ }
+}
+
+function putDataXML(xmlDoc,sDocPath)
+{
+ if(gbLoadInfo)
+ {
+ var node=xmlDoc.lastChild;
+ if(node)
+ {
+ var nTotal=0
+ var aChunk=new Array();
+ var oC=node.firstChild;
+ while(oC)
+ {
+ if(oC.nodeName=="chunkinfo")
+ {
+ var item=new Object();
+ item.sBK=oC.getAttribute("first");
+ item.sEK=oC.getAttribute("last");
+ item.sFileName=oC.getAttribute("url");
+ item.nNum=parseInt(oC.getAttribute("num"));
+ nTotal+=item.nNum;
+ item.nTotal=nTotal;
+ aChunk[aChunk.length]=item;
+ }
+ oC=oC.nextSibling;
+ }
+ projReady(aChunk);
+ }
+ }
+ else
+ {
+ var node=xmlDoc.lastChild;
+ if(node)
+ {
+ var aData=new Array();
+ var nPrev=0;
+ var nNext=0;
+ var oC=node.firstChild;
+ while(oC)
+ {
+ nPrev=nNext;
+ if(oC.nodeName=="key")
+ {
+ var sName=oC.getAttribute("name");
+ if(sName&&sName.length>0)
+ {
+ var sTarget=oC.getAttribute("target");
+ var item=new Object();
+ item.nType=2;
+ item.sName=sName;
+ if(sTarget)
+ item.sTarget=sTarget;
+ item.nPKOff=nPrev;
+ aData[aData.length]=item;
+ var nCurIndex=aData.length;
+ processKey(oC,aData,item);
+ nNext=aData.length-nCurIndex;
+ item.nNKOff=nNext;
+ }
+ }
+ else if(oC.nodeName=="letter")
+ {
+ var name=oC.getAttribute("name");
+ if(name&&name.length>0)
+ {
+ var item=new Object();
+ item.nType=1;
+ item.sName=name;
+ item.nPKOff=nPrev;
+ nNext=0;
+ item.nNKOff=nNext;
+ aData[aData.length]=item;
+ }
+ }
+ else if(oC.nodeName=="entry")
+ {
+ var name=oC.getAttribute("name");
+ var def=oC.getAttribute("value");
+ if(name&&name.length>0)
+ {
+ var item=new Object();
+ item.sName=name;
+ item.sDef=def;
+ item.nPKOff=nPrev;
+ nNext=0;
+ item.nNKOff=nNext;
+ aData[aData.length]=item;
+ }
+ }
+ oC=oC.nextSibling;
+ }
+ putData(aData);
+ }
+ }
+}
+
+function processKey(element,aData,item)
+{
+ var i=0;
+ var nPrev=0;
+ var nNext=0;
+ var oC=element.firstChild;
+ while(oC)
+ {
+ if(oC.nodeName=="topic")
+ {
+ var name=oC.getAttribute("name");
+ var url=oC.getAttribute("url");
+ if(url&&url.length!=0)
+ {
+ if(!name||name.length==0)
+ name=url;
+ var topic=new Object();
+ topic.sName=name;
+ topic.sURL=url;
+ if(!item.aTopics)
+ item.aTopics=new Array();
+ item.aTopics[item.aTopics.length]=topic;
+ }
+ }
+ else if(oC.nodeName=="key")
+ {
+ nPrev=nNext;
+ var name=oC.getAttribute("name");
+ if(name&&name.length!=0)
+ {
+ var subItem=new Object();
+ subItem.sName=name;
+ subItem.nType=3;
+ subItem.nPKOff=nPrev;
+ aData[aData.length]=subItem;
+ var nCurIndex=aData.length;
+ processKey(oC,aData,subItem);
+ nNext=aData.length-nCurIndex;
+ subItem.nNKOff=nNext;
+ }
+ }
+ oC=oC.nextSibling;
+ }
+}
+
+function putData(aData)
+{
+ endLoading();
+ var oCData=goCData;
+ if(oCData)
+ {
+ oCData.aKs=aData;
+ if(gnNKI==-1)
+ setTimeout("checkReady();",1);
+ else
+ {
+ gsSKA=getKByIdx(oCData,gnNKI);
+ gbNeedCalc=true;
+ gbScrl=true;
+ gnNKI=-1;
+ if(gsSKA)
+ setTimeout("checkReady();",1);
+ else
+ {
+ markEnd();
+ setTimeout("checkAgain();",50);
+ }
+ }
+ }
+}
+
+function markEnd()
+{
+ if(gbProcess)
+ gbProcess=false;
+}
+
+function endLoading()
+{
+ var oDiv=getElement(gsLoadingDivID);
+ if(oDiv)
+ oDiv.style.visibility="hidden";
+}
+
+function markBegin()
+{
+ gbProcess=true;
+}
+
+function beginLoading()
+{
+ var oDiv=getElement(gsLoadingDivID);
+ if(oDiv)
+ {
+ oDiv.style.top=document.body.scrollTop;
+ oDiv.style.visibility="visible";
+ }
+}
+
+function indexHTMLPart()
+{
+ this.sHTML="";
+ this.nNeeded=0;
+ this.nCurrent=0;
+ this.nConsumed=0;
+ this.sFK=null;
+ this.sLK=null;
+ this.addHTML=function(sHTML,nConsumed,bDown,bK,sK){
+ if(bDown)
+ this.sHTML+=sHTML;
+ else
+ this.sHTML=sHTML+this.sHTML;
+ this.nCurrent++;
+ this.nConsumed+=nConsumed;
+ if(bK)
+ {
+ if(!this.sFK)
+ this.sFK=sK;
+ if(!this.sLK)
+ this.sLK=sK;
+ if(bDown)
+ this.sLK=sK;
+ else
+ this.sFK=sK;
+ }
+ }
+ this.appendHTML=function(oHTML,bDown){
+ this.addSubHTML(oHTML,bDown);
+ if(!this.sFK)
+ this.sFK=oHTML.sFK;
+ if(!this.sLK)
+ this.sLK=oHTML.sLK;
+ if(bDown)
+ this.sLK=oHTML.sLK;
+ else
+ this.sFK=oHTML.sFK;
+ }
+
+ this.addSubHTML=function(oHTML,bDown){
+ if(bDown)
+ this.sHTML+=oHTML.sHTML;
+ else
+ this.sHTML=oHTML.sHTML+this.sHTML;
+ this.nCurrent+=oHTML.nCurrent;
+ this.nConsumed+=oHTML.nConsumed;
+ }
+}
+
+function getMaxUnits()
+{
+ return Math.floor(gnMaxMargin/gnUHeight)+1;
+}
+
+function getFakeItemsHTMLbyCount(nB,nCount)
+{
+ var nMU=getMaxUnits();
+ var nNum=Math.floor(nCount/nMU);
+ var sHTML="";
+ for(var i=0;i<nNum;i++)
+ sHTML+=getFakeItemHTML(nB,nMU-1);
+
+ var nRest=nCount%nMU;
+ sHTML+=getFakeItemHTML(nB,nRest-1);
+ return sHTML;
+}
+
+function getFakeItemHTML(nB,nNum)
+{
+ return "<h6 name=fk"+nB+" id=fk"+nB+" style=\"margin-top:"+gnUHeight*nNum+";margin-bottom:0\"> </h6>";
+}
+
+function fakeItemsArea(nB,n,sKA,sKB,obj)
+{
+ this.nB=nB;
+ this.nNum=n;
+ this.sKA=sKA;
+ this.sKB=sKB;
+ this.obj=obj;
+ this.nMargin=(n-1)*gnUHeight;
+
+ this.setNum=function(n)
+ {
+ var nLastobj=-1;
+ var nDelta=this.nMargin;
+ this.nMargin=(n-1)*gnUHeight;
+ nDelta=nDelta-this.nMargin;
+ if(n>0)
+ {
+ this.nNum=n;
+ var nMU=getMaxUnits();
+ nLastobj=Math.floor((n-1)/nMU);
+ if(this.obj.length)
+ this.obj[nLastobj].style.marginTop=((n-1)%nMU)*gnUHeight;
+ else
+ this.obj.style.marginTop=((n-1)%nMU)*gnUHeight;
+ }
+ if(this.obj.length)
+ {
+ for(var i=this.obj.length-1;i>nLastobj;i--)
+ removeThis(this.obj[i]);
+ }
+ else
+ {
+ if(nLastobj==-1)
+ removeThis(this.obj);
+ }
+ return nDelta;
+ }
+ this.insertAdjacentHTML=function(sWhere,sHTML)
+ {
+ if(sWhere=="beforeBegin")
+ {
+ if(this.obj.length)
+ this.obj[0].insertAdjacentHTML(sWhere,sHTML);
+ else
+ this.obj.insertAdjacentHTML(sWhere,sHTML);
+ }
+ else if(sWhere=="afterEnd")
+ {
+ if(this.obj.length)
+ {
+ if(gbMac&&gbIE5&&this.obj[this.obj.length-1].nextSibling)
+ this.obj[this.obj.length-1].nextSibling.insertAdjacentHTML("beforeBegin",sHTML);
+ else
+ this.obj[this.obj.length-1].insertAdjacentHTML(sWhere,sHTML);
+ }
+ else
+ {
+ if(gbMac&&gbIE5&&this.obj.nextSibling)
+ this.obj.nextSibling.insertAdjacentHTML("beforeBegin",sHTML);
+ else
+ this.obj.insertAdjacentHTML(sWhere,sHTML);
+ }
+ }
+ }
+ this.getBtm=function()
+ {
+ if(this.obj.length)
+ return this.obj[this.obj.length-1].offsetTop;
+ else
+ return this.obj.offsetTop;
+ }
+ this.getTop=function()
+ {
+ return this.getBtm()-this.nMargin;
+ }
+}
+
+function usedItems(nB,nE)
+{
+ this.nB=nB;
+ this.nE=nE;
+ this.oN=null;
+}
+
+function checkReady()
+{
+ var len=gaChunks.length;
+ var bNeedLoad=false;
+ var aDataCon;
+ var s=0;
+ var bDown=(gsSKB==null);
+ var sK=bDown?gsSKA:gsSKB;
+ if(sK==null)
+ {
+ markEnd();
+ setTimeout("checkAgain();",50);
+ return;
+ }
+ if(!gsChK||sK!=gsChK||gnNum==0)
+ {
+ gnCheck=0;
+ gsChK=sK;
+ aDataCon=new Array();
+ }
+ else{
+ s=gnNum;
+ aDataCon=gaDataCon;
+ }
+ for(var i=gnCheck;i<len;i++)
+ {
+ var oCData=getChunkedData(i,bDown,sK);
+ if(oCData)
+ {
+ if(!oCData.aKs&&oCData.sFileName!=null)
+ {
+ bNeedLoad=true;
+ goCData=oCData;
+ gnNum=s;
+ gnCheck=i;
+ gaDataCon=aDataCon;
+ oCData.nProjId=i;
+ gbLoadInfo=false;
+ beginLoading();
+ loadData2(gaData[i].sPPath+gaData[i].sDPath+oCData.sFileName);
+ return;
+ }
+ else{
+ aDataCon[s++]=oCData;
+ }
+ }
+ }
+ if(!bNeedLoad)
+ {
+ gnNum=0;
+ gsSKA=gsSKB=gsShowK=null;
+
+ var oHTML=new indexHTMLPart();
+ var aPos=new Array();
+ var aOriPos=new Array();
+ var aMaxPos=new Array();
+ var aMinPos=new Array();
+
+ if(gbNeedCalc||gbFindCK) gnIns=0;
+ for(i=0;i<aDataCon.length;i++)
+ {
+ aPos[i]=getIdxPos(aDataCon[i],bDown,sK);
+ if(gbNeedCalc||gbFindCK)
+ {
+ gnIns+=aPos[i]+aDataCon[i].nTotal-aDataCon[i].nNum;
+ if(!bDown)
+ {
+ if(aPos[i]!=-1)
+ {
+ if(aDataCon[i].aKs)
+ gnIns+=aDataCon[i].aKs[aPos[i]].nNKOff;
+ else
+ {
+ var n=aPos[i]+1;
+ while(n<aDataCon[i].aKsOnly.length&&!aDataCon[i].aKsOnly[n])
+ n++;
+ n=n-aPos[i]-1;
+ gnIns+=n;
+ }
+ }
+ }
+ }
+ aOriPos[i]=aPos[i];
+ getLimit(aDataCon,aPos,aMaxPos,aMinPos,i);
+ }
+ if((gbNeedCalc||gbFindCK)&&!bDown&&gnIns!=-1)
+ {
+ gnIns+=(aDataCon.length-1)
+ }
+ if(gnIns!=-1||gbFindCK)
+ {
+ oHTML.nNeeded=gnNeeded;
+ var bDone=writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,1);
+ if(oHTML.nConsumed!=0)
+ {
+ var nB;
+ if(!bDown)
+ nB=gnIns-oHTML.nConsumed+1;
+ else
+ nB=gnIns;
+
+ var oldScrollPos=document.body.scrollTop;
+ if(insertIdxKs(nB,oHTML,gbScrl))
+ {
+ updateUsedK(aDataCon,aOriPos,aPos,bDown);
+ if(!gbScrl&&gbMac)
+ {
+ while(document.body.scrollTop!=oldScrollPos)
+ document.body.scrollTop=oldScrollPos;
+ }
+ gbScrl=false;
+ }
+ if(gbFindCK)
+ {
+ gbFindCK=false;
+ gbNeedCalc=true;
+ gsSKB=oHTML.sFK;
+ gnIns=-1;
+ setTimeout("checkReady();",50);
+ return;
+ }
+ }
+ else if(gbFindCK)
+ {
+ gbFindCK=false;
+ gbNeedCalc=true;
+ gsSKB=getFirstKeyFromPos(aDataCon,aPos);
+ gnIns=-1;
+ setTimeout("checkReady();",50);
+ return;
+ }
+ if(!findCKInDom()) return;
+
+ gnNeeded=gnNeeded-oHTML.nCurrent;
+ gnIns=-1;
+ markEnd();
+ setTimeout("checkAgain();",50);
+ gbNeedCalc=false;
+ }
+ else
+ {
+ if(!findCKInDom()) return;
+ markEnd();
+ setTimeout("checkAgain();",50);
+ }
+ }
+}
+
+function getFirstKeyFromPos(aDataCon,aPos)
+{
+ var sCurrentK=getBiggestChar();
+ for(var i=0;i<aPos.length;i++)
+ {
+ if(aDataCon[i].aKs&&aDataCon[i].aKs.length>0&&aPos[i]>=0&&aPos[i]<aDataCon[i].aKs.length)
+ {
+ if(sCurrentK==""||
+ compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)
+ {
+ sCurrentK=aDataCon[i].aKs[aPos[i]].sName;
+ }
+ }
+ }
+ return sCurrentK;
+}
+
+function checkAgain()
+{
+ if(!gbProcess)
+ {
+ if(gsBCK!=null)
+ {
+ gsCK=gsBCK;
+ gsBCK=null;
+ findCK();
+ }
+ else
+ {
+ markBegin();
+ getUnitIdx(document.body.scrollTop,document.body.clientHeight);
+ }
+ }
+ else
+ setTimeout("checkAgain()",50);
+}
+
+function getLimit(aDataCon,aPos,aMaxPos,aMinPos,i)
+{
+ aMaxPos[i]=aDataCon[i].nNum;
+ aMinPos[i]=-1;
+ var oPNode=null;
+ if(aDataCon[i].oUsedItems)
+ {
+ var oUsedItems=aDataCon[i].oUsedItems;
+ do{
+ if(oUsedItems.nB>aPos[i])
+ {
+ aMaxPos[i]=oUsedItems.nB;
+ break;
+ }
+ oPNode=oUsedItems;
+ oUsedItems=oUsedItems.oN;
+ }while(oUsedItems!=null);
+ if(oPNode)
+ aMinPos[i]=oPNode.nE;
+ }
+ else if(aDataCon[i].aKs==null)
+ {
+ aMaxPos[i]=aMinPos[i]=aPos[i];
+ }
+ if(aMinPos[i]>=aPos[i]||aMaxPos[i]<=aPos[i])
+ {
+ aMaxPos[i]=aMinPos[i]=aPos[i];
+ }
+}
+
+function getIdxPos(oIdx,bDown,sK)
+{
+ var aKs=oIdx.aKs;
+ var nIdx;
+ if(bDown)
+ nIdx=oIdx.nNum;
+ else
+ nIdx=-1;
+ if(aKs!=null)
+ {
+ for(var i=0;i<aKs.length;i++)
+ {
+ if(bDown)
+ {
+ if(compare(aKs[i].sName,sK)>0)
+ {
+ nIdx=i;
+ break;
+ }
+ }
+ else
+ {
+ if(compare(aKs[i].sName,sK)<0)
+ nIdx=i;
+ else
+ break;
+ }
+ i+=aKs[i].nNKOff;
+ }
+ }
+ else if(oIdx.aKsOnly)
+ {
+ var aKsOnly=oIdx.aKsOnly;
+ for(var i=0;i<aKsOnly.length;i++)
+ {
+ if(aKsOnly[i])
+ {
+ if(bDown)
+ {
+ if(compare(aKsOnly[i],sK)>0)
+ {
+ nIdx=i;
+ break;
+ }
+ }
+ else
+ {
+ if(compare(aKsOnly[i],sK)<0)
+ nIdx=i;
+ else
+ break;
+ }
+ }
+ }
+ }
+ return nIdx;
+}
+
+function writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,nLevel)
+{
+ var aOldPos=new Array();
+ for(var i=0;i<aPos.length;i++)
+ {
+ aOldPos[i]=aPos[i];
+ }
+ var p;
+ do{
+ var sCurrentK="";
+ var aCurIdxSet=new Array();
+ p=0;
+ for(i=0;i<aDataCon.length;i++)
+ {
+ if(aDataCon[i].aKs&&aDataCon[i].aKs.length&&aPos[i]!=-1&&
+ (bDown&&aPos[i]<aMaxPos[i])||(!bDown&&aPos[i]>aMinPos[i]))
+ {
+ if(sCurrentK==""||
+ (bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)||
+ (!bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)<0))
+ {
+ sCurrentK=aDataCon[i].aKs[aPos[i]].sName;
+ p=0;
+ aCurIdxSet[p++]=i;
+ }
+ else if(compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)==0){
+ aCurIdxSet[p++]=i;
+ }
+ }
+ else if(nLevel==1&&aMaxPos[i]!=aMinPos[i]){
+ if(bDown&&aPos[i]==aMaxPos[i])
+ {
+ if(aDataCon[i].aKs)
+ {
+ gsSKA=aDataCon[i].aKs[aOldPos[i]].sName;
+ return false;
+ }
+ }
+ else if(!bDown&&aPos[i]==aMinPos[i])
+ {
+ if(aDataCon[i].aKs)
+ {
+ gsSKB=aDataCon[i].aKs[aOldPos[i]].sName;
+ return false;
+ }
+ }
+ }
+ }
+ if(p>=1){
+ for(var s=0;s<p;s++)
+ {
+ aOldPos[aCurIdxSet[s]]=aPos[aCurIdxSet[s]];
+ }
+ mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,p,aPos,nLevel);
+ adjustPosition(bDown,aDataCon,aCurIdxSet,p,aPos);
+
+ if(nLevel==1&&oHTML.nNeeded<=oHTML.nCurrent){
+ return true;
+ }
+ }
+ }while(p>0);
+ return true;
+}
+
+function updateUsedK(aDataCon,aOriPos,aOldPos,bDown)
+{
+ for(var i=0;i<aDataCon.length;i++)
+ {
+ if (aOldPos[i]!=aOriPos[i])
+ {
+ var nBP=0;
+ var nEP=0;
+ if(bDown)
+ {
+ nBP=aOriPos[i];
+ nEP=aOldPos[i]-1;
+ }
+ else
+ {
+ if (aOldPos[i]!=-1)
+ nBP=aOldPos[i]+aDataCon[i].aKs[aOldPos[i]].nNKOff+1;
+ else
+ nBP=0;
+ nEP=aOriPos[i]+aDataCon[i].aKs[aOriPos[i]].nNKOff;
+ }
+ if(nBP<=nEP)
+ {
+ setContentsUsed(aDataCon[i],nBP,nEP);
+
+ var oFirstPair=aDataCon[i].oUsedItems;
+ if(oFirstPair.oN==null&&oFirstPair.nB==0&&oFirstPair.nE==aDataCon[i].nNum-1)
+ {
+ storeKeysOnly(aDataCon[i]);
+ aDataCon[i].oUsedItems=aDataCon[i].aKs=aDataCon[i].sFileName=null;
+ }
+ }
+ }
+ }
+}
+
+function storeKeysOnly(oCData)
+{
+ oCData.aKsOnly=new Array();
+ for(var i=0;i<oCData.aKs.length;i++)
+ {
+ oCData.aKsOnly[i]=oCData.aKs[i].sName;
+ i+=oCData.aKs[i].nNKOff;
+ }
+}
+
+function setContentsUsed(oIdx,nB,nE)
+{
+ if(!oIdx.oUsedItems)
+ oIdx.oUsedItems=new usedItems(nB,nE);
+ else
+ {
+ var oUsedItems=oIdx.oUsedItems;
+ var oPNode=null;
+ do{
+ if(oUsedItems.nB>nB)
+ {
+ if(oUsedItems.nB==nE+1)
+ {
+ oUsedItems.nB=nB;
+ }
+ else{
+ var oNewNode=new usedItems(oUsedItems.nB,oUsedItems.nE);
+ oNewNode.oN=oUsedItems.oN;
+ oUsedItems.nB=nB;
+ oUsedItems.nE=nE;
+ oUsedItems.oN=oNewNode;
+ }
+ break;
+ }
+ oPNode=oUsedItems;
+ oUsedItems=oUsedItems.oN;
+ }while(oUsedItems);
+ if(!oUsedItems)
+ {
+ if(oPNode!=null)
+ oPNode.oN=new usedItems(nB,nE);
+ }
+ if(oPNode!=null){
+ if(oPNode.nE==oPNode.oN.nB-1)
+ {
+ oPNode.nE=oPNode.oN.nE;
+ oPNode.oN=oPNode.oN.oN;
+ }
+ }
+ }
+}
+
+function projInfo(sPPath,sDPath,sFile)
+{
+ this.sPPath=sPPath;
+ this.sDPath=sDPath;
+ this.sFile=sFile;
+}
+
+function addProjInfo(sPPath,sDPath,sFile)
+{
+ var oIdxInfo=new projInfo(sPPath,sDPath,sFile);
+ gaData[gaData.length]=oIdxInfo;
+ return oIdxInfo;
+}
+
+function writeDataIFrame()
+{
+ if(gnLoad<gaData.length)
+ {
+ gbLoadInfo=true;
+ loadData2(gaData[gnLoad].sPPath+gaData[gnLoad].sDPath+gaData[gnLoad].sFile);
+ }
+ else{
+ if(gnItems!=0)
+ {
+ markBegin();
+ writeFakeItems();
+ gsSKA="";
+ gnNeeded=gnVisible;
+ gnIns=0;
+ checkReady();
+ }
+ }
+}
+
+function getH6ById(nPos)
+{
+ if(document.all)
+ return document.all("fk"+nPos);
+ else if(document.getElementsByName)
+ return document.getElementsByName("fk"+nPos);
+ return null;
+}
+
+function showItemsInEvaluation(nBP)
+{
+ var bRtn=true;
+ var fPer=nBP/gnItems;
+ var nB=Math.floor(fPer*gnMaxItems);
+ var oCData=getChunkByIdx(gnRef,nB);
+ if(oCData)
+ {
+ if(!oCData.aKs&&oCData.sFileName!=null)
+ {
+ gnNKI=nB;
+ goCData=oCData;
+ oCData.nProjId=gnRef;
+ gbLoadInfo=false;
+ beginLoading();
+ loadData2(gaData[gnRef].sPPath+gaData[gnRef].sDPath+oCData.sFileName);
+ }
+ else{
+ gsSKA=getKByIdx(oCData,nB);
+ if(gsSKA)
+ {
+ gsSKB=null;
+ gbNeedCalc=true;
+ gbScrl=true;
+ checkReady()
+ }
+ else
+ {
+ markEnd();
+ bRtn=false;
+ }
+ }
+ }
+ else
+ {
+ markEnd();
+ bRtn=false;
+ }
+ return bRtn;
+}
+
+function isUsed(oCData,nPos)
+{
+ var oUsed=oCData.oUsedItems;
+ while(oUsed&&oUsed.nB<=nPos)
+ {
+ if(oUsed.nE>=nPos) return true;
+ oUsed=oUsed.oN;
+ }
+ return false;
+}
+
+function getKByIdx(oCData,nB)
+{
+ var nRelPos=nB-(oCData.nTotal-oCData.nNum);
+ var aIKs=oCData.aKs;
+ if(nRelPos>=0&&aIKs&&nRelPos<aIKs.length)
+ {
+ var oK=null;
+ do{
+ oK=aIKs[nRelPos++];
+ }
+ while((oK.nType==3||isUsed(oCData,nRelPos-1))&&nRelPos<aIKs.length);
+ if(oK.nType!=3)
+ {
+ return oK.sName;
+ }
+ else{
+ nRelPos=nB-(oCData.nTotal-oCData.nNum)-1;
+ if(nRelPos>=0)
+ {
+ do{
+ oK=aIKs[nRelPos--];
+ }
+ while((oK.nType==3||isUsed(oCData,nRelPos+1))&&nRelPos>=0);
+ }
+ if(oK.nType!=3)
+ {
+ return oK.sName;
+ }
+ }
+ }
+ return null;
+}
+
+function loadData2(sFileName)
+{
+ disEvt();
+ if(gbXML)
+ loadDataXML(sFileName);
+ else
+ loadData(sFileName);
+ enEvt();
+}
+
+function projReady(aChunk)
+{
+ gaChunks[gnLoad++]=aChunk;
+ var len=aChunk.length;
+ var nTotal=0;
+ if(len>0)
+ nTotal=aChunk[len-1].nTotal;
+ gnItems+=nTotal;
+ if(nTotal>gnMaxItems)
+ {
+ gnMaxItems=nTotal;
+ gnRef=gnLoad-1;
+ }
+ setTimeout("writeDataIFrame();",1);
+}
+
+function writeFakeItems()
+{
+ disEvt();
+ gnUHeight=15;
+ var sHTML=getFakeItemsHTMLbyCount(0,gnItems);
+ document.body.insertAdjacentHTML("beforeEnd",sHTML);
+ var obj=getH6ById(0);
+ if (document.body != null)
+ {
+ gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);
+ }
+ gaFakes[0]=new fakeItemsArea(0,gnItems,"",getEndString(),obj);
+ enEvt();
+}
+
+function getEndString()
+{
+ var sBC=getBiggestChar();
+ return sBC+sBC+sBC+sBC+sBC+sBC+sBC+sBC;
+}
+
+function getUnitIdx(nScrl,nHeight)
+{
+ if(gaFakes.length==0)
+ {
+ markEnd();
+ return;
+ }
+ var nB=0;
+ var nE=gaFakes.length-1;
+ var nM=-1;
+ var nTop=0;
+ var nBtm=0;
+ var bF=false;
+ do{
+ nM=(nB+nE)>>1;
+ nBtm=gaFakes[nM].getBtm();
+ nTop=gaFakes[nM].getTop();
+
+ if(nTop>=nScrl+nHeight)
+ nE=nM-1;
+ else if(nBtm<nScrl)
+ nB=nM+1;
+ else{
+ bF=true;
+ break;
+ }
+ }while(nE>=nB);
+ if(bF)
+ {
+ if(nTop>=nScrl){
+ gsSKA=gaFakes[nM].sKA;
+ gsSKB=null;
+ gnNeeded=Math.ceil((nHeight-nTop+nScrl)/gnUHeight);
+ gnIns=gaFakes[nM].nB;
+ checkReady();
+ }
+ else if(nBtm<=nScrl+nHeight){
+ gsSKB=gaFakes[nM].sKB;
+ gsSKA=null;
+ gnNeeded=Math.ceil((nBtm-nScrl+gnScrlMgn)/gnUHeight);
+ gbNeedCalc=true;
+ checkReady();
+ }
+ else{
+ gnNeeded=gnVisible;
+ var nUnitIdx=gaFakes[nM].nB+Math.floor((nScrl-nTop)/gnUHeight);
+ if (!showItemsInEvaluation(nUnitIdx))
+ {
+ gsSKA=gaFakes[nM].sKA;
+ gsSKB=null;
+ gnNeeded=Math.ceil(nHeight/gnUHeight);
+ gnIns=gaFakes[nM].nB;
+ checkReady();
+ }
+ }
+ }
+ else
+ markEnd();
+}
+
+function disEvt()
+{
+ window.onscroll=null;
+ window.onresize=null;
+}
+
+function enEvt()
+{
+ window.onscroll=window_OnScroll;
+ window.onresize=window_OnResize;
+}
+
+function insertIdxKs(nIns,oHTML,bScrl)
+{
+ var bRtn=true;
+ disEvt();
+ var nCount=oHTML.nConsumed;
+ var nB=0;
+ var nE=gaFakes.length-1;
+ var nM=-1;
+ var bF=false;
+ do{
+ nM=(nB+nE)>>1;
+ if(gaFakes[nM].nB>nIns)
+ nE=nM-1;
+ else if(gaFakes[nM].nB+gaFakes[nM].nNum<=nIns)
+ nB=nM+1;
+ else{
+ bF=true;
+ break;
+ }
+ }while(nE>=nB);
+ if(bF)
+ {
+ var oFIA=gaFakes[nM];
+ var nOffsetTop=oFIA.getTop();
+ var nOffsetBottom=oFIA.getBtm();
+ var nDelta=0;
+ var nHDiff=nIns-oFIA.nB;
+ var nTDiff=oFIA.nNum+oFIA.nB-(nIns+nCount);
+ if(nHDiff>0)
+ {
+ nDelta=oFIA.setNum(nHDiff);
+ var sOldKBefore=oFIA.sKB;
+ oFIA.sKB=oHTML.sFK;
+ if(nTDiff>0)
+ {
+ var sHTML=getFakeItemsHTMLbyCount(nIns,nTDiff);
+ oFIA.insertAdjacentHTML("afterEnd",sHTML);
+ var obj=getH6ById(nIns);
+ insertItemIntoArray(gaFakes,nM+1,new fakeItemsArea(nIns+nCount,nTDiff,oHTML.sLK,sOldKBefore,obj));
+ }
+ oFIA.insertAdjacentHTML("afterEnd",oHTML.sHTML);
+ if(bScrl)
+ {
+ if(gbMac&&gbIE4)
+ {
+ var nScrollPos=nOffsetBottom-nDelta;
+ while(document.body.scrollTop!=nScrollPos)
+ document.body.scrollTop=nScrollPos;
+ }
+ else
+ window.scrollTo(0,nOffsetBottom-nDelta);
+ }
+ }
+ else{
+ oFIA.insertAdjacentHTML("beforeBegin",oHTML.sHTML);
+ if(bScrl){
+ if(gbMac&&gbIE4)
+ {
+ var nScrollPos=nOffsetTop;
+ while(document.body.scrollTop!=nScrollPos)
+ document.body.scrollTop=nScrollPos;
+ }
+ else
+ window.scrollTo(0,nOffsetTop);
+ }
+
+ if(nTDiff>0)
+ {
+ oFIA.nB=nIns+nCount;
+ nDelta=oFIA.setNum(nTDiff);
+ oFIA.sKA=oHTML.sLK;
+ }
+ else{
+ gaFakes[nM].setNum(0);
+ removeItemFromArray(gaFakes,nM);
+ }
+ }
+ }
+ else
+ bRtn=false;
+ enEvt();
+ return bRtn;
+}
+
+function window_OnScroll()
+{
+ gnSE++;
+ setTimeout("procScroll();",50);
+}
+
+function procScroll()
+{
+ if(gnSE==1&&!gbProcess)
+ {
+ markBegin();
+ getUnitIdx(document.body.scrollTop,document.body.clientHeight);
+ }
+ gnSE--;
+}
+
+function window_OnResize()
+{
+ gnRE++;
+ setTimeout("procResize();",50);
+}
+
+function procResize()
+{
+ if(gnRE==1&&!gbProcess)
+ {
+ markBegin();
+ gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);
+ if(gnIns==-1)
+ getUnitIdx(document.body.scrollTop,document.body.clientHeight);
+ }
+ gnRE--;
+}
+
+function getChunkByIdx(nIdx,nPosition)
+{
+ var oCData=null;
+ if(nIdx<gaChunks.length)
+ {
+ var len=gaChunks[nIdx].length;
+ if(len>0)
+ {
+ var nB=0;
+ var nE=len-1;
+ var bF=false;
+ do{
+ var nM=(nB+nE)>>1;
+ if(nPosition<gaChunks[nIdx][nM].nTotal)
+ {
+ bF=true;
+ nE=nM;
+ }
+ else
+ nB=nM+1;
+ }while(nE>nB);
+ if(bF)
+ oCData=gaChunks[nIdx][nE];
+ else if(nPosition<gaChunks[nIdx][nB].nTotal)
+ oCData=gaChunks[nIdx][nB];
+ }
+ }
+ return oCData;
+}
+
+function getChunkedData(nIdx,bDown,sK)
+{
+ var oCData=null;
+ var nCandId=-1;
+ if(nIdx<gaChunks.length)
+ {
+ var len=gaChunks[nIdx].length;
+ if(len>0)
+ {
+ var nB=0;
+ var nE=len-1;
+ var bF=false;
+ do{
+ var nM=(nB+nE+(bDown?0:1))>>1;
+ if(bDown)
+ {
+ if(compare(sK,gaChunks[nIdx][nM].sEK)<0)
+ {
+ bF=true;
+ nE=nM;
+ }
+ else
+ nB=nM+1;
+ }
+ else
+ {
+ if(compare(sK,gaChunks[nIdx][nM].sBK)>0)
+ {
+ bF=true;
+ nB=nM;
+ }
+ else
+ nE=nM-1;
+ }
+ }while(nE>nB);
+ if(bF)
+ {
+ if(bDown)
+ nCandId=nE;
+ else
+ nCandId=nB;
+ }
+ else
+ {
+ if(bDown)
+ {
+ if(gaChunks[nIdx].length>nB&&compare(sK,gaChunks[nIdx][nB].sEK)<0)
+ nCandId=nB;
+ else
+ nCandId=gaChunks[nIdx].length-1;
+ }
+ else
+ {
+ if(0<=nE&&compare(sK,gaChunks[nIdx][nE].sBK)>0)
+ nCandId=nE;
+ else
+ nCandId=0;
+ }
+ }
+ return gaChunks[nIdx][nCandId];
+ }
+ }
+ return null;
+}
+
+function findCK()
+{
+ if(gsCK!=null)
+ {
+ gsSKA=gsCK;
+ gbFindCK=true;
+ gnNeeded=1;
+ markBegin();
+ checkReady();
+ }
+}
+
+function writeLoadingDiv(nIIdx)
+{
+ 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>";
+}
+
var gbWhHost=true;
\ No newline at end of file