// 空白チェック
function checkNull(obj,msg){
  if(obj.value==''){
    alert(msg+'の入力は必須です');
    obj.focus();
    return false;
  }
  return true;
}

//カテゴリのチェック
function checkCategory(obj1,obj2,obj3){
  if(obj1.checked || obj2.checked || obj3.checked){
    return true;  
  }else{
    alert('お問合わせ項目のチェックは必須です');
    obj1.focus();
    return false;
  }
}

// 数字列のチェック
function checkNumber(num){
  for(var i=0;i<num.length;i++){
    if(isNaN(parseInt(num.charAt(i),10))) return 0;
  }
  if(parseInt(num,10)<=0) return 0;
  return num.length;
}

//数字チェック
function checkNumeric(num,msg){ 
  var val = num.value;
    if(isNaN(val)){
      alert(msg+'は数字で入力してください');
      num.focus();
      return false; 
    }
	return true;
}

// 桁数のチェック
function checkNumberLen(num,len,msg){
  var val = num.value;
  if(val.length != len){
    alert(msg+'は'+len+'桁で入力してください');
    num.focus();
    return false;
  }
  return true;
}

//確認用メールアドレスのチェック
function checkEMailKakunin(obj1,obj2){
  if(obj1.value != obj2.value){
    alert('確認用のメールアドレスと一致しません');
    obj2.focus();
    return false;
  }
  return true;
}

// フォーマットエラーメッセージ
function alertMsg(msg,obj){
    alert(msg+'の形式が間違っています');
    obj.focus();
}
// 郵便番号チェック
function checkZipCode(obj,retnull){
  var retval=true;
  var value=obj.value;
  if (value=='') retval=retnull; // 無入力時
  else {
    var del=value.indexOf('-');
    if (del==-1)
      retval=(value.length==3?(checkNumber(value)>0):false);
    else if (del!=3 || (value.length-del)!=5)
      retval=false;
    else if (checkNumber(value.substring(0,del))==0 ||
             checkNumber(value.substring(del+1,value.length))==0){
      retval=false;
    }
  }
  if(retval==false) alertMsg('郵便番号',obj);
  return retval;
}

// メールアドレスチェック
function checkEMail(obj,retnull){
  var retval=true;
  var value =obj.value;
  if (value=='') retval=retnull;
  else {
    var del=value.indexOf('@');
    retval = (del>0 && (value.length-del)>1
           && value.substring(del+1).indexOf('@')==-1);
  }
  if(retval==false)
    alertMsg('E-Mailアドレス',obj);
  return retval;
}

// 住所プルダウンチェック
function checkJyusyo(obj){
  var val = obj.value.substr(0,1);
  if( val =='-' ||  val =='▼'){
    alert('都道府県を選択してください');
    obj.focus();
    return false;
  }
  return true;
}

// 電話番号チェック
function checkTel(obj,retnull){
  var retval=true;
  var value =obj.value;
  if (value=='') retval=retnull;
  else {
    var st=0,del=value.indexOf('-'),s1=0,s2=0,s3=0;
    if(del<=st) retval=false;
    else if ((s1=checkNumber(value.substring(st,del)))==0)
      retval=false;
    else {
      st=del+1; del=value.indexOf('-',st);
      if(del<=st || del==(value.length-1)) retval=false;
      else if ((s2=checkNumber(value.substring(st,del)))==0 ||
               (s3=checkNumber(value.substring(del+1,value.length)))==0)
        retval=false;
    }
  }
  if (retval==false)
    alertMsg('電話番号',obj);
  return retval;
}


function checkDummy(obj){
  var txt = obj.value;
  if(txt!='') obj.value+=' = '+escape(txt);
}


function totalCheck(card){
	//必須
  if(!checkCategory(card.ck_01,card.ck_02,card.ck_03))   return false;
  if(!checkNull(card.rname,    'お名前'))   return false;
  if(!checkNull(card.kubun,     'お客様区分'))   return false;

  if(!checkNull(card.mail,     'メールアドレス'))   return false;
  if(!checkEMail(card.mail,     false ))   return false; //形式チェック
  if(!checkNull(card.mail2,     'メールアドレス（確認）'))   return false;
  if(!checkEMailKakunin(card.mail,card.mail2)) return false;  //確認用メールアドレスと一致するか

  if(!checkNull(card.yubin,     '郵便番号'))   return false;
  if(!checkNumeric(card.yubin,'郵便番号'))   return false;
  if(!checkNumberLen(card.yubin,3,'郵便番号（前半）'))   return false;  //桁数チェック

  if(!checkNull(card.yubin2,     '郵便番号'))   return false;
  if(!checkNumeric(card.yubin2,'郵便番号'))   return false;
  if(!checkNumberLen(card.yubin2,4,'郵便番号（後半）'))   return false;  //桁数チェック

  if(!checkJyusyo(card.jyusyo))   return false;
  if(!checkNull(card.jyusyo2,     '住所'))   return false;
  if(!checkNull(card.tel,     '電話番号'))   return false;
  if(!checkTel(card.tel,     false))   return false;
  if(!checkNull(card.mess,   'お問合わせ内容'))   return false;

  return true;
}


