﻿function formCheck(){
  if(nullCheck() == false){ return false; }
  if(formatCheck() == false){ return false; }
  document.form1.submit();
}

function nullCheck(){
  var myForm = document.form1;

  if(myForm.name.value.match(/^\s*$/)){
    alertAndFocus("お名前（漢字）をご記入下さい。", myForm.name);
    return false;
  }
  if(myForm.kana.value.match(/^\s*$/)){
    alertAndFocus("フリガナをご記入下さい。", myForm.kana);
    return false;
  }
  if(myForm.post.value.match(/^\s*$/)){
    alertAndFocus("郵便番号をご記入下さい。", myForm.post);
    return false;
  }
  if(myForm.prefecture.value.match(/^\s*$/)){
    alertAndFocus("都道府県をご選択下さい。", myForm.prefecture);
    return false;
  }
  if(myForm.address1.value.match(/^\s*$/)){
    alertAndFocus("その他住所をご記入下さい。", myForm.address1);
    return false;
  }
  if(myForm.tel.value.match(/^\s*$/)){
    alertAndFocus("電話番号をご記入下さい。", myForm.tel);
    return false;
  }
  if(myForm.email.value.match(/^\s*$/)){
    alertAndFocus("Eメールアドレスをご記入下さい。", myForm.email);
    return false;
  }
  if(myForm.car_year.value.match(/^\s*$/)){
    alertAndFocus("年式をご選択下さい。", myForm.car_year);
    return false;
  }
  if(myForm.touroku1.value.match(/^\s*$/)){
    alertAndFocus("初年度登録（年）をご記入下さい。", myForm.touroku1);
    return false;
  }
  if(myForm.touroku2.value.match(/^\s*$/)){
    alertAndFocus("初年度登録（月）をご記入下さい。", myForm.touroku2);
    return false;
  }
  if(myForm.car_name.value.match(/^\s*$/)){
    alertAndFocus("車名をご記入下さい。", myForm.car_name);
    return false;
  }
  if(myForm.gread.value.match(/^\s*$/)){
    alertAndFocus("グレードをご記入下さい。", myForm.gread);
    return false;
  }
  if(myForm.haiki.value.match(/^\s*$/)){
    alertAndFocus("排気量をご記入下さい。", myForm.haiki);
    return false;
  }
  if(myForm.color1.value == 0){
    alertAndFocus("色（外装色）をご選択下さい。", myForm.color1);
    return false;
  }
  if(myForm.color2.value == 0){
    alertAndFocus("色（内装色）をご選択下さい。", myForm.color2);
    return false;
  }
  if(myForm.kyori.value.match(/^\s*$/)){
    alertAndFocus("走行距離をご記入下さい。", myForm.kyori);
    return false;
  }
  if(myForm.syaken1.value.match(/^\s*$/)){
    alertAndFocus("車検（年）をご記入下さい。", myForm.syaken1);
    return false;
  }
  if(myForm.syaken2.value.match(/^\s*$/)){
    alertAndFocus("車検（月）をご記入下さい。", myForm.syaken2);
    return false;
  }
  if( radioCheck(myForm.shift) == false ){
    alertAndJump("シフトをご選択下さい。", "anchor_shift");
    return false;
  }
  if( radioCheck(myForm.door) == false ){
    alertAndJump("ドア数をご選択下さい。", "anchor_door");
    return false;
  }
  if( radioCheck(myForm.kudou) == false ){
    alertAndJump("駆動をご選択下さい。", "anchor_kudou");
    return false;
  }
  if( radioCheck(myForm.fuel) == false ){
    alertAndJump("燃料をご選択下さい。", "anchor_fuel");
    return false;
  }
  if( radioCheck(myForm.touroku) == false ){
    alertAndJump("登録をご選択下さい。", "anchor_touroku");
    return false;
  }
  if( radioCheck(myForm.loan1) == false ){
    alertAndJump("ローン購入の残金をご選択下さい。", "anchor_loan1");
    return false;
  }

}

function formatCheck(){
  var myForm = document.form1;

  if(! isLegalChar(myForm.post.value, "0123456789-")){
    alertAndFocus("郵便番号に使用できる文字は半角数値またはハイフン（-）です。", myForm.post);
    return false;
  }
  if(! isLegalChar(myForm.tel.value, "0123456789-")){
    alertAndFocus("電話番号に使用できる文字は半角数値またはハイフン（-）です。", myForm.tel);
    return false;
  }
  if(! isLegalChar(myForm.keitai.value, "0123456789-")){
    alertAndFocus("携帯番号に使用できる文字は半角数値またはハイフン（-）です。", myForm.keitai);
    return false;
  }
  if(! isLegalChar(myForm.fax.value, "0123456789-")){
    alertAndFocus("FAX番号に使用できる文字は半角数値またはハイフン（-）です。", myForm.fax);
    return false;
  }
  if(! isLegalChar(myForm.email.value, "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~")){
    alertAndFocus("メールアドレスに使用できない文字が記入されています。", myForm.email);
    return false;
  }
  if(myForm.email.value.indexOf("@") == -1){
    alertAndFocus("メールアドレスのフォーマットが間違っています。", myForm.email);
    return false;
  }

}

function alertAndFocus(alrtMsg, obj){
  alert(alrtMsg);
  obj.focus();
}

function alertAndJump(alrtMsg, dst){
  alert(alrtMsg);
  location.hash = dst;
}

function radioCheck(radioObj){
  var isChecked = 0;
  var index = 0;
  var i;
  for(i = 0; i < radioObj.length; i++){
    if(radioObj[i].checked){
      isChecked++;
      index = i;
      break;
    }
  }
  if(i == radioObj.length){
    return false;
  }
  else{
    return radioObj[index];
  }
}

function isLegalChar(target, canUse){
  for(i = 0; i < target.length; i++){
    if(canUse.indexOf(target.charAt(i)) == -1){
      return false;
    }
  }
  return true;
}
