function Reg(sStr,sReg,sRe) {
	var sS=sStr,sR=sReg,sRe=sRe;
	if ((sS.length>0)&&(sR.length>0)) {
		eval("re=/"+sR+"/gim;");
		sS=sS.replace(re,sRe);
	}
	return (sS);
}
function FormatReg(sReg) {
	var sR=sReg;
	var sF=new Array ("/",".","+","[","]","{","}","$","^","?","*");
	if (sR.length>0) {		
		for (i=0;i<=sF.length;i++) {
			sR=sR.replace(sF[i],"\\"+sF[i]);
		}
		sR="("+sR+")";		
	}
	return (sR);
}
function FormatNum(sNum,isMin,isMax,iMinNum,iMaxNum) {
	var iN,iTMin,iTMax,sN=""+sNum,iMin=iMinNum,iMax=iMaxNum;
	if (sN.length>0) {
		iN=parseInt(sN,10);
		iN=(isNaN(iN))?iMin:iN;
		iTMin=(iN<iMin)?iMin:iN;
		iTMax=(iN>iMax)?iMax:iN;
		iN=(isMin==1)?iTMin:iN;
		iN=(isMax==1)?iTMax:iN;
	}
	else {
		iN=iMin;
	}
	return (iN);
}
function PageJump(sPI,sU,sTP,iPC,iPI) {
	var sPL,sPV,sP;
	eval("sPL=document.getElementsByName(\""+sPI+"\").length;");
	if (sPL>1) {
		for (i=0;i<sPL;i++)	{
			eval("sPV=document.all."+sPI+"[i].value;");
			sP=FormatNum(sPV,1,1,0,iPC);
			if (sP>0) {
				location.href(sU.replace(sTP,sP));
				break;
			}
		}
	}
	else {
		eval("sPV=document.all."+sPI+".value;");
		sP=FormatNum(sPV,1,1,0,iPC);
		if (sP>0&&(sP!=iPI)) {
			location.href(sU.replace(sTP,sP));
		}
	}
}

function ShowoPage(iRecCount,iPageSize,iPageNum,sPageStart,sPageEnd,sU,sPageInput,sLPageFrist_D,sLPageFrist_E,sLPagePrev_D,sLPagePrev_E,sLPageNext_D,sLPageNext_E,sLPageLast_D,sLPageLast_E,sLPageText_D,sLPageText_E,sLPageTextF_D,sLPageTextF_E,sLPageSelect_D,sLPageSelect_E,sCssPageText,sCssPageInput,sCssPageSelect,sHtml) { 
	sTPage="{$Page}";
	sTPageCount="{$PageCount}";
	sTRecCount="{$RecCount}";
	sTPageSize="{$PageSize}";
	sTPageFrist="{$PageFrist}";
	sTPagePrev="{$PagePrev}";
	sTPageNext="{$PageNext}";
	sTPageLast="{$PageLast}";
	sTPageText="{$PageText}";
	sTPageTextF="{$PageTextF}";
	sTPageInput="{$PageInput}";
	sTPageSelect="{$PageSelect}";
	sTPageNum="{$PageNum}";
	iRC=FormatNum(iRecCount,1,0,0,0);
	iPS=FormatNum(iPageSize,1,0,1,0);
	iPN=FormatNum(iPageNum,0,0,0,0);
	iPC=(iRC%iPS==0)?(iRC/iPS):(FormatNum((iRC/iPS),1,0,0,0)+1);
	sPI=(sPageInput.length>0)?sPageInput:"Page";
	sPS=(sPageStart.length>0)?sPageStart:sPI+"=";
	sPE=(sPageEnd.length>0)?sPageEnd:"";
	sTP=(sTPage.length>0)?sTPage:"{#Page}";
	sU=(sU.length>0)?sU:""+document.location;
	if (sU.indexOf(sPS)==-1) {	
		sU+=(sU.indexOf("?")==-1)?"?"+sPS+sTP:"&"+sPS+sTP;
		iPI=1;
	}
	else {
		sReg="(\\S.*)"+FormatReg(sPS)+"(\\d*)"+FormatReg(sPE)+"(\\S.*|\\S*)";
		sPageIndex=Reg(sU,sReg,"$3");
		sU=sU.replace(sPS+sPageIndex+sPE,sPS+sTP+sPE);
		iPI=FormatNum(sPageIndex,1,1,0,iPC);
	}
	PrevP=FormatNum((iPI-1),1,1,1,iPC);
	NextP=FormatNum((iPI+1),1,1,1,iPC);
	if (iPI<=1&&iPC<=1) {
		FirstPageU=sLPageFrist_D;  
		PrevPageU=sLPagePrev_D;
		NextPageU=sLPageNext_D;
		LastPageU=sLPageLast_D;
	}
	else if (iPI==1&&iPC>1) {
		FirstPageU=sLPageFrist_D; 
		PrevPageU=sLPagePrev_D;
		NextPageU="<A href=\""+sU.replace(sTPage,NextP)+"\">"+sLPageNext_E+"</A>";
		LastPageU="<A href=\""+sU.replace(sTPage,iPC)+"\">"+sLPageLast_E+"</A>";
	}
	else if (iPI==iPC) {
		FirstPageU="<A href=\""+sU.replace(sTPage,1)+"\">"+sLPageFrist_E+"</A>";
		PrevPageU="<A href=\""+sU.replace(sTPage,PrevP)+"\">"+sLPagePrev_E+"</A>";
		NextPageU=sLPageNext_D;
		LastPageU=sLPageLast_D;
	}
	else {
		FirstPageU="<A href=\""+sU.replace(sTPage,1)+"\">"+sLPageFrist_E+"</A>";
		PrevPageU="<A href=\""+sU.replace(sTPage,PrevP)+"\">"+sLPagePrev_E+"</A>";
		NextPageU="<A href=\""+sU.replace(sTPage,NextP)+"\">"+sLPageNext_E+"</A>";
		LastPageU="<A href=\""+sU.replace(sTPage,iPC)+"\">"+sLPageLast_E+"</A>";
	}	
	PageSelect="<Select class=\""+sCssPageSelect+"\" name=\""+sPI+"\" onChange=\"PageJump(\'"+sPI+"\',\'"+sU+"\',\'"+sTP+"\',"+iPC+","+iPI+")\">";
	PageText="";
	PageInput="<Input class=\""+sCssPageInput+"\" type=\"text\" name=\""+sPI+"\" size=\"5\" maxlength=\"10\" onkeydown=\"if (event.keyCode==13) PageJump(\'"+sPI+"\',\'"+sU+"\',\'"+sTP+"\',"+iPC+","+iPI+")\">";
	if (iPageNum<0) {
		iPageNum=Math.abs(iPageNum);
		PageStart=(iPI%iPageNum==0)?(iPI/iPageNum):(FormatNum((iPI/iPageNum),1,0,0,0));
		PageStart=(PageStart*iPageNum==iPI)?((PageStart-1)*iPageNum+1):(PageStart*iPageNum+1);
		PageEnd=FormatNum(PageStart+iPageNum,0,1,0,iPC)
	}
	else if (iPageNum==0) {
		PageStart=1;
		PageEnd=iPC;
	}
	else {
		PageStart=FormatNum((iPI-iPN),1,0,1,0);
		PageEnd=FormatNum((PageStart+iPN*2),0,1,0,iPC);
		PageStart=(PageEnd==iPC)?FormatNum((PageEnd-iPN*2),1,0,1,0):PageStart;
	}
	if (iPC>=1) {
		for (i=PageStart;i<=PageEnd;i++) {
			if (i!=iPI) {
				XX="<span class=\""+sCssPageText+"\"><A  href=\""+sU.replace(sTPage,i)+"\">"+sLPageText_E.replace(sTPageNum,i)+"</A></span>";
				PageText+=sLPageTextF_E.replace(sTPageTextF,XX);
				PageSelect+="<Option value=\""+i+"\">"+sLPageSelect_E.replace(sTPageNum,i)+"</Option>";
			}
			else {
				XX="&nbsp;<span class=\""+sCssPageText+"\">"+sLPageText_D.replace(sTPageNum,i)+"</span>&nbsp;";
				PageText+=sLPageTextF_D.replace(sTPageTextF,XX);
				PageSelect+="<Option Selected=\"Selected\">"+sLPageSelect_D.replace(sTPageNum,i)+"</Option>";
			}
		}
	}
	PageSelect+="</Select>";
	var s=sHtml;
	s=s.replace(sTPage,iPI);
	s=s.replace(sTPageCount,iPC);
	s=s.replace(sTRecCount,iRC);
	s=s.replace(sTPageSize,iPS);
	s=s.replace(sTPageFrist,FirstPageU);
	s=s.replace(sTPagePrev,PrevPageU);
	s=s.replace(sTPageNext,NextPageU);
	s=s.replace(sTPageLast,LastPageU);
	s=s.replace(sTPageText,PageText);
	s=s.replace(sTPageInput,PageInput);
	s=s.replace(sTPageSelect,PageSelect);
	document.write (s);
}