/*
  MaterialsForm.js
  caprem2 materials order form javascript functions used by materials.asp
  'Eugene Kerner' <ekerner@ekerner.com>
  v1.0 16-11-2009 "Initial release"
*/

  function buildMaterialsInventory() {
    var formObj   = document.getElementById('MaterialsForm');
    var inventory = '';
    if (parseFloat(formObj.Materials_PriceTotal.value) > 0) {
      for (var i = 0; i < formObj.elements.length; i++) {
        var elem = formObj.elements[i];
        if (elem.name && elem.name.match(/_Quantity/) && elem.value) {
          var elemName = elem.name.replace(/_Quantity/, '');
          inventory += elem.value + ' x ' + elemName + ' @ $' +
                       formObj[elemName + '_PriceEach'].value + '/ea = $' +
                       formObj[elemName + '_PriceSubTotal'].value + '\n';
        }
      }
      inventory += '\nTotal = $' + formObj.Materials_PriceTotal.value + '\n';
    }
    return inventory;
  }

  function tallyMaterialsTotals(elemNamePrefix) {
    var formObj   = document.getElementById('MaterialsForm');
    var qtyElem   = formObj[elemNamePrefix + '_Quantity'];
    var eachElem  = formObj[elemNamePrefix + '_PriceEach'];
    var totalElem = formObj[elemNamePrefix + '_PriceSubTotal'];
    var totalSpan = document.getElementById(elemNamePrefix + '_PriceSubTotal_Span');
    // tally the item
    var total    = 0.00;
    if (qtyElem.value == '0' || !qtyElem.value.match(/^\d+$/)) {
      qtyElem.value = '';
      total = '0.00';
    } else {
      total = roundUpCurrency(parseFloat(qtyElem.value) * parseFloat(eachElem.value));
    }
    totalSpan.innerHTML = totalElem.value = total;
    // tally the total ...
    total = 0.00;
    for (var i = 0; i < formObj.elements.length; i++) {
      if (formObj.elements[i].name.match(/_PriceSubTotal$/))
        total += parseFloat(formObj.elements[i].value);
    }
    total = roundUpCurrency(total);
    totalElem = formObj.Materials_PriceTotal;
    totalSpan = document.getElementById('Materials_PriceTotal_Span');
    totalSpan.innerHTML = totalElem.value = total;
  }

  function roundUpCurrency(currency) {
    currency          = String(currency);
    var i             = 0;
    var dollarsNcents = currency.split('.', 2);
    dollarsNcents[1] += "000";
    var centsDecimals = dollarsNcents[1].split('', 3);
    if (! dollarsNcents[0].match(/\d+/)) dollarsNcents[0] = 0;
    for (; i < 3; i++) if (! centsDecimals[i].match(/^\d$/)) centsDecimals[i] = 0;
    if (centsDecimals[2] > 4)     centsDecimals[1]++;
    if (centsDecimals[1] == 10) { centsDecimals[1] = 0; centsDecimals[0]++; }
    if (centsDecimals[0] == 10) { centsDecimals[0] = 0; dollarsNcents[0]++; }
    return dollarsNcents[0] + '.' + centsDecimals[0] + centsDecimals[1];
  }
  
  function validateMaterialsForm(formObj)
  {
    if (formObj.Name.value == '') {
      alert('Sorry, I didnt catch your name?');
      formObj.Name.focus();
      return false;
    }
    else if (formObj.PhoneOrEmail.value == '') {
      alert('We will need your phone number or email address so we can arrange delivery.');
      formObj.PhoneOrEmail.focus();
      return false;
    }
    formObj.sumbit();
    return true;
  }
