var Paginator=function(a,e,b,d,c){if(!document.getElementById(a)||!e||!b){return false}this.inputData={paginatorHolderId:a,pagesTotal:e,pagesSpan:b<e?b:e,pageCurrent:d,baseUrl:c?c:"/pages/"};this.html={holder:null,table:null,trPages:null,trScrollBar:null,tdsPages:null,scrollBar:null,scrollThumb:null,pageCurrentMark:null};this.prepareHtml();this.initScrollThumb();this.initPageCurrentMark();this.initEvents();this.scrollToPageCurrent()};Paginator.prototype.prepareHtml=function(){this.html.holder=document.getElementById(this.inputData.paginatorHolderId);this.html.holder.innerHTML=this.makePagesTableHtml();this.html.table=this.html.holder.getElementsByTagName("table")[0];var a=this.html.table.getElementsByTagName("tr")[0];this.html.tdsPages=a.getElementsByTagName("td");this.html.scrollBar=getElementsByClassName(this.html.table,"div","scroll_bar")[0];this.html.scrollThumb=getElementsByClassName(this.html.table,"div","scroll_thumb")[0];this.html.pageCurrentMark=getElementsByClassName(this.html.table,"div","current_page_mark")[0];if(this.inputData.pagesSpan==this.inputData.pagesTotal){addClass(this.html.holder,"fullsize")}};Paginator.prototype.makePagesTableHtml=function(){var c=(100/this.inputData.pagesSpan)+"%";var b='<table width="100%"><tr>';for(var a=1;a<=this.inputData.pagesSpan;a++){b+='<td width="'+c+'"></td>'}b+='</tr><tr><td colspan="'+this.inputData.pagesSpan+'"><div class="scroll_bar"><div class="scroll_trough"></div><div class="scroll_thumb"><div class="scroll_knob"></div></div><div class="current_page_mark"></div></div></td></tr></table>';return b};Paginator.prototype.initScrollThumb=function(){this.html.scrollThumb.widthMin="8";this.html.scrollThumb.widthPercent=this.inputData.pagesSpan/this.inputData.pagesTotal*100;this.html.scrollThumb.xPosPageCurrent=(this.inputData.pageCurrent-Math.round(this.inputData.pagesSpan/2))/this.inputData.pagesTotal*this.html.table.offsetWidth;this.html.scrollThumb.xPos=this.html.scrollThumb.xPosPageCurrent;this.html.scrollThumb.xPosMin=0;this.html.scrollThumb.xPosMax;this.html.scrollThumb.widthActual;this.setScrollThumbWidth()};Paginator.prototype.setScrollThumbWidth=function(){this.html.scrollThumb.style.width=this.html.scrollThumb.widthPercent+"%";this.html.scrollThumb.widthActual=this.html.scrollThumb.offsetWidth;if(this.html.scrollThumb.widthActual<this.html.scrollThumb.widthMin){this.html.scrollThumb.style.width=this.html.scrollThumb.widthMin+"px"}this.html.scrollThumb.xPosMax=this.html.table.offsetWidth-this.html.scrollThumb.widthActual};Paginator.prototype.moveScrollThumb=function(){this.html.scrollThumb.style.left=this.html.scrollThumb.xPos+"px"};Paginator.prototype.initPageCurrentMark=function(){this.html.pageCurrentMark.widthMin="3";this.html.pageCurrentMark.widthPercent=100/this.inputData.pagesTotal;this.html.pageCurrentMark.widthActual;this.setPageCurrentPointWidth();this.movePageCurrentPoint()};Paginator.prototype.setPageCurrentPointWidth=function(){this.html.pageCurrentMark.style.width=this.html.pageCurrentMark.widthPercent+"%";this.html.pageCurrentMark.widthActual=this.html.pageCurrentMark.offsetWidth;if(this.html.pageCurrentMark.widthActual<this.html.pageCurrentMark.widthMin){this.html.pageCurrentMark.style.width=this.html.pageCurrentMark.widthMin+"px"}};Paginator.prototype.movePageCurrentPoint=function(){if(this.html.pageCurrentMark.widthActual<this.html.pageCurrentMark.offsetWidth){this.html.pageCurrentMark.style.left=(this.inputData.pageCurrent-1)/this.inputData.pagesTotal*this.html.table.offsetWidth-this.html.pageCurrentMark.offsetWidth/2+"px"}else{this.html.pageCurrentMark.style.left=(this.inputData.pageCurrent-1)/this.inputData.pagesTotal*this.html.table.offsetWidth+"px"}};Paginator.prototype.initEvents=function(){var a=this;this.html.scrollThumb.onmousedown=function(c){if(!c){var c=window.event}c.cancelBubble=true;if(c.stopPropagation){c.stopPropagation()}var b=getMousePosition(c).x-this.xPos;document.onmousemove=function(d){if(!d){var d=window.event}a.html.scrollThumb.xPos=getMousePosition(d).x-b;a.moveScrollThumb();a.drawPages()};document.onmouseup=function(){document.onmousemove=null;a.enableSelection()};a.disableSelection()};this.html.scrollBar.onmousedown=function(b){if(!b){var b=window.event}if(matchClass(a.paginatorBox,"fullsize")){return}a.html.scrollThumb.xPos=getMousePosition(b).x-getPageX(a.html.scrollBar)-a.html.scrollThumb.offsetWidth/2;a.moveScrollThumb();a.drawPages()};addEvent(window,"resize",function(){Paginator.resizePaginator(a)})};Paginator.prototype.drawPages=function(){var a=this.html.scrollThumb.xPos/(this.html.table.offsetWidth);var e=Math.round(a*this.inputData.pagesTotal);var c="";if(e<1){e=1;this.html.scrollThumb.xPos=0;this.moveScrollThumb()}else{if(e>=this.inputData.pagesTotal-this.inputData.pagesSpan){e=this.inputData.pagesTotal-this.inputData.pagesSpan+1;this.html.scrollThumb.xPos=this.html.table.offsetWidth-this.html.scrollThumb.offsetWidth;this.moveScrollThumb()}}for(var b=0;b<this.html.tdsPages.length;b++){var d=e+b;if(d==this.inputData.pageCurrent){c="<span><strong>"+d+"</strong></span>"}else{c="<span><a href='"+this.inputData.baseUrl+d+"'>"+d+"</a></span>"}this.html.tdsPages[b].innerHTML=c}};Paginator.prototype.scrollToPageCurrent=function(){this.html.scrollThumb.xPosPageCurrent=(this.inputData.pageCurrent-Math.round(this.inputData.pagesSpan/2))/this.inputData.pagesTotal*this.html.table.offsetWidth;this.html.scrollThumb.xPos=this.html.scrollThumb.xPosPageCurrent;this.moveScrollThumb();this.drawPages()};Paginator.prototype.disableSelection=function(){document.onselectstart=function(){return false};this.html.scrollThumb.focus()};Paginator.prototype.enableSelection=function(){document.onselectstart=function(){return true}};Paginator.resizePaginator=function(a){a.setPageCurrentPointWidth();a.movePageCurrentPoint();a.setScrollThumbWidth();a.scrollToPageCurrent()};function getElementsByClassName(d,c,b){var a=d.getElementsByTagName(c);if(!b){return a}var f=[];for(var e=0;e<a.length;e++){if(matchClass(a[e],b)){f[f.length]=a[e]}}return f}function addClass(b,a){replaceClass(b,a,"")}function removeClass(b,a){replaceClass(b,"",a)}function replaceClass(d,a,c){var b=a;if(c&&c.length){c=c.replace(/\s+(\S)/g,"|$1");if(b.length){b+="|"}b+=c}d.className=d.className.replace(new RegExp("(^|\\s+)("+b+")($|\\s+)","g"),"$1");d.className+=((d.className.length)?" ":"")+a}function matchClass(b,a){return(b&&b.className.length&&b.className.match(new RegExp("(^|\\s+)("+a+")($|\\s+)")))}function addEvent(a,c,b){if(a.addEventListener){a.addEventListener(c,b,false)}else{if(a.attachEvent){a.attachEvent("on"+c,b)}}}function removeEvent(a,c,b){if(a.removeEventListener){a.removeEventListener(c,b,false)}else{if(a.detachEvent){a.detachEvent("on"+c,b)}}}function getPageY(a){var b=a.offsetTop;while(a.offsetParent!=null){a=a.offsetParent;b+=a.offsetTop;if(a.tagName=="BODY"){break}}return b}function getPageX(a){var b=a.offsetLeft;while(a.offsetParent!=null){a=a.offsetParent;b+=a.offsetLeft;if(a.tagName=="BODY"){break}}return b}function getMousePosition(a){if(a.pageX||a.pageY){var c=a.pageX;var b=a.pageY}else{if(a.clientX||a.clientY){var c=a.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;var b=a.clientY+document.body.scrollTop+document.documentElement.scrollTop}}return{x:c,y:b}};