PageSourceSearch

https://member.bookwalker.in.th/javascripts/entry_disp.js?version=2.187.0

js bookwalker.in.th collected 2026-10-01 23:44:17 UTC 6,628 bytes, 205 lines download raw bytes

1$(function () {
2  'use strict';
3
4  var
5    CLS_ON = 'on',
6    isSP = navigator.userAgent.match(/(iPhone|iPad|iPod|Android)/i),
7    $body = $('body'),
8    $main = $body.find('.l-main'),
9    $msg_attention = $main.find('.fn-msg-attention'),
10    //$outsideLogin = $('#outsideLogin'),
11    $newEntry = $('#newEntry'),
12    $newEntryForm = $('#newEntryForm'),
13    ERROR = '?err',
14    LOGIN = '?login';
15
16  // コンテンツ表示 ※イベント発火の制御のみ
17  // 表示非表示はスタイル(CSS)側でCSSクラス「on」の付加で制御
18  var
19    $showhide = $main.find('.fn-showHide'),
20    $trg_show = $showhide.find('.fn-showHide-trg-show');
21
22  // 新規登録 ボタン
23  $trg_show.on('click', function (e) {
24    e.preventDefault();
25    setNewEntry();
26  });
27
28  // 新規登録 ボタン 押下時にコンテンツを表示します。
29  var setNewEntry = function(){
30    $showhide.addClass(CLS_ON);
31    $newEntry.remove();
32  }
33
34  // 表示出し分け
35  var setPage = function () {
36    var
37      param = location.search,
38      BLANK = '',
39      errorVal = '入力内容をもう一度ご確認ください。',
40      msgError;
41
42      var setErrorMsg = function(){
43        msgError = '<div class="c-messageContainer on">'+ errorVal +'</div>';
44      }
45
46    if (param.includes(ERROR)) {
47      // エラー 登録
48      setErrorMsg();
49      $main.prepend(msgError);
50      setNewEntry();
51      $msg_attention.addClass(CLS_ON);
52    }
53    if (param.includes(LOGIN)) {
54      // ログイン画面からの遷移
55      setNewEntry();
56    }
57  }();
58
59  $("#confirm").click(function() {
60      var mailAddressArea = $("#mailAddress");
61      if (mailAddressArea.val() && mailAddressArea.val().match(/[A-Z]+/)) {
62          var message = 'メールアドレスに大文字と小文字が混在しています。\r\nこのまま確認画面に進んでよろしいですか?';
63          if (platformMode != null) {
64                  message = getLangMessage({ja: message,
65                  en: 'Both capital and small letters included in the email address.\r\nWould you like to proceed to the confirmation screen as it is?',
66                  ch: '提醒您,您輸入的 Email 同時包含大寫與小寫字母。\r\n請問要以此 Email 繼續嗎?'},
67                  platformMode);
68          }
69          if (confirm(message)) {
70              $("#entryForm").submit();
71          } else {
72              mailAddressArea.focus();
73          }
74      } else {
75          $("#entryForm").submit();
76      }
77  });
78});
79
80/**
81 * 生年月を共有します。
82 */
83function shareBirthYearMonth() {
84  var year  = $('#birthYear').val();
85  var month = $('#birthMonth').val();
86
87  $('#birthYearJa').val(year);
88  $('#birthMonthJa').val(month);
89  $('#birthYearEn').val(year);
90  $('#birthMonthEn').val(month);
91  $('#birthYearTh').val(year);
92  $('#birthMonthTh').val(month);
93  $('#birthYearCh').val(year);
94  $('#birthMonthCh').val(month);
95}
96
97/**
98 * 生年月の年を共有します。
99 *
100 * タイの場合は同意チェックボックスと18歳未満の判定も行います。
101 */
102function shareBirthYear(langMode) {
103  var year;
104  if (langMode == 'ja') {
105    $('#birthYearEn').val($('#birthYearJa').val());
106    $('#birthYearTh').val($('#birthYearJa').val());
107    $('#birthYearCh').val($('#birthYearJa').val());
108    year = $('#birthYearJa').val();
109  } else if (langMode == 'th') {
110    $('#birthYearJa').val($('#birthYearTh').val());
111    $('#birthYearEn').val($('#birthYearTh').val());
112    $('#birthYearCh').val($('#birthYearTh').val());
113    year = $('#birthYearTh').val();
114  } else if (langMode == 'ch') {
115    $('#birthYearJa').val($('#birthYearCh').val());
116    $('#birthYearEn').val($('#birthYearCh').val());
117    $('#birthYearTh').val($('#birthYearCh').val());
118    year = $('#birthYearCh').val();
119  } else {
120    $('#birthYearJa').val($('#birthYearEn').val());
121    $('#birthYearTh').val($('#birthYearEn').val());
122    $('#birthYearCh').val($('#birthYearEn').val());
123    year = $('#birthYearEn').val();
124  }
125
126  $('#birthYear').val(year);
127
128  if (langMode == 'th') {
129    checkConsent();
130  }
131}
132
133/**
134 * 生年月の月を共有します。
135 *
136 * タイの場合は同意チェックボックスと18歳未満の判定も行います。
137 */
138function shareBirthMonth(langMode) {
139  var month;
140  if (langMode == 'ja') {
141    $('#birthMonthEn').val($('#birthMonthJa').val());
142    $('#birthMonthTh').val($('#birthMonthJa').val());
143    $('#birthMonthCh').val($('#birthMonthJa').val());
144    month = $('#birthMonthJa').val();
145  } else if (langMode == 'th') {
146    $('#birthMonthJa').val($('#birthMonthTh').val());
147    $('#birthMonthEn').val($('#birthMonthTh').val());
148    $('#birthMonthCh').val($('#birthMonthTh').val());
149    month = $('#birthMonthTh').val();
150  } else if (langMode == 'ch') {
151    $('#birthMonthJa').val($('#birthMonthCh').val());
152    $('#birthMonthEn').val($('#birthMonthCh').val());
153    $('#birthMonthTh').val($('#birthMonthCh').val());
154    month = $('#birthMonthCh').val();
155  } else {
156    $('#birthMonthJa').val($('#birthMonthEn').val());
157    $('#birthMonthTh').val($('#birthMonthEn').val());
158    $('#birthMonthCh').val($('#birthMonthEn').val());
159    month = $('#birthMonthEn').val();
160  }
161
162  $('#birthMonth').val(month);
163
164  if (langMode == 'th') {
165    checkConsent();
166  }
167}
168
169/**
170 * 同意チェックボックスと18歳未満の判定を行います。(タイ対応のみ)
171 *
172 * 年齢は生年月で計算します。
173 * 18歳未満かつ同意チェックボックスがfalseの場合は「確認画面に進む」ボタンが非活性になります。
174 */
175function checkConsent() {
176  var birthYear = $('#birthYearTh').val();
177  var birthMonth = $('#birthMonthTh').val();
178
179  if (isNaN(birthYear) || isNaN(birthMonth)) {
180    // 年月に値が無い場合はボタン非活性にする
181    $('#confirm').addClass('c-btn--disable on');
182    return;
183  }
184
185  var currentDate = new Date();
186
187  //誕生年と今年の差を計算
188  var age = currentDate.getFullYear() - birthYear;
189
190  var currentMonth = ('0' + (currentDate.getMonth() + 1)).slice(-2);
191  if (currentMonth < birthMonth) {
192    // 誕生月を迎えていない場合、1を引く
193    age = age - 1;
194  }
195
196  if (age < 18) {
197    if ($('#consent-check').prop('checked') == false ) {
198      $('#confirm').addClass('c-btn--disable on');
199    } else {
200      $('#confirm').removeClass('c-btn--disable on');
201    }
202  } else {
203    $('#confirm').removeClass('c-btn--disable on');
204  }
205}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.