
var discountsTable = new Array();
discountsTable[0] = new TDiscount(0  , 4);
discountsTable[1] = new TDiscount(5  , 9);
discountsTable[2] = new TDiscount(10 , 24);
discountsTable[3] = new TDiscount(25 , 49);
discountsTable[4] = new TDiscount(50 , 99);
discountsTable[5] = new TDiscount(100, 249);
discountsTable[6] = new TDiscount(250, 499);
discountsTable[7] = new TDiscount(500, 999);

var prodOpenersArr = new Array();
prodOpenersArr[0] = 8;
prodOpenersArr[1] = 9;
prodOpenersArr[2] = 10;
prodOpenersArr[3] = 11;

var gLargestQuantity = 999;
var gOldRowIndex = -1;
function TDiscount (aMinQ, aMaxQ) 
{
    this.MinQ = aMinQ;
    this.MaxQ = aMaxQ;
}
function getElById(aId)
{
  return document.getElementById(aId);
}
function getElByName(aName)
{
  return document.getElementsByName(aName)[0];
}
function inputChanged(aEl)
{
  recalcTotalAndDisplay();
}
function recalcTotalAndDisplay()
{
  var totalQuantity;

  totalQuantity = recalcTotal();
  displayInTable(totalQuantity);
}
function recalcTotal()
{
  var totalOpenersDisplay;
  totalOpenersDisplay = getElById('totalOpenersDisplay');

  var totalQuantity = 0;
  var sProduct;
  
  for (sProduct in prodOpenersArr)
  {
    totalQuantity += getQuantityFromInputByName(prodOpenersArr[sProduct]);
  }
  
  return totalOpenersDisplay.value = totalQuantity;
}
function getQuantityFromInputByName(aNamePart2)
{
  var resQ = 0;

  resQ = getElByName('qty_' + aNamePart2).value;
  resQ = parseInt(resQ);
  if (isNaN(resQ))
    resQ = 0;
  
  return resQ;
}
function displayInTable(aTotalQuantity)
{
  if (aTotalQuantity > gLargestQuantity) {
    changeMarkedTableRowHighLevel(discountsTable.length);
    return;
  }

  var sDiscount;
  for (var i = 0; i < discountsTable.length; i++)
  {
    sDiscount = discountsTable[i];
    
    
    if (aTotalQuantity >= sDiscount.MinQ && aTotalQuantity <= sDiscount.MaxQ) {
    
      changeMarkedTableRowHighLevel(i);
      break;
    }
  }
}
function changeMarkedTableRowHighLevel(aNewRow)
{
    changeMarkedTableRowLowLevel(gOldRowIndex, aNewRow);
    gOldRowIndex = aNewRow;
}
function changeMarkedTableRowLowLevel(aOldRow, aNewRow)
{
  if (aOldRow >= 0) {
    var trOld = getElById('tr_' + aOldRow);
    trOld.style.backgroundColor = '';
    trOld.style.border          = '';
  }
  
  var trNew = getElById('tr_' + aNewRow);
  trNew.style.backgroundColor = '#C4C7FF';
  trNew.style.border = '1px solid #E2E2E2';
  
  //background-color: #C4C7FF;
}
