function virtualpaginate(a,b,c){var c=typeof c=="undefined"?"div":c;this.pieces=virtualpaginate.collectElementbyClass(a,c);this.chunksize=typeof b=="undefined"?1:b>0&&b<this.pieces.length?b:this.pieces.length;this.pagecount=Math.ceil(this.pieces.length/this.chunksize);this.showpage(-1);this.currentpage=0;this.showpage(this.currentpage)}virtualpaginate.collectElementbyClass=function(a,b){var c=new RegExp("(^|\\s+)"+a+"($|\\s+)","i");var d=[];var e=document.getElementsByTagName(b);for(var f=0;f<e.length;f++){if(typeof e[f].className=="string"&&e[f].className.search(c)!=-1)d[d.length]=e[f]}return d};virtualpaginate.prototype.showpage=function(a){var b=this.pieces.length;var c=a*this.chunksize;var d=c+this.chunksize-1;for(var e=0;e<b;e++){if(e>=c&&e<=d)this.pieces[e].style.display="block";else this.pieces[e].style.display="none"}this.currentpage=parseInt(a);if(this.cpspan)this.cpspan.innerHTML="Page "+(this.currentpage+1)+"/"+this.pagecount};virtualpaginate.prototype.paginate_build_selectmenu=function(a,b){var c=this;var b=b||new Array;this.selectmenupresent=1;for(var d=0;d<this.pagecount;d++){if(typeof b[d]!="undefined")a.options[d]=new Option(b[d],d);else a.options[d]=new Option("Page "+(d+1)+" of "+this.pagecount,d)}a.selectedIndex=this.currentpage;a.onchange=function(){c.showpage(this.selectedIndex)}};virtualpaginate.prototype.paginate_build_regularlinks=function(a){var b=this;for(var c=0;c<a.length;c++){var d=a[c].getAttribute("rel");if(d=="previous"||d=="next"||d=="first"||d=="last")a[c].onclick=function(){b.navigate(this.getAttribute("rel"));return false}}};virtualpaginate.prototype.paginate_build_flatview=function(a,b){var c=this;var d="";var b=b||new Array;for(var e=0;e<this.pagecount;e++){if(typeof b[e]!="undefined")d+='<a href="#flatview" rel="'+e+'">'+b[e]+"</a> ";else d+='<a href="#flatview" rel="'+e+'">'+(e+1)+"</a> "}a.innerHTML=d;this.flatviewlinks=a.getElementsByTagName("a");for(var e=0;e<this.flatviewlinks.length;e++){this.flatviewlinks[e].onclick=function(){c.flatviewlinks[c.currentpage].className="";this.className="selected";c.showpage(this.getAttribute("rel"));return false}}this.flatviewlinks[this.currentpage].className="selected";this.flatviewpresent=true};virtualpaginate.prototype.paginate_build_cpinfo=function(a){this.cpspan=a;a.innerHTML="Page "+(this.currentpage+1)+"/"+this.pagecount};virtualpaginate.prototype.buildpagination=function(a,b){var c=this;var d=document.getElementById(a);if(this.chunksize==this.pieces.length){d.style.display="none";return}var e=d.innerHTML;if(d.getElementsByTagName("select").length>0)this.paginate_build_selectmenu(d.getElementsByTagName("select")[0],b);if(d.getElementsByTagName("a").length>0)this.paginate_build_regularlinks(d.getElementsByTagName("a"));var f=d.getElementsByTagName("span");for(var g=0;g<f.length;g++){if(f[g].className=="flatview")this.paginate_build_flatview(f[g],b);else if(f[g].className=="paginateinfo")this.paginate_build_cpinfo(f[g])}this.paginatediv=d};virtualpaginate.prototype.navigate=function(a){if(this.flatviewpresent)this.flatviewlinks[this.currentpage].className="";if(a=="previous")this.currentpage=this.currentpage>0?this.currentpage-1:this.currentpage==0?this.pagecount-1:0;else if(a=="next")this.currentpage=this.currentpage<this.pagecount-1?this.currentpage+1:0;else if(a=="first")this.currentpage=0;else if(a=="last")this.currentpage=this.pieces.length-1;this.showpage(this.currentpage);if(this.selectmenupresent)this.paginatediv.getElementsByTagName("select")[0].selectedIndex=this.currentpage;if(this.flatviewpresent)this.flatviewlinks[this.currentpage].className="selected"}
