var _rowIndex = 4;
var _rowCount = 4;

function getObject(objName) {
  var retObj = null;
  if (document.getElementById) {
    retObj = document.getElementById(objName);
  }
  else if (document.all) {
    retObj = eval("document.all."+objName);
  }
  else if (document.layers) {
    retObj = document.layers[objName];
  }
  return (retObj);
}

function validateForm(validateFields) {
  var error = false;
  var obj = null;
  for (var i=0;i<validateFields.length;i++) {
    obj = getObject(validateFields[i]);
    if (obj.value == "") {
      error = true;
      obj.style.border = 'solid 1px red';
    } else {
      obj.style.border = 'solid 1px gray';
    }
  }
  if (error) {
    alert("All fields marked in red are required to be filled.");
    return (false);
  } else {
    return (true);
  }
}

function validateContactUsForm() {
  var validateFields = ['contactName','company','phone','email'];
  return (validateForm(validateFields));
}

function validateOrderServiceForm() {
  var validateFields = ['contactName','company','phone','email'];
  return (validateForm(validateFields));
}

function validateOrderPartsForm() {
  // check for blank required fields
  var validateFields = ['contactName','company','phone','email'];
  if(validateForm(validateFields)) {
    // check for zero items
    if (_rowCount == 0) {
      alert("No items to order. Please add an item by clicking on the green plus [+] button.");
      return false;
    }
    // check for blank rows
    var errMsg = "";
    for (var r=1; r<_rowIndex+1; r++) {
      var qty = getObject("qty"+r);
      var model = getObject("model"+r);
      var part = getObject("part"+r);
      var desc = getObject("desc"+r);
      if (qty) {
        if (qty.value != "") {
          if (model && part && desc) {
            if (model.value == "" && part.value == "" && desc.value == "") {
              var msg = "Quantity with no part information.";
              if (errMsg.indexOf(msg) == -1) {
                if (errMsg != "") {
                  errMsg += "\n";
                }
                errMsg += msg;
                model.style.border = 'solid 1px red';
                part.style.border = 'solid 1px red';
                desc.style.border = 'solid 1px red';
                qty.style.border = 'solid 1px gray';
              }
            } else {
              model.style.border = 'solid 1px gray';
              part.style.border = 'solid 1px gray';
              desc.style.border = 'solid 1px gray';
              qty.style.border = 'solid 1px gray';
            }
          }
        } else {
          var msg = "No quantity entered.";
          if (errMsg.indexOf(msg) == -1) {
            if (errMsg != "") {
              errMsg += "\n";
            }
            errMsg += msg;
            qty.style.border = 'solid 1px red';
          }
          if (model.value != "") {
            model.style.border = 'solid 1px gray';
          }
          if (part.value != "") {
            part.style.border = 'solid 1px gray';
          }
          if (desc.value != "") {
            desc.style.border = 'solid 1px gray';
          }
        }
      }
    }
    if (errMsg != "") {
      alert(errMsg);
      return false;
    }
    return true;
  }
  return false;
}

function validateOrderSuppliesForm() {
  // check for blank required fields
  var validateFields = ['contactName','company','phone','email'];
  if(validateForm(validateFields)) {
    // check for zero items
    if (_rowCount == 0) {
      alert("No items to order. Please add an item by clicking on the green plus [+] button.");
      return false;
    }
    // check for blank rows
    var errMsg = "";
    for (var r=1; r<_rowIndex+1; r++) {
      var qty = getObject("qty"+r);
      var model = getObject("model"+r);
      var part = getObject("part"+r);
      var desc = getObject("desc"+r);
      if (qty) {
        if (qty.value != "") {
          if (model && part && desc) {
            if (model.value == "" && part.value == "" && desc.value == "") {
              var msg = "Quantity with no supply information.";
              if (errMsg.indexOf(msg) == -1) {
                if (errMsg != "") {
                  errMsg += "\n";
                }
                errMsg += msg;
                model.style.border = 'solid 1px red';
                part.style.border = 'solid 1px red';
                desc.style.border = 'solid 1px red';
                qty.style.border = 'solid 1px gray';
              }
            } else {
              model.style.border = 'solid 1px gray';
              part.style.border = 'solid 1px gray';
              desc.style.border = 'solid 1px gray';
              qty.style.border = 'solid 1px gray';
            }
          }
        } else {
          var msg = "No quantity entered.";
          if (errMsg.indexOf(msg) == -1) {
            if (errMsg != "") {
              errMsg += "\n";
            }
            errMsg += msg;
            qty.style.border = 'solid 1px red';
          }
          if (model.value != "") {
            model.style.border = 'solid 1px gray';
          }
          if (part.value != "") {
            part.style.border = 'solid 1px gray';
          }
          if (desc.value != "") {
            desc.style.border = 'solid 1px gray';
          }
        }
      }
    }
    if (errMsg != "") {
      alert(errMsg);
      return false;
    }
    return true;
  }
  return false;
}

function toggleField(listName,cmpValue,fldName) {
  var listObj = getObject(listName);
  var fldObj = getObject(fldName);
  if (listObj && fldObj) {
    if (listObj.options[listObj.options.selectedIndex].value == cmpValue) {
      fldObj.style.visibility = 'visible';
    } else {
      fldObj.style.visibility = 'hidden';
    }
  }
}

function addItem(divName) {
  var div = getObject(divName);
  var rowIndex = getObject('rowIndex');
  var rowCount = getObject('rowCount');
  if (div && rowIndex && rowCount) {
    _rowIndex += 1;
    rowIndex.value = _rowIndex;
    _rowCount += 1;
    rowCount.value = _rowCount;
    var cellData = div.innerHTML;
    cellData = cellData.replace("</TBODY></TABLE>","");
    cellData += "<tr id=\"partRow"+ _rowIndex +"\">";
    cellData += "<td><input name=\"qty" + _rowIndex +"\" type=\"text\" size=\"3\" maxlength=\"3\" class=\"textField01\"></td>";
    cellData += "<td><input name=\"model" + _rowIndex +"\" type=\"text\" size=\"25\" maxlength=\"40\" class=\"textField01\"></td>";
    cellData += "<td><input name=\"part" + _rowIndex +"\" type=\"text\" size=\"20\" maxlength=\"30\" class=\"textField01\"></td>";
    cellData += "<td colspan=\"2\"><input name=\"desc" + _rowIndex +"\" type=\"text\" size=\"40\" maxlength=\"60\" class=\"textField01\"></td>";
    cellData += "<td><a href=\"javascript:removeItem('"+ divName +"',"+ _rowIndex +");\"><img src=\"../images/remove_item.gif\" width=\"12\" height=\"12\" border=\"0\" title=\"Remove this item\"></a></td>";
    cellData += "</tr></tbody></table>";
    div.innerHTML = cellData;
    if (_rowCount != 0) {
      var addLabel = getObject('addLabel');
      var addButton = getObject('addButton');
      if (addLabel && addButton) {
        addLabel.innerText = 'Add Another Item';
        addButton.title = 'Add another item';
      }
    }
  }
}

function preloadImages() {
  var dir = '../images/';
  var imageArray = ['tab_nav_on','contact_on','supplies_on','parts_on','service_on'];
  var ext = '.gif';
  for (var i=0; i<imageArray.length; i++) {
    var newImage = new Image;
    newImage.src = dir + imageArray[i] + ext;
  }
}

function initPage() {
  preloadImages();
  if (getObject('rowIndex')) {
    _rowIndex = parseInt(getObject('rowIndex').value);
  }
  if (getObject('rowCount')) {
    _rowCount = parseInt(getObject('rowCount').value);
  }

}

function removeItem(divName,rowNum) {
  var div = getObject(divName);
  var rowCount = getObject('rowCount');
  if (div && rowNum && rowCount) {
    var cellData = div.innerHTML;
    var startIndex = cellData.indexOf("<TR id=partRow"+rowNum+">");
    if (startIndex != -1) {
      var endIndex = cellData.indexOf("</TR>",startIndex);
      if (endIndex != -1) {
        div.innerHTML = cellData.substring(0,startIndex) + cellData.substring(endIndex);
        _rowCount -= 1;
        rowCount.value = _rowCount;
        if (_rowCount == 0) {
          var addLabel = getObject('addLabel');
          var addButton = getObject('addButton');
          if (addLabel && addButton) {
            addLabel.innerText = 'Click to Add an Item';
            addButton.title = 'Click to add the first item';
          }
        }
      }
    }
  }
}
