function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}

function postit(){ //check postcode format is valid
 test = document.findlocal.pcode.value; size = test.length
 test = test.toUpperCase(); //Change to uppercase
 while (test.slice(0,1) == " ") //Strip leading spaces
  {test = test.substr(1,size-1);size = test.length
  }
 while(test.slice(size-1,size)== " ") //Strip trailing spaces
  {test = test.substr(0,size-1);size = test.length
  }
 document.findlocal.pcode.value = test; //write back to form field
 if (size < 3 || size > 8){ //Code length rule
  alert(test + " is not a valid postcode - wrong length");
  document.findlocal.pcode.focus();
  return false;
  }
 if (!(isNaN(test.charAt(0)))){ //leftmost character must be alpha character rule
   alert(test + " is not a valid postcode - cannot start with a number");
   document.findlocal.pcode.focus();
   return false;
  }
 if (size > 5) { 
    if (isNaN(test.charAt(size-3))){ //first character of inward code must be numeric rule
      alert(test + " is not a valid postcode - alpha character in wrong position");
      document.findlocal.pcode.focus();
      return false;
    }
    if (!(isNaN(test.charAt(size-2)))){ //second character of inward code must be alpha rule
      alert(test + " is not a valid postcode - number in wrong position");
      document.findlocal.pcode.focus();
      return false;
    }
    if (!(isNaN(test.charAt(size-1)))){ //third character of inward code must be alpha rule
      alert(test + " is not a valid postcode - number in wrong position");
      document.findlocal.pcode.focus();
      return false;
    }
    if (!(test.charAt(size-4) == " ")){//space in position length-3 rule
      alert(test + " is not a valid postcode - no space or space in wrong position");
      document.findlocal.pcode.focus();
      return false;
    }
    count1 = test.indexOf(" ");count2 = test.lastIndexOf(" ");
    if (count1 != count2){//only one space rule
       alert(test + " is not a valid postcode - only one space allowed");
       document.findlocal.pcode.focus();
       return false;
    }
 }
return true;
}

function postit1(){ //check postcode format is valid
 test = document.findlocal1.pcode1.value; size = test.length
 test = test.toUpperCase(); //Change to uppercase
 while (test.slice(0,1) == " ") //Strip leading spaces
  {test = test.substr(1,size-1);size = test.length
  }
 while(test.slice(size-1,size)== " ") //Strip trailing spaces
  {test = test.substr(0,size-1);size = test.length
  }
 document.findlocal1.pcode1.value = test; //write back to form field
 if (size > 5) { 
    if (isNaN(test.charAt(size-3))){ //first character of inward code must be numeric rule
      alert(test + " is not a valid postcode - alpha character in wrong position");
      document.findlocal.pcode.focus();
      return false;
    }
    if (!(isNaN(test.charAt(size-2)))){ //second character of inward code must be alpha rule
      alert(test + " is not a valid postcode - number in wrong position");
      document.findlocal.pcode.focus();
      return false;
    }
    if (!(isNaN(test.charAt(size-1)))){ //third character of inward code must be alpha rule
      alert(test + " is not a valid postcode - number in wrong position");
      document.findlocal.pcode.focus();
      return false;
    }
    if (!(test.charAt(size-4) == " ")){//space in position length-3 rule
      alert(test + " is not a valid postcode - no space or space in wrong position");
      document.findlocal.pcode.focus();
      return false;
    }
    count1 = test.indexOf(" ");count2 = test.lastIndexOf(" ");
    if (count1 != count2){//only one space rule
       alert(test + " is not a valid postcode - only one space allowed");
       document.findlocal.pcode.focus();
       return false;
    }
 }
return true;
}

