//******************************************************************
// 履歴
//  2004-09-XX  # 初版
//******************************************************************

btn_flg = 0;

function btn_click(f) {
  if ( btn_flg == 0 ) {
    // 実行確認
    confmsg = f.CONFMSG.value;
    retcd = confirm(confmsg);

    if(retcd == true){

      // debug 計測
      //var startTime = new Date().getTime();

      // 二重実行防止
      btn_flg = 1;

      // 入力チェック
      ret = FncChkValue(f);

      // メール送信
      if (ret == 0) { f.submit(); }

      // 二重実行防止
      btn_flg = 0;

      // debug 計測
      //alert(new Date().getTime() - startTime);
    }
  }
  
  return;
}

//---------------------------------------------
// チェック種類振り分け
//---------------------------------------------
function FncChkValueSub(m1, m3, o, t){
  ret = 0;
  m = m1;

  switch (t) {
  case "1": // テキスト
    ret = FncChkText(o.value);
    break;
  case "2": // セレクト
    ret = FncChkSelect(o.value);
    break;
  case "3": // チェックボックス
    ret = FncChkCheckbox(o);
    break;
  case "4": // Emailチェック
    m = m3;
    ret = FncChkEmail(o.value);
    break;
  }

  // 必須メッセージ
  if (ret != 0) { alert(m); o.focus(); }

  return ret;
}

//---------------------------------------------
// 各種コントロールチェック
//---------------------------------------------
function FncChkValue(f){
  ret = 0;
  m1 = f.CHKMSG.value;
  m2 = f.COMPMSG.value;
  m3 = f.CHKMSG2.value;

  tmpnm = "";
  tmpv = "";

  // チェック項目洗い出し
  for (i = 0; i < f.elements.length; i++) {
    obj = f.elements[i];
    // 頭 take 末尾 0 以外が必須対象
    if (obj.name.match("^take.+[^0]$") != null) {
      // 必須判定
      ret = FncChkValueSub(m1, m3, obj, obj.name.substr(7,1));
      if (ret != 0) { return ret; }
      // 同一内容判定
      if (tmpnm == obj.name && obj.name.substr(7,1) != 9) {
        if (tmpv != obj.value) { alert(m2); obj.focus(); return 1; }
        // Emailチェック
        //if (FncChkEmail(obj.value) != 0) { alert(m3); obj.focus(); return 1; }
      } else {
        tmpnm = obj.name
        tmpv = obj.value
      }
    } else if (obj.name.match("^dummytake.+0$") != null) {
      // チェックボックス
      if (obj.checked == true) {
        f.elements[obj.name.substr(5,8)].value = obj.value
      }
    }
  }

  return ret;
}

//---------------------------------------------
// テキストボックスの空判定
//---------------------------------------------
function FncChkText(s) {
  ret = 0;
  if (s.length == 0) { ret = 1; }
  return ret;
}

//---------------------------------------------
// セレクトボックスの未選択判定
//---------------------------------------------
function FncChkSelect(s) {
  ret = 0;
  if (s == "nosel") { ret = 1; }
  return ret;
}

//---------------------------------------------
// チェックボックスの未選択判定
//---------------------------------------------
function FncChkCheckbox(s) {
  ret = 0;
  if (s.checked != true) { ret = 1; }
  return ret;
}

//---------------------------------------------
// Emailチェック
//---------------------------------------------
function FncChkEmail(s) {
  ret = 0;
  if (s.length == 0) { ret = 1; }
  // x@x の文字列かどうか
  if (s.match(".+@.+") == null) { ret = 1; }
  return ret;
}

