
var neededFields = new makeAnArray('forename', 'surname', 'company', 'address', 'postcode');
var neededDesc = new makeAnArray('your first name', 'your second name', 'your company name', 'your address', 'your postcode');

function makeAnArray() {
  this.length = makeAnArray.arguments.length;
  for (var i = 0; this.length > i; i++) {
    this[i] = makeAnArray.arguments[i]
  }
}

function validInfo(obj) {
  var errMsg = '';
  if (!(isPhoneNumber(obj.elements['tel'].value))) {
    errMsg = errMsg + 'You did not enter a valid phone number\n'
  }
  if (!(isMailAddress(obj.elements['email'].value))) {
    errMsg = errMsg + 'You did not enter a valid email address\n'
  }


  for (var l = 0; neededFields.length > l; l ++) {
    if ((obj.elements[neededFields[l]].value == '') ||
      (obj.elements[neededFields[l]].value == ' ')) {
      errMsg = errMsg + 'You didn\'t enter ' + neededDesc[l] + '\n';
      }
  }
  if (errMsg != '') {
    errMsg = 'Unable to submit this form because:\n\n' + errMsg;
    alert(errMsg);
    return false;
  } else {
    donotdoubleclick();
    return true;
  }
}

function isPhoneNumber(n) {
   var nl = n.length;
   var goodNum = true;
   if (7 > nl) { goodNum = false; }
   for (c = 0; n.length > c; c++) {
      t = n.charAt(c);
      if (((t >= '0') && ('9' >= t) || (t == '.') || (t == ' ') || (t == '+') || (t == '-')|| (t == ')')|| (t == '(')) != true) {
  goodNum = false;
      }
   }
   if ((n == '') || (n == ' ')) { goodNum = false; }

   return goodNum;
}

function isMailAddress(m) {
   if ((m == '') || (m == ' ')) { return false; }

    var a = 1;
    var ml = m.length;

    while ((a < ml) && (m.charAt(a) != "@")) { a++ } // >
    if ((a >= ml) || (m.charAt(a) != "@")) {
  return false;
    } else {
  a = a + 2;
    }
    while ((ml > a) && (m.charAt(a) != ".")) { a++ }
    if ((a >= ml - 1) || (m.charAt(a) != ".")) {
  return false;
    } else {
    return true;
    }
}

var clicked=false;
function donotdoubleclick () {
  if (clicked) {
    alert("You have already sent this form. Clicking the submit button again could lead to a duplication of your submission.");
    return false;
  } else {
    clicked=true;
    return true;
  }
}

function submitit() {
if (validInfo(document.contactform) == true) {document.contactform.submit();}
}
