function validateAll()
{
	var result = {};

	// return true;	//デバッグ用　javascriptのバリデーションを無効に
	
	//バリデーション対象のフォームを列挙した配列
	var inputFormList = [
	  'childname',
	  'childkana',
	  'day',
	  'month',
	  'year',
	  'sex',
	  'name',
	  'kana',
	  'zip',
	  'addr',
	  'addr2',
	  'tel',
	  'mail'
	  ];
	
	//各要素にバリデーションを適用
	for (var x in inputFormList)
		result[inputFormList[x]] = validateForm(inputFormList[x]);

  //バリデーションの結果処理
	flag = true;
	for (var x in result)
	{
		document.all('errmsg_' + x).innerText = '';
		document.all('errmsg_' + x).style.display = "none";
		if (!result[x].value)
		{
			flag = false;
			document.all('errmsg_' + x).innerText = result[x].errmsg;
			document.all('errmsg_' + x).style.display = "inline";
		}
	}

	
	if (flag == false) {
		alert("入力された値にエラーがあります。");
	}
	
	return flag;
}

//----------------------------------------------------------------//

function validateForm(formName)
{
	var result = {};
	var formObj = document.all(formName);
  var value = _$F(formName);

	//必須項目の場合、ヌルチェック
	if (!value && formObj.className == 'mandatory')	
	{
		result.formname = formName;
		result.errmsg = '入力必須項目です。';
		result.value = false;
		return result;
	}

  if (formObj.tagName == 'textarea' || formObj.type == 'text')
  {
   	formObj.value = value.toNormal(); //フォーム内容を正規化
   	value = value.toNormal();
  }

	var functionName = 'validate_' + formName; //バリデーション関数名

  if (typeof(window[functionName]) == "undefined")    //バリデーション関数が未定義の場合
	{	
		result.value = true;	//バリデーション成功として返す
		return result;
	}

  if (value == null)
    value = '';
	executeString = functionName+ '("' + value + '")';
	result = eval(executeString);
	result.formname = formName;
	
	return result;
}

//----------------------------------------------------------------//

// バリデーション・性別

function validate_sex(str)
{
  var result = {};

  if (!str)
  {
    result.errmsg = '性別は必須選択です。';
    result.value = false;
    return result;
  }
  
  result.value = true;
  return result;
}
//----------------------------------------------------------------//

// バリデーション・フリガナ

function validate_childkana(str)
{
	return validate_kana(str);
}

function validate_kana(str)
{
  var result = {};

  result.value = true;
	if (str.match(/[^あ-んア-ン　 ]/))
  {
    result.errmsg = '「カナ」で入力してください。';
    result.value = false;
  }
  return result;
}

//----------------------------------------------------------------//

function validate_month(str)
{
  var result = {};

  if (!str)
  {
    result.errmsg = '月が選択されていません。';
    result.value = false;
    return result;
  }
  result.value = true;
  return result;
}

//----------------------------------------------------------------//

function validate_day(str)
{
  var result = {};

  result.value = true;
  if (!str)
  {
    result.errmsg = '日付が選択されていません。';
    result.value = false;
  }
  return result;
}

//----------------------------------------------------------------//

function validate_mail(str)
{
	var result = {};
	
	result.value = true;

	if (!str.match(/\w+([-+.]\w)*@\w+([-.]\w+)*.\w+([-.]\w+)*/))
	{
		result.errmsg = 'メールアドレスが不正です。';
		result.value = false;
	}
	return result;
}

//----------------------------------------------------------------//

function validate_zip(str)
{
	var result = {};

	result.value = true;	
	
	if (!str.match(/^[0-9]{3}[-]?[0-9]{4}$/))
	{
		result.errmsg = '郵便番号が不正です。';
		result.value = false;
	}
	return result;
}

//----------------------------------------------------------------//

//電話番号のフォーマットチェック

function validate_tel(str)
{
	var result = {};
	
	result.value = true;	

	if (!str.match(/^[0-9]{2,5}[-]?[0-9]{1,4}[-]?[0-9]{4}$/))
	{
		result.errmsg = '電話番号が不正です。ハイフンと数字で入力してください。';
		result.value = false;
		result.value = true;
	}
	
	return result;
}

//----------------------------------------------------------------//

//フォームの値を簡単に取得する。prototype.jsのマネ。

function _$F(formName)
{
  var formObj = document.getElementById(formName);

  if (window[formName])
  {
    return null;
  }

  //type = radio　
  
  if (formObj.type == "radio")
  {
    var radioGroup = document.all(formObj.name);

    for (var i = 0; i < radioGroup.length; i++)
    {
      if (radioGroup[i].checked == true)
      {
        return radioGroup[i].value;
      }
    }

    return null;
  }

  return formObj.value;

}
