/*
  index.js
*/ 


//--- checkMfrOther ---
function checkMfrOther(intLineNr) {
  var frmEntry = document.getElementById('entry_form');
  var eleSelect = frmEntry.elements["mfr_select_" + intLineNr];
  var intIndex = eleSelect.options.selectedIndex;
  var strValue = eleSelect.options[intIndex].value;
  
  if (strValue == "Other") {
    var txtOther = frmEntry.elements["mfr_other_" + intLineNr];
    txtOther.focus();
  }
}


//--- checkEquipOther ---
function checkEquipOther(intLineNr) {
  var frmEntry = document.getElementById('entry_form');
  var eleSelect = frmEntry.elements["equip_type_select_" + intLineNr];
  var intIndex = eleSelect.options.selectedIndex;
  var strValue = eleSelect.options[intIndex].value;
  
  if (strValue == "Other") {
    var txtOther = frmEntry.elements["equip_type_other_" + intLineNr];
    txtOther.focus();
  }
}


//--- CloseNotFound ---
function CloseNotFound() {
  var objNF  = document.getElementById('not_found_message');
  objNF.style.display = 'none';
}


//--- CountryChange ---
function CountryChange() {
  var frmEntry = document.getElementById('entry_form');
  var intIndex = frmEntry.country.options.selectedIndex;
  var strCountry = frmEntry.country.options[intIndex].value;
  var strCountryCode;
  var objStatePrompt = document.getElementById('state_prompt');
  
  strCountryCode = Trim(strCountry.substring(0,2));
  if (strCountryCode == "US") {
    frmEntry.state_text.style.display = "none";
    frmEntry.state_text.value = "";
    frmEntry.state_select.style.display = "inline";
    objStatePrompt.style.color = "red";
  }
  else {
    frmEntry.state_select.style.display = "none";
    frmEntry.state_select.options.selectedIndex = 0;
    frmEntry.state_text.style.display = "inline";
    objStatePrompt.style.color = "black";
  }
}


//--- FormSubmit ---
function FormSubmit() {
  var frmEntry;
  var strContactName;
  var strErrorMsg = '';
  
  frmEntry = document.getElementById('entry_form');
  strErrorMsg = ValidateContactName(frmEntry, strErrorMsg);
  strErrorMsg = ValidateEmail(frmEntry, strErrorMsg);
  strErrorMsg = ValidateState(frmEntry, strErrorMsg);
  strErrorMsg = ValidateItems(frmEntry, strErrorMsg);
  if (strErrorMsg.length > 0) {
    strErrorMsg = "Error:\n\n" + strErrorMsg;
    alert(strErrorMsg);
  }
  else {
    frmEntry.submit();
  } 
}


//--- onLoadInit ---
function onLoadInit() {
  // call a country change event to make sure state-input type is correct
  CountryChange();
}


//--- ValidateEmail ---
function ValidateEmail(frmEntry, strErrorMsg) {
  strEmail = Trim(frmEntry.email.value);
  if(strEmail.length == 0) {
    strErrorMsg += " - Email required. \n";
  }
  return strErrorMsg;
}


//--- ValidateContactName ---
function ValidateContactName(frmEntry, strErrorMsg) {
  strContactName = Trim(frmEntry.full_name.value);
  if (strContactName.length == 0) {
    strErrorMsg += " - Contact Name required. \n";
  }
  return strErrorMsg;
}


//--- ValidateItems ---
function ValidateItems(frmEntry, strErrorMsg) {
  var intItemQty, blnBadEntry;
  var intLine, intIndex;
  var blnRush, strMfr, strMfrOther;
  var strEquipType, strEquipTypeOther
  var strPartNr, strSerialNr, strPoNr;
  
  intItemQty = 0;
  blnBadEntry = false;
  blnBadOther = false;
  
  for (intLine=1; intLine<=6; intLine++) {
    blnRush = frmEntry.elements["rush_flag_" + intLine].checked;    
    intIndex = frmEntry.elements["mfr_select_" + intLine].options.selectedIndex;
    strMfr = frmEntry.elements["mfr_select_" + intLine].options[intIndex].value;
    strMfrOther = Trim(frmEntry.elements["mfr_other_" + intLine].value);
    intIndex = frmEntry.elements["equip_type_select_" + intLine].options.selectedIndex;
    strEquipType = frmEntry.elements["equip_type_select_" + intLine].options[intIndex].value;
    strEquipTypeOther = Trim(frmEntry.elements["equip_type_other_" + intLine].value);
    strPartNr = Trim(frmEntry.elements["part_nr_" + intLine].value);
    strSerialNr = Trim(frmEntry.elements["serial_nr_" + intLine].value);
    strPoNr = Trim(frmEntry.elements["po_nr_" + intLine].value);
    intIndex = frmEntry.elements["est_weight_" + intLine].options.selectedIndex;
    strEstWeight = frmEntry.elements["est_weight_" + intLine].options[intIndex].value;
    
    // see if the line has any input
    if ( (blnRush == true)     ||
         (strMfr.length > 0) ||
         (strMfrOther.length > 0) ||
         (strEquipType.length > 0) ||
         (strEquipTypeOther.length > 0) ||
         (strPartNr.length > 0) ||
         (strSerialNr.length > 0) ||
         (strPoNr.length > 0)  ||
         (strEstWeight.length > 0)  
         ) {
      // ok, there is input on this line. 
      intItemQty++;
      
      // now, make sure requirements are there ...
      if ( (strMfr.length == 0) ||
           (strEquipType.length == 0) || 
           (strEstWeight.length == 0) ) { 
        blnBadEntry = true; 
      }
      
      // also make sure Other is specified
      if ( (strMfr == "Other") && (strMfrOther.length == 0) ) {
        blnBadOther = true; 
      }
      if ( (strEquipType == "Other") && (strEquipTypeOther.length == 0) ) {
        blnBadOther = true; 
      }
    }
  }
  
  if (intItemQty == 0) {
    strErrorMsg += " - Must have at least 1 Item. \n";
  }
  
  if (blnBadEntry) {
    strErrorMsg += " - Items must have a Manufacturer, Equip Type and Est Weight. \n";
  }
  
  if (blnBadOther) {
    strErrorMsg += " - Item \"Other\" must be specified. \n";
  }
  
  return strErrorMsg;
}


//--- ValidateState ---
function ValidateState(frmEntry, strErrorMsg) {
  var intIndex = frmEntry.country.selectedIndex;
  var strCountry = frmEntry.country.options[intIndex].value;
  var strCountryCode = Trim(strCountry.substring(0,2));
  var strState;
  
  // state is only required for US
  if (strCountryCode == "US") {
    if (frmEntry.state_select.options.selectedIndex == 0) {
      strErrorMsg += " - State required. \n";
    }
  }
  
  return strErrorMsg;
}

