/* **************************************************************************************
*  * pager.js 1.2 By 福建电子口岸股份有限公司 (http://www.fjeport.gov.cn)
*  * Copyright (c) 2008 福建电子口岸股份有限公司
*  *************************************************************************************/
var pagerConfig = {
    pageIndex: 1,
    pageSize: 0,
    itemCount: 0,
    pageCount: 0,
    emptyText: "",
    mode: "123",
    numeric: 10
};

$.pager = function(id, data, fn) {
    // 赋值
    pagerConfig.pageIndex = data.PageIndex;
    pagerConfig.pageSize = data.PageSize;
    pagerConfig.itemCount = data.ItemCount;
    pagerConfig.pageCount = data.PageCount;
    // 定义内部变量
    var pageCount = pagerConfig.pageCount;
    var pageIndex = (pagerConfig.pageIndex < 1) ? 1 : ((pagerConfig.pageIndex > pagerConfig.pageCount) ? pagerConfig.pageCount : pagerConfig.pageIndex);
    var pageSize = pagerConfig.pageSize;
    var itemCount = pagerConfig.itemCount;
    var emptyText = (pagerConfig.emptyText == null) ? "" : pagerConfig.emptyText;
    var mode = pagerConfig.mode;
    var numeric = pagerConfig.numeric;
    var opt = { action: fn };
    var pid = "pagerbar_" + Math.round(Math.random() * 1000);

    var pagerString = function() {
        if (itemCount == 0) {
            return emptyText;
        }
        var htmlString = "<ul class=\"pagerbar\" id=\"" + pid + "\">";
        if (mode.indexOf("1") != -1) {
            htmlString += "<li>";
            htmlString += "共&nbsp;<span>";
            htmlString += itemCount;
            htmlString += "</span>&nbsp;条记录";
            htmlString += "</li>";
            htmlString += "<li style=\"margin-left: 1em\">";
            htmlString += "共&nbsp;";
            htmlString += pageCount;
            htmlString += "&nbsp;页";
            htmlString += "</li>";
            htmlString += "<li style=\"margin-left: 1em";
            if (mode.indexOf("3") != -1 && mode.indexOf("2") == -1) {
                htmlString += "; margin-right: 1em";
            }
            htmlString += "\">";
            htmlString += "当前第&nbsp;";
            htmlString += pageIndex;
            htmlString += "&nbsp;页";
            htmlString += "</li>";
        }
        if (mode.indexOf("2") != -1) {
            htmlString += "<li";
            if (mode.indexOf("1") != -1) {
                htmlString += " style=\"margin-left: 1em\"";
            }
            htmlString += ">";
            if (pageIndex > 1) {
                htmlString += "<a href=\"javascript:void(0);\" value=\"1\">最前页</a>";
            } else {
                htmlString += "最前页";
            }
            htmlString += "</li>";
            htmlString += "<li style=\"margin-left: 1em";
            if (mode.indexOf("3") != -1) {
                htmlString += "; margin-right: 1em";
            }
            htmlString += "\">";
            if (pageIndex > 1) {
                htmlString += "<a  id=\"__prev\" href=\"javascript:void(0);\" value=\"";
                htmlString += pageIndex - 1;
                htmlString += "\">上一页</a>";
            } else {
                htmlString += "上一页";
            }
            htmlString += "</li>";
        }
        if (mode.indexOf("3") != -1) {
            var startPage = 0;
            if (pageIndex % numeric == 0) {
                startPage = pageIndex - numeric + 1;
            } else {
                startPage = pageIndex - pageIndex % numeric + 1;
            }
            if (startPage > numeric) {
                htmlString += "<li style=\"margin-left: 2px; margin-right: 2px\">";
                htmlString += "<a  id=\"__prevNumeric\" href=\"javascript:void(0);\" value=\"";
                htmlString += startPage - 1;
                htmlString += "\" title=\"上&nbsp;";
                htmlString += numeric;
                htmlString += "&nbsp;页\">...</a>";
                htmlString += "</li>";
            }
            for (var i = startPage; i < startPage + numeric; i++) {
                if (i > pageCount) {
                    break;
                }
                if (i == pageIndex) {
                    htmlString += "<li style=\"margin-left: 2px; margin-right: 2px\">[";
                    htmlString += i;
                    htmlString += "]";
                    htmlString += "</li>";
                } else {
                    htmlString += "<li style=\"margin-left: 2px; margin-right: 2px\">";
                    htmlString += "<a href=\"javascript:void(0);\" value=\"";
                    htmlString += i;
                    htmlString += "\" title=\"第&nbsp;";
                    htmlString += i;
                    htmlString += "&nbsp;页\">[";
                    htmlString += i;
                    htmlString += "]</a>";
                    htmlString += "</li>";
                }
            }
            if (pageCount >= startPage + numeric) {
                htmlString += "<li style=\"margin-left: 2px; margin-right: 2px\">";
                htmlString += "<a href=\"javascript:void(0);\" value=\"";
                htmlString += startPage + numeric;
                htmlString += "\" title=\"下&nbsp;";
                htmlString += numeric;
                htmlString += "&nbsp;页\">...</a>";
                htmlString += "</li>";
            }
        }
        if (mode.indexOf("2") != -1) {
            htmlString += "<li style=\"margin-left: 1em\">";
            if (pageIndex < pageCount) {
                htmlString += "<a href=\"javascript:void(0);\" value=\"";
                htmlString += pageIndex + 1;
                htmlString += "\">下一页</a>";
            } else {
                htmlString += "下一页";
            }
            htmlString += "</li>";
            htmlString += "<li style=\"margin-left: 1em\">";
            if (pageIndex < pageCount) {
                htmlString += "<a href=\"javascript:void(0);\" value=\"";
                htmlString += pageCount;
                htmlString += "\">最末页</a>";
            } else {
                htmlString += "最末页";
            }
            htmlString += "</li>";
        }
        htmlString += "</ul>";
        return htmlString;
    }

    $(id).html(pagerString());
    $("#" + pid + " a").click(function() {
        pagerConfig.pageIndex = $(this).attr("value");
        if ($.isFunction(opt.action)) {
            opt.action.call(this);
        }
    });
}