/*
        File: formScripts.js
     Version: 1.0

     Created: 25/06/09
    Modified: 25/06/09
   Copyright: Matthew Cassidy 2005
       Email: cassidym@bne.catholic.net.au

     Purpose: Provides form validation and other form usage scripts
        Note: None

     License: For use solely by the Catholic Archdiocese of Brisbane. 
*/


/*--------------------------*/
/* Function: check_form(f)  */
/* Performs form validation */
/*--------------------------*/
function check_form(f) {
  var error_report = "";
  switch (f.frm.value) {
    case "cart-add":
      error_report += (f.v.value == "-") ? "* You must choose a product type to order.\n" : "";
      error_report += (f.q.value == "") ? "* You must enter a quantity to purchase.\n" : "";
      error_report += (f.q.value != "" && isNaN(f.q.value)) ? "* The quantity must be a number.\n" : "";
      error_report += (f.q.value != "" && !isNaN(f.q.value) && f.q.value <= 0) ? "* The quantity must be a positive number.\n" : "";
      if (f.q.value != "" && !isNaN(f.q.value) && f.q.value > 0) {
        for (i=0; i<f.q.value.length; i++) {
          error_report += (f.q.value.charAt(i) < "0" || f.q.value.charAt(i) > "9") ? "* The quantity must be a whole number.\n" : "";
        }
        error_report += (parseInt(f.l.value) > 0 && f.q.value < parseInt(f.l.value)) ? "* This product has a minimum purchase level. You must order "+f.l.value+" or more products.\n" : "";
        error_report += (parseInt(f.h.value) > 0 && f.q.value > parseInt(f.h.value)) ? "* This product has a maximum purchase level. You must order "+f.h.value+" or less products.\n" : "";
      }
      break;

    case "cart-update":
      error_report += (f.c.value == "Australia" && f.s.value == 0) ? "* Please choose your state within Australia.\n" : "";
      error_report += (f.c.value == "Australia" && f.p.value == "") ? "* Please enter your postcode.\n" : "";
      error_report += (!f.d[0].checked && !f.d[1].checked && !f.d[2].checked && !f.d[3].checked) ? "* Please chose a preferred delivery option.\n" : "";
      break;

    case "place-order":
      error_report += (f.fname.value == "") ? "* You must enter your first name.\n" : "";
      error_report += (f.lname.value == "") ? "* You must enter your last name.\n" : "";
      error_report += (f.address.value == "") ? "* You must enter your address.\n" : "";
      error_report += (f.suburb.value == "") ? "* You must enter your suburb.\n" : "";
      error_report += (f.state.value == "") ? "* You must enter your state.\n" : "";
      error_report += (f.postCode.value == "") ? "* You must enter your post code.\n" : "";
      error_report += (f.country.value == "") ? "* You must enter your country.\n" : "";
      error_report += (f.phone1.value == "") ? "* You must enter at least one phone number.\n" : "";
      break;

    case "subscribe":
      error_report += (f.fname.value == "") ? "* You must enter your first name.\n" : "";
      error_report += (f.lname.value == "") ? "* You must enter your last name.\n" : "";
      error_report += (f.address.value == "") ? "* You must enter your address.\n" : "";
      error_report += (f.suburb.value == "") ? "* You must enter your suburb.\n" : "";
      error_report += (f.state.value == "" || f.state.value == "0") ? "* You must enter your state.\n" : "";
      error_report += (f.postCode.value == "") ? "* You must enter your post code.\n" : "";
      error_report += (f.phone1.value == "") ? "* You must enter at least one phone number.\n" : "";
      break;
  }
  if (error_report != "") {
    alert("There were errors in the completion of form.\n\n"+error_report);
    return false;
  } 
  else {
    return true;
  }
}


/*------------------------------------------------------------*/
/* Function: update_state_and_postage(c)                      */
/* Updates required shipping fields depending on choices made */
/*------------------------------------------------------------*/
function update_state_and_postage(c) {
  document.order.d[0].checked = false;
  document.order.d[1].checked = false;
  document.order.d[2].checked = false;
  document.order.d[3].checked = false;
  if (c.value != "Australia") {
    if (c.value != "New Zealand") {
      document.getElementById("seamail").style.display = "block";
    }
    else {
      document.getElementById("seamail").style.display = "none";
    }
    document.order.s.value = 0;
    document.order.s.disabled = true;
    document.getElementById("local").style.display = "none";
    document.getElementById("international").style.display = "block";
  }
  else {
    document.order.s.value = "QLD";
    document.order.s.disabled = false;
    document.getElementById("local").style.display = "block";
    document.getElementById("international").style.display = "none";
    document.getElementById("seamail").style.display = "none";
  }
}