/**
 * Functions to navigate through pager
 * requires pager template to set pager_id, page_nr, max_page
 */


addKeyMap(33, 'pagerPagePrev');
addKeyMap(34, 'pagerPageNext');
addKeyMap(35, 'pagerPageLast');
addKeyMap(36, 'pagerPageFirst');
addKeyMap(38, 'pagerItemPrev');
addKeyMap(40, 'pagerItemNext');

function pagerPageFirst() {
  if (page_nr > 1) {
    window.location = pager_href + '0';
  }
}

function pagerPageLast() {
  if (page_nr < max_page) {
    window.location = pager_href + max_page;
  }
}

function pagerPageNext() {
  if (page_nr < max_page) {
    window.location = pager_href + (page_nr + 1);
  }
}

function pagerPagePrev() {
  if (page_nr > 1) {
    window.location = pager_href + (page_nr - 1);
  }
}

function pagerItemPrev() {
  if (window.newid) {
    selected_radio_id = 'radiobutton_' + newid;
    cur = document.getElementById(selected_radio_id);
    while (getPrevElement(cur)) {
      cur = getPrevElement(cur);
      if (cur.nodeName == 'INPUT' && cur.type == 'radio') {
        newid=cur.value;
        selected_radio_id = 'radiobutton_' + cur.value;
        cur.checked = true;
        renderDetail(cur.value);
        break;
      } else if (cur.nodeName == 'INPUT' && cur.type == 'hidden' && cur.value == 'pagerlimit') {
        pagerPagePrev();
        break;
      }
    }
  }
}

function pagerItemNext() {
  if (window.newid) {
    selected_radio_id = 'radiobutton_' + newid;
    cur = document.getElementById(selected_radio_id);
    while (getNextElement(cur)) {
      cur = getNextElement(cur);
      if (cur.nodeName == 'INPUT' && cur.type == 'radio') {
        renderDetail(cur.value);
        newid=cur.value;
        selected_radio_id = 'radiobutton_' + cur.value;
        cur.checked = true;
        break;
      } else if (cur.nodeName == 'INPUT' && cur.type == 'hidden' && cur.value == 'pagerlimit') {
        pagerPageNext();
        break;
      }
    }
  }
}

