/***** フォーム内容チェックスクリプト **********************************************
                                                 2009/03/29　Rev. 1.0A smallwave.net
利用方法
 (1) <head>部
    <script type="text/javascript" src="./formcheck.js"></script>
 (2) <form>タグで下記の記述で呼び出す。
    <form name="form01" method="post" action="xxxx.php" onSubmit="return check01();">
*/
// 文字定数
number  ='1234567890';
alphabet='abcdefghijklmnopqrstuvwxyz';
ALPHABET='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
// 構成文字チェック関数
function charCheck(str,chars){
  // str    : チェックする文字列
  // chars  : 構成する文字列
  // 戻り値 : true  = 不当な文字列がある
  //          false = 全て指定された文字列で構成されている
  for(var i=0; i<str.length; i++){
    if(chars.indexOf(str.charAt(i))==-1) return true;
  }
  return false;
}
// メールアドレスチェック関数
mailusr   =number+alphabet+ALPHABET+'_-+.';
maildomain=number+alphabet+ALPHABET+'_-+.';
function checkMailAddr(val,force){
  // val    : チェックする文字列
  // force  : 必須項目のとき true
  // 戻り値 : true  = 不当な文字列がある
  //          false = 全て指定された文字列で構成されている
  if(val=='') return force;
  var p;
  if((p=val.indexOf('@'))==-1)     return true;
  var user=val.substring(0,p),domain=val.substring(p+1);
  if(user=='' || domain=='')       return true;
  if(charCheck(user,mailusr))      return true;
  if(charCheck(domain,maildomain)) return true;
  return false;
}
// フォーム記入データのチェックを行う。 GOOD時は true、NG時は false で戻る。
function check01(){
	if (document.form01.name.value == "") {
        alert("お名前を入力下さい。");
        document.form01.name.focus();
        return(false);
    }
	if (document.form01.kana.value == "") {
        alert("ふりがなを入力下さい。");
        document.form01.kana.focus();
        return(false);
    }
    if (document.form01.pcode.value == "") {
        alert("郵便番号を入力下さい。");
        document.form01.pcode.focus();
        return(false);
    }
    if (document.form01.addr.value == "") {
        alert("ご住所を入力下さい。");
        document.form01.addr.focus();
        return(false);
    }
    if (document.form01.phone.value == "") {
        alert("電話番号を入力下さい。");
        document.form01.phone.focus();
        return(false);
    }
    if(checkMailAddr(document.form01.maddr.value,true)){
        alert("連絡先メールアドレスの入力が無いか、または形式が間違っています。");
        document.form01.maddr.focus();
        return(false);
    }
    if ( document.form01.maddr.value != document.form01.maddr02.value ){
        alert("確認用メールアドレスの入力が無いか、連絡先のメールアドレスの入力値が異なります。");
        document.form01.maddr02.focus();
        return(false);
    }
// 送信ボタンの２度押し防止
    for(i=0; i<document.form01.elements.length; i++){
      if(document.form01.elements[i].type == "submit"){
        document.form01.elements[i].disable = true;
      }
    }
    return(true);
}

