-mkdru.limitQuery = function (field, value) {
- $('.mkdru-search input:text').attr('value', function () {
- return this.value += ' and ' + field + '="' + value + '"';
- });
- mkdru.submitQuery();
-};
-
-mkdru.limitTarget = function (id, name) {
- var navi = document.getElementById('mkdru-navi');
- navi.innerHTML =
- 'Source: <a class="crossout" href="#" onclick="delimitTarget();return false;">'
- + name + '</a>';
- navi.innerHTML += '<hr/>';
- mkdru.state.filter = 'pz:id=' + id;
- mkdru.resetPage();
- mkdru.pollDropDowns();
- mkdru.search();
- return false;
-};
-
-mkdru.resetPage = function () {
- mkdru.state.page = 1;
- mkdru.totalRec = 0;
-};
-
-mkdru.showPage = function (pageNum) {
- mkdru.state.page = pageNum;
- mkdru.pz2.showPage(pageNum-1);
-};
-
-mkdru.requestDetail = function (e) {
- mkdru.pz2.record(e.target.parentNode.id.replace('rec_', ''));
-};
-
-mkdru.nextPage = function () {
- if (mkdru.totalRec - mkdru.state.perpage * mkdru.state.page > 0) {
- mkdru.pz2.showNext();
- mkdru.state.page++;
+mkdru.generatePager = function () {
+ // make sure page param is a number, otherwise pageing frwd will be broken
+ if (typeof mkdru.state.page == "string") {
+ mkdru.state.page = Number(mkdru.state.page);
+ }
+ var total = Math.ceil(mkdru.totalRec / mkdru.state.perpage);
+ var first = (mkdru.state.page - mkdru.pagerRange > 0)
+ ? mkdru.state.page - mkdru.pagerRange : 1;
+ var last = first + 2 * mkdru.pagerRange < total
+ ? first + 2 * mkdru.pagerRange : total;
+ var prev = null;
+ var next = null;
+ var pages = [];
+
+ if ((mkdru.state.page - 1) >= first) {
+ prev = "#" + $.param.fragment($.param.fragment(
+ window.location.href, {page: mkdru.state.page - 1}))
+ }
+ if ((mkdru.state.page + 1) <= total) {
+ next = "#" + $.param.fragment($.param.fragment(
+ window.location.href, {page: mkdru.state.page + 1}))