var MSG001 = "半角数字ではありません。\n";
var MSG002 = "範囲外の数値です。\n";
var MSG003 = "時間ではありません。\n";
var MSG004 = "必ず入力してください。\n";

var MSG005 = "YYYY-MM-DD形式で入力してください。\n";
var MSG006 = "必ず選択してください。\n";

function goFieldCheck(pStat){
  // 回数
  if(!validate.isNotEmpty(document.regist.count.value)) {
    alert(MSG004 + "(回数)");
    return false;
  }
  if(!validate.isNum(document.regist.count.value)){
    alert(MSG001 + "(回数)");
    return false;
  }
  // 献血日
  if(!validate.isNotEmpty(document.regist.enforcingdate.value)) {
    alert(MSG004 + "(献血日)");
    return false;
  }
  if(!validate.isDate(document.regist.enforcingdate.value, "US")){
    alert(MSG005 + "(献血日)");
    return false;
  }
  // 献血種別
  if(!validate.isNotEmpty(document.regist.kindcode.value)) {
    alert(MSG006 + "(献血種別)");
    return false;
  }
  // 献血ルーム
  if(!validate.isNotEmpty(document.regist.roomcode.value)) {
    alert(MSG006 + "(献血ルーム)");
    return false;
  }
  // ALT
  if(validate.isNotEmpty(document.regist.alt.value)) {
    if(!validate.isNum(document.regist.alt.value)){
      alert(MSG001 + "(ALT(GPT))");
      return false;
    }
  } else {
    document.regist.alt.value = 0;
  }
  // AST
  if(validate.isNotEmpty(document.regist.ast.value)) {
    if(!validate.isNum(document.regist.ast.value)){
      alert(MSG001 + "(AST(GOT))");
      return false;
    }
  } else {
    document.regist.ast.value = 0;
  }
  // γ-GTP
  if(validate.isNotEmpty(document.regist.gtp.value)) {
    if(!validate.isNum(document.regist.gtp.value)){
      alert(MSG001 + "(γ-GTP)");
      return false;
    }
  } else {
    document.regist.gtp.value = 0;
  }
  // 総蛋白
  if(validate.isNotEmpty(document.regist.tp.value)) {
    if(!validate.isDecimal(document.regist.tp.value)){
      alert(MSG001 + "(総蛋白(TP))");
      return false;
    }
  } else {
    document.regist.tp.value = 0;
  }
  // アルブミン
  if(validate.isNotEmpty(document.regist.alb.value)) {
    if(!validate.isDecimal(document.regist.alb.value)){
      alert(MSG001 + "(アルブミン(ALB))");
      return false;
    }
  } else {
    document.regist.alb.value = 0;
  }
  // アルブミン対グロブリン比
  if(validate.isNotEmpty(document.regist.ag.value)) {
    if(!validate.isDecimal(document.regist.ag.value)){
      alert(MSG001 + "(アルブミン対グロブリン比(A/G))");
      return false;
    }
  } else {
    document.regist.ag.value = 0;
  }
  // コレステロール
  if(validate.isNotEmpty(document.regist.chol.value)) {
    if(!validate.isNum(document.regist.chol.value)){
      alert(MSG001 + "(コレステロール(CHOL))");
      return false;
    }
  } else {
    document.regist.chol.value = 0;
  }
  // グリコアルブミン
  if(validate.isNotEmpty(document.regist.ga.value)) {
    if(!validate.isDecimal(document.regist.ga.value)){
      alert(MSG001 + "(グリコアルブミン(GA))");
      return false;
    }
  } else {
    document.regist.ga.value = 0;
  }
  // 赤血球数
  if(validate.isNotEmpty(document.regist.rbc.value)) {
    if(!validate.isNum(document.regist.rbc.value)){
      alert(MSG001 + "(赤血球数(RBC))");
      return false;
    }
  } else {
    document.regist.rbc.value = 0;
  }
  // ヘモグロビン量
  if(validate.isNotEmpty(document.regist.hb.value)) {
    if(!validate.isDecimal(document.regist.hb.value)){
      alert(MSG001 + "(ヘモグロビン量(Hb))");
      return false;
    }
  } else {
    document.regist.hb.value = 0;
  }
  // ヘマトクリット値
  if(validate.isNotEmpty(document.regist.ht.value)) {
    if(!validate.isDecimal(document.regist.ht.value)){
      alert(MSG001 + "(ヘマトクリット値(Ht))");
      return false;
    }
  } else {
    document.regist.ht.value = 0;
  }
  // 平均赤血球容積
  if(validate.isNotEmpty(document.regist.mcv.value)) {
    if(!validate.isDecimal(document.regist.mcv.value)){
      alert(MSG001 + "(平均赤血球容積(MCV))");
      return false;
    }
  } else {
    document.regist.mcv.value = 0;
  }
  // 平均赤血球ヘモグロビン量
  if(validate.isNotEmpty(document.regist.mch.value)) {
    if(!validate.isDecimal(document.regist.mch.value)){
      alert(MSG001 + "(平均赤血球ヘモグロビン量(MCH))");
      return false;
    }
  } else {
    document.regist.mch.value = 0;
  }
  // 平均赤血球ヘモグロビン濃度
  if(validate.isNotEmpty(document.regist.mchc.value)) {
    if(!validate.isDecimal(document.regist.mchc.value)){
      alert(MSG001 + "(平均赤血球ヘモグロビン濃度(MCHC))");
      return false;
    }
  } else {
    document.regist.mchc.value = 0;
  }
  // 白血球数
  if(validate.isNotEmpty(document.regist.wbc.value)) {
    if(!validate.isNum(document.regist.wbc.value)){
      alert(MSG001 + "(白血球数(WBC))");
      return false;
    }
  } else {
    document.regist.wbc.value = 0;
  }
  // 血小板数
  if(validate.isNotEmpty(document.regist.plt.value)) {
    if(!validate.isDecimal(document.regist.plt.value)){
      alert(MSG001 + "(血小板数(PLT))");
      return false;
    }
  } else {
    document.regist.plt.value = 0;
  }
  return true;
}

function checkForm(form,pStatus){
  var validate = new Validate();
  var validates_ok = '<img style="vertical-align: middle" src="../images/ok.gif" alt="OK" />';
  var validates_ng = '<img style="vertical-align: middle" src="../images/ng.gif" alt="NG" />';

  /* エラーメッセージの初期化 */
  document.getElementById('password_msg').innerHTML = "";
  document.getElementById('passwordagain_msg').innerHTML = "";
  document.getElementById('email_msg').innerHTML = "";

  if (pStatus == 'signup') {
    document.getElementById('userid_msg').innerHTML = "";
    /* ユーザID */
    if(!validate.isNotEmpty(form.userid.value)){// 未入力チェック
        document.getElementById('userid_msg').innerHTML = validates_ng + "ユーザIDを入力してください";
    }
    else if(!form.userid.value.match(/^[a-z\d]+$/)){// 半角英数字チェック
        document.getElementById('userid_msg').innerHTML = validates_ng + "「半角英数小文字」のみ有効です";
    }
    else if(form.userid.value.length < 3){// 長さチェック
        document.getElementById('userid_msg').innerHTML = validates_ng + "3文字以上で入力してください";
    }
  }
    /* パスワード */
    if(!validate.isNotEmpty(form.password.value)){// 未入力のチェック
        document.getElementById('password_msg').innerHTML = validates_ng + "パスワードを入力してください";
    }
    else if(!form.password.value.match(/^[a-z\d]+$/)){// 半角英数字チェック
        document.getElementById('password_msg').innerHTML = validates_ng + "「半角英数小文字」のみ有効です";
    }
    /* パスワード(確認用) */
    if(!validate.isNotEmpty(form.passwordagain.value)){// 未入力のチェック
        document.getElementById('passwordagain_msg').innerHTML = validates_ng + "パスワードを入力してください";
    }
    else if(!form.passwordagain.value.match(/^[a-z\d]+$/)){// 半角英数字チェック
        document.getElementById('passwordagain_msg').innerHTML = validates_ng + "「半角英数小文字」のみ有効です";
    }
    /* パスワード＆パスワード(確認用) */
    if (form.password.value && form.passwordagain.value){
        if (form.password.value != form.passwordagain.value){
            document.getElementById('password_msg').innerHTML = validates_ng + "パスワードが一致しません";
        }
    }
    /* メールアドレス */
    if(!validate.isNotEmpty(form.email.value)){// 未入力のチェック
        document.getElementById('email_msg').innerHTML = validates_ng + "メールアドレスを入力してください";
    }
    else if(!validate.isEMailAddr(form.email.value)){
        document.getElementById('email_msg').innerHTML = validates_ng + "正しいメールアドレスを入力してください";
    }
}

function checkUpload() {
  // ファイル名
  if(!validate.isNotEmpty(document.goods.imagefile.value)) {
    alert(MSG004 + "(画像)");
    return false;
  }
  // 献血日
  if(!validate.isNotEmpty(document.goods.enforcingdate.value)) {
    alert(MSG004 + "(献血日)");
    return false;
  }
  if(!validate.isDate(document.goods.enforcingdate.value, "US")){
    alert(MSG005 + "(献血日)");
    return false;
  }
  // 献血ルーム
  if(!validate.isNotEmpty(document.goods.roomcode.value)) {
    alert(MSG006 + "(献血ルーム)");
    return false;
  }
  return true;
}

function createXMLHttpRequest(cbFunc)
{
	var XMLhttpObject = null;
	try{
		XMLhttpObject = new XMLHttpRequest();
	}catch(e){
		try{
			XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e){
				return null;
			}
		}
	}
	if (XMLhttpObject) XMLhttpObject.onreadystatechange = cbFunc;
	return XMLhttpObject;
}