//by Sugar 2008-2-23
function spPage()
{
    this.id    ="showpage"; //容器ID
    this.key   ="page"; //URL参数名称
    this.page  =(typeof arguments[0]=="number")?arguments[0]:1; //当前页
    this.total =(typeof arguments[1]=="number")?arguments[1]:0; //总记录数
    this.psize =(typeof arguments[2]=="number")?arguments[2]:1; //每页显示
    this.style =(typeof arguments[3]=="number")?arguments[3]:0; //样式
    this.pcount=Math.ceil(this.total / this.psize); //总页数
    this.template=""; //模板
    var topObj=this;
    var Panel=document.getElementById(this.id);
    this.play=function(){
        if (topObj.pcount<=1) return;
	    if (topObj.template=="") topObj.getTemplate(topObj.style);
        var tmp=topObj.template;
	    var psplit=50;
        tmp=tmp.replace(/@page@/ig,topObj.page);
        tmp=tmp.replace(/@total@/ig,topObj.total);
        tmp=tmp.replace(/@psize@/ig,topObj.psize);
        tmp=tmp.replace(/@pcount@/ig,topObj.pcount);
        var url=document.URL.replace(eval("/([&\?]?)("+topObj.key+"=[^&]*&?)/"),"$1");
        url+=(url.match(/[\?&]$/))?"page=":(url.indexOf("?")!=-1)?"&page=":"?page=";
        tmp=tmp.replace(/@url@/ig,url);
        if (tmp.match(/@plist@/)){
            var plist="";
            if (topObj.pcount<=300){
                for (var i=1;i<=topObj.pcount;i++)
                {
                    if (topObj.page==i) plist+="<option value=\""+i+"\" selected=\"selected\" class=\"seled\">"+i+"</option>";
                    else plist+="<option value=\""+i+"\">"+i+"</option>";
                }
            }
            else{
                for (var i=1;i<=psplit;i++)
                {
                    if (topObj.page==i) plist+="<option value=\""+i+"\" selected=\"selected\" class=\"seled\">"+i+"</option>";
                    else plist+="<option value=\""+i+"\">"+i+"</option>";
                }
                if (topObj.page>psplit){
                    var j=topObj.page-psplit;
                    j=(j<psplit)?psplit:j;
                    for (var i=j+1;i<topObj.page;i++)
                    {
                         plist+="<option value=\""+i+"\">"+i+"</option>";
                    }
                    plist+="<option value=\""+topObj.page+"\"selected=\"selected\" class=\"seled\">"+topObj.page+"</option>";
                }
                j=topObj.page+psplit;
                j=(j>topObj.pcount)?topObj.pcount:j;
                var k=(topObj.page<psplit)?psplit:topObj.page;
                for (var i=k+1;i<=j;i++)
                {
                    plist+="<option value=\""+i+"\">"+i+"</option>";
                }
                if (topObj.page+psplit<topObj.pcount) plist+="<option value=\""+topObj.pcount+"\">"+topObj.pcount+"</option>";
            }
            plist="<select onchange=\"if (this.value!=''){location.href='"+url+"'+this.value;}\">"+plist+"</select>";
            tmp=tmp.replace(/@plist@/ig,plist);
        }
        var txtArr=tmp.match(/\{@(([^\\]+\|){3}[^\\]+)@\}/);
        if (txtArr){
            var mlink="";
            txtArr=txtArr[1].split("|");
            if (txtArr[0]!=""){
                if (topObj.page>1) mlink+="<a href=\""+url+"1\">"+txtArr[0]+"</a>";
                else  mlink+="<span class=\"gray\">"+txtArr[0]+"</span>";
                mlink+="&nbsp;";
            }
            if (txtArr[1]!=""){
                if (topObj.page>1) mlink+="<a href=\""+url+(topObj.page-1)+"\">"+txtArr[1]+"</a>";
                else  mlink+="<span class=\"gray\">"+txtArr[1]+"</span>";
                mlink+="&nbsp;";
            }
            if (txtArr[2]!=""){
                if (topObj.page<topObj.pcount) mlink+="<a href=\""+url+(topObj.page+1)+"\">"+txtArr[2]+"</a>";
                else  mlink+="<span class=\"gray\">"+txtArr[2]+"</span>";
                mlink+="&nbsp;";
            }
            if (txtArr[3]!=""){
                if (topObj.page<topObj.pcount) mlink+="<a href=\""+url+topObj.pcount+"\">"+txtArr[3]+"</a>";
                else  mlink+="<span class=\"gray\">"+txtArr[3]+"</span>";
                mlink+="&nbsp;";
            }
            tmp=tmp.replace(/\{@(([^\\]+\|){1,}[^\\]+)@\}/,mlink);
        }
        Panel.innerHTML=tmp;
    }
    this.getTemplate=function(i){
        var tmpArr=new Array();
        tmpArr[0]="共<span class='red'>@total@</span>条记录&nbsp;&nbsp;每页<span class='red'>@psize@</span>条记录&nbsp;&nbsp;当前第<span class='red'>@page@</span>/<span class='red2'>@pcount@</span>页&nbsp;&nbsp;{@首页|上一页|下一页|末页@}&nbsp;@plist@";
        tmpArr[1]="Total:<span class='red'>@total@</span> Items&nbsp;&nbsp;<span class='red'>@psize@</span> Items/Page&nbsp;Page:<span class='red'>@page@</span>/<span class='red2'>@pcount@</span>&nbsp{@Home|Prev|Next|End@}&nbsp;@plist@";
	    topObj.template=tmpArr[i];
    }
}