﻿
/*分页展示使用*/
/*思路说明：
在展示商品的HTML中增加三个隐藏文本框 <input type=hidden> 类型的  id固定为：
page_curPage 当前页  
page_perPageCount 每页显示记录数目
page_totalCount 总记录数
这三个控件都要存在，缺少任何一个都不会形成导航的页面HTML
<input id="page_curPage" value="" type="hidden" />
<input id="page_perPageCount" value="10" type="hidden" />
<input id="page_totalCount" value="" type="hidden" />
*/


/*
 参数说明：
 eventPage:获取分页数据的脚本方法，此方法需要有页码Index参数，并且位置位于最后  如:GetGoodByPage(参数1,参数2,index)
 params:eventPage除去页码Index的参数，多个参数用英文逗号(,)分割，并且按照顺序传递
 页码导航模板：
 <div class=""page"">每页显示10条&nbsp;共11页&nbsp;|&nbsp;第一页&nbsp;上一页&nbsp;<a href=""#"">1</a> 2 3 4 5 6 7 8 9 10 下一页&nbsp;最末页&nbsp;第
          <select name=""""><option>1/11</option></select>页</div>          
*/
function GetPaginationHtml(eventPage,params)
{
   if(document.getElementById("page_curPage") == null || document.getElementById("page_curPage").value == "undefined"
   ||document.getElementById("page_perPageCount") == null || document.getElementById("page_perPageCount").value == "undefined"
   ||document.getElementById("page_totalCount") == null || document.getElementById("page_totalCount").value == "undefined")
     return "";   
   var curPage = document.getElementById("page_curPage").value;
   var perPageCount = document.getElementById("page_perPageCount").value;
   var totalCount = document.getElementById("page_totalCount").value;
   //var pageGuide = '<div class="feilei"><input id="chkAll" name="chkAll" type="checkbox" value="" onclick="UserSelectAll(\'chkAll\')" />&nbsp;全选/反选&nbsp;&nbsp;<a href="#">删除</a>&nbsp;<a href="#">下架</a></div>';
   var pageGuide = '';
   /*计算总页数*/
   var totalPage = Math.floor((parseInt(totalCount,10)-1)/parseInt(perPageCount,10)) +1;
   if(totalPage == 1)
   {
      //只有一页
      pageGuide += '<div class="page">每页显示'+perPageCount+'条&nbsp;共1页&nbsp;|&nbsp;<a href="javascript:void(0);">1</a>&nbsp;第<select name=""><option>1/1</option></select>页</div>';      
   }
   else
   {
      //多页
      pageGuide += '<div class="page">每页显示'+perPageCount+'条&nbsp;共'+totalPage+'页&nbsp;|';
      //组织判断页面显示的范围，如果前后都有页码可显示，则前面显示5条 后面显示4条
      var beginPage = 0;
      var endPage = 0;
      if(totalPage <=10) //全部显示
      {
          beginPage = 1;
          endPage = totalPage;
      }
      else
      {
         //页码不能全部显示，只能显示部分
         if(parseInt(curPage,10)+4 >= totalPage) //如果后面页码剩余不足四页，则前面多显示几页
         {
            beginPage = totalPage-9;
            endPage = totalPage;
         }
         if(parseInt(curPage,10)-5 <=1) //前页不足5页，则后面多显示几页
         {
            beginPage = 1;
            endPage = 10;
         }
         if(beginPage == 0 && endPage == 0) //排出以上两种情况
         {
            beginPage = parseInt(curPage,10)-5;
            endPage = parseInt(curPage,10)+4;
         } 
      }    
      //形成HTML
      var numLink = "";
      //参数分析
      var parseParam = GetParams(params);
      var optionSelect = '第<select id="pageSelect" onchange="'+(parseParam==""?eventPage+'(document.getElementById(\'pageSelect\').value)':eventPage+'('+parseParam+',document.getElementById(\'pageSelect\').value)')+'">';
      //var onclickEvent = GetParams(params)==""?eventPage+'('+String(i)+')':eventPage+'('+GetParams(params)+','+String(i)+')'
      //添加首页 和上一页处理      
      if(parseInt(curPage,10) >1)
      {
         numLink+='&nbsp;<a href="javascript:void(0)" onclick="'+(parseParam==""?(eventPage+'('+String(1)+')'):(eventPage+'('+parseParam+','+String(1)+')'))+'">第一页</a>&nbsp;';   
         numLink+='&nbsp;<a href="javascript:void(0)" onclick="'+(parseParam==""?(eventPage+'('+String(parseInt(curPage)-1)+')'):(eventPage+'('+parseParam+','+String(parseInt(curPage)-1)+')'))+'">上一页</a>&nbsp;';         
      }
      else
      {
         numLink+='&nbsp;<a href="javascript:void(0)">第一页</a>&nbsp;';   
         numLink+='&nbsp;<a href="javascript:void(0)">上一页</a>&nbsp;';  
      }
      //页码导航
      for(var i=beginPage;i<=endPage;i++)
      {
         if(parseInt(curPage,10) == i)
         {
            numLink +='&nbsp;<a href="javascript:void(0)" style="text-decoration:none">'+String(i)+'</a>&nbsp;'; 
            continue;
         }      
         numLink +='&nbsp;<a href="javascript:void(0)" onclick="'+(parseParam==""?(eventPage+'('+String(i)+')'):(eventPage+'('+parseParam+','+String(i)+')'))+'">'+String(i)+'</a>&nbsp;';         
      }
      //添加末页 和下一页处理      
      if(parseInt(curPage,10) <parseInt(totalPage))
      {
         numLink+='&nbsp;<a href="javascript:void(0)" onclick="'+(parseParam==""?(eventPage+'('+String(parseInt(curPage)+1)+')'):(eventPage+'('+parseParam+','+String(parseInt(curPage)+1)+')'))+'">下一页</a>&nbsp;';   
         numLink+='&nbsp;<a href="javascript:void(0)" onclick="'+(parseParam==""?(eventPage+'('+String(parseInt(totalPage))+')'):(eventPage+'('+parseParam+','+String(parseInt(totalPage))+')'))+'">最末页</a>&nbsp;';         
      }
      else
      {
         numLink+='&nbsp;<a href="javascript:void(0)">下一页</a>&nbsp;';   
         numLink+='&nbsp;<a href="javascript:void(0)">最末页</a>&nbsp;';  
      }
      for(var n=1;n<=totalPage;n++)
      {
         if(parseInt(curPage,10) == n)
         {
            optionSelect += '<option value="'+String(n)+'" selected="selected">'+String(n)+'/'+String(totalPage)+'</option>';
            continue;
         }
         optionSelect += '<option value="'+String(n)+'">'+String(n)+'/'+String(totalPage)+'</option>';
      }
      optionSelect+="</select>";
      pageGuide += numLink+optionSelect+"页</div>";      
   }
   return pageGuide;
}

function GetParams(param)
{
   if(param == "")
     return "";
   if(param.indexOf(',')<0)
     return "'"+param+"'";
   var paramAry = param.split(',');
   var params = "";
   for(var m=0;m<paramAry.length;m++)
   {
      params +=",'"+paramAry[m]+"'";      
   }
   return params.substring(1,params.length);
}