﻿function DataPage(PageRoot,TotalCount,PageNo,PageSize,PageStyle)
{
	
	var DataPageRoot=PageRoot.selectSingleNode("DataSet[@Name='DataPage'&&@Type='"+PageStyle+"']");
	var PageStr="";
	var reg,PageText;
	TotalCount=parseInt(TotalCount);

	if(TotalCount==0)
		PageNo=0;
	else
	{
		PageNo=parseInt(PageNo);
		PageSize=parseInt(PageSize);
		
	}

	if(DataPageRoot!=null)
	{
		
		var DataParamList=DataPageRoot.selectNodes("DataSource/Param");
		var TotalPage=parseInt((TotalCount-1)/PageSize)+1;;
		var PageValue;
		if(TotalCount==0)
			TotalPage=0;

		var DataShowRoot=DataPageRoot.selectSingleNode("DataShow");
		PageStr=(DataShowRoot.xml);

		if(PageStyle=="numtype"||PageStyle=="numtype5")
		{
			var DataSourceRoot=DataPageRoot.selectSingleNode("DataSource");
			var PageListCount=parseInt(DataSourceRoot.getAttribute("PageListCount"));
			var PageSplit=DataSourceRoot.getAttribute("PageSplit");
			var PageListNo=parseInt((PageNo-1)/PageListCount);
			var TotalPageNo=parseInt((TotalPage-1)/PageListCount);
			
			for(var i=0;i<DataParamList.length;i++)
			{
				if(DataParamList[i].getAttribute("Value")!=null)
				{
					PageText=DataParamList[i].getAttribute("Text");
					reg=new RegExp("{#0}","gi");
					PageText=PageText.replace(reg,eval(DataParamList[i].getAttribute("Value")));
				}
				else
				{
					switch(DataParamList[i].getAttribute("Name"))
					{
						case "previouslist":
							if(PageListNo>0)
								PageText="<span onclick=\"javascript:PageReload("+(PageListNo*PageListCount)+");\" >"+DataParamList[i].getAttribute("Text")+"</span>&nbsp;";
							else
								PageText="";
							break;
						case "currentpage":
							PageText="";
							var StartPageNo=PageListNo*PageListCount+1;
							var EndPageNo=(PageListNo+1)*PageListCount;

							if(EndPageNo>TotalPage)
								EndPageNo=TotalPage;

							for(var j=StartPageNo;j<=EndPageNo;j++)
							{
								if(j==PageNo)
								{
									PageText=PageText+DataParamList[i].getAttribute("Text");
									reg=new RegExp("{#0}","gi");
									PageText=PageText.replace(reg,PageNo);

								}
								else
								{
									PageText=PageText+"<span onclick=\"javascript:PageReload("+j+");\" class='GoPage'>"+DataParamList[i+1].getAttribute("Text")+"</span>&nbsp;";
									reg=new RegExp("{#0}","gi");
									PageText=PageText.replace(reg,j);
								}

								if(j<EndPageNo)
									PageText=PageText+PageSplit;

							}
							break;
						case "firstpage":
							if(PageNo>1)
								PageText="<span onclick=\"javascript:PageReload(1);\" class='link' >"+PageText+"</span>";
							break;
						case "lastpage":
							if(PageNo<TotalPage)
								PageText="<span onclick=\"javascript:PageReload("+TotalPage+");\" class='link'>"+PageText+"</span>";
							break;
						case "pagelist":
							break;
						case "nextlist":
							if(TotalPageNo>PageListNo)
								PageText="<span onclick=\"javascript:PageReload("+((PageListNo+1)*PageListCount+1)+");\" >"+DataParamList[i].getAttribute("Text")+"</span>&nbsp;";
							else
								PageText="";
							break;
					}
				}
				
				reg=new RegExp("{#"+DataParamList[i].getAttribute("Name")+"}","gi");
				PageStr=PageStr.replace(reg,PageText);
			}
		}
		else
		{
		    var PageShow=DataPageRoot.getAttribute("PageShow");			
			for(var i=0;i<DataParamList.length;i++)
			{
				PageText=DataParamList[i].getAttribute("Text");				
				if(DataParamList[i].getAttribute("Value")!=null)
				{
					reg=new RegExp("{#0}","gi");
					PageText=PageText.replace(reg,eval(DataParamList[i].getAttribute("Value")));
				}
				else
				{
					
					switch(DataParamList[i].getAttribute("Name"))
					{
						case "firstpage":
							if(PageNo>1)
								PageText="<span onclick=\"javascript:PageReload(1);\" class='link' >"+PageText+"</span>";
							break;
						case "previouspage":
							if(PageNo>1)
								PageText="<span onclick=\"javascript:PageReload("+(PageNo-1)+");\" class='link'>"+PageText+"</span>";
							break;
						case "nextpage":
							if(PageNo<TotalPage)
								PageText="<span onclick=\"javascript:PageReload("+(PageNo+1)+");\" class='link'>"+PageText+"</span>";
							break;
						case "lastpage":
							if(PageNo<TotalPage)
								PageText="<span onclick=\"javascript:PageReload("+TotalPage+");\" class='link'>"+PageText+"</span>";
							break;
					}

					if(PageText==DataParamList[i].getAttribute("Text")&&PageShow!="true")
						PageText="";
					
				}

				
				reg=new RegExp("{#"+DataParamList[i].getAttribute("Name")+"}","gi");				
				PageStr=PageStr.replace(reg,PageText);
			}
		}
	}

	PageStr=PageStr.replace("{#maxNum}",TotalPage);	
	return(PageStr);
}
function PageReload(PageNo)
{
	var srcEl=window.event.srcElement;
	if(typeof(ReLoadDiv)=="object")
	{
		ReLoadDiv.style.display="block";
		var showLeft=document.body.scrollLeft+event.clientX;
		var showTop=document.body.scrollTop+event.clientY;
		if (document.body.scrollLeft+event.clientX>200)
			showLeft=document.body.scrollLeft+event.clientX-200
		if (document.body.scrollTop+event.clientY>100)
			showTop=document.body.scrollTop+event.clientY-100			
		ReLoadDiv.style.posLeft=showLeft
		ReLoadDiv.style.posTop=showTop
		ReloadTD.innerHTML="数据载入中......";			
	}
   var i = 0;
   while (typeof(srcEl.DataSetName)=="undefined")
   { 
    i++;  
 	srcEl=srcEl.parentElement;  
    if (i>80) 
     break;
   }
	var DataSetName=srcEl.DataSetName;
	var ModelNo=0;
	
	for (var i=0;i<jsre.Models.length;i++)
	{
		if(jsre.Models[i]==DataSetName)
		ModelNo=i;
	}	
	setTimeout("PageDataload("+ModelNo+","+PageNo+")",500);
	

}
function PageDataload(ModelNo,PageNo)
{
	try
	{
	
				var srcDiv=FindDiv(ModelNo);				
				srcDiv.PageNo=PageNo;
				srcDiv.fnInit();
		
				if(typeof(ReLoadDiv)=="object")
				{
					ReloadTD.innerHTML="数据载入完成！！";
					setTimeout("HideReloadDiv()",1000);
				}
			
	}
	catch(ep)
	{
		alert(ep.message);
		if(typeof(ReLoadDiv)=="object")
		{
		ReloadTD.style.display="none";
		alert("数据查找超时，请增加新的查找条件！");
		}
	}
}

function SrhBuild(DataSetName)
{
	var SrhValue="";
	var SrhForm=null;
	var ModelNo=0;
	var defaultSrh="";
	for (var i=0;i<jsre.Models.length;i++)
	{
		if(jsre.Models[i]==DataSetName)
		ModelNo=i;
	}
	
	if (typeof(mainTable[ModelNo].srhStr)!="undefined")
		defaultSrh=mainTable[ModelNo].srhStr;
	if (typeof(document.srhform)!="undefined")
	{
		if (typeof(document.srhform[0])!="undefined")
		{
			SrhForm=document.srhform[ModelNo];
		}
		else
			SrhForm=document.srhform;	
	}
	if (typeof(document[DataSetName+".srhform"])!="undefined")
	{
		SrhForm=document[DataSetName+".srhform"];
	}
	if(SrhForm!=null)
	{
		
		for(var i=0;i<SrhForm.length;i++)
		{
			switch(SrhForm[i].type)
			{
				case "hidden":
					if(SrhForm[i].value!="")
					{
						if(SrhValue!="")
							SrhValue+="&";
						SrhValue+=SrhForm[i].name+"="+escape(SrhForm[i].value);
					}
					break;
				case "text":
					if(SrhForm[i].name!="OrgName"&&SrhForm[i].value!="")
					{
						if(SrhValue!="")
							SrhValue+="&";
						if (SrhForm[i].name=="PageNewSize")
						{ PageNewSize=SrhForm[i].value;
						}
						SrhValue+=SrhForm[i].name+"="+escape(SrhForm[i].value);
					}
					break;
				case "radio":
					if(SrhForm[i].checked&&SrhForm[i].value!="")
					{
						if(SrhForm[i].value=="Like"||SrhForm[i].value=="Equal")
						{
							var SrhName=SrhForm[i].name.substring(0,SrhForm[i].name.indexOf("Type"));
							if(typeof(eval("document.srhform."+SrhName))=="object"&&eval("document.srhform."+SrhName).value!="")
							{
								if(SrhValue!="")
									SrhValue+="&";
								SrhValue+=SrhForm[i].name+"="+escape(SrhForm[i].value);
							}
						}
						else
						{
							if(SrhValue!="")
								SrhValue+="&";
							SrhValue+=SrhForm[i].name+"="+escape(SrhForm[i].value);
						}
					}
					break;
				case "select-one":
					for(var j=0;j<SrhForm[i].options.length;j++)
					{
						if(SrhForm[i].options[j].selected&&SrhForm[i].options[j].value!="")
						{
							if(SrhValue!="")
								SrhValue+="&";
							SrhValue+=SrhForm[i].name+"="+escape(SrhForm[i].options[j].value);
							break;
						}
					}
					break;
			}
		}
	}
	if (defaultSrh!="")
		if (SrhValue!="")
			SrhValue=defaultSrh+"&"+SrhValue
		else
			SrhValue=defaultSrh
	return SrhValue;
}

function ClearOrder()
{
	var OrderDataSet=OrderDataRoot.selectSingleNode("DataSet");
	var OrderDataColLen=OrderDataSet.childNodes.length;
	for(var i=0;i<OrderDataColLen;i++)
		OrderDataSet.removeChild(OrderDataSet.childNodes[0]);
}

function FindDiv(ModelNo)
{  
     
     if (typeof(mainTable[ModelNo])=="undefined")
        {
	  mainTable[ModelNo]=mainTable;
	} 
     return mainTable[ModelNo]; 
}

function HideReloadDiv()
{
	ReLoadDiv.style.display="none";
}
function goPageNum(TotalPage)
{	
	var pageNum=document.frmSrh.inputpage.value;	
	if (pageNum!="")
	{
		if (onlyNumber(pageNum))
			{
			TotalPage=parseInt(TotalPage);
			if (pageNum<=TotalPage)
				PageReload(pageNum);
			else
				{
					PageReload(1);
					alert("页数超出范围！");
				}
			}
		else
			alert("输入不正确,支能输入数字!")
	}

}
function count()
{ 
	bar=bar+2;
	amount =amount + line ;
	document.loading.chart.value=amount;
	//document.loading.percent.value=bar+"%" ;
	if (bar<99) 
		{setTimeout("count()",60);} 
	else 
		{
		bar=0;
		line="█" ;
		amount="█" ;		
		} 
	
}