﻿var OuterHTML;
var CurrentPage = 1;
var StartPage;
var EndPage;
var PageSize = 8;
var RowCount = 1000;
var RepeatPages = 7;
var MaxPage = 1;
var SeoTag = "javascript:GoPage({page})";
var PageType = 0; //0:Default,1:NoFirstLastPage
var IsFromService = true;

//计算Url
function CalculateUrl(url, page) {
    return url.replace("{page}", page.toString());
}
//参数初始化
function InitPageParameter() {
    if(IsFromService)
        CurrentPage = parseInt($("#txtCurrentPage").val());

    PageSize = parseInt($("#txtPageSize").val());
    RowCount = parseInt($("#txtRowCount").val());
    RepeatPages = parseInt($("#txtRepeatPages").val());
    SeoTag = $("#txtSeoTag").val();

	//当前页码从1开始
	if (CurrentPage <= 0)
		CurrentPage = 1;

	//最大页码计算,由RowCount / PageSize来决定
    MaxPage = RowCount / PageSize;
    MaxPage = Math.ceil(MaxPage);

    //最大页码必须大于0的整数
	MaxPage = Math.max(1, MaxPage);

	if (RowCount > 0)
	{
		//防止非法修改当前页面超过最大页码
		if (CurrentPage > MaxPage)
			CurrentPage = MaxPage;

		StartPage = Math.max(1, CurrentPage - parseInt(RepeatPages / 2));
		EndPage = Math.min(MaxPage, CurrentPage + RepeatPages / 2);

		if (StartPage == 1)
			EndPage = Math.min((StartPage + RepeatPages), MaxPage);

		if (EndPage >= MaxPage)
		    StartPage = Math.max(1, (MaxPage - RepeatPages));
	}
}
//计算页码HTML
function CalculatePageOuterHTML()
{
	//初始化当前页码
	InitPageParameter();

	var SB = "";

	if (RowCount > 0)
	{
		//外层DIV
		SB+="<div class=\"page\" id=\"common_page\">";

		//首页
		if (CurrentPage > 1) {
			if(PageType != 1)
				SB+="<a title='转到第1页' href='" + CalculateUrl(SeoTag,1) + "' target=\"_self\">首页</a>";
		}		

		//上一页
		if (CurrentPage <= 1)
		{
			SB+="<span class=\"no_link\">上一页</span>";
		}
		else
		{
			SB+="<a title='转到第" + Math.max((CurrentPage - 1), 1) + "页' href='" + CalculateUrl(SeoTag,Math.max((CurrentPage - 1), 1)) +"' target=\"_self\">上一页</a>";
		}
		

		//前PageCounts / 2页还存在页
		if (StartPage > 1)
		{
			if (PageType == 1)
			{
				SB+="<a title='转到第1页' href='" + CalculateUrl(SeoTag,1) + "' target=\"_self\">1</a>";
				SB+="…";
			}
		}
		

		//前 PageCounts / 2 页
		for (var i = StartPage; i < CurrentPage; i++)
		{
			SB+="<a title='转到第" + i.toString() + "页' href='" + CalculateUrl(SeoTag,i) + "' target=\"_self\">" + i.toString() + "</a>";
		}
		

		//当前页+后 PageCounts / 2页
		for (var i = CurrentPage; i <= EndPage; i++)
		{
			if (i == CurrentPage)
				SB+="<span class=\"choose\">" + i.toString() + "</span>";
			else
				SB+="<a title='转到第" + i.toString() + "页' href='" + CalculateUrl(SeoTag,i) + "' target=\"_self\">" + i.toString() + "</a>";
		}
		

		//后PageCounts / 2页还存在页
		if (EndPage < MaxPage)
		{
			if (PageType == 1)
			{
				SB+="…";
				SB+="<a title='转到第" + MaxPage.toString() + "页' href='" + CalculateUrl(SeoTag,MaxPage) + "' target=\"_self\">" + MaxPage.toString() + "</a>";
			}
		}
		

		//下一页
		if (CurrentPage == MaxPage || MaxPage == 0)
			SB+="<span class=\"no_link\">下一页</span>";
		else
			SB+="<a title='转到第" + Math.min((CurrentPage + 1), MaxPage) + "页' href='" + CalculateUrl(SeoTag,Math.min((CurrentPage + 1), MaxPage)) + "' target=\"_self\">下一页</a>";
		

		//末页
		if (CurrentPage < MaxPage)
		{
			if (PageType != 1)
				SB+="<a title='转到第" + MaxPage.toString() + "页' href='" + CalculateUrl(SeoTag,MaxPage) + "' target=\"_self\">末页</a>";
		}		

		//外层DIV
		SB+="</div>";
	}

	OuterHTML = SB;

	//alert(OuterHTML);
	//$("#frmDefault").append(OuterHTML);
	//alert(CurrentPage);
	$("#common_page_contain").html(OuterHTML);
}

function GoPage(page) {
    CurrentPage = page;
    IsFromService = false;

    //从服务端获取数据
	var txtUserID = $("#txtUserID").val();
	var txtGrade = $("#txtGrade").val();
	var txtRowCount = $("#txtRowCount").val();
	//window.alert(txtUserID + "," + txtGrade + "," + txtRowCount);
    $.ajax({ url: "../App/Ajax.aspx", type: "get", dataType: "html", data: {
		   userid:$("#txtUserID").val(),
		   page:page,
		   grade:$("#txtGrade").val(),
		   rowcount:$("#txtRowCount").val(),
		   pagesize:$("#txtPageSize").val(),
		   type:"guestbook",
		   mobanname:"mobanA"
    },
        success: function(data, textStatus) {
			//alert(data);
			//alert("success" + data);
			//留言列表
			//alert($("#companys_guestbook_ul").html());
			$("#companys_guestbook_ul").html(data);
			
			//计算分页
			CurrentPage = page;
			CalculatePageOuterHTML();			
            //alert(data);
        },
        error: function() {
            alert("error");
        }
    });
    return;
}
