function step1()
{
  $("#InputName , #InputPassword , #InputPasswordVerify , #InputMail").removeClass("Error");
  $("#SignUpError").html("");

  shield(true);

  var name = $("#InputName").val();
  var password = $("#InputPassword").val();
  var passwordVerify = $("#InputPasswordVerify").val();
  var mail = $("#InputMail").val();

  var success = true;
  var error = "";
  //{{{check name
  if(name == ""){
    $("#InputName").addClass("Error");
    error = error + "- ユーザ名が入力されていません。<br/>";
    success = false;
  }
  else{
    if(name.match(/^[0-9a-zA-Z-_]+$/) == null){
      $("#InputName").addClass("Error");
      error = error + "- ユーザ名に使用できる文字は半角英数字 - _です。<br/>";
      success = false;
    }
  }
  //}}}
  //{{{check password
  if(password == "" && passwordVerify == ""){
    $("#InputPassword , #InputPasswordVerify").addClass("Error");
    error = error + "- パスワードが入力されていません。<br/>";
    success = false;
  }
  else{
    if(password != passwordVerify){
      $("#InputPassword , #InputPasswordVerify").addClass("Error");
      error = error + "- パスワードが一致しません。<br/>";
      success = false;
    }

    if(password.match(/^[ -~]+$/) == null){
      $("#InputPassword , #InputPasswordVerify").addClass("Error");
      error += "- パスワードに使用できる文字は半角英数記号です。<br/>";
      success = false;
    }
  }
  //}}}
  //{{{check mail
  if(mail == ""){
    $("#InputMail").addClass("Error");
    error += "- メールアドレスが入力されていません。<br/>";
    success = false;
  }
  else
  {
    if(validateMailAddress(mail) == false)
    {
      $("#InputMail").addClass("Error");
      error += "- メールアドレスの書式が正しくありません。<br/>";
      success = false;
    }
  }
  //}}}

  if(success == false)
  {
    $("#SignUpError").html(error);
    shield(false);
    return false;
  }

  $.post(this.action , {name:name , password:password , mail:mail} , callback , "json");

  //{{{function callback(data)
  function callback(data)
  {
    if(data.result == "success")
    {
      alert("最終登録用のメールを" + mail + "に送信しました。" , "info");
    }
    else
    {
      $("#SignUpError").html("- " + data.reason);
    }
    shield(false);
  }
  //}}}

  return false;
}

