PageSourceSearch

http://www.sozankyo.jp/js/common/hotelstory.js

js sozankyo.jp collected 2026-10-04 11:35:22 UTC 12,633 bytes, 313 lines download raw bytes

1var _____WB$wombat$assign$function_____=function(name){return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name))||self[name];};if(!self.__WB_pmw){self.__WB_pmw=function(obj){this.__WB_source=obj;return this;}}{
2let window = _____WB$wombat$assign$function_____("window");
3let self = _____WB$wombat$assign$function_____("self");
4let document = _____WB$wombat$assign$function_____("document");
5let location = _____WB$wombat$assign$function_____("location");
6let top = _____WB$wombat$assign$function_____("top");
7let parent = _____WB$wombat$assign$function_____("parent");
8let frames = _____WB$wombat$assign$function_____("frames");
9let opens = _____WB$wombat$assign$function_____("opens");
10/* --- ホテル固有設定 --- */
11var mycode1 = {'ja': "63000", 'en': "63001", 'ko': "63001", 'zh-tw': "63001"};
12var mycode2  = "001";
13/* ---------------------- */
14
15$(document).ready(function(){
16
17	var docForms = [];    /* [document.plansearch, document.plansearch_top, ...] */
18	var _lang = document.documentElement.lang;
19	
20	/* ===================================================================================
21	    div.plansearcnに対して実行。idは必ずユニークなidを付けること。id="id_{hogehoge}"
22	  ================================================================================= */
23	if (_lang == 'ja'){
24		docForms = [document.plansearch];
25	}else{
26		$('div.plansearch').each(function(idx, divPlansearch){
27			namePlansearchForm = divPlansearch.id.slice(3);
28			var _html_elements = [];
29			
30			var _leaf_arrival_date = 'Arrival Date:&nbsp; <select name="month"></select> / <select name="day"></select> / <select name="year"></select>';
31			var _leaf_stay = '<select name="staynum"></select> Nights';
32			var _leaf_room = '<select name="roomnum"></select> Room(s)';
33			var _leaf_input1 = '<input type="radio" id="' + divPlansearch.id + '__displayoption__1" name="displayoption" value="" checked="">';
34			var _leaf_label1 = '<label for="' + divPlansearch.id + '__displayoption__1">Each Plan</label>';
35			var _leaf_input2 = '<input type="radio" id="' + divPlansearch.id + '__displayoption__2" name="displayoption" value="room">';
36			var _leaf_label2 = '<label for="' + divPlansearch.id + '__displayoption__2">Each Room</label>';
37			var _leaf_input3 = '<input type="radio" id="' + divPlansearch.id + '__displayoption__3" name="displayoption" value="calendar">';
38			var _leaf_label3 = '<label for="' + divPlansearch.id + '__displayoption__3">Display Calendar</label>';
39			var _leaf_searcnbtn = '<input class="button" type="submit" value="Search" name="btn_search">';
40			var _leaf_cancelbtn = '<input class="button" type="button" value="Reservation Confirmation Form" name="btn_cancel">';
41			
42			/* Arrival Date Area */
43			var _html_arrivaldatearea;
44			var _html_arrivaldatearea_element = [];
45			_html_arrivaldatearea_element.push(nestString('<div class="date">', '</div>', _leaf_arrival_date));
46			_html_arrivaldatearea_element.push(nestString('<div class="stay_room">', '</div>', _leaf_stay + '&nbsp;' + _leaf_room));
47			_html_arrivaldatearea = nestString('<div class="arrivaldate_area clearfix">', '</div>', _html_arrivaldatearea_element.join(''));
48			
49			/* Display Condition Area */
50			var _html_displayconditionarea;
51			var _html_displayconditionarea_element = [];
52			_html_displayconditionarea_element.push('<div>Display Condition: </div>');
53			var _html_displayconditionarea__input = [];
54			_html_displayconditionarea__input.push(_leaf_input1 + _leaf_label1);
55			_html_displayconditionarea__input.push(_leaf_input2 + _leaf_label2);
56			_html_displayconditionarea__input.push(_leaf_input3 + _leaf_label3);
57			_html_displayconditionarea_element.push(nestString('<div>', '</div>', _html_displayconditionarea__input.join(' &nbsp; ')));
58			_html_displayconditionarea = nestString('<div class="displaycondition_area clearfix">', '</div>', _html_displayconditionarea_element.join(''));
59			
60			/* Condition Area */
61			var _html_conditionarea = _html_arrivaldatearea + _html_displayconditionarea;
62			_html_conditionarea = nestString('<div class="searchcondition_area">', '</div>', _html_conditionarea);
63			_html_elements.push(_html_conditionarea);
64
65			/* Button Area */
66			var _html_buttonarea = '';
67			_html_buttonarea += nestString('<div>', '</div>
67', _leaf_searcnbtn);
68			_html_buttonarea += nestString('<div>', '</div>', _leaf_cancelbtn);
69			_html_buttonarea = nestString('<div class="searchbutton_area">', '</div>', _html_buttonarea);
70			_html_elements.push(_html_buttonarea);
71			
72			var _html = nestString('<div class="container clearfix">', '</div>', _html_elements.join(''));                                /* div.container */
73			_html = nestString('<form name=' + nestQuote(namePlansearchForm) + ' onSubmit="return false;">', '</form>', _html);           /* form */
74			
75			$(divPlansearch).html(_html);
76			
77			docForms.push($('form[name="' + namePlansearchForm + '"]')[0]);
78		});
79	}
80	
81	/* Today */
82	var today = new Date();
83	today.setDate(today.getDate() + 0);    /* 日付の初期値 0:今日, 1:明日 */
84	
85	for (var i=0; i<docForms.length; i++){
86		if (docForms[i] != undefined){
87			var _searchForm = new searchForm(docForms[i]);
88			_searchForm.setLanguage(_lang);
89			_searchForm.setSelectOptionsDate(today);
90			_searchForm.setSelectValuesDate(today);
91			_searchForm.setSelectOptionsStay();
92			_searchForm.setSelectOptionsRoom();
93			
94			$(_searchForm.getForm().btn_search).on('click', _searchForm.getPlans);
95			$(_searchForm.getForm().btn_cancel).on('click', _searchForm.showCancel);
96			$(_searchForm.getForm().date_undec).on('click', _searchForm.clickDateUndec);
97			$(_searchForm.getForm().year).on('change', _searchForm.changeDate);
98			$(_searchForm.getForm().month).on('change', _searchForm.changeDate);
99		}
100	}
101});
102
103/* ===================================== 
104     searchForm(form, delay)
105  -------------------------------------
106    Formオブジェクト
107    form: document.hogehoge で指定
108          (hogehogeはform name)
109 ===================================== */
110var searchForm = (function(){
111	function searchForm(form){
112		// Private Member
113		var _self = this;
114		var _form;
115		var _lang = 'ja';
116		var _DISP_MONTH = {
117			'ja': [1,2,3,4,5,6,7,8,9,10,11,12],
118			'en': ['Jan.','Feb.','Mar.','Apr.','May','Jun.','Jul.','Aug.','Sep.','Oct.','Nov.','Dec.'],
119			'zh-cn': ['Jan.','Feb.','Mar.','Apr.','May','Jun.','Jul.','Aug.','Sep.','Oct.','Nov.','Dec.'],
120			'zh-tw': ['Jan.','Feb.','Mar.','Apr.','May','Jun.','Jul.','Aug.','Sep.','Oct.','Nov.','Dec.'],
121			'ko': ['Jan.','Feb.','Mar.','Apr.','May','Jun.','Jul.','Aug.','Sep.','Oct.','Nov.','Dec.']
122		};
123		// Private Method
124		
125		function _setSelectOptionsYear(startYear, numYears){
126			var $year = $(_form.year);
127			$year.html('');
128			for(var i = 0; i < numYears; i++){
129				$year.append('<option value="' + (startYear + i) + '">' + (startYear + i) + '</option>');
130			}
131		};
132		function _setSelectOptionsMonth(){
133			var $month = $(_form.month);
134			$month.html('');
135			for(var i = 0; i < 12; i++){
136				$month.append('<option value="' + (i+1) + '">' + _DISP_MONTH[_lang][i] + '</option>');
137			}
138		};
139		function _setSelectOptionsDay(days){
140			var $day = $(_form.day);
141			$day.html('');
142			for(var i = 1; i < (days + 1); i++){
143				$day.append('<option value="' + i + '">' + i + '</option>');
144			}
145		};
146		function _getDaysOfMonth(year, month){
147			var checkdate = new Date(year, month - 1, 35);    /* yyyy/mm/35 -> yyyy/(mm+1)/dd ... return (35 - dd) */
148			return 35 - checkdate.getDate();
149		};
150		function _makeSimpleOptions(numOptions){
151			ret = [];
152			ret.push( '<option selected value="1">1</option>' );
153			for (var i=1; i<numOptions; i++){
154				ret.push('<option value="' + (i+1) + '">' + (i+1) + '</option>');
155			}
156			return ret.join('');
157		};
158		
159		// Public Member
160		
161		// Public Method
162		this.setSelectOptionsDate = function(startDate){
163			if (startDate === undefined){startDate = new Date();}
164			_setSelectOptionsYear(startDate.getFullYear(), 2);
165			_setSelectOptionsMonth();
166			_setSelectOptionsDay(31);
167		};
168		this.setSelectValuesDate = function(setDate){
169			if (setDate === undefined){setDate = new Date();}
170			_form.year.value = setDate.getFullYear();
171			_form.month.value = setDate.getMonth() + 1;
172			_form.day.value = setDate.getDate();
173		};
174		this.setSelectOptionsStay = function(){
175			$(_form.staynum).html(_makeSimpleOptions(7));
176		}
177		this.setSelectOptionsRoom = function(){
178			var _html = '';
179			$(_form.roomnum).html(_makeSimpleOptions(5));
180		}
181		this.setLanguage = function(lang){
182			_lang = lang;
183		};
184		this.getForm = function(){
185			return _form
186		};
187		this.getPlans = function(){
188			var _url = 'https://asp.hotel-story.ne.jp/ver3d/planlist.asp';
189			var _win_name = 'search';
190			var _params_array = [];
191			var _features_array = [];
192
193			/* (memo: 意味が否定形のフラグは作らない) */
194			var is_date_decision = true;
195			if (_form.date_undec != undefined){
196				is_date_decision = !_form.date_undec.checked;
197			}
198			var is_persion_decision = true;
199
200			/* Parameters */
201			_params_array.push(['cod1', mycode1[_lang]]);
202			_params_array.push(['cod2', mycode2]);
203			_params_array.push(['hidmode', 'select']);
204			_params_array.push(['mode', 'seek']);
205			if (is_date_decision){
206				_params_array.push(['hidSELECTARRYMD', [_form.year.value, _form.month.value, _form.day.value].join('/')]);
207				_params_array.push(['hidSELECTHAKSU', _form.staynum.value]);
208				_params_array.push(['room', _form.roomnum.value]);
209			}
210			if (is_persion_decision){
211				_params_array.push(['hidSELECTadult', 2]);
212				_params_array.push(['hidSELECTchilda', 0]);
213				_params_array.push(['hidSELECTchildb', 0]);
214				_params_array.push(['hidSELECTchildc', 0]);
215				_params_array.push(['hidSELECTchildd', 0]);
216			}
217			_params_array.push(['hidSELECTminPrice', 0]);
218			_params_array.push(['hidSELECTmaxPrice', 9999999]);
219			_params_array.push(['Dispunit', $(_form).find('input[name=displayoption]:checked').val()]);
220			_params_array.push(['chkymd', (is_date_decision ? 0: 1)]);
221			_params_array.push(['chkpsn', (is_persion_decision ? 0: 1)]);
222			var _params = join_doublearray(_params_array, '=', '&');
223
224			/* Features */
225			_features_array.push(['width', 856])
226			_features_array.push(['Height', 564])
227			_features_array.push(['resizable', 'yes'])
228			_features_array.push(['scrollbars', 'yes'])
229			_features_array.push(['status', 'yes'])
230			var _features = join_doublearray(_features_array, '=', ',');
231
232			try{
233				window.open(pageTracker._getLinkerUrl(_url + '?' + _params), _win_name, _features).focus();
234			} catch (e) {
235				window.open(_url + '?' + _params, _win_name, _features).focus();
236			}
237		};
238		this.showCancel = function(){
239			var _url = 'https://asp.hotel-story.ne.jp/ver3d/ASPY0300.asp';
240			var _win_name = 'cancel';
241			var _params_array = [];
242			var _features_array = [];
243
244			/* Parameters */
245			_params_array.push(['cod1', mycode1[_lang]]);
246			_params_array.push(['cod2', mycode2]);
247			var _params = join_doublearray(_params_array, '=', '&');
248			
249			/* Features */
250			_features_array.push(['width', 820])
251			_features_array.push(['Height', 564])
252			_features_array.push(['resizable', 'yes'])
253			_features_array.push(['scrollbars', 'yes'])
254			_features_array.push(['status', 'yes'])
255			var _features = join_doublearray(_features_array, '=', ',');
256			
257			try{
258				window.open(pageTracker._getLinkerUrl(_url + '?' + _params), _win_name, _features).focus();
259			} catch (e) {
260				window.open(_url + '?' + _params, _win_name, _features).focus();
261			}
262		}
263		this.clickDateUndec = function(){
264			var is_disabled = _form.date_undec.checked;
265			_form.year.disabled = is_disabled;
266			_form.month.disabled = is_disabled;
267			_form.day.disabled = is_disabled;
268			_form.staynum.disabled = is_disabled;
269			_form.roomnum.disabled = is_disabled;
270		}
271		this.changeDate = function(){
272			var y = _form.year.value;
273			var m = _form.month.value;
274			var d = parseInt(_form.day.value);
275			var maxDay = _getDaysOfMonth(y, m);
276			_setSelectOptionsDay(maxDay);
277			if (maxDay < d){
278				_form.day.value = maxDay;
279			}else{
280				_form.day.value = d;
281			}
282		}
283		// Constructor
284		var _constructor = function(form){
285			_form = form;
286		};
287		
288		_constructor(form);
289		
290	};
291	
292	return searchForm;
293})();
294
295
296/* ================================================
297   その他
298================================================ */
299function join_doublearray(data, in_separator, out_separator){
300	var _ret = [];
301	for(var i = 0; i < data.length; i++){
302		_ret.push(data[i].join(in_separator));
303	}
304	return _ret.join(out_separator);
305};
306function nestQuote(strData){
307	return '"' + strData + '"';
308};
309function nestString(strStart, strEnd, strCore){
310	return strStart + strCore + strEnd;
311};
312
313}

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.