var Pagination=new Class({Implements:Log,initialize:function(E,B,C,A,D){this.startPage=C?C:1;this.perPage=B?B:10;this.currentPage=this.startPage;this.elements=E;this.pages=Math.ceil(this.elements.length/this.perPage);this.jumpers=new Element("div",{"class":"pagination"});this.pageNumbers=new Array;this.statusText=new Element("span",{"class":"pagination-status"});this.jumpers.adopt(this.statusText);ul=new Element("ul");li=new Element("li");lis=new Array;for(x=0;x<this.pages;x++){this.pageNumbers[x]=new Element("a",{html:x+1,href:"#"});lis[x]=new Element("li");this.pageNumbers[x].addEvent("click",this.clicked.bind(this));lis[x].adopt(this.pageNumbers[x]);}this.previous=new Element("a",{href:"#",html:"previous"});this.previous.addEvent("click",this.previousPage.bind(this));prev=li.clone().set("class","previous");prev.adopt(this.previous);this.next=new Element("a",{href:"#",html:"next"});this.next.addEvent("click",this.nextPage.bind(this));next=li.clone().set("class","next");next.adopt(this.next);this.jumpers.inject(A,D);ul.adopt(prev,lis,next);this.fx=new Fx.Tween(this.elements[0].getParent());this.jumpers.adopt(ul);this.updateStatus();this.showHideEntities();},clicked:function(A){A.preventDefault();this.currentPage=A.target.get("html").toInt();this.changePage();},updateStatus:function(){this.statusText.set("html","Showing "+(((this.currentPage-1)*this.perPage)+1).toString()+" - "+((this.currentPage*this.perPage)>this.elements.length?this.elements.length:(this.currentPage*this.perPage))+" of "+this.elements.length.toString()+" (Page "+this.currentPage.toString()+" of "+this.pages.toString()+")");this.highlightPage();},nextPage:function(A){A.preventDefault();if(this.currentPage<this.pages){this.currentPage++;this.changePage();}},previousPage:function(A){A.preventDefault();if(this.currentPage>1){this.currentPage--;this.changePage();}},highlightPage:function(){for(x=0;x<this.pageNumbers.length;x++){this.pageNumbers[x].getParent().set("class",(x+1==this.currentPage?"active":null));}},changePage:function(){this.updateStatus();if(!Browser.Engine.trident){fx=new Fx.Scroll(window);this.fx.start("opacity",1,0).chain(this.showHideEntities.bind(this));}else{this.showHideEntities();}},showHideEntities:function(A){for(x=0;x<this.elements.length;x++){if(x<((this.currentPage-1)*this.perPage)||x>=((this.currentPage)*this.perPage)){this.elements[x].setStyle("display","none");}else{if(Browser.Engine.trident){this.elements[x].setStyle("display","block");}else{this.elements[x].setStyle("display","table-row-group");}}}if(!Browser.Engine.trident){this.fx.start("opacity",0,1);}}});