function calcPage(form, direction) {
  var val = parseInt(form.ofset.value);
  var lmt = parseInt(form.limit.value);
  var ttl = parseInt(form.total.value);
  var old = val;
  var min = 0;
  var max = ttl - lmt;
  if(max < min)
    max = min;
  switch(direction) {
    case -2:  
      val = min; 
      break;
    case -1:
      val -= lmt;
      if(val < min)
        val = min;
      break;
    case 1: 
      val += lmt;
      if(val > max)
        val = max;
      break;
    case 2: 
      val = max; 
      break;       
    default: 
      return false;  
  }
  form.ofset.value = val;
  return old == val;
}

function doBack(form, opcode) {
  form.bkcode.value = 1;
  return doSubmit(form, opcode);
}

function doCRUD(form, opcode, adID) {
  form.adID.value = adID;
  return doSubmit(form, opcode);
}

function doPage(form, opcode, direction, ofset) {
  if(direction == 0) {
    if(form.ofset.value == ofset)
      return false;
    form.ofset.value = ofset;
  } else {
    if(calcPage(form, direction))
      return false;
  }
  form.pager.value = JSON.stringify({
    "published" : form.published.value
  , "category"  : form.category.value
  , "orderby"   : form.orderby.value
  , "direction" : form.direction.value
  , "ofset"     : form.ofset.value
  , "limit"     : form.limit.value
  });
  return doSubmit(form, opcode);
}

function doSubmit(form, opcode) {
  form.opcode.value = opcode;
  form.submit();
  return false;
}

