diff -r db6b116b8ea7 -r b5b8e7ab0914 includes/clientside/static/paginate.js --- a/includes/clientside/static/paginate.js Fri Dec 18 05:05:01 2009 -0500 +++ b/includes/clientside/static/paginate.js Fri Dec 18 05:12:02 2009 -0500 @@ -11,7 +11,7 @@ var pagin_objects = new Object(); -window.paginator = function(data, callback, offset, perpage, passer) +window.paginator = function(data, callback, offset, perpage, passer, ov_num_pages, ov_flip_func) { load_component('flyin'); if ( !perpage || typeof(perpage) != 'number' || ( typeof(perpage) == 'number' && perpage < 1 ) ) @@ -30,9 +30,26 @@ this.passer = passer; else this.passer = false; - this.num_pages = Math.ceil(data.length / perpage ); + if ( ov_num_pages ) + { + this.num_pages = ov_num_pages; + this.flip_func = ov_flip_func; + } + else + { + this.num_pages = Math.ceil(data.length / perpage); + this.flip_func = false; + } this.random_id = 'autopagin_' + Math.floor(Math.random() * 1000000); this._build_control = _build_paginator; + this.set_page = function(number) + { + this.offset = number * this.perpage; + var html = this._build_control(number); + var elements = getElementsByClassName(document.body, 'div', this.random_id + '_control'); + for ( var i = 0; i < elements.length; i++ ) + elements[i].innerHTML = html; + } if ( this.num_pages > 1 ) { var pg_control = '
'+this._build_control(0)+'
'; @@ -68,7 +85,7 @@ window._build_paginator = function(this_page) { - var div_styling = ( IE ) ? 'width: 1px; margin: 10px auto 10px 0;' : 'display: table; margin: 10px 0 0 auto;'; + var div_styling = ( IE ) ? 'width: 1px; margin: 10px auto 10px 0;' : 'display: table; margin: 10px 0 10px auto;'; var begin = '
'; var block = ''; var end = '
' + $lang.get('paginate_lbl_page') + '{LINK}
'; @@ -201,6 +218,12 @@ if ( __paginateLock ) return false; var theobj = pagin_objects[pagin_id]; + if ( theobj.flip_func ) + { + theobj.flip_func(theobj, jump_to); + __paginateLock = false; + return true; + } var current_div = false; var new_div = false; for ( var i = 0; i < theobj.num_pages; i++ )