var valid=true;
function Qlogin() {
 with(document.join) {
  logaction.value = "login";
  if (!validemail(email2)) return false;
  email.value=email2.value;
 }
return true;
}
function Vpart() {
 with(document.join) {
  logaction.value="next";
  if (email.value == "") {
    alert("Please enter your email address");
    return false;
    }
  if (sname.value == "") {
    alert("Please enter your last name");
    return false;
    }
  if (dear.value == "") {
    alert("Please enter your first name");
    return false;
    }
  sname.value = proper(purge(sname.value,"-'",1,1));
  dear.value = normalise(purge(dear.value," .&",1,1));
  pref.value = normalise(purge(pref.value," .&",1,1));
  if (pref.value == "") {
    pref.value=dear.value.charAt(0);
    }
  if (!validemail(email)) return false;

  add1.value = normalise(purge(add1.value," -/",1,1));
  add2.value = normalise(purge(add2.value," -/",1,1));
  add3.value = normalise(purge(add3.value," -/",1,1));
  city.value = normalise(purge(city.value," -/",1,1));
  county.value = normalise(purge(county.value," -/",1,0));
  country.value = normalise(purge(country.value," ",1,0));
  pc = purge(postcode.value," ",1,1).toUpperCase();
  postcode.value = pc;
  k = pc.length;
  pc1 = purge(pc.substring(0,2),"",1,0);
  pc2 = purge(pc.substring(2,4),"",0,1);
  pc3 = purge(pc.substring(4,k-2),"",0,1);
  pc4 = purge(pc.substring(k-2,k),"",1,0);
  pc = pc1+pc2+" "+pc3+pc4;
  if (pc.length>7) postcode.value = pc;
  phone.value = purge(phone.value," +.()",0,1);
 }
return true;
}
function validemail(em) {
  if (em.value == "") return true;
  substitute(em,"'","@");
  substitute(em,",",".");
  em.value = purge(em.value,"-@._",1,1).toLowerCase();
  k = em.value.indexOf("@");
  if (k<0) {
    alert("email must include '@'");
    return false;
    }
  else {
    k = em.value.indexOf("@",k+1);
    if (k >= 0) {
      alert("email must contain only one '@'");
      return false;
      }
    }
  return true;
  }
function Vfull() {
 if (!Vpart()) return false;
 with(document.join) {
  if (add1.value == "") {
    alert("Please enter your street address");
    return false;
    }
  if (city.value == "") {
    alert("Please specify main town or city");
    return false;
    }
  if (postcode.value == "") {
    alert("Please provide postcode");
    return false;
    }
  k = phone.value.length; 
  if (k < 9) {
    alert("Please provide phone number");
    return false;
    }
  phone.value = phone.value.substring(0,k-6) +" "+ phone.value.substring(k-6,k);
  }
 return true;
 }
function purge(str0,validchars,alpha,numeric) {
//strips out all except specified characters, alphas, or numerics
 if (alpha>0) validchars += "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
 if (numeric>0) validchars += "0123456789";
 strout="";
 for (i=0; i<str0.length; i++) {
   c = str0.charAt(i);
   if (validchars.indexOf(c) >= 0) strout += c;
   }
 return strout;
 }
function proper(str0) {
 return str0.substring(0,1).toUpperCase() + str0.substring(1,str0.length).toLowerCase();
 }
function substitute(infield,fromchar,tochar) {
  k=0;
  while (k >= 0) {
    k = infield.value.indexOf(fromchar,k);
    if (k>0) infield.value = infield.value.substring(0,k) + tochar + infield.value.substring(k+1,infield.value.length);
    }
 }
function normalise(str0) {
 words = str0.split(" ");
 for (i=0; i<words.length; i++) {
   words[i] = proper(words[i]);
   if ("And".indexOf(words[i]) >= 0) words[i] = words[i].toLowerCase();
   }
 return words.join(" ");
 }
