﻿function showPages(name){this.name=name;this.page=1;this.pageCount=1;this.argName='page';this.pageBox='';this.callBack;}
showPages.prototype.checkPages = function(){if (isNaN(parseInt(this.page)))this.page=1;if(isNaN(parseInt(this.pageCount))) this.pageCount = 1;if (this.page < 1) this.page = 1;if (this.pageCount < 1) this.pageCount = 1;if (this.page > this.pageCount) this.page = this.pageCount;this.page = parseInt(this.page);this.pageCount = parseInt(this.pageCount);}
showPages.prototype.toPage = function(page,mode){this.page=page;document.getElementById(this.pageBox).innerHTML=this.printHtml(mode);eval(this.callBack.replace("arg",this.page));}
showPages.prototype.printHtml = function(mode){this.checkPages();return '<div id="pages_' + this.name + '" class="pages">'+this.createHtml(mode)+'</div>';}
showPages.prototype.createHtml = function(mode){
var strHtml = '', prevPage = this.page - 1, nextPage = this.page + 1;
if (mode == '' || typeof(mode) == 'undefined') mode = 1;
switch (mode) {
case 1 : //模式1 (10页缩略,首页,前页,后页,尾页)
var pageNums=4;
strHtml += '<span class="number">';
if (prevPage < 1) {
strHtml += '<span title="第一页">&#171;</span>';
strHtml += '<span title="上一页">&#139;</span>';
} else {
strHtml += '<span title="第一页"><a href="javascript:' + this.name + '.toPage(1,'+mode+');">&#171;</a></span>';
strHtml += '<span title="上一页"><a href="javascript:' + this.name + '.toPage(' + prevPage + ','+mode+');">&#139;</a></span>';
}
if (this.page % pageNums ==0) {var startPage=this.page-pageNums+1;}else{var startPage=this.page - this.page % pageNums + 1;}
if (startPage > pageNums) strHtml += '<span title="Prev '+pageNums+' Pages"><a href="javascript:' + this.name + '.toPage(' + (startPage - 1) + ','+mode+');">...</a></span>';
for (var i = startPage; i < startPage + pageNums; i++) {
if (i > this.pageCount) break;
if (i == this.page) {
strHtml += '<span title="Page ' + i + '">[' + i + ']</span>';
} else {
strHtml += '<span title="Page ' + i + '"><a href="javascript:' + this.name + '.toPage(' + i + ','+mode+');">[' + i + ']</a></span>';
}
}
if (this.pageCount >= startPage + pageNums) strHtml += '<span title="Next '+pageNums+' Pages"><a href="javascript:' + this.name + '.toPage(' + (startPage + pageNums) + ','+mode+');">...</a></span>';
if (nextPage > this.pageCount) {
strHtml += '<span title="下一页">&#155;</span>';
strHtml += '<span title="最后一页">&#187;</span>';
} else {
strHtml += '<span title="下一页"><a href="javascript:' + this.name + '.toPage(' + nextPage + ','+mode+');">&#155;</a></span>';
strHtml += '<span title="最后一页"><a href="javascript:' + this.name + '.toPage(' + this.pageCount + ','+mode+');">&#187;</a></span>';
}
strHtml += '</span><br />';
break;
case 2 : //模式2 (前后缩略,页数,首页,前页,后页,尾页)
strHtml += '<span class="number">';
if (prevPage < 1) {
strHtml += '<span title="First Page">&#171;</span>';
strHtml += '<span title="Prev Page">&#139;</span>';
} else {
strHtml += '<span title="First Page"><a href="javascript:' + this.name + '.toPage(1,'+mode+');">&#171;</a></span>';
strHtml += '<span title="Prev Page"><a href="javascript:' + this.name + '.toPage(' + prevPage + ','+mode+');">&#139;</a></span>';
}
if (this.page != 1) strHtml += '<span title="Page 1"><a href="javascript:' + this.name + '.toPage(1,'+mode+');">[1]</a></span>';
if (this.page >= 5) strHtml += '<span>...</span>';
if (this.pageCount > this.page + 2) {
var endPage = this.page + 2;
} else {
var endPage = this.pageCount;
}
for (var i = this.page - 2; i <= endPage; i++) {
if (i > 0) {
if (i == this.page) {
strHtml += '<span title="Page ' + i + '">[' + i + ']</span>';
} else {
if (i != 1 && i != this.pageCount) {
strHtml += '<span title="Page ' + i + '"><a href="javascript:' + this.name + '.toPage(' + i + ','+mode+');">[' + i + ']</a></span>';
}
}
}
}
if (this.page + 3 < this.pageCount) strHtml += '<span>...</span>';
if (this.page != this.pageCount) strHtml += '<span title="Page ' + this.pageCount + '"><a href="javascript:' + this.name + '.toPage(' + this.pageCount + ','+mode+');">[' + this.pageCount + ']</a></span>';
if (nextPage > this.pageCount) {
strHtml += '<span title="Next Page">&#155;</span>';
strHtml += '<span title="Last Page">&#187;</span>';
} else {
strHtml += '<span title="Next Page"><a href="javascript:' + this.name + '.toPage(' + nextPage + ','+mode+');">&#155;</a></span>';
strHtml += '<span title="Last Page"><a href="javascript:' + this.name + '.toPage(' + this.pageCount + ','+mode+');">&#187;</a></span>';
}
strHtml += '</span><br />';
break;
}
return strHtml;
}
