⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 whfhost.js

📁 an installation help file
💻 JS
📖 第 1 页 / 共 2 页
字号:
				break;
			}
			else{
				aFtsContentsCon[s++]=oCF;
			}
		}
	}
	if(!bNeedLoad)
	{
		var aTI=gaTopicCheckInfo;
		for(var m=gnTopicCheck;m<aFtsContentsCon.length;m++)
		{
			var aTIPart=getTopics(aFtsContentsCon[m],sKey);
			if(aTIPart==null)
			{
				gnCheck=gaaFCD.length;
				gnTopicCheck=m;
				gaTopicCheckInfo=aTI;
				gaFtsContentsCon=aFtsContentsCon;
				return;
			}
			if(m==0)
				aTI=aTIPart;
			else
				aTI=mergeTopics(aTI,aTIPart);
		}
		if(mergewithPreviousResult(aTI))
		{
			gbFirst=false;
			findOneKey();
		}
		else
			checkAgain();
	}
}

function mergewithPreviousResult(aTI)
{
	if(aTI!=null&&aTI.length!=0)
	{
		var nNumTopics=aTI.length;
		if(gnCurrentOp==0||gbFirst){
			if(gbNot){
				displayMsg(gsHelpCannotSearch);
				return false;
			}else{
				var aLS,aSS;
				if(gaTI.length>=aTI.length)
				{
					aLS=gaTI;
					aSS=aTI;
				}
				else
				{
					aLS=aTI;
					aSS=gaTI;
				}
				var s=0;
				for(var i=0;i<aSS.length;i++)
				{
					var bAlreadyThere=false;
					for(var j=s;j<aLS.length;j++)
					{
						if(aSS[i].equalTo(aLS[j]))
						{
							bAlreadyThere=true;
							s=j;
							break;
						}
					}
					if(!bAlreadyThere)
					{
						insertTopic(aLS,aSS[i]);
					}
				}
				gaTI=aLS;
			}
		}else if(gnCurrentOp==1){
			if(gbNot){
				var s=0;
				for(var i=0;i<aTI.length;i++)
				{
					for(var j=s;j<gaTI.length;j++)
					{
						if(aTI[i].equalTo(gaTI[j]))
						{
							removeItemFromArray(gaTI,j);
							s=j;
							break;
						}
					}
				}
			}else{
				var s=0;
				for(var i=0;i<gaTI.length;i++)
				{
					var bFound=false;
					for(var j=s;j<aTI.length;j++)
					{
						if(gaTI[i].equalTo(aTI[j]))
						{
							bFound=true;
							s=j;
						}
					}
					if(!bFound)
					{
						removeItemFromArray(gaTI,i);
						i--;
					}
				}				
			}
		}
	}else{
		if((gnCurrentOp==1)&&(!gbNot)){
			gaTI.length=0;
		}else if((gnCurrentOp==0)&&(gbNot)){
			displayMsg(gsHelpCannotSearch);
			return false;
		}
	}
	return true;
}

function insertTopic(aTI,oTI)
{
	var nB=0;
	var nE=aTI.length-1;
	if(nE>=0)
	{
		var nM;
		var bFound=false;
		do{
			nM=(nB+nE)>>1;
			if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)>0)
				nE=nM-1;
			else if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)
				nB=nM+1;
			else
			{
				bFound=true;
				break;
			}
		}while(nB<=nE);
		if(bFound)
			insertItemIntoArray(aTI,nM,oTI);
		else
		{
			if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)
				insertItemIntoArray(aTI,nM+1,oTI);
			else
				insertItemIntoArray(aTI,nM,oTI);
		}
	}
	else
		aTI[0]=oTI;
}

function mergeTopics(aTI1,aTI2)
{
	var i1=0;
	var i2=0;
	var len1=aTI1.length;
	var len2=aTI2.length;
	var aTopicNew=new Array();
	var i=0;
	while(i1<len1||i2<len2)
	{
		if(i1<len1&&i2<len2)
		{
			if(compare(aTI1[i1].sTopicTitle,aTI2[i2].sTopicTitle)<0)
				aTopicNew[i++]=aTI1[i1++];
			else
				aTopicNew[i++]=aTI2[i2++];
		}
		else if(i1<len1)
			aTopicNew[i++]=aTI1[i1++];
		else if(i2<len2)
			aTopicNew[i++]=aTI2[i2++];
	}
	return aTopicNew;
}

function getTopics(oCF,sKey)
{
	var aTIPart=new Array();
	if(oCF&&oCF.aFtsKeys)
	{
		var keys=oCF.aFtsKeys;
		var nB=0;
		var nE=keys.length-1;
		var nM=-1;
		var bFound=false;
		do{
			nM=(nB+nE)>>1;
			if(compare(keys[nM].sItemName,sKey)>0)
				nE=nM-1;
			else if(compare(keys[nM].sItemName,sKey)<0)
				nB=nM+1;
			else{
				bFound=true;
				break;
			}
		}while(nB<=nE);
		if(bFound)
		{
			if(keys[nM].aTopics)
			{
				for(var i=0;i<keys[nM].aTopics.length;i++)
				{
					var oTC=getTopicChunk(gaaFTCD[oCF.nProjId],keys[nM].aTopics[i]);
					if(oTC.aTopics)
					{
						aTIPart[aTIPart.length]=
							new topicInfo(oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicTitle,
								gaData[oCF.nProjId].sPPath+oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicURL);
					}
					else{
						goCTF=oTC;
						gnLoadFts=3;
						beginLoading();
						loadData2(gaData[oCF.nProjId].sPPath+gaData[oCF.nProjId].sDPath+oTC.sFileName);
						return null;
					}
				}
			}
		}
	}
	return aTIPart;
}

function getTopicChunk(aFTCD,nTopicId)
{
	if(aFTCD&&aFTCD.length)
	{
		var nB=0;
		var nE=aFTCD.length-1;
		var nM=-1;
		var bFound=false;
		do{
			nM=(nB+nE)>>1;
			if(aFTCD[nM].nBegin>nTopicId)
				nE=nM-1;
			else if(aFTCD[nM].nEnd<nTopicId)
				nB=nM+1;
			else{
				bFound=true;
				break;
			}
		}while(nB<=nE);
		if(bFound)
			return aFTCD[nM];
	}
	return null;
}

function endLoading()
{
	var oDiv=getElement(gsLoadingDivID);
	if(oDiv)
		oDiv.style.visibility="hidden";
}

function beginLoading()
{
	var oDiv=getElement(gsLoadingDivID);
	if(!oDiv)
	{
		document.body.insertAdjacentHTML("afterBegin",writeLoadingDiv());
		oDiv=getElement(gsLoadingDivID);
	}
	
	if(oDiv)
	{
		oDiv.style.top=document.body.scrollTop;
		oDiv.style.visibility="visible";
	}
}

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 topicInfo(sTopicTitle,sTopicURL)
{
	this.sTopicTitle=sTopicTitle;
	this.sTopicURL=sTopicURL;
	this.equalTo=function(oTI)
	{
		return ((this.sTopicTitle==oTI.sTopicTitle)&&
			(this.sTopicURL==oTI.sTopicURL));
	}
}

function getChunkedFts(nIndex,sKey)
{
	var oCF=null;
	if(nIndex<gaaFCD.length)
	{
		var len=gaaFCD[nIndex].length;
		if(len>0)
		{
			var nB=0;
			var nE=len-1;
			var bFound=false;
			do{
				var nM=(nB+nE)>>1;
				if(compare(sKey,gaaFCD[nIndex][nM].sEndKey)>0)
				{
					nB=nM+1;
				}
				else if(compare(sKey,gaaFCD[nIndex][nM].sStartKey)<0)
				{
					nE=nM-1;
				}
				else{
					bFound=true;
					break;
				}
			}while(nE>=nB);
			if(bFound)
				oCF=gaaFCD[nIndex][nM];
		}
	}
	return oCF;
}

function ftsReady(aFCD,aFTCD)
{
	endLoading();
	gaaFTCD[gnCLF]=aFTCD;
	gaaFCD[gnCLF++]=aFCD;
	setTimeout("loadFD();",1);
}

function putFtsTData(aTopics)
{
	endLoading();
	var oCTF=goCTF;
	if(oCTF)
	{
		oCTF.aTopics=aTopics;
		setTimeout("ftsFindKeyword();",1);
	}
}

function putFtsWData(aFtsContents)
{
	endLoading();
	var oCF=goCF;
	if(oCF)
	{
		updateCache(oCF);
		oCF.aFtsKeys=aFtsContents;
		setTimeout("ftsFindKeyword();",1);
	}
}

function IsStopWord(sCW,aFtsStopArray)
{
	var nStopArrayLen=aFtsStopArray.length;
	var nB=0;
	var nE=nStopArrayLen-1;
	var nM=0;
	var bFound=false;
	var sStopWord="";
	while(nB<=nE){
		nM=(nB+nE);
		nM>>=1;
		sStopWord=aFtsStopArray[nM];
		if(compare(sCW,sStopWord)>0){
			nB=(nB==nM)?nM+1:nM;
		}else{
			if(compare(sCW,sStopWord)<0){
				nE=(nE==nM)?nM-1:nM;
			}else{
				bFound=true;
				break;
			}
		}
	}
	return bFound;
}

function GetStem(szWord)
{
	if(gaFtsStem==null||gaFtsStem.length==0)return szWord;
	var aStems=gaFtsStem;

	var nStemPos=0;
	var csStem="";
	for(var iStem=0;iStem<aStems.length;iStem++){

		if(aStems[iStem].length>=szWord.length-1)	continue;
		nStemPos=szWord.lastIndexOf(aStems[iStem]);
		if(nStemPos>0){
			var cssub=szWord.substring(nStemPos);
			if(cssub==aStems[iStem]){
				csStem=szWord;
				if(szWord.charAt(nStemPos-2)==szWord.charAt(nStemPos-1)){
					csStem=csStem.substring(0,nStemPos-1);
				}else{
					csStem=csStem.substring(0,nStemPos);
				}
				return csStem;
			}
		}
	}
	return szWord;
}

function FtsWriteClassStyle()
{
	var sStyle="<STYLE TYPE='text/css'>\n";
	if (gsBgImage)
		sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
	else
		sStyle+="body {border-top:black 1px solid;}\n";
	sStyle+="P {"+getFontStyle(goErrFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";
	sStyle+="dl {"+getFontStyle(goFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";
	sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
	sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
	sStyle+="A:active {background-color:"+gsABgColor+";}\n";
	sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";
	sStyle+="</STYLE>";
	document.write(sStyle);
}

function window_Unload()
{
	UnRegisterListener2(this,WH_MSG_PROJECTREADY);
	UnRegisterListener2(this, WH_MSG_SEARCHFTSKEY);
}


function onSendMessage(oMsg)
{
	var nMsgId=oMsg.nMessageId;
	if(nMsgId==WH_MSG_SEARCHFTSKEY)
	{
		if(oMsg.oParam)
		{
			if(gsSK==null||gsSK=="")
			{
				gsSK=oMsg.oParam.toLowerCase();
				findFTSKey();
			}
			else
				gsSK2=oMsg.oParam.toLowerCase();
		}
	}
	else if(nMsgId==WH_MSG_PROJECTREADY)
	{
		loadFts();
	}
	return true;
}

if (window.gbWhUtil&&window.gbWhLang&&window.gbWhProxy&&window.gbWhVer&&window.gbWhMsg)
{
	goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
	goErrFont=new whFont("Verdana","8pt","#000000","normal","bold","none");
	goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
	window.onload=window_OnLoad;
	window.onbeforeunload=window_BUnload;
	window.onunload=window_Unload;
	RegisterListener2(this,WH_MSG_PROJECTREADY);
	gbWhFHost=true;
}
else
	document.location.reload();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -