var gBad;
function VerifyOrder() {
  gBad = false;
  var sQnty        = FixVal(FixText(document.frmMain.txtQnty, "Quantity",   false));
  var sQnty2       = FixVal(FixText(document.frmMain.txtQnty2, "Quantity",   false));
  var sTotalQnty   = parseFloat(sQnty) + parseFloat(sQnty2);

  if (sTotalQnty == 0) {
    alert("Please enter a VHS or DVD quantity."); 
    document.frmMain.txtQnty.focus();
    return false;
  }
  var sFirstName   = FixText(document.frmMain.txtFirstName, "First Name", true);
    if (gBad) {return false;}
  var sLastName    = FixText(document.frmMain.txtLastName,  "Last Name", true);
    if (gBad) {return false;}
  var sStreet1     = FixText(document.frmMain.txtStreet1,   "Address" , true);
    if (gBad) {return false;}
  var sCity        = FixText(document.frmMain.txtCity,      "City" , true);
    if (gBad) {return false;}
  var sState       = FixText(document.frmMain.txtState,   "State" , true);
    if (gBad) {return false;}
  var sPostalCode  = FixText(document.frmMain.txtPostalCode,   "ZIP" , true);
    if (gBad) {return false;}
  var sEmail       = FixText(document.frmMain.txtEmail,     "Email address", true);
    if (gBad) {return false;}
  if (sEmail.indexOf('\@') <= 0) {
    alert("The Email address is invalid. Please reenter.");
    return false;
  }  
  var sPayMethod    = document.frmMain.txtCardType.selectedIndex+1;
  var sCardTypeDesc = document.frmMain.txtCardType.options[document.frmMain.txtCardType.selectedIndex].text;
  var sCardNumber   = FixText(document.frmMain.txtCardNum,   "Credit card number", true);
    if (gBad) {return false;}
  var sExpDate     = FixText(document.frmMain.txtCardExpDate,   "Credit card expiration date", true);
    if (gBad) {return false;}

  var sTestNum;
  var sCardNumLength;
  var sCardNumberOK;
  
  //Verify card number
  if ((isNaN(sCardNumber)) || (sCardNumber == null)) {sCardNumber = "";}
  sTestNum        = sCardNumber.substring(0, 1); 
  //Verify first number of card numbers
  sCardNumberOK = 1;
  //Verify starting prefix info
  if ((sPayMethod == 1) && (sTestNum != "5")) {
    sCardNumberOK = 0; 
  } else {
    if ((sPayMethod == 2) && (sTestNum != "4")) {
      sCardNumberOK = 0; 
    } else {
      if ((sPayMethod == 3) && (sCardNumber.substring(0, 4) != "6011")) {
        sCardNumberOK = 0;
      }
    }
  }
  //Verify length
  sCardNumLength  = sCardNumber.length; 
  if ((sPayMethod == 1) && (sCardNumLength != 16)) {
    sCardNumberOK = 0; 
  } else {
    if ((sPayMethod == 2) && (sCardNumLength != 13) && (sCardNumLength != 16)) {
      sCardNumberOK = 0; 
    } else {
      if ((sPayMethod == 3) && (sCardNumLength != 16)) {
        sCardNumberOK = 0;
      }
    }
  }
  if (sCardNumberOK == 0) {
    alert("The credit card number entered is not a valid " + sCardTypeDesc + " number. Be sure to remove all spaces and dashes from the number. Please reenter this information and try again."); 
    document.frmMain.txtCardNum.focus();
    return false;
  }
  if (sExpDate.length < 7) {
    alert("The credit card expiration date is not valid. Please reenter this and try again."); 
    document.frmMain.txtCardExpDate.focus();
    return false;
  }

  var sItemAmt = document.frmMain.txtItemAmt.value;
  var sPostage = document.frmMain.txtPostage.value;
  var sTax = 0;
  var sPayment = FormatCurrency(sTotalQnty * sItemAmt);
  if (sState.toUpperCase() == 'WI') {
    sTax = FormatCurrency(sPayment * .055);
  }
  var sPayment = FormatCurrency(parseFloat(sPayment) + (sTotalQnty * sPostage) + parseFloat(sTax));

  var sVTStr = ' videotape ';
  if (sQnty > 1) {sVTStr = ' videotapes ';}
  if (confirm("Your order will now be sent.\n\n$" + sPayment + " will be charged to your credit card.\n\nWould you like to continue?") == true) {
    return true;
  } else {
    return false;
  }
}
function FixText(pTextbox, pFieldName, pRequired) {
  var sText = pTextbox.value;
  if ((sText == null)) {sText = "";}
  if (pRequired && (sText=="")) {
    gBad = true;
    alert("The field '" + pFieldName + "' is a required field.");
    pTextbox.focus();
  }
  return sText;  
}
function FixVal(pVal) {
  if (pVal.substring(0, 1) == '\$') {pVal = pVal.substring(1);}
  pVal = parseFloat(pVal);
  if (pVal < 0) {pVal = 0;}
  if (isNaN(pVal)) {pVal = 0;}
  return pVal;
}
function FormatCurrency(pNumber) {
  pNumber -= 0;  //This SHOULD be -=0!!
  pNumber = (Math.round(pNumber*100))/100;
  return (pNumber == Math.floor(pNumber)) ? pNumber + '.00' : (  (pNumber*10 == Math.floor(pNumber*10)) ? pNumber + '0' : pNumber);
}
function FormatNum2(pNumber, pDecimals) {
  var sReturnNum;
  var sReturnNumString;
  if ((isNaN(pNumber)) || (pNumber == null)) {pNumber = 0;}

  sReturnNum = parseFloat(Math.round(pNumber * Math.pow(10, pDecimals)) / Math.pow(10, pDecimals));
  sReturnNumString = sReturnNum + "";
  return sReturnNumString;
}
