jQuery(function ($) {

  //ルール定義
  var myrules = {
/*
    'サンプル1': {
      //項目Aが入力されている場合のみ入力必須
      required: {
        depends: function (element) {
          return $('input[name="項目A"]').val() != '';
        }
      }
    },

    'サンプル2': {
      //項目Bのその他がチェックされている場合のみ入力必須
      required: {
        depends: function (element) {
          return $('input[name="項目B[]"]input[value="その他"]').is(':checked');
        }
      }
    },

    //項目C、項目D、項目Fのうちいずれか1つは入力必須
    //要素に同一クラスを付与してグループ化する
    項目C: {
      require_from_group: [1, '.require_from_group_01']
    },
    項目D: {
      require_from_group: [1, '.require_from_group_01']
    },
    項目E: {
      require_from_group: [1, '.require_from_group_01']
    },
*/

//物件情報
    type: {
      required: true
    },
    type_other: {
      //物件種別：その他がチェックされている場合のみ入力必須
      required: {
        depends: function (element) {
          return $('input[name="type"]input[value="その他"]').is(':checked');
        }
      }
    },
    bukken_address: {
      required: true
    },
/*
    menseki_1_tani: {
      //専有面積が入力されている場合のみ選択必須
      required: {
        depends: function (element) {
          return $('input[name="menseki_1"]').val() != '';
        }
      }
    },
    menseki_2_tani: {
      //建物面積が入力されている場合のみ選択必須
      required: {
        depends: function (element) {
          return $('input[name="menseki_2"]').val() != '';
        }
      }
    },
    menseki_3_tani: {
      //土地面積が入力されている場合のみ選択必須
      required: {
        depends: function (element) {
          return $('input[name="menseki_3"]').val() != '';
        }
      }
    },
*/
    jiki: {
      required: true
    },
    kaikae: {
      required: true
    },

//お客様についての情報
    lastname: {
      required: true
    },
    firstname: {
      required: true
    },
    lastname_kana: {
      katakana: true
    },
    firstname_kana: {
      katakana: true
    },
    email: {
      required: true,
      email: true
    },
    tel1: {
      required: true,
      digits: true,
      rangelength: [1, 5]
    },
    tel2: {
      required: true,
      digits: true,
      rangelength: [1, 4]
    },
    tel3: {
      required: true,
      digits: true,
      rangelength: [3, 4]
    },
    zip1: {
      digits: true,
      rangelength: [3, 3]
    },
    zip2: {
      digits: true,
      rangelength: [4, 4]
    },
    'privacy[data][]': {
      required: true
    }
  };

  //エラーメッセージ定義
  var mymessages = {
    /*
    項目C: {
      require_from_group: "項目C、項目D、項目Fのうち2つ以上入力してください"
    },
    項目D: {
      require_from_group: "項目C、項目D、項目Fのうち2つ以上入力してください"
    },
    項目E: {
      require_from_group: "項目C、項目D、項目Fのうち2つ以上入力してください"
    },
    */

//物件情報
    type: {
      required: "物件種別を選択してください"
    },
    type_other: {
      required: "物件種別：その他を入力してください"
    },
    bukken_address: {
      required: "物件所在地を入力してください"
    },
/*
    menseki_1_tani: {
      required: "専有面積の単位を選択してください"
    },
    menseki_2_tani: {
      required: "建物面積の単位を選択してください"
    },
    menseki_3_tani: {
      required: "土地面積の単位を選択してください"
    },
*/
    jiki: {
      required: "売却希望時期を選択してください"
    },
    kaikae: {
      required: "買い替え希望を選択してください"
    },

//お客様についての情報
    lastname: {
      required: "お名前を入力してください"
    },
    firstname: {
      required: "お名前を入力してください"
    },
    lastname_kana: {
      katakana: "フリガナはカタカナで入力してください"
    },
    firstname_kana: {
      katakana: "フリガナはカタカナで入力してください"
    },
    email: {
      required: "メールアドレスを入力してください"
    },
    tel1: {
      required: "電話番号を入力してください"
    },
    tel2: {
      required: "電話番号を入力してください"
    },
    tel3: {
      required: "電話番号を入力してください"
    },
    zip1: {
      rangelength: "3文字で入力してください"
    },
    zip2: {
      rangelength: "4文字で入力してください"
    },
    'privacy[data][]': {
      required: "個人情報の取り扱いに同意が必要です"
    }
  };

  $('#main_content form').validate({
    rules: myrules,
    messages: mymessages,
    errorElement: 'span',
    onfocusout: false,
    groups: {
      /*
      group_require_from_group_01: '項目C 項目D 項目E',
      */
      group_name: 'lastname firstname',
      group_name_kana: 'lastname_kana firstname_kana',
      group_tel: 'tel1 tel2 tel3',
      group_zip: 'zip1 zip2'
    },

    //エラーメッセージ表示位置
    errorPlacement: function (error, element) {
      if (element.is('[name="privacy[data][]"]')) { //プライバシーポリシー（.consentの後ろに表示）
        error.insertAfter(element.parent().parent().parent());
      } else if (element.is(':radio,:checkbox')) { //ラジオボタン（要素の後ろに表示）
        error.insertAfter(element.parent().parent().parent());
      } else if (element.is('[name="email"]')) { //メールアドレス（要素の後ろに表示）
        error.insertAfter(element);
      } else if (element.is('[name="zip1"],[name="zip2"]')) { //郵便番号（要素の後ろに表示）
        error.insertBefore(element.parent().children('.notes'));
      } else if (element.is('[name="lastname"],[name="firstname"],[name="lastname_kana"],[name="firstname_kana"]')) { //名前、ふりがな（親親要素の最後尾に表示）
        error.appendTo(element.parent().parent());
      } else { //親要素の最後尾に表示
        error.appendTo(element.parent());
      }
    }
  });

  $('#phase_link .next').click(function() {
    var position = $('.mw_wp_form').offset().top;
    if ($('#main_content form').valid()) {
      //入力OK
      $('.phase1_con').hide();
      $('.phase2_con,.mailform_privacy,#submit_bt').fadeIn('slow');
      $('#main_content').removeClass('phase1');
      $('#main_content').addClass('phase2');
      $('#customer_info input,#customer_info textarea,.mailform_privacy input').prop('disabled', false);
      $('html,body').animate({
        scrollTop: position
      }, 0,{
        queue: false
      });
    } else {
      //入力エラー
      $('html,body').animate({
        scrollTop: position
      }, {
        queue: false
      });
    }
  });

/*
  //項目C、項目D、項目EのうちいずれかXつは入力必須
  $('.require_from_group_01').change(function () {
    if($('.require_from_group_01:checked').length > 0){
      $('.require_from_group_01_error,#group_require_from_group_01-error').remove();
    } else {
      $('.require_area').append('<span class="require_from_group_01_error error">項目C、項目D、項目Fのうち1つ以上入力してください</span>');
    }
  });
*/

});
