
var error_flg=0;
jQuery(function () {
  jQuery('input[required],select[required],textarea[required]').blur(required_func);

  jQuery('textarea[required=comment]').keyup(countup_func);

  jQuery('#contact_form_submit').click(function () {
    error_flg=0;
    jQuery('input[required],select[required],textarea[required]').each(required_func);

    // 日付チェック
    date_check();

    // エラーが在るときは画面TOPへ戻して処理を終了
    if (error_flg) {
      location.href="#";
      return false;
    }
    jQuery('#contact_form').submit();
    return false;
  });

  // insert defult value
  jQuery('input[alt]').each(function () {
    var $$ = jQuery(this);
    if ( $$.val() == '' ) $$.val($$.attr('alt'));
  });

  // blank at focus
  jQuery('input[alt]').focus(function () {
    var $$ = jQuery(this);
    if ( $$.val() == $$.attr('alt') ) {
      $$.val('');
    }
  });

});


// -----------------------------------
// 日付チェック関数
// -----------------------------------
var date_check = function() {

  // エラーリセット
  remove_notice('m_hi');
  remove_notice('m_out_hi');

  // today
  var today = new Date();
  var todayms = today.getTime(); //ミリ秒単位に変換
  
  var arrMonthTxt = { "Jan": 1, "Feb" : 2, "Mar" : 3, "Apr" : 4, "May" : 5, "Jun": 6, "Jul" : 7, "Aug" : 8, "Sep" : 9, "Oct" : 10, "Nov" : 11, "Dec" : 12 }

  // check_in
  var m_nen = $('#In_Year').val();
  var m_tuki = arrMonthTxt[$('#In_Month').val()];
  var m_hi = $('#In_Day').val();
  
  var m_date = new Date(m_nen, m_tuki, m_hi);
  var m_datems = m_date.getMilliseconds(); //ミリ秒単位に変換
  
    /// check_in
  var m_nen = $('#In_Year').val();
  var m_tuki = $('#In_Month').val();
  var m_hi = $('#In_Day').val();
  var m_date = new Date(m_nen, m_tuki, m_hi);
  var m_datems = m_date.getMilliseconds(); //ミリ秒単位に変換

  // check_out
  var m_out_nen = $('#Out_Year').val();
  var m_out_tuki = $('#Out_Month').val();
  var m_out_hi = $('#Out_Day').val();
  var m_out_date = new Date(m_out_nen, m_out_tuki, m_out_hi);
  var m_out_datems = m_out_date.getMilliseconds(); //ミリ秒単位に変換

  // チェックインが今日より過去ならエラー
  if (todayms > m_datems) {
    var msg = 'Please reconfirm check in and check out dates.';
    $('#m_hi').after('<p></p>').next().hide().html(msg).addClass('error').attr('myid',$('#m_hi').attr('name')).fadeIn();
    $('#m_hi').removeClass('blue-line').addClass('error');
    error_flg++;
  }

  // チェックアウトの方が過去ならエラー
  if (m_datems > m_out_datems) {
    var msg = 'Please reconfirm check in and check out dates.';
    $('#m_out_hi').after('<p></p>').next().hide().html(msg).addClass('error').attr('myid',$('#m_out_hi').attr('name')).fadeIn();
    $('#m_out_hi').removeClass('blue-line').addClass('error');
    error_flg++;
  }


  // チェックアウトの方が過去ならエラー
  if (m_datems > m_out_datems) {
    var msg = 'Please reconfirm check in and check out dates.';
    $('#m_out_hi').after('<p></p>').next().hide().html(msg).addClass('error').fadeIn();
    $('#m_out_hi').removeClass('blue-line').addClass('error');
    error_flg++;
  }
  
  // 30日
  /*
  var m_out_dete_deff = new Date(m_nen, m_tuki, m_hi);
  var m_out_date_deffms = m_out_dete_deff.getTime();
  if (m_out_date_deffms > m_out_datems) {
    var msg = '30 Day Minimum Stay Required.';
    $('#m_out_hi').after('<p></p>').next().hide().html(msg).addClass('error').fadeIn();
    $('#m_out_hi').removeClass('blue-line').addClass('error');
    error_flg++;
  }
  */
  var diffDays = (m_out_datems - m_datems)/86400000;
  if (diffDays < 30) {
	var msg = '30 Day Minimum Stay Required.';
    $('#m_out_hi').after('<p></p>').next().hide().html(msg).addClass('error').fadeIn();
    $('#m_out_hi').removeClass('blue-line').addClass('error');
    error_flg++;
  }

}

var required_func = function () {
  var $$ = jQuery(this);
  remove_notice($$.attr('name'));

  var msg = '';
  $$.removeClass('error');

  var obj = $$.attr('required');

if (obj == 'tel' || obj == 'fax' ) {

  // telとfax ---------------------
  if ($$.val() != ''){
    if(new String( $$.val() ).match(/[\D]/g)) {
      msg='Please Only Number.';
    }
  }

} else {
  // それ以外 ---------------------

  $$.addClass('blue-line');

  // 文字数取得
  var n = $$.attr('value').length;  

  if ( $$.attr('value') == '' ) { msg='This is a required field.';}
  else if ( $$.attr('name') == 'c10-Email' && !new String( $$.val() ).match(/^[a-zA-Z0-9_\/\-.\+\?\[\]]+\@[a-zA-Z0-9_\.\-]+\.\w+$/ )) { msg='Enter your email address.';}
  else if ( $$.attr('name') == 'c10-reEmail' && jQuery('input[required="email"]').val() != $$.val() ) { msg='Please input a correct Email address.';}
  else if ( obj == 'cal' && $$.val() == 'dd/mm/yyyy' ) { msg='Enter your date.';}

  // 文字数チェック
//  else if ( obj == 'comment' && n > 500 ) { msg='Please 500 characters limit.';}
  else if ( $$.attr('name') == 'c09-Comments' && n > 500 ) { msg='Please 500 characters limit.';}  
  // タグ入力チェック
  else {
    if ( new String( $$.val() ).match(/<\/?[a-zA-Z]+?>/) ) {
      msg='Please No Tag.';
    }
  }

}


  if ( msg ) {
    $$.after('<p></p>').next().hide().html(msg).addClass('error').attr('myid',$$.attr('name')).fadeIn();
    $$.removeClass('blue-line').addClass('error');

    error_flg++;
  }
}

// ------------------------------------------------------------

var remove_notice = function (name) {
  jQuery('p[myid='+name+']').remove();
}

// ------------------------------------------------------------

var countup_func = function () {
  var counter = jQuery('textarea[required=comment]').val().length;
  jQuery('#counter').html(counter);
}












