// loadcart.js    JavaScript routine for adding an item to the shopping cart
//
//    7.03.2000  jrc  1.0  Written
//   10.31.2000  jrc  1.1  Added ShipFrom and UnitWeight to WAHAitem cookie
//   11.13.2000  jrc  1.2  Eliminated most comments, saved in loadcart_comments.js
//   11.15.2000  jrc  1.3  Now links to cart.asp to avoid HTTP error

function loadcart (form) {

  var order_form=form; 
  number_of_order_fields=order_form.elements.length;  

  // values to be retrieved from the order entry form (not all are required):

  var item_id="";    
  var item_mfr="";  
  var item_desc="";   
  var item_qty="0";   
  var item_size="";    
  var item_color="";    
  var item_price="";     
  var item_weight="0";    
  var item_shipfrom="FM";  


  //  internal working variables

  var x=0;
  var i=0;
  var error_count=0;
  var msg_txt="";

  //  cookie will be set to expire in 24 hours

  var date_tomorrow=new Date();
  date_tomorrow.setTime(date_tomorrow.getTime() + (24*60*60*1000));

  //  window.alert("Number of order fields = " + number_of_order_fields);

  // Extract all of the data values from the order entry form 

for (i=0;i<number_of_order_fields;i++) {                      // Loop through each element in the form


  //  window.alert ("i = " + i + "; type = " + order_form.elements[i].type +
  //    "; name  = " + order_form.elements[i].name);

  if((order_form.elements[i].type=="text") || 
     (order_form.elements[i].type=="Text")) {                 // Test for fields where input type="text"

    if (order_form.elements[i].name=="qty") {                 // Test for quantity field

      item_qty=order_form.elements[i].value;

      //      window.alert ("item qty = " + item_qty);

    }
  }
  if((order_form.elements[i].type=="hidden") || 
     (order_form.elements[i].type=="Hidden")) {  

    if (order_form.elements[i].name=="id") { 
      item_id=order_form.elements[i].value;
    }
    else {
      if (order_form.elements[i].name=="mfr") { 
        item_mfr=order_form.elements[i].value;
      }
      else {
        if (order_form.elements[i].name=="desc") { 
          item_desc=order_form.elements[i].value;
        }
        else {
          if (order_form.elements[i].name=="price") {
            item_price=order_form.elements[i].value;
          }
          else {
            if (order_form.elements[i].name=="size") { 
              item_size=order_form.elements[i].value;
            }
            else {
              if (order_form.elements[i].name=="color") { 
                item_color=order_form.elements[i].value;
              }
              else {
                if (order_form.elements[i].name=="weight") { 
                  item_weight=order_form.elements[i].value;
                }
                else {
                  if (order_form.elements[i].name=="shipfrom") {
                    item_shipfrom=order_form.elements[i].value;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  if((order_form.elements[i].type=="select-one") ||
     (order_form.elements[i].type=="Select-one")){ 

    x=order_form.elements[i].selectedIndex; 

    if (order_form.elements[i].name=="size") { 
      item_size=order_form.elements[i].options[x].text;
    }
    else {
      if (order_form.elements[i].name=="color") { 
        item_color=order_form.elements[i].options[x].text;
      }
    }      
  }
}

  //  Check for missing hidden fields.  These would be due to errors in setting up the 
  //    order entry form.

  if ((item_id=="")) {
    window.alert("Internal error - hidden item id value not set properly.");
    error_count++;
  }
  if ((item_mfr=="")) {
    window.alert("Internal error - hidden item mfr value not set properly.");
    error_count++;
  }
  if ((item_desc=="")) {
    window.alert("Internal error - hidden item desc value not set properly.");
    error_count++;
  }
  if ((item_price=="")) {
    window.alert("Internal error - hidden item price value not set properly.");
    error_count++;
  }

  //  If quantity is not numeric display an error message

  if (isNaN(item_qty)){
    window.alert("Quantity must be a number.  Please enter a new value and try again.  Thanks!");
    error_count++;
  }

  //  If quantity less than zero, error out

  if (item_qty<0){
    window.alert("Quantity may not be less than zero.  Please enter a new value and try again.  Thanks!");
    error_count++;
  }

  //  If quantity is zero, we'll 'remove' the item from the cart by setting the
  //    quantity to zero.  We still write the cookie, but we won't display the
  //    item in the shopping cart.

  if (item_qty==0) {
    window.alert("Quantity set to zero;  item will be removed from shopping cart");
  }

  //  If size or color options exist, make sure the user selected a value;  if not,
  //    the field title will be the value, which is an error.

  if (item_size=="--size--") {
    window.alert("You must first select the size before ordering this item.  Please try again.");
    error_count++;
  }
  else {  
    if (item_color=="--color--") {
      window.alert("You must first select the color before ordering this item.  Please try again.");
      error_count++;
    }
  }

  //  If no errors, update the cookie with the new item and link to the specified page

  if (error_count==0) {
    document.cookie = "WAHAitem" + item_id + "|" + item_size + "|" + item_color + "=" 
      + item_qty + "|" + item_mfr + "|" + item_desc + "|" + item_price 
      + "|" + item_weight + "|" + item_shipfrom 
      + "; EXPIRES=" + date_tomorrow + ";PATH=/" + ""; 
    //  window.alert("Cookie value = " + document.cookie);
 
  // window.alert("about to link to cart.asp");

  location.href="http://www.wahasurfshop.com/cart.asp";
  }
}            