  function allTrim(cValue) {
    var lDone = false;
    while (lDone == false) {
       if (cValue.length == 0) {
          return(cValue);
       }
       if (cValue.indexOf(' ') == 0) {
          cValue = cValue.substring(1);
          lDone = false; 
          continue;
       } else {lDone=true;}
         if (cValue.lastIndexOf(' ') == cValue.length-1) { 
            cValue = cValue.substring(0, cValue.length-1);
            lDone = false;
            continue;
         } else {
            lDone = true;
         }
    }
    return(cValue);
  }

  function parseName() {  
    var newName = "";
    var obj = document.mailForm.p_name.value;
    for (i=0; i < obj.length; i++) {
        if (i == 0) {
           newName += obj.substring(i,i+1).toUpperCase();
        } else if (obj.substring(i,i+1) == " ") {
           i ++; newName += " " + obj.substring(i,i+1).toUpperCase();
        } else if (obj.substring(i,i+1) == "-") {
           i ++; newName += "-" + obj.substring(i,i+1).toUpperCase();
        } else {
           newName += obj.substring(i,i+1).toLowerCase();
        }
    }
    document.mailForm.p_name.value = newName;  
  }

  function checkMailAddress(email) {
     if (navigator.userAgent.indexOf("Gecko") != -1) {
        if (document.mailForm.p_email.value.indexOf("@") == -1 || 
            document.mailForm.p_email.value.indexOf(".") == -1) {
           return(false);
        } else {
           return(true);
        }
     } else {
        // var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
        var filter = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
        if (email.search(filter) == -1)
           return(false);  
        else  
           return(true);
    }
  }

  function validatePrefs() {
    if (allTrim(document.prefForm.r_name.value) == "") {
       alert("You must supply your full name.");
       return(false);
    }
    if (allTrim(document.prefForm.r_phone.value) == "") {
       alert("You must supply your phone number.");
       return(false);
    }
    if (isNaN(allTrim(document.prefForm.r_phone.value))) {
       alert("Please enter your telephone number (digits only, no spaces). If your number is outside the UK please use the full dialling code for us to call your number from the UK directly, e.g. 0036301442811");
       return(false);
    }
    if (document.prefForm.r_phone.value == 0 || allTrim(document.prefForm.r_phone.value) == "" || document.prefForm.r_phone.value.length < 10) {
       alert("Please enter a valid telephone number, thank you.");
       return(false);
    }
    if (document.prefForm.r_phone.value.substring(0,1) != "0") {
       alert("Please enter your phone number using its international prefix, starting with a zero. UK numbers do not need this prefix.");
       return(false);
    }    
    if (allTrim(document.prefForm.r_email.value)  == "") {
       alert("You must supply your email address.");
       return(false);
    }
    if (allTrim(document.prefForm.r_email.value)  != "") {
       if (document.prefForm.r_email.value.indexOf("@") == -1 ||
           document.prefForm.r_email.value.indexOf(".") == -1 ||
           document.prefForm.r_email.value.indexOf(" ") != -1) {
          alert("Please supply a valid e-mail address.");
          return(false);
       }
    }
    document.prefForm.submit();
  }

  function validate() {
    if (allTrim(document.mailForm.p_name.value)  == "" || allTrim(document.mailForm.p_phone.value) == "" || allTrim(document.mailForm.p_email.value) == "") {
       alert("You must supply a name, phone number and email address.");
       return(false);
    }
    if (document.mailForm.p_name.value.indexOf(" ") == -1) {
       alert("Please enter your full name, thank you.");
       return(false);
    }    
    if (!checkMailAddress(document.mailForm.p_email.value)) {
         alert("Please supply a valid e-mail address.");
         return(false);
    }
    if (document.mailForm.p_email.value != document.mailForm.p_email2.value) {
       alert("Please enter your email address and confirm it. Your addresses do not match each other.");
       return(false);
    }
    if (isNaN(allTrim(document.mailForm.p_phone.value))) {
       alert("Please enter your telephone number (digits only, no spaces). If your number is outside the UK please use the full dialling code for us to call your number from the UK directly, e.g. 0036301442811");
       return(false);
    }
    if (document.mailForm.p_phone.value == 0 || allTrim(document.mailForm.p_phone.value) == "" || document.mailForm.p_phone.value.length < 10) {
       alert("Please enter a valid telephone number, thank you.");
       return(false);
    }
    if (document.mailForm.p_phone.value.substring(0,1) != "0") {
       alert("Please enter your phone number using its international prefix, starting with a zero. UK numbers do not need this prefix.");
       return(false);
    }    
    if (confirm("Do you want to sign up to the mailing list?\n\n" + 
                   "Please note: If you submit incomplete or non-existant details i.e. incomplete telephone numbers etc, " +
                   "this will result in your record being purged from our system without further notification.\n\n" +
                   "Please ensure that if you no longer want to be subscribed to our list that you use our unsubscribe " +
                   "facility or notify us by email, thank you. Similary, if you change your contact details, use the Change Preferences option.\n\n" +
                   "Finally, please ensure that your email address is correct and working BEFORE signing up.")) { 
       document.mailForm.submit();
    }
  }

  function _validate() {
    if (allTrim(document.mailForm.p_pass.value)  != "" &&
        allTrim(document.mailForm.p_email.value) != "" &&
        allTrim(document.mailForm.p_phone.value) != "") {
       if (document.mailForm.p_email.value.indexOf("@") == -1 ||
           document.mailForm.p_email.value.indexOf(".") == -1 ||
           document.mailForm.p_email.value.indexOf(" ") != -1) {
         alert("Please supply a valid e-mail address.");
         return(false);
       } else {
         return(true);
       }
    } else {
       alert("Please complete all fields.");
       return(false);
    }
  }

  function _validate2() {
    if (allTrim(document.mailForm.p_phone.value) == "") {
       alert("Please enter a contact telephone number."); 
       return(false);
    }
    if (allTrim(document.mailForm.p_email.value) == "") {
       alert("Please enter your email address."); 
       return(false);
    }
    if (document.mailForm.p_email.value.indexOf(".") == -1) {
       alert("Please enter a valid email address."); 
       return(false);
    }
    if (document.mailForm.p_email.value.indexOf("@") == -1) {
       alert("Please enter a valid email address."); 
       return(false);
    }
    return(true);
  }

