﻿//2011年07月11日最后更新,id、css都改了
function PageNavigator()
{
    var _PageIndex = 1;
    var _PageSize = 20;
    var _Function = null;
    var _TotalNumber = 0;
    var _DoCount = true;
    var _ShowIndex = 2; //前后拓展几页
    var _DisplayPanel = "pageNavigator";
    this.Init = function(totalNumber, pageIndex, pageSize, functionName, displayPanelId)
    {
        if (totalNumber != null)
        {
            _TotalNumber = totalNumber;
        }
        if (pageIndex != null)
        {
            _PageIndex = pageIndex;
        }
        if (pageSize != null)
        {
            _PageSize = pageSize;
        }
        if (functionName != null)
        {
            _Function = functionName;
        }
        if (displayPanelId != null)
        {
            _DisplayPanel = displayPanelId;
        }
        GetString();
    }
    this.GetPageIndex = function()
    {
        return _PageIndex;
    }
    this.SetPageIndex = function(pageIndex)
    {
        _PageIndex = pageIndex;
    }
    this.GetPageSize = function()
    {
        return _PageSize;
    }
    this.SetPageSize = function(pageSize)
    {
        _PageSize = pageSize;
    }
    this.GetFunction = function()
    {
        return _Function;
    }
    this.SetFunction = function(fun)
    {
        _Function = fun;
    }
    this.GetTotalNumber = function()
    {
        return _TotalNumber;
    }
    this.SetTotalNumber = function(totalNumber)
    {
        _TotalNumber = totalNumber;
    }
    this.GetDoCount = function()
    {
        return _DoCount;
    }
    this.SetDoCount = function(doCount)
    {
        _DoCount = doCount;
    }
    this.GetDisplayPanel = function()
    {
        return _DisplayPanel;
    }
    this.SetDisplayPanel = function(displayPanel)
    {
        _DisplayPanel = displayPanel;
    }
    function GetString()
    {
        var totalPage = Math.ceil(_TotalNumber / _PageSize), str = "";
        if (totalPage > 1)
        {
            var sb = new Sys.StringBuilder(), max, min;
            sb.append("<div class='pageNavigator'><span class='head'>");
            sb.append(_PageIndex);
            sb.append("/");
            sb.append(totalPage);
            sb.append("</span><span class='body'><span id='firstPage' onclick='");
            sb.append(_Function);
            sb.append("(");
            sb.append(1);
            sb.append(")'>首页</span><span id='previousPage' onclick='");
            sb.append(_Function);
            sb.append("(");
            sb.append(_PageIndex - 1);
            sb.append(")'>上一页</span>");
            if (_PageIndex <= _ShowIndex)
            {
                min = 1;
            }
            else
            {
                min = _PageIndex - _ShowIndex;
            }
            for (var i = min; i < _PageIndex; i++) {
                if (i == min && min > 1) {
                    sb.append("...");
                }
                sb.append("<span onclick='");
                sb.append(_Function);
                sb.append("(");
                sb.append(i);
                sb.append(")'>[");
                sb.append(i);
                sb.append("]</span>");
            }
            sb.append("<span class='buttonCurrent'>[");
            sb.append(_PageIndex);
            sb.append("]</span>");
            if (totalPage < _ShowIndex + _PageIndex)
            {
                max = totalPage;
            }
            else
            {
                max = _ShowIndex + _PageIndex;
            }
            for (var i = _PageIndex + 1; i <= max; i++) {
                sb.append("<span onclick='");
                sb.append(_Function);
                sb.append("(");
                sb.append(i);
                sb.append(")'>[");
                sb.append(i);
                sb.append("]</span>");
                if (i == max && max < totalPage) {
                    sb.append("...");
                }
            }
            sb.append("<span id='nextPage' onclick='");
            sb.append(_Function);
            sb.append("(");
            sb.append(_PageIndex + 1);
            sb.append(")'>下一页</span></span>");
            str = sb.toString();
            document.getElementById(_DisplayPanel).innerHTML = str;
            document.getElementById(_DisplayPanel).style.display = "";
        }
        else
        {
            document.getElementById(_DisplayPanel).style.display = "none";
        }
        if (totalPage > 1)
        {
            if (_PageIndex == 1)
            {
                document.getElementById("firstPage").style.display = "none";
                document.getElementById("previousPage").style.display = "none";
            }
            else if (_PageIndex == totalPage)
            {
                document.getElementById("nextPage").style.display = "none";
            }
        }
    }
}
if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();

