﻿/*

showPages v1.1
=================================

Infomation
----------------------
Author : Lapuasi
E-Mail : lapuasi@gmail.com
Web : http://www.lapuasi.com
Date : 2005-11-17


Example
----------------------
var pg = new showPages('pg');
pg.pageCount = 12; //定义总页数(必要)
pg.argName = 'p';    //定义参数名(可选,缺省为page)
pg.printHtml();        //显示页数


Supported in Internet Explorer, Mozilla Firefox
*/

function showPages(name) { //初始化属性
this.name = name;      //对象名称
this.page = 1;         //当前页数
this.pageCount = 1;    //总页数
this.argName = 'page'; //参数名
this.showTimes = 1;    //打印次数
this.pos=1;//参数位置
this.par="";//参数ID
this.par1="";//参数1
this.par2a="";//参数2 a
this.par2b="";//参数2 b
this.par2c="";//参数2 c
this.par2d="";//参数2 d
this.par2e="";//参数2 e
this.par3="";//参数3
this.con="";//查询条件
}

showPages.prototype.getPage = function(){ //丛url获得当前页数,如果变量重复只获取最后一个
//var args = location.search;
//var reg = new RegExp('[\?&]?' + this.argName + '=([^&]*)[ && #36;]?', 'gi');
//var chk = args.match(reg);
//this.page = RegExp.$1;
this.page=Number(document.getElementById(this.par).innerHTML);
}
showPages.prototype.checkPages = function()
{ 
    //进行当前页数和总页数的验证
    if (isNaN(parseInt(this.page))) this.page = 1;
    if (isNaN(parseInt(this.pageCount))) this.pageCount = 1;
    if (this.page < 1) this.page = 1;
    if (this.pageCount < 1) this.pageCount = 1;
    if (this.page > this.pageCount) this.page = this.pageCount;
    this.page = parseInt(this.page);
    this.pageCount = parseInt(this.pageCount);

    var o=window.location.href.substr(window.location.href.indexOf("/c")+1).toLowerCase();
    if(window.location.href.indexOf("/c")!=-1)
    {
        this.par1=o.substring(0,o.indexOf("/"))
        var par2=o.substring(o.indexOf("/news"),o.lastIndexOf("/")).split("-");
        this.par2a=par2[0];
        this.par2b=par2[1];
        this.par2c=par2[2];
        this.par2d=par2[3];
        this.par2e=par2[4];
        this.par3=o.substring(o.lastIndexOf("/"),o.lastIndexOf(".htm")+4);
    }
    else
    {
        this.par1="case1"
        this.par2a="/news1";
        this.par2b="1";
        this.par2c="1";
        this.par2d="1";
        this.par2e="1";
        this.par3=o.lastIndexOf(".htm")==-1?"/vip.htm":(o.substring(o.lastIndexOf("/"),o.lastIndexOf(".htm")+4)=="/default.htm"?"/vip.htm":o.substring(o.lastIndexOf("/"),o.lastIndexOf(".htm")+4));
    }
   
    this.con=GetParameter("key")==null?"":"?key="+GetParameter("key");
    if(this.con.lastIndexOf("#")!=-1)this.con=this.con.substring(0,this.con.lastIndexOf("#"));
}
showPages.prototype.createHtml = function(mode)
{ 
//生成html代码
var strHtml = '', prevPage = this.page - 1, nextPage = this.page + 1,url='';
if (mode == '' || typeof(mode) == 'undefined') mode = 0;
switch (mode) {

case 1 : 
   strHtml += '<span class="number">';
   if (prevPage < 1) 
   {
      strHtml += '<span title="上一页" class="jiantou"><img src=\"/images/case_r19_c28.jpg\" class="Nextpagespanimg" ></span>';
   } 
   else 
   {
      switch(this.pos)
      {
          case 1:url=this.par1.substr(0,4)+prevPage+this.par2a+'-'+this.par2b+'-'+this.par2c+'-'+this.par2d+'-'+this.par2e+this.par3;break;
          case 2:url=this.par1+"/news"+prevPage+'-'+this.par2b+'-'+this.par2c+'-'+this.par2d+'-'+this.par2e+this.par3;break;
          case 3:url=this.par1+this.par2a+'-'+prevPage+'-'+this.par2c+'-'+this.par2d+'-'+this.par2e+this.par3;break;
          case 4:url=this.par1+this.par2a+'-'+this.par2b+'-'+prevPage+'-'+this.par2d+'-'+this.par2e+this.par3;break;
          case 5:url=this.par1+this.par2a+'-'+this.par2b+'-'+this.par2c+'-'+prevPage+'-'+this.par2e+this.par3;break;
          case 6:url=this.par1+this.par2a+'-'+this.par2b+'-'+this.par2c+'-'+this.par2d+'-'+prevPage+this.par3;break;
      }
      url+=this.con;
      strHtml += '<span title="上一页" class="jiantou"><a href="/'+url+'#'+this.pos+'"><img src=\"/images/case_r19_c28.jpg\" class="Nextpagespanimg" ></a></span>';
   }
   
   
   if (this.page % 6 ==0) 
   {
      var startPage = this.page - 5;
   } 
   else 
   {
      var startPage = this.page - this.page % 6 + 1;
   }
   
   if (startPage > 6) 
   {
      switch(this.pos)
      {
          case 1:url=this.par1.substr(0,4)+(startPage - 1)+this.par2a+'-'+this.par2b+'-'+this.par2c+'-'+this.par2d+'-'+this.par2e+this.par3;break;
          case 2:url=this.par1+"/news"+(startPage - 1)+'-'+this.par2b+'-'+this.par2c+'-'+this.par2d+'-'+this.par2e+this.par3;break;
          case 3:url=this.par1+this.par2a+'-'+(startPage - 1)+'-'+this.par2c+'-'+this.par2d+'-'+this.par2e+this.par3;break;
          case 4:url=this.par1+this.par2a+'-'+this.par2b+'-'+(startPage - 1)+'-'+this.par2d+'-'+this.par2e+this.par3;break;
          case 5:url=this.par1+this.par2a+'-'+this.par2b+'-'+this.par2c+'-'+(startPage - 1)+'-'+this.par2e+this.par3;break;
          case 6:url=this.par1+this.par2a+'-'+this.par2b+'-'+this.par2c+'-'+this.par2d+'-'+(startPage - 1)+this.par3;break;
      }
      url+=this.con;
      strHtml += '<span title="前6页"><a href="/'+url+'#'+this.pos+'">...</a></span>';
   }
   
   for (var i = startPage; i < startPage + 6; i++) 
   {
        if (i > this.pageCount) break;
        if (i == this.page) 
        {
         strHtml += '<span title="第' + i + '页">' + i + '</span>';
        } 
        else 
        {
          switch(this.pos)
          {
               case 1:url=this.par1.substr(0,4)+i+this.par2a+'-'+this.par2b+'-'+this.par2c+'-'+this.par2d+'-'+this.par2e+this.par3;break;
               case 2:url=this.par1+"/news"+i+'-'+this.par2b+'-'+this.par2c+'-'+this.par2d+'-'+this.par2e+this.par3;break;
               case 3:url=this.par1+this.par2a+'-'+i+'-'+this.par2c+'-'+this.par2d+'-'+this.par2e+this.par3;break;
               case 4:url=this.par1+this.par2a+'-'+this.par2b+'-'+i+'-'+this.par2d+'-'+this.par2e+this.par3;break;
               case 5:url=this.par1+this.par2a+'-'+this.par2b+'-'+this.par2c+'-'+i+'-'+this.par2e+this.par3;break;
               case 6:url=this.par1+this.par2a+'-'+this.par2b+'-'+this.par2c+'-'+this.par2d+'-'+i+this.par3;break;
          }
         url+=this.con;
          strHtml += '<span title="第' + i + '页"><a href="/'+url+'#'+this.pos+'">' + i + '</a></span>';
        }
   }
   
   if (this.pageCount >= startPage + 6) 
   {
        switch(this.pos)
        {
           case 1:url=this.par1.substr(0,4)+(startPage + 6)+this.par2a+'-'+this.par2b+'-'+this.par2c+'-'+this.par2d+'-'+this.par2e+this.par3;break;
           case 2:url=this.par1+"/news"+(startPage + 6)+'-'+this.par2b+'-'+this.par2c+'-'+this.par2d+'-'+this.par2e+this.par3;break;
           case 3:url=this.par1+this.par2a+'-'+(startPage + 6)+'-'+this.par2c+'-'+this.par2d+'-'+this.par2e+this.par3;break;
           case 4:url=this.par1+this.par2a+'-'+this.par2b+'-'+(startPage + 6)+'-'+this.par2d+'-'+this.par2e+this.par3;break;
           case 5:url=this.par1+this.par2a+'-'+this.par2b+'-'+this.par2c+'-'+(startPage + 6)+'-'+this.par2e+this.par3;break;
           case 6:url=this.par1+this.par2a+'-'+this.par2b+'-'+this.par2c+'-'+this.par2d+'-'+(startPage + 6)+this.par3;break;
        }
      url+=this.con;
       strHtml += '<span title="后6页"><a href="/'+url+'#'+this.pos+'">...</a></span>';
   }
   
   if (nextPage > this.pageCount) 
   {
       strHtml += '<span title="下一页" class="jiantou"><img src=\"/images/case_r19_c30.jpg\" class="Nextpagespanimg2"></a></span>';
   } 
   else 
   {
      switch(this.pos)
      {
           case 1:url=this.par1.substr(0,4)+nextPage+this.par2a+'-'+this.par2b+'-'+this.par2c+'-'+this.par2d+'-'+this.par2e+this.par3;break;
           case 2:url=this.par1+"/news"+nextPage+'-'+this.par2b+'-'+this.par2c+'-'+this.par2d+'-'+this.par2e+this.par3;break;
           case 3:url=this.par1+this.par2a+'-'+nextPage+'-'+this.par2c+'-'+this.par2d+'-'+this.par2e+this.par3;break;
           case 4:url=this.par1+this.par2a+'-'+this.par2b+'-'+nextPage+'-'+this.par2d+'-'+this.par2e+this.par3;break;
           case 5:url=this.par1+this.par2a+'-'+this.par2b+'-'+this.par2c+'-'+nextPage+'-'+this.par2e+this.par3;break;
           case 6:url=this.par1+this.par2a+'-'+this.par2b+'-'+this.par2c+'-'+this.par2d+'-'+nextPage+this.par3;break;
      }
      url+=this.con;
      strHtml += '<span title="下一页" class="jiantou"><a href="/'+url+'#'+this.pos+'"><img src=\"/images/case_r19_c30.jpg\" class="Nextpagespanimg2" ></a></span>';
   }
   
   strHtml += '</span>';
   break;
default :
   strHtml = 'Javascript showPage Error: not find mode ' + mode;
   break;
}
return strHtml;
}
showPages.prototype.createUrl = function (page) { //生成页面跳转url
if (isNaN(parseInt(page))) page = 1;
if (page < 1) page = 1;
if (page > this.pageCount) page = this.pageCount;
var url = location.protocol + '//' + location.host + location.pathname;
var args = location.search;
var reg = new RegExp('([\?&]?)' + this.argName + '=[^&]*[ && #36;]?', 'gi');
args = args.replace(reg,'$1');
if (args == '' || args == null) {
args += '?' + this.argName + '=' + page;
} else if (args.substr(args.length - 1,1) == '?' || args.substr(args.length - 1,1) == '&') {
   args += this.argName + '=' + page;
} else {
   args += '&' + this.argName + '=' + page;
}
return url + args;
}
showPages.prototype.toPage = function(page){ //页面跳转
var turnTo = 1;
if (typeof(page) == 'object') {
turnTo = page.options[page.selectedIndex].value;
} else {
turnTo = page;
}
self.location.href = this.createUrl(turnTo);
}
showPages.prototype.printHtml = function(mode,divID){ //显示html代码
this.getPage();
this.checkPages();
this.showTimes += 1;
document.getElementById(divID).innerHTML = this.createHtml(mode);

}
showPages.prototype.formatInputPage = function(e){ //限定输入页数格式
var ie = navigator.appName=="Microsoft Internet Explorer"?true:false;
if(!ie) var key = e.which;
else var key = event.keyCode;
if (key == 8 || key == 46 || (key >= 48 && key <= 57)) return true;
return false;
}

