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

function nullCheck(){
  var myForm = document.input_form;
  if( radioCheck(myForm.gen) == false ){
    alert("「お問い合わせ種類」をご選択下さい。");
    return false;
  }
  if(myForm.Postal_Name.value.match(/^\s*$/)){
    alertAndFocus("「お名前」をご記入下さい。", myForm.Postal_Name);
    return false;
  }
  if(myForm.Postal_Name_Kana.value.match(/^\s*$/)){
    alertAndFocus("「フリガナ」をご記入下さい。", myForm.Postal_Name_Kana);
    return false;
  }
  if(myForm.Ecom_ShipTo_Postal_PostalCode1.value.match(/^\s*$/)){
    alertAndFocus("「郵便番号」をご記入下さい。", myForm.Ecom_ShipTo_Postal_PostalCode1);
    return false;
  }
  if(myForm.Ecom_ShipTo_Postal_PostalCode2.value.match(/^\s*$/)){
    alertAndFocus("「郵便番号」をご記入下さい。", myForm.Ecom_ShipTo_Postal_PostalCode2);
    return false;
  }
  if(myForm.Plef.value.match(/^\s*$/)){
    alertAndFocus("「ご住所（都道府県）」をご選択下さい。", myForm.Plef);
    return false;
  }
  if(myForm.Custom_Address1.value.match(/^\s*$/)){
    alertAndFocus("「ご住所（市区町村）」をご記入下さい。", myForm.Custom_Address1);
    return false;
  }
  if(myForm.Custom_Address2.value.match(/^\s*$/)){
    alertAndFocus("「ご住所（番地、建物名）」をご記入下さい。", myForm.Custom_Address2);
    return false;
  }
  if( radioCheck(myForm.Phone_Number_Variety) == false ){
    alert("「お電話番号」の種類をご選択下さい。");
    return false;
  }
  if(myForm.Ecom_ShipTo_Telecom_Phone_Number.value.match(/^\s*$/)){
    alertAndFocus("「お電話番号」をご記入下さい。", myForm.Ecom_ShipTo_Telecom_Phone_Number);
    return false;
  }
  if(myForm.Ecom_ShipTo_Online_Email.value.match(/^\s*$/)){
    alertAndFocus("「メールアドレス」をご記入下さい。", myForm.Ecom_ShipTo_Online_Email);
    return false;
  }
  if( ! myForm.Ecom_ShipTo_Online_Email.value.match(/^[^@]+@[^@]+(\.[^@]+)+$/) ){
    alertAndFocus("「メールアドレス」を正しくご記入下さい。", myForm.Ecom_ShipTo_Online_Email);
    return false;
  }
  
  if(myForm.contact_message.value.match(/^\s*$/)){
    alertAndFocus("「お問い合わせ内容」をご記入下さい。", myForm.contact_message);
    return false;
  }
}

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

  if(! isLegalChar(myForm.Ecom_ShipTo_Online_Email.value, "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~")){
    alertAndFocus("「メール」に使用できない文字が記入されています。", myForm.Ecom_ShipTo_Online_Email);
    return false;
  }
  if(myForm.Ecom_ShipTo_Online_Email.value.indexOf("@") == -1){
    alertAndFocus("「メール」のフォーマットが間違っています。", myForm.Ecom_ShipTo_Online_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;
}

