﻿function showPages(name) { //初始化属性
    this.name = name;      //对象名称
    this.page = 1;         //当前页数
    this.pageCount = 1;    //总页数
    this.argName = 'page'; //参数名
    this.showTimes = 1;    //打印次数
    this.clickFun = null;
}

showPages.prototype.getPage = function() { //丛url获得当前页数,如果变量重复只获取最后一个
    var args = location.search;
    var reg = new RegExp('[\?&]?' + this.argName + '=([^&]*)[&$]?', 'gi');
    var chk = args.match(reg);
    this.page = RegExp.$1;
}
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);
}
showPages.prototype.createHtml = function() { //生成html代码
    var strHtml = '<div id="operate_page" class="pages">', prevPage = this.page - 1, nextPage = this.page + 1;

    //模式 (前后缩略,页数,首页,前页,后页,尾页)
    //strHtml += '<span class="count">' + this.page + ' / ' + this.pageCount + '</span>';
    strHtml += '<span class="number">';
    if (prevPage < 1) {
        strHtml += '<span title="首页">首页</span>';
        strHtml += '<span title="上页">上页</span>';
    } else {
        strHtml += '<span title="首页"><a href="javascript:' + this.name + '.toPage(1);">首页</a></span>';
        strHtml += '<span title="上页"><a href="javascript:' + this.name + '.toPage(' + prevPage + ');">上页</a></span>';
    }
    if (this.page != 1) strHtml += '<span title="第1页"><a href="javascript:' + this.name + '.toPage(1);">[1]</a></span>';
    if (this.page >= 4) strHtml += '<span>...</span>';
    if (this.pageCount > this.page + 1) {
        var endPage = this.page + 1;
    } else {
        var endPage = this.pageCount;
    }
    for (var i = this.page - 1; i <= endPage; i++) {
        if (i > 0) {
            if (i == this.page) {
                strHtml += '<span title="第' + i + '页">[' + i + ']</span>';
            } else {
                if (i != 1 && i != this.pageCount) {
                    strHtml += '<span title="第' + i + '页"><a href="javascript:' + this.name + '.toPage(' + i + ');">[' + i + ']</a></span>';
                }
            }
        }
    }
    if (this.page + 2 < this.pageCount) strHtml += '<span>...</span>';
    if (this.page != this.pageCount) strHtml += '<span title="第' + this.pageCount + '页"><a href="javascript:' + this.name + '.toPage(' + this.pageCount + ');">[' + this.pageCount + ']</a></span>';
    if (nextPage > this.pageCount) {
        strHtml += '<span title="下页">下页</span>';
        strHtml += '<span title="末页">末页</span>';
    } else {
        strHtml += '<span title="下页"><a href="javascript:' + this.name + '.toPage(' + nextPage + ');">下页</a></span>';
        strHtml += '<span title="末页"><a href="javascript:' + this.name + '.toPage(' + this.pageCount + ');">末页</a></span>';
    }
    strHtml += '</span></div>';

    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 + '=[^&]*[&$]?', '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) { //页面跳转
    if (this.clickFun != null) {
        eval(this.clickFun + "(" + page + ")");
    }
}