function setQty(check) {
  qtyName = check.name.replace("selected", "quantity");
  quantity = document.forms["topItemsGRForm"][qtyName];
  quantity.value=check.checked ? 1 : "";
}

function setSelectedClick(check) {
  selectName = check.name.replace("quantity", "selected");
  select = document.forms["topItemsGRForm"][selectName];
  select.checked=true;
}

function setSelectedBlur(check) {
  selectName = check.name.replace("quantity", "selected");
  select = document.forms["topItemsGRForm"][selectName];
  qtyName = check.name;
  quantity = document.forms["topItemsGRForm"][qtyName];
  select.checked = (quantity.value==null || trim(quantity.value)=="") ? false : true;
}

function trim(inputVal) {
  return inputVal.replace(/^\ +|\ +$/ig,"");
}

function sortBy(sortOrder, desturl, item_qties, sId) {
  desturl += "\&sb=" + sortOrder;
  setItemQuantities(desturl, item_qties, sId);
}

function setItemQuantities(desturl, item_qties, sId){
  var i;
  var formElement;
  var item_id;
  var qty;
  var array_item_qties = item_qties.split("|");
  var form = document.forms["topItemsGRForm"];
  // go thru all the item in the page, find the quantity for each, and update in the array
  for (i = 0; i < form.elements.length; i++) {
    formElement = form.elements[i];
    if (formElement.name.indexOf("quantity") == 0) {
       item_id = formElement.name.substring(formElement.name.indexOf("(") + 1, formElement.name.lastIndexOf(")"));
       qty = formElement.value;
       if (qty == null || qty == "null")
           qty = "";
       updateQty(array_item_qties, item_id, qty);
    }
  }

  // Now let's build the query string and append at the end of the
  // destination url
  qs = arrayToQueryString(array_item_qties);
  if (qs != "") {
    desturl += "&itemQties=" + qs
  }
  desturl += "&shelfId=" + sId;

  document.location = desturl;
  return false;
}

function arrayToQueryString(array_item_qties) {
  var qs = "";
  var k;
  for (k = 0; k < array_item_qties.length; k++) {
    enc = array_item_qties[k];
    if (enc == null || enc == "" || enc == "null")
      continue;
    qty = enc.substring(enc.indexOf("-") + 1);
    if (qty > 0) {
      qs = qs + enc + "|";
    }
  }
  return qs;
}

function itemIndex(array_item_qties, item_id) {
    var i;
    enc = item_id + "-";
    for (i = 0; i < array_item_qties.length; i++) {
        if (array_item_qties[i].indexOf(enc) == 0) {
            return i;
        }
    }
    return -1;
}

function updateQty(array_item_qties, item_id, qty) {
    item_index = itemIndex(array_item_qties, item_id);
    enc = item_id + "-" + qty;
    if (item_index == -1) {
        array_item_qties.push(enc);
    } else {
        array_item_qties[item_index] = enc;
    }
}
