﻿function DHTMLpagenation(content){

    with(this)
    {
        // client static html file pagenation
        this.content=content;        
        this.contentLength=content.length;        
        this.pageSizeCount;        
        this.perpageLength=100;
        //default perpage byte length.
        this.currentPage=1;        
        //this.regularExp=/.+[\?\&]{1}page=(\d+)/;
        this.regularExp=/\d+/;        
        
        this.divDisplayContent;        
        this.contentStyle=null;        
        this.strDisplayContent="";        
        this.divDisplayPagenation;        
        this.strDisplayPagenation="";        
        arguments.length==2?perpageLength=arguments[1]:'';        
        try{
            
            divExecuteTime=document.createElement("DIV");            
            document.body.appendChild(divExecuteTime);             
        }
        catch(e)
        {         
        }
        if(document.getElementById("divContent"))
        {
            
            divDisplayContent=document.getElementById("divContent");            
        }
        else 
        {
            try
            {
                divDisplayContent=document.createElement("DIV");                
                divDisplayContent.id="divContent";                
                document.body.appendChild(divDisplayContent);                
                
            }
            catch(e)
            {                
                return false;                
            }
        }
        
        if(document.getElementById("divPagenation"))
        {
            divDisplayPagenation=document.getElementById("divPagenation");            
        }
        else 
        {            
            try
            {                
                divDisplayPagenation=document.createElement("DIV");                
                divDisplayPagenation.id="divPagenation";                
                document.body.appendChild(divDisplayPagenation);                
                
            }
            catch(e)
            {                
                return false;                 
            }            
        }        
        DHTMLpagenation.initialize();        
        return this;          
        
    }
};
DHTMLpagenation.initialize=function (){
    with(this)
    {
        
        divDisplayContent.className=contentStyle!=null?contentStyle:"divContent";        
        if(contentLength<=perpageLength)
        {
            
            strDisplayContent=content;            
            divDisplayContent.innerHTML=strDisplayContent;            
            return null;            
            
        }
        
        pageSizeCount=Math.ceil((contentLength/perpageLength));        
        
        DHTMLpagenation.goto(currentPage);        
        DHTMLpagenation.displayContent();        
        
    }
};
DHTMLpagenation.displayPage=function (){
    with(this)
    {
        
        strDisplayPagenation="";        
        
        if(currentPage&&currentPage!=1)
        strDisplayPagenation+='<a class="nextpage" href="javascript:void(0)" onclick="DHTMLpagenation.previous()">上一页</a>';        
        else 
        strDisplayPagenation+="<a href=\"#\" class=\"nextpage\">上一页</a>";        
        
        for(var i=1;i<=pageSizeCount;i++)
        {
            
            if(i!=currentPage)
            strDisplayPagenation+='<a class="pagea" href="javascript:void(0)" onclick="DHTMLpagenation.goto('+i+');">'+i+'</a>';            
            else 
            strDisplayPagenation+="<a class=\"checkpagea\">"+i+"</a>";            
            
        }
        
        if(currentPage&&currentPage!=pageSizeCount)
        strDisplayPagenation+='<a class="nextpage" href="javascript:void(0)" onclick="DHTMLpagenation.next()">下一页</a>';        
        else 
        strDisplayPagenation+="<a href=\"#\" class=\"nextpage\">下一页</a>";        
        
        //strDisplayPagenation+="<a href=\"#\" class=\"nextpage\">共"+pageSizeCount+"页 每页显示字符数</a><input class=\"input\" type='text' value='"+perpageLength+"' id='ctlPerpageLength'><input class=\"button\" type='button' value='确定' onclick='DHTMLpagenation.change(document.getElementById(\"ctlPerpageLength\").value);'><a class=\"pagea\" href=\"#\" onclick=\"document.getElementById('divContent').style.fontSize='18px'\">大</a><a href=\"#\" onclick=\"document.getElementById('divContent').style.fontSize='14px'\" class=\"pagea\">中</a>";        
        
        divDisplayPagenation.innerHTML=strDisplayPagenation;        
        
    }
};
DHTMLpagenation.previous=function (){
    with(this)
    {
        
        DHTMLpagenation.goto(currentPage-1);        
        
    }
};
DHTMLpagenation.next=function (){
    with(this)
    {
        
        DHTMLpagenation.goto(currentPage+1);        
        
    }
};
DHTMLpagenation.goto=function (iCurrentPage){
    with(this)
    {
        
        startime=new Date();        
        if(regularExp.test(iCurrentPage))
        {
            
            currentPage=iCurrentPage;            
            strDisplayContent=content.substr((currentPage-1)*perpageLength,perpageLength);            
            
        }
        else 
        {
            
            alert("page parameter error!");            
            
        }
        DHTMLpagenation.displayPage();        
        DHTMLpagenation.displayContent();        
        
    }
};
DHTMLpagenation.displayContent=function (){
    with(this)
    {
        
        divDisplayContent.innerHTML=strDisplayContent;        
        
    }
};
DHTMLpagenation.change=function (iPerpageLength){
    with(this)
    {
        
        if(regularExp.test(iPerpageLength))
        {
            
            DHTMLpagenation.perpageLength=iPerpageLength;            
            DHTMLpagenation.currentPage=1;            
            DHTMLpagenation.initialize();            
            
        }
        else 
        {
            
            alert("请输入数字");            
            
        }
        
    }
};

