<!--

if (!Array.prototype.some)
{
  Array.prototype.some = function(fun /*, thisp*/)
  {
    var len = this.length;
    if (typeof fun != "function")
      throw new TypeError();

    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in this &&
          fun.call(thisp, this[i], i, this))
        return true;
    }

    return false;
  };
}

function validateQuoteForm(form) {

  if (!validateCountry(form.deliverycountry)) {
    return false;
  }
  if (!validateDestination(form.destination)) {
    return false;
  }
  if (!validateWeight(form.weight)) {
    return false;
  }
  if (!validateGoodsdesc(form.goodsdesc)) {
    return false;
  }
  if (!validateGoodsvalue(form.goodsvalue)) {
    return false;
  }
  if (!validateInsurancerequired(form.insurancerequired)) {
    return false;
  }
  return true;

}

function validateCountry(elem) {
  if (isEmpty(elem)) {
    alert("Please select a country");
    return false;
  }
  return true;
}

function validateDestination(elem) {
  if (isEmpty(elem)) {
    alert("Please select a destination");
    return false;
  }
  return true;
}

function validateWeight(elem) {
  if (!isNotEmpty(elem)) {
    return false;
  }
  if (!isDecimal(elem, 2, false)) {
    return false;
  }
  var weight = parseFloat(elem.value);
  if (!(weight > 0)) {
    alert("Weight must be greater than 0");
    return false;
  }
  elem.value = weight.toFixed(2);
  return true;
}

function validateGoodsdesc(elem) {
  if (!isNotEmpty(elem)) {
    return false;
  }
  elem.value = elem.value.toUpperCase();
  return true;
}

function validateGoodsvalue(elem) {
  if (!isNotEmpty(elem)) {
    return false;
  }
  if (!isDecimal(elem, 2, false)) {
    return false;
  }
  var goodsvalue = parseFloat(elem.value);
  elem.value = goodsvalue.toFixed(2);
/*
  if (document.forms["frmQuote"].insurancerequiredY.checked &&
      !(elem.value > 0)) {
    alert("Value of Goods must be entered if insurance is required");
    return false;
  }
  if (!(elem.value > 0)) {
    if (document.forms["frmQuote"].insurancerequiredY.checked) {
      alert("Value of Goods must be entered if insurance is required");
      return false;
    }
    if (!areGoodsDocs()) {
      alert("Value of Goods must be entered unless goods are documents");
      return false;
    }
  }
*/
  if (!(elem.value > 0)) {
    alert("Value of Goods must be entered");
    return false;
  }
  return true;
}

function validateInsurancerequired(elem) {
  if (!document.forms["frmQuote"].insurancerequiredY.checked &&
      !document.forms["frmQuote"].insurancerequiredN.checked) {
    alert("Please indicate whether insurance is required");
    return false;
  }
  return true;
}

function goodsAreDocs() {
  return isDocs(document.forms["frmQuote"].goodsdesc);
}

function isDocs(elem) {
  var goodsdesc = elem.value.toUpperCase();
  return (goodsdesc == "DOCUMENTS" || goodsdesc == "DOCS" || goodsdesc == "DOX");
/*
  function isGoodsdesc(val) {
    return (val == elem.value.toUpperCase());
  }
  var docsdescs = new Array("DOCUMENTS", "DOCS", "DOX");
  return (docsdescs.some(isGoodsdesc));
*/
}

var xmlhttp;

function getTimedDeliveryOptions(dept, co, accno, country, dest, postcode) {
  if (!xmlhttp) xmlhttp = rsGetXmlHttpRequest();
  if (!xmlhttp) return;
  var encDept = encodeURIComponent(dept);
  var encCo = encodeURIComponent(co);
  var encAccno = encodeURIComponent(accno);
  var encCountry = encodeURIComponent(country);
  var encDest = encodeURIComponent(dest);
  var encPostcode = encodeURIComponent(postcode);
  var pathArray = window.location.pathname.split('/');
  var qry = "";
  qry += "dept=" + encDept;
  qry += "&co=" + encCo;
  qry += "&accno=" + encAccno;
  qry += "&country=" + encCountry;
  qry += "&dest=" + encDest;
  qry += "&postcode=" + encPostcode;
  var url = window.location.protocol + "//" + window.location.host 
            + "/" + pathArray[1] + "/" + "timed_delivery_options.php?" + qry;
  xmlhttp.open('GET', url, true);
  xmlhttp.onreadystatechange = loadTimedDeliveryOptions;
  xmlhttp.send(null);
  //return false;
}

function loadTimedDeliveryOptions() {

  if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
    
    var timedDelOptions = eval("(" + xmlhttp.responseText + ")");

    var oldfld = document.getElementById("timeddelivery");
    var selectedValue = "";
    if (oldfld.options.selectedIndex >= 0) {
      selectedValue = oldfld.options[oldfld.options.selectedIndex].value;
    }

    // make location select element
    var newfld = document.createElement("select");
    newfld.setAttribute("name", oldfld.getAttribute("name"));
    newfld.setAttribute("id", oldfld.getAttribute("id"));
   
    // fill in second select element
    var L = timedDelOptions.length;
    var trTD = document.getElementById("trTimeddelivery");
    trTD.className = (L == 0) ? 'dispnone' :
                                (document.all ? 'dispdisplay' : 'disptablerow');
    
    var i;
    var o;
    // create "Not required" option
    o = document.createElement("option");
    o.setAttribute("name","o");
    o.setAttribute("id","o");
    o.setAttribute("value","");
    if (L == 0 || selectedValue == "") {
      o.setAttribute("selected", "selected");
    }
    o.appendChild(document.createTextNode("Not required"));
    newfld.appendChild(o);
    // create options based on available options
    for (i=0; i<L; i++) {
      o = document.createElement("option");
      o.setAttribute("name","o"+i);
      o.setAttribute("id","o"+i);
      o.setAttribute("value", timedDelOptions[i]["code"]);
      if (selectedValue == timedDelOptions[i]["code"]) {
        o.setAttribute("selected", "selected");
      }
      o.appendChild(document.createTextNode(timedDelOptions[i]["desc"]));
      newfld.appendChild(o);
    }

    oldfld.parentNode.replaceChild(newfld, oldfld);
  }

}

// -->
