
// This function can display rates of Exchange, Cross, Note and MI.
function add(table) {
  var row, ccy, buy, sell, xBuy, xSell, deposit;
  var name = table.id + "Rate";
  var obj = eval(name);
  var buyRate, sellRate;

  var type = table.getAttribute('name');

  // Get the MOP exchange rate for future use
  for (var i = 0; i < obj.length; i++) {
    if ( (table.id == "Ex") && (obj[i].CCY == "MOP") ) {
      buyRate = obj[i].Buy;
      sellRate = obj[i].Sell;
    }
  }

  for (var i = 0; i < obj.length; i++) {
    row = table.insertRow(-1);
    row.align = "center";

    if (type != "MOP") {
      ccy = row.insertCell(-1);
      ccy.setAttribute('class', 'Blue4');
      ccy.setAttribute('className', 'Blue4');

      ccy.setAttribute('class', 'Blue4');
      ccy.setAttribute('className', 'Blue4');
      ccy.innerHTML = obj[i].CcyDesc;

      buy = row.insertCell(-1);
      buy.setAttribute('class', 'footer_darkgreytext');
      buy.setAttribute('className', 'footer_darkgreytext');
      buy.innerHTML = obj[i].Buy;

      sell = row.insertCell(-1);
      sell.setAttribute('class', 'footer_darkgreytext');
      sell.setAttribute('className', 'footer_darkgreytext');
      sell.innerHTML = obj[i].Sell;
    }

    // Add the buy & sell rates of MOP in MOP exchange rate page
    if ( (table.id == "Ex") && (type == "MOP") ) {
      var mopBuy = eval(obj[i].Buy * buyRate);
      var mopSell = eval(obj[i].Sell * sellRate);

      if (obj[i].CCY == "RMB") {
        mopBuy = eval(obj[i].Buy / buyRate);
        mopSell = eval(obj[i].Sell / sellRate);
      }

      mopBuy = mopBuy * 10000;
      mopBuy = Math.round(mopBuy);
      mopBuy /= 10000;

      mopSell = mopSell * 10000;
      mopSell = Math.round(mopSell);
      mopSell /= 10000;

      if (obj[i].CCY != "MOP") {
        cell = row.insertCell(-1);
        cell.setAttribute('class', 'Blue4');
        cell.setAttribute('className', 'Blue4');
        cell.innerHTML = obj[i].CcyDesc;

        buy = row.insertCell(-1);
        buy.setAttribute('class', 'footer_darkgreytext');
        buy.setAttribute('className', 'footer_darkgreytext');
        buy.innerHTML = mopBuy;

        sell = row.insertCell(-1);
        sell.setAttribute('class', 'footer_darkgreytext');
        sell.setAttribute('className', 'footer_darkgreytext');
        sell.innerHTML = mopSell;
        insertLine();
      } else {
        table.deleteRow(-1);
      }
    } else {
     insertLine();
    }
  }
}



// This function displays rates of savings
function addSaving(table) {
  var row, ccy, desc, rate;
  var name = table.id + "Rate";
  var obj = eval(name);
  var firstCCY = obj[0].CCY;
  var allCCY = new Array();
  var rates = new Array();
  var groupCount = 1;
  var groupLength;

  // First, get all available tenors, to construct first row
  var firstTenor = obj[0].Desc;
  var allTenors = new Array();

  allTenors[0] = "";
  allTenors[1] = obj[0].Desc;

  var offset = 2;
  for (var i = 1; i < obj.length; i++) {
    if (obj[i].Desc != firstTenor) {
      allTenors[offset] = obj[i].Desc;
      firstTenor = obj[i].Desc;
      offset++;
    }
  }
  addRow(allTenors, table, "ccy");


  // Then, get all available CCYs
  allCCY[0] = "";
  allCCY[1] = obj[0].CcyDesc;

  offset = 2;
  for (var i = 1; i < obj.length; i++) {
    if (obj[i].CCY != firstCCY) {
      allCCY[offset] = obj[i].CcyDesc;
      offset++;
    } else {
      break;
    }
  }

  // Construct rows
  for (var i = 1; i < allCCY.length; i++) {
    var currentCCY = allCCY[i];
    var offset = 1;
    rates[0] = currentCCY;
    for (var j = 0; j < obj.length; j++) {
      if (obj[j].CcyDesc == currentCCY) {
        rates[offset] = obj[j].Rate;
        offset++;
      }
    }
    addRow(rates, table, "rates");
    rates = new Array();
  }
}



// This function just add a row from an array of Saving Rates page
function addRow(rowArray, table, method) {
  var row, cell;

  table.border = 0;
  row = table.insertRow(-1);
  row.align = "right";
  if (method == "rates") {
  } else if (method == "ccy") {
    row.setAttribute('class', 'Blue3');
    row.setAttribute('className', 'Blue3');
  }

  for (var i = 0; i < rowArray.length; i++) {
    cell = row.insertCell(-1);
    if (method == "ccy") {
      cell.align = 'right';
      /*
      if (!rowColor) {
          cell.className = 'Orange';
          rowColor = true;
      } else {
          cell.className = 'Blue1';
          rowColor = false;
      }
      */
    } else if (method == "rates") {
      if (i == 0) {
        cell.align = 'center';
        cell.setAttribute('class', 'Blue4');
        cell.setAttribute('className', 'Blue4');
      } else {
        cell.setAttribute('class', 'footer_darkgreytext');
        cell.setAttribute('className', 'footer_darkgreytext');
      }
    }
    cell.innerHTML = rowArray[i];
  }

  if (method == "rates") {
    insertLine();
  }
}



function insertLine() {
  document.write('<tr class=tfb_listline bgColor="#CCCCCC">');
  document.write('<td height="1" colspan="15"></td>');
  document.write('</tr>');
}