// -----------------------------------------------------
// public变量
// -----------------------------------------------------
var gridRenderObj;// 需要赋值，document.getElementById(XX)，一般为一个div，div内包含一个table
var gridBean; // 需要赋值，gridBean为一个数组，与后台传递的bean field命名相同，以此确定界面显示的字段。一般为：gridBean=['id','name',....]
var ajaxUrl; // 需要赋值，后台访问路径，一般为：<%=ctx%>/XXaction.do
var ajaxUrlParams; // 可不赋，url后缀参数。如需加载，定义ajaxUrlParams=['参数名1','参数名2']，ajax_page_hs.js会自动根据数组内的id名加上参数

// -----------------------------------------------------
// private变量，无需改变
// -----------------------------------------------------
var gridRenderObjHtml; // gridRenderObj.innerHTML，持有需要渲染的gird table样式，以及grid title样式
var ajaxUrlWithParams; // 后台访问路径 + 分页参数 + ajaxUrlParams中自定义的参数
var initPage = "1";// 页面加载，默认第一页

// -----------------------------------------------------
// public方法
// -----------------------------------------------------
/**
* 页面加载时调用，调用方法：window.onload=ajaxload;
*/
function ajaxload() {
	setGridRenderObj(null);
	setGridBean(null);
	doAjax(initPage);
}

/**
* 导航按钮点击触发方法，如需定义其他查询按钮，需调用该方法。一般为：doAjax('1')
*/
function doAjax(_currentPage) {
	setAjaxUrl(null, _currentPage);
	gotoPageAjax(ajaxUrlWithParams);
}

/**
* @param: gridRenderObj
*		document.getElementById(XX)，一般为一个div，div内包含一个table
*/
function setGridRenderObj(_gridRenderObj) {
	if(_gridRenderObj!=undefined) gridRenderObj = _gridRenderObj;
	
	if(gridRenderObj==undefined){alert("grid渲染对象为null(ajax_page_hs.js.setGridRenderObj())");return;}
	gridRenderObjHtml = gridRenderObj.innerHTML;
	gridRenderObjHtml = gridRenderObjHtml.toUpperCase();
	
	if(gridRenderObjHtml.indexOf("</TABLE>")<0){alert("grid渲染对象innerHTML应该为一个table (ajax_page_hs.js.setGridRenderObj())");return;}
	gridRenderObjHtml = gridRenderObjHtml.substring(0, gridRenderObjHtml.indexOf("</TR>")+5);
	if(gridRenderObjHtml.indexOf("<TBODY>")>-1)gridRenderObjHtml = gridRenderObjHtml.replace("<TBODY>","");
}

/**
* @param: gridBean
*		gridBean为一个数组，与后台传递的bean field命名相同，以此gridBean确定界面显示的字段。一般为：gridBean=['id','name',....]
*/
function setGridBean(_gridBean) {
	if(_gridBean!=undefined) gridBean = _gridBean;
	if(gridBean==undefined){alert("gridBean数组为null(ajax_page_hs.js.setGridBean())");return;}
}

/**
* @param: ajaxUrl 
* 		后台访问路径，一般为：<%=ctx%>/XXaction.do，
*		如需加载参数，需定义ajaxUrlParams=['参数名1','参数名2']，ajax_page_hs.js会自动根据数组内的id名加上参数
*/
function setAjaxUrl(_ajaxUrl, _currentPage) {
	if(_ajaxUrl!=undefined) ajaxUrl = _ajaxUrl;
	if(ajaxUrl==undefined){alert("ajaxUrl后台访问路径为null(ajax_page_hs.js.setAjaxUrl())");return;}
	
	if(_currentPage!=undefined) currentPage = _currentPage;
	if(currentPage==undefined){alert("currentPage当前第几页为null(ajax_page_hs.js.setAjaxUrl())");return;}
	
	ajaxUrlWithParams = ajaxUrl+"?currentPage="+currentPage;
	
	// 加上自定义参数
	if(ajaxUrlParams!=undefined) {
		for(var i =0;i < ajaxUrlParams.length;i++) {
//			alert(ajaxUrlParams[i]);
//			alert(document.getElementById(ajaxUrlParams[i]).value);
			if(document.getElementById(ajaxUrlParams[i])!=null)
			     ajaxUrlWithParams += "&"+ajaxUrlParams[i]+"="+document.getElementById(ajaxUrlParams[i]).value;
		}
	}
}

// -----------------------------------------------------
// private方法
// -----------------------------------------------------
/**
* Ajax回调函数
*/
function populateList() {
	if (http_request.readyState == 4) {
		if (http_request.status != 200) {
			alert("对不起，您所请求的页面发生异常，请刷新页面后重试！");
			return;
		}
		
		var doc = http_request.responseXML;
		var currentPage = doc.getElementsByTagName("currentPage")[0].firstChild.data;
		var totalPage = doc.getElementsByTagName("totalPage")[0].firstChild.data;
		var prePage = parseInt(currentPage) - 1;
		var nextPage = parseInt(currentPage) + 1;
		var entityList = doc.getElementsByTagName("entity");
		
		var innerHTML = gridRenderObjHtml;
		
		// 组装grid datas
		if ((entityList != null) && (entityList.length != 0)) {
			for (var i = 0; i < entityList.length; i++) {
				innerHTML += "<tr onmouseout=\"javascript:this.bgColor='#e8e8e8'\" onmouseover=\"javascript:this.bgColor='#E1E2FD'\">";
				var entity = entityList[i];
				for (var j = 0; j < gridBean.length; j++) {
					innerHTML += "<td bgcolor='#ffffff' align='center' style='font-weight:500'>" + entity.getAttribute(gridBean[j]) + "</td>";
				}
				innerHTML += "</tr>";
			}
			innerHTML += "</table>";
			
			// 组装分页导航
			innerHTML += "<br><table width='100%' border='0' cellpadding='0' cellspacing='1'>";
			innerHTML += "<tr><td align='center'>";
			if(parseInt(currentPage)!=1){
				innerHTML += "<a href=\"javascript:void(0)\" onClick=\"doAjax('1')\">第一页</a> ";
				innerHTML += "<a href=\"javascript:void(0)\" onClick=\"doAjax('" + prePage + "')\">上一页</a> ";
			}
			if(parseInt(currentPage)!=totalPage){
				innerHTML += "<a href=\"javascript:void(0)\" onClick=\"doAjax('" + nextPage + "')\">下一页</a> ";
				innerHTML += "<a href=\"javascript:void(0)\" onClick=\"doAjax('" + totalPage + "')\">最末页</a> ";
			}
			innerHTML += "当前第" + currentPage + "页 共" + totalPage + "页";
			innerHTML += "</td></tr></table>";
		}
		// 没有记录
		else {
			innerHTML += "</table>";
			innerHTML += "<br><center><strong><label style='font-size:12px'>查询完毕，没有相关记录</label></strong></center><br>";
		}
		
		gridRenderObj.innerHTML = innerHTML;
	}
}
/**
* ajax提交，回调函数为populateList
*/
function gotoPageAjax(url) {
	send_request("get", url, null, "XML", populateList);
}

