function validateCart()
{
   start = document.catalogControl.start.value;
   end = document.catalogControl.end.value;
   add = document.catalogControl.bypass.value;
   result = true;

   if (add == "no")
   {
     for (i = start; i <= end; i++)
     {
        boxval = eval("document.catalogControl.form_" + i + ".value");
        origval = eval("document.catalogControl.orig_" + i + ".value");

        if (boxval != origval)
        {
           result = false;
        }
     }
   }

   if (result == false) {
     alert("You must update your shopping cart before proceeding");
   }

   return result;
}


function showImage(prodno, imageId)
{
   question = "Show item: " + prodno + "?";
   if (confirm(question)) {
      path = "/prodimages/" + imageId;
      newwindow = window.open(path, "Product", "resizable,status,scrollbars,HEIGHT=450,WIDTH=600");
   }
}


function handleEnter (field, event)
{
  var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
  if (keyCode == 13)
  {
    var i;
    for (i = 0; i < field.form.elements.length; i++)
    {
      if (field == field.form.elements[i])
      break;
    }
    var found = false;
    var j = i;
    while(found == false)
    {
      var next = (j + 1) % field.form.elements.length;
      if (field.form.elements[next].type == "text")
      {
        field.form.elements[next].focus();
        field.form.elements[next].select();
        found = true;
      }
      else
        j++;
      
    }
    return false;
  }
  else
    return true;
}

function searchSubmit (event)
{
  var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
  if (keyCode == 13)
  {
    document.searchForm.submit();
  }
}


function editCustomData(lineId)
{
   CustName = document.CustomData.elements['CustName-' + lineId];
   CustTitle = document.CustomData.elements['CustTitle-' + lineId];
   CustEmail = document.CustomData.elements['CustEmail-' + lineId];
   CustPhone = document.CustomData.elements['CustPhone-' + lineId];
   CustFax = document.CustomData.elements['CustFax-' + lineId];
   CustAddress = document.CustomData.elements['CustAddress-' + lineId];
   CustCity = document.CustomData.elements['CustCity-' + lineId];
   CustState = document.CustomData.elements['CustState-' + lineId];
   CustZip = document.CustomData.elements['CustZip-' + lineId];

   DataCombo = document.CustomData.elements['datacombo-' + lineId];

   var myform = document.CustomData;
   var len = DataCombo.length;

   for (i=0; i < len; i++) {
      if (DataCombo.options[i].selected == true) {
         idx = i - 1;
         i = len;
      }
   }

   name_array         = myform.NameList.value.split("~");
   title_array        = myform.TitleList.value.split("~");
   email_array        = myform.EmailList.value.split("~");
   phone_array        = myform.PhoneList.value.split("~");
   fax_array          = myform.FaxList.value.split("~");
   address_array      = myform.AddressList.value.split("~");
   city_array         = myform.CityList.value.split("~");
   state_array        = myform.StateList.value.split("~");
   zip_array          = myform.ZipList.value.split("~");
   //
   CustName.value = name_array[idx];
   CustTitle.value = title_array[idx];
   CustEmail.value = email_array[idx];
   CustPhone.value  = phone_array[idx];
   CustFax.value = fax_array[idx];
   CustAddress.value = address_array[idx];
   CustCity.value = city_array[idx];
   CustState.value = state_array[idx];
   CustZip.value = zip_array[idx];

}


function changeFocus(id)
{
  document.CustomData.elements['CustName-' + id].focus();
}


function editShippingInfo()
{
   var myform = document.forms[0];
   var len = myform.shiptocombo.length;
   for (i=0; i < len; i++) {
      if (myform.shiptocombo.options[i].selected) {
         idx = i;
         i = len;
      }
   }

   name_array        = myform.NameList.value.split("~");
   room_array        = myform.RoomList.value.split("~");
   attention_array   = myform.AttentionList.value.split("~");
   address1_array    = myform.Address1List.value.split("~");
   address2_array    = myform.Address2List.value.split("~");
   city_array        = myform.CityList.value.split("~");
   state_array       = myform.StateList.value.split("~");
   zip_array         = myform.ZipList.value.split("~");
   phone_array       = myform.PhoneList.value.split("~");
   //
   myform.SSearch.value    = myform.shiptocombo.options[idx].text;
   myform.SName.value      = name_array[idx];
   myform.SRoom.value      = room_array[idx];
   myform.SAttention.value = attention_array[idx];
   myform.SAddress1.value  = address1_array[idx];
   myform.SAddress2.value  = address2_array[idx];
   myform.SCity.value      = city_array[idx];
   myform.SState.value     = state_array[idx];
   myform.SZip.value       = zip_array[idx];
   myform.SPhone.value     = phone_array[idx];


   return 0;
}



function newShipTo()
{
   var myform = document.forms[0];

   myform.SSearch.value = "";
   myform.SName.value = "";
   myform.SPhone.value = "";
   myform.SRoom.value = "";
   myform.SAttention.value = "";
   myform.SAddress1.value = "";
   myform.SAddress2.value = "";
   myform.SCity.value = "";
   myform.SState.value = "";
   myform.SZip.value = "";
   myform.shiptocombo.value = "";

   return 0;
}


function confirmOrder()
{
  var myform = document.forms[0]; 
  var submitOrder = false;

  if (myform.check.value == "S") {
    if (myform.SName.value.length < 1) {
      alert("Ship to Name is a required field");
      submitOrder = false;
    }
    else if (myform.SAddress1.value.length < 1) {
      alert("Address 1 is a required field");
      submitOrder = false;
    }
    else if (myform.SCity.value.length < 1) {
      alert("City is a required field");
      submitOrder = false;
    }
    else if (myform.SState.value.length < 1) {
      alert("State is a required field");
      submitOrder = false;
    }
    else if (myform.SZip.value.length < 1) {
      alert("Zip is a required field");
      submitOrder = false;
    }
    else if (myform.conf_email.value.length < 1) {
      alert("Comfirmation email is a required field");
      submitOrder = false;
    }
    else if (myform.po_auth.value.length < 1) {
      alert("PO / Release / Authorization is a required field");
      submitOrder = false;
    }
    else if (myform.creditrequire != null && myform.creditrequire != undefined && myform.cardnumber.value.length < 1) {
      alert("Credit Card Number is a required field");
      submitOrder = false;
    }
    else if (myform.creditrequire != null && myform.creditrequire != undefined && myform.exp_month.value == "00") {
      alert("Expiration month is a required field");
      submitOrder = false;
    }
    else if (myform.creditrequire != null && myform.creditrequire != undefined && myform.exp_year.value == "00") {
      alert("Expiration year is a required field");
      submitOrder = false;
    }
    else if (myform.creditrequire != null && myform.creditrequire != undefined && myform.cvv2number.value.length < 1) {
      alert("CVV2 Number is a required field");
      submitOrder = false;
    }
    else if (myform.creditrequire != null && myform.creditrequire != undefined && isNaN(myform.cvv2number.value)) {
      alert("CVV2 Number must be a number");
      submitOrder = false;
    }
    else if (myform.creditrequire != null && myform.creditrequire != undefined && myform.cardholder.value.length < 1) {
      alert("Card Holder Name is a required field");
      submitOrder = false;
    }
    else if (myform.creditrequire != null && myform.creditrequire != undefined && myform.cardaddress.value.length < 1) {
      alert("Credit Card Address is a required field");
      submitOrder = false;
    }
    else if (myform.creditrequire != null && myform.creditrequire != undefined && myform.cardcity.value.length < 1) {
      alert("Credit Card City is a required field");
      submitOrder = false;
    }
    else if (myform.creditrequire != null && myform.creditrequire != undefined && myform.cardstate.value.length < 1) {
      alert("Credit Card State is a required field");
      submitOrder = false;
    }
    else if (myform.creditrequire != null && myform.creditrequire != undefined && myform.cardzip.value.length < 1) {
      alert("Credit Card Zip is a required field");
      submitOrder = false;
    }
    else {
      question = "Are you sure you want to submit this order?"
      if (confirm(question)) {
        submitOrder = true;
      }
      else {
        submitOrder = false;
      }
    }
  }
  else if (myform.check.value == "C") {
    question = "Are you sure you want to cancel this order?";
    if (confirm(question)) {
      submitOrder = true;
    }
    else {
      submitOrder = false;
    }
  }

  return submitOrder;

}


function shippingopen(track_num, shipvia)
{
     switch (shipvia) 
     {
     case "UPS":
       load = "";
       load +="http://wwwapps.ups.com/etracking/tracking.cgi?tracknums_displayed=1&TypeOfInquiryNumber=T&HTMLVersion=4.0&sort_by=status&InquiryNumber=";
       load +=track_num;
       load +="&track=Track";
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "FEDEX":
       load = ""
       load += "http://www.fedex.com/Tracking?tracknumbers=";
       load += track_num;
       load += "&action=track&language=english&cntry_code=us";
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "CON-WAY":
       load = ""
       load += "https://www.con-way.com/webapp/manifestrpts_p_app/Tracking/TrackingRS.jsp?PRO=";
       load += track_num;
       load += "&dest=protrace"
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "AIRBORNE":
       load = "";
       load += "http://track.airborne.com/atrknav.asp?ShipmentNumber=";
       load += track_num;
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "AAA COOPER":
       load = "";
       load += "http://www.aaacooper.com/cgi-bin/protrack.pl?OUTPUT=HTML&SKEY0=";
       load += track_num;
       load += "&SUBMIT=Submit+Query";
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "AVERITT EXPRESS":
       load = "";
       load += "http://my.averittexpress.com/servlet/rsoLTLtrack?Type=PN&Number=";
       load += track_num;
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;         
     case "ESTES EXPRESS":
       load = "";
       load += "http://www.estes-express.com/cgi-dta/edn419.mbr/output?selection_type=PRO&search_criteria=";
       load += track_num;
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "OLD DOMINION":
       load = "";
       load += "http://www.odfl.com/cgi-bin/db2www/trace.mbr/main?ProNum=";
       load += track_num;
       load += "&trace=Status&Type=P"
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break; 
     case "FEDEX FREIGHT EAST":
       load = ""
       load += "http://www.fedex.com/Tracking?tracknumbers=";
       load += track_num;
       load += "&action=track&language=english&cntry_code=us";
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "USF WORLDWIDE":
       load = "";
       load += "http://www.usfreightways.com/tools/truckingresultsdetail.asp?txtLookupNumber=";
       load += track_num;
       load += "&radLookupNumberType=H&SearchType=1"
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "SAIA FREIGHT":
       load = "";
       load += "http://www.saiasecure.com/tracing/manifest.asp?link=y&pro=";
       load += track_num;
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "ROADWAY EXPRESS":
       load = "";
       load += "http://www.quiktrak.roadway.com/cgi-bin/quiktrak?type=0&pro=";
       load += track_num;
       load += "&zip=";
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "YELLOW FREIGHT":
       load = "";
       load += "http://www2.yellowcorp.com/dynamic/services/servlet?CONTROLLER=com.yell.ec.inter.yfsgentracking.http.controller.TrackPro&PRONumber="
       load += track_num;
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "BENTON EXPRESS":
       load = "";
       load += "http://www.accessbenton.com/Tracking/Search?ID=168&Pwd=account&RefNum=";
       load += track_num;
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "ABF":
       load = "";
       load += "http://www.abfs.com/trace/abftrace.asp?RefType=a&Ref=";
       load += track_num;
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "OVERNITE":
       load = "";
       load += "http://www.overnite.com/ShipTrack.cfm?ProNbr=";
       load += track_num;
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "CARIBBEAN TRANSPORTATION":
       load = "";
       load += "https://ctsmis.caribbeantrans.com/track.asp?AWBNBRBASE=";
       load += track_num;
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break; 
     case "AT SERVICES":
       load = "";
       load += "http://www.atservicesinc.com/delivery.php?T1=";
       load += track_num;
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break; 
     case "WILSON TRUCKING":
       load = "";
       load += "http://www.wilsontrucking.com/WilsonWeb/servlet/com.wilsontrucking.mainframe.io.Ed167w?nbrPro0=";
       load += track_num;
       load += "&nbrPro1=&nbrPro2=&nbrPro3=&nbrPro4=&nbrPro5=&nbrPro6=&nbrPro7=&nbrPro8=&nbrPro9=";
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "R&L CARRIERS":
       load = "";
       load += "http://www.rlcarriers.com/shiptrace2.asp?traceseek=Pro&tracenum=";
       load += track_num;
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "ROADRUNNER":
       load = "";
       load += "http://www.rdfs.com/tools/tracing/TraceMultipleResults.aspx?PROS=";
       load += track_num;
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "FEDEX NATIONAL LTL":
       load = ""
       load += "http://www.fedex.com/Tracking?tracknumbers=";
       load += track_num;
       load += "&action=track&language=english&cntry_code=us";
       window.open(load, 'info', 'scrollbars=yes,resizable=yes,location=no,menubar=yes,status=no,toolbar=no');
       break;
     case "BEST WAY":
       window.alert("Tracking information is not available electronically.\nPlease contact customer service.");
       break;
     case "UNKNOWN":
       window.alert("Tracking information is not available electronically.\nPlease contact customer service.");
       break;                                                                            
     }
  return true;
}
