PageSourceSearch

https://www.starflyer.jp/resource/js/_shared/js/module_2nd/domtour2nd_module_hotel.js

js starflyer.jp collected 2026-10-02 05:46:49 UTC 20,081 bytes, 444 lines download raw bytes

1/*=====================================================
2* Script Name: domtour2nd_module_hotel.js
3* Description: 空席照会モジュール 国内ツアー2nd ホテル
4* Version: 1.00
5* Last Up Date: 2017/10/11
6=====================================================*/
7
8var m_domtour2ndModuleHotel_siteType = { site : 'domtour2nd', module : 'hotel' };
9
10var m_domtour2ndModuleHotel_usePartsCount_AdultPulldown = 1;			//大人、配置数カウンタ
11var m_domtour2ndModuleHotel_usePartsCount_AddConditionCheckBox = 1;		//こだわり条件部品、配置数カウンタ
12
13//初期値設定
14var m_domtour2ndModuleHotel_defaults = {
15	m_defCheckin:'',					//チェックイン用
16	m_defCheckout:'',					//チェックアウト用
17	m_defPlaceOfStayDistrict:'',		//宿泊地用(方面)
18	m_defPlaceOfStayRegion:'',			//宿泊地用(地区)
19	m_defPlaceOfStayArea:'',			//宿泊地用(地域)
20	m_defNumberOfAdult:'',				//大人用
21	m_defNumberOfChild:m_domtourModuleNumberOfPeopleHotel_optionParams.initNum,   //参加人数(子供幼児)用
22	m_defAddConditionChecked:[''],		//こだわり条件用
23	m_defTabNoDispCls:''				//遷移先表示状態パラメータ
24};
25
26// defaults値保持のため、shallow copy
27var m_domtour2ndModuleHotel_optionParam = $tour_module_jq.extend(m_domtour2ndModuleHotel_optionParam, m_domtour2ndModuleHotel_defaults);
28
29/**
30 * 国内ツアーホテル2ndモジュールパラメータ設定処理
31 */
32function m_domtour2ndModuleHotel_setParams(options){
33	m_domtour2ndModuleHotel_optionParam = $tour_module_jq.extend(m_domtour2ndModuleHotel_optionParam, options);
34};
35
36/**
37 * 国内ツアーホテル2ndモジュールHTML埋め込み処理
38 */
39function m_domtour2ndModuleHotel_secondModuleDisplay(options) {
40	////////////////
41	// 初期化設定
42	////////////////
43
44	// 国内ツアーホテルの各項目不正値チェック処理
45	options = $tour_module_jq.extend(true, options, m_domtourModuleHotel_incorrectValue(options, m_domtour2ndModuleHotel_siteType, m_domtour2ndModuleHotel_defaults));
46	
47	// モジュール設置位置による噴出し表示位置設定
48	var dataControlPointValue = m_tourModuleCommon_getParam(m_domtour2ndModuleHotel_siteType, options, 'm_defModulePosition');
49	
50	//各項目設定値
51	
52	//チェックイン・チェックアウト
53	var checkText = m_tourModuleCommon_getListValue(m_domtourModuleHotel_check, 'Text1');
54	var checkinText = m_tourModuleCommon_getListValue(m_domtourModuleHotel_check, 'Text2');
55	var checkoutText = m_tourModuleCommon_getListValue(m_domtourModuleHotel_check, 'Text3');
56	//宿泊地
57	var placeOfStaText = m_tourModuleCommon_getListValue(m_domtourModuleHotel_placeOfStay, 'Text');
58	//1部屋あたりの利用人数
59	var roomOfPeopleLabelText = m_tourModuleCommon_getListValue(m_domtourModuleHotel_roomOfPeopleLabel, 'Text');
60	//大人
61	var adultText = m_tourModuleCommon_getListValue(m_domtourModuleHotel_adult, 'Text');
62	//子供・幼児
63	var childText = m_tourModuleCommon_getListValue(m_domtourModuleHotel_child, 'Text');
64	var childTextCaution = m_tourModuleCommon_getListValue(m_domtourModuleHotel_child, 'Caution');
65	var numberOfPeoplePartsId1 = m_tourModuleNumberOfPeople_FixedParams.domtour.sec.id.hotel;
66	var numberOfPeopleCount1 = m_tourModuleCommon_zeroPadding(m_tourModuleNumberOfPeople_usePartsCount); // 参加人数ID番号設定
67	var numberOfPeopleTextId1 = m_tourModuleNumberOfPeople_defaultParams.textId;
68	//こだわり条件
69	var addConditionText1 = m_tourModuleCommon_getListValue(m_domtourModuleHotel_addCondition, 'Text1');
70	var addConditionText2 = m_tourModuleCommon_getListValue(m_domtourModuleHotel_addCondition, 'Text2');
71	//検索ホタン
72	var actionURL = m_tourModuleCommon_ASW_DOMAIN + m_tourModuleCommon_getListValue(m_domtourModuleHotel_fromAction, 'URL');
73	var searchButtonText = m_tourModuleCommon_getListValue(m_domtourModuleCommon_searchButton, 'Text');
74	
75	// formMethod設定
76	var formMethod = m_tourModuleCommon_getParam(m_domtour2ndModuleHotel_siteType, options, 'm_defFormMethod');
77	
78	/////////////////////
79	// 画面レイアウト
80	/////////////////////
81	var html = '';
82
83	html += '<form  class="form-domHotel" id="form-domHotel" method="'+formMethod+'" action="' + actionURL + '" accept-charset="UTF-8">\n';
84	html += '<div class="mod-content_wrap">\n';
85	html += '<div class="mod-content_cover col3">\n';
86	
87	//1カラム目 チェックイン チェックアウト 宿泊地
88	html += '<div class="mod-content_box">\n';
89	
90	//チェックイン
91	html += '<fieldset class="mod-input_box">\n';
92	html += '<legend><span class="mod-input_head bold">' + checkText + '<span class="ib bold">' + checkinText + '</span></span></legend>\n';
93	html += '<div class="mod-input_parts m_checkin">\n';
94	//チェックイン部品埋め込み
95	html += '</div>\n';
96	html += '</fieldset>\n';
97	
98	//チェックアウト
99	html += '<fieldset class="mod-input_box">\n';
100	html += '<legend><span class="mod-input_head bold">' + checkText + '<span class="ib bold">' + checkoutText + '</span></span></legend>\n';
101	html += '<div class="mod-input_parts m_checkout">\n';
102	//チェックアウト部品埋め込み
103	html += '</div>\n';
104	html += '</fieldset>\n';
105	
106	//宿泊地
107	html += '<fieldset class="mod-input_box">\n';
108	html += '<legend><span class="mod-input_head bold">
108' + placeOfStaText + '</span></legend>\n';
109	html += '<div class="mod-input_parts m_placeOfStay">\n';
110	//宿泊地部品埋め込み
111	html += '</div>\n';
112	html += '</fieldset>\n';
113	
114	html += '</div><!-- / .mod-content_box -->\n';
115	//1カラム目 END
116	
117	
118	//2カラム目 1部屋あたりの利用人数(大人、子供・幼児)
119	html += '<div class="mod-content_box">\n';
120	html += '<p class="mod-title small">' + roomOfPeopleLabelText + '</p>\n';
121	
122	//大人
123	html += '<fieldset class="mod-input_box column">\n';
124	html += '<legend><span class="mod-input_head">' + adultText + '</span></legend>\n';
125	html += '<div class="mod-input_parts m_adult">\n';
126	//大人部品埋め込み
127	html += '</div>\n';
128	html += '</fieldset>\n';
129	
130	//子供・幼児
131	html += '<fieldset class="mod-input_box column">\n';
132	html += '<legend><span class="mod-input_head">' + childText + '</span></legend>\n';
133	html += '<div class="mod-input_parts m_child">\n';
134	html += '<input type="text" readonly name="" id="' + numberOfPeopleTextId1 + numberOfPeopleCount1 + '" value="" class="ico_select mod-input mod-icon js-mod-balloon m_dom_hotel_children m_numberOfPeople" data-balloon="'+ numberOfPeoplePartsId1 + numberOfPeopleCount1 +'" data-control-point="'+ dataControlPointValue +'" disabled>\n';
135	html += '<p class="notes m_dispChildCaution">' + childTextCaution + '</p>\n';
136	html += '</div>\n';
137	html += '</fieldset>\n';
138	
139	html += '</div><!-- / .mod-content_box -->\n';
140	//2カラム目 END
141	
142	
143	//3カラム目 こだわり条件 検索ボタン
144	html += '<div class="mod-content_box mod-btn_box">\n';
145	
146	//こだわり条件
147	html += '<fieldset class="mod-input_box">\n';
148	html += '<legend><span class="mod-input_head isSPvtop bold">' + addConditionText1 + '<span class="ib bold">' + addConditionText2 + '</span></span></legend>\n';
149	html += '<div class="mod-input_parts m_addCondition">\n';
150	//こだわり条件部品埋め込み
151	html += '</div>\n';
152	html += '</fieldset>\n';
153	
154	//検索ボタン
155	html += '<div class="btn-search-area btm">\n';
156	html += '    <div class="btn btn-search" tabindex="0">' + searchButtonText + '</div>\n';
157	html += '</div>\n';
158	
159	html += '</div><!-- / .mod-content_box -->\n';
160	//3カラム目 END
161
162	
163	html += '</div><!-- / .mod-content_cover -->\n';
164	html += '</div><!-- / .mod-content_wrap -->\n';
165	html += '</form>\n';
166	html += '\n';
167
168	this.append(html);
169	
170	m_domtour2ndModuleHotel_setDefVal(this, options);
171	
172};
173
174function m_domtour2ndModuleHotel_setDefVal(target, options){
175
176	////////////////
177	// 初期値取得
178	////////////////
179
180	// モジュール設置位置による噴出し表示位置設定
181	var dataControlPointValue = m_tourModuleCommon_getParam(m_domtour2ndModuleHotel_siteType, options, 'm_defModulePosition');
182	// 宿泊地(方面、地区、地域)設定内容の補正(どれか一つでも設定されていたらundefinedの項目は空文字を設定する)
183	if (options.m_defPlaceOfStayDistrict !== undefined ||
184		options.m_defPlaceOfStayRegion !== undefined ||
185		options.m_defPlaceOfStayArea !== undefined) {
186
187		if (options.m_defPlaceOfStayDistrict === undefined) {
188			options.m_defPlaceOfStayDistrict = '';
189		}
190		if (options.m_defPlaceOfStayRegion === undefined) {
191			options.m_defPlaceOfStayRegion = '';
192		}
193		if (options.m_defPlaceOfStayArea === undefined) {
194			options.m_defPlaceOfStayArea = '';
195		}
196	}
197	
198	////////////////////
199	// 各入力項目初期化
200	////////////////////
201	
202	//パラメータ設定を取得
203	//チェックイン
204	var defCheckin = m_tourModuleCommon_getParam(m_domtour2ndModuleHotel_siteType, options, 'm_defCheckin');
205	//チェックアウト
206	var defCheckout = m_tourModuleCommon_getParam(m_domtour2ndModuleHotel_siteType, options, 'm_defCheckout');
207	// 宿泊地(方面)
208	var defPlaceOfStayDistrict = m_tourModuleCommon_getParam(m_domtour2ndModuleHotel_siteType, options, 'm_defPlaceOfStayDistrict');
209	// 宿泊地(地区)
210	var defPlaceOfStayRegion = m_tourModuleCommon_getParam(m_domtour2ndModuleHotel_siteType, options, 'm_defPlaceOfStayRegion');
211	// 宿泊地(地域)
212	var defPlaceOfStayArea = m_tourModuleCommon_getParam(m_domtour2ndModuleHotel_siteType, options, 'm_defPlaceOfStayArea');
213	//大人
214	var defNumberOfAdult = m_tourModuleCommon_getParam(m_domtour2ndModuleHotel_siteType, options, 'm_defNumberOfAdult');
215	 // 子供(参加人数部品)
216	var defNumberOfPeopleSelectInit = m_tourModuleCommon_getParam(m_domtour2ndModuleHotel_siteType, options, 'm_defNumberOfChild');
217	var numberOfPeopleCount1 = m_tourModuleCommon_zeroPadding(m_tourModuleNumberOfPeople_usePartsCount);
218	//こだわり条件
219	var defAddConditionChecked = m_tourModuleCommon_getParam(m_domtour2ndModuleHotel_siteType, options, 'm_defAddConditionChecked');
220	// 再検索パラメータ
221	var kartKeepValue = m_tourModuleCommon_getParam(m_domtour2ndModuleHotel_siteType, options, 'm_defKart
221Keep');
222	//遷移先表示状態パラメータ
223	var tabNoDispCls = m_tourModuleCommon_getParam(m_domtour2ndModuleHotel_siteType, options, 'm_defTabNoDispCls');
224	
225	//チェックイン
226	target.find('.m_checkin').tourCommonModule('createDateInput', {
227		parent : target,
228		balloonTitle : m_tourModuleCommon_getListValue(m_domtourModuleHotel_check, 'BalloonTitle1'),
229		defPartsPosition : dataControlPointValue,
230		defDate : defCheckin,
231		defSelectDay : m_domtourModuleHotel_checkin_defSelectDay,
232		dateValueClass : m_domtourModuleHotel_checkin_dateValueClass,
233		dateValueName : m_domtourModuleHotel_checkin_dateValueName,
234		inputPlaceholder : m_domtourModuleHotel_checkin_inputPlaceholder,
235		inputClass : m_domtourModuleHotel_checkin_inputClass,
236		uniqueKey : m_tourCommonModuleParts_getPartsCount('calendar', 0),
237		isRequired : m_domtourModuleHotel_checkin_isRequired,
238		isDisabled : m_domtourModuleHotel_checkin_isDisabled,
239		isDispAllOfMonth : m_domtourModuleHotel_checkin_isDispAllOfMonth,
240		prevNextInterval : m_domtourModuleHotel_checkin_prevNextInterval,
241		receiptDisableDays : m_domtourModuleHotel_checkin_receiptDisableDays,
242		dispMonths : m_domtourModuleHotel_checkin_dispMonths,
243		selectableMonths : m_domtourModuleHotel_checkin_selectableMonths,
244		isDispHoliday : m_domtourModuleHotel_checkin_isDispHoliday,
245		boundaryTime : m_domtourModuleHotel_checkin_boundaryTime,
246		spWidth : m_tour2ndModuleCommon_SP_WIDTH
247	});
248	
249	//チェックアウト
250	defCheckoutOptions = {
251		parent : target,
252		balloonTitle : m_tourModuleCommon_getListValue(m_domtourModuleHotel_check, 'BalloonTitle2'),
253		defPartsPosition : dataControlPointValue,
254		defDate : defCheckout,
255		defSelectDay : m_domtourModuleHotel_checkout_defSelectDay,
256		dateValueClass : m_domtourModuleHotel_checkout_dateValueClass,
257		dateValueName : m_domtourModuleHotel_checkout_dateValueName,
258		inputPlaceholder : m_domtourModuleHotel_checkout_inputPlaceholder,
259		inputClass : m_domtourModuleHotel_checkout_inputClass,
260		uniqueKey : m_tourCommonModuleParts_getPartsCount('calendar', 1),
261		isRequired : m_domtourModuleHotel_checkout_isRequired,
262		isDisabled : m_domtourModuleHotel_checkout_isDisabled,
263		isDispAllOfMonth : m_domtourModuleHotel_checkout_isDispAllOfMonth,
264		prevNextInterval : m_domtourModuleHotel_checkout_prevNextInterval,
265		receiptDisableDays : m_domtourModuleHotel_checkout_receiptDisableDays,
266		dispMonths : m_domtourModuleHotel_checkout_dispMonths,
267		selectableMonths : m_domtourModuleHotel_checkout_selectableMonths,
268		isDispHoliday : m_domtourModuleHotel_checkout_isDispHoliday,
269		boundaryTime : m_domtourModuleHotel_checkout_boundaryTime,
270		startDateClass : m_domtourModuleHotel_checkout_startDateClass,
271		daysFromStartDate : m_domtourModuleHotel_checkout_daysFromStartDate,
272		spWidth : m_tour2ndModuleCommon_SP_WIDTH,
273		maxTravelDays : m_domtourModuleHotel_checkout_maxTravelDays,
274		returnDaysFromDepartureDate : m_domtourModuleHotel_checkout_returnDaysFromDepartureDate
275	}
276	target.find('.m_checkout').tourCommonModule('createDateInput', defCheckoutOptions);
277	
278	//宿泊地
279	target.find('.m_placeOfStay').tourCommonModule('createAirportInput', {
280		parent : this,
281		defAreaCode : defPlaceOfStayDistrict,                   // 方面
282		defCountryCode : defPlaceOfStayRegion,                  // 地区
283		defAirportCode : defPlaceOfStayArea,                    // 地域
284		defPartsPosition : dataControlPointValue,
285		balloonTitle : m_domtour2ndModuleHotel_stay['Text'],
286		areaClass : 'm_hiddenHotelDistrict',                    // 方面
287		areaName : 'districtCd',                                // 方面
288		countryClass : 'm_hiddenHotelRegion',                   // 地区
289		countryName : 'regionCd',                               // 地区
290		apoCodeClass : 'm_hiddenHotelArea',                     // 地域
291		apoCodeName : 'areaCd',                                 // 地域
292		inputPlaceholder : m_domtour2ndModuleHotel_stay['Placeholder'],
293		inputClass : 'm_domHotelPlaceOfStayText',
294		isRequired : false,
295		isDisabled : false,
296		layoutType : '19',
297		uniqueKey : m_tourCommonModuleParts_getPartsCount('airport', 0),
298		apoType : '2'
299	});
300	
301	//大人
302	target.find('.m_adult').tourCommonModule('createPeoplesPull', {
303		site : m_domtour2ndModuleHotel_siteType.site,
304		module : m_domtour2ndModuleHotel_siteType.module,
305		defSelect : defNumberOfAdult,
306		inputClass:'m_dom_hotel_member',
307		inputId:'dom_hotel_member' + m_tour2ndModuleHotel_returnCount_AddAdultPulldown(),
308		inputName:'adultCnt'
309	});
310	
311	//子供・幼児
312	target.find('.m_child').tourCommonModule('createNumberOfPeople', {
313		id: m_tourModuleNumberOfPeople_FixedParams.domtour.sec.id.hotel,
314		className: m_tourModuleNumberOfPeople_FixedParams.domtour.sec.id.hotel,
315		htmlType : m_tourModuleNumberOfPeople_FixedParams.domtour.sec.htmlType,
316		moduleNo : numberOfPeopleCount1,
317		NPLP : m_domtourModuleNumberOfPeopleHotel_NPLP,
318		initNum : defNumberOfPeopleSelectInit,
319		clearNum : defNumberOfPeopleSelectInit,
320		column : m_domtourModuleNumberOfPeopleHotel_optionParams.column,
321		row : m_domtourModuleNumberOfPeopleHotel_optionParams.row,
322		dispMatrix : m_domtourModuleNumberOfPeopleHotel_optionParams.dispMatrix,
323		textBoxTemplate : m_domtourModuleNumberOfPeopleHotel_optionParams.textBoxTemplate
324	});
325	
326	//こだわり条件
327	target.find('.m_addCondition').tourCommonModule('createCheckboxList', {
328		site:m_domtour2ndModuleHotel_siteType.site,
329		module : m_domtour2ndModuleHotel_siteType.module,
330		defCheck : defAddConditionChecked,
331		uniqueKey : m_tour2ndModuleHotel_returnCount_AddConditionCheckBox(),
332		inputName:'m_dom_hotel_option'
333	});
334	
335	//連動処理関連、初期値保持
336	//チェックイン
337	var domHotelCheInDate_befor = target.find('.m_domHotelCheInDate').val();
338	
339	//チェックイン項目変更イベント登録(チェックインに連動するチェックアウト)
340	target.find('.m_domHotelCheInDateText').on('change', function(e){
341		
342		var domHotelCheInDate = target.find('.m_domHotelCheInDate').val();
343		
344		//取得前と取得後に変更がない場合は、イベント終了
345		if(domHotelCheInDate_befor !== domHotelCheInDate){
346			//チェックアウトの連動
347			//取得
348			var m_domHotelCheOutDate = target.find('.m_domHotelCheOutDate');
349			var m_domHotelCheOutDateText = target.find('.m_domHotelCheOutDateText');
350			//計算
351			var cheOutDaysFromCheInDate = m_tourModuleDateUtil.prototype.calcRetDaysFromStartDate(defCheckoutOptions);
352			var cheOutDate = m_tourModuleCalender_PCLP.SubtractDate(domHotelCheInDate, cheOutDaysFromCheInDate);
353			var cheOutDateText = m_tourModuleCalender_PCLP.FormatDate(cheOutDate);
354			//更新
355			m_domHotelCheOutDate.val(m_tourModuleCalender_PCLP.GetDateText(cheOutDate));
356			m_domHotelCheOutDateText.val(cheOutDateText);
357			
358			//更新前項目情報の更新
359			domHotelCheInDate_befor = domHotelCheInDate;
360		}else{
361			//イベント終了
362		}
363	});
364	
365	// 大人人数変更イベント登録
366	target.find('.m_dom_hotel_member').on('change', function(e){
367		// 大人1人のとき注意文言表示、それ以外は非表示
368		var adultValue = $tour_module_jq(this).val();
369		if(adultValue === '1'){
370			target.find('.m_dispChildCaution').css('display','block');
371		}else{
372			target.find('.m_dispChildCaution').css('display','none');
373		}
374		//※子供・幼児の活性・非活性制御はツアー2nd共通処理で実施
375	});
376	
377	
378	// 初期化実施
379	target.find('.m_dom_hotel_member').trigger('change');
380	
381	// 検索ボタン押下イベント登録:サブミット実行
382	target.find('.btn-search').on('click keydown', function(e){
383		var whichValue = e.which;
384		if(whichValue == 1 || whichValue == 13){
385			// 子供・幼児 非活性判定
386			var isChildDisabled = target.find('.m_dom_hotel_children').is(':disabled');
387			// 検索サブミット
388			$tour_module_jq(this).domtourCommonModule('submitSearchHotel', {
389				targetModule : target,
390				isChildDisabled : isChildDisabled
391			});
392		}
393	});
394	
395	// 再検索パラメータのhidden生成
396	if(!_.isEmpty(kartKeepValue)){
397		target.tourCommonModule('createInputHidden', {
398			site : 'domtour',
399			inputName:'KartKeep',
400			inputValue:kartKeepValue
401		});
402	}
403	
404	// 遷移先表示状態パラメータのhidden生成
405	target.tourCommonModule('createInputHidden', {
406		site : 'domtour',
407		inputName:'tabNoDispCls',
408		inputValue:tabNoDispCls
409	});
410	
411	
412	// 部品配置数カウントアップ
413	m_tourCommonModuleParts_setPartsCount('airport', 1);
414	m_tourCommonModuleParts_setPartsCount('calendar', 2);
415};
416
417//こだわり条件チェックボックスリスト配置数カウント
418function m_tour2ndModuleHotel_returnCount_AddConditionCheckBox(){
419	
420	var returnCount = m_domtour2ndModuleHotel_usePartsCount_AddConditionCheckBox;
421	m_domtour2ndModuleHotel_usePartsCount_AddConditionCheckBox++;
422	return m_tourModuleCommon_zeroPadding(returnCount);
423}
424
425//大人配置数カウント
426function m_tour2ndModuleHotel_returnCount_AddAdultPulldown(){
427	
428	var returnCount = m_domtour2ndModuleHotel_usePartsCount_AdultPulldown;
429	m_domtour2ndModuleHotel_usePartsCount_AdultPulldown++;
430	return m_tourModuleCommon_zeroPadding(returnCount);
431}
432
433$tour_module_jq.fn.domtour2ndModuleHotel = function(method) {
434	var methods = {
435		'privateSetParams' : m_domtour2ndModuleHotel_setParams,
436		'privateSecondModuleDisplay' : m_domtour2ndModuleHotel_secondModuleDisplay
437	};
438
439	if (methods[method]) {
440		  return methods[ method ].apply(this, Array.prototype.slice.call(arguments, 1));
441	} else {
442		$tour_module_jq.error('Method ' +  method + ' does not exist on $tour_module_jq.domtour2ndModuleHotel');
443	}
444};

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.