📄 whhost.js
字号:
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;
if(gbSafari3 && !gbMac)
gnUHeight=1;
var sHTML=getFakeItemsHTMLbyCount(0,gnItems);
document.body.insertAdjacentHTML("beforeEnd",sHTML);
var obj=getH6ById(0);
if (document.body != null)
{
gnVisible=Math.ceil(getClientHeight()/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,getClientHeight());
}
gnSE--;
}
function window_OnResize()
{
gnRE++;
setTimeout("procResize();",50);
}
function procResize()
{
if(gnRE==1&&!gbProcess)
{
markBegin();
gnVisible=Math.ceil(getClientHeight()/gnUHeight);
if(gnIns==-1)
getUnitIdx(document.body.scrollTop,getClientHeight());
}
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>";
}
function findPosition( oElement ) {
if( typeof( oElement.offsetParent ) != 'undefined' )
{
for( var posY = 0; oElement; oElement = oElement.offsetParent )
{
posY += oElement.offsetTop;
}
return posY ;
}
else
{
return oElement.y ;
}
}
var gbWhHost=true;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -