//HTML Outline对象
var m_objSrcContent = null;
//HTML Column对象
var m_arSingleRec = null;
//获取分页参数
var m_nPageSize   = 2; //常量每页条数
var m_nRecSize   = 1; //常量每行条数


//设定XML的检索方式
//DocumentsDataSrc.XMLDocument.setProperty("SelectionLanguage", "XPath"); 
//检索所有的节点
var m_arNodes = null;

//记录数
var m_nRecCount   = 0;
//总页数
var m_nPageCount = 0; 
//页码文字输出区
var CP = document.getElementById("CP"); 

//初始化各种分页变量
function initPage(){
	m_objSrcContent = document.all("OutlineContent");
	if(m_objSrcContent == null){
		alert( "没有定义Outline区域！分页代码发生异常！" );
		return false;
	}
	m_arSingleRec = m_objSrcContent.all("ColumnContent");
	if(m_arSingleRec == null){
		//alert( "没有定义Column区域！分页代码发生异常！" );
		//return false;
	}
	//获取分页参数
	m_nPageSize   = 20; //常量每页条数
	if(m_objSrcContent.PageSize && !isNaN(m_objSrcContent.PageSize)){
		m_nPageSize = parseInt(m_objSrcContent.PageSize);
	}
	m_nRecSize   = 1; //常量每行条数
	if(m_arSingleRec != null && m_arSingleRec.length)m_nRecSize = m_arSingleRec.length;

	//提取数据
	//默认提取所有的数据
	var sPath = "//D";
	m_arNodes = DocumentsDataSrc.XMLDocument.selectNodes(sPath);
	
	m_nRecCount   = m_arNodes.length;
	m_nPageCount = 0; //计算总页数
	if(m_nRecCount%m_nPageSize>0)
		m_nPageCount = (m_nRecCount - (m_nRecCount%m_nPageSize))/m_nPageSize +1;
	else
		m_nPageCount = m_nRecCount/m_nPageSize; //取得当前页对象并

	//默认定位到第一页
	toPage(1);

	//将标志位设回
	m_bFirst  = false;
}

//===========getCurrPage(_currentPage)规范跳转页码函数;_currentPage 跳转页码输入值===
function getCurrPage(_currentPage){
	var cPage =1;
	if( _currentPage<=0 || _currentPage=="")
		cPage =1;
	else if(_currentPage>m_nPageCount)
		cPage = m_nPageCount;
	else
		cPage = _currentPage;
	return cPage;
}

//===============goto()直接跳转函数=============================================
function goto(){
		toPage(CP.value);
}

//===============toPage(_pageNo)跳转函数;_pageNo要跳转的页号====================
function toPage(_pageNo){
	if(m_nRecCount <= 0)return false;
	//删除原有代码
	//removeAllOldNodes();
	
	var cP = getCurrPage(_pageNo);
	var startPos = cP*m_nPageSize - m_nPageSize;
	var endPos = 0;
	if(cP*m_nPageSize>m_nRecCount)
		endPos=m_nRecCount;
	else
		endPos = cP*m_nPageSize;

	var nOutlineCount = 0;
	for(var i=startPos; i<endPos; i++){
		var nTemp = createItemHTML(i, endPos, nOutlineCount);
		if(nTemp <= 0)break;
		i = i + nTemp;		
		i--;
		nOutlineCount++;
	}

	//异常剩下的元素
	for( ;!m_bFirst && nOutlineCount<m_nPageSize; nOutlineCount++)
	{
		if(m_arOutLine.length <= nOutlineCount)break;
		m_arOutLine[nOutlineCount].style.display = "none";
	}
	CP.value = cP;
	showPageLineNum();
}

//===========showPageLineNum()页面显示状态条函数==================
function showPageLineNum(){
	var pL = "";
	pL += "<table width='90%' border='0' cellspacing='0' cellpadding='0'>";
	pL += '<tr align="left">';
	pL += '<td class="hui" align="left" witth="25%">Page' + CP.value + '/' + m_nPageCount + '&nbsp;&nbsp;&nbsp;&nbsp;Total <font color="#FF7F00">' + m_nRecCount + '</font></td>';
	if(CP.value!=1){
		pL+='<td align="right" class="pages" width="8%"><a href=# onclick=\"toPage(1)\" class="pages">[ First ]</a></td>';
		pL+='<td align="right" class="pages" width="12%"><a href=# onclick="toPage('+(CP.value-1)+')" class="pages">[ Previous ]</a></td>'
	}
	else{
		pL+='<td align="right" class="pages" width="8%">[ First ]</td>';
		pL+='<td align="right" class="pages" width="12%">[ Previous ]</td>';
	}
	/*
	for(var pageN=1;pageN<=m_nPageCount;pageN++){
		if(pageN==CP.value){
		pL+="<font color=red><b>"+pageN+"</b></font>&nbsp;";
		}
		else
		pL += "<a href=# onclick=\"toPage("+pageN+")\">"+pageN+"</a>&nbsp;";
	}
	*/
	if(CP.value<m_nPageCount){
		pL+='<td align="right" width="8%"><a href=# onclick=\"toPage('+((CP.value)*1+1)+')\" class="pages">[ Next ]</a></td>';
		pL+='<td align="right" width="8%"><a href=# onclick=\"toPage('+m_nPageCount+')\" class="pages">[ Last ]</a></td>';
	}
	else{
		pL+='<td align="right" width="8%" class="pages">[ Next ]</td>';
		pL+='<td align="right" class="pages" width="8%">[ Last ]</td>';
	}
	//pL += "共 "+m_nPageCount+" 页&nbsp;共"+m_nRecCount+"条记录";
	pL += "</tr></table>";
	//alert(pL);
	var showPageLine = document.getElementsByName("pl");
	for(var pls=0;pls<showPageLine.length;pls++){
	showPageLine[pls].innerHTML = pL;}
}

//删除原有的节点
function removeAllOldNodes(){
	var arTemp = document.all("OutlineClone");
	if(!arTemp)return false;

	if(arTemp.length){
		for(var i=arTemp.length-1; i>=0; i--){
			arTemp[i].removeNode(true);
		}
	}else{
		arTemp.removeNode(true);
	}
	return true;
}

var m_bFirst    = true;
var m_arOutLine = new Array();
var date = new Date();
/**
  * 复制分页节点
  *	
**/
function createItemHTML(_nCurrIndex, _nEndIndex, _nOutlineIndex){
	if(m_arNodes.length < _nCurrIndex)return 0;
	
	var objContent = null;
	if(m_bFirst){//创建节点
		//复制Outline节点
		objContent = m_objSrcContent.cloneNode(true);
		//设置ID
		objContent.id = "OutlineClone";	
		m_arOutLine[m_arOutLine.length] = objContent;
	}
	else
	{
		if(_nOutlineIndex >= m_arOutLine.length)
		{
			alert("算法有误！");
			return;
		}
		objContent = m_arOutLine[_nOutlineIndex];
	}
	
	//设置Display
	objContent.style.display = "";
	//修改ID
	var arSingleRec = objContent.all("ColumnContent");
	if(arSingleRec==null)arSingleRec = objContent
	var recCount = 1;
	if(arSingleRec.length)recCount = arSingleRec.length;
	var i = 0;
	for(i=0; i<recCount; i++){
		//判断当前索引是否有效
		if(m_arNodes.length <= (_nCurrIndex+i) || _nCurrIndex+i >= _nEndIndex)break;		


		//获取当前的XML节点
		var xmlNode = m_arNodes[_nCurrIndex+i];
		//遍历所有属性子节点，从XML中提取数据
		var objSingleRec = null;
		if(recCount>1)objSingleRec = arSingleRec[i];
		else objSingleRec = arSingleRec;
		var arAllField = objSingleRec.all;
		for(var j=0; j<arAllField.length; j++){
			var sFieldName = arAllField[j].FieldName;
			var sTagName = arAllField[j].tagName;
	
			if(sFieldName){
				var sValue = "";
				//获取属性节点
				var xmlNodeTemp = xmlNode.selectSingleNode(sFieldName);
				if(xmlNodeTemp)sValue = xmlNodeTemp.text;

				if (sFieldName.toUpperCase() == 'S')
				{
					newDate = getDateTime(sValue)
					//alert(newDate);
				}

				switch(sTagName){//暂时只支持四种HTML置标定义数据源
					case "A":
						arAllField[j].href = sValue;
						arAllField[j].style.fontSize = '14px';
						arAllField[j].parentElement.style.paddingBottom = '10px';
						break;
					case "SPAN":
					case "TD":
						if (sFieldName == 'NEWIMG')
						{
							var showDays = 3;
							//alert(arAllField[j].DAYS);
							if (arAllField[j].DAYS != "")
							{
								showDays = arAllField[j].DAYS;
							}
							if (date.getTime() - newDate.getTime() <= showDays * 24 * 60 * 60 * 1000)
								arAllField[j].innerHTML = "<img src='/images/new.gif' align='absmiddle'>";
							else
								arAllField[j].innerHTML = "";
						}
						else
						{
							arAllField[j].innerHTML = sValue;
						}
						break;
					case "IMG":
						arAllField[j].src = sValue;
						break;
					default:
						break;
				}
			}
		}
	}
	//将没有填充内容的Column隐藏
	for(; arSingleRec.length && i<arSingleRec.length; i++)arSingleRec[i].style.display = "none";

	

	if(m_bFirst)m_objSrcContent.insertAdjacentElement("beforeBegin", objContent);
	return i;
}


function getDateTime(sDate) {
	sArray = sDate.split("-");
	var newDate = new Date(sArray[0], sArray[1]-1, sArray[2]); 
	return newDate;
}

initPage();
