/*
 * チェックボックスの選択状態をチェックする．
 * 変更の場合は、チェックが1つであること.
 * 削除の場合は、チェックが1つ以上であること.
 * 
 * param selectBoxName  プルダウンのname
 * param checkBoxName   チェックボックスのname
 * param formName       フォームのname
 * param delMsg         削除確認時のダイアログメッセージ
 * param nonMsg         チェックボックスが選択されていない場合のメッセージ
 * param oneMsg         チェックボックスが2件以上選択されている場合のメッセージ
 */
function validateListCheckBox1(selectBoxName, checkBoxName, formName, delMsg, nonMsg, oneMsg) {
  if(document.getElementById(selectBoxName).options.selectedIndex == 1) {
    if(validateCheckBoxOne(checkBoxName, formName, nonMsg, oneMsg) == false){
      return false;
    }
  }else if(document.getElementById(selectBoxName).options.selectedIndex == 2) {
    if(validateCheckBox(checkBoxName, formName, nonMsg) == false){
      return false;
    }
    if(confirm(delMsg) == false){
      return false;
    }
  }
}

/*
 * チェックボックスの選択が1つであることをチェックする．
 * 
 * param checkBoxName   チェックボックスのname
 * param formName       フォームのname
 * param nonMsg         チェックボックスが選択されていない場合のメッセージ
 * param oneMsg         チェックボックスが2件以上選択されている場合のメッセージ
 */
function validateCheckBoxOne(checkBoxName, formName, nonMsg, oneMsg) {
  var elementLength = document.forms[formName].elements.length;
  var i, checkFlg;
  checkFlg = 0;
  for (i = 0; i < elementLength; i++) {
    var element;
    element = window.document.forms[formName].elements[i];
    if ((element.type == "checkbox") && (element.name != "")) {
      if (element.name.match(checkBoxName)) {
        if (element.checked) {
          checkFlg++;
        }
      }
    }
  }
  if (checkFlg == 0) {
    alert(nonMsg);
    return false;
  } else if (checkFlg != 1) {
    alert(oneMsg);
    return false;
  }
  return true;
}

/*
 * チェックボックスの選択が1つ以上であることをチェックする．
 * 
 * param checkBoxName   チェックボックスのname
 * param formName       フォームのname
 * param nonMsg         チェックボックスが選択されていない場合のメッセージ
 */
function validateCheckBox(checkBoxName, formName, nonMsg) {
  var elementLength = document.forms[formName].elements.length;
  var i, checkFlg;
  checkFlg = 0;
  for (i = 0; i < elementLength; i++) {
    var element;
    element = window.document.forms[formName].elements[i];
    if ((element.type == "checkbox") && (element.name != "")) {
      if (element.name.match(checkBoxName)) {
        if (element.checked) {
          checkFlg++;
        }
      }
    }
  }
  if (checkFlg == 0) {
    alert(nonMsg);
    return false;
  }
  return true;
}

/*
 * チェックボックスのチェックを全て付ける又は外す
 * 
 * param checkBoxName   チェックボックスのname
 * param formName       フォームのname
 */
function checkAll(checkBoxName, formName) {
  var elementLength = document.forms[formName].elements.length;
  var i, checkFlg;
  var checkFlg = true;
  checkFlg = 0;
  for (i = 0; i < elementLength; i++) {
    var element;
    element = window.document.forms[formName].elements[i];
    if ((element.type == "checkbox") && (element.name != "")) {
      if (element.name.match(checkBoxName)) {
        if ((element.checked) && (checkFlg == false)) {
          checkFlg = false;
        }else{
          checkFlg = true;
        }
      }
    }
  }
  for (i = 0; i < elementLength; i++) {
    var element;
    element = window.document.forms[formName].elements[i];
    if ((element.type == "checkbox") && (element.name != "")) {
      if (element.name.match(checkBoxName)) {
        element.checked=checkFlg;
      }
    }
  }
}

/*
 * テキストボックスの入力値をクリアする．
 * 
 * param formName       フォームのname
 */
function clearText(formName) {
  var elementLength = document.forms[formName].elements.length;
  var i;
  for (i = 0; i < elementLength; i++) {
    var element;
    element = window.document.forms[formName].elements[i];
    if (element.type == "text") {
      element.value = "";
    }
  }
  return true;
}

/**
 * Enterキー押下によるサブミット対策
 */
Event.observe(window, 'load', function() {
    Event.observe(document.body, 'keypress', function(evt) {
        var element = Event.element(evt);
        var tagName = element.tagName.toLowerCase();
        var tagType = (element.type == undefined) ? null : element.type.toLowerCase();
                
        if ((('input' == tagName)
            && ((null == tagType)
                || ('text' == tagType)
                || ('radio' == tagType)
                || ('checkbox' == tagType)
                || ('password' == tagType)))
            || ('select' == tagName)) {
            var charCode=(evt.charCode) ? evt.charCode : 
                ((evt.which) ? evt.which : evt.keyCode);
            if ( Number(charCode) == 13 || Number(charCode) == 3) {
                Event.stop(evt);
            }
        }
    });
});

