/**
 * OK
 * 分页查询js,需要载入prototype.js
 */
var PageQuery = {
	showProgress:true,
/**
 * 分页查询刷新按钮事件
 * formName: 表单名称
 * showProgress:是否显示进度条
 */
  refresh: function (formName) {
    var pageForm = Document.getObject(formName);
    var url = pageForm.action;
    if (url.indexOf("?") == -1) {
      url = url.concat("?refresh=1");
    }
    else {
      url = url.concat("&refresh=1");
    }
    var frameName = null;
    if(pageForm.target) frameName = pageForm.target;
    if (PageQuery.showProgress) {
      Document.link(url, "数据查询中",frameName);
    }
    else {
      Document.link(url,null,frameName);
    }
  },

/**
 * 返回到分页查询页面
 * url:分页查询动作
 * frameName:frame名称
 * showProgress:是否显示进度条
 */
  link:function(url,frameName) {
    if (PageQuery.showProgress) {
      Document.link(url, "数据查询中",frameName);
    }
    else {
      Document.link(url,frameName);
    }
  } ,

/**
 * 分页查询按钮事件
 * formName: 表单名称
 * showProgress:是否显示进度条
 */
  search:function (formName) {
    var pageForm = Document.getObject(formName);
    pageForm.pageNumber.value = '0';
    if (PageQuery.showProgress) {
      Document.submit(formName,"数据查询中",pageForm.action);
    }
    else {
      Document.submit(formName,null,pageForm.action);
    }
  },

/**
 * 分页查询专用js,上页，下页，首页，尾页，按钮中使用
 * pageNum:到第几页
 * formName:提交的分页查询表单
 * showProgress:是否显示进度条
 */
  pageTo: function (pageNum, formName) {
    var pageForm = Document.getObject(formName);
    var evt=EventUtil.getEvent();
    var button = evt.srcElement || evt.target;
    var pageNumInput =  PageQuery.getPageNumber(button);
    pageNumInput.value = pageNum;
    pageForm.pageNumber.value = pageNum;
    if (PageQuery.showProgress) {
      Document.submit(formName, "数据查询中",pageForm.action);
    }
    else {
      Document.submit(formName,null,pageForm.action);
    }
  },

/**
 * 分页查询专用js,Go按钮中使用
 * pageCount:总页数
 * formName:提交的分页查询表单
 * showProgress:是否显示进度条
 */
  pageGo: function (pageCount, formName) {
    var pageForm = Document.getObject(formName);
    var evt=EventUtil.getEvent();
    var button = evt.srcElement || evt.target;;
    var pageNumInput =  PageQuery.getPageNumber(button);
    var pageNum = pageNumInput.value;
    if (pageNum < 1 || pageNum > pageCount) {
      alert('请输入正确的页数！');
      pageNumInput.select();
    }
    else {
      pageForm.pageNumber.value = pageNum;
      if (PageQuery.showProgress) {
        Document.submit(formName, "数据查询中",pageForm.action);
      }
      else {
        Document.submit(formName,null,pageForm.action);
      }
    }
  },

  /**
  * 分页查询页面上的excel导出
  * formName:分页查询表单
  * exportAllPage:是否导出所有页
  * showProgress:是否显示进度条
  */
  excelExport:function(formName,exportAllPage,showProgress){
    var url = (exportAllPage)?"exportAllPage.system":"exportCurrentPage.system";
    var pageForm = Document.getObject(formName);
    if(pageForm.pageNumber.value==0){
      alert('没有导出的记录');
      return;
    }
    if (showProgress) {
      Document.submit(formName, "数据导出中",url);
    }
    else {
      Document.submit(formName,null,url);
    }
  } ,


  changeSize:function(formName,object){
    var pageForm = Document.getObject(formName);
/*
    var url = pageForm.action;

    if (url.indexOf("?") == -1) {
      url = url.concat("?refresh=1");
    }
    else {
      url = url.concat("&refresh=1");
    }
    url = url.concat("&pageSize="+object.value);

    if (PageQuery.showProgress) {
      Document.link(url, "数据查询中");
    }
    else {
      Document.link(url);
    }
*/
    pageForm.pageNumber.value = "1";
    pageForm.pageSize.value = object.value;
    if (PageQuery.showProgress) {
      Document.submit(formName, "数据查询中",pageForm.action);
    }
    else {
      Document.submit(formName,null,pageForm.action);
    }


  },

  /**
   * 获得页码输入框
   * @param object
   */
  getPageNumber:function(object){
    var element = object.parentElement;
    while(element.tagName!="TR"){
      element=element.parentElement;
    }
    return element.children[4].children[0];

  },

  /**
   * 翻页导出excel
   * @param tableID 翻页表格
   * @param all 是否导出所有页 false 当前, true 所有
   * @param target 导出目标iframe
   */
  exportExcel:function(tableID,all,target){
    var pageTable = Document.getObject(tableID);
    if(!pageTable) {
      alert("导出表格不存在");
      return;
    }
    var pageQueryForm = Document.getObject(pageTable.getAttribute("pageForm"));
    var pageRelativeURI = pageQueryForm.elements["pageRelativeURI"];
    var row;
    var cell;
    var form=document.createElement("<form name='pageExportExcelForm' style='display:none'>");
    form.method = "post";
    form.action = "pageQueryExport.system";
    form.target=target;
    var canExport=false;
    for(var i=0;i<pageTable.rows.length;i++){
      row=pageTable.rows[i] ;
      if(row.className == 'title') {
        for(var j=0;j<row.cells.length;j++){
          cell = row.cells[j];
          var field=cell.getAttribute("field");
          if(field){
            canExport=true;
            var columnName = document.createElement("<input name='columnName' type='hidden'>");
            var index = field.indexOf(".");
            columnName.value=(index!=-1)? field.substr(index+1):field;
            form.appendChild(columnName);
            var columnComment = document.createElement("<input name='columnComment' type='hidden'>");
            columnComment.value=cell.innerHTML;
            form.appendChild(columnComment);
          }
        }
      }
    }
    if(canExport){
      var uri=document.createElement("<input name='pageRelativeURI' type='hidden'>");
      uri.value=pageRelativeURI.value;
      form.appendChild(uri);
      var pageExportAll =document.createElement("<input name='pageExportAll' type='hidden'>");
      pageExportAll.value=all;
      form.appendChild(pageExportAll);
      document.body.appendChild(form);
      form.submit();
      document.body.removeChild(form);
      form=null;
    }
    else{
      alert('导出设置错误')
    }
  }

}

