<!--

$(document).ready(function(){
    $('#frmQuote').submit(function(){
        return validateQuoteForm(this);
    });
    $('#trTimeddelivery').hide();
});

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;
  }
  // Check that a destination is selected
  if ($("#destination option:selected").val() == 0) {
    alert("Please select a 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;
  }
/*
  if (!validateContactname(form.contactname)) {
    return false;
  }
*/
  return true;

}

function validateCountry(elem) {
  if (isEmpty(elem)) {
    alert("Please select a country");
    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 validateDestination(elem) {
  if (isEmpty(elem)) {
    alert("Please enter a contact name");
    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));
*/
}

function getTimedDeliveryOptions(dept, co, accno, country, dest, postcode) {
    var pathArray = window.location.pathname.split('/');
    var url = window.location.protocol + "//" + window.location.host 
              + "/" + pathArray[1] + "/" + "timed_delivery_options.php?";
    $.getJSON(url,
              {
                  dept: dept,
                  co: co,
                  accno: accno,
                  country: country,
                  dest: dest,
                  postcode: postcode
	      },
              function(data) {
                  loadTimedDeliveryOptions(data);
              });
}

function loadTimedDeliveryOptions(timedDelOptions) {
   
    // fill in second select element
    var L = timedDelOptions.length;

    if (L == 0) {
        $("#trTimeddelivery").hide();
    }
    else {
        $("#trTimeddelivery").show();
    }

    var selectedValue = $('#timeddelivery').val();

    // make location select element
    var select = $('<select/>')
        .attr('name', $('#timeddelivery').attr('name'))
        .attr('id', $('#timeddelivery').attr('id'));
    
    // create "Not required" option
    select.append(
        $('<option/>')
            .attr("name", "o")
            .attr("id", "o")
            .attr("value", "")
            .attr("selected", (L == 0 || selectedValue == ""))
            .text("Not required")
    );
    // create options based on available options
    var i;
    for (i=0; i<L; i++) {
        select.append(
            $('<option/>')
              .attr("name","o"+i)
              .attr("id","o"+i)
              .attr("value", timedDelOptions[i]["code"])
              .attr("selected", (selectedValue == timedDelOptions[i]["code"]))
              .text(timedDelOptions[i]["desc"])
        );
    }

    $('#timeddelivery').replaceWith(select);

}

// -->

