// Application specific Javascript functions



  function checkForm(f)
  {
    //  alert ("Here in checkForm");
     // alert ("Name=" + f.name);

    /*   To test the chosen option in a Select statement:
              var opt=f.selectname.selectedIndex;
              var field=f.selectname.options[opt].text;
              (Can use value instead of text if the option statements have a value clause)

         To test the value of the selected radio button
              var radioLength = f.radioname.length;
              var radioValue = "";
              for (var i=0; i < radioLength; i++)
              {
                if (f.radioname[i].checked)
                {
                  radioValue = f.radioname[i].value;
                  break;
                }
              }
    */
    if (f.buttonPressed.value=="Cancel") {return true;}
    if (f.buttonPressed.value=="Delete")
    {
      if (confirm("Are you really sure you want to delete this record?"))
      {return true;}
      else {return false;}
    }
    var errMsg="";
    var confirmMessage ="";
    switch (f.name)
    {
      case "addressForm":
        if (f.buttonPressed.value=="Back") {return true;}
        if (empty(f.forename.value))
        {
          if (errMsg=="") {f.forename.focus();}
          errMsg+="Please enter your Forename\n";
        }

        if (empty(f.surname.value))
        {
          if (errMsg=="") {f.surname.focus();}
          errMsg+="Please enter your Surname\n";
        }
        if (empty(f.address1.value) && empty(f.address2.value) &&
            empty(f.address3.value) && empty(f.address4.value))
        {
          if (errMsg=="") {f.address1.focus();}
          errMsg+="Please enter your Address\n";
        }
        if (empty(f.postcode.value))
        {
          if (errMsg=="") {f.postcode.focus();}
          errMsg+="Please enter your Postcode\n";
        }

        if (empty(f.phone.value))
        {
          if (errMsg=="") {f.phone.focus();}
          errMsg+="Please enter your Telephone number\n";
        }
        else
        {
          var num=f.phone.value.replace(/ /g,"");

          if (num.length<11 || !isNumeric(num))
          {
            if (errMsg=="") {f.phone.focus();}
            errMsg+="Phone numbers must comprise at least 11 digits\n";
          }
        }

        if (empty(f.email.value))
        {
          if (errMsg=="") {f.email.focus();}
          errMsg+="Please enter your Email address\n";
        }
        else
        {
          if (!checkEmail(f.email.value))
          {
            if (errMsg=="") {f.email.focus();}
            errMsg+="That Email address is invalid\n";
          }
        }
        /*
        if (!f.readTerms.checked)
        {
          if (errMsg=="") {f.readTerms.focus();}
          errMsg+="Please confirm you have read the Terms & Conditions\n";
        }
        */
      break;

      case "baseItemForm":
        if (empty(f.baseItemName.value))
        {
          if (errMsg=="") {f.baseItemName.focus();}
          errMsg+="Please enter the Item Name\n";
        }

        if (empty(f.baseItemDescription.value))
        {
          if (errMsg=="") {f.baseItemDescription.focus();}
          errMsg+="Please enter the Item Description\n";
        }

        if (empty(f.baseItemPrice.value))
        {
          if (errMsg=="") {f.baseItemPrice.focus();}
          errMsg+="Please enter the Item Price\n";
        }
        else
        {
          if (!isNumeric(f.baseItemPrice.value, 2))
          {
            if (errMsg=="") {f.baseItemPrice.focus();}
            errMsg+="The Item Price must be numeric with a maximum of 2 decimal places\n";
          }
        }

        if (!empty(f.baseItemDisplaySequence.value) && !isNumeric(f.baseItemDisplaySequence.value))
        {
          if (errMsg=="") {f.baseItemDisplaySequence.focus();}
          errMsg+="If entered the Display Sequence must be numeric\n";
        }

        if (empty(f.baseItemWeight.value))
        {
          if (errMsg=="") {f.baseItemWeight.focus();}
          errMsg+="Please enter the Item Weight in grammes\n";
        }
        else
        {
          if (!isNumeric(f.baseItemWeight.value))
          {
            if (errMsg=="") {f.baseItemWeight.focus();}
            errMsg+="The Item Weight must be numeric\n";
          }
        }

        if (categories)
        {
          if(f.includedInCategoryCount.value==0) {confirmMessage="There are no Categories selected for this Item. Proceed?";}
        }
      break;

      case "buyForm":
        var e = getElement("stockItemID");
        if (e)
        {
          if (e.tagName == "SELECT")
          {
            var opt = e.selectedIndex;
            var field = e.options[opt].value;
          }
          if (field == "Please choose")
          {
            if (errMsg=="") {e.focus();}
            errMsg+="Please select a Design\n";
          }
        }

        e = getElement("colourID");
        if (e)
        {
          var opt = e.selectedIndex;
          var field = e.options[opt].value;
          if (field == "Please choose")
          {
            if (errMsg=="") {e.focus();}
            errMsg+="Please select a Colour\n";
          }
        }
        e = getElement("sizeID");
        if (e)
        {
          var opt = e.selectedIndex;
          var field = e.options[opt].value;
          if (field == "Please choose")
          {
            if (errMsg=="") {e.focus();}
            errMsg+="Please select a Size\n";
          }
        }

         e = getElement("variation1");
         if (e)
         {
           if (e.value == "Please choose")
           {
            if (errMsg=="") {e.focus();}
            errMsg+="Please select a Colour\n";
           }
         }
      break;

      case "categoryForm":
        if (empty(f.categoryName.value))
        {
          if (errMsg=="") {f.categoryName.focus();}
          errMsg+="Please enter the Category Name\n";
        }

        if (!empty(f.categoryDisplaySequence.value) && !isNumeric(f.categoryDisplaySequence.value))
        {
          if (errMsg=="") {f.categoryDisplaySequence.focus();}
          errMsg+="If entered, the Display Sequence must be numeric\n";
        }
      break;

      case "colourForm":
        if (empty(f.colourName.value))
        {
          if (errMsg=="") {f.colourName.focus();}
          errMsg+="Please enter the Colour Name\n";
        }

        if (empty(f.colourTitle.value))
        {
          if (errMsg=="") {f.colourTitle.focus();}
          errMsg+="Please enter the Colour Title\n";
        }

        /*
        if (empty(f.colourField05.value))
        {
          if (errMsg=="") {f.colourField05.focus();}
          errMsg+="Please enter your colourField05\n";
        }

        if (empty(f.colourField06.value))
        {
          if (errMsg=="") {f.colourField06.focus();}
          errMsg+="Please enter your colourField06\n";
        }
        */
      break;

      case "commissionForm":
        /*
        if (empty(f.commissionPicture1.value))
        {
          if (errMsg=="") {f.commissionPicture1.focus();}
          errMsg+="Please enter your commissionPicture1\n";
        }

        if (empty(f.commissionPicture1Thumb.value))
        {
          if (errMsg=="") {f.commissionPicture1Thumb.focus();}
          errMsg+="Please enter your commissionPicture1Thumb\n";
        }
        */
        if (!empty(f.commissionDisplaySequence.value) && !isNumeric(f.commissionDisplaySequence.value))
        {
          if (errMsg=="") {f.commissionDisplaySequence.focus();}
          errMsg+="If entered the Display Sequence must be numeric\n";
        }

      break;

      case "contactForm":
        if (empty (f.contactName.value))
        {
           if (errMsg=="")  {f.contactName.focus();}
           errMsg+="Please enter your Name\n";
        }

        /*
        if (empty (f.contactCompany.value))
        {
           if (errMsg=="")  {f.contactCompany.focus();}
           errMsg+="Please enter your contactCompany Name\n";
        }


        // if (empty (f.contactAddress1.value) && empty (f.contactAddress2.value) && empty (f.contactAddress3.value))
        if (empty (f.contactAddress1.value))
        {
           if (errMsg=="")  {f.contactAddress1.focus();}
           errMsg+="Please enter your Address\n";
        }

        if (empty (f.contactPostcode.value))
        {
           if (errMsg=="")  {f.contactPostcode.focus();}
           errMsg+="Please enter your contactPostcode\n";
        }
        */
        if (empty (f.contactPhone.value) && empty (f.contactEmail.value))
        {
           if (errMsg=="")  {f.contactPhone.focus();}
           errMsg+="Please enter either your Telephone number or Email Address\n";
        }
        else
        {
          if (!empty (f.contactEmail.value) && !checkEmail (f.contactEmail.value))
          {
            if (errMsg=="")  {f.contactEmail.focus();}
            errMsg+="That Email address is not valid\n";
          }
        }

        if (empty (f.contactMessage.value))
        {
           if (errMsg=="")  {f.contactMessage.focus();}
           errMsg+="Please enter details of your Enquiry\n";
        }
        /*
        if (empty (f.contactSpare01.value))
        {
           if (errMsg=="")  {f.contactSpare01.focus();}
           errMsg+="Please enter your contactSpare01\n";
        }

        if (empty (f.contactSpare02.value))
        {
           if (errMsg=="")  {f.contactSpare02.focus();}
           errMsg+="Please enter your contactSpare02\n";
        }

        if (empty (f.contactSpare03.value))
        {
           if (errMsg=="")  {f.contactSpare03.focus();}
           errMsg+="Please enter your contactSpare03\n";
        }

        if (empty (f.contactSpare04.value))
        {
           if (errMsg=="")  {f.contactSpare04.focus();}
           errMsg+="Please enter your contactSpare04\n";
        }

        if (empty (f.contactSpare05.value))
        {
           if (errMsg=="")  {f.contactSpare05.focus();}
           errMsg+="Please enter your contactSpare05\n";
        }

        if (empty (f.contactSpare06.value))
        {
           if (errMsg=="")  {f.contactSpare06.focus();}
           errMsg+="Please enter your contactSpare06\n";
        }

        if (empty (f.contactSpare07.value))
        {
           if (errMsg=="")  {f.contactSpare07.focus();}
           errMsg+="Please enter your contactSpare07\n";
        }

        if (empty (f.contactSpare08.value))
        {
           if (errMsg=="")  {f.contactSpare08.focus();}
           errMsg+="Please enter your contactSpare08\n";
        }

        if (empty (f.contactSpare09.value))
        {
           if (errMsg=="")  {f.contactSpare09.focus();}
           errMsg+="Please enter your contactSpare09\n";
        }

        if (empty (f.contactSpare10.value))
        {
           if (errMsg=="")  {f.contactSpare10.focus();}
           errMsg+="Please enter your contactSpare10\n";
        }

        if (empty (f.contactSpare11.value))
        {
           if (errMsg=="")  {f.contactSpare11.focus();}
           errMsg+="Please enter your contactSpare11\n";
        }

        if (empty (f.contactSpare12.value))
        {
           if (errMsg=="")  {f.contactSpare12.focus();}
           errMsg+="Please enter your contactSpare12\n";
        }

        if (empty (f.contactSpare13.value))
        {
           if (errMsg=="")  {f.contactSpare13.focus();}
           errMsg+="Please enter your contactSpare13\n";
        }

        if (empty (f.contactSpare14.value))
        {
           if (errMsg=="")  {f.contactSpare14.focus();}
           errMsg+="Please enter your contactSpare14\n";
        }

        */
      break;

      case "eventForm":
        /*
        if (empty(f.eventDays.value))
        {
          if (errMsg=="") {f.eventDays.focus();}
          errMsg+="Please enter your eventDays\n";
        }
        */
        if (empty(f.eventText.value))
        {
          if (errMsg=="") {f.eventText.focus();}
          errMsg+="Please enter the Text\n";
        }

        if (!empty(f.eventWebsite.value) && !checkURL(f.eventWebsite.value))
        {
          if (errMsg=="") {f.eventWebsite.focus();}
          errMsg+="That Website address is invalid\n";
        }

        if (empty(f.eventVenue.value))
        {
          if (errMsg=="") {f.eventVenue.focus();}
          errMsg+="Please enter the Venue\n";
        }
        /*
        if (empty(f.eventField08.value))
        {
          if (errMsg=="") {f.eventField08.focus();}
          errMsg+="Please enter your eventField08\n";
        }
        */
      break;

      case "postageForm":
        if (f.postageBasedOn.value == "Weight")
        {
          if (empty(f.postageOrderWeightUpTo.value))
          {
            if (errMsg=="") {f.postageOrderWeightUpTo.focus();}
            errMsg+="Please enter the Maximum Order Weight\n";
          }
          else
          {
            if (!isNumeric(f.postageOrderWeightUpTo.value))
            {
              if (errMsg=="") {f.postageOrderWeightUpTo.focus();}
              errMsg+="The Maximum Order Weight must be numeric\n"
            }
          }
        }
        else
        {
        if (f.postageBasedOn.value == "Quantity")
        {
          if (empty(f.postageOrderQuantityUpTo.value))
          {
            if (errMsg=="") {f.postageOrderQuantityUpTo.focus();}
            errMsg+="Please enter the Maximum Order Quantity\n";
          }
          else
          {
            if (!isNumeric(f.postageOrderQuantityUpTo.value))
            {
              if (errMsg=="") {f.postageOrderQuantityUpTo.focus();}
              errMsg+="The Maximum Order Quantity must be numeric\n"
            }
          }
        }
        else
        {
          if (empty(f.postageOrderValueUpTo.value))
          {
            if (errMsg=="") {f.postageOrderValueUpTo.focus();}
            errMsg+="Please enter the Maximum Order Value\n";
          }
          else
          {
            if (!isNumeric(f.postageOrderValueUpTo.value,2))
            {
              if (errMsg=="") {f.postageOrderValueUpTo.focus();}
              errMsg+="The Maximum Order Value must be numeric, maximum 2 decimal places\n"
            }
          }
        }
        }

        if (empty(f.postageUK.value))
        {
          if (errMsg=="") {f.postageUK.focus();}
          errMsg+="Please enter the UK Postage\n";
        }
        else
        {
          if (!isNumeric(f.postageUK.value,2))
          {
            if (errMsg=="") {f.postageUK.focus();}
            errMsg+="The UK Postage must be numeric, maximum 2 decimal places\n"
          }
        }

        if (f.euPostageUsed.value)
        {
          if (empty(f.postageEU.value))
          {
            if (errMsg=="") {f.postageEU.focus();}
            errMsg+="Please enter the EU Postage\n";
          }
          else
          {
            if (!isNumeric(f.postageEU.value,2))
            {
              if (errMsg=="") {f.postageEU.focus();}
              errMsg+="The EU Postage must be numeric, maximum 2 decimal places\n"
            }
          }
        }

        if (f.wwPostageUsed.value)
        {
          if (empty(f.postageWW.value))
          {
            if (errMsg=="") {f.postageWW.focus();}
            errMsg+="Please enter the WW Postage\n";
          }
          else
          {
            if (!isNumeric(f.postageWW.value,2))
            {
              if (errMsg=="") {f.postageWW.focus();}
              errMsg+="The WW Postage must be numeric, maximum 2 decimal places\n"
            }
          }
        }

      break;

      case "sizeForm":
        if (empty(f.sizeName.value))
        {
          if (errMsg=="") {f.sizeName.focus();}
          errMsg+="Please enter the Size\n";
        }
        /*
        if (empty(f.sizeDimensions.value))
        {
          if (errMsg=="") {f.sizeDimensions.focus();}
          errMsg+="Please enter your sizeDimensions\n";
        }
        */
        if (!empty(f.sizeDisplaySequence.value) && !isNumeric(f.sizeDisplaySequence.value))
        {
          if (errMsg=="") {f.sizeDisplaySequence.focus();}
          errMsg+="If entered the Display Sequence must be numeric\n";
        }

      break;



      default:
      return true;
    }

    if (errMsg!="")
    {
      alert(errMsg);
      return false;
    }
    else
    {
       if (confirmMessage!="")
       {
         if (confirm(confirmMessage)) {return true;}
         else {return false;}
       }
       else {return true;}
    }
  }


 function move(direction)
 {
    var h = getElement('holder');
    var hWidth = parseInt(h.style.width);
    if (divWidth < hWidth) {return;}
  var m = getElement('mover');
  var pCurrent = parseInt(m.style.left);
  if (direction != "Left") {var pNew = pCurrent -100;}
  else {var pNew = pCurrent +100;}
  if (pNew > 0) {pNew = 0;}
  else
  {
    var rEdge = pNew + divWidth;
    if (rEdge < hWidth)
    { //alert("rEdge=" + rEdge + ", hWidth=" + hWidth + ", divWidth=" + divWidth);
      var adjust = hWidth - rEdge;
      pNew = pNew + adjust - 20;
    }
  }
  pNew += "px";
  m.style.left = pNew;
 }

 function swapImage(id, optionTextVar, priceValue, image3, from)
 {
   var mainPicture = getElement("picture");
   mainPicture.src = eval(id + ".src");

   if (optionTextVar != null)
   {
     var optionText = eval(optionTextVar);

     var select = getElement("stockItemID");
     if (select)
     {
       if (select.options)
       {
         for (var i = 0; i < select.options.length; i++)
         {
           var option =  select.options[i];
           if (option.text == optionText)  {select.selectedIndex = i;}
         }
       }
     }
     var designName = getElement("shopDesignName");
     if (designName)
     {
       if (optionText != "Please choose") {designName.innerHTML = "(" + optionText + ")";}
       else {designName.innerHTML = "<br />";}
     }
   }

   if (priceValue != null)
   {
     if (from) {var fromPrice = from;}  else {var fromPrice = "";}
     var price = getElement("shopItemPrice");
     if (price)
     {
       var cost = formatDecimal(priceValue);
       price.innerHTML = fromPrice + "£" + cost;
     }
     price = getElement("shopItemPrice2");
     if (price) {price.innerHTML = fromPrice + "£" + cost;}
   }

   var detail = getElement("shopItemDetailImage");
   if (detail)
   {
     if (image3 != null)  {detail.src = image3;}

   }
 }

 function deleteItemFromCart(newQty)
 {
   var f = getElement("showCartForm");
   if (f)
   {
     var s = getElement (newQty);
     if (s)
     {
       s.selectedIndex = 0;
       f.action.value = "changeCart";
     }
   }
 }

 function  checkTermsRead()
 {
   var c = getElement("readTerms");
   if (c.checked) {return true;}
   else
   {
     alert ("Please confirm you have read the Terms and Conditions");
     return false;
   }
 }
