function validate_form(formdata) {
  var count = 0;
  var field;
  for (field in formdata) {
    switch (field) {
      case 'username':
          if (formdata[field].value.length < 3 || formdata[field].value.length > 20) {
            alert('[ERROR] *必填* 帳號必須為 3-20 英文 / 數字組合而成!');
            formdata[field].style.background = '#e3c6e3';
            count++;
          }
          else {
            formdata[field].style.background = '#ffffff';
          }
        break;
      case 'name':
          if (formdata.name == formdata[field]) {
            continue;
          }
          else {
            if (formdata[field].value.length < 1) {
              alert('[ERROR] *必填* 姓名 必須要填寫!');
              formdata[field].style.background = '#e3c6e3';
              count++;
            }
            else {
              formdata[field].style.background = '#ffffff';
            }
          }
        break;
      case 'password':
          if (validate_password(formdata[field], formdata.confirm_password) === false) {
            count++;
          }
          else {
            formdata[field].style.background = '#ffffff';
            formdata.confirm_password.style.background = '#ffffff';
          }
        break;
      case 'phone_cellular':
          if (formdata[field].value.length < 10 || formdata[field].value.length > 20) {
            alert('[ERROR] *必填* 行動電話號碼必須填寫!');
            formdata[field].style.background = '#e3c6e3';
            count++;
          }
          else {
            formdata[field].style.background = '#ffffff';
          }
        break;
      case 'email':
          if (validate_email(formdata[field]) === false) {
            count++;
          }
          else {
            formdata[field].style.background = '#ffffff';
          }
        break;

      /** This section also impliments checks for checkout form */
      case 'receive_name':
          if (formdata[field].value.length < 1) {
            alert('[ERROR] *必填* 姓名 必須要填寫!');
            formdata[field].style.background = '#e3c6e3';
            count++;
          }
          else {
            formdata[field].style.background = '#ffffff';
          }
        break;
      case 'receive_phone_cellular':
          if (formdata[field].value.length < 10 || formdata[field].value.length > 20) {
            alert('[ERROR] *必填* 行動電話號碼必須填寫!');
            formdata[field].style.background = '#e3c6e3';
            count++;
          }
          else {
            formdata[field].style.background = '#ffffff';
          }
        break;
      case 'receive_email':
          if (validate_email(formdata[field]) === false) {
            count++;
          }
          else {
            formdata[field].style.background = '#ffffff';
          }
        break;
    }
  }
  if (count > 0) {
    alert('[ERROR] 申請表單未填完成, 或有錯誤!');
    return(false);
  }
  else {
    return(true);
  }

  return (false);
}

function validate_password(p1, p2) {
  var p1_status = false;
  var p2_status = false;
  if (p1.value.length < 6 || p1.value.length > 30) {
    alert('[ERROR] *必填* 密碼必須為 6-30 英文 / 數字組合而成!');
    p1.style.background = '#e3c6e3';
    return (false);
  }
  else {
    p1_status = true;
  }

  if (p2.value.length < 6 || p2.value.length > 30) {
    alert('[ERROR] *必填* 密碼必須為 6-30 英文 / 數字組合而成!');
    p2.style.background = '#e3c6e3';
    return (false);
  }
  else {
    p2_status = true;
  }

  if (p1_status === true && p2_status === true) {
    if (p1.value != p2.value) {
      alert('[ERROR] *必填* 密碼不同, 請確認後從新輸入!');
      p1.style.background = '#e3c6e3';
      p2.style.background = '#e3c6e3';
      return (false);
    }
  }
}

function validate_email(field) {
  with (field) {
    apos=value.indexOf("@");
    dotpos=value.lastIndexOf(".");
    if (apos<1||dotpos-apos<2) {
      alert('[ERROR] *必填* E-Mail 必須是有效帳號!');
      field.style.background = '#e3c6e3';
      return (false);
    }
    else {
      return (true);
    }
  }
}
