  var TaxableTotal;
  var SalesTaxWork;
  
  function format(expr,decplaces) { // Format a number with a decimal point
    var str="" + Math.round(eval(expr) * Math.pow(10,decplaces));
    while (str.length <= decplaces) {
      str = "0" + str;
    }
    var decpoint = str.length - decplaces;
    return str.substring(0,decpoint) + "." + str.substring(decpoint,str.length);
  }
  
  function dollarize(expr) { // Turn number into a dollar value
    return "$" + format(expr,2);
  }
  
  function isPosDollar(expr) { // Check for a Dollar Value
    var oneDecimal = false;
    var dollarSign = false;
    var inputStr = expr.toString();
    for ( var i = 0 ; i < inputStr.length ; i++ ) {
      var oneChar = inputStr.charAt(i);
      if ( i == 0 && oneChar == "$" ) { dollarSign = true; continue; } 
      if ( oneChar == "." && !oneDecimal ) {
        oneDecimal = true;
        continue;
      }
      if ( oneChar < "0" || oneChar > "9" ) { return false; }
    }
    return dollarSign;
  }
  
  function convertDollar(expr) { // Convert a Dollar Value to a Float
    var oneDecimal = false;
    var converted = 0;
    var inputStr = expr.toString();
    var convertStr = "";
    if (isPosDollar(expr)) {
      for ( var i = 0 ; i < inputStr.length ; i++ ) {
        var oneChar = inputStr.charAt(i);
        if ( i == 0 && oneChar == "$" ) { continue; }
        if ( oneChar == "." && !oneDecimal ) {
          oneDecimal = true;
          convertStr += oneChar;
          continue;
        }
        if ( oneChar >= "0" && oneChar <= "9" ) {
          convertStr += oneChar;
        }
      }
    }
    return parseFloat(convertStr,10);
  }
  function calcTotal() {
    TaxableTotal = 0.00;
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.WhiteSportfence50.value)) { // White Sportfence
      if (isPosInteger(document.OrderForm.WhiteSportfence50.value)) {
        extendedPrice = document.OrderForm.WhiteSportfence50.value * 129.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep01.value = dollarize(extendedPrice);
	//--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.WhiteSportfence100.value)) { // White Sportfence
      if (isPosInteger(document.OrderForm.WhiteSportfence100.value)) {
        extendedPrice = document.OrderForm.WhiteSportfence100.value * 119.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep02.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.WhiteSportfenceplus.value)) { // White Sportfence
      if (isPosInteger(document.OrderForm.WhiteSportfenceplus.value)) {
        extendedPrice = document.OrderForm.WhiteSportfenceplus.value * 114.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep04.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.BlackSportfence50.value)) { // BlackSportfence
      if (isPosInteger(document.OrderForm.BlackSportfence50.value)) {
        extendedPrice = document.OrderForm.BlackSportfence50.value * 129.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep05.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.BlackSportfence100.value)) { // BlackSportfence
      if (isPosInteger(document.OrderForm.BlackSportfence100.value)) {
        extendedPrice = document.OrderForm.BlackSportfence100.value * 119.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep07.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.BlackSportfenceplus.value)) { // BlackSportfence
      if (isPosInteger(document.OrderForm.BlackSportfenceplus.value)) {
        extendedPrice = document.OrderForm.BlackSportfenceplus.value * 114.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep08.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.Foullinepolef.value)) { // Foul-linepolef
      if (isPosInteger(document.OrderForm.Foullinepolef.value)) {
        extendedPrice = document.OrderForm.Foullinepolef.value * 0.01;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep09.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.Foullinepole.value)) { // Foul-line pole
      if (isPosInteger(document.OrderForm.Foullinepole.value)) {
        extendedPrice = document.OrderForm.Foullinepole.value * 45.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep10.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.rebarwickets.value)) { // rebar wickets
      if (isPosInteger(document.OrderForm.rebarwickets.value)) {
        extendedPrice = document.OrderForm.rebarwickets.value * 1.25;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep11.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.Flexibleconnectors.value)) { // Flexibleconnectors
      if (isPosInteger(document.OrderForm.Flexibleconnectors.value)) {
        extendedPrice = document.OrderForm.Flexibleconnectors.value * 0.01;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep12.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.Flexibleconnectorsno.value)) { // Flexibleconnectorsno
      if (isPosInteger(document.OrderForm.Flexibleconnectorsno.value)) {
   extendedPrice = document.OrderForm.Flexibleconnectorsno.value * 0.15;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep13.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.Gate4Sportfence.value)) { // Gate4Sportfence
      if (isPosInteger(document.OrderForm.Gate4Sportfence.value)) {
        extendedPrice = document.OrderForm.Gate4Sportfence.value * 80.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep15.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.StorageRack.value)) { // StorageRack
      if (isPosInteger(document.OrderForm.StorageRack.value)) {
        extendedPrice = document.OrderForm.StorageRack.value * 250.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep16.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.Sandbagsfilled.value)) { // Sandbagsfilled
      if (isPosInteger(document.OrderForm.Sandbagsfilled.value)) {
        extendedPrice = document.OrderForm.Sandbagsfilled.value * 20.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep17.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.Sandbags.value)) { // Sandbags
      if (isPosInteger(document.OrderForm.Sandbags.value)) {
 extendedPrice = document.OrderForm.Sandbags.value * 15.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep18.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.Railcovers.value)) { // Railcovers
      if (isPosInteger(document.OrderForm.Railcovers.value)) {
 		extendedPrice = document.OrderForm.Railcovers.value * 20.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep19.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.Breakaway.value)) { // Breakaway
      if (isPosInteger(document.OrderForm.Breakaway.value)) {
 		extendedPrice = document.OrderForm.Breakaway.value * 18.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep20.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.Slipteereducer.value)) { // Slip tee reducer
      if (isPosInteger(document.OrderForm.Slipteereducer.value)) {
        extendedPrice = document.OrderForm.Slipteereducer.value * 2.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep20a.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.Shortposttee.value)) { // Shortposttee
      if (isPosInteger(document.OrderForm.Shortposttee.value)) {
 		extendedPrice = document.OrderForm.Shortposttee.value * 2.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep21.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.SlipCap.value)) { // Slip Cap
      if (isPosInteger(document.OrderForm.SlipCap.value)) {
        extendedPrice = document.OrderForm.SlipCap.value * 1.60;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep22.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.Split115tube.value)) { // 115Splittube
      if (isPosInteger(document.OrderForm.Split115tube.value)) {
        extendedPrice = document.OrderForm.Split115tube.value * 32.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep24.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.Split36tube.value)) { // Split36tube
      if (isPosInteger(document.OrderForm.Split36tube.value)) {
        extendedPrice = document.OrderForm.Split36tube.value * 10.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep25.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.Straight35tube.value)) { // Straight35tube
      if (isPosInteger(document.OrderForm.Straight35tube.value)) {
        extendedPrice = document.OrderForm.Straight35tube.value * 5.90;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep26.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.BiaxialMesh.value)) { // BiaxialMesh
      if (isPosInteger(document.OrderForm.BiaxialMesh.value)) {
        extendedPrice = document.OrderForm.BiaxialMesh.value * 50.00;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep27.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    extendedPrice = 0.00;
    if (!isEmpty(document.OrderForm.Straightlegtube.value)) { // Straight leg tube
      if (isPosInteger(document.OrderForm.Straightlegtube.value)) {
        extendedPrice = document.OrderForm.Straightlegtube.value * 4.75;
      }
    }
    TaxableTotal += extendedPrice;
    document.OrderForm.ep28.value = dollarize(extendedPrice);
    //--------------------------------------------------------------------------
    SalesTaxWork = 0.00;
    var inspect = document.OrderForm.state;
    var selState = inspect.options[inspect.selectedIndex].text;
    if (selState == "CA") { // Sales Tax
      SalesTaxWork = TaxableTotal * .0775;
    }
    document.OrderForm.SalesTax.value = dollarize(SalesTaxWork);
    
    var shipping = 0.00;
         if (TaxableTotal <= 0) shipping = 0;
    else if (TaxableTotal < 30) shipping = 0; // Shipping & Handling
    else if (TaxableTotal < 45) shipping = 0;
    else if (TaxableTotal < 60) shipping = 0;
    else if (TaxableTotal < 80) shipping = 0;
    else                        shipping = 0;
    document.OrderForm.ShippingHandling.value = dollarize(shipping);
    
    var donation = 0;
    var inputDonation = document.OrderForm.donate.value.toString();
    if (!isEmpty(inputDonation)) {
      if (isPosDollar(inputDonation)) { donation = convertDollar(inputDonation); }
      else                            { donation = parseFloat(inputDonation,10); }
    }
    document.OrderForm.donate.value = dollarize(donation);
    
    var totalOrder = TaxableTotal + SalesTaxWork + shipping + donation;
    document.OrderForm.total.value = dollarize(totalOrder);
  }
  
  function verifySubmit(form) {
    calcTotal();
    return confirm("Please make note of your order total of " + document.OrderForm.total.value +
                    "\n\nClick OK to proceed to the payment page.\n\nClick Cancel to return to the order.");
  }
  
  function isEmpty(inputStr) {
    if (inputStr == null || inputStr == "") {
      return true;
    }
    return false;
  }
  
  function isPosInteger(inputVal) {
    inputStr = inputVal.toString();
    for (var i = 0 ; i < inputStr.length ; i++) {
      var oneChar = inputStr.charAt(i);
      if (oneChar < "0" || oneChar > "9") {
        return false;
      }
    }
    return true;
  }
