var paginationNumeric=new Class({Implements:Options,container:null,pagination:null,cache:[],options:{pages:1,page:1,numlinks:5,param:'seite',url:document.location,method:'post',usecache:true,useanchor:true},initialize:function(container,pagination,options){this.setOptions(options);var reg=new RegExp('\/'+this.options.param+',\\d+','gi');this.options.url=this.options.url.replace(reg,'');this.container=$(container);this.pagination=$(pagination);if(!this.container||!this.pagination){return false}this.pagination.getElements('a').addEvent('click',this.paginate.bind(this))},paginate:function(event){var targetPage=this.options.page;if(event.target.hasClass('prev-first')){targetPage=1}else if(event.target.hasClass('prev')&&targetPage>1){targetPage--}else if(event.target.hasClass('next')&&targetPage<this.options.pages){targetPage++}else if(event.target.hasClass('next-last')){targetPage=this.options.pages}else if(!isNaN(event.target.get('text'))){targetPage=event.target.get('text')}this.options.page=targetPage;this.update_pagination();this.update_container();event.stop();return false},update_pagination:function(){this.pagination.empty();if(this.options.page>1){var li_elem=new Element('li');(new Element('a',{href:this.getUrl(1),title:'Erste Seite','class':'prev-first',events:{'click':this.paginate.bindWithEvent(this)}})).inject(li_elem);li_elem.inject(this.pagination);var li_elem=new Element('li');(new Element('a',{href:this.getUrl(this.options.page-1),title:'Zurück','class':'prev',events:{'click':this.paginate.bindWithEvent(this)}})).inject(li_elem);li_elem.inject(this.pagination)}var numlinks=this.options.numlinks;if(numlinks>this.options.pages){numlinks=this.options.pages}var start=this.options.page-Math.floor(numlinks/2);if(start<1){start=1}if(start+numlinks>this.options.pages){start=this.options.pages-numlinks+1}for(var i=start;i<start+numlinks;i++){var li_elem=new Element('li');if(i==this.options.page){(new Element('span',{text:i})).inject(li_elem)}else{(new Element('a',{href:this.getUrl(i),title:'Seite '+i,text:i,events:{'click':this.paginate.bindWithEvent(this)}})).inject(li_elem)}li_elem.inject(this.pagination)}if(this.options.page<this.options.pages){var li_elem=new Element('li');(new Element('a',{href:this.getUrl(this.options.page+1),title:'Weiter','class':'next',events:{'click':this.paginate.bindWithEvent(this)}})).inject(li_elem);li_elem.inject(this.pagination);var li_elem=new Element('li');(new Element('a',{href:this.getUrl(this.options.pages),title:'letzte Seite','class':'next-last',events:{'click':this.paginate.bindWithEvent(this)}})).inject(li_elem);li_elem.inject(this.pagination)}},update_container:function(){if(this.options.usecache&&this.cache[this.options.page]){this.container.set('html',this.cache[this.options.page]);if(this.options.useanchor&&this.container.id){window.location.href='#'+this.container.id}}else{(new Request({method:this.options.method,url:this.getUrl(this.options.page),onSuccess:function(responseText){if(this.options.usecache){this.cache[this.options.page]=responseText}this.container.set('html',responseText);if(this.options.useanchor&&this.container.id){window.location.href='#'+this.container.id}}.bind(this)})).send()}},getUrl:function(page){return this.options.url+(this.options.url.substr(this.options.url.length,-1)!='/'?'/':'')+this.options.param+','+page+'/'},flush:function(){this.cache.empty()}});window.addEvent('domready',function(){if(typeof paginationNumericOptions!='undefined'){new paginationNumeric(paginationNumericOptions.container,paginationNumericOptions.pagination,paginationNumericOptions)}});
